1 Root

One foundation. Every detail.

Colour, type, language and scale give every interface a common starting point.

Colours

A palette for paper, ink and everything between.

Fonts

Type with a voice, on a shared baseline.

Theming

The same system, in light and dark.

Languages

Words that feel at home.

Formatting

Dates, numbers and money, written clearly.

Scaling

One square. Every screen.

Root establishes the common ground for the system: the square, colours, type, scale and the built-in behavior and utilities available across the system. Configure these foundations before composing a page; a change here can affect many controls at once.

TopicResponsibility
ColoursPalette, inks, pastels and their dark counterparts.
FontsTypefaces, font loading and specimens.
ProseLong-form writing in native HTML, drawn on the grid inside data-ds-prose.
LanguagesSupported languages, shared words and translation lookup.
FormattingDates, times, relative time, numbers, money and lists in the current language.
ThemingAppearance tokens and light/dark behavior.
DeviceDevice detection and responsive scale.
ScalingThe phone and tablet scale, --sf, put on the page.
PreferencesRemembering supported user choices.
PricingThe reader’s likely currency, and prices written in it.

All built-ins are grouped here alongside the visual foundations: Languages, Formatting, Theming, Device, Preferences and Pricing. Formatting and Pricing write values; they do not implement billing or payments. These topics support interface controls rather than being controls themselves. The language module belongs here; the visible language choice, a Cycle, belongs in Core. The docs group runtime foundations here even when their implementation lives in DS1/0-face/; this does not move their source or change import paths.

Core uses these foundations for individual controls. Unit composes controls, and Page arranges those compositions. Application state, permissions and persistence stay with the application. Internal component visibility is separate from these layers: an internal control does not become a Root topic merely because it is hidden from the catalogue.

Load the component library as shown in Use with HTML. Its stylesheet supplies fonts, tokens and shared measures; its JavaScript registers the Lit elements.

Customize public --ds-* tokens on the root or a scoped surface. My libraries saves and publishes those choices. Keep content, application data and routing in your page.