@citron-systems/citron-ds 1.0.0 → 1.0.2

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 (63) hide show
  1. package/README.md +218 -149
  2. package/cli/citron-mascot.mjs +117 -0
  3. package/dist/ai/inkblot-ai-reference.json +582 -570
  4. package/dist/ai/inkblot-tokens-resolved.json +25 -0
  5. package/dist/ai/inkblot-tokens-schema.json +54 -54
  6. package/dist/brand/citron-mascot-mono.svg +17 -0
  7. package/dist/brand/citron-mascot.svg +21 -0
  8. package/dist/brand/readme-hero.svg +61 -0
  9. package/dist/bundle/README.md +28 -0
  10. package/dist/bundle/ai-reference.json +582 -0
  11. package/dist/bundle/brand/citron-mascot-mono.svg +17 -0
  12. package/dist/bundle/brand/citron-mascot.svg +21 -0
  13. package/dist/bundle/brand/readme-hero.svg +61 -0
  14. package/dist/bundle/preview/mascot.html +72 -0
  15. package/dist/bundle/system/ai.json +168 -0
  16. package/dist/bundle/system/cli.json +340 -0
  17. package/dist/bundle/system/components.json +304 -0
  18. package/dist/bundle/system/content.json +168 -0
  19. package/dist/bundle/system/devtools.json +95 -0
  20. package/dist/bundle/system/foundations.json +121 -0
  21. package/dist/bundle/system/grid.json +101 -0
  22. package/dist/bundle/system/icons.json +507 -0
  23. package/dist/bundle/system/index.json +57 -0
  24. package/dist/bundle/system/inkblot-ai-reference.json +582 -0
  25. package/dist/bundle/system/motion.json +159 -0
  26. package/dist/bundle/tokens/primitive/breakpoint.tokens.json +14 -0
  27. package/dist/bundle/tokens/primitive/color.tokens.json +71 -0
  28. package/dist/bundle/tokens/primitive/devtools.palette.tokens.json +55 -0
  29. package/dist/bundle/tokens/primitive/duration.tokens.json +38 -0
  30. package/dist/bundle/tokens/primitive/grid.tokens.json +34 -0
  31. package/dist/bundle/tokens/primitive/radius.tokens.json +26 -0
  32. package/dist/bundle/tokens/primitive/shadow.tokens.json +41 -0
  33. package/dist/bundle/tokens/primitive/spacing.tokens.json +38 -0
  34. package/dist/bundle/tokens/primitive/typography.tokens.json +60 -0
  35. package/dist/bundle/tokens/primitive/zindex.tokens.json +19 -0
  36. package/dist/bundle/tokens/semantic/dark.tokens.json +43 -0
  37. package/dist/bundle/tokens/semantic/devtools.semantic.tokens.json +79 -0
  38. package/dist/bundle/tokens/semantic/inkblot.semantic.tokens.json +140 -0
  39. package/dist/bundle/tokens-schema.json +54 -0
  40. package/dist/bundle/tokens.flat.json +224 -0
  41. package/dist/bundle/tokens.resolved.json +224 -0
  42. package/dist/bundle/variables.css +228 -0
  43. package/dist/bundle/variables.scss +225 -0
  44. package/dist/css/inkblot-variables.css +25 -0
  45. package/dist/index.html +956 -0
  46. package/dist/js/inkblot-tokens.js +25 -0
  47. package/dist/js/inkblot-tokens.json +25 -0
  48. package/dist/preview/mascot.html +72 -0
  49. package/dist/scss/_inkblot-variables.scss +25 -0
  50. package/package.json +73 -61
  51. package/tokens/primitive/breakpoint.tokens.json +14 -14
  52. package/tokens/primitive/color.tokens.json +71 -71
  53. package/tokens/primitive/devtools.palette.tokens.json +55 -0
  54. package/tokens/primitive/duration.tokens.json +38 -38
  55. package/tokens/primitive/grid.tokens.json +34 -34
  56. package/tokens/primitive/radius.tokens.json +26 -26
  57. package/tokens/primitive/shadow.tokens.json +41 -41
  58. package/tokens/primitive/spacing.tokens.json +38 -38
  59. package/tokens/primitive/typography.tokens.json +60 -60
  60. package/tokens/primitive/zindex.tokens.json +19 -19
  61. package/tokens/semantic/dark.tokens.json +43 -43
  62. package/tokens/semantic/devtools.semantic.tokens.json +79 -0
  63. package/tokens/semantic/inkblot.semantic.tokens.json +140 -140
