121
GitHub

Open source121 crafted primitives

Build interfaces
people want to use.

A complete UI foundation for Astro, React, and Web Components. Accessible by default, beautifully tokenized, and designed to feel like yours.

Start buildingExplore components
Quick install
AtlasPro
SA

Thursday, July 23

Good morning, Santi.

Monthly revenue
+12.4% from last month
$48,290
Active projects
8 due this week
24
Team healthExcellent
Across 4 squads
94%
AKJMLR+8

Performance

Revenue across the last 6 months

$50k$25k$0

Recent activity

Your workspace today

AKAda joined the workspace
JMNew theme published
LRAccessibility audit passed

One system. Every surface.

components
121
framework targets
03
runtime lock-in
00
ActionsFormsNavigationOverlaysData displayFeedbackLayoutBrand

Designed as a system

The pieces already know
how to work together.

Production-ready controls with consistent states, spacing, motion, and behavior—composed into real interface patterns.

Browse all 121 components
Actions7 variants

Buttons, links, groups, toggles, and toolbars share one visual rhythm.

FormsValid
Date & timeKeyboard ready
July 2026
MonTueWedThuFriSatSun
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
People & progressIn review
SAAKJM+6
Design system rollout82%
Semantic tokens
brandaccentsuccesswarningdanger

Theme the meaning once. Every primitive follows.

Quietly rigorous

Craft you can see.
Details you don’t have to chase.

013 targets

Change frameworks, not your design language.

One semantic class contract keeps Astro, React, and custom elements visually aligned.

02A11y first

The accessible path is the default path.

Keyboard paths, focus management, labels, and meaningful markup are part of the primitive.

03~4 KB

Keep the interaction. Lose the weight.

Interactive Astro primitives use a tiny progressive-enhancement layer, not an app runtime.

AI-native UI

Give your coding agent
the Lumen design system.

Install one portable skill for Codex, Claude Code, Cursor, Windsurf, and other Agent Skills clients. It teaches your AI to choose real Lumen primitives, respect the current framework, use semantic tokens, and verify accessible interactions.

Agent Skills
$npx skills add santi020k/lumen --skill lumen-ui
Detect framework Select primitives Apply tokens Verify behavior

Bring your framework

One design language.
Three native implementations.

Start with the adapter for your stack. The names, tokens, and interaction model stay familiar when your project changes.

pnpm

bash
pnpm add @santi020k/lumen-astro
pnpm add @santi020k/lumen-astro

npm

bash
npm install @santi020k/lumen-astro
npm install @santi020k/lumen-astro

yarn

bash
yarn add @santi020k/lumen-astro
yarn add @santi020k/lumen-astro

With the stylesheet loaded globally, import components where you use them. Mount UIPrimitives once in your root layout only if you use interactive primitives; do not add it beside every component.

astro
---
import { Button, Card, Input } from '@santi020k/lumen-astro'
---

<Card>
  <label for="email">Email</label>
  <Input id="email" type="email" placeholder="you@example.com" />
  <Button>Subscribe</Button>
</Card>
---
import { Button, Card, Input } from '@santi020k/lumen-astro'
---

<Card>
  <label for="email">Email</label>
  <Input id="email" type="email" placeholder="you@example.com" />
  <Button>Subscribe</Button>
</Card>

Build something considered

Your product deserves
better defaults.

Start with Lumen’s accessible primitives, then make the system unmistakably yours.