# `base.css`

A classless base stylesheet that applies sensible defaults to plain HTML elements — typography, spacing, tables, forms, buttons, code blocks, blockquotes, and icon-buttons. Every rule is `:where()`-wrapped (specificity 0), so any consumer class, utility, or inline style always wins.

It imports `theme.css` automatically, so a single import gives you both the design tokens and the element defaults.

## Import

```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@llumi/design-system@2/base.css" />
```

Or in JS:

```ts
import "@llumi/design-system/base.css";
```

## What it covers

- **Typography** — font family, sizing, line-height for `html`, headings `h1`–`h6`, paragraphs, lists
- **Links** — color + underline offset (hover state)
- **Code** — `code`, `pre`, `kbd`, `samp` with surface background and borders
- **Tables** — full width, collapsed borders, padded cells
- **Forms** — `input`, `textarea`, `select`, `button`, `fieldset`, `legend` with focus rings
- **Icon buttons** — any `<button>` whose only child is an `<i>` icon gets square sizing + hover/focus/disabled states
- **Misc** — `blockquote`, `hr`, `mark`, `figure`/`figcaption`, responsive media

## Overriding theme variables

All defaults consume `--llumi-*` custom properties. Override them on `:root` (or any ancestor) to retheme:

```css
:root {
  /* Brand colors */
  --llumi-color-primary: oklch(55% 0.25 250);
  --llumi-color-primary-hover: oklch(48% 0.22 250);

  /* Surfaces */
  --llumi-color-bg: oklch(98% 0 0);
  --llumi-color-surface: oklch(100% 0 0);
  --llumi-color-fg: oklch(20% 0 0);
  --llumi-color-muted: oklch(50% 0 0);
  --llumi-color-border: oklch(90% 0 0);

  /* Shape */
  --llumi-radius: 0.375rem;
  --llumi-radius-sm: 0.25rem;

  /* Typography */
  --llumi-font-sans: "Inter", sans-serif;
  --llumi-text-base: 1.05rem;
  --llumi-leading: 1.6;
}
```

Dark mode is handled via `[data-theme="dark"]` or `prefers-color-scheme: dark` — only neutral surfaces remap; brand and status colors stay constant. Force a mode with `data-theme="light"` or `data-theme="dark"` on `<html>`.

See [`theme.css`](./theme.css) for the full token list.
