@workday/canvas-kit-mcp 15.0.0-alpha.0056-next.0 → 15.0.0-alpha.0064-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,277 @@
1
+ # Color Scale
2
+
3
+ Colors are organized into scales with steps from 0 (lightest) to 1000 (darkest). Colors are designed
4
+ to be perceptually balanced, ensuring consistent lightness across color families. Colors with the
5
+ same step number serve similar purposes, regardless of hue.
6
+
7
+ ![Complete color scale showing 0-1000 progression across multiple color families demonstrating consistent lightness relationships](color-scale-overview.png)
8
+
9
+ Scales are designed using the okLCH color space to create perceptually balanced colors. Color peak
10
+ in vividness at the midpoint (500) and decrease at the tail-ends to create softer surface colors and
11
+ more vibrant accents.
12
+ ![Vividness curve diagram showing how color intensity peaks at step 500 and decreases toward extremes](color-scale-vividness-curve.png)
13
+
14
+ **Amber Exception:** Due to amber's natural color properties, its chroma peaks at lighter values
15
+ (around step 300) rather than 500. This means amber uses step 400 for primary colors to maintain
16
+ accessibility compliance while preserving vibrancy.
17
+
18
+ ![Amber vividness exception showing higher chroma around step 300–400](color-scale-400-amber.png)
19
+
20
+ ![Perceptual uniformity demonstration showing how step 500 appears equally bright across all color families](color-scale-500.png)
21
+
22
+ <Do>
23
+
24
+ - Apply consistent steps for similar UI elements across all color families
25
+ - When choosing color combinations, use the [contrast framework](/guidelines/color/color-contrast)
26
+ to ensure accessible contrast ratios
27
+ - Use steps to create visual hierarchy
28
+
29
+ </Do>
30
+
31
+ <Dont>
32
+
33
+ - Use steps for different purposes
34
+ - Mix steps randomly, always consider visual hierarchy
35
+ - Ignore contrast requirements when choosing steps
36
+
37
+ </Dont>
38
+
39
+ ![Visual hierarchy example showing how step 100 applies consistently to secondary buttons across blue, green, and red color families](color-scale-100-to-300.png)
40
+
41
+ ## Step Guidelines
42
+
43
+ Choose the right step for your UI elements:
44
+
45
+ ![Step usage examples showing how different steps apply to common interface elements](color-scale-step-examples.png)
46
+
47
+ | **Step** | **Primary Use Case** | **Description** |
48
+ | -------- | --------------------- | ----------------------------------------------------------------- |
49
+ | 0 | Page backgrounds | Lightest color (white in light mode, black in dark mode) |
50
+ | 25 | Input backgrounds | Subtle differentiation that maintains text contrast |
51
+ | 50 | Subtle backgrounds | Light surface backgrounds that don't compete with primary content |
52
+ | 100 | Secondary backgrounds | Clear hierarchy between subtle and primary content |
53
+ | 200 | Divider borders | Gentle separation, less harsh than stronger borders |
54
+ | 300 | Container borders | Structural definition while remaining lightweight |
55
+ | 400 | Disabled states | Reduced contrast for disabled input borders and text |
56
+ | 500 | Input borders | Meets 3:1 contrast for interactive boundaries |
57
+ | 600 | Accent text | Balances vividness with readability on white backgrounds |
58
+ | 700 | Hover states | Increased weight provides interaction feedback |
59
+ | 800 | Body text | Comfortable contrast for extended reading |
60
+ | 900 | Heading text | Strong contrast creates content hierarchy |
61
+ | 950 | Display text | Maximum contrast demands immediate attention |
62
+ | 975 | Dark mode backgrounds | Reserved for dark mode page backgrounds |
63
+ | 1000 | Maximum contrast | Strongest emphasis for overlays, rarely used |
64
+
65
+ ### Steps 0–100 - Page Backgrounds
66
+
67
+ ![Interface showing default white page background (step 0) and subtle gray alternative background (step 50) in side-by-side layouts](color-scale-page-backgrounds.png)
68
+
69
+ Use the default page background for most use cases, especially if colors will be used on top of it.
70
+
71
+ A secondary option is needed when subtle differentiaton is needed against the background.
72
+
73
+ <Do>
74
+
75
+ - Use default background for most page layouts
76
+ - Choose subtle alternatives when background differentiation is needed
77
+ - Apply very light backgrounds for disabled and error states
78
+
79
+ </Do>
80
+
81
+ <Dont>
82
+
83
+ - Use subtle backgrounds when color overlays will be present
84
+ - Apply alternative backgrounds without clear purpose
85
+
86
+ </Dont>
87
+
88
+ | **Color** | **Usage** |
89
+ | ---------- | ---------------------------------- |
90
+ | `base.0` | Default background color for pages |
91
+ | `slate.50` | Subtle background color for pages |
92
+
93
+ ### Step 50 - Subtle Backgrounds
94
+
95
+ Light surfaces that don't compete with primary content.
96
+
97
+ ![Step 50 subtle background examples](color-scale-50.png)
98
+
99
+ <Do>
100
+
101
+ - Use for low emphasis status indicators
102
+ - Create subtle content zones that don't compete with primary content
103
+ - Apply when minimal visual presence is desired
104
+
105
+ </Do>
106
+
107
+ <Dont>
108
+
109
+ - Use when content needs to stand out or grab attention
110
+ - Apply to elements requiring clear visibility
111
+
112
+ </Dont>
113
+
114
+ ### Step 100 - Secondary Backgrounds
115
+
116
+ Clear hierarchy between subtle and primary content.
117
+
118
+ ![Step 100 secondary background examples](color-scale-100-to-300.png)
119
+
120
+ <Do>
121
+
122
+ - Use for secondary button backgrounds
123
+ - Apply to hover states for light content
124
+ - Choose for UI elements needing moderate prominence
125
+
126
+ </Do>
127
+
128
+ <Dont>
129
+
130
+ - Use for primary actions or main content
131
+ - Apply when subtle emphasis is sufficient
132
+
133
+ </Dont>
134
+
135
+ ### Step 200, 300 - Surface Borders
136
+
137
+ Visual structures for non-interactive surfaces.
138
+
139
+ <FormattedImage caption="Step 200 - Gentle separation between content.">
140
+
141
+ ![Step 200 divider borders examples](color-scale-200-to-300-borders.png)
142
+
143
+ </FormattedImage>
144
+
145
+ <FormattedImage caption="Step 300** - Container borders indicating modular sections.">
146
+
147
+ ![Step 300 container borders examples](color-scale-300.png)
148
+
149
+ </FormattedImage>
150
+
151
+ <Do>
152
+
153
+ - Use lighter borders for list dividers and lightweight boundaries
154
+ - Apply stronger borders for container definition and modular sections
155
+ - Choose based on visual separation needs
156
+
157
+ </Do>
158
+
159
+ <Dont>
160
+
161
+ - Use for interactive elements requiring higher contrast
162
+ - Apply to elements needing accessibility compliance
163
+
164
+ </Dont>
165
+
166
+ ### Step 400, 500 - Interactive Elements
167
+
168
+ <FormattedImage caption="Step 400 - Disabled states with reduced contrast.">
169
+
170
+ ![Step 400 disabled foregrounds/borders examples](color-scale-400.png)
171
+
172
+ </FormattedImage>
173
+
174
+ <FormattedImage caption="Step 500 - Interactive boundaries meeting 3:1 contrast. Midpoint with peak saturation for vibrant accents.">
175
+
176
+ ![Step 500 input borders examples](color-scale-500.png)
177
+
178
+ </FormattedImage>
179
+
180
+ <Do>
181
+
182
+ - Use reduced contrast for disabled states and non-interactive elements
183
+ - Apply accessible contrast for input borders and interactive elements
184
+ - Meet minimum WCAG 2.1 AA compliance requirements
185
+ - Leverage peak saturation for vibrant accent colors
186
+
187
+ </Do>
188
+
189
+ <Dont>
190
+
191
+ - Use disabled state colors for interactive elements
192
+ - Apply interactive colors below minimum contrast requirements
193
+ - Use low contrast colors for accessibility-critical elements
194
+
195
+ </Dont>
196
+
197
+ ### Step 600, 700 - Accent Backgrounds
198
+
199
+ Vibrant interactive elements with guarenteed readability with inverse text or top of default
200
+ backgrounds (4.5:1 contrast).
201
+
202
+ ![Step 600–800 accents and 700 hover examples](color-scale-600-800.png)
203
+ ![Step 700 hover examples](color-scale-700-hover.png)
204
+
205
+ <Do>
206
+
207
+ - Use for interactive accent colors, like PrimaryButton backgrounds
208
+ - Apply to link text, error text, and hint text on default backgrounds
209
+ - Use the next step (700) for hover states and 800 for active states
210
+
211
+ </Do>
212
+
213
+ <Dont>
214
+
215
+ - Apply to secondary UI or prose text - Use when something more subtle is more appropriate
216
+
217
+ </Dont>
218
+
219
+ ### Step 800, 900, 950 - Text Hierarchy
220
+
221
+ Text contrast levels for content hierarchy and readability.
222
+
223
+ ![Step 800–950 text hierarchy examples](color-scale-800-950.png)
224
+
225
+ **Step 800** - Comfortable contrast for extended reading and body text. **Step 900** - Strong
226
+ contrast for headings and important text. **Step 950** - Maximum contrast for display text and hero
227
+ headlines.
228
+
229
+ <Do>
230
+
231
+ - Use on prose content
232
+ - Match level of contrast to typographic hierarchy
233
+
234
+ </Do>
235
+
236
+ <Dont>
237
+
238
+ - Use for secondary or instructional text (use 600 instead)
239
+ - Use for accent text, like links (use 600 intead)
240
+
241
+ </Dont>
242
+
243
+ ### Step 975 - Dark Mode Backgrounds
244
+
245
+ Reserved for dark mode page backgrounds to maintain consistent color relationships.
246
+
247
+ ![Step 975 dark mode backgrounds](color-scale-975.png)
248
+
249
+ <Do>
250
+
251
+ - Use exclusively for dark mode page backgrounds
252
+
253
+ </Do>
254
+
255
+ <Dont>
256
+
257
+ - Use in light mode interfaces
258
+
259
+ </Dont>
260
+
261
+ ### Step 1000 - Overlay Backgrounds
262
+
263
+ Strongest emphasis color for alpha overlays and modal dialogs.
264
+
265
+ ![Step 1000 overlay backgrounds](color-scale-1000.png)
266
+
267
+ <Do>
268
+
269
+ - Use for alpha overlays and modal dialog scrims
270
+
271
+ </Do>
272
+
273
+ <Dont>
274
+
275
+ - Use as solid color in interfaces
276
+
277
+ </Dont>
@@ -0,0 +1,130 @@
1
+ # Color Tokens
2
+
3
+ Design tokens represent design decisions as reusable, named values that drive consistency across
4
+ product teams. Tokens work as a shared language between design and development teams, replacing
5
+ isolated color decisions with systematic choices that carry meaning and adapt to different contexts.
6
+
7
+ ![Design token system diagram showing base palette mapping to system tokens across different platforms](color-tokens-dev-handoff.png)
8
+
9
+ ## Token Types
10
+
11
+ | **Token Type** | **Example Name** | **Purpose** |
12
+ | -------------- | ------------------------------------ | ---------------------- |
13
+ | Base Palette | `blue-50`, `gray-100` | Raw color values |
14
+ | System Tokens | `bg.default`, `text.primary.default` | Intent-driven UI usage |
15
+
16
+ ### Base Palette
17
+
18
+ Raw `oklch` colors from the [global palette](/guidelines/color/color-palette), categorized in color
19
+ families using the [tonal scale](/guidelines/color/color-scale) from 0 to 1000. Each number
20
+ represents lightness, creating perceptual uniformity across families.
21
+
22
+ ### System Colors
23
+
24
+ Purpose-driven names that describe intended use rather than appearance. Follow the
25
+ `[property].[role].[modifier]` pattern and map to base tokens based on theme.
26
+
27
+ ## Token Naming System
28
+
29
+ **`[property].[role].[modifier]`**
30
+
31
+ ![Token naming structure diagram showing element, role, and state components with examples](color-tokens-naming-structure.png)
32
+
33
+ 1. **Property**: What gets colored
34
+ 2. **Role**: Semantic purpose
35
+ 3. **Modifier**: Intensity or state (optional)
36
+
37
+ ### Property Types
38
+
39
+ | **Property** | **Description** | **Examples** |
40
+ | ------------ | --------------------------------------------- | ---------------------------------------- |
41
+ | `bg` | Background colors for surfaces and containers | `bg.default`, `bg.primary.default` |
42
+ | `text` | Text and content colors | `text.default`, `text.primary.default` |
43
+ | `border` | Border and divider colors | `border.input.default`, `border.divider` |
44
+ | `icon` | Icon-specific colors when different from text | `icon.default`, `icon.primary.default` |
45
+ | `fg` | Foreground colors for content elements | `fg.default`, `fg.primary.default` |
46
+ | `shadow` | Shadow colors for depth and elevation | `shadow.default`, `shadow.1` |
47
+ | `static` | Static colors that don't change with themes | `static.blue.default`, `static.white` |
48
+
49
+ ### Role Types
50
+
51
+ | **Role** | **Usage** | **Examples** |
52
+ | ------------- | --------------------------------------------- | ---------------------------------------------- |
53
+ | `default` | Main content and standard elements | `bg.default`, `text.default` |
54
+ | `primary` | Main brand and primary actions | `bg.primary.default`, `text.primary.default` |
55
+ | `positive` | Success states and positive feedback | `bg.positive.default`, `text.positive.default` |
56
+ | `critical` | Error states and destructive actions | `bg.critical.default`, `text.critical.default` |
57
+ | `caution` | Warning states and caution messages | `bg.caution.default`, `text.caution.default` |
58
+ | `info` | Informational messages and neutral feedback | `bg.info.default`, `text.info.default` |
59
+ | `alt` | Secondary surfaces and alternate states | `bg.alt.default`, `bg.alt.soft` |
60
+ | `muted` | Secondary content and subtle elements | `bg.muted.default`, `fg.muted.default` |
61
+ | `contrast` | High contrast elements | `bg.contrast.default`, `fg.contrast.default` |
62
+ | `ai` | AI-powered features and content | `bg.ai.default`, `text.ai` |
63
+ | `focus` | Keyboard navigation indicators | `border.primary.default` (focus) |
64
+ | `disabled` | Non-interactive and unavailable elements | `text.disabled`, `icon.disabled` |
65
+ | `inverse` | High contrast text on dark backgrounds | `text.inverse`, `icon.inverse` |
66
+ | `hint` | Placeholder and helper text | `text.hint` |
67
+ | `input` | Form field borders and interactive elements | `border.input.default` |
68
+ | `container` | Surfaces that exist on top of page background | `border.container` |
69
+ | `divider` | Content separators between sections | `border.divider` |
70
+ | `transparent` | Invisible elements for spacing | `bg.transparent.default` |
71
+ | `translucent` | Semi-transparent overlays | `bg.translucent` |
72
+ | `overlay` | Modal scrims and background dimming | `bg.overlay` |
73
+
74
+ ### Modifier Variations
75
+
76
+ | **Modifier** | **Usage** | **Examples** |
77
+ | ------------ | ---------------------------------------- | ----------------------- |
78
+ | `default` | Standard intensity or base state | `bg.primary.default` |
79
+ | `soft` | Reduced intensity or subtle appearance | `bg.primary.soft` |
80
+ | `softer` | More reduced intensity | `bg.primary.softer` |
81
+ | `softest` | Minimum intensity or lightest appearance | `bg.primary.softest` |
82
+ | `strong` | Increased intensity or emphasis | `bg.primary.strong` |
83
+ | `stronger` | Higher intensity or more emphasis | `bg.primary.stronger` |
84
+ | `strongest` | Maximum intensity or strongest emphasis | `static.blue.strongest` |
85
+ | `disabled` | Disabled element states | `text.disabled` |
86
+ | `inverse` | Inverted color for contrast | `text.inverse` |
87
+
88
+ ## Theming and Adaptation
89
+
90
+ Tokens enable flexible theming by separating purpose from appearance. System tokens maintain
91
+ consistent names across themes while colors adapt to match visual style.
92
+
93
+ ![Light and dark theme comparison showing same tokens with different color values](color-tokens-theming.png)
94
+
95
+ Create multiple theme variations—light/dark modes, brand customizations, high-contrast
96
+ themes—without changing design logic or token names.
97
+
98
+ ## Benefits of Tokens
99
+
100
+ **Consistency:** Clear relationships between colors and purposes make interfaces predictable.
101
+
102
+ **Efficiency:** Centralized decisions enable systematic updates across all platforms automatically.
103
+
104
+ **Collaboration:** Teams focus on semantic meaning rather than debating specific values.
105
+
106
+ ## Working with Tokens
107
+
108
+ ### Figma
109
+
110
+ Canvas tokens sync to Figma Libraries as organized color variables. Designers search by name, apply
111
+ to designs, and receive automatic updates when values change.
112
+
113
+ ![Figma color variables showing organized system tokens with search functionality](color-tokens-figma.png)
114
+
115
+ ### Design-to-Development Handoff
116
+
117
+ Shared vocabulary between teams. Designers apply variables to their designs, developers view those
118
+ designs in Figma's Developer Mode. Tokens can be viewed as either CSS variables, SwiftUI view
119
+ modifiers, or Jetpack Compose theme properties - making it easy for developers to choose correct
120
+ colors for the platform they build for.
121
+
122
+ ![Design-to-development workflow showing Figma design with token annotations matching React component code implementation](color-tokens-dev-handoff.png)
123
+
124
+ ### Brand Customization
125
+
126
+ Brand tokens let you change the brand expression by modifying those token values without changing
127
+ semantic structure. This enables white-label solutions, reskinning UI without needing to completely
128
+ redesign the interfaces.
129
+
130
+ ![Brand customization showing same interface with different brand color tokens applied](color-tokens-customization.png)