digital words feel too finished.
the interface arrives before a person has left a trace.
a divider can pause, group, label, or point. the stroke should say which one before the layout does.
npx shadcn@latest add berkantay/cheez/marked-separatorthe interface arrives before a person has left a trace.
one imperfect line can make the hierarchy feel human.
<MarkedSeparator
orientation="horizontal"
variant="wavy"
label="next chapter"
labelPosition="center"
spacing="normal"
tone="orange"
character="rushed"
/>collect the language people already use.
make the intended hierarchy impossible to miss.
let real use put pressure on every decision.
most component libraries erase every trace of process. useful interfaces still need clarity, but clarity does not require sterility.
cheez keeps the semantic primitive ordinary and lets the annotation carry the personality. remove the ink and the structure still makes sense.
| prop | type | default | purpose |
|---|---|---|---|
orientation | "horizontal" | "vertical" | "horizontal" | native separator orientation |
variant | "line" | "double" | "wavy" | "zigzag" | "directional" | "line" | stroke vocabulary |
direction | "forward" | "backward" | "forward" | directional arrow placement |
label | ReactNode | — | visible content between two strokes |
labelPosition | "start" | "center" | "end" | "center" | label position along the axis |
markLabel | boolean | true | marker wash behind the label |
labelMark | CheezType | "marker-swipe" | label drawing override |
labelColor | string | separator color | label ink override |
decorative | boolean | label-aware | presentation or structural semantics |
aria-label | string | string label | name for a structural separator |
tone | MarkedSeparatorTone | "neutral" | built-in ink palette |
color | string | tone color | custom stroke override |
mark | CheezType | variant-aware | horizontal stroke override |
character | CheezCharacter | "rushed" | drawing personality |
thickness | number | 1 | pen weight |
spacing | "compact" | "normal" | "loose" | "normal" | cross-axis breathing room |
length | CSS width | container | horizontal width or vertical height |