@flood-md/agent 0.2.10 → 0.2.12

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.
Files changed (140) hide show
  1. package/DESIGN.md +8 -5
  2. package/README.md +1 -1
  3. package/SKILL.md +11 -0
  4. package/dist/catalog.json +1914 -278
  5. package/dist/materials/component-app-shell.md +49 -0
  6. package/dist/materials/component-app-top-bar.md +36 -0
  7. package/dist/materials/component-autocomplete.md +54 -0
  8. package/dist/materials/component-bulk-action-bar.md +52 -0
  9. package/dist/materials/component-button.md +1 -0
  10. package/dist/materials/component-card.md +2 -2
  11. package/dist/materials/component-collapsible.md +1 -0
  12. package/dist/materials/component-collection-toolbar.md +69 -0
  13. package/dist/materials/component-collection-view-switcher.md +49 -0
  14. package/dist/materials/component-combobox.md +10 -0
  15. package/dist/materials/component-command-palette.md +53 -0
  16. package/dist/materials/component-copy-button.md +1 -0
  17. package/dist/materials/component-data-table.md +34 -4
  18. package/dist/materials/component-date-picker.md +1 -0
  19. package/dist/materials/component-date-range-picker.md +1 -0
  20. package/dist/materials/component-date-time-picker.md +2 -0
  21. package/dist/materials/component-date-time-range-picker.md +4 -0
  22. package/dist/materials/component-drawer.md +1 -0
  23. package/dist/materials/component-editable.md +4 -0
  24. package/dist/materials/component-figure.md +1 -1
  25. package/dist/materials/component-filter-condition.md +53 -0
  26. package/dist/materials/component-filter-group.md +55 -0
  27. package/dist/materials/component-heading.md +1 -1
  28. package/dist/materials/component-icon-button.md +2 -0
  29. package/dist/materials/component-menubar.md +41 -0
  30. package/dist/materials/component-multi-select.md +10 -0
  31. package/dist/materials/component-navigation-group.md +51 -0
  32. package/dist/materials/component-navigation-item.md +59 -0
  33. package/dist/materials/component-navigation-tree.md +8 -0
  34. package/dist/materials/component-overflow-actions.md +47 -0
  35. package/dist/materials/component-page-header.md +40 -0
  36. package/dist/materials/component-popover.md +2 -1
  37. package/dist/materials/component-radio-card.md +2 -2
  38. package/dist/materials/component-section.md +1 -1
  39. package/dist/materials/component-segmented-control.md +6 -4
  40. package/dist/materials/component-sheet.md +49 -0
  41. package/dist/materials/component-sidebar.md +64 -0
  42. package/dist/materials/component-sparkline.md +41 -0
  43. package/dist/materials/component-table.md +2 -0
  44. package/dist/materials/component-tabs.md +2 -0
  45. package/dist/materials/component-text.md +2 -2
  46. package/dist/materials/component-toggle.md +1 -0
  47. package/dist/materials/component-toolbar.md +5 -0
  48. package/dist/materials/component-tooltip.md +1 -1
  49. package/dist/materials/guide-agent-knowledge.md +13 -6
  50. package/dist/materials/guide-agents.md +8 -1
  51. package/dist/materials/guide-foundations.md +45 -2
  52. package/dist/materials/guide-installation.md +6 -6
  53. package/dist/materials/guide-interface-content.md +1 -1
  54. package/dist/materials/guide-introduction.md +4 -2
  55. package/dist/materials/guide-layout.md +39 -10
  56. package/dist/materials/guide-motion.md +66 -0
  57. package/dist/materials/guide-skills.md +9 -0
  58. package/dist/materials/recipe-collection-views.md +670 -0
  59. package/dist/materials/recipe-command-palette.md +31 -52
  60. package/dist/materials/recipe-filter-bar.md +12 -3
  61. package/dist/materials/recipe-grouped-form.md +5 -0
  62. package/dist/materials/recipe-navigation-workspace.md +222 -0
  63. package/dist/materials/recipe-record-management.md +310 -0
  64. package/dist/materials/recipe-record-workspace.md +207 -0
  65. package/dist/materials/recipe-settings-workspace.md +232 -0
  66. package/dist/materials/token-sys.color.context.base.action-disabled.json +41 -0
  67. package/dist/materials/token-sys.color.context.base.action-hover.json +41 -0
  68. package/dist/materials/token-sys.color.context.base.action-pressed.json +41 -0
  69. package/dist/materials/token-sys.color.context.base.action-rest.json +41 -0
  70. package/dist/materials/token-sys.color.context.base.avatar-background.json +41 -0
  71. package/dist/materials/token-sys.color.context.base.border-decorative.json +41 -0
  72. package/dist/materials/token-sys.color.context.base.divider-decorative.json +41 -0
  73. package/dist/materials/token-sys.color.context.base.field-background.json +41 -0
  74. package/dist/materials/token-sys.color.context.base.field-border.json +41 -0
  75. package/dist/materials/token-sys.color.context.base.field-disabled.json +41 -0
  76. package/dist/materials/token-sys.color.context.base.field-readonly.json +41 -0
  77. package/dist/materials/token-sys.color.context.base.indicator-track.json +41 -0
  78. package/dist/materials/token-sys.color.context.base.loading-placeholder.json +41 -0
  79. package/dist/materials/token-sys.color.context.base.muted-background.json +41 -0
  80. package/dist/materials/token-sys.color.context.base.on-surface-action-disabled.json +41 -0
  81. package/dist/materials/token-sys.color.context.base.on-surface-action-hover.json +41 -0
  82. package/dist/materials/token-sys.color.context.base.on-surface-action-pressed.json +41 -0
  83. package/dist/materials/token-sys.color.context.base.on-surface-action-rest.json +41 -0
  84. package/dist/materials/token-sys.color.context.base.selection-background.json +41 -0
  85. package/dist/materials/token-sys.color.context.base.supporting-background.json +41 -0
  86. package/dist/materials/token-sys.color.context.filled.action-disabled.json +41 -0
  87. package/dist/materials/token-sys.color.context.filled.action-hover.json +41 -0
  88. package/dist/materials/token-sys.color.context.filled.action-pressed.json +41 -0
  89. package/dist/materials/token-sys.color.context.filled.action-rest.json +41 -0
  90. package/dist/materials/token-sys.color.context.filled.avatar-background.json +41 -0
  91. package/dist/materials/token-sys.color.context.filled.border-decorative.json +41 -0
  92. package/dist/materials/token-sys.color.context.filled.divider-decorative.json +41 -0
  93. package/dist/materials/token-sys.color.context.filled.field-background.json +41 -0
  94. package/dist/materials/token-sys.color.context.filled.field-border.json +41 -0
  95. package/dist/materials/token-sys.color.context.filled.field-disabled.json +41 -0
  96. package/dist/materials/token-sys.color.context.filled.field-readonly.json +41 -0
  97. package/dist/materials/token-sys.color.context.filled.indicator-track.json +41 -0
  98. package/dist/materials/token-sys.color.context.filled.loading-placeholder.json +41 -0
  99. package/dist/materials/token-sys.color.context.filled.muted-background.json +41 -0
  100. package/dist/materials/token-sys.color.context.filled.selection-background.json +41 -0
  101. package/dist/materials/token-sys.color.context.filled.supporting-background.json +41 -0
  102. package/dist/materials/token-sys.color.field.readonly.json +41 -0
  103. package/dist/materials/token-sys.color.surface.avatar.json +41 -0
  104. package/dist/materials/token-sys.color.surface.current.json +41 -0
  105. package/dist/materials/token-sys.color.surface.muted.json +41 -0
  106. package/dist/materials/token-sys.color.surface.supporting.json +41 -0
  107. package/dist/materials/token-sys.motion.distance-panel.json +36 -0
  108. package/dist/materials/token-sys.motion.distance-small.json +36 -0
  109. package/dist/materials/token-sys.motion.duration-enter.json +36 -0
  110. package/dist/materials/token-sys.motion.duration-exit.json +36 -0
  111. package/dist/materials/token-sys.motion.duration-layer.json +36 -0
  112. package/dist/materials/token-sys.motion.duration-loop.json +36 -0
  113. package/dist/materials/token-sys.motion.duration-press.json +36 -0
  114. package/dist/materials/token-sys.motion.easing-enter.json +38 -0
  115. package/dist/materials/token-sys.motion.easing-exit.json +38 -0
  116. package/knowledge.json +115 -2
  117. package/lib/inspect.mjs +11 -0
  118. package/manifest.json +11 -1
  119. package/package.json +9 -3
  120. package/references/component-families.md +150 -0
  121. package/references/composition.md +16 -4
  122. package/references/customization.md +14 -0
  123. package/references/flood-composition/SKILL.md +4 -0
  124. package/references/flood-data-display/SKILL.md +146 -0
  125. package/references/flood-feedback/SKILL.md +37 -0
  126. package/references/flood-forms/SKILL.md +31 -0
  127. package/references/flood-foundations/SKILL.md +36 -0
  128. package/references/flood-hierarchy/SKILL.md +27 -7
  129. package/references/flood-interface-content/SKILL.md +33 -5
  130. package/references/flood-motion/SKILL.md +47 -0
  131. package/references/flood-navigation/SKILL.md +195 -0
  132. package/references/flood-overlays/SKILL.md +41 -0
  133. package/references/flood-records/SKILL.md +65 -2
  134. package/references/flood-spacing/SKILL.md +45 -0
  135. package/references/flood-verification/SKILL.md +20 -0
  136. package/references/interface-content-examples.md +4 -0
  137. package/references/rendered-review.md +5 -0
  138. package/references/spacing.md +30 -0
  139. package/rules.json +98 -8
  140. package/workflows.json +28 -3
