@robr0/design-system 0.9.0 → 0.11.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 +16 -10
- package/components/AgentPlan/AgentPlan.css +14 -3
- package/components/AiButton/AiButton.css +1 -1
- package/components/Alert/Alert.css +9 -0
- package/components/AlertDialog/AlertDialog.css +3 -1
- package/components/AlertDialog/AlertDialog.js +2 -3
- package/components/AppSidebar/AppSidebar.css +22 -3
- package/components/AppSidebar/AppSidebar.d.ts +6 -2
- package/components/AppSidebar/AppSidebar.js +67 -36
- package/components/Card/Card.css +7 -2
- package/components/CardStack/CardStack.css +106 -0
- package/components/CardStack/CardStack.d.ts +44 -0
- package/components/CardStack/CardStack.js +140 -0
- package/components/Carousel/Carousel.css +9 -0
- package/components/Carousel/Carousel.js +37 -4
- package/components/Chart/AreaChart.js +6 -5
- package/components/Chart/BarChart.js +1 -1
- package/components/Chart/LineChart.js +4 -3
- package/components/Chart/PieChart.js +2 -15
- package/components/Chart/RadarChart.js +5 -4
- package/components/Chart/RadialChart.js +2 -15
- package/components/Chart/ScatterChart.js +3 -13
- package/components/Chart/StackedBarChart.js +2 -15
- package/components/Chart/Treemap.js +3 -17
- package/components/Chart/palette.d.ts +1 -0
- package/components/Chart/palette.js +19 -0
- package/components/ChatMarker/ChatMarker.css +9 -0
- package/components/ChatMessage/ChatMessage.css +16 -0
- package/components/ChatThread/ChatThread.js +2 -2
- package/components/Chip/Chip.css +9 -0
- package/components/CodeBlock/CodeBlock.css +10 -1
- package/components/CodeBlock/CodeBlock.js +2 -1
- package/components/ColorPicker/ColorPicker.js +10 -0
- package/components/Combobox/Combobox.css +9 -0
- package/components/CommandPalette/CommandPalette.css +9 -0
- package/components/CommandPalette/CommandPalette.js +31 -5
- package/components/Composer/Composer.css +118 -0
- package/components/Composer/Composer.d.ts +7 -0
- package/components/Composer/Composer.js +7 -1
- package/components/ContactCard/ContactCard.css +9 -0
- package/components/ContextMenu/ContextMenu.js +39 -3
- package/components/DatePicker/DatePicker.js +16 -0
- package/components/Dialog/Dialog.css +3 -1
- package/components/Dialog/Dialog.js +5 -4
- package/components/DocumentChip/DocumentChip.css +9 -0
- package/components/Dropdown/Dropdown.js +22 -3
- package/components/DropdownMenu/DropdownMenu.js +43 -6
- package/components/EmptyState/EmptyState.css +9 -0
- package/components/FileInput/FileInput.css +9 -0
- package/components/Globe/Globe.css +155 -0
- package/components/Globe/Globe.d.ts +96 -0
- package/components/Globe/Globe.js +415 -0
- package/components/InterruptCard/InterruptCard.css +27 -17
- package/components/InterruptCard/InterruptCard.d.ts +1 -1
- package/components/InterruptCard/InterruptCard.js +1 -1
- package/components/MapCallout/MapCallout.css +46 -0
- package/components/MapCallout/MapCallout.d.ts +29 -0
- package/components/MapCallout/MapCallout.js +17 -0
- package/components/MapLegend/MapLegend.css +88 -0
- package/components/MapLegend/MapLegend.d.ts +39 -0
- package/components/MapLegend/MapLegend.js +68 -0
- package/components/MessageActions/MessageActions.css +9 -0
- package/components/MessageCard/MessageCard.css +68 -16
- package/components/MessageCard/MessageCard.d.ts +1 -1
- package/components/MessageCard/MessageCard.js +6 -4
- package/components/ModelPicker/ModelPicker.css +4 -1
- package/components/ModelPicker/ModelPicker.js +43 -1
- package/components/NotificationCenter/NotificationCenter.css +9 -0
- package/components/NotificationCenter/NotificationCenter.js +26 -10
- package/components/NumberInput/NumberInput.css +9 -0
- package/components/Popover/Popover.css +3 -1
- package/components/Popover/Popover.js +2 -1
- package/components/SectionTitle/SectionTitle.css +8 -0
- package/components/SectionTitle/SectionTitle.d.ts +3 -1
- package/components/SectionTitle/SectionTitle.js +6 -1
- package/components/SourceChip/SourceChip.css +9 -0
- package/components/Stat/Stat.css +9 -0
- package/components/Stepper/Stepper.css +9 -0
- package/components/TagInput/TagInput.css +9 -0
- package/components/TimePicker/TimePicker.js +4 -1
- package/components/Toast/Toast.css +32 -11
- package/components/Toast/Toast.js +5 -4
- package/components/ToggleGroup/ToggleGroup.css +9 -0
- package/components/ToolCall/ToolCall.css +18 -6
- package/components/Tooltip/Tooltip.js +20 -16
- package/components/registry.json +37 -0
- package/components/registry.json.d.ts +37 -0
- package/components/registry.json.js +2 -2
- package/index.d.ts +4 -0
- package/index.js +8 -0
- package/package.json +5 -1
- package/tokens/motion.d.ts +23 -0
- package/tokens/motion.js +14 -0
- package/tokens/registry.json +17 -0
- package/tokens/registry.json.d.ts +17 -0
- package/tokens/registry.json.js +1 -1
- package/tokens/tokens-dark.css +28 -13
- package/tokens/tokens-light.css +26 -12
- package/tokens/tokens-typography.css +20 -0
package/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from './components/Breadcrumb/Breadcrumb';
|
|
|
19
19
|
export * from './components/Button/Button';
|
|
20
20
|
export * from './components/ButtonGroup/ButtonGroup';
|
|
21
21
|
export * from './components/Card/Card';
|
|
22
|
+
export * from './components/CardStack/CardStack';
|
|
22
23
|
export * from './components/Carousel/Carousel';
|
|
23
24
|
export * from './components/ChatHeader/ChatHeader';
|
|
24
25
|
export * from './components/ChatMarker/ChatMarker';
|
|
@@ -52,11 +53,14 @@ export * from './components/Field/Field';
|
|
|
52
53
|
export * from './components/Field/FieldContext';
|
|
53
54
|
export * from './components/Figure/Figure';
|
|
54
55
|
export * from './components/FileInput/FileInput';
|
|
56
|
+
export * from './components/Globe/Globe';
|
|
55
57
|
export * from './components/Input/Input';
|
|
56
58
|
export * from './components/Instructions/Instructions';
|
|
57
59
|
export * from './components/InterruptCard/InterruptCard';
|
|
58
60
|
export * from './components/Kbd/Kbd';
|
|
59
61
|
export * from './components/LinkList/LinkList';
|
|
62
|
+
export * from './components/MapCallout/MapCallout';
|
|
63
|
+
export * from './components/MapLegend/MapLegend';
|
|
60
64
|
export * from './components/MessageActions/MessageActions';
|
|
61
65
|
export * from './components/MessageCard/MessageCard';
|
|
62
66
|
export * from './components/ModelPicker/ModelPicker';
|
package/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { Breadcrumb } from "./components/Breadcrumb/Breadcrumb.js";
|
|
|
14
14
|
import { Button } from "./components/Button/Button.js";
|
|
15
15
|
import { ButtonGroup } from "./components/ButtonGroup/ButtonGroup.js";
|
|
16
16
|
import { Card } from "./components/Card/Card.js";
|
|
17
|
+
import { CardStack } from "./components/CardStack/CardStack.js";
|
|
17
18
|
import { Carousel } from "./components/Carousel/Carousel.js";
|
|
18
19
|
import { ChatHeader } from "./components/ChatHeader/ChatHeader.js";
|
|
19
20
|
import { ChatMarker } from "./components/ChatMarker/ChatMarker.js";
|
|
@@ -47,11 +48,14 @@ import { Field } from "./components/Field/Field.js";
|
|
|
47
48
|
import { FieldContext, useField } from "./components/Field/FieldContext.js";
|
|
48
49
|
import { Figure } from "./components/Figure/Figure.js";
|
|
49
50
|
import { FileInput } from "./components/FileInput/FileInput.js";
|
|
51
|
+
import { Globe } from "./components/Globe/Globe.js";
|
|
50
52
|
import { Input } from "./components/Input/Input.js";
|
|
51
53
|
import { Instructions } from "./components/Instructions/Instructions.js";
|
|
52
54
|
import { InterruptCard } from "./components/InterruptCard/InterruptCard.js";
|
|
53
55
|
import { Kbd } from "./components/Kbd/Kbd.js";
|
|
54
56
|
import { LinkList } from "./components/LinkList/LinkList.js";
|
|
57
|
+
import { MapCallout } from "./components/MapCallout/MapCallout.js";
|
|
58
|
+
import { MapLegend } from "./components/MapLegend/MapLegend.js";
|
|
55
59
|
import { MessageActions } from "./components/MessageActions/MessageActions.js";
|
|
56
60
|
import { MessageCard } from "./components/MessageCard/MessageCard.js";
|
|
57
61
|
import { ModelPicker } from "./components/ModelPicker/ModelPicker.js";
|
|
@@ -114,6 +118,7 @@ export {
|
|
|
114
118
|
ButtonGroup,
|
|
115
119
|
COMPONENT_COUNT,
|
|
116
120
|
Card,
|
|
121
|
+
CardStack,
|
|
117
122
|
Carousel,
|
|
118
123
|
ChatHeader,
|
|
119
124
|
ChatMarker,
|
|
@@ -150,11 +155,14 @@ export {
|
|
|
150
155
|
FieldContext,
|
|
151
156
|
Figure,
|
|
152
157
|
FileInput,
|
|
158
|
+
Globe,
|
|
153
159
|
Input,
|
|
154
160
|
Instructions,
|
|
155
161
|
InterruptCard,
|
|
156
162
|
Kbd,
|
|
157
163
|
LinkList,
|
|
164
|
+
MapCallout,
|
|
165
|
+
MapLegend,
|
|
158
166
|
MessageActions,
|
|
159
167
|
MessageCard,
|
|
160
168
|
ModelPicker,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robr0/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "An AI-ready React design system: accessible components on composable tokens, light/dark theming, and CSS-variable overrides.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -50,6 +50,10 @@
|
|
|
50
50
|
"types": "./tokens/registry.d.ts",
|
|
51
51
|
"import": "./tokens/registry.js"
|
|
52
52
|
},
|
|
53
|
+
"./tokens/motion": {
|
|
54
|
+
"types": "./tokens/motion.d.ts",
|
|
55
|
+
"import": "./tokens/motion.js"
|
|
56
|
+
},
|
|
53
57
|
"./components/*": {
|
|
54
58
|
"types": "./components/*.d.ts",
|
|
55
59
|
"import": "./components/*.js"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JS-driven motion timings — the TypeScript side of the motion tokens.
|
|
3
|
+
* CSS transitions read the `--motion-*` custom properties; these constants
|
|
4
|
+
* are the single home for timings that live in JavaScript timers, where a
|
|
5
|
+
* CSS variable cannot reach. Components use them as defaults, so a single
|
|
6
|
+
* instance can still be tuned through its component's own props.
|
|
7
|
+
*
|
|
8
|
+
* These are schedule timings (when something starts, stops, or is taken
|
|
9
|
+
* away), not animation durations, so the reduced-motion guard in
|
|
10
|
+
* tokens-motion.css deliberately does not apply to them.
|
|
11
|
+
*/
|
|
12
|
+
/** Delay before a hover-triggered overlay appears, filtering pass-through hovers. */
|
|
13
|
+
export declare const MOTION_HOVER_SHOW_DELAY_MS = 300;
|
|
14
|
+
/** Grace period before a hover-triggered overlay or submenu closes, forgiving a wobbly pointer path. */
|
|
15
|
+
export declare const MOTION_HOVER_HIDE_DELAY_MS = 150;
|
|
16
|
+
/** How long a transient notification stays before dismissing itself. */
|
|
17
|
+
export declare const MOTION_AUTO_DISMISS_MS = 5000;
|
|
18
|
+
/** Interval between automatic slide advances. */
|
|
19
|
+
export declare const MOTION_AUTOPLAY_INTERVAL_MS = 5000;
|
|
20
|
+
/** How long momentary confirmation feedback (a copied state) holds before resetting. */
|
|
21
|
+
export declare const MOTION_FEEDBACK_RESET_MS = 2000;
|
|
22
|
+
/** How long after the last scroll event a scroll surface is considered settled. */
|
|
23
|
+
export declare const MOTION_SCROLL_SETTLE_MS = 600;
|
package/tokens/motion.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const MOTION_HOVER_SHOW_DELAY_MS = 300;
|
|
2
|
+
const MOTION_HOVER_HIDE_DELAY_MS = 150;
|
|
3
|
+
const MOTION_AUTO_DISMISS_MS = 5e3;
|
|
4
|
+
const MOTION_AUTOPLAY_INTERVAL_MS = 5e3;
|
|
5
|
+
const MOTION_FEEDBACK_RESET_MS = 2e3;
|
|
6
|
+
const MOTION_SCROLL_SETTLE_MS = 600;
|
|
7
|
+
export {
|
|
8
|
+
MOTION_AUTOPLAY_INTERVAL_MS,
|
|
9
|
+
MOTION_AUTO_DISMISS_MS,
|
|
10
|
+
MOTION_FEEDBACK_RESET_MS,
|
|
11
|
+
MOTION_HOVER_HIDE_DELAY_MS,
|
|
12
|
+
MOTION_HOVER_SHOW_DELAY_MS,
|
|
13
|
+
MOTION_SCROLL_SETTLE_MS
|
|
14
|
+
};
|
package/tokens/registry.json
CHANGED
|
@@ -35,6 +35,13 @@
|
|
|
35
35
|
"--color-chart-contribution-2",
|
|
36
36
|
"--color-chart-contribution-3",
|
|
37
37
|
"--color-chart-contribution-4",
|
|
38
|
+
"--color-chart-series-1",
|
|
39
|
+
"--color-chart-series-2",
|
|
40
|
+
"--color-chart-series-3",
|
|
41
|
+
"--color-chart-series-4",
|
|
42
|
+
"--color-chart-series-5",
|
|
43
|
+
"--color-chart-series-6",
|
|
44
|
+
"--color-chart-series-7",
|
|
38
45
|
"--color-chat-bubble-received-bg",
|
|
39
46
|
"--color-chat-bubble-received-text",
|
|
40
47
|
"--color-chat-bubble-sent-bg",
|
|
@@ -84,6 +91,11 @@
|
|
|
84
91
|
"--color-text-tertiary"
|
|
85
92
|
],
|
|
86
93
|
"typography": [
|
|
94
|
+
"--font-caption-family",
|
|
95
|
+
"--font-caption-letter-spacing",
|
|
96
|
+
"--font-caption-line-height",
|
|
97
|
+
"--font-caption-size",
|
|
98
|
+
"--font-caption-weight",
|
|
87
99
|
"--font-display-1-family",
|
|
88
100
|
"--font-display-1-letter-spacing",
|
|
89
101
|
"--font-display-1-line-height",
|
|
@@ -121,6 +133,11 @@
|
|
|
121
133
|
"--font-mega-2-line-height",
|
|
122
134
|
"--font-mega-2-size",
|
|
123
135
|
"--font-mega-2-weight",
|
|
136
|
+
"--font-overline-family",
|
|
137
|
+
"--font-overline-letter-spacing",
|
|
138
|
+
"--font-overline-line-height",
|
|
139
|
+
"--font-overline-size",
|
|
140
|
+
"--font-overline-weight",
|
|
124
141
|
"--font-paragraph-em-family",
|
|
125
142
|
"--font-paragraph-em-letter-spacing",
|
|
126
143
|
"--font-paragraph-em-line-height",
|
|
@@ -35,6 +35,13 @@ declare const _default: {
|
|
|
35
35
|
"--color-chart-contribution-2",
|
|
36
36
|
"--color-chart-contribution-3",
|
|
37
37
|
"--color-chart-contribution-4",
|
|
38
|
+
"--color-chart-series-1",
|
|
39
|
+
"--color-chart-series-2",
|
|
40
|
+
"--color-chart-series-3",
|
|
41
|
+
"--color-chart-series-4",
|
|
42
|
+
"--color-chart-series-5",
|
|
43
|
+
"--color-chart-series-6",
|
|
44
|
+
"--color-chart-series-7",
|
|
38
45
|
"--color-chat-bubble-received-bg",
|
|
39
46
|
"--color-chat-bubble-received-text",
|
|
40
47
|
"--color-chat-bubble-sent-bg",
|
|
@@ -84,6 +91,11 @@ declare const _default: {
|
|
|
84
91
|
"--color-text-tertiary"
|
|
85
92
|
],
|
|
86
93
|
"typography": [
|
|
94
|
+
"--font-caption-family",
|
|
95
|
+
"--font-caption-letter-spacing",
|
|
96
|
+
"--font-caption-line-height",
|
|
97
|
+
"--font-caption-size",
|
|
98
|
+
"--font-caption-weight",
|
|
87
99
|
"--font-display-1-family",
|
|
88
100
|
"--font-display-1-letter-spacing",
|
|
89
101
|
"--font-display-1-line-height",
|
|
@@ -121,6 +133,11 @@ declare const _default: {
|
|
|
121
133
|
"--font-mega-2-line-height",
|
|
122
134
|
"--font-mega-2-size",
|
|
123
135
|
"--font-mega-2-weight",
|
|
136
|
+
"--font-overline-family",
|
|
137
|
+
"--font-overline-letter-spacing",
|
|
138
|
+
"--font-overline-line-height",
|
|
139
|
+
"--font-overline-size",
|
|
140
|
+
"--font-overline-weight",
|
|
124
141
|
"--font-paragraph-em-family",
|
|
125
142
|
"--font-paragraph-em-letter-spacing",
|
|
126
143
|
"--font-paragraph-em-line-height",
|
package/tokens/registry.json.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const categories = { "colour": ["--color-action-icon-active", "--color-action-icon-default", "--color-action-passive-bg", "--color-action-passive-bg-active", "--color-action-passive-bg-hover", "--color-action-passive-text", "--color-action-primary-bg", "--color-action-primary-bg-active", "--color-action-primary-bg-hover", "--color-action-primary-border", "--color-action-primary-border-secondary", "--color-action-primary-border-tertiary", "--color-action-primary-text", "--color-action-primary-text-active", "--color-action-primary-text-secondary", "--color-action-primary-text-tertiary", "--color-ai-gradient-end", "--color-ai-gradient-mid", "--color-ai-gradient-start", "--color-bg-container-border", "--color-bg-container-inverse", "--color-bg-container-primary", "--color-bg-container-primary-semi", "--color-bg-container-primary-transparent", "--color-bg-container-secondary", "--color-bg-container-tertiary", "--color-bg-page-inverse", "--color-bg-page-primary", "--color-chart-contribution-0", "--color-chart-contribution-1", "--color-chart-contribution-2", "--color-chart-contribution-3", "--color-chart-contribution-4", "--color-chat-bubble-received-bg", "--color-chat-bubble-received-text", "--color-chat-bubble-sent-bg", "--color-chat-bubble-sent-text", "--color-control-thumb", "--color-core-accent-amber", "--color-core-accent-cobalt", "--color-core-accent-coral", "--color-core-accent-gold", "--color-core-accent-mint", "--color-core-accent-violet", "--color-core-ui-primary", "--color-core-ui-secondary", "--color-divider", "--color-icon-primary", "--color-icon-secondary", "--color-input-bg-disabled", "--color-input-bg-primary", "--color-input-border-disabled", "--color-input-border-hover", "--color-input-border-primary", "--color-input-border-selected", "--color-input-text-disabled", "--color-input-text-inverse", "--color-input-text-placeholder", "--color-input-text-primary", "--color-scrim", "--color-status-error-bg", "--color-status-error-border", "--color-status-error-text", "--color-status-info-bg", "--color-status-info-border", "--color-status-info-text", "--color-status-neutral-bg", "--color-status-neutral-border", "--color-status-neutral-text", "--color-status-positive-bg", "--color-status-positive-border", "--color-status-positive-text", "--color-status-warning-bg", "--color-status-warning-border", "--color-status-warning-text", "--color-text-inverse", "--color-text-on-inverse", "--color-text-primary", "--color-text-secondary", "--color-text-tertiary"], "typography": ["--font-display-1-family", "--font-display-1-letter-spacing", "--font-display-1-line-height", "--font-display-1-size", "--font-display-1-weight", "--font-display-2-family", "--font-display-2-letter-spacing", "--font-display-2-line-height", "--font-display-2-size", "--font-display-2-weight", "--font-family-code", "--font-family-primary", "--font-heading-1-family", "--font-heading-1-letter-spacing", "--font-heading-1-line-height", "--font-heading-1-size", "--font-heading-1-weight", "--font-heading-2-family", "--font-heading-2-letter-spacing", "--font-heading-2-line-height", "--font-heading-2-size", "--font-heading-2-weight", "--font-heading-3-family", "--font-heading-3-letter-spacing", "--font-heading-3-line-height", "--font-heading-3-size", "--font-heading-3-weight", "--font-mega-1-family", "--font-mega-1-letter-spacing", "--font-mega-1-line-height", "--font-mega-1-size", "--font-mega-1-weight", "--font-mega-2-family", "--font-mega-2-letter-spacing", "--font-mega-2-line-height", "--font-mega-2-size", "--font-mega-2-weight", "--font-paragraph-em-family", "--font-paragraph-em-letter-spacing", "--font-paragraph-em-line-height", "--font-paragraph-em-size", "--font-paragraph-em-weight", "--font-paragraph-family", "--font-paragraph-letter-spacing", "--font-paragraph-line-height", "--font-paragraph-size", "--font-paragraph-sm-em-family", "--font-paragraph-sm-em-letter-spacing", "--font-paragraph-sm-em-line-height", "--font-paragraph-sm-em-size", "--font-paragraph-sm-em-weight", "--font-paragraph-sm-family", "--font-paragraph-sm-letter-spacing", "--font-paragraph-sm-line-height", "--font-paragraph-sm-size", "--font-paragraph-sm-weight", "--font-paragraph-weight", "--font-sub-display-family", "--font-sub-display-letter-spacing", "--font-sub-display-line-height", "--font-sub-display-size", "--font-sub-display-weight", "--font-title-body-family", "--font-title-body-letter-spacing", "--font-title-body-line-height", "--font-title-body-size", "--font-title-body-weight"], "spacing": ["--gap-lg", "--gap-md", "--gap-sm", "--gap-sm-md", "--gap-xl", "--gap-xs", "--gap-xxl", "--gap-xxs", "--gap-xxxl", "--gap-xxxxl", "--padding-lg", "--padding-md", "--padding-sm", "--padding-sm-md", "--padding-xl", "--padding-xs", "--padding-xxl", "--padding-xxs", "--padding-xxxs"], "radius": ["--radius-composer", "--radius-full", "--radius-lg", "--radius-md", "--radius-sm", "--radius-xl", "--radius-xs", "--radius-xxl", "--radius-xxs"], "border": ["--border-md", "--border-xs"], "shadow": ["--shadow-floating", "--shadow-modal"], "icons": ["--icon-size-lg", "--icon-size-md", "--icon-size-sm", "--icon-size-xl"], "motion": ["--motion-duration-base", "--motion-duration-deliberate", "--motion-duration-fast", "--motion-duration-instant", "--motion-duration-loop-matrix", "--motion-duration-loop-shimmer", "--motion-duration-loop-spin", "--motion-duration-slow", "--motion-duration-slower", "--motion-ease-emphasized", "--motion-ease-entrance", "--motion-ease-linear", "--motion-ease-spring", "--motion-ease-standard"] };
|
|
1
|
+
const categories = { "colour": ["--color-action-icon-active", "--color-action-icon-default", "--color-action-passive-bg", "--color-action-passive-bg-active", "--color-action-passive-bg-hover", "--color-action-passive-text", "--color-action-primary-bg", "--color-action-primary-bg-active", "--color-action-primary-bg-hover", "--color-action-primary-border", "--color-action-primary-border-secondary", "--color-action-primary-border-tertiary", "--color-action-primary-text", "--color-action-primary-text-active", "--color-action-primary-text-secondary", "--color-action-primary-text-tertiary", "--color-ai-gradient-end", "--color-ai-gradient-mid", "--color-ai-gradient-start", "--color-bg-container-border", "--color-bg-container-inverse", "--color-bg-container-primary", "--color-bg-container-primary-semi", "--color-bg-container-primary-transparent", "--color-bg-container-secondary", "--color-bg-container-tertiary", "--color-bg-page-inverse", "--color-bg-page-primary", "--color-chart-contribution-0", "--color-chart-contribution-1", "--color-chart-contribution-2", "--color-chart-contribution-3", "--color-chart-contribution-4", "--color-chart-series-1", "--color-chart-series-2", "--color-chart-series-3", "--color-chart-series-4", "--color-chart-series-5", "--color-chart-series-6", "--color-chart-series-7", "--color-chat-bubble-received-bg", "--color-chat-bubble-received-text", "--color-chat-bubble-sent-bg", "--color-chat-bubble-sent-text", "--color-control-thumb", "--color-core-accent-amber", "--color-core-accent-cobalt", "--color-core-accent-coral", "--color-core-accent-gold", "--color-core-accent-mint", "--color-core-accent-violet", "--color-core-ui-primary", "--color-core-ui-secondary", "--color-divider", "--color-icon-primary", "--color-icon-secondary", "--color-input-bg-disabled", "--color-input-bg-primary", "--color-input-border-disabled", "--color-input-border-hover", "--color-input-border-primary", "--color-input-border-selected", "--color-input-text-disabled", "--color-input-text-inverse", "--color-input-text-placeholder", "--color-input-text-primary", "--color-scrim", "--color-status-error-bg", "--color-status-error-border", "--color-status-error-text", "--color-status-info-bg", "--color-status-info-border", "--color-status-info-text", "--color-status-neutral-bg", "--color-status-neutral-border", "--color-status-neutral-text", "--color-status-positive-bg", "--color-status-positive-border", "--color-status-positive-text", "--color-status-warning-bg", "--color-status-warning-border", "--color-status-warning-text", "--color-text-inverse", "--color-text-on-inverse", "--color-text-primary", "--color-text-secondary", "--color-text-tertiary"], "typography": ["--font-caption-family", "--font-caption-letter-spacing", "--font-caption-line-height", "--font-caption-size", "--font-caption-weight", "--font-display-1-family", "--font-display-1-letter-spacing", "--font-display-1-line-height", "--font-display-1-size", "--font-display-1-weight", "--font-display-2-family", "--font-display-2-letter-spacing", "--font-display-2-line-height", "--font-display-2-size", "--font-display-2-weight", "--font-family-code", "--font-family-primary", "--font-heading-1-family", "--font-heading-1-letter-spacing", "--font-heading-1-line-height", "--font-heading-1-size", "--font-heading-1-weight", "--font-heading-2-family", "--font-heading-2-letter-spacing", "--font-heading-2-line-height", "--font-heading-2-size", "--font-heading-2-weight", "--font-heading-3-family", "--font-heading-3-letter-spacing", "--font-heading-3-line-height", "--font-heading-3-size", "--font-heading-3-weight", "--font-mega-1-family", "--font-mega-1-letter-spacing", "--font-mega-1-line-height", "--font-mega-1-size", "--font-mega-1-weight", "--font-mega-2-family", "--font-mega-2-letter-spacing", "--font-mega-2-line-height", "--font-mega-2-size", "--font-mega-2-weight", "--font-overline-family", "--font-overline-letter-spacing", "--font-overline-line-height", "--font-overline-size", "--font-overline-weight", "--font-paragraph-em-family", "--font-paragraph-em-letter-spacing", "--font-paragraph-em-line-height", "--font-paragraph-em-size", "--font-paragraph-em-weight", "--font-paragraph-family", "--font-paragraph-letter-spacing", "--font-paragraph-line-height", "--font-paragraph-size", "--font-paragraph-sm-em-family", "--font-paragraph-sm-em-letter-spacing", "--font-paragraph-sm-em-line-height", "--font-paragraph-sm-em-size", "--font-paragraph-sm-em-weight", "--font-paragraph-sm-family", "--font-paragraph-sm-letter-spacing", "--font-paragraph-sm-line-height", "--font-paragraph-sm-size", "--font-paragraph-sm-weight", "--font-paragraph-weight", "--font-sub-display-family", "--font-sub-display-letter-spacing", "--font-sub-display-line-height", "--font-sub-display-size", "--font-sub-display-weight", "--font-title-body-family", "--font-title-body-letter-spacing", "--font-title-body-line-height", "--font-title-body-size", "--font-title-body-weight"], "spacing": ["--gap-lg", "--gap-md", "--gap-sm", "--gap-sm-md", "--gap-xl", "--gap-xs", "--gap-xxl", "--gap-xxs", "--gap-xxxl", "--gap-xxxxl", "--padding-lg", "--padding-md", "--padding-sm", "--padding-sm-md", "--padding-xl", "--padding-xs", "--padding-xxl", "--padding-xxs", "--padding-xxxs"], "radius": ["--radius-composer", "--radius-full", "--radius-lg", "--radius-md", "--radius-sm", "--radius-xl", "--radius-xs", "--radius-xxl", "--radius-xxs"], "border": ["--border-md", "--border-xs"], "shadow": ["--shadow-floating", "--shadow-modal"], "icons": ["--icon-size-lg", "--icon-size-md", "--icon-size-sm", "--icon-size-xl"], "motion": ["--motion-duration-base", "--motion-duration-deliberate", "--motion-duration-fast", "--motion-duration-instant", "--motion-duration-loop-matrix", "--motion-duration-loop-shimmer", "--motion-duration-loop-spin", "--motion-duration-slow", "--motion-duration-slower", "--motion-ease-emphasized", "--motion-ease-entrance", "--motion-ease-linear", "--motion-ease-spring", "--motion-ease-standard"] };
|
|
2
2
|
const registry = {
|
|
3
3
|
categories
|
|
4
4
|
};
|
package/tokens/tokens-dark.css
CHANGED
|
@@ -48,21 +48,25 @@
|
|
|
48
48
|
--shadow-floating: 0 4px 16px rgba(0, 0, 0, 0.55);
|
|
49
49
|
--shadow-modal: 0 8px 32px rgba(0, 0, 0, 0.6);
|
|
50
50
|
|
|
51
|
-
/* Action - Primary
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
--color-action-primary-
|
|
56
|
-
--color-action-primary-
|
|
51
|
+
/* Action - Primary. Inverted from light: the fill is the light half of
|
|
52
|
+
the teal ramp under a dark label, because a dark fill cannot clear 3:1
|
|
53
|
+
against the near-black page. Hover and active brighten rather than
|
|
54
|
+
deepen, so the fill walks toward the page's opposite, not into it. */
|
|
55
|
+
--color-action-primary-bg: var(--primitive-teal-05);
|
|
56
|
+
--color-action-primary-bg-hover: var(--primitive-teal-04);
|
|
57
|
+
--color-action-primary-bg-active: var(--primitive-teal-03);
|
|
58
|
+
--color-action-primary-text: var(--primitive-teal-10);
|
|
59
|
+
--color-action-primary-text-active: var(--primitive-teal-10);
|
|
57
60
|
--color-action-primary-text-secondary: var(--primitive-teal-10);
|
|
58
|
-
--color-action-primary-text-tertiary: var(--primitive-teal-
|
|
59
|
-
--color-action-primary-border: var(--primitive-teal-
|
|
61
|
+
--color-action-primary-text-tertiary: var(--primitive-teal-04);
|
|
62
|
+
--color-action-primary-border: var(--primitive-teal-05);
|
|
60
63
|
--color-action-primary-border-secondary: var(--primitive-teal-06);
|
|
61
64
|
--color-action-primary-border-tertiary: var(--primitive-teal-04);
|
|
62
65
|
|
|
63
|
-
/* Action - Icon
|
|
66
|
+
/* Action - Icon. The active icon sits on the hover/active fills, which
|
|
67
|
+
are the light half of the ramp here — so it inverts with the label. */
|
|
64
68
|
--color-action-icon-default: var(--primitive-neutral-01);
|
|
65
|
-
--color-action-icon-active: var(--primitive-
|
|
69
|
+
--color-action-icon-active: var(--primitive-teal-10);
|
|
66
70
|
|
|
67
71
|
/* Action - Passive (Secondary button) */
|
|
68
72
|
--color-action-passive-text: var(--primitive-neutral-01);
|
|
@@ -99,7 +103,7 @@
|
|
|
99
103
|
stays luminous on dark surfaces. */
|
|
100
104
|
--color-ai-gradient-start: var(--primitive-red-05);
|
|
101
105
|
--color-ai-gradient-mid: var(--primitive-blue-05);
|
|
102
|
-
--color-ai-gradient-end: var(--primitive-teal-
|
|
106
|
+
--color-ai-gradient-end: var(--primitive-teal-07);
|
|
103
107
|
|
|
104
108
|
/* Chart - Contribution heatmap ramp (level 0 = none → level 4 = most) */
|
|
105
109
|
--color-chart-contribution-0: var(--primitive-neutral-08);
|
|
@@ -108,20 +112,31 @@
|
|
|
108
112
|
--color-chart-contribution-3: var(--primitive-green-08);
|
|
109
113
|
--color-chart-contribution-4: var(--primitive-green-07);
|
|
110
114
|
|
|
115
|
+
/* Chart - Ordered series ramp for multi-series charts. Series 1 follows
|
|
116
|
+
the action teal (theme-split with it); 2-7 alias the core accents, so
|
|
117
|
+
re-theming an accent re-themes every chart that uses its slot. */
|
|
118
|
+
--color-chart-series-1: var(--color-action-primary-bg);
|
|
119
|
+
--color-chart-series-2: var(--color-core-accent-mint);
|
|
120
|
+
--color-chart-series-3: var(--color-core-accent-gold);
|
|
121
|
+
--color-chart-series-4: var(--color-core-accent-coral);
|
|
122
|
+
--color-chart-series-5: var(--color-core-accent-violet);
|
|
123
|
+
--color-chart-series-6: var(--color-core-accent-amber);
|
|
124
|
+
--color-chart-series-7: var(--color-core-accent-cobalt);
|
|
125
|
+
|
|
111
126
|
/* Input */
|
|
112
127
|
--color-input-text-primary: var(--primitive-neutral-01);
|
|
113
128
|
--color-input-text-placeholder: var(--primitive-neutral-04);
|
|
114
129
|
--color-input-text-disabled: var(--primitive-neutral-07);
|
|
115
130
|
--color-input-text-inverse: var(--primitive-neutral-07);
|
|
116
131
|
--color-input-border-primary: var(--primitive-neutral-08);
|
|
117
|
-
--color-input-border-hover: var(--primitive-teal-
|
|
132
|
+
--color-input-border-hover: var(--primitive-teal-07);
|
|
118
133
|
--color-input-border-selected: var(--primitive-teal-06);
|
|
119
134
|
--color-input-border-disabled: var(--primitive-neutral-08);
|
|
120
135
|
--color-input-bg-primary: var(--primitive-neutral-10);
|
|
121
136
|
--color-input-bg-disabled: var(--primitive-neutral-09);
|
|
122
137
|
|
|
123
138
|
/* Core colours */
|
|
124
|
-
--color-core-ui-primary: var(--primitive-teal-
|
|
139
|
+
--color-core-ui-primary: var(--primitive-teal-05);
|
|
125
140
|
--color-core-ui-secondary: var(--primitive-teal-09);
|
|
126
141
|
--color-core-accent-coral: var(--primitive-red-07);
|
|
127
142
|
--color-core-accent-violet: var(--primitive-purple-07);
|
package/tokens/tokens-light.css
CHANGED
|
@@ -51,17 +51,20 @@
|
|
|
51
51
|
--shadow-floating: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
52
52
|
--shadow-modal: 0 8px 32px rgba(0, 0, 0, 0.2);
|
|
53
53
|
|
|
54
|
-
/* Action - Primary
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
/* Action - Primary. The action colour is theme-dependent: one teal step
|
|
55
|
+
cannot clear 3:1 against both a white page and a near-black one while
|
|
56
|
+
also carrying a 4.5:1 label, so light takes a deep fill under a light
|
|
57
|
+
label and the dark theme inverts it (see tokens-dark.css). */
|
|
58
|
+
--color-action-primary-bg: var(--primitive-teal-08);
|
|
59
|
+
--color-action-primary-bg-hover: var(--primitive-teal-09);
|
|
60
|
+
--color-action-primary-bg-active: var(--primitive-teal-10);
|
|
58
61
|
--color-action-primary-text: var(--primitive-teal-02);
|
|
59
62
|
--color-action-primary-text-active: var(--primitive-neutral-01);
|
|
60
63
|
--color-action-primary-text-secondary: var(--primitive-teal-10);
|
|
61
|
-
--color-action-primary-text-tertiary: var(--primitive-teal-
|
|
62
|
-
--color-action-primary-border: var(--primitive-teal-
|
|
63
|
-
--color-action-primary-border-secondary: var(--primitive-teal-
|
|
64
|
-
--color-action-primary-border-tertiary: var(--primitive-teal-
|
|
64
|
+
--color-action-primary-text-tertiary: var(--primitive-teal-09);
|
|
65
|
+
--color-action-primary-border: var(--primitive-teal-10);
|
|
66
|
+
--color-action-primary-border-secondary: var(--primitive-teal-08);
|
|
67
|
+
--color-action-primary-border-tertiary: var(--primitive-teal-08);
|
|
65
68
|
|
|
66
69
|
/* Action - Icon */
|
|
67
70
|
--color-action-icon-default: var(--primitive-neutral-10);
|
|
@@ -74,7 +77,7 @@
|
|
|
74
77
|
--color-action-passive-bg-active: var(--primitive-neutral-03-semi);
|
|
75
78
|
|
|
76
79
|
/* Core colours */
|
|
77
|
-
--color-core-ui-primary: var(--primitive-teal-
|
|
80
|
+
--color-core-ui-primary: var(--primitive-teal-08);
|
|
78
81
|
--color-core-ui-secondary: var(--primitive-teal-10);
|
|
79
82
|
--color-core-accent-coral: var(--primitive-red-07);
|
|
80
83
|
--color-core-accent-violet: var(--primitive-purple-07);
|
|
@@ -114,7 +117,7 @@
|
|
|
114
117
|
(AiButton's ring and glow), never as fills for ordinary chrome. */
|
|
115
118
|
--color-ai-gradient-start: var(--primitive-red-06);
|
|
116
119
|
--color-ai-gradient-mid: var(--primitive-blue-06);
|
|
117
|
-
--color-ai-gradient-end: var(--primitive-teal-
|
|
120
|
+
--color-ai-gradient-end: var(--primitive-teal-08);
|
|
118
121
|
|
|
119
122
|
/* Chart - Contribution heatmap ramp (level 0 = none → level 4 = most) */
|
|
120
123
|
--color-chart-contribution-0: var(--color-bg-container-primary);
|
|
@@ -123,14 +126,25 @@
|
|
|
123
126
|
--color-chart-contribution-3: var(--primitive-green-07);
|
|
124
127
|
--color-chart-contribution-4: var(--primitive-green-09);
|
|
125
128
|
|
|
129
|
+
/* Chart - Ordered series ramp for multi-series charts. Series 1 follows
|
|
130
|
+
the action teal (theme-split with it); 2-7 alias the core accents, so
|
|
131
|
+
re-theming an accent re-themes every chart that uses its slot. */
|
|
132
|
+
--color-chart-series-1: var(--color-action-primary-bg);
|
|
133
|
+
--color-chart-series-2: var(--color-core-accent-mint);
|
|
134
|
+
--color-chart-series-3: var(--color-core-accent-gold);
|
|
135
|
+
--color-chart-series-4: var(--color-core-accent-coral);
|
|
136
|
+
--color-chart-series-5: var(--color-core-accent-violet);
|
|
137
|
+
--color-chart-series-6: var(--color-core-accent-amber);
|
|
138
|
+
--color-chart-series-7: var(--color-core-accent-cobalt);
|
|
139
|
+
|
|
126
140
|
/* Input */
|
|
127
141
|
--color-input-text-primary: var(--primitive-neutral-10);
|
|
128
142
|
--color-input-text-placeholder: var(--primitive-neutral-06);
|
|
129
143
|
--color-input-text-disabled: var(--primitive-neutral-04);
|
|
130
144
|
--color-input-text-inverse: var(--primitive-neutral-04);
|
|
131
145
|
--color-input-border-primary: var(--primitive-neutral-02);
|
|
132
|
-
--color-input-border-hover: var(--primitive-teal-
|
|
133
|
-
--color-input-border-selected: var(--primitive-teal-
|
|
146
|
+
--color-input-border-hover: var(--primitive-teal-06);
|
|
147
|
+
--color-input-border-selected: var(--primitive-teal-08);
|
|
134
148
|
--color-input-border-disabled: var(--primitive-neutral-03);
|
|
135
149
|
--color-input-bg-primary: var(--primitive-neutral-00);
|
|
136
150
|
--color-input-bg-disabled: var(--primitive-neutral-02);
|
|
@@ -118,6 +118,26 @@
|
|
|
118
118
|
--font-paragraph-sm-em-weight: 500;
|
|
119
119
|
--font-paragraph-sm-em-line-height: 20px;
|
|
120
120
|
--font-paragraph-sm-em-letter-spacing: 0;
|
|
121
|
+
|
|
122
|
+
/* Overline — the uppercase label face: an eyebrow over a title, a map
|
|
123
|
+
callout's place name, a code block's language chip. Small and bold with
|
|
124
|
+
open tracking, because capitals at this size need air to stay legible.
|
|
125
|
+
Pair with text-transform: uppercase at the use site — the tokens set the
|
|
126
|
+
metrics, never the casing. */
|
|
127
|
+
--font-overline-family: var(--font-family-primary);
|
|
128
|
+
--font-overline-size: 14px;
|
|
129
|
+
--font-overline-weight: 600;
|
|
130
|
+
--font-overline-line-height: 20px;
|
|
131
|
+
--font-overline-letter-spacing: 0.08em; /* +8% */
|
|
132
|
+
|
|
133
|
+
/* Caption — the floor of the scale. Footnotes and disclaimers: a line the
|
|
134
|
+
reader should be able to find but never has to read to use the screen.
|
|
135
|
+
Never on a control, never for running text. */
|
|
136
|
+
--font-caption-family: var(--font-family-primary);
|
|
137
|
+
--font-caption-size: 12px;
|
|
138
|
+
--font-caption-weight: 400;
|
|
139
|
+
--font-caption-line-height: 16px;
|
|
140
|
+
--font-caption-letter-spacing: 0;
|
|
121
141
|
}
|
|
122
142
|
|
|
123
143
|
/* ============================================
|