@pearpages/pulp-tokens
v0.3.0
Published
pulp design tokens. W3C Design Tokens (DTCG) JSON in, CSS custom properties and a resolved JSON manifest out. Two brands, light and dark via light-dark().
Readme
@pearpages/pulp-tokens
The design tokens of pulp: W3C Design Tokens (DTCG) JSON in,
CSS custom properties and a resolved JSON manifest out. Two brands, light and dark via
light-dark().
Install
npm install @pearpages/pulp-tokensMost apps get the tokens through @pearpages/pulp-css,
which imports them in the right cascade layer. Import them directly only if you don't use it:
@import "@pearpages/pulp-tokens/tokens.css";Use
Read the semantic names, never the primitives underneath them:
.panel {
background: var(--color-surface-raised);
color: var(--color-text-default);
padding: var(--space-4);
border-radius: var(--radius-surface);
}Theme with two attributes on <html> or on any element (they nest):
data-brand="pulp" | "bitepals"sets the palette, radius, type families and density.pulpis the default on:root.data-scheme="light" | "dark", or leave it off to follow the OS. Colours arelight-dark()pairs.
<html data-brand="bitepals" data-scheme="dark">Tiers
Primitives (raw palette and scales) → semantic tokens (what a value means: surface, text, action) → component tokens (one component's knobs, always pointing at semantic ones). A brand only remaps primitives onto semantic names, so switching brand never touches a component.
Files
| Export | |
| --- | --- |
| @pearpages/pulp-tokens/tokens.css | every brand's custom properties, in @layer tokens |
| @pearpages/pulp-tokens/tokens.json | resolved tokens per brand, { pulp: [...], bitepals: [...] }; each entry has name, path, type, tier, css, value. For tooling |
| @pearpages/pulp-tokens/theme.css | Tailwind v4: an @theme inline reference block over the semantic colours, radii, shadows and font families, so bg-surface-base or rounded-control read pulp's variables. Import it after tailwindcss and tokens.css |
| @pearpages/pulp-tokens/native | React Native / NativeWind and Tailwind v3: per brand { colors, radius, space, themeVars: { light, dark } }. Names are var(--…) references for the config; themeVars are resolved hex and px for vars(). ESM and require |
| tokens/ | the DTCG source files |
License
MIT
