Components
All components are semantic-first. Most work with zero classes — just write correct HTML.
Button
Style native <button> elements via data-variant. Loading state via aria-busy.
Dropdown
Use the <lux-dropdown> web component. Keyboard navigable, closes on outside click or Escape.
Inputs
Native inputs styled automatically. Use .field wrapper for label + hint + validation. aria-invalid="true" triggers error state.
Checkbox · Radio
Fully custom-styled, accessible. Wrap with .checkbox-label or .radio-label for clickable labels.
Switch
A checkbox with role="switch". No JS needed.
Card
Surface container with .card. Variants: glass, subtle. Stat cards for dashboards.
Project Alpha
Last deploy 2 min ago
Production build is healthy. 3 services running.
Glass card
Backdrop blur, ideal for overlay UIs.
Table
Wrap in .table-wrap for overflow + rounded border. Add data-sort to <th> for sort indicators.
| Model | Provider | Tokens/s | Status | |
|---|---|---|---|---|
| claude-sonnet-4-6 | Anthropic | 94 | Live | |
| gpt-4o | OpenAI | 78 | Live | |
| llama-3.3-70b | Groq | 312 | Beta |
Alert
Use data-variant for semantic color. Add .alert-title for bold heading. SVG icon is optional.
--accent variable was renamed.Badge
Inline status chips. Add .dot for a leading indicator dot. Sizes: default, .md, .lg.
Toast
JavaScript API via lux.toast(). Shorthand: lux.toast.success(), .error(), .warning(), .info().
Progress · Spinner
Native <progress> element, styled with CSS. Spinner via .spinner.
Skeleton
Loading placeholders via .skeleton. Variants: .text, .title, .circle, .card.
Tabs
<lux-tabs> web component. Arrow keys navigate. Two styles: pill (default) and underline.
Usage graphs go here.
Configure your project settings.
Model list.
Prompt library.
Request logs.
Accordion
Pure CSS using native <details> / <summary>. No JS. Add .flush for borderless style.
What models are supported?
Is there a free tier?
How do I self-host?
docker compose up, and configure your .env. Docs cover every option.Avatar
Image or initials. Sizes: .sm, default, .lg, .xl. Group with .avatar-group.
Tooltip
Pure CSS via data-tooltip attribute. No JS. Position with data-tip-pos="bottom".
Dialog · Sheet
Native <dialog>. Open with data-dialog="id", close with data-dialog-close. Sheet slides from the right.
Typography
All heading levels, body text, inline elements, and code blocks are styled automatically.
Heading 1
Heading 2
Heading 3
Heading 4
Body text. The quick brown fox jumps over the lazy dog. Bold, italic, and linked text.
Inline code, keyboard shortcut ⌘K, and highlighted text.
Semantic HTML is the foundation. Lux makes it beautiful.
const result = await lux.ai.complete({ model: 'claude-sonnet-4-6', prompt });