01 / The issue
A different silhouette
Form with a distinct position and a useful place in your everyday.
Edition 02 / the working component system
Use the classes in this reference and the exact values in theme.json. These components inherit this identity's fonts, colors, proportions, and controls.
Display / bebas
Wear your own direction.
Reading text is 16px with a 1.7 line height and a maximum line length of 65 characters. A useful hierarchy is a first-class part of the system.
The independent issueAsphalt#252120
Oxide#D8765D
Raw cotton#F0E8D9
Utility#B8C6AA
Ink on paper and ink on accent are approved normal-text pairings. Support color is a decorative surface until a specific text pairing is checked.
Buttons are at least 48px tall. Focus is visible. Keep existing handlers, links, and form behavior when applying the theme.
01 / The issue
Form with a distinct position and a useful place in your everyday.
02 / The details
Graphic construction that follows the idea all the way through.
03 / Point of view
An independent starting point, not a prescribed identity.
| Element | Value | Purpose |
|---|---|---|
| Spacing unit | 4px | A consistent compositional rhythm |
| Body text | 16px / 1.7 | Comfortable, readable content |
| Controls | 48px minimum | Useful touch and keyboard targets |
Download the complete kit. Read INSTALL.md, run install-theme.mjs against your project, and attach the exact data-openform attribute to your root or intended subtree.
Yes. Use theme.css and map your components to the provided of-* classes. Preserve your routes, application data, interactions, and actual business content.