Crystal
Themes

Themes Overview

Crystal's gemstone-inspired theming system — 13 palettes, infinite personality.

Crystal's theming is built on Axis 1: Color Identity. Each theme is a complete color palette mapped to semantic tokens. Switch themes instantly by setting data-crystal on any container.

Core Themes

Theme Comparison

diamond
Primary
Accent
onyx
Primary
Accent
garnet
Primary
Accent
sapphire
Primary
Accent

Crystal ships with 8 core themes, each inspired by a gemstone:

ThemeAccentModeCharacter
DiamondCyan #06b6d4LightClean, bright, professional
OnyxCyan #22d3eeDarkDeep black, tech-forward
GarnetOrange #f97316DarkWarm red, enterprise
SapphireCyan #06b6d4DarkCool blue, professional
AmethystPink #ec4899DarkPurple, luxury/creative
CitrineOrange #ea580cLightWarm yellow, optimistic
RubyGold #fbbf24DarkBold red, high-energy
EmeraldCyan #06b6d4DarkGreen, growth/finance

Extended Themes

Five additional themes for specialized use cases:

ThemeModeCharacter
OpalLightIridescent, playful (fuchsia/purple)
QuartzLightRose/pink, warm and inviting
TopazDarkAmber/orange, bold and warm
ObsidianDarkDeep black, ultraminimal
Amethyst DreamDarkSignature Artasce palette (deep purple + warm white)

Portfolio Mapping

Each portfolio brand is assigned a Crystal theme:

BrandThemeCrystallizationStatus
OpsCenterOnyxEdgeProduction
artasce.comDiamondCleanMapped
MademoiselleAmethystDreamMapped
ACModelsRubyBoldMapped
VoyaVacationsCitrineCleanMapped
SyncFocusSapphireEdgeMapped
ModollaEmeraldCleanMapped

Applying a Theme

<!-- HTML attribute -->
<html data-crystal="sapphire">
// React component
import { CrystalProvider } from '@artasce/crystal-ui';

<CrystalProvider theme="sapphire">
  <App />
</CrystalProvider>

Creating a Custom Theme

Define your own theme by providing values for all semantic tokens:

[data-crystal='custom'] {
  --crystal-name: 'Custom';
  --crystal-bg: #your-bg;
  --crystal-bg-subtle: #your-bg-subtle;
  --crystal-bg-muted: #your-bg-muted;
  --crystal-surface: #your-surface;
  --crystal-surface-elevated: #your-surface-elevated;
  --crystal-border: #your-border;
  --crystal-border-subtle: #your-border-subtle;
  --crystal-text: #your-text;
  --crystal-text-secondary: #your-text-secondary;
  --crystal-text-muted: #your-text-muted;
  --crystal-text-primary: #your-text-primary;
  --crystal-primary: #your-primary;
  --crystal-primary-hover: #your-primary-hover;
  --crystal-accent: #your-accent;
  --crystal-accent-subtle: #your-accent-subtle;
  --crystal-cool: #your-cool;
  --crystal-cool-hover: #your-cool-hover;
  --crystal-warm: #your-warm;
}

All 18 tokens must be defined for a complete theme. See individual theme pages for value references.