apps/eclipse/content/design-system/tokens/colors.mdx
The Eclipse Design System provides a comprehensive color palette with semantic naming and automatic dark mode support. All colors are synced from Figma and organized by usage.
Colors are organized into three main categories:
Each category has variants for different products and semantic meanings.
Background colors for neutral surfaces and containers.
<div className="not-prose my-8 space-y-4"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-default border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-default</span> </div> <p className="text-xs text-gray-600">Primary background</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-neutral-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-neutral-strong</span> </div> <p className="text-xs text-gray-600">Strong neutral</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-neutral border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-neutral</span> </div> <p className="text-xs text-gray-600">Default neutral</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-neutral-weak border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-neutral-weak</span> </div> <p className="text-xs text-gray-600">Weak neutral</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-neutral-weaker border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-neutral-weaker</span> </div> <p className="text-xs text-gray-600">Weaker neutral</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-neutral-reverse border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral-reverse text-sm font-mono">bg-background-neutral-reverse</span> </div> <p className="text-xs text-gray-600">Reverse (inverted)</p> </div> </div> </div>Teal/cyan themed colors for Prisma Pulse and Accelerate branding.
<div className="not-prose my-8"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-ppg-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-ppg-reverse text-sm font-mono">bg-background-ppg-strong</span> </div> <p className="text-xs text-gray-600">Strong PPG</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-ppg border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-ppg</span> </div> <p className="text-xs text-gray-600">Default PPG</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-ppg-reverse-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-ppg text-sm font-mono">bg-background-ppg-reverse-strong</span> </div> <p className="text-xs text-gray-600">Reverse strong</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-ppg-reverse border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-ppg text-sm font-mono">bg-background-ppg-reverse</span> </div> <p className="text-xs text-gray-600">Reverse</p> </div> </div> </div>Indigo/purple themed colors for Prisma ORM branding.
<div className="not-prose my-8"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-orm-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-orm-reverse text-sm font-mono">bg-background-orm-strong</span> </div> <p className="text-xs text-gray-600">Strong ORM</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-orm border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-orm</span> </div> <p className="text-xs text-gray-600">Default ORM</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-orm-reverse-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-orm text-sm font-mono">bg-background-orm-reverse-strong</span> </div> <p className="text-xs text-gray-600">Reverse strong</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-orm-reverse border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-orm text-sm font-mono">bg-background-orm-reverse</span> </div> <p className="text-xs text-gray-600">Reverse</p> </div> </div> </div>Red colors for error states and destructive actions.
<div className="not-prose my-8"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-error-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-error-reverse text-sm font-mono">bg-background-error-strong</span> </div> <p className="text-xs text-gray-600">Strong error</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-error border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-error</span> </div> <p className="text-xs text-gray-600">Default error</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-error-reverse-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-error text-sm font-mono">bg-background-error-reverse-strong</span> </div> <p className="text-xs text-gray-600">Reverse strong</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-error-reverse border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-error text-sm font-mono">bg-background-error-reverse</span> </div> <p className="text-xs text-gray-600">Reverse</p> </div> </div> </div>Green colors for success states and positive feedback.
<div className="not-prose my-8"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-success-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-success-reverse text-sm font-mono">bg-background-success-strong</span> </div> <p className="text-xs text-gray-600">Strong success</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-success border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-success</span> </div> <p className="text-xs text-gray-600">Default success</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-success-reverse-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-success text-sm font-mono">bg-background-success-reverse-strong</span> </div> <p className="text-xs text-gray-600">Reverse strong</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-success-reverse border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-success text-sm font-mono">bg-background-success-reverse</span> </div> <p className="text-xs text-gray-600">Reverse</p> </div> </div> </div>Orange/amber colors for warning states and caution.
<div className="not-prose my-8"> <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-warning-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-warning-reverse text-sm font-mono">bg-background-warning-strong</span> </div> <p className="text-xs text-gray-600">Strong warning</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-warning border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-neutral text-sm font-mono">bg-background-warning</span> </div> <p className="text-xs text-gray-600">Default warning</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-warning-reverse-strong border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-warning text-sm font-mono">bg-background-warning-reverse-strong</span> </div> <p className="text-xs text-gray-600">Reverse strong</p> </div> <div className="space-y-2"> <div className="h-24 rounded-lg bg-background-warning-reverse border border-stroke-neutral flex items-center justify-center"> <span className="text-foreground-warning text-sm font-mono">bg-background-warning-reverse</span> </div> <p className="text-xs text-gray-600">Reverse</p> </div> </div> </div>Foreground colors are used for text, icons, and other foreground elements. Each color has multiple strength variants.
Stroke colors are used for borders, dividers, and outlines.
<div className="not-prose my-8"> <div className="grid grid-cols-2 md:grid-cols-4 gap-4"> <div className="space-y-2"> <div className="h-20 border-4 border-stroke-neutral-stronger rounded-lg flex items-center justify-center"> <span className="text-xs font-mono">stroke-neutral-stronger</span> </div> </div> <div className="space-y-2"> <div className="h-20 border-4 border-stroke-neutral-strong rounded-lg flex items-center justify-center"> <span className="text-xs font-mono">stroke-neutral-strong</span> </div> </div> <div className="space-y-2"> <div className="h-20 border-4 border-stroke-neutral rounded-lg flex items-center justify-center"> <span className="text-xs font-mono">stroke-neutral</span> </div> </div> <div className="space-y-2"> <div className="h-20 border-4 border-stroke-neutral-weak rounded-lg flex items-center justify-center"> <span className="text-xs font-mono">stroke-neutral-weak</span> </div> </div> </div> </div>Pre-defined branded gradients.
<div className="not-prose my-8"> <div className="grid grid-cols-1 md:grid-cols-2 gap-4"> <div className="space-y-2"> <div className="h-32 bg-gradient-orm rounded-lg flex items-center justify-center"> <span className="text-white font-semibold text-lg">ORM Gradient</span> </div> <p className="text-xs font-mono">bg-gradient-orm</p> </div> <div className="space-y-2"> <div className="h-32 bg-gradient-ppg rounded-lg flex items-center justify-center"> <span className="text-white font-semibold text-lg">PPG Gradient</span> </div> <p className="text-xs font-mono">bg-gradient-ppg</p> </div> </div> </div><div className="bg-background-neutral text-foreground-neutral">
Neutral content
</div>
<div className="bg-background-ppg-strong text-foreground-ppg-reverse">
PPG branded content
</div>
<div className="bg-background-default border border-stroke-neutral">
Content with border
</div>
<div className="bg-background-error border-2 border-stroke-error">
Error state
</div>
// Error message
<div className="bg-background-error-reverse text-foreground-error p-4 rounded-lg">
Something went wrong!
</div>
// Success message
<div className="bg-background-success-reverse text-foreground-success p-4 rounded-lg">
Operation completed successfully!
</div>
// Warning message
<div className="bg-background-warning-reverse text-foreground-warning p-4 rounded-lg">
Please review before continuing
</div>
All colors automatically adjust for dark mode. The design system uses CSS custom properties that change based on the .dark class on the root element.
All color combinations in the Eclipse Design System meet WCAG AA standards for color contrast:
Always test color combinations with accessibility tools and consider users with color vision deficiencies.