# DAUB UI — Considered Component Library for AI Agents > Version: 3.19.11 > URL: https://daub.dev > CSS: https://daub.dev/daub.css > JS: https://daub.dev/daub.js > Repo: https://github.com/sliday/daub > License: MIT > Components: 76 > Theme Families: 20 (40 variants total) > Components JSON: https://daub.dev/components.json > TypeScript: https://daub.dev/daub.d.ts > React: npm install daub-react daub-ui (72 typed JSX components) ## Quick Start ```html ``` Alternative CDNs (npm package: daub-ui): ```html ``` Classless (zero-class drop-in styling for plain HTML): ```html ``` Progressive (classless defaults + class-based components): ```html ``` Fonts: System font stacks by default. Optional Google Fonts: ```html ``` Icons (optional): `` ## Class Prefix All classes: `db-`. All CSS custom properties: `--db-`. ## Themes 20 theme families in 4 categories, each with light & dark modes (40 variants): **Originals**: default, grunge, solarized, ink, ember, bone **Classics**: dracula, nord, one-dark, monokai, gruvbox **Modern**: night-owl, github, catppuccin, tokyo-night, material **Trending**: synthwave, shades-of-purple, ayu, horizon | Family | Light | Dark | Character | |--------|-------|------|-----------| | Default | `light` | `dark` | Warm cream / deep charcoal | | Grunge | `grunge-light` | `grunge-dark` | Typewriter / ink-stained | | Solarized | `solarized` | `solarized-dark` | Aged paper / antiqued leather | | Ink | `ink-light` | `ink` | Cool editorial / navy silver | | Ember | `ember-light` | `ember` | Sunlit pottery / copper glow | | Bone | `bone` | `bone-dark` | Stark white / grayscale brutalism | | Dracula | `dracula-light` | `dracula` | Alucard warmth / vampire purple | | Nord | `nord-light` | `nord` | Snow storm / arctic frost | | One Dark | `one-dark-light` | `one-dark` | Soft atom / midnight code | | Monokai | `monokai-light` | `monokai` | Warm latte / neon noir | | Gruvbox | `gruvbox-light` | `gruvbox` | Retro cream / earthy dark | | Night Owl | `night-owl-light` | `night-owl` | Soft dawn / deep twilight | | GitHub | `github` | `github-dark` | Clean primer / dimmed slate | | Catppuccin | `catppuccin` | `catppuccin-dark` | Latte pastel / mocha warmth | | Tokyo Night | `tokyo-night-light` | `tokyo-night` | Storm light / city neon | | Material | `material-light` | `material` | Lighter paper / palenight haze | | Synthwave | `synthwave-light` | `synthwave` | Warm retro / neon purple | | Shades of Purple | `shades-of-purple-light` | `shades-of-purple` | Soft lavender / deep violet | | Ayu | `ayu` | `ayu-dark` | Warm light / mirage dark | | Horizon | `horizon-light` | `horizon` | Soft rose / warm dusk | Set via attribute: `` Family API: `DAUB.setFamily('ink')`, `DAUB.setScheme('dark')`, `DAUB.getFamily()` Direct API: `DAUB.setTheme('ink')`, `DAUB.cycleTheme()`, `DAUB.getTheme()` Accent API: `DAUB.setAccent('#6B7C3E')`, `DAUB.resetAccent()`, `DAUB.getAccent()` Temperature API: `DAUB.setTemperature('auto')` (daylight-aware), `DAUB.setTemperature(0.5)` (manual -1 to +1), `DAUB.getTemperature()` Persisted in `localStorage` keys: `db-theme`, `db-scheme`, `db-accent`, `db-temperature`. ## Quick Reference Skeletons Required HTML nesting for overlay and complex components. Use these as a starting template — each shows the minimum required structure. | Component | Skeleton | JS API | |-----------|----------|--------| | Modal | `db-modal-overlay#id[aria-hidden] > db-modal > __header + __body + __footer` | `DAUB.openModal('id')` / `closeModal('id')`. Dynamic content: `DAUB.openModal('id', { title: 'New Title', body: '
Content
', footer: '' })` | | Alert Dialog | `db-alert-dialog#id > __overlay + __panel > __title + __desc + __actions` | `DAUB.openAlertDialog('id')` | | Sheet | `db-sheet.--right#id > __overlay + __panel > __header + __body` | `DAUB.openSheet('id')` | | Drawer | `db-drawer#id > __overlay + __panel > __handle + __body` | `DAUB.openDrawer('id')` | | Command Palette | `db-command#id > __overlay + __panel > __input-wrap + __list` | `DAUB.openCommand('id')` | | Dropdown Menu | `db-dropdown > __trigger + __content > __item + __separator` | Auto-init on click | | Context Menu | `[data-context-menu='id'] + db-context-menu#id > __item + __separator` | Auto-init on right-click | | Tabs | `db-tabs > __list[role=tablist] > __tab + __panel` | Auto-init | | Accordion | `db-accordion > __item > __trigger + __content` | Auto-init | | Custom Select | `db-custom-select > __trigger + __dropdown > __option` | Auto-init | **Notes:** - `__` prefix means BEM child of the block (e.g., `__header` = `db-modal__header`) - Overlay wrappers (modal-overlay, alert-dialog, sheet, drawer, command) need an `id` for JS targeting - `db-modal-overlay` also needs `aria-hidden="true"` for accessibility - `db-field__input` goes on wrapper elements — not just `` tags - Icons: DAUB pairs well with [Lucide](https://unpkg.com/lucide@latest) — all demos use Lucide icons ## Components (76) ### 1. Button — `.db-btn` Variants: `db-btn--primary`, `db-btn--secondary`, `db-btn--ghost` States: `db-btn--loading`, `db-btn--disabled`, `db-btn--pressed` Sizes: `db-btn--sm`, `db-btn--lg`, `db-btn--icon` Icon colors: `db-btn--icon-danger`, `db-btn--icon-success`, `db-btn--icon-accent` ```html ``` ### 2. Button Group — `.db-btn-group` ```htmlDescription

Description
This action cannot be undone.
Something needs attention.




| Name | Role |
|---|---|
| Alice | Engineer |
| Name | Status | |
|---|---|---|
| Item | Active |