Table of Contents

Enum StyleVariantKind

Namespace
Velvet
Assembly
Velvet.Docs.dll

State-variant kinds for utility classes — the hover: / focus: / active: / disabled: prefixes.

public enum StyleVariantKind

Fields

Active = 3
Checked = 4
Container = 23
Dark = 10
Disabled = 20
Focus = 1
FocusVisible = 2
GroupActive = 14
GroupDisabled = 21
GroupFocus = 12
GroupFocusWithin = 13
GroupHover = 11
Hover = 0
Lg = 7
Md = 6
PeerActive = 18
PeerChecked = 19
PeerDisabled = 22
PeerFocus = 16
PeerFocusWithin = 17
PeerHover = 15
Sm = 5
Xl = 8
Xxl = 9

Remarks

A classification answering for every kind — which signal source drives one, which layer it occupies — is a Velvet.VariantKindTable<T> built from one entry per member, and VariantKindTableTests fails for a table missing a member. A set of independent is X or Y predicates cannot report a member matching none, and that is what left checked:, the two focus-within relationals and peer-checked: unclassified and inert as the inner of a stacked variant.

The switches over the smaller enums beside this one are written without a discard arm instead, so adding a member raises CS8509 at each site that has to learn it. Those sites suppress CS8524: it asks for an arm covering an out-of-range cast, which no named member can supply. That signal is load-bearing, so Runtime/csc.rsp compiles CS8509 as an error, and answering that error with a discard arm would put the silence back, so ExhaustiveSwitchSeverityTests holds both halves at once. This enum cannot take the same form: a switch naming every member costs VEL501 one branching decision per member, and it has more members than that cap.