Colors
Overview of the color system and semantic color tokens in Apsara.Apsara uses a semantic color system that provides meaningful, context-aware colors for your interface. Colors are organized by their purpose rather than their appearance, making it easy to maintain consistency and support theming.
Foreground Colors
Foreground colors are used for text, icons, and other content elements.
Base Foreground
| Token | Description |
|---|---|
--rs-color-foreground-base-primary | Primary text color for headings and important content |
--rs-color-foreground-base-secondary | Secondary text color for supporting content |
--rs-color-foreground-base-tertiary | Tertiary text color for muted or placeholder content |
--rs-color-foreground-base-emphasis | High contrast text for emphasis on colored backgrounds |
Semantic Foreground
| Token | Description |
|---|---|
--rs-color-foreground-accent-primary | Accent color for interactive elements and links |
--rs-color-foreground-accent-primary-hover | Hover state for accent foreground |
--rs-color-foreground-accent-emphasis | Text on accent emphasis backgrounds |
--rs-color-foreground-danger-primary | Error and destructive action text |
--rs-color-foreground-danger-primary-hover | Hover state for danger foreground |
--rs-color-foreground-danger-emphasis | Text on danger emphasis backgrounds |
--rs-color-foreground-attention-primary | Warning and attention text |
--rs-color-foreground-attention-primary-hover | Hover state for attention foreground |
--rs-color-foreground-attention-emphasis | Text on attention emphasis backgrounds |
--rs-color-foreground-success-primary | Success and positive action text |
--rs-color-foreground-success-primary-hover | Hover state for success foreground |
--rs-color-foreground-success-emphasis | Text on success emphasis backgrounds |
Background Colors
Background colors define surfaces and containers in your interface.
Base Background
| Token | Description |
|---|---|
--rs-color-background-base-primary | Primary background for main content areas |
--rs-color-background-base-primary-hover | Hover state for primary background |
--rs-color-background-base-secondary | Secondary background for cards and panels |
--rs-color-background-neutral-primary | Neutral background for subtle elements |
--rs-color-background-neutral-secondary | Secondary neutral background |
--rs-color-background-neutral-secondary-hover | Hover state for secondary neutral background |
--rs-color-background-neutral-tertiary | Tertiary neutral background |
--rs-color-background-neutral-tertiary-hover | Hover state for tertiary neutral background |
--rs-color-background-neutral-emphasis | High contrast neutral background |
Semantic Background
| Token | Description |
|---|---|
--rs-color-background-accent-primary | Subtle accent background for highlights |
--rs-color-background-accent-emphasis | Strong accent background for buttons and CTAs |
--rs-color-background-accent-emphasis-hover | Hover state for accent emphasis background |
--rs-color-background-danger-primary | Subtle danger background for error states |
--rs-color-background-danger-emphasis | Strong danger background for destructive actions |
--rs-color-background-danger-emphasis-hover | Hover state for danger emphasis background |
--rs-color-background-attention-primary | Subtle attention background for warnings |
--rs-color-background-attention-emphasis | Strong attention background |
--rs-color-background-attention-emphasis-hover | Hover state for attention emphasis background |
--rs-color-background-success-primary | Subtle success background for positive states |
--rs-color-background-success-emphasis | Strong success background |
--rs-color-background-success-emphasis-hover | Hover state for success emphasis background |
Border Colors
Border colors define boundaries and separators.
| Token | Description |
|---|---|
--rs-color-border-base-primary | Primary border for subtle boundaries |
--rs-color-border-base-secondary | Secondary border for dividers |
--rs-color-border-base-tertiary | Tertiary border for inputs and cards |
--rs-color-border-base-tertiary-hover | Hover state for tertiary border |
--rs-color-border-base-focus | Focus ring for interactive elements |
--rs-color-border-base-emphasis | High contrast border for emphasis |
--rs-color-border-accent-primary | Accent border for highlights |
--rs-color-border-accent-emphasis | Strong accent border |
--rs-color-border-accent-emphasis-hover | Hover state for accent emphasis border |
--rs-color-border-danger-primary | Danger border for error states |
--rs-color-border-danger-emphasis | Strong danger border |
--rs-color-border-danger-emphasis-hover | Hover state for danger emphasis border |
--rs-color-border-attention-primary | Attention border for warnings |
--rs-color-border-attention-emphasis | Strong attention border |
--rs-color-border-attention-emphasis-hover | Hover state for attention emphasis border |
--rs-color-border-success-primary | Success border for positive states |
--rs-color-border-success-emphasis | Strong success border |
--rs-color-border-success-emphasis-hover | Hover state for success emphasis border |
Overlay Colors
Overlay colors are used for modals, tooltips, and layered elements.
| Token | Opacity |
|---|---|
--rs-color-overlay-base-primary | Default overlay |
--rs-color-overlay-black-a1 | 5% |
--rs-color-overlay-black-a2 | 10% |
--rs-color-overlay-black-a3 | 15% |
--rs-color-overlay-black-a4 | 20% |
--rs-color-overlay-black-a5 | 30% |
--rs-color-overlay-black-a6 | 40% |
--rs-color-overlay-black-a7 | 50% |
--rs-color-overlay-black-a8 | 60% |
--rs-color-overlay-black-a9 | 70% |
--rs-color-overlay-black-a10 | 80% |
--rs-color-overlay-black-a11 | 90% |
--rs-color-overlay-black-a12 | 95% |
--rs-color-overlay-white-a1 | 5% |
--rs-color-overlay-white-a2 | 10% |
--rs-color-overlay-white-a3 | 15% |
--rs-color-overlay-white-a4 | 20% |
--rs-color-overlay-white-a5 | 30% |
--rs-color-overlay-white-a6 | 40% |
--rs-color-overlay-white-a7 | 50% |
--rs-color-overlay-white-a8 | 60% |
--rs-color-overlay-white-a9 | 70% |
--rs-color-overlay-white-a10 | 80% |
--rs-color-overlay-white-a11 | 90% |
--rs-color-overlay-white-a12 | 95% |
Visualization Colors
A palette of colors designed for data visualization, charts, and graphs.
| Color | Tokens |
|---|---|
| Sky | --rs-color-viz-sky-6, --rs-color-viz-sky-8, --rs-color-viz-sky-9, --rs-color-viz-sky-11 |
| Mint | --rs-color-viz-mint-6, --rs-color-viz-mint-8, --rs-color-viz-mint-9, --rs-color-viz-mint-11 |
| Lime | --rs-color-viz-lime-6, --rs-color-viz-lime-8, --rs-color-viz-lime-9, --rs-color-viz-lime-11 |
| Grass | --rs-color-viz-grass-6, --rs-color-viz-grass-8, --rs-color-viz-grass-9, --rs-color-viz-grass-11 |
| Green | --rs-color-viz-green-6, --rs-color-viz-green-8, --rs-color-viz-green-9, --rs-color-viz-green-11 |
| Jade | --rs-color-viz-jade-6, --rs-color-viz-jade-8, --rs-color-viz-jade-9, --rs-color-viz-jade-11 |
| Cyan | --rs-color-viz-cyan-6, --rs-color-viz-cyan-8, --rs-color-viz-cyan-9, --rs-color-viz-cyan-11 |
| Blue | --rs-color-viz-blue-6, --rs-color-viz-blue-8, --rs-color-viz-blue-9, --rs-color-viz-blue-11 |
| Iris | --rs-color-viz-iris-6, --rs-color-viz-iris-8, --rs-color-viz-iris-9, --rs-color-viz-iris-11 |
| Purple | --rs-color-viz-purple-6, --rs-color-viz-purple-8, --rs-color-viz-purple-9, --rs-color-viz-purple-11 |
| Pink | --rs-color-viz-pink-6, --rs-color-viz-pink-8, --rs-color-viz-pink-9, --rs-color-viz-pink-11 |
| Crimson | --rs-color-viz-crimson-6, --rs-color-viz-crimson-8, --rs-color-viz-crimson-9, --rs-color-viz-crimson-11 |
| Orange | --rs-color-viz-orange-6, --rs-color-viz-orange-8, --rs-color-viz-orange-9, --rs-color-viz-orange-11 |
| Gold | --rs-color-viz-gold-6, --rs-color-viz-gold-8, --rs-color-viz-gold-9, --rs-color-viz-gold-11 |
Usage
1/* Text colors */2.heading {3 color: var(--rs-color-foreground-base-primary);4}56.description {7 color: var(--rs-color-foreground-base-secondary);8}910/* Background colors */11.card {12 background-color: var(--rs-color-background-base-secondary);13}1415.button-primary {16 background-color: var(--rs-color-background-accent-emphasis);17 color: var(--rs-color-foreground-accent-emphasis);18}1920/* Border colors */21.input {22 border: 1px solid var(--rs-color-border-base-tertiary);23}2425.input:focus {26 border-color: var(--rs-color-border-accent-emphasis);27}2829/* Semantic states */30.error {31 color: var(--rs-color-foreground-danger-primary);32 background-color: var(--rs-color-background-danger-primary);33 border-color: var(--rs-color-border-danger-primary);34}
Best Practices
- Use semantic tokens - Prefer semantic color tokens over raw color values for consistency and theming support
- Match foreground with background - Use corresponding foreground colors when placing text on semantic backgrounds (e.g.,
foreground-accent-emphasisonbackground-accent-emphasis) - Respect color hierarchy - Use primary colors for main content, secondary for supporting content, and tertiary for subtle elements
- Test in both themes - Ensure your color choices work well in both light and dark modes