Lay the rule horizontally (default) or vertically between inline items.
tone
NockerlDividerTone
'default'
Hairline tone: standard, alt-plane, the cyan signature line, a status rule, or the rare warm (accent.warm) feature line.
inset
string
n/a
Symmetric inset (indent) from the container edges, in token spacing steps.
label
string
n/a
Optional centered label ("OR") with balanced rules on each side.
sectionLabel
boolean
false
Render the label flush-left as a section header (one trailing rule).
Also accepts the native <hr> attributes (e.g. onClick, disabled, id, aria-*, data-*), forwarded straight through, plus a forwarded ref.
Compose ships Material 3’s HorizontalDivider / VerticalDivider; Nockerl supplies the
color token (colors.divider / altHairline) and, for the signature line + labeled
variants, a thin Box / Row. There is no single wrapper component yet.
Parameter
Type
Default
Description
modifier
Modifier
Modifier
External modifier. Use Modifier.padding(horizontal = …) for an inset rule.
thickness
Dp
DividerDefaults.Thickness (1.dp)
Hairline weight. The signature cyan boundary line uses 1.5.dp.
color
Color
DividerDefaults.color
Pass a Nockerl token: colors.divider, colors.altHairline, or colors.accentPrimary for the signature line.
SwiftUI has no parameterized divider component; Nockerl draws a Rectangle filled with a
theme token and sized to the hairline. The native Divider() is used only inside menus and
Form-style lists where the system separator is expected.
Style
Type
Default
Description
Rectangle().fill(NockerlTheme.hairline)
View
n/a
Standard hairline (white @ 8% on dark). Size with .frame(height: 1) or .frame(width: 1).
Rectangle().fill(NockerlTheme.divider)
View
n/a
Slightly stronger rule (white @ 12% on dark), used for vertical separators between inline items.
Rectangle().fill(NockerlTheme.accent)
View
n/a
The cyan signature boundary line. Size with .frame(height: 1.5).
Divider()
View
n/a
System separator: menus (MenuBarContent) and onboarding lists only.
Cross-platform drift (tracked for reconciliation)
The hairline tone and the signature cyan line agree; the wrapping does not:
No shared component. Web exposes one Divider (orientation + tone + label); Compose
uses Material’s HorizontalDivider/VerticalDivider + a hand-rolled Box for the
signature line and labeled variants; Swift draws a Rectangle. The labeled/section and
accent variants should land as one wrapper per platform.
Token naming. The standard rule is divider; the alt-plane rule is altHairline
(Compose) / hairline (Swift). Both apps also reach for outlineVariant (Material) at
~50% alpha in places. That should resolve to the divider token.
Signature line weight is a literal. Both apps hardcode the cyan boundary at
1.5dp/1.5pt; it should become a token (divider.signature) alongside the standard 1.