Skip to main content

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.
+---------------------------------------------------------------------------------+
|  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.
+---------------------------------------------------------------------------------+
|  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.
+---------------------------------------------------------------------------------+
|  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.
+---------------------------------------------------------------------------------+
|  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.
+---------------------------------------------------------------------------------+
|  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.
+---------------------------------------------------------------------------------+
|  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.
+---------------------------------------------------------------------------------+
|  DISABLED DESATURATION                                                          |
+---------------------------------------------------------------------------------+
|                                                                                 |
|   ENABLED                     DISABLED                                         |
|   ################    -->    ................                                  |
|   Full saturation             +60% gray mixed                                  |
|                                                                                 |
|   Retains color hint but clearly signals non-interactivity                    |
|                                                                                 |
+---------------------------------------------------------------------------------+

Complete Flow Pattern Reference

+---------------------------------------------------------------------------------+
|  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

+---------------------------------------------------------------------------------+
|  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