ui-foundations 0.3.2 → 0.4.1
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.
- package/README.md +179 -36
- package/dist/assets/icons/checkmark.svg +1 -0
- package/dist/core/index.css +7 -7
- package/dist/macros/ui.njk +142 -0
- package/dist/main.css +465 -173
- package/dist/react/badge.js +41 -0
- package/dist/react/button.js +15 -6
- package/dist/react/checkbox.js +30 -0
- package/dist/react/icon.js +19 -1
- package/dist/react/index.js +2 -0
- package/dist/react/label.js +1 -1
- package/dist/react/radio.js +62 -0
- package/dist/react/switch.js +18 -0
- package/dist/tokens/css/{appearance-(modes).tokens.mode-dark.css → appearance-modes.tokens.mode-dark.css} +1 -1
- package/dist/tokens/css/{appearance-(modes).tokens.mode-light.css → appearance-modes.tokens.mode-light.css} +1 -1
- package/dist/tokens/css/{components-(ui).tokens.css → components-ui.tokens.css} +46 -3
- package/dist/tokens/css/{core-(primitives).tokens.css → core-primitives.tokens.css} +61 -19
- package/dist/tokens/css/{semantics-(roles).tokens.css → semantics-roles.tokens.css} +1 -1
- package/dist/tokens/css/themes-brands.tokens.brand-a.css +22 -0
- package/dist/tokens/css/{themes-(brands).tokens.brand-b.css → themes-brands.tokens.brand-b.css} +9 -9
- package/dist/tokens/json/appearance-modes.tokens.mode-dark.json +121 -0
- package/dist/tokens/json/appearance-modes.tokens.mode-light.json +121 -0
- package/dist/tokens/json/components-ui.tokens.json +715 -0
- package/dist/tokens/json/{core-(primitives).tokens.json → core-primitives.tokens.json} +227 -413
- package/dist/tokens/json/semantics-roles.tokens.json +141 -0
- package/dist/tokens/json/themes-brands.tokens.brand-a.json +81 -0
- package/dist/tokens/json/themes-brands.tokens.brand-b.json +81 -0
- package/dist/tokens/missing-tokens.json +43 -0
- package/dist/tokens/tokens.yaml +1254 -149
- package/dist/tokens/ts/{appearance-(modes).tokens.mode-dark.ts → appearance-modes.tokens.mode-dark.ts} +1 -1
- package/dist/tokens/ts/{appearance-(modes).tokens.mode-light.ts → appearance-modes.tokens.mode-light.ts} +1 -1
- package/dist/tokens/ts/{components-(ui).tokens.ts → components-ui.tokens.ts} +47 -4
- package/dist/tokens/ts/{core-(primitives).tokens.ts → core-primitives.tokens.ts} +62 -20
- package/dist/tokens/ts/{semantics-(roles).tokens.ts → semantics-roles.tokens.ts} +1 -1
- package/dist/tokens/ts/{themes-(brands).tokens.brand-a.ts → themes-brands.tokens.brand-a.ts} +9 -9
- package/dist/tokens/ts/{themes-(brands).tokens.brand-b.ts → themes-brands.tokens.brand-b.ts} +9 -9
- package/dist/ui/index.css +2 -0
- package/dist/ui/patterns/badge.css +49 -0
- package/dist/ui/patterns/checkbox.css +71 -22
- package/dist/ui/patterns/radio.css +109 -0
- package/docs/README.md +38 -0
- package/docs/agentic/README.md +34 -0
- package/docs/agentic/assistant-behavior-rules.md +48 -0
- package/docs/agentic/skills/ux-writing-coach.md +116 -0
- package/docs/foundations/README.md +31 -0
- package/docs/foundations/foundation-001-token-layering.md +6 -0
- package/docs/foundations/foundation-002-naming-and-grouping.md +6 -0
- package/docs/foundations/foundation-003-color-semantics-and-status.md +6 -0
- package/docs/foundations/foundation-004-typography-scale-and-line-height.md +6 -0
- package/docs/foundations/foundation-005-responsive-breakpoints-and-containers.md +6 -0
- package/docs/foundations/foundation-006-z-index-layering.md +6 -0
- package/docs/foundations/foundation-007-typography-selectors-and-specificity.md +6 -0
- package/docs/foundations/foundation-008-mode-activation-and-consumer-control.md +6 -0
- package/docs/foundations/foundation-009-component-boundaries-and-utility.md +6 -0
- package/docs/foundations/foundation-010-implementation-and-pipeline-workflow.md +6 -0
- package/docs/foundations/foundation-011-branching-and-release-governance.md +6 -0
- package/docs/foundations/foundation-012-minimal-markup-and-composition.md +6 -0
- package/package.json +15 -11
- package/dist/tokens/css/themes-(brands).tokens.brand-a.css +0 -22
- package/dist/tokens/json/appearance-(modes).tokens.mode-dark.json +0 -182
- package/dist/tokens/json/appearance-(modes).tokens.mode-light.json +0 -182
- package/dist/tokens/json/components-(ui).tokens.json +0 -739
- package/dist/tokens/json/semantics-(roles).tokens.json +0 -203
- package/dist/tokens/json/themes-(brands).tokens.brand-a.json +0 -115
- package/dist/tokens/json/themes-(brands).tokens.brand-b.json +0 -115
- package/docs/agentic/skills/README.md +0 -51
- package/docs/agentic/skills/design-ops-specialist/SKILL.md +0 -60
- package/docs/agentic/skills/design-system-architect/SKILL.md +0 -106
- package/docs/agentic/team-ai-playbook.md +0 -226
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Assistant rules (UI Foundations)
|
|
3
|
+
status: active
|
|
4
|
+
type: agent-guide
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# Assistant rules (UI Foundations)
|
|
2
8
|
|
|
3
9
|
1. Always follow foundation rules in `/docs/foundations` as the source of truth.
|
|
@@ -14,3 +20,45 @@
|
|
|
14
20
|
- This decision is independent from token work: new tokens alone are not sufficient reason for a standalone component.
|
|
15
21
|
- Apply the Snowflake check: local one-off solutions stay local; shared utility can enter the system.
|
|
16
22
|
- Source of truth: `docs/foundations/foundation-009-component-boundaries-and-utility.md`.
|
|
23
|
+
8. When creating a new component, always complete all integration surfaces:
|
|
24
|
+
- CSS pattern in `src/ui/patterns/<component>.css`
|
|
25
|
+
- Import in `src/ui/index.css`
|
|
26
|
+
- React wrapper in `src/react/<component>.js`
|
|
27
|
+
- Export in `src/react/index.js`
|
|
28
|
+
- Nunjucks macro in `site/_includes/macros/ui.njk` (source of truth; `dist/macros/ui.njk` is copied during build)
|
|
29
|
+
- Playground renderer in `site/assets/playground/renderers.js` — register the render function and add it to the `renderers` map
|
|
30
|
+
- Playground page in `site/components/<component>-playground.md` with `renderer: <component>` matching the key in the renderers map
|
|
31
|
+
- Docs page in `site/components/<component>.md`
|
|
32
|
+
- Code Connect file in `schemas/web-<component>.figma.ts`
|
|
33
|
+
Missing any of these (especially the playground renderer) will cause broken pages.
|
|
34
|
+
9. Every new component must have its own Component-layer tokens. Never reuse tokens from another component (e.g. do not use `--input-checkbox-*` for a radio).
|
|
35
|
+
- Check `dist/tokens/css/components-ui.tokens.css` for existing tokens.
|
|
36
|
+
- If the component has no tokens in Figma yet, propose new ones following the naming pattern `--<component>-<part>-<property>-<state>` and add them to `components-ui.tokens.css`, referencing only Semantic or Core tokens.
|
|
37
|
+
- This keeps components independently themeable and avoids hidden coupling.
|
|
38
|
+
10. Token alias references must point to tokens that actually exist in the system.
|
|
39
|
+
- Before adding a `$ref`, verify the target exists in `dist/tokens/css/` (Core, Modes, Semantics).
|
|
40
|
+
- Run `npm run tokens:generate` and check for "missing alias targets" warnings.
|
|
41
|
+
- Never invent Semantic/Core token names (e.g. `Color/Fill/Muted`, `Size/Spacing/50`) — use only what the system provides.
|
|
42
|
+
- If a needed Semantic token does not exist, flag it for creation in Figma first.
|
|
43
|
+
11. CSS class naming must follow the project convention: bare component name (e.g. `.slider`, `.radio`, `.checkbox`).
|
|
44
|
+
- Never prefix with `.ui-` or other namespaces.
|
|
45
|
+
- CSS patterns must be wrapped in `@layer components { }`.
|
|
46
|
+
12. React wrappers must follow the existing pattern:
|
|
47
|
+
- Named `export function` (not `export const`)
|
|
48
|
+
- No CSS imports inside React files
|
|
49
|
+
- Use `React.createElement`, not JSX
|
|
50
|
+
- Class array pattern: `const classes = ["component"]; if (className) classes.push(className);`
|
|
51
|
+
13. Docs-only UI (code-tabs, mode toggles) must use docs-specific CSS, not component tokens.
|
|
52
|
+
- The `.code-tabs-bar` and `.docs-header` button groups are styled in `site/assets/docs.css` with hardcoded docs colors.
|
|
53
|
+
- They must not inherit brand theming from `data-brand`.
|
|
54
|
+
|
|
55
|
+
## Modes
|
|
56
|
+
|
|
57
|
+
The agent operates in different modes depending on the task:
|
|
58
|
+
|
|
59
|
+
- **Implementation** → modify system
|
|
60
|
+
- **Audit** → inspect only
|
|
61
|
+
- **Pattern Discovery** → design patterns
|
|
62
|
+
- **Token Proposal** → suggest tokens
|
|
63
|
+
|
|
64
|
+
Mode-specific rules are defined in: `docs/agentic/modes/`
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# UX Writing Coach
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Provide multilingual UX writing review for digital product copy.
|
|
6
|
+
|
|
7
|
+
This skill improves user-facing text for clarity, consistency, accessibility, usability, and tone-of-voice alignment.
|
|
8
|
+
|
|
9
|
+
## Scope
|
|
10
|
+
|
|
11
|
+
Use this skill when reviewing or rewriting:
|
|
12
|
+
- UI labels
|
|
13
|
+
- button text
|
|
14
|
+
- links and CTAs
|
|
15
|
+
- helper text
|
|
16
|
+
- validation and error messages
|
|
17
|
+
- empty states
|
|
18
|
+
- success and feedback messages
|
|
19
|
+
- transactional or task-supporting product copy
|
|
20
|
+
|
|
21
|
+
Default language is English. Core supported languages are English, German, and French.
|
|
22
|
+
|
|
23
|
+
## Language behaviour
|
|
24
|
+
|
|
25
|
+
- Start in English by default.
|
|
26
|
+
- If the user writes in German, respond in German.
|
|
27
|
+
- If the user writes in French, respond in French.
|
|
28
|
+
- If the user requests another language, adapt if possible.
|
|
29
|
+
- Preserve the language of the source text unless translation is explicitly requested.
|
|
30
|
+
|
|
31
|
+
## Working principles
|
|
32
|
+
|
|
33
|
+
- Be concise, practical, and supportive.
|
|
34
|
+
- Focus on the most relevant improvements first.
|
|
35
|
+
- Do not over-edit.
|
|
36
|
+
- Do not make text longer, more formal, or more complex unless it clearly improves usability.
|
|
37
|
+
- If the text is already strong, say so and suggest only meaningful refinements.
|
|
38
|
+
- Encourage the user to decide which suggestions to adopt.
|
|
39
|
+
|
|
40
|
+
## Review criteria
|
|
41
|
+
|
|
42
|
+
Check the text for:
|
|
43
|
+
- grammar
|
|
44
|
+
- spelling
|
|
45
|
+
- punctuation
|
|
46
|
+
- clarity
|
|
47
|
+
- consistency
|
|
48
|
+
- inclusivity
|
|
49
|
+
- accessibility
|
|
50
|
+
- formatting
|
|
51
|
+
- tone of voice
|
|
52
|
+
|
|
53
|
+
## UX writing principles
|
|
54
|
+
|
|
55
|
+
Prefer copy that is:
|
|
56
|
+
- clear
|
|
57
|
+
- concise
|
|
58
|
+
- consistent
|
|
59
|
+
- empathetic
|
|
60
|
+
- helpful
|
|
61
|
+
- action-oriented
|
|
62
|
+
- error-preventing
|
|
63
|
+
|
|
64
|
+
## Accessibility rules
|
|
65
|
+
|
|
66
|
+
- Use plain language.
|
|
67
|
+
- Avoid ambiguity and unnecessary jargon.
|
|
68
|
+
- Make links, buttons, and CTAs specific and understandable out of context.
|
|
69
|
+
- Ensure instructions, feedback, and next steps are easy to understand.
|
|
70
|
+
- Use inclusive language.
|
|
71
|
+
|
|
72
|
+
## Typographic and formatting conventions
|
|
73
|
+
|
|
74
|
+
- Distinguish between user-facing copy and technical or system-facing content.
|
|
75
|
+
- Use ISO 8601 for technical, structured, machine-readable, or cross-market content.
|
|
76
|
+
- ISO 8601 date format: YYYY-MM-DD
|
|
77
|
+
- ISO 8601 date-time format: YYYY-MM-DDTHH:mm
|
|
78
|
+
- Use localized date and time formats for user-facing UX copy when readability is more important.
|
|
79
|
+
- Use the 24-hour time format unless context clearly requires otherwise.
|
|
80
|
+
- Use leading zeros where appropriate.
|
|
81
|
+
- Use an en dash (–) for ranges.
|
|
82
|
+
- Never mix date systems inconsistently within the same output.
|
|
83
|
+
- For German copy, use standard German weekday and month abbreviations where needed.
|
|
84
|
+
|
|
85
|
+
## Tone of voice
|
|
86
|
+
|
|
87
|
+
Aim for copy that is:
|
|
88
|
+
- clear
|
|
89
|
+
- friendly
|
|
90
|
+
- confident
|
|
91
|
+
- helpful
|
|
92
|
+
- human
|
|
93
|
+
|
|
94
|
+
Avoid copy that feels robotic, overly formal, or unnecessarily promotional.
|
|
95
|
+
|
|
96
|
+
## Preferred response structure
|
|
97
|
+
|
|
98
|
+
1. Brief assessment
|
|
99
|
+
2. Key improvements
|
|
100
|
+
3. Suggested rewrite
|
|
101
|
+
4. Clean final copy
|
|
102
|
+
|
|
103
|
+
## Operating instructions
|
|
104
|
+
|
|
105
|
+
When given text to review:
|
|
106
|
+
1. Analyse the text carefully.
|
|
107
|
+
2. Identify the most important issues first.
|
|
108
|
+
3. Explain the issues briefly and clearly.
|
|
109
|
+
4. Suggest an improved version.
|
|
110
|
+
5. Provide a clean final version ready to copy.
|
|
111
|
+
|
|
112
|
+
## Prompt template
|
|
113
|
+
|
|
114
|
+
Use this prompt shape when applying the skill:
|
|
115
|
+
|
|
116
|
+
> Review the following text according to the rules above, accessibility standards, formatting conventions, and the tone of voice of tui.com: "[text to review]"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Foundations
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Foundations docs describe the canonical token, naming, theming, parity, and
|
|
6
|
+
format rules that other layers build on.
|
|
7
|
+
|
|
8
|
+
## Canonical files
|
|
9
|
+
|
|
10
|
+
The detailed foundation ADRs are the source of truth:
|
|
11
|
+
|
|
12
|
+
| File | Topic |
|
|
13
|
+
|---|---|
|
|
14
|
+
| `foundation-001-token-layering.md` | Core -> Color Modes -> Semantics -> Components token layering |
|
|
15
|
+
| `foundation-002-naming-and-grouping.md` | Token naming, grouping, and variant-first structure |
|
|
16
|
+
| `foundation-003-color-semantics-and-status.md` | Semantic color roles, status vs interaction state |
|
|
17
|
+
| `foundation-004-typography-scale-and-line-height.md` | Typography scale, line height, and role composition |
|
|
18
|
+
| `foundation-005-responsive-breakpoints-and-containers.md` | Breakpoints, container thresholds, and responsive separation |
|
|
19
|
+
| `foundation-006-z-index-layering.md` | Z-index tokenization and overlay layering |
|
|
20
|
+
| `foundation-007-typography-selectors-and-specificity.md` | Typography selectors, class API, and specificity rules |
|
|
21
|
+
| `foundation-008-mode-activation-and-consumer-control.md` | Light/dark mode scoping and consumer-owned activation |
|
|
22
|
+
| `foundation-009-component-boundaries-and-utility.md` | Standalone component boundary test and utility check |
|
|
23
|
+
| `foundation-010-implementation-and-pipeline-workflow.md` | Token-first implementation workflow and validation commands |
|
|
24
|
+
| `foundation-011-branching-and-release-governance.md` | Feature-branch, PR, and release governance |
|
|
25
|
+
| `foundation-012-minimal-markup-and-composition.md` | Minimal markup, composition, and wrapper discipline |
|
|
26
|
+
|
|
27
|
+
## Who should read this
|
|
28
|
+
|
|
29
|
+
- Designers defining token and naming decisions
|
|
30
|
+
- Engineers implementing or validating token-driven UI
|
|
31
|
+
- Agents doing token, component, or parity work
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ui-foundations",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Token-first UI foundations with CSS, tokens, and React exports.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,26 +29,30 @@
|
|
|
29
29
|
"./react/input": "./dist/react/input.js",
|
|
30
30
|
"./react/label": "./dist/react/label.js",
|
|
31
31
|
"./assets/*": "./dist/assets/*",
|
|
32
|
-
"./tokens/core.css": "./dist/tokens/css/core-
|
|
33
|
-
"./tokens/primitives.css": "./dist/tokens/css/core-
|
|
34
|
-
"./tokens/brand-a.css": "./dist/tokens/css/themes-
|
|
35
|
-
"./tokens/brand-b.css": "./dist/tokens/css/themes-
|
|
36
|
-
"./tokens/color.css": "./dist/tokens/css/appearance-
|
|
37
|
-
"./tokens/color-light.css": "./dist/tokens/css/appearance-
|
|
38
|
-
"./tokens/color-dark.css": "./dist/tokens/css/appearance-
|
|
39
|
-
"./tokens/semantic.css": "./dist/tokens/css/semantics-
|
|
40
|
-
"./tokens/components.css": "./dist/tokens/css/components-
|
|
32
|
+
"./tokens/core.css": "./dist/tokens/css/core-primitives.tokens.css",
|
|
33
|
+
"./tokens/primitives.css": "./dist/tokens/css/core-primitives.tokens.css",
|
|
34
|
+
"./tokens/brand-a.css": "./dist/tokens/css/themes-brands.tokens.brand-a.css",
|
|
35
|
+
"./tokens/brand-b.css": "./dist/tokens/css/themes-brands.tokens.brand-b.css",
|
|
36
|
+
"./tokens/color.css": "./dist/tokens/css/appearance-modes.tokens.mode-light.css",
|
|
37
|
+
"./tokens/color-light.css": "./dist/tokens/css/appearance-modes.tokens.mode-light.css",
|
|
38
|
+
"./tokens/color-dark.css": "./dist/tokens/css/appearance-modes.tokens.mode-dark.css",
|
|
39
|
+
"./tokens/semantic.css": "./dist/tokens/css/semantics-roles.tokens.css",
|
|
40
|
+
"./tokens/components.css": "./dist/tokens/css/components-ui.tokens.css",
|
|
41
|
+
"./macros/ui.njk": "./dist/macros/ui.njk"
|
|
41
42
|
},
|
|
42
43
|
"scripts": {
|
|
43
44
|
"icons:generate-list": "node scripts/generate-icon-list.mjs",
|
|
45
|
+
"plugin:meta": "node scripts/generate-plugin-meta.mjs",
|
|
44
46
|
"lint:js": "node scripts/lint-js.mjs",
|
|
45
47
|
"lint": "npm run lint:js",
|
|
46
48
|
"test:unit": "node --test tests/*.test.mjs",
|
|
47
49
|
"test": "npm run test:unit",
|
|
48
50
|
"smoke:check": "node scripts/smoke-check.mjs",
|
|
49
51
|
"assets:check": "node scripts/check-asset-refs.mjs",
|
|
52
|
+
"rules:validate": "node scripts/validate-rule-pipeline.mjs",
|
|
50
53
|
"tokens:generate": "node scripts/extract-tokens.js",
|
|
51
54
|
"tokens:validate": "node scripts/validate-tokens.mjs",
|
|
55
|
+
"dtcg:validate": "node scripts/validate-dtcg.mjs",
|
|
52
56
|
"tokens:build": "npm run tokens:generate",
|
|
53
57
|
"build:css": "node scripts/build-css.mjs",
|
|
54
58
|
"build:all": "npm run icons:generate-list && npm run tokens:generate && npm run build:css",
|
|
@@ -62,7 +66,7 @@
|
|
|
62
66
|
"release:publish": "npm publish",
|
|
63
67
|
"docs:build": "eleventy",
|
|
64
68
|
"docs:site": "npm run build:all && npm run docs:build",
|
|
65
|
-
"ci:check": "npm run lint && npm run test:unit && npm run build:all && npm run smoke:check && npm run tokens:validate && npm run assets:check && npm run docs:build",
|
|
69
|
+
"ci:check": "npm run lint && npm run test:unit && npm run build:all && npm run smoke:check && npm run tokens:validate && npm run dtcg:validate && npm run assets:check && npm run rules:validate && npm run docs:build",
|
|
66
70
|
"docs:dev": "npm run build:all && eleventy --serve"
|
|
67
71
|
},
|
|
68
72
|
"devDependencies": {
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* Auto-generated design tokens from Figma */
|
|
2
|
-
/* Generated on 2026-03-31T20:27:09.734Z */
|
|
3
|
-
|
|
4
|
-
:root[data-brand="a"] {
|
|
5
|
-
--brand-color-functional-success: var(--color-brand-a-green);
|
|
6
|
-
--brand-color-functional-danger: var(--color-brand-a-red);
|
|
7
|
-
--brand-color-functional-base: var(--color-brand-a-blue-700);
|
|
8
|
-
--brand-color-functional-base-dark: var(--color-brand-a-blue-800);
|
|
9
|
-
--brand-color-primary: var(--color-brand-a-purple-600);
|
|
10
|
-
--brand-color-accent: var(--color-brand-a-blue-500);
|
|
11
|
-
--brand-color-primary-dark: var(--color-brand-a-purple-800);
|
|
12
|
-
--brand-color-accent-dark: var(--color-brand-a-blue-700);
|
|
13
|
-
--brand-color-subtle: var(--color-neutral-500);
|
|
14
|
-
--brand-color-subtle-dark: var(--color-neutral-800);
|
|
15
|
-
--brand-color-subtle-light: var(--color-neutral-200);
|
|
16
|
-
--brand-font-base: var(--font-family-sans);
|
|
17
|
-
--brand-font-lead: var(--font-family-serif);
|
|
18
|
-
--brand-corner-button: var(--size-radius-700);
|
|
19
|
-
--brand-corner-card: var(--size-radius-200);
|
|
20
|
-
--brand-corner-modal: var(--size-radius-400);
|
|
21
|
-
--brand-corner-input: var(--size-radius-200);
|
|
22
|
-
}
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
|
|
3
|
-
"Color": {
|
|
4
|
-
"Text": {
|
|
5
|
-
"Default": {
|
|
6
|
-
"$type": "color",
|
|
7
|
-
"$value": {
|
|
8
|
-
"$ref": "Color/Neutral/800"
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
"Inverse": {
|
|
12
|
-
"$type": "color",
|
|
13
|
-
"$value": {
|
|
14
|
-
"$ref": "Color/Neutral/000"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"Disabled": {
|
|
18
|
-
"$type": "color",
|
|
19
|
-
"$value": {
|
|
20
|
-
"$ref": "Color/Neutral/600"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"Brand": {
|
|
24
|
-
"$type": "color",
|
|
25
|
-
"$value": {
|
|
26
|
-
"$ref": "Brand/Color/Primary"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"Subtle": {
|
|
30
|
-
"$type": "color",
|
|
31
|
-
"$value": {
|
|
32
|
-
"$ref": "Brand/Color/Subtle"
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"Strong": {
|
|
36
|
-
"$type": "color",
|
|
37
|
-
"$value": {
|
|
38
|
-
"$ref": "Color/Neutral/1000"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
"Danger": {
|
|
42
|
-
"$type": "color",
|
|
43
|
-
"$value": {
|
|
44
|
-
"$ref": "Brand/Color/Functional/Danger"
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"Success": {
|
|
48
|
-
"$type": "color",
|
|
49
|
-
"$value": {
|
|
50
|
-
"$ref": "Brand/Color/Functional/Success"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
"Fill": {
|
|
55
|
-
"Surface": {
|
|
56
|
-
"$type": "color",
|
|
57
|
-
"$value": {
|
|
58
|
-
"$ref": "Color/Neutral/000"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"Disabled": {
|
|
62
|
-
"$type": "color",
|
|
63
|
-
"$value": {
|
|
64
|
-
"$ref": "Color/Neutral/300"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"Hover": {
|
|
68
|
-
"$type": "color",
|
|
69
|
-
"$value": {
|
|
70
|
-
"$ref": "Color/Neutral/Alpha/500"
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
"Brand": {
|
|
74
|
-
"$type": "color",
|
|
75
|
-
"$value": {
|
|
76
|
-
"$ref": "Brand/Color/Primary"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"Subtle": {
|
|
80
|
-
"$type": "color",
|
|
81
|
-
"$value": {
|
|
82
|
-
"$ref": "Brand/Color/Subtle Light"
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
"Active": {
|
|
86
|
-
"$type": "color",
|
|
87
|
-
"$value": {
|
|
88
|
-
"$ref": "Brand/Color/Accent"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"Danger": {
|
|
92
|
-
"$type": "color",
|
|
93
|
-
"$value": {
|
|
94
|
-
"$ref": "Brand/Color/Functional/Danger"
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
"Success": {
|
|
98
|
-
"$type": "color",
|
|
99
|
-
"$value": {
|
|
100
|
-
"$ref": "Brand/Color/Functional/Success"
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
"Border": {
|
|
105
|
-
"Default": {
|
|
106
|
-
"$type": "color",
|
|
107
|
-
"$value": {
|
|
108
|
-
"$ref": "Color/Neutral/800"
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
"Subtle": {
|
|
112
|
-
"$type": "color",
|
|
113
|
-
"$value": {
|
|
114
|
-
"$ref": "Brand/Color/Subtle"
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
"Strong": {
|
|
118
|
-
"$type": "color",
|
|
119
|
-
"$value": {
|
|
120
|
-
"$ref": "Color/Neutral/1000"
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
"Brand": {
|
|
124
|
-
"$type": "color",
|
|
125
|
-
"$value": {
|
|
126
|
-
"$ref": "Brand/Color/Primary"
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
"Disabled": {
|
|
130
|
-
"$type": "color",
|
|
131
|
-
"$value": {
|
|
132
|
-
"$ref": "Color/Neutral/500"
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
"Danger": {
|
|
136
|
-
"$type": "color",
|
|
137
|
-
"$value": {
|
|
138
|
-
"colorSpace": "srgb",
|
|
139
|
-
"components": [
|
|
140
|
-
1,
|
|
141
|
-
0,
|
|
142
|
-
0
|
|
143
|
-
],
|
|
144
|
-
"alpha": 1,
|
|
145
|
-
"hex": "#FF0000"
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
"Overlay": {
|
|
150
|
-
"Backdrop": {
|
|
151
|
-
"$type": "color",
|
|
152
|
-
"$value": {
|
|
153
|
-
"$ref": "Color/Neutral/Alpha/400"
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
"Hover": {
|
|
157
|
-
"$type": "color",
|
|
158
|
-
"$value": {
|
|
159
|
-
"$ref": "Color/Neutral/Alpha/200"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
"Active": {
|
|
163
|
-
"$type": "color",
|
|
164
|
-
"$value": {
|
|
165
|
-
"$ref": "Color/Neutral/Alpha/400"
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"Selected": {
|
|
169
|
-
"$type": "color",
|
|
170
|
-
"$value": {
|
|
171
|
-
"$ref": "Color/Neutral/Alpha/600"
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
"Focus": {
|
|
176
|
-
"$type": "color",
|
|
177
|
-
"$value": {
|
|
178
|
-
"$ref": "Brand/Color/Primary"
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|