@@ -0,0 +1,232 @@
1
+ # Settings workspace
2
+
3
+ [Open the working composition](/playground/settings).
4
+
5
+ Use a settings page when a person needs to review and change several related
6
+ preferences together. This example groups workspace details and notifications
7
+ in one form with a single save boundary. Fieldset names the groups, Field
8
+ associates labels and errors, and Grid lets related fields share tracks when
9
+ there is room. Use a standalone form control for a preference that should
10
+ apply immediately and has no shared save boundary.
11
+
12
+ ## Save and discard
13
+
14
+ The host keeps a draft and the last accepted snapshot. Save validates the
15
+ workspace name, focuses its input if invalid and writes the full proposal
16
+ before announcing success. A write failure leaves the draft available for
17
+ retry. Discard restores the accepted snapshot and moves focus back to the first
18
+ field. Keep the save control available after success so a focused submit
19
+ button stays in the tab order.
20
+
21
+ This playground uses a dedicated browser storage key. The first visit starts
22
+ with defaults. If a saved snapshot cannot be read or parsed, show a retry
23
+ action and leave that snapshot intact. Use the host's actual persistence and
24
+ permission model when adapting the recipe.
25
+
26
+ ## Source
27
+
28
+ ```tsx
29
+ "use client";
30
+
31
+ import { useEffect, useRef, useState, type FormEvent } from "react";
32
+ import {
33
+ Alert, Button, Container, Field, Fieldset, Grid, Heading, Inline,
34
+ Input, Select, Stack, Surface, Switch, Text,
35
+ } from "@flood-md/react";
36
+ import "./settings-workspace.css";
37
+
38
+ const storageKey = "flood:settings-workspace:v1";
39
+ const timeZones = ["UTC", "Europe/London", "America/New_York", "Asia/Tokyo"] as const;
40
+ const maxNameLength = 80;
41
+ type TimeZone = typeof timeZones[number];
42
+
43
+ interface WorkspaceSettings {
44
+ name: string;
45
+ timeZone: TimeZone;
46
+ assignmentAlerts: boolean;
47
+ weeklyDigest: boolean;
48
+ }
49
+
50
+ const defaults: WorkspaceSettings = {
51
+ name: "Studio North",
52
+ timeZone: "UTC",
53
+ assignmentAlerts: true,
54
+ weeklyDigest: false,
55
+ };
56
+
57
+ function isTimeZone(value: unknown): value is TimeZone {
58
+ return timeZones.some(timeZone => timeZone === value);
59
+ }
60
+
61
+ function readSettings(): WorkspaceSettings {
62
+ const snapshot = window.localStorage.getItem(storageKey);
63
+ if (snapshot === null) return defaults;
64
+ const value: unknown = JSON.parse(snapshot);
65
+ if (
66
+ typeof value === "object" && value !== null &&
67
+ "name" in value && typeof value.name === "string" && value.name.trim() &&
68
+ value.name.length <= maxNameLength &&
69
+ "timeZone" in value && isTimeZone(value.timeZone) &&
70
+ "assignmentAlerts" in value && typeof value.assignmentAlerts === "boolean" &&
71
+ "weeklyDigest" in value && typeof value.weeklyDigest === "boolean"
72
+ ) {
73
+ return {
74
+ name: value.name,
75
+ timeZone: value.timeZone,
76
+ assignmentAlerts: value.assignmentAlerts,
77
+ weeklyDigest: value.weeklyDigest,
78
+ };
79
+ }
80
+ throw new Error("Invalid workspace settings");
81
+ }
82
+
83
+ export function SettingsWorkspace() {
84
+ const [accepted, setAccepted] = useState<WorkspaceSettings | null>(null);
85
+ const [draft, setDraft] = useState(defaults);
86
+ const [readError, setReadError] = useState(false);
87
+ const [nameError, setNameError] = useState("");
88
+ const [saveError, setSaveError] = useState("");
89
+ const [notice, setNotice] = useState("");
90
+ const nameInput = useRef<HTMLInputElement>(null);
91
+
92
+ function load() {
93
+ try {
94
+ const settings = readSettings();
95
+ setAccepted(settings);
96
+ setDraft(settings);
97
+ setReadError(false);
98
+ } catch {
99
+ setReadError(true);
100
+ }
101
+ }
102
+
103
+ useEffect(load, []);
104
+
105
+ const dirty = accepted !== null && (
106
+ draft.name !== accepted.name || draft.timeZone !== accepted.timeZone ||
107
+ draft.assignmentAlerts !== accepted.assignmentAlerts || draft.weeklyDigest !== accepted.weeklyDigest
108
+ );
109
+
110
+ function update<K extends keyof WorkspaceSettings>(key: K, value: WorkspaceSettings[K]) {
111
+ setDraft(current => ({ ...current, [key]: value }));
112
+ setNotice("");
113
+ if (key === "name") setNameError("");
114
+ }
115
+
116
+ function save(event: FormEvent<HTMLFormElement>) {
117
+ event.preventDefault();
118
+ if (!accepted) return;
119
+ const name = draft.name.trim();
120
+ if (!name) {
121
+ setNameError("Enter a workspace name.");
122
+ nameInput.current?.focus();
123
+ return;
124
+ }
125
+ const proposal = { ...draft, name };
126
+ try {
127
+ window.localStorage.setItem(storageKey, JSON.stringify(proposal));
128
+ } catch {
129
+ setSaveError("Settings could not be saved. Try again.");
130
+ return;
131
+ }
132
+ setAccepted(proposal);
133
+ setDraft(proposal);
134
+ setNameError("");
135
+ setSaveError("");
136
+ setNotice("Settings saved.");
137
+ }
138
+
139
+ function reset() {
140
+ if (!accepted) return;
141
+ setDraft(accepted);
142
+ setNameError("");
143
+ setSaveError("");
144
+ setNotice("Unsaved changes discarded.");
145
+ nameInput.current?.focus({ preventScroll: true });
146
+ }
147
+
148
+ return (
149
+ <Container size="md" gutter="4">
150
+ <Stack gap="6">
151
+ <Heading level={1} size="page">Workspace settings</Heading>
152
+ {readError ? (
153
+ <Stack gap="4">
154
+ <Alert tone="error" announcement="polite">Settings could not be loaded.</Alert>
155
+ <Inline><Button variant="subtle" onClick={load}>Retry</Button></Inline>
156
+ </Stack>
157
+ ) : accepted ? (
158
+ <Surface padding="6" elevation="raised">
159
+ <form aria-label="Workspace settings" onSubmit={save} noValidate>
160
+ <Stack gap="6">
161
+ <Fieldset legend="General" legendSize="section">
162
+ <Grid minItemWidth="14rem" gap="4">
163
+ <Field label="Workspace name" required error={nameError}>
164
+ {props => (
165
+ <Input {...props} ref={nameInput} name="name" maxLength={maxNameLength}
166
+ value={draft.name} onChange={event => update("name", event.currentTarget.value)} />
167
+ )}
168
+ </Field>
169
+ <Field label="Time zone">
170
+ {props => (
171
+ <Select {...props} name="timeZone" value={draft.timeZone}
172
+ onChange={event => {
173
+ const value = event.currentTarget.value;
174
+ if (isTimeZone(value)) update("timeZone", value);
175
+ }}>
176
+ {timeZones.map(timeZone => <option key={timeZone}>{timeZone}</option>)}
177
+ </Select>
178
+ )}
179
+ </Field>
180
+ </Grid>
181
+ </Fieldset>
182
+ <Fieldset legend="Notifications" legendSize="section">
183
+ <Stack gap="0" className="settings-switches">
184
+ <Switch className="settings-switch" label="New assignments" name="assignmentAlerts" checked={draft.assignmentAlerts}
185
+ onChange={event => update("assignmentAlerts", event.currentTarget.checked)} />
186
+ <Switch className="settings-switch" label="Weekly summary" name="weeklyDigest" checked={draft.weeklyDigest}
187
+ onChange={event => update("weeklyDigest", event.currentTarget.checked)} />
188
+ </Stack>
189
+ </Fieldset>
190
+ <Stack gap="4">
191
+ {saveError && <Alert tone="error" announcement="polite">{saveError}</Alert>}
192
+ <Inline gap="3">
193
+ <Button type="submit">Save settings</Button>
194
+ <Button variant="subtle" disabled={!dirty} onClick={reset}>Discard changes</Button>
195
+ <Text size="compact" tone="subtle" role="status">{notice}</Text>
196
+ </Inline>
197
+ </Stack>
198
+ </Stack>
199
+ </form>
200
+ </Surface>
201
+ ) : <Text role="status">Loading settings…</Text>}
202
+ </Stack>
203
+ </Container>
204
+ );
205
+ }
206
+ ```
207
+
208
+ ```css
209
+ .settings-switches {
210
+ max-inline-size: 16rem;
211
+ }
212
+
213
+ .flood-root .settings-switch {
214
+ inline-size: 100%;
215
+ justify-content: space-between;
216
+ }
217
+
218
+ .settings-switch input {
219
+ flex: none;
220
+ }
221
+ ```
222
+
223
+ ## Review
224
+
225
+ Check empty-name validation and its focus target, changes across sections,
226
+ discard, persistence after reload and read/write failure. Confirm the form
227
+ stacks at narrow widths and the labels remain readable with enlarged text.
228
+
229
+ Compare the legend with the first switch label, then compare the spacing
230
+ between the two switch labels. The row target already creates pitch. Align
231
+ the tracks at the end of a bounded column and verify that each label still
232
+ pairs clearly with its switch. See [visible weight](../layout.md#review-visible-weight).
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.action-disabled",
3
+ "cssName": "--flood-sys-color-context-base-action-disabled",
4
+ "description": "Canvas-context action-disabled; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.action-disabled",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-action-disabled",
12
+ "description": "Canvas-context action-disabled; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context action-disabled; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.12941176470588237,
29
+ 0.12941176470588237,
30
+ 0.12941176470588237
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.900",
35
+ "dependencies": [
36
+ "ref.color.neutral.900"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.action-hover",
3
+ "cssName": "--flood-sys-color-context-base-action-hover",
4
+ "description": "Canvas-context action-hover; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.action-hover",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-action-hover",
12
+ "description": "Canvas-context action-hover; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context action-hover; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.1568627450980392,
29
+ 0.1568627450980392,
30
+ 0.1568627450980392
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.850",
35
+ "dependencies": [
36
+ "ref.color.neutral.850"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.action-pressed",
3
+ "cssName": "--flood-sys-color-context-base-action-pressed",
4
+ "description": "Canvas-context action-pressed; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.action-pressed",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-action-pressed",
12
+ "description": "Canvas-context action-pressed; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context action-pressed; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.18823529411764706,
29
+ 0.18823529411764706,
30
+ 0.18823529411764706
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.800",
35
+ "dependencies": [
36
+ "ref.color.neutral.800"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.action-rest",
3
+ "cssName": "--flood-sys-color-context-base-action-rest",
4
+ "description": "Canvas-context action-rest; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.action-rest",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-action-rest",
12
+ "description": "Canvas-context action-rest; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context action-rest; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.12941176470588237,
29
+ 0.12941176470588237,
30
+ 0.12941176470588237
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.900",
35
+ "dependencies": [
36
+ "ref.color.neutral.900"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.avatar-background",
3
+ "cssName": "--flood-sys-color-context-base-avatar-background",
4
+ "description": "Canvas avatar-background",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.avatar-background",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-avatar-background",
12
+ "description": "Canvas avatar-background",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas avatar-background"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.18823529411764706,
29
+ 0.18823529411764706,
30
+ 0.18823529411764706
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.800",
35
+ "dependencies": [
36
+ "ref.color.neutral.800"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.border-decorative",
3
+ "cssName": "--flood-sys-color-context-base-border-decorative",
4
+ "description": "Canvas-context border-decorative; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.border-decorative",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-border-decorative",
12
+ "description": "Canvas-context border-decorative; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context border-decorative; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.2196078431372549,
29
+ 0.2196078431372549,
30
+ 0.2196078431372549
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.750",
35
+ "dependencies": [
36
+ "ref.color.neutral.750"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.divider-decorative",
3
+ "cssName": "--flood-sys-color-context-base-divider-decorative",
4
+ "description": "Canvas-context divider-decorative; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.divider-decorative",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-divider-decorative",
12
+ "description": "Canvas-context divider-decorative; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context divider-decorative; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.2196078431372549,
29
+ 0.2196078431372549,
30
+ 0.2196078431372549
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.750",
35
+ "dependencies": [
36
+ "ref.color.neutral.750"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.field-background",
3
+ "cssName": "--flood-sys-color-context-base-field-background",
4
+ "description": "Canvas-context field-background; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.field-background",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-field-background",
12
+ "description": "Canvas-context field-background; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context field-background; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.1568627450980392,
29
+ 0.1568627450980392,
30
+ 0.1568627450980392
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.850",
35
+ "dependencies": [
36
+ "ref.color.neutral.850"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.field-border",
3
+ "cssName": "--flood-sys-color-context-base-field-border",
4
+ "description": "Canvas-context field-border; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.field-border",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-field-border",
12
+ "description": "Canvas-context field-border; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context field-border; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.2196078431372549,
29
+ 0.2196078431372549,
30
+ 0.2196078431372549
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.750",
35
+ "dependencies": [
36
+ "ref.color.neutral.750"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "role": "sys.color.context.base.field-disabled",
3
+ "cssName": "--flood-sys-color-context-base-field-disabled",
4
+ "description": "Canvas-context field-disabled; explicit reset for a nested canvas scope",
5
+ "contexts": [
6
+ {
7
+ "preset": "neutral",
8
+ "theme": "dark",
9
+ "id": "sys.color.context.base.field-disabled",
10
+ "type": "color",
11
+ "cssName": "--flood-sys-color-context-base-field-disabled",
12
+ "description": "Canvas-context field-disabled; explicit reset for a nested canvas scope",
13
+ "status": "experimental",
14
+ "visibility": "public",
15
+ "owner": "foundations",
16
+ "since": "0.2.11",
17
+ "usage": {
18
+ "allowed": [
19
+ "Canvas-context field-disabled; explicit reset for a nested canvas scope"
20
+ ],
21
+ "avoid": [
22
+ "Replacing focus, text or semantic feedback colors"
23
+ ]
24
+ },
25
+ "value": {
26
+ "colorSpace": "srgb",
27
+ "components": [
28
+ 0.12941176470588237,
29
+ 0.12941176470588237,
30
+ 0.12941176470588237
31
+ ],
32
+ "alpha": 1
33
+ },
34
+ "alias": "ref.color.neutral.900",
35
+ "dependencies": [
36
+ "ref.color.neutral.900"
37
+ ],
38
+ "dependents": []
39
+ }
40
+ ]
41
+ }