# Hikari UI > Class-light CSS framework for semantic HTML. Bare tags look great with no classes; a small data-* vocabulary adds variants; a data-theme container swaps the whole palette from ~20 tokens. Hikari is a class-light CSS framework for semantic HTML. Bare tags look great with no classes; a small `data-*` vocabulary adds variants; a `data-theme` container swaps the whole palette. This file is the single source of truth — `llms.txt`, the consumer `AGENTS.md`, and the installable Skill all derive from it. ## Prime directive Write bare, correct semantic HTML. Reach for the right element first (` ``` Buttons take a tone **only** with `solid`; there is no soft toned button. Reserve the one solid primary for a view's single main action. ### Card ```html

Title

A quiet raised surface with a hairline. No classes.

``` ### Badge ```html Neutral Passing 3 errors ``` ### Chip A filter/input token. Chips carry **selection, not tone** — no `data-variant`. ```html filter.css ``` With `hikari.js`, clicking a filter chip toggles `aria-pressed`; a `data-chip-remove` button removes its chip. ### Alert A callout. The ARIA role is an independent a11y choice from the tone. ```html
Saved — changes are live.
Failed — couldn't reach the server.
Deleted — the record is gone.
``` Use `role="alert"` for errors, `role="status"` for confirmations. ### Toast (JS) Transient feedback, via `hikari.js`. No markup — call the helper: ```js Hikari.toast("Changes saved"); Hikari.toast("Couldn't reach the server", { variant: "danger" }); Hikari.toast("Undo available", { duration: 8000, closable: true }); ``` ### Tabs Minimal markup; `hikari.js` wires ARIA roles, roving arrow-key nav, and panel visibility. With no JS every panel stays visible (nothing is hidden). ```html
``` Panels map 1:1 to the buttons, in order. ### Accordion Native disclosure — no JS, no hook. ```html
What is Hikari?

Bare details/summary; the chevron rotates on open.

``` ### Dialog (modal) Native ``, opened with native command invokers. `hikari.js` polyfills invokers only where the browser lacks them. ```html

Confirm

``` ### Dropdown menu Native Popover API. The button opens the menu; the browser owns toggle, light-dismiss, and focus. ```html ``` A `[popovertarget]` button placed immediately before its `[data-menu]` gets a chevron that flips on open. ### Tooltip CSS-only supplementary hint. **Not** an accessible name — the element still needs real visible text or `aria-label`. ```html ``` ### Forms Bare fields. Wire `