ui-foundations 0.1.2 → 0.3.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.
- package/README.md +64 -30
- package/dist/core/index.css +7 -7
- package/dist/main.css +462 -289
- package/dist/react/index.js +1 -0
- package/dist/react/switch.js +45 -0
- package/dist/tokens/css/{color.dark.tokens.css → appearance-(modes).tokens.mode-dark.css} +2 -2
- package/dist/tokens/css/{color.light.tokens.css → appearance-(modes).tokens.mode-light.css} +3 -3
- package/dist/tokens/css/{component.tokens.css → components-(ui).tokens.css} +70 -54
- package/dist/tokens/css/{primitives.tokens.css → core-(primitives).tokens.css} +21 -21
- package/dist/tokens/css/{semantic.tokens.css → semantics-(roles).tokens.css} +7 -6
- package/dist/tokens/css/{brand-a.tokens.css → themes-(brands).tokens.brand-a.css} +11 -11
- package/dist/tokens/css/{brand-b.tokens.css → themes-(brands).tokens.brand-b.css} +10 -10
- package/dist/tokens/json/appearance-(modes).tokens.mode-dark.json +182 -0
- package/dist/tokens/json/appearance-(modes).tokens.mode-light.json +182 -0
- package/dist/tokens/json/components-(ui).tokens.json +739 -0
- package/dist/tokens/json/{primitives.tokens.json → core-(primitives).tokens.json} +766 -772
- package/dist/tokens/json/semantics-(roles).tokens.json +203 -0
- package/dist/tokens/json/themes-(brands).tokens.brand-a.json +115 -0
- package/dist/tokens/json/themes-(brands).tokens.brand-b.json +115 -0
- package/dist/tokens/tokens.yaml +1068 -847
- package/dist/tokens/ts/{color.dark.tokens.ts → appearance-(modes).tokens.mode-dark.ts} +3 -3
- package/dist/tokens/ts/{color.light.tokens.ts → appearance-(modes).tokens.mode-light.ts} +4 -4
- package/dist/tokens/ts/{component.tokens.ts → components-(ui).tokens.ts} +71 -55
- package/dist/tokens/ts/{primitives.tokens.ts → core-(primitives).tokens.ts} +22 -22
- package/dist/tokens/ts/{semantic.tokens.ts → semantics-(roles).tokens.ts} +7 -6
- package/dist/tokens/ts/{brand-a.tokens.ts → themes-(brands).tokens.brand-a.ts} +13 -13
- package/dist/tokens/ts/{brand-b.tokens.ts → themes-(brands).tokens.brand-b.ts} +12 -12
- package/dist/ui/index.css +1 -0
- package/dist/ui/patterns/button.css +1 -0
- package/dist/ui/patterns/switch.css +155 -0
- package/docs/agentic/skills/README.md +51 -0
- package/docs/agentic/skills/design-ops-specialist/SKILL.md +28 -14
- package/docs/agentic/skills/design-system-architect/SKILL.md +106 -0
- package/docs/agentic/team-ai-playbook.md +10 -0
- package/docs/foundations/foundation-011-branching-and-release-governance.md +42 -0
- package/docs/foundations/foundation-012-minimal-markup-and-composition.md +42 -0
- package/package.json +20 -11
- package/dist/tokens/json/brand-a.tokens.json +0 -192
- package/dist/tokens/json/brand-b.tokens.json +0 -192
- package/dist/tokens/json/color.dark.tokens.json +0 -364
- package/dist/tokens/json/color.light.tokens.json +0 -364
- package/dist/tokens/json/component.tokens.json +0 -1101
- package/dist/tokens/json/semantic.tokens.json +0 -206
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Agentic Skills
|
|
2
|
+
|
|
3
|
+
This directory contains repo-specific skills for AI-assisted design-system work.
|
|
4
|
+
|
|
5
|
+
## Available skills
|
|
6
|
+
|
|
7
|
+
### design-ops-specialist
|
|
8
|
+
|
|
9
|
+
Use for tactical, proposal-first work:
|
|
10
|
+
|
|
11
|
+
- minimal component drafts
|
|
12
|
+
- token naming proposals
|
|
13
|
+
- CSS pattern structure suggestions
|
|
14
|
+
- optional React wrapper API sketches
|
|
15
|
+
- docs/playground integration plans
|
|
16
|
+
|
|
17
|
+
Best when the question is close to implementation and should stay incremental and non-breaking.
|
|
18
|
+
|
|
19
|
+
Path:
|
|
20
|
+
- `docs/agentic/skills/design-ops-specialist/SKILL.md`
|
|
21
|
+
|
|
22
|
+
### design-system-architect
|
|
23
|
+
|
|
24
|
+
Use for strategic, system-level work:
|
|
25
|
+
|
|
26
|
+
- foundation reviews
|
|
27
|
+
- token governance decisions
|
|
28
|
+
- component boundary decisions
|
|
29
|
+
- Figma/code reconciliation
|
|
30
|
+
- architecture-level handoff and system recommendations
|
|
31
|
+
|
|
32
|
+
Best when the question is about whether something belongs in the system at all, how foundations should evolve, or how to restore consistency across Figma, tokens, code, and docs.
|
|
33
|
+
|
|
34
|
+
Path:
|
|
35
|
+
- `docs/agentic/skills/design-system-architect/SKILL.md`
|
|
36
|
+
|
|
37
|
+
## Quick selection guide
|
|
38
|
+
|
|
39
|
+
Use `design-ops-specialist` when the question sounds like:
|
|
40
|
+
|
|
41
|
+
- "Propose a draft for this component"
|
|
42
|
+
- "How should the token names look?"
|
|
43
|
+
- "What files would change?"
|
|
44
|
+
- "How would the CSS and docs be structured?"
|
|
45
|
+
|
|
46
|
+
Use `design-system-architect` when the question sounds like:
|
|
47
|
+
|
|
48
|
+
- "Should this be a standalone component or composition?"
|
|
49
|
+
- "Do we need new semantic tokens?"
|
|
50
|
+
- "Are the foundations still coherent?"
|
|
51
|
+
- "How do we reconcile Figma and code drift?"
|
|
@@ -1,46 +1,60 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: design-ops-specialist
|
|
3
|
-
description: "
|
|
3
|
+
description: "Tactical proposal-first guidance for token-first component work in this repo and package consumers. Use when a request asks for a minimal component draft, token naming proposal, CSS pattern structure under src/ui/patterns, optional React wrapper API, docs/playground integration, or a concrete implementation plan that should stay incremental and non-breaking. Prefer design-system-architect instead when the request is about foundations, token governance, component-boundary decisions, Figma/code drift, or system-wide architecture."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Design Ops Specialist
|
|
7
7
|
|
|
8
8
|
## Intent
|
|
9
9
|
|
|
10
|
-
Use this skill for proposal-first work before implementation.
|
|
10
|
+
Use this skill for tactical, proposal-first work before or just ahead of implementation.
|
|
11
|
+
|
|
12
|
+
This skill is narrower than `design-system-architect`.
|
|
13
|
+
|
|
14
|
+
- Use `design-ops-specialist` for concrete component drafts and repo-shaped implementation proposals.
|
|
15
|
+
- Use `design-system-architect` for system-wide reviews, governance, and architecture decisions.
|
|
11
16
|
|
|
12
17
|
## Workflow
|
|
13
18
|
|
|
14
19
|
1. Confirm scope and constraints:
|
|
15
20
|
- component name
|
|
16
|
-
- parts/variants/states
|
|
21
|
+
- parts / variants / states
|
|
17
22
|
- platform or framework constraints
|
|
23
|
+
- whether the ask is proposal-only or implementation-adjacent
|
|
18
24
|
2. Align with source rules:
|
|
19
25
|
- `docs/foundations/`
|
|
20
26
|
- `docs/agentic/assistant-behavior-rules.md`
|
|
21
27
|
- `docs/agentic/team-ai-playbook.md`
|
|
22
|
-
3.
|
|
23
|
-
4.
|
|
28
|
+
3. If the request implies a new system component, call out that boundary validation is required and defer the strategic decision to `design-system-architect` when needed.
|
|
29
|
+
4. Produce a concise proposal by default, with no code changes unless explicitly requested.
|
|
30
|
+
5. Keep proposals minimal, incremental, and non-breaking.
|
|
24
31
|
|
|
25
|
-
## Output
|
|
32
|
+
## Output format
|
|
26
33
|
|
|
27
34
|
Provide these sections:
|
|
28
35
|
|
|
29
|
-
1.
|
|
36
|
+
1. Boundary assumption
|
|
37
|
+
- whether this is assumed to be composition or a valid standalone candidate
|
|
38
|
+
- if unclear, say so briefly
|
|
39
|
+
2. Token naming proposal
|
|
30
40
|
- prefix, variants, parts, states
|
|
31
41
|
- alignment to foundations naming rules
|
|
32
|
-
|
|
33
|
-
- target files under `src/ui/patterns`
|
|
42
|
+
3. CSS pattern structure
|
|
43
|
+
- target files under `src/ui/patterns` or existing family integration
|
|
34
44
|
- expected class names and token hookups
|
|
35
|
-
|
|
36
|
-
- only when requested or needed
|
|
45
|
+
4. Optional React wrapper API
|
|
46
|
+
- only when requested or clearly needed
|
|
37
47
|
- props mapped to token variants/states
|
|
38
|
-
|
|
48
|
+
5. Docs + playground integration
|
|
39
49
|
- required docs pages/sections
|
|
40
50
|
- playground additions or updates
|
|
51
|
+
6. Implementation surface
|
|
52
|
+
- exact repo paths likely to change
|
|
41
53
|
|
|
42
54
|
## Guardrails
|
|
43
55
|
|
|
44
56
|
- Prefer extending existing patterns over introducing new frameworks.
|
|
45
|
-
-
|
|
46
|
-
-
|
|
57
|
+
- Keep recommendations compatible with token-first and Figma-aligned architecture.
|
|
58
|
+
- Do not broaden into foundations governance unless explicitly asked.
|
|
59
|
+
- If requirements are underspecified, ask targeted clarifying questions or state minimal assumptions.
|
|
60
|
+
- If the task is really about whether something belongs in the system at all, hand off conceptually to `design-system-architect`.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-system-architect
|
|
3
|
+
description: "Strategic design-system architecture for this repo. Use when reviewing or evolving foundations, deciding token governance, evaluating component boundaries, reconciling Figma/code drift, auditing semantic coverage, or making architecture-level decisions that span beyond a single component proposal. Prefer this skill over design-ops-specialist when the request is system-wide, governance-heavy, or about whether something should enter the system at all."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design System Architect
|
|
7
|
+
|
|
8
|
+
## Intent
|
|
9
|
+
|
|
10
|
+
Use this skill for system-level decisions, reviews, and governance.
|
|
11
|
+
|
|
12
|
+
This skill is broader than `design-ops-specialist`.
|
|
13
|
+
|
|
14
|
+
- Use `design-ops-specialist` for tactical, proposal-first component drafts.
|
|
15
|
+
- Use `design-system-architect` for architecture, boundaries, token governance, and Figma/code alignment decisions.
|
|
16
|
+
|
|
17
|
+
## Required source alignment
|
|
18
|
+
|
|
19
|
+
Before responding, align to these repo sources:
|
|
20
|
+
|
|
21
|
+
- `docs/foundations/`
|
|
22
|
+
- `docs/agentic/assistant-behavior-rules.md`
|
|
23
|
+
- `docs/agentic/team-ai-playbook.md`
|
|
24
|
+
|
|
25
|
+
At minimum, check these when relevant:
|
|
26
|
+
|
|
27
|
+
- `docs/foundations/foundation-001-token-layering.md`
|
|
28
|
+
- `docs/foundations/foundation-002-naming-and-grouping.md`
|
|
29
|
+
- `docs/foundations/foundation-003-color-semantics-and-status.md`
|
|
30
|
+
- `docs/foundations/foundation-009-component-boundaries-and-utility.md`
|
|
31
|
+
- `docs/foundations/foundation-010-implementation-and-pipeline-workflow.md`
|
|
32
|
+
- `docs/foundations/foundation-011-branching-and-release-governance.md`
|
|
33
|
+
|
|
34
|
+
## Task types
|
|
35
|
+
|
|
36
|
+
### 1. Foundation review
|
|
37
|
+
|
|
38
|
+
Use when reviewing the health of the system.
|
|
39
|
+
|
|
40
|
+
Check for:
|
|
41
|
+
|
|
42
|
+
- layering integrity
|
|
43
|
+
- semantic gaps
|
|
44
|
+
- naming drift
|
|
45
|
+
- duplicate concepts
|
|
46
|
+
- hard-coded or leaky component decisions
|
|
47
|
+
- weak state coverage
|
|
48
|
+
- Figma/code mismatch
|
|
49
|
+
|
|
50
|
+
### 2. Token governance
|
|
51
|
+
|
|
52
|
+
Use when deciding whether to create, alias, rename, or reject token changes.
|
|
53
|
+
|
|
54
|
+
Report:
|
|
55
|
+
|
|
56
|
+
- correct layer
|
|
57
|
+
- rationale
|
|
58
|
+
- consumer scope
|
|
59
|
+
- theme/mode impact
|
|
60
|
+
- migration implications
|
|
61
|
+
|
|
62
|
+
### 3. Boundary decision
|
|
63
|
+
|
|
64
|
+
Use before proposing or implementing a new component.
|
|
65
|
+
|
|
66
|
+
Decide:
|
|
67
|
+
|
|
68
|
+
- composition inside an existing family, or
|
|
69
|
+
- standalone system component
|
|
70
|
+
|
|
71
|
+
Apply the Snowflake check from `foundation-009`.
|
|
72
|
+
|
|
73
|
+
### 4. Figma/code reconciliation
|
|
74
|
+
|
|
75
|
+
Use when system contracts drift between Figma and implementation.
|
|
76
|
+
|
|
77
|
+
Review:
|
|
78
|
+
|
|
79
|
+
- token exports in `figma/exports/`
|
|
80
|
+
- Code Connect mappings in `figma/connections/`
|
|
81
|
+
- implementation in `src/ui/` and `src/react/`
|
|
82
|
+
- docs/playground representation in `site/components/`
|
|
83
|
+
|
|
84
|
+
### 5. System handoff
|
|
85
|
+
|
|
86
|
+
Use when another designer or engineer needs a structured architectural recommendation.
|
|
87
|
+
|
|
88
|
+
## Output format
|
|
89
|
+
|
|
90
|
+
Provide these sections when relevant:
|
|
91
|
+
|
|
92
|
+
1. Task type
|
|
93
|
+
2. Current system reading
|
|
94
|
+
3. Decision
|
|
95
|
+
4. Rationale
|
|
96
|
+
5. Repo surfaces affected
|
|
97
|
+
6. Risks / mismatches
|
|
98
|
+
7. Recommended next step
|
|
99
|
+
|
|
100
|
+
## Guardrails
|
|
101
|
+
|
|
102
|
+
- Do not invent raw values inside components.
|
|
103
|
+
- Keep the 4-layer architecture intact.
|
|
104
|
+
- Treat token work and component boundary decisions as separate questions.
|
|
105
|
+
- Prefer small, reviewable changes and feature-branch delivery.
|
|
106
|
+
- Say explicitly when something should remain local instead of entering the system.
|
|
@@ -56,6 +56,16 @@ Run this decision gate before implementing a "new component":
|
|
|
56
56
|
- `npm run ci:check`
|
|
57
57
|
8. Iterate naming/states/a11y until stable.
|
|
58
58
|
|
|
59
|
+
## Skill selection
|
|
60
|
+
|
|
61
|
+
Use the repo skills intentionally:
|
|
62
|
+
|
|
63
|
+
- `design-ops-specialist` for tactical, proposal-first component work
|
|
64
|
+
- `design-system-architect` for strategic, system-level reviews and decisions
|
|
65
|
+
|
|
66
|
+
See also:
|
|
67
|
+
- `docs/agentic/skills/README.md`
|
|
68
|
+
|
|
59
69
|
## Proposal Mode: Design Ops Specialist
|
|
60
70
|
|
|
61
71
|
Use this mode when the request is explicitly a proposal (no implementation yet).
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Foundation-011: Branching and Release Governance
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Keep delivery safe and predictable by enforcing feature-branch development and protected `main` releases.
|
|
6
|
+
|
|
7
|
+
## Rules
|
|
8
|
+
|
|
9
|
+
1. Development happens on feature branches only:
|
|
10
|
+
- naming: `feat/*`, `fix/*`, `chore/*`, `docs/*`
|
|
11
|
+
- no direct commits to `main`
|
|
12
|
+
|
|
13
|
+
2. Merge to `main` only via pull request:
|
|
14
|
+
- at least one review required
|
|
15
|
+
- required status checks must pass (`lint`, `test:unit`, `ci:check`)
|
|
16
|
+
- no force pushes to `main`
|
|
17
|
+
- no branch deletion protection bypass
|
|
18
|
+
|
|
19
|
+
3. Releases are cut from clean `main` only:
|
|
20
|
+
- run `npm run release:patch|minor|major`
|
|
21
|
+
- push commit + tag with `npm run release:push`
|
|
22
|
+
- publish with `npm run release:publish` (or `npm publish --otp=<code>`)
|
|
23
|
+
|
|
24
|
+
## Recommended GitHub Branch Protection (`main`)
|
|
25
|
+
|
|
26
|
+
- Require a pull request before merging
|
|
27
|
+
- Require approvals: 1+
|
|
28
|
+
- Dismiss stale approvals on new commits
|
|
29
|
+
- Require status checks:
|
|
30
|
+
- `lint`
|
|
31
|
+
- `test:unit`
|
|
32
|
+
- `ci:check`
|
|
33
|
+
- Require branches to be up to date before merging
|
|
34
|
+
- Restrict who can push (optional, recommended for shared repos)
|
|
35
|
+
- Disallow force pushes
|
|
36
|
+
- Disallow deletions
|
|
37
|
+
|
|
38
|
+
## Implications
|
|
39
|
+
|
|
40
|
+
- Main stays releasable.
|
|
41
|
+
- Releases become repeatable and auditable.
|
|
42
|
+
- Risk of accidental or unreviewed production changes is reduced.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Foundation-012: Minimal Markup and Composition
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Keep component markup as flat and simple as possible. Complexity in HTML structure should only exist when it solves a real problem.
|
|
6
|
+
|
|
7
|
+
## Rules
|
|
8
|
+
|
|
9
|
+
1. Start with the flattest possible markup.
|
|
10
|
+
- A link with an icon is `<a class="link"><span class="icon">...</span> Text</a>`, not three nested wrappers.
|
|
11
|
+
- Add structure only when layout or behavior requires it.
|
|
12
|
+
|
|
13
|
+
2. Use CSS on the component root for layout.
|
|
14
|
+
- `inline-flex`, `gap`, `align-items` on the component class itself.
|
|
15
|
+
- Avoid wrapper elements whose only purpose is layout.
|
|
16
|
+
|
|
17
|
+
3. Composition patterns (like `label-content`) are opt-in, not default.
|
|
18
|
+
- Use them only when the component genuinely needs slot management, reordering, or icon-only modes.
|
|
19
|
+
- A simple text + icon combination does not need a composition wrapper.
|
|
20
|
+
|
|
21
|
+
4. Measure complexity by counting elements.
|
|
22
|
+
- If a simple variant needs more than 2 elements (root + content), question the structure.
|
|
23
|
+
- Complex variants (e.g. button with icon-only mode, loading state) may justify more elements.
|
|
24
|
+
|
|
25
|
+
5. Avoid premature abstraction.
|
|
26
|
+
- Do not add wrapper elements "in case we need them later".
|
|
27
|
+
- Add structure when a real variant or behavior demands it.
|
|
28
|
+
|
|
29
|
+
## Test
|
|
30
|
+
|
|
31
|
+
Before finalizing component markup, ask:
|
|
32
|
+
|
|
33
|
+
- Can I remove any element without losing functionality?
|
|
34
|
+
- Is every wrapper solving a real layout or behavior problem?
|
|
35
|
+
- Would a developer using this component find the markup obvious?
|
|
36
|
+
|
|
37
|
+
## Implications
|
|
38
|
+
|
|
39
|
+
- Components stay readable and debuggable in browser DevTools.
|
|
40
|
+
- CSS stays simpler with fewer selectors.
|
|
41
|
+
- Consumers write less HTML.
|
|
42
|
+
- Complex components can still use composition patterns when justified.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ui-foundations",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Token-first UI foundations with CSS, tokens, and React exports.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,15 +29,15 @@
|
|
|
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/primitives.tokens.css",
|
|
33
|
-
"./tokens/primitives.css": "./dist/tokens/css/primitives.tokens.css",
|
|
34
|
-
"./tokens/brand-a.css": "./dist/tokens/css/brand-a.
|
|
35
|
-
"./tokens/brand-b.css": "./dist/tokens/css/brand-b.
|
|
36
|
-
"./tokens/color.css": "./dist/tokens/css/
|
|
37
|
-
"./tokens/color-light.css": "./dist/tokens/css/
|
|
38
|
-
"./tokens/color-dark.css": "./dist/tokens/css/
|
|
39
|
-
"./tokens/semantic.css": "./dist/tokens/css/
|
|
40
|
-
"./tokens/components.css": "./dist/tokens/css/
|
|
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
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"icons:generate-list": "node scripts/generate-icon-list.mjs",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"test:unit": "node --test tests/*.test.mjs",
|
|
47
47
|
"test": "npm run test:unit",
|
|
48
48
|
"smoke:check": "node scripts/smoke-check.mjs",
|
|
49
|
+
"assets:check": "node scripts/check-asset-refs.mjs",
|
|
49
50
|
"tokens:generate": "node scripts/extract-tokens.js",
|
|
50
51
|
"tokens:validate": "node scripts/validate-tokens.mjs",
|
|
51
52
|
"tokens:build": "npm run tokens:generate",
|
|
@@ -54,9 +55,14 @@
|
|
|
54
55
|
"build": "npm run build:all",
|
|
55
56
|
"pack:check": "npm pack --dry-run",
|
|
56
57
|
"release:check": "npm run ci:check && npm run pack:check",
|
|
58
|
+
"release:patch": "npm run release:check && npm version patch",
|
|
59
|
+
"release:minor": "npm run release:check && npm version minor",
|
|
60
|
+
"release:major": "npm run release:check && npm version major",
|
|
61
|
+
"release:push": "git push origin main --follow-tags",
|
|
62
|
+
"release:publish": "npm publish",
|
|
57
63
|
"docs:build": "eleventy",
|
|
58
64
|
"docs:site": "npm run build:all && npm run docs:build",
|
|
59
|
-
"ci:check": "npm run lint && npm run test:unit && npm run build:all && npm run smoke:check && npm run tokens:validate && 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",
|
|
60
66
|
"docs:dev": "npm run build:all && eleventy --serve"
|
|
61
67
|
},
|
|
62
68
|
"devDependencies": {
|
|
@@ -66,5 +72,8 @@
|
|
|
66
72
|
"js-yaml": "^4.1.0",
|
|
67
73
|
"jsonc-parser": "^3.3.1",
|
|
68
74
|
"prismjs": "^1.30.0"
|
|
75
|
+
},
|
|
76
|
+
"dependencies": {
|
|
77
|
+
"ui-foundations": "^0.1.2"
|
|
69
78
|
}
|
|
70
79
|
}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
|
|
3
|
-
"Brand": {
|
|
4
|
-
"Color": {
|
|
5
|
-
"Primary": {
|
|
6
|
-
"$type": "color",
|
|
7
|
-
"$value": {
|
|
8
|
-
"colorSpace": "srgb",
|
|
9
|
-
"components": [
|
|
10
|
-
0.5921568870544434,
|
|
11
|
-
0.27843138575553894,
|
|
12
|
-
1
|
|
13
|
-
],
|
|
14
|
-
"alpha": 1,
|
|
15
|
-
"hex": "#9747FF"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"Primary Dark": {
|
|
19
|
-
"$type": "color",
|
|
20
|
-
"$value": {
|
|
21
|
-
"colorSpace": "srgb",
|
|
22
|
-
"components": [
|
|
23
|
-
0.3333333432674408,
|
|
24
|
-
0.10196078568696976,
|
|
25
|
-
0.545098066329956
|
|
26
|
-
],
|
|
27
|
-
"alpha": 1,
|
|
28
|
-
"hex": "#551A8B"
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"Accent": {
|
|
32
|
-
"$type": "color",
|
|
33
|
-
"$value": {
|
|
34
|
-
"colorSpace": "srgb",
|
|
35
|
-
"components": [
|
|
36
|
-
0.43921568989753723,
|
|
37
|
-
0.7960784435272217,
|
|
38
|
-
0.95686274766922
|
|
39
|
-
],
|
|
40
|
-
"alpha": 1,
|
|
41
|
-
"hex": "#70CBF4"
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
"Subtle": {
|
|
45
|
-
"$type": "color",
|
|
46
|
-
"$value": {
|
|
47
|
-
"colorSpace": "srgb",
|
|
48
|
-
"components": [
|
|
49
|
-
0.501960813999176,
|
|
50
|
-
0.501960813999176,
|
|
51
|
-
0.501960813999176
|
|
52
|
-
],
|
|
53
|
-
"alpha": 1,
|
|
54
|
-
"hex": "#808080"
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"Subtle Light": {
|
|
58
|
-
"$type": "color",
|
|
59
|
-
"$value": {
|
|
60
|
-
"colorSpace": "srgb",
|
|
61
|
-
"components": [
|
|
62
|
-
0.800000011920929,
|
|
63
|
-
0.800000011920929,
|
|
64
|
-
0.800000011920929
|
|
65
|
-
],
|
|
66
|
-
"alpha": 1,
|
|
67
|
-
"hex": "#CCCCCC"
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"Subtle Dark": {
|
|
71
|
-
"$type": "color",
|
|
72
|
-
"$value": {
|
|
73
|
-
"colorSpace": "srgb",
|
|
74
|
-
"components": [
|
|
75
|
-
0.20000000298023224,
|
|
76
|
-
0.20000000298023224,
|
|
77
|
-
0.20000000298023224
|
|
78
|
-
],
|
|
79
|
-
"alpha": 1,
|
|
80
|
-
"hex": "#333333"
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
"Accent Dark": {
|
|
84
|
-
"$type": "color",
|
|
85
|
-
"$value": {
|
|
86
|
-
"colorSpace": "srgb",
|
|
87
|
-
"components": [
|
|
88
|
-
0.0470588244497776,
|
|
89
|
-
0.29411765933036804,
|
|
90
|
-
0.9529411792755127
|
|
91
|
-
],
|
|
92
|
-
"alpha": 1,
|
|
93
|
-
"hex": "#0C4BF3"
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
"Functional": {
|
|
97
|
-
"Base": {
|
|
98
|
-
"$type": "color",
|
|
99
|
-
"$value": {
|
|
100
|
-
"colorSpace": "srgb",
|
|
101
|
-
"components": [
|
|
102
|
-
0.0470588244497776,
|
|
103
|
-
0.29411765933036804,
|
|
104
|
-
0.9529411792755127
|
|
105
|
-
],
|
|
106
|
-
"alpha": 1,
|
|
107
|
-
"hex": "#0C4BF3"
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
"Base Dark": {
|
|
111
|
-
"$type": "color",
|
|
112
|
-
"$value": {
|
|
113
|
-
"colorSpace": "srgb",
|
|
114
|
-
"components": [
|
|
115
|
-
0.10588235408067703,
|
|
116
|
-
0.06666667014360428,
|
|
117
|
-
0.3607843220233917
|
|
118
|
-
],
|
|
119
|
-
"alpha": 1,
|
|
120
|
-
"hex": "#1B115C"
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
"Success": {
|
|
124
|
-
"$type": "color",
|
|
125
|
-
"$value": {
|
|
126
|
-
"colorSpace": "srgb",
|
|
127
|
-
"components": [
|
|
128
|
-
0.07450980693101883,
|
|
129
|
-
0.6823529601097107,
|
|
130
|
-
0.3607843220233917
|
|
131
|
-
],
|
|
132
|
-
"alpha": 1,
|
|
133
|
-
"hex": "#13AE5C"
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
"Danger": {
|
|
137
|
-
"$type": "color",
|
|
138
|
-
"$value": {
|
|
139
|
-
"colorSpace": "srgb",
|
|
140
|
-
"components": [
|
|
141
|
-
1,
|
|
142
|
-
0,
|
|
143
|
-
0
|
|
144
|
-
],
|
|
145
|
-
"alpha": 1,
|
|
146
|
-
"hex": "#FF0000"
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
"Font": {
|
|
152
|
-
"Lead": {
|
|
153
|
-
"$type": "string",
|
|
154
|
-
"$value": "Rokkitt"
|
|
155
|
-
},
|
|
156
|
-
"Base": {
|
|
157
|
-
"$type": "string",
|
|
158
|
-
"$value": "Inter"
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
"Corner": {
|
|
162
|
-
"Button": {
|
|
163
|
-
"$type": "dimension",
|
|
164
|
-
"$value": {
|
|
165
|
-
"value": 10000,
|
|
166
|
-
"unit": "px"
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
"Input": {
|
|
170
|
-
"$type": "dimension",
|
|
171
|
-
"$value": {
|
|
172
|
-
"value": 4,
|
|
173
|
-
"unit": "px"
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
"Card": {
|
|
177
|
-
"$type": "dimension",
|
|
178
|
-
"$value": {
|
|
179
|
-
"value": 4,
|
|
180
|
-
"unit": "px"
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
"Modal": {
|
|
184
|
-
"$type": "dimension",
|
|
185
|
-
"$value": {
|
|
186
|
-
"value": 8,
|
|
187
|
-
"unit": "px"
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|