Colors
Semantic color roles, and when to use each.
Appica UI's palette is organized by role, not by hue. Instead of blue-500,
you use primary or info-emphasis. This keeps components meaningful and lets a
single token override retheme the whole system. Every color is defined in
oklch and is overridable — see Theming.
Each color is exposed as a Tailwind utility (bg-*, text-*, border-*) and as
a raw CSS variable named after the role — var(--primary), var(--foreground),
and so on. See Theming.
Base colors
The grayscale foundation of every layout: backgrounds, text, and borders. Each family is a scale from subtle to intense.
Foreground (text & icons)
Background (surfaces)
Border
Accent palettes
Six semantic accents share an identical scale, so they're interchangeable by
intent. primary and secondary carry your brand; error, success,
warning, and info carry status.
For example, an info alert pairs bg-info-subtle (surface), bg-info-soft (border), with text-info-foreground;
a solid primary button pairs bg-primary with text-primary-foreground.
Focus rings
Focus styling has its own token set so the ring can differ from borders. Each maps
to a matching role, and components apply them automatically on :focus-visible —
see Accessibility.
Overriding the palette
Any token can be redefined after the stylesheet import, separately per theme:
Head to Theming for the raw-vs-theme token model and the non-color tokens (radius, shadows, typography).