A token-first UI kit for a wholesale fashion B2B platform — exported as 98 CSS variables, spanning every surface from data tables to product cards.
Everything in the system flows upward from primitive tokens. No component ever references a raw hex value — only named semantic tokens. This makes global changes (themes, brand updates) a single-source operation.
Primitive tokens name raw values. Semantic tokens assign purpose. The Linesheet system exports both layers as CSS variables — 98 total across Mode 02 (Variation B), covering base, badge, chart, sidebar, and sonner states.
Inter is used across all UI — navigation, labels, data, inputs, and headings. Weight and tracking do the work of differentiation: 900 for display, 700 for headings, 400 for body. No decorative typefaces, no arbitrary size decisions.
| Role | Sample | Spec | Typeface | Used for |
|---|---|---|---|---|
| H1 | Large Titles | 32px / 800 / −0.04em | Inter | Page headers, brand moments |
| H2 | Mid-Level Titles | 22px / 600 / −0.01em | Inter | Section headers, panel titles |
| H3 | Subtitles | 16px / 600 / 0 | Inter | Card titles, table labels |
| body | Body text for product descriptions and list content | 14px / 400 / 0 | Inter | General UI copy, descriptions |
| price | $24.00 | 16px / 700 | Inter | Wholesale price, primary CTA value |
| label | SECTION LABEL | 11px / 700 / 0.08em | Inter | Navigation labels, column headers |
A design system is a series of constrained decisions. Documenting them prevents revisiting the same debate and helps new contributors understand the boundaries.
Every component references only semantic tokens — never primitives. Below: four components from the Linesheet kit, each with token annotations showing exactly which variable governs which visual property.
--sidebar-background → Gray 900 (#1A1A1A)--sidebar-accent → Primary (#E11074)--sidebar-foreground → 25% white alpha--badge-green → Green 300 (light tint)--badge-green-accent → Green 600 (full saturation)--table-header → warm surface--color-primary — price is a primary CTA signal--color-input → border token; on focus → --color-ring pink outline--color-primary — consistent with all primary actionsDocumented as a self-directed exploration — To explore how design and engineering documentation could work together, I set up Storybook using Claude Code and documented my Shopcord component variants there myself. The Controls panel shows how props could be adjusted in real time, and the Accessibility tab shows how WCAG review could become a shared process rather than a design-only checklist.
Patterns are reusable compositions of components — a modal + form + table working together as a single user flow. The linesheet creation flow combines all three.
The two-layer token model was the key unlock. By separating primitive values from semantic meaning, the system supports future sub-brand theming (TheEdit, AsiaDirect) without touching any component code — only the semantic layer needs to change.