Theming
arclo uses CSS custom properties for all visual styling. Override a few variables to match your brand — no build step, no config files.
Quick Start
Import the styles and you're ready to go. The default theme is Noir (black accent).
tsx
import "@arc-lo/ui/styles.css";Color Themes
arclo ships with 6 built-in color themes. Add a data-theme attribute to your HTML element to switch:
High confidenceReady
css
/* Add to your CSS or HTML */
<html data-theme="violet">
/* Or override variables directly */
:root {
--arclo-accent: #6C5CE7;
--arclo-accent-hover: #5A4BD1;
--arclo-accent-fg: #ffffff;
}Custom Theme
You can create your own theme by overriding the CSS variables directly:
css
/* In your global CSS */
:root {
--arclo-accent: #e63946;
--arclo-accent-hover: #c1121f;
--arclo-accent-fg: #ffffff;
--arclo-surface: #fafafa;
--arclo-border: #e0e0e0;
}
/* Or scope to a container */
.my-chat-widget {
--arclo-accent: #264653;
--arclo-accent-hover: #1d3a47;
--arclo-accent-fg: #ffffff;
}Dark Mode
arclo supports dark mode via both prefers-color-scheme media query and a .dark class on the root element. Color themes work independently of dark/light mode.
css
/* Automatic — follows system preference */
@media (prefers-color-scheme: dark) {
:root {
--arclo-surface: #0a0a0a;
--arclo-border: #27272a;
}
}
/* Manual — toggle via class */
.dark {
--arclo-surface: #0a0a0a;
--arclo-border: #27272a;
}
/* HTML usage */
<html class="dark" data-theme="violet">Available Variables
CSS Custom Properties
| Variable | Default | Description |
|---|---|---|
--arclo-accent | #1a1a1a | Primary accent color used for buttons, active states, and highlights |
--arclo-accent-hover | #333333 | Hover state for the accent color |
--arclo-accent-fg | #ffffff | Foreground (text) color on accent backgrounds |
--arclo-surface | #ffffff | Background color for component surfaces (cards, chat, panels) |
--arclo-border | #e5e7eb | Border color for component outlines and dividers |
--arclo-text | #111827 | Primary text color inside components |
--arclo-text-muted | #6b7280 | Secondary/muted text color for labels and placeholders |
--arclo-radius | 0.5rem | Border radius for components |