What are Flow Colors?
Flow Colors are derived from Core Colors to represent states, transitions, and overlays. They use OKLAB (Cartesian coordinates) for perceptually uniform mixing.Copy
+---------------------------------------------------------------------------------+
| CORE vs FLOW |
+---------------------------------------------------------------------------------+
| |
| CORE (OKLCH Polar) FLOW (OKLAB Cartesian) |
| ================== ======================== |
| |
| "What IS this?" "How does it BEHAVE?" |
| |
| Identity colors: State colors: |
| * Primary (blue) * Hover (lighter) |
| * Success (green) * Active (darker) |
| * Danger (red) * Disabled (grayed) |
| * Warning (yellow) * Muted (transparent) |
| |
+---------------------------------------------------------------------------------+
Why OKLAB for Mixing?
When colors blend together, the path they take through color space matters. OKLAB provides a perceptually straight path.Copy
+---------------------------------------------------------------------------------+
| sRGB vs OKLAB INTERPOLATION |
+---------------------------------------------------------------------------------+
| |
| sRGB Path (Blue to Yellow): |
| ============================ |
| |
| Blue -----> Muddy Brown -----> Yellow |
| (desaturated) |
| |
| Problem: Non-linear RGB causes desaturation in middle |
| |
| +-------------------------------------------------------+ |
| | #### .... .... .... #### | |
| | BLUE gray mud gray YELLOW | |
| +-------------------------------------------------------+ |
| |
+---------------------------------------------------------------------------------+
| |
| OKLAB Path (Blue to Yellow): |
| ============================= |
| |
| Blue -----> Vibrant Purple -----> Yellow |
| (saturated) |
| |
| Solution: Perceptually uniform space maintains saturation |
| |
| +-------------------------------------------------------+ |
| | #### #### #### #### #### | |
| | BLUE violet purple orange YELLOW | |
| +-------------------------------------------------------+ |
| |
| "When colors flow from Core to Core, OKLAB prevents muddy transitions" |
| |
+---------------------------------------------------------------------------------+
OKLAB Coordinate System
OKLAB uses Cartesian coordinates (L, a, b) - like a 3D box rather than a cylinder.Copy
+---------------------------------------------------------------------------------+
| OKLAB CARTESIAN SPACE |
+---------------------------------------------------------------------------------+
| |
| +Y (Yellow) |
| | |
| | |
| +------------+------------+ |
| /| | |\ |
| / | | | \ |
| -X (Green) | | | +X (Red) |
| \ | L (Lightness) | / |
| \| 0=black, 1=white |/ |
| +------------+------------+ |
| | |
| | |
| -Y (Blue) |
| |
| Component Range Meaning |
| --------- ----- ------- |
| L 0-1 Lightness (0=black, 1=white) |
| a -0.4 to 0.4 Green-Red axis |
| b -0.4 to 0.4 Blue-Yellow axis |
| |
+---------------------------------------------------------------------------------+
Flow Patterns
Pattern 1: Transparency
For backgrounds and overlays - create subtle tinted areas.Copy
+---------------------------------------------------------------------------------+
| TRANSPARENCY FLOW |
+---------------------------------------------------------------------------------+
| |
| Core Color (100%) |
| ###################### |
| Full vibrant blue |
| |
| | mix with transparent 80% |
| v |
| |
| Muted Background (20% visible) |
| ....##................ |
| Subtle blue tint |
| |
| Use: Badge backgrounds, selection highlights, status areas |
| |
+---------------------------------------------------------------------------------+
Pattern 2: Hover States
For interactive element hover - lighten while preserving identity.Copy
+---------------------------------------------------------------------------------+
| HOVER LIGHTENING |
+---------------------------------------------------------------------------------+
| |
| DEFAULT HOVER |
| ################ --> ....############.... |
| Base color +15% white added |
| |
| Note: Uses OKLCH (polar) to preserve hue while adjusting lightness |
| |
+---------------------------------------------------------------------------------+
Pattern 3: Active/Pressed States
For active/pressed interactions - darken to show engagement.Copy
+---------------------------------------------------------------------------------+
| ACTIVE DARKENING |
+---------------------------------------------------------------------------------+
| |
| DEFAULT ACTIVE |
| ################ --> ################## |
| Base color +20% black added |
| |
| Creates a "pressed in" visual feedback |
| |
+---------------------------------------------------------------------------------+
Pattern 4: Disabled States
For disabled elements - reduce color intensity.Copy
+---------------------------------------------------------------------------------+
| DISABLED DESATURATION |
+---------------------------------------------------------------------------------+
| |
| ENABLED DISABLED |
| ################ --> ................ |
| Full saturation +60% gray mixed |
| |
| Retains color hint but clearly signals non-interactivity |
| |
+---------------------------------------------------------------------------------+
Complete Flow Pattern Reference
Copy
+---------------------------------------------------------------------------------+
| COMPLETE FLOW PATTERN REFERENCE |
+---------------------------------------------------------------------------------+
| |
| STATE MODIFIER SPACE VISUAL |
| ---------------- ---------------- ----- ----------------------- |
| |
| Muted Background transparent 80% OKLAB ....##................ |
| Hover white 15% OKLCH ....############.... |
| Active/Pressed black 20% OKLAB ################## |
| Disabled gray 60% OKLAB ................ |
| Focus ring transparent 50% OKLAB ..........##.......... |
| Border transparent 70% OKLAB ......####...... |
| |
| RULE OF THUMB: |
| * Transparency/Darkening -> OKLAB (cartesian) |
| * Hue-preserving lightness -> OKLCH (polar) |
| * Core-to-Core interpolation -> OKLAB (no muddy colors) |
| |
+---------------------------------------------------------------------------------+
When to Use Each Color Space
Copy
+---------------------------------------------------------------------------------+
| OKLAB vs OKLCH SELECTION GUIDE |
+---------------------------------------------------------------------------------+
| |
| OKLAB OKLCH |
| ===== ===== |
| |
| Best for: Blending operations Lightness adjustments |
| Transparency Hover states |
| Darkening Hue preservation |
| Desaturation |
| |
| Think: "Mixing two things" "Adjusting one thing" |
| |
| Examples: Muted backgrounds Hover lightening |
| Gradients Color scales |
| Active states |
| Disabled states |
| |
+---------------------------------------------------------------------------------+
State Transitions
Learn how hover, active, and disabled states are derived