@aios-alpha/design
v0.6.0
Published
AIOS unified design system — DTCG tokens, CSS variables, Tailwind v4 theme, Pencil variables, and the canonical brand assets (caret-A mark, wordmark, lockups). Editorial Minimal direction: greyscale chrome, Instrument typography, colour rationed to badges
Downloads
10,301
Readme
@aios-alpha/design
The one design system for every AIOS surface — website, team brain, workspace GUI, and every scaffolded workspace. Editorial Minimal direction: dual-mode, greyscale chrome, Instrument typography, colour rationed to badges and data viz.
| Package | What it ships |
|---------|---------------|
| @aios-alpha/design (this repo root) | DTCG tokens → dist/tokens.css, dist/tailwind-theme.css, the brand assets → dist/brand/*.svg, and DESIGN.md |
| @aios-alpha/ui (react/) | shadcn-based React components themed through the token bridge |
DESIGN.md— pinned design contract (likebrain-api.mdfor sync). Read this before building UI.tokens/*.json— DTCG source of truth. Edit here, then rebuild.brand/src/*.json— logo geometry source of truth. The one AIOS logo lives here; seeDESIGN.md§ Brand & Logo.dist/— generated bynpm run build(build:tokens+build:brand); gitignored, CI rebuilds before publish.
Prerequisites
Node — for the token + React build below.
Git LFS — the Pencil design source (
aios-design.pen, a ~2 MB binary) is tracked via Git LFS, not plain git. Install it once per machine before cloning so the file materializes instead of leaving a small text pointer:git lfs install # once per machine git clone [email protected]:AIOS-alpha/aios-design.gitAlready cloned before installing LFS? Run
git lfs install && git lfs pull. SeePENCIL.mdfor opening the file.
Build
npm install
npm run build # regenerates dist/ (tokens + brand assets)
cd react && npm install && npm run build # compiles @aios-alpha/ui to react/dist/Consume in another repo
Install the Design contract patch with the compatible UI package:
npm install @aios-alpha/design@^0.6.0 @aios-alpha/ui@^0.6.0Tailwind v4 app — global stylesheet, in this order:
@import "@aios-alpha/design/tokens.css";
@import "@aios-alpha/design/tailwind-theme.css";
@import "tailwindcss";
@source "../node_modules/@aios-alpha/ui/dist";
@custom-variant dark (&:where(.dark, .dark *));Self-host fonts (no Google CDN):
@import "@fontsource/instrument-serif/400.css";
@import "@fontsource/instrument-sans/400.css";
@import "@fontsource/instrument-sans/500.css";
@import "@fontsource/instrument-sans/600.css";
@import "@fontsource/instrument-sans/700.css";
@import "@fontsource/jetbrains-mono/400.css";Then use bridge utilities (bg-background, text-foreground, bg-primary, text-violet, font-display, rounded-full, …). Toggle dark mode with class="dark" on <html>.
React components:
import { Button, TierBadge, AiosLogo, AiosMark, KpiStat } from "@aios-alpha/ui";Brand assets — one monochrome logo, shipped as files for non-React surfaces:
/* currentColor: inherits ink, flips with the theme. Inline it or use it as a mask. */
.logo { mask: url("@aios-alpha/design/brand/aios-lockup.svg") center / contain no-repeat; }aios-lockup.svg (default) · aios-lockup-stacked.svg · aios-mark.svg · aios-wordmark.svg,
each also as -black.svg / -white.svg for <img>, print, and video where currentColor cannot
resolve. aios-mark-prism.svg is the gradient mark (≥48px), and aios-lockup-display-white.svg /
-black.svg (plus the stacked pair) put that gradient mark beside a single-ink wordmark — brand
artwork only (social cards, covers, decks, merch, video), never product UI. Read DESIGN.md
§ Brand & Logo before using any of them.
Astro / Starlight — import tokens.css and map --aios-* onto Starlight's --sl-* (see aios-website).
Raw CSS (no Tailwind) — import tokens.css and use var(--aios-*) directly.
Semantic tokens (0.5.0 contract; unchanged 0.3.0 token values)
| Token | Use for |
|-------|---------|
| --aios-primary | Pill buttons, active tabs (near-black light / white dark) |
| --aios-violet | Brand mark, team/deliverable badges, link accents |
| --aios-accent | Lime — live status, checks, rationed affirmative actions |
| --aios-emerald/amber/cyan/fuchsia | Kind/tier badges, KPI sparklines |
0.3.0 also adds a per-mode effects layer — card-glow shadows (--aios-shadow-glow-card* / -featured*) and liquid-glass tokens (--aios-glass-*, --aios-blur-glass*) — see the "0.3.0 — Effects layer" section in DESIGN.md.
0.3.1 does not change token values. It aligns both @aios-alpha/design and @aios-alpha/ui with
the packaged contract version, makes the UI ESM entry directly importable by Node, and narrows the
consumer-colour exception policy.
Upgrading from 0.3.x — one visual breaking change
Token values, CSS variables, and the Tailwind bridge are unchanged across 0.4.0 and 0.5.0, so
a stylesheet-only consumer upgrades with no work. The one break is in @aios-alpha/ui:
AiosMarkflipped its default in 0.4.0. It used to render the prism gradient; it now renderscurrentColor. Passprismto get the gradient back. The oldmonoprop is accepted and ignored, so<AiosMark mono />still renders correctly — but a bare<AiosMark />that used to be colourful is now monochrome. This changes rendered output without a type error, so it will not show up in a typecheck; look at the screen.- If you were loading
aios-mark-mono.svgfrom a consuming repo's own assets, the canonical equivalent is@aios-alpha/design/brand/aios-mark.svg(currentColor) oraios-mark-white.svg.
If that monochrome mark is wrong for your surface, you are probably rendering brand artwork rather than UI — see the display lockup above.
0.6.0 does not change token values, CSS variables, the Tailwind bridge, brand assets, or any
component API. It relicenses the packages from MIT to Apache-2.0 and ships as a major version for
that reason alone — see CHANGELOG.md and LICENSING.md.
Upgrading from 0.5.0 is a version-string change and nothing else.
0.5.0 does not change token values. It splits the logo rule by context: product UI and chrome stay
strictly monochrome, while brand artwork may use the new display lockup (prism mark + single-ink
wordmark). The wordmark is never coloured in either context. See "0.5.0 — UI vs brand artwork" in
DESIGN.md.
0.4.0 does not change token values either. It gives the design system ownership of the logo:
one monochrome lockup, published as @aios-alpha/design/brand/* and as AiosLogo in
@aios-alpha/ui, replacing the six inconsistent marks that were in circulation. The prism
gradient is now bare-mark-only. See "0.4.0 — Brand & logo contract" in DESIGN.md.
Migrating from 0.1.x
- Fonts: Space Grotesk + Plus Jakarta Sans → Instrument Serif + Instrument Sans.
- Buttons: violet glow pills → near-black/white editorial pills (
primarytoken changed). - Badges: team/deliverable now use
violettoken, notprimary. - Local CSS bridges: if you alias
--accentto--aios-primary, split — buttons stay onprimary, link/highlight washes move to--aios-violet.
Light vs dark
Light is :root. class="dark" on <html> swaps color values; type, spacing, and radius are mode-independent.
Pencil prototyping
dist/tokens.pencil.json holds flat token maps for the Pencil MCP set_variables call. See PENCIL.md.
License
Apache-2.0 — see LICENSE and LICENSING.md.
Permissive on purpose. This is meant to be embedded in your interfaces, including commercial and closed-source ones. Keep the license and copyright notices, state what you changed, and it's yours to use.
Versions published at 0.5.0 and earlier were MIT and remain MIT — see
LICENSE-MIT and CHANGELOG.md. The relicense is
going-forward only, and it ships as a major version precisely so it isn't a surprise.
The AIOS server is AGPL-3.0 while this is Apache-2.0; that split is deliberate, and
LICENSING.md explains it.