@@ -0,0 +1,79 @@
1
+ {
2
+ "$description": "Semantic tokens for developer tooling UI. Compose from inkblot.color.devtools primitives.",
3
+ "inkblot": {
4
+ "semantic": {
5
+ "devtools": {
6
+ "color": {
7
+ "$type": "color",
8
+ "$description": "Use var(--inkblot-semantic-devtools-color-*) in dev menus, Storybook, Vite overlay, admin shells",
9
+ "background": {
10
+ "app": {
11
+ "$value": "{inkblot.color.devtools.background}",
12
+ "$description": "Full dev shell background"
13
+ },
14
+ "surface": {
15
+ "$value": "{inkblot.color.devtools.surface}",
16
+ "$description": "Panels, modals, dropdowns"
17
+ },
18
+ "surfaceElevated": {
19
+ "$value": "{inkblot.color.devtools.surface}",
20
+ "$description": "Optional second elevation — same token until a lighter step is needed"
21
+ }
22
+ },
23
+ "text": {
24
+ "primary": {
25
+ "$value": "{inkblot.color.devtools.textPrimary}",
26
+ "$description": "Body and titles in dev UI"
27
+ },
28
+ "muted": {
29
+ "$value": "{inkblot.color.devtools.textMuted}",
30
+ "$description": "Meta, captions, disabled-adjacent copy"
31
+ },
32
+ "onPrimary": {
33
+ "$value": "{inkblot.color.devtools.textPrimary}",
34
+ "$description": "Text on primary/dominant buttons"
35
+ }
36
+ },
37
+ "border": {
38
+ "default": {
39
+ "$value": "{inkblot.color.devtools.border}",
40
+ "$description": "Dividers and field outlines"
41
+ },
42
+ "strong": {
43
+ "$value": "{inkblot.color.devtools.support}",
44
+ "$description": "Drag handles, resize accents — use at low opacity if needed"
45
+ }
46
+ },
47
+ "accent": {
48
+ "brand": {
49
+ "$value": "{inkblot.color.devtools.dominant}",
50
+ "$description": "Dev chrome brand strip — blue, not citron"
51
+ },
52
+ "positive": {
53
+ "$value": "{inkblot.color.devtools.accent}",
54
+ "$description": "Build passed, tests green, healthy status"
55
+ }
56
+ },
57
+ "interactive": {
58
+ "primary": {
59
+ "$value": "{inkblot.color.devtools.primary}",
60
+ "$description": "Primary buttons, submit, run"
61
+ },
62
+ "primaryHover": {
63
+ "$value": "{inkblot.color.devtools.primaryHover}",
64
+ "$description": "Hover state for primary"
65
+ },
66
+ "ghost": {
67
+ "$value": "{inkblot.color.devtools.textMuted}",
68
+ "$description": "Low-emphasis controls — pair with transparent or surface bg"
69
+ },
70
+ "focus": {
71
+ "$value": "{inkblot.color.devtools.focus}",
72
+ "$description": "Focus ring color"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "$description": "Citron semantic tokens. Map primitives to component-ready meanings. Use these in components — never raw primitives.",
3
+ "inkblot": {
4
+ "semantic": {
5
+ "color": {
6
+ "$type": "color",
7
+ "$description": "Semantic color mappings — Citron identity: warm, restrained, premium",
8
+ "background": {
9
+ "primary": { "$value": "{inkblot.color.neutral.gray.50}", "$description": "Body background — warm off-white with barely perceptible beige" },
10
+ "secondary": { "$value": "{inkblot.color.neutral.white}", "$description": "Elevated surfaces — clean white floating above base" },
11
+ "tertiary": { "$value": "{inkblot.color.neutral.gray.100}", "$description": "Grouped content, inset areas" },
12
+ "inverse": { "$value": "{inkblot.color.neutral.gray.900}", "$description": "Inverted surfaces" }
13
+ },
14
+ "text": {
15
+ "primary": { "$value": "{inkblot.color.neutral.gray.900}", "$description": "Primary text — deep warm slate, never pure black" },
16
+ "secondary": { "$value": "{inkblot.color.neutral.gray.500}", "$description": "Secondary text" },
17
+ "tertiary": { "$value": "{inkblot.color.neutral.gray.400}", "$description": "Placeholder, hints, captions" },
18
+ "inverse": { "$value": "{inkblot.color.neutral.white}", "$description": "Text on dark surfaces" },
19
+ "link": { "$value": "{inkblot.color.accent.citron.600}", "$description": "Links — deep citron for readability" },
20
+ "linkHover": { "$value": "{inkblot.color.accent.citron.700}", "$description": "Link hover" }
21
+ },
22
+ "border": {
23
+ "default": { "$value": "{inkblot.color.neutral.gray.200}", "$description": "Subtle warm dividers" },
24
+ "strong": { "$value": "{inkblot.color.neutral.gray.300}", "$description": "Emphasized borders" },
25
+ "focus": { "$value": "{inkblot.color.accent.citron.500}", "$description": "Focus ring — citron accent" }
26
+ },
27
+ "interactive": {
28
+ "primary": { "$value": "{inkblot.color.accent.citron.500}", "$description": "Primary CTA — confident citron" },
29
+ "primaryHover": { "$value": "{inkblot.color.accent.citron.600}", "$description": "Primary hover — deeper, subtle shift" },
30
+ "primaryActive": { "$value": "{inkblot.color.accent.citron.700}", "$description": "Primary pressed" },
31
+ "secondary": { "$value": "{inkblot.color.neutral.gray.100}", "$description": "Secondary surfaces with subtle depth" },
32
+ "secondaryHover":{ "$value": "{inkblot.color.neutral.gray.200}", "$description": "Secondary hover" }
33
+ },
34
+ "status": {
35
+ "success": { "$value": "{inkblot.color.semantic.success.main}", "$description": "Success state" },
36
+ "warning": { "$value": "{inkblot.color.semantic.warning.main}", "$description": "Warning state" },
37
+ "error": { "$value": "{inkblot.color.semantic.error.main}", "$description": "Error state" },
38
+ "info": { "$value": "{inkblot.color.semantic.info.main}", "$description": "Info state" }
39
+ }
40
+ },
41
+ "typography": {
42
+ "$description": "Semantic type styles — composed, intentional hierarchy through spacing and weight",
43
+ "heading": {
44
+ "1": {
45
+ "$type": "typography",
46
+ "$value": {
47
+ "fontFamily": "{inkblot.typography.fontFamily.display}",
48
+ "fontSize": "{inkblot.typography.fontSize.3xl}",
49
+ "fontWeight": "{inkblot.typography.fontWeight.semibold}",
50
+ "lineHeight": "{inkblot.typography.lineHeight.tight}",
51
+ "letterSpacing": "{inkblot.typography.letterSpacing.tight}"
52
+ },
53
+ "$description": "Page title — composed, not dramatic"
54
+ },
55
+ "2": {
56
+ "$type": "typography",
57
+ "$value": {
58
+ "fontFamily": "{inkblot.typography.fontFamily.display}",
59
+ "fontSize": "{inkblot.typography.fontSize.2xl}",
60
+ "fontWeight": "{inkblot.typography.fontWeight.semibold}",
61
+ "lineHeight": "{inkblot.typography.lineHeight.tight}",
62
+ "letterSpacing": "{inkblot.typography.letterSpacing.tight}"
63
+ },
64
+ "$description": "Section title"
65
+ },
66
+ "3": {
67
+ "$type": "typography",
68
+ "$value": {
69
+ "fontFamily": "{inkblot.typography.fontFamily.sans}",
70
+ "fontSize": "{inkblot.typography.fontSize.xl}",
71
+ "fontWeight": "{inkblot.typography.fontWeight.medium}",
72
+ "lineHeight": "{inkblot.typography.lineHeight.snug}",
73
+ "letterSpacing": "{inkblot.typography.letterSpacing.normal}"
74
+ },
75
+ "$description": "Subsection title"
76
+ },
77
+ "4": {
78
+ "$type": "typography",
79
+ "$value": {
80
+ "fontFamily": "{inkblot.typography.fontFamily.sans}",
81
+ "fontSize": "{inkblot.typography.fontSize.lg}",
82
+ "fontWeight": "{inkblot.typography.fontWeight.medium}",
83
+ "lineHeight": "{inkblot.typography.lineHeight.snug}",
84
+ "letterSpacing": "{inkblot.typography.letterSpacing.normal}"
85
+ },
86
+ "$description": "Card title"
87
+ }
88
+ },
89
+ "body": {
90
+ "default": {
91
+ "$type": "typography",
92
+ "$value": {
93
+ "fontFamily": "{inkblot.typography.fontFamily.sans}",
94
+ "fontSize": "{inkblot.typography.fontSize.base}",
95
+ "fontWeight": "{inkblot.typography.fontWeight.regular}",
96
+ "lineHeight": "{inkblot.typography.lineHeight.normal}",
97
+ "letterSpacing": "{inkblot.typography.letterSpacing.normal}"
98
+ },
99
+ "$description": "Body text"
100
+ },
101
+ "small": {
102
+ "$type": "typography",
103
+ "$value": {
104
+ "fontFamily": "{inkblot.typography.fontFamily.sans}",
105
+ "fontSize": "{inkblot.typography.fontSize.sm}",
106
+ "fontWeight": "{inkblot.typography.fontWeight.regular}",
107
+ "lineHeight": "{inkblot.typography.lineHeight.normal}",
108
+ "letterSpacing": "{inkblot.typography.letterSpacing.normal}"
109
+ },
110
+ "$description": "Small body, captions"
111
+ },
112
+ "large": {
113
+ "$type": "typography",
114
+ "$value": {
115
+ "fontFamily": "{inkblot.typography.fontFamily.sans}",
116
+ "fontSize": "{inkblot.typography.fontSize.md}",
117
+ "fontWeight": "{inkblot.typography.fontWeight.regular}",
118
+ "lineHeight": "{inkblot.typography.lineHeight.relaxed}",
119
+ "letterSpacing": "{inkblot.typography.letterSpacing.normal}"
120
+ },
121
+ "$description": "Emphasized body"
122
+ }
123
+ },
124
+ "label": {
125
+ "default": {
126
+ "$type": "typography",
127
+ "$value": {
128
+ "fontFamily": "{inkblot.typography.fontFamily.sans}",
129
+ "fontSize": "{inkblot.typography.fontSize.xs}",
130
+ "fontWeight": "{inkblot.typography.fontWeight.medium}",
131
+ "lineHeight": "{inkblot.typography.lineHeight.normal}",
132
+ "letterSpacing": "{inkblot.typography.letterSpacing.wide}"
133
+ },
134
+ "$description": "Form labels, badges"
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Inkblot Studio Design Tokens",
4
+ "description": "AI training reference - use these token paths when generating Inkblot Studio components",
5
+ "type": "object",
6
+ "properties": {
7
+ "tokenCategories": {
8
+ "type": "object",
9
+ "description": "Token organization for AI context",
10
+ "properties": {
11
+ "color": {
12
+ "description": "Use semantic colors in components: inkblot.semantic.color.*",
13
+ "semantic": {
14
+ "background": ["primary", "secondary", "tertiary", "inverse"],
15
+ "text": ["primary", "secondary", "tertiary", "inverse", "link", "linkHover"],
16
+ "border": ["default", "strong", "focus"],
17
+ "interactive": ["primary", "primaryHover", "primaryActive", "secondary", "secondaryHover"],
18
+ "status": ["success", "warning", "error", "info"]
19
+ }
20
+ },
21
+ "spacing": {
22
+ "description": "4pt grid: 0, 1(4px), 2(8px), 3(12px), 4(16px), 5(20px), 6(24px), 8(32px), 10(40px), 12(48px), 16(64px), 20(80px), 24(96px), 32(128px)"
23
+ },
24
+ "typography": {
25
+ "headings": ["1", "2", "3", "4"],
26
+ "body": ["default", "small", "large"],
27
+ "label": ["default"]
28
+ },
29
+ "radius": {
30
+ "values": ["none", "sm", "md", "lg", "xl", "2xl", "full"]
31
+ },
32
+ "shadow": {
33
+ "elevation": ["none", "xs", "sm", "md", "lg", "xl"]
34
+ },
35
+ "duration": {
36
+ "values": ["instant", "fast", "normal", "slow", "slower"]
37
+ }
38
+ }
39
+ },
40
+ "componentGuidelines": {
41
+ "description": "AI component generation rules",
42
+ "rules": [
43
+ "Use semantic tokens (inkblot.semantic.*) not primitives",
44
+ "Primary text: var(--inkblot-semantic-color-text-primary)",
45
+ "Primary background: var(--inkblot-semantic-color-background-primary)",
46
+ "Primary button: var(--inkblot-semantic-color-interactive-primary)",
47
+ "Minimum touch target: 44px (WCAG 2.4.11)",
48
+ "Border radius: 8px for cards/inputs (--inkblot-radius-md)",
49
+ "Spacing: 4pt grid (8px, 16px, 24px)",
50
+ "Focus: 2px solid focus color (--inkblot-border-width-medium)"
51
+ ]
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,224 @@
1
+ {
2
+ "InkblotBreakpointSm": "640px",
3
+ "InkblotBreakpointMd": "768px",
4
+ "InkblotBreakpointLg": "1024px",
5
+ "InkblotBreakpointXl": "1280px",
6
+ "InkblotBreakpoint2xl": "1536px",
7
+ "InkblotColorNeutralWhite": "#ffffff",
8
+ "InkblotColorNeutralGray50": "#fafaf7",
9
+ "InkblotColorNeutralGray100": "#f5f4f0",
10
+ "InkblotColorNeutralGray200": "#eae9e3",
11
+ "InkblotColorNeutralGray300": "#d4d3cb",
12
+ "InkblotColorNeutralGray400": "#93928a",
13
+ "InkblotColorNeutralGray500": "#6b6a63",
14
+ "InkblotColorNeutralGray600": "#4d4c47",
15
+ "InkblotColorNeutralGray700": "#3a3935",
16
+ "InkblotColorNeutralGray800": "#2d2c28",
17
+ "InkblotColorNeutralGray900": "#1d1c19",
18
+ "InkblotColorNeutralGray950": "#0f0e0c",
19
+ "InkblotColorAccentCitron50": "#fdfbf3",
20
+ "InkblotColorAccentCitron100": "#faf4df",
21
+ "InkblotColorAccentCitron200": "#f3e6b8",
22
+ "InkblotColorAccentCitron300": "#e8d38a",
23
+ "InkblotColorAccentCitron400": "#d9bc58",
24
+ "InkblotColorAccentCitron500": "#c4a030",
25
+ "InkblotColorAccentCitron600": "#a38427",
26
+ "InkblotColorAccentCitron700": "#7f671f",
27
+ "InkblotColorAccentCitron800": "#5c4a18",
28
+ "InkblotColorAccentCitron900": "#3d3111",
29
+ "InkblotColorSemanticSuccessLight": "#3d9e50",
30
+ "InkblotColorSemanticSuccessMain": "#358c46",
31
+ "InkblotColorSemanticSuccessDark": "#2a7538",
32
+ "InkblotColorSemanticWarningLight": "#e0a020",
33
+ "InkblotColorSemanticWarningMain": "#c48c1a",
34
+ "InkblotColorSemanticWarningDark": "#a67515",
35
+ "InkblotColorSemanticErrorLight": "#d14940",
36
+ "InkblotColorSemanticErrorMain": "#be3e35",
37
+ "InkblotColorSemanticErrorDark": "#a3352d",
38
+ "InkblotColorSemanticInfoLight": "#6ba3c2",
39
+ "InkblotColorSemanticInfoMain": "#5790ad",
40
+ "InkblotColorSemanticInfoDark": "#497a94",
41
+ "InkblotColorDevtoolsDominant": "#2563eb",
42
+ "InkblotColorDevtoolsSupport": "#60a5fa",
43
+ "InkblotColorDevtoolsAccent": "#10b981",
44
+ "InkblotColorDevtoolsPrimary": "#2563eb",
45
+ "InkblotColorDevtoolsPrimaryHover": "#60a5fa",
46
+ "InkblotColorDevtoolsBackground": "#020617",
47
+ "InkblotColorDevtoolsSurface": "#0b1220",
48
+ "InkblotColorDevtoolsTextPrimary": "#f8fafc",
49
+ "InkblotColorDevtoolsTextMuted": "#cbd5e1",
50
+ "InkblotColorDevtoolsBorder": "#1e293b",
51
+ "InkblotColorDevtoolsFocus": "#60a5fa",
52
+ "InkblotDurationInstant": "0ms",
53
+ "InkblotDurationFast": "120ms",
54
+ "InkblotDurationNormal": "200ms",
55
+ "InkblotDurationSlow": "320ms",
56
+ "InkblotDurationSlower": "500ms",
57
+ "InkblotEasingDefault": [0.25,0.1,0.25,1],
58
+ "InkblotEasingIn": [0.32,0,0.67,0],
59
+ "InkblotEasingOut": [0.33,1,0.68,1],
60
+ "InkblotEasingInOut": [0.65,0,0.35,1],
61
+ "InkblotEasingExpressive": [0.22,1,0.36,1],
62
+ "InkblotGridColumnsMobile": "4rem",
63
+ "InkblotGridColumnsTablet": "8rem",
64
+ "InkblotGridColumnsDesktop": "12rem",
65
+ "InkblotGridColumnsWide": "16rem",
66
+ "InkblotGridColumnsMax": "24rem",
67
+ "InkblotGridGutterSm": "0.5rem",
68
+ "InkblotGridGutterMd": "1rem",
69
+ "InkblotGridGutterLg": "1.5rem",
70
+ "InkblotGridGutterXl": "2rem",
71
+ "InkblotGridMarginMobile": "1rem",
72
+ "InkblotGridMarginTablet": "2rem",
73
+ "InkblotGridMarginDesktop": "4rem",
74
+ "InkblotGridMarginWide": "auto",
75
+ "InkblotGridMaxWidthContent": "768px",
76
+ "InkblotGridMaxWidthContainer": "1200px",
77
+ "InkblotGridMaxWidthWide": "1440px",
78
+ "InkblotGridMaxWidthFull": "1920px",
79
+ "InkblotRadiusNone": "0",
80
+ "InkblotRadiusSm": "6px",
81
+ "InkblotRadiusMd": "10px",
82
+ "InkblotRadiusLg": "14px",
83
+ "InkblotRadiusXl": "18px",
84
+ "InkblotRadius2xl": "24px",
85
+ "InkblotRadiusFull": "9999px",
86
+ "InkblotBorderWidthNone": "0",
87
+ "InkblotBorderWidthThin": "1px",
88
+ "InkblotBorderWidthMedium": "2px",
89
+ "InkblotBorderWidthThick": "3px",
90
+ "InkblotShadowNone": "none",
91
+ "InkblotShadowXs": "0 1px 2px 0 rgba(29, 28, 25, 0.04)",
92
+ "InkblotShadowSm": "0 2px 8px -1px rgba(29, 28, 25, 0.06), 0 1px 3px -1px rgba(29, 28, 25, 0.04)",
93
+ "InkblotShadowMd": "0 4px 16px -2px rgba(29, 28, 25, 0.08), 0 2px 6px -2px rgba(29, 28, 25, 0.04)",
94
+ "InkblotShadowLg": "0 8px 24px -4px rgba(29, 28, 25, 0.10), 0 4px 10px -4px rgba(29, 28, 25, 0.04)",
95
+ "InkblotShadowXl": "0 16px 40px -8px rgba(29, 28, 25, 0.12), 0 8px 16px -8px rgba(29, 28, 25, 0.04)",
96
+ "InkblotOpacityDisabled": 0.4,
97
+ "InkblotOpacityOverlay": 0.45,
98
+ "InkblotOpacitySubtle": 0.6,
99
+ "InkblotOpacityDefault": 1,
100
+ "InkblotSpacing0": "0",
101
+ "InkblotSpacing1": "0.25rem",
102
+ "InkblotSpacing2": "0.5rem",
103
+ "InkblotSpacing3": "0.75rem",
104
+ "InkblotSpacing4": "1rem",
105
+ "InkblotSpacing5": "1.25rem",
106
+ "InkblotSpacing6": "1.5rem",
107
+ "InkblotSpacing8": "2rem",
108
+ "InkblotSpacing10": "2.5rem",
109
+ "InkblotSpacing12": "3rem",
110
+ "InkblotSpacing16": "4rem",
111
+ "InkblotSpacing20": "5rem",
112
+ "InkblotSpacing24": "6rem",
113
+ "InkblotSpacing32": "8rem",
114
+ "InkblotSizeIconXs": "1rem",
115
+ "InkblotSizeIconSm": "1.25rem",
116
+ "InkblotSizeIconMd": "1.5rem",
117
+ "InkblotSizeIconLg": "2rem",
118
+ "InkblotSizeIconXl": "2.5rem",
119
+ "InkblotSizeTouchTargetMin": "44px",
120
+ "InkblotSizeTouchTargetComfortable": "48px",
121
+ "InkblotTypographyFontFamilySans": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
122
+ "InkblotTypographyFontFamilyMono": "'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace",
123
+ "InkblotTypographyFontFamilyDisplay": "'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
124
+ "InkblotTypographyFontSizeXs": "0.75rem",
125
+ "InkblotTypographyFontSizeSm": "0.8125rem",
126
+ "InkblotTypographyFontSizeBase": "0.9375rem",
127
+ "InkblotTypographyFontSizeMd": "1.0625rem",
128
+ "InkblotTypographyFontSizeLg": "1.25rem",
129
+ "InkblotTypographyFontSizeXl": "1.5rem",
130
+ "InkblotTypographyFontSize2xl": "1.75rem",
131
+ "InkblotTypographyFontSize3xl": "2.125rem",
132
+ "InkblotTypographyFontSize4xl": "2.75rem",
133
+ "InkblotTypographyFontSize5xl": "3.25rem",
134
+ "InkblotTypographyFontWeightRegular": "400",
135
+ "InkblotTypographyFontWeightMedium": "500",
136
+ "InkblotTypographyFontWeightSemibold": "600",
137
+ "InkblotTypographyFontWeightBold": "700",
138
+ "InkblotTypographyLineHeightTight": 1.2,
139
+ "InkblotTypographyLineHeightSnug": 1.375,
140
+ "InkblotTypographyLineHeightNormal": 1.5,
141
+ "InkblotTypographyLineHeightRelaxed": 1.65,
142
+ "InkblotTypographyLineHeightLoose": 1.8,
143
+ "InkblotTypographyLetterSpacingTighter": "-0.04em",
144
+ "InkblotTypographyLetterSpacingTight": "-0.02em",
145
+ "InkblotTypographyLetterSpacingNormal": "0",
146
+ "InkblotTypographyLetterSpacingWide": "0.02em",
147
+ "InkblotTypographyLetterSpacingWider": "0.06em",
148
+ "InkblotZIndexHide": -1,
149
+ "InkblotZIndexBase": 0,
150
+ "InkblotZIndexRaised": 1,
151
+ "InkblotZIndexDropdown": 10,
152
+ "InkblotZIndexSticky": 20,
153
+ "InkblotZIndexOverlay": 30,
154
+ "InkblotZIndexModal": 40,
155
+ "InkblotZIndexPopover": 50,
156
+ "InkblotZIndexToast": 60,
157
+ "InkblotZIndexMax": 9999,
158
+ "InkblotDarkColorBackgroundPrimary": "#12110e",
159
+ "InkblotDarkColorBackgroundSecondary": "#1d1c18",
160
+ "InkblotDarkColorBackgroundTertiary": "#2a2924",
161
+ "InkblotDarkColorBackgroundInverse": "#fafaf7",
162
+ "InkblotDarkColorTextPrimary": "#f5f4f0",
163
+ "InkblotDarkColorTextSecondary": "#93928a",
164
+ "InkblotDarkColorTextTertiary": "#6b6a63",
165
+ "InkblotDarkColorTextInverse": "#1d1c19",
166
+ "InkblotDarkColorTextLink": "#d9bc58",
167
+ "InkblotDarkColorTextLinkHover": "#e8d38a",
168
+ "InkblotDarkColorBorderDefault": "#38372f",
169
+ "InkblotDarkColorBorderStrong": "#4d4c44",
170
+ "InkblotDarkColorBorderFocus": "#d9bc58",
171
+ "InkblotDarkColorInteractivePrimary": "#d9bc58",
172
+ "InkblotDarkColorInteractivePrimaryHover": "#e8d38a",
173
+ "InkblotDarkColorInteractivePrimaryActive": "#c4a030",
174
+ "InkblotDarkColorInteractiveSecondary": "#2a2924",
175
+ "InkblotDarkColorInteractiveSecondaryHover": "#38372f",
176
+ "InkblotDarkColorStatusSuccess": "#4cb864",
177
+ "InkblotDarkColorStatusWarning": "#e0a020",
178
+ "InkblotDarkColorStatusError": "#e05a52",
179
+ "InkblotDarkColorStatusInfo": "#7ab8d6",
180
+ "InkblotSemanticDevtoolsColorBackgroundApp": "#020617",
181
+ "InkblotSemanticDevtoolsColorBackgroundSurface": "#0b1220",
182
+ "InkblotSemanticDevtoolsColorBackgroundSurfaceElevated": "#0b1220",
183
+ "InkblotSemanticDevtoolsColorTextPrimary": "#f8fafc",
184
+ "InkblotSemanticDevtoolsColorTextMuted": "#cbd5e1",
185
+ "InkblotSemanticDevtoolsColorTextOnPrimary": "#f8fafc",
186
+ "InkblotSemanticDevtoolsColorBorderDefault": "#1e293b",
187
+ "InkblotSemanticDevtoolsColorBorderStrong": "#60a5fa",
188
+ "InkblotSemanticDevtoolsColorAccentBrand": "#2563eb",
189
+ "InkblotSemanticDevtoolsColorAccentPositive": "#10b981",
190
+ "InkblotSemanticDevtoolsColorInteractivePrimary": "#2563eb",
191
+ "InkblotSemanticDevtoolsColorInteractivePrimaryHover": "#60a5fa",
192
+ "InkblotSemanticDevtoolsColorInteractiveGhost": "#cbd5e1",
193
+ "InkblotSemanticDevtoolsColorInteractiveFocus": "#60a5fa",
194
+ "InkblotSemanticColorBackgroundPrimary": "#fafaf7",
195
+ "InkblotSemanticColorBackgroundSecondary": "#ffffff",
196
+ "InkblotSemanticColorBackgroundTertiary": "#f5f4f0",
197
+ "InkblotSemanticColorBackgroundInverse": "#1d1c19",
198
+ "InkblotSemanticColorTextPrimary": "#1d1c19",
199
+ "InkblotSemanticColorTextSecondary": "#6b6a63",
200
+ "InkblotSemanticColorTextTertiary": "#93928a",
201
+ "InkblotSemanticColorTextInverse": "#ffffff",
202
+ "InkblotSemanticColorTextLink": "#a38427",
203
+ "InkblotSemanticColorTextLinkHover": "#7f671f",
204
+ "InkblotSemanticColorBorderDefault": "#eae9e3",
205
+ "InkblotSemanticColorBorderStrong": "#d4d3cb",
206
+ "InkblotSemanticColorBorderFocus": "#c4a030",
207
+ "InkblotSemanticColorInteractivePrimary": "#c4a030",
208
+ "InkblotSemanticColorInteractivePrimaryHover": "#a38427",
209
+ "InkblotSemanticColorInteractivePrimaryActive": "#7f671f",
210
+ "InkblotSemanticColorInteractiveSecondary": "#f5f4f0",
211
+ "InkblotSemanticColorInteractiveSecondaryHover": "#eae9e3",
212
+ "InkblotSemanticColorStatusSuccess": "#358c46",
213
+ "InkblotSemanticColorStatusWarning": "#c48c1a",
214
+ "InkblotSemanticColorStatusError": "#be3e35",
215
+ "InkblotSemanticColorStatusInfo": "#5790ad",
216
+ "InkblotSemanticTypographyHeading1": {"fontFamily":"'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"2.125rem","fontWeight":"600","lineHeight":1.2,"letterSpacing":"-0.02em"},
217
+ "InkblotSemanticTypographyHeading2": {"fontFamily":"'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"1.75rem","fontWeight":"600","lineHeight":1.2,"letterSpacing":"-0.02em"},
218
+ "InkblotSemanticTypographyHeading3": {"fontFamily":"'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"1.5rem","fontWeight":"500","lineHeight":1.375,"letterSpacing":"0"},
219
+ "InkblotSemanticTypographyHeading4": {"fontFamily":"'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"1.25rem","fontWeight":"500","lineHeight":1.375,"letterSpacing":"0"},
220
+ "InkblotSemanticTypographyBodyDefault": {"fontFamily":"'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"0.9375rem","fontWeight":"400","lineHeight":1.5,"letterSpacing":"0"},
221
+ "InkblotSemanticTypographyBodySmall": {"fontFamily":"'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"0.8125rem","fontWeight":"400","lineHeight":1.5,"letterSpacing":"0"},
222
+ "InkblotSemanticTypographyBodyLarge": {"fontFamily":"'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"1.0625rem","fontWeight":"400","lineHeight":1.65,"letterSpacing":"0"},
223
+ "InkblotSemanticTypographyLabelDefault": {"fontFamily":"'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif","fontSize":"0.75rem","fontWeight":"500","lineHeight":1.5,"letterSpacing":"0.02em"}
224
+ }