@amulet-laboratories/hex 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/aldricpace.css +5 -0
  4. package/dist/briarcove.css +5 -0
  5. package/dist/briarcovelib.css +5 -0
  6. package/dist/compass.css +5 -0
  7. package/dist/duskline.css +5 -0
  8. package/dist/forge.css +5 -0
  9. package/dist/garden.css +5 -0
  10. package/dist/greyline.css +5 -0
  11. package/dist/hex.css +5 -0
  12. package/dist/kbcv.css +5 -0
  13. package/dist/lanternhouse.css +5 -0
  14. package/dist/marenlys.css +5 -0
  15. package/dist/quizbit.css +5 -0
  16. package/dist/saltsignal.css +5 -0
  17. package/dist/scoped.css +1 -0
  18. package/dist/spacewizard.css +5 -0
  19. package/dist/tidemark.css +5 -0
  20. package/dist/undertow.css +5 -0
  21. package/dist/vscode.css +5 -0
  22. package/package.json +119 -0
  23. package/src/index.css +10 -0
  24. package/src/scoped/bridge.css +47 -0
  25. package/src/scoped/index.css +51 -0
  26. package/src/scoped/themes/aldricpace.css +115 -0
  27. package/src/scoped/themes/briarcove.css +123 -0
  28. package/src/scoped/themes/briarcovelib.css +111 -0
  29. package/src/scoped/themes/compass.css +111 -0
  30. package/src/scoped/themes/duskline.css +117 -0
  31. package/src/scoped/themes/forge.css +123 -0
  32. package/src/scoped/themes/garden.css +123 -0
  33. package/src/scoped/themes/greyline.css +116 -0
  34. package/src/scoped/themes/kbcv.css +111 -0
  35. package/src/scoped/themes/lanternhouse.css +111 -0
  36. package/src/scoped/themes/marenlys.css +112 -0
  37. package/src/scoped/themes/quizbit.css +101 -0
  38. package/src/scoped/themes/saltsignal.css +114 -0
  39. package/src/scoped/themes/spacewizard.css +115 -0
  40. package/src/scoped/themes/tidemark.css +119 -0
  41. package/src/scoped/themes/undertow.css +113 -0
  42. package/src/scoped/themes/vscode.css +230 -0
  43. package/src/scoped/tokens.css +21 -0
  44. package/src/shared/a11y.css +175 -0
  45. package/src/shared/components/core.css +1654 -0
  46. package/src/shared/components/data.css +418 -0
  47. package/src/shared/components/editor.css +358 -0
  48. package/src/shared/components/extras.css +897 -0
  49. package/src/shared/components/layout.css +663 -0
  50. package/src/shared/components/lists.css +278 -0
  51. package/src/shared/components/menus.css +377 -0
  52. package/src/shared/components/nav.css +943 -0
  53. package/src/shared/components/prose.css +302 -0
  54. package/src/shared/components/shell.css +528 -0
  55. package/src/shared/components/spatial.css +184 -0
  56. package/src/shared/components/temporal.css +191 -0
  57. package/src/shared/components/web.css +1689 -0
  58. package/src/shared/rig-defaults.css +121 -0
  59. package/src/shared/scroll-animations.css +176 -0
  60. package/src/shared/tokens.css +125 -0
  61. package/src/shared/utilities.css +204 -0
  62. package/src/themes/aldricpace/base.css +114 -0
  63. package/src/themes/aldricpace/components.css +22 -0
  64. package/src/themes/aldricpace/domains.css +19 -0
  65. package/src/themes/aldricpace/index.css +6 -0
  66. package/src/themes/aldricpace/tokens.css +169 -0
  67. package/src/themes/andrewpassanisi/base.css +192 -0
  68. package/src/themes/andrewpassanisi/index.css +11 -0
  69. package/src/themes/andrewpassanisi/tokens.css +136 -0
  70. package/src/themes/briarcove/base.css +170 -0
  71. package/src/themes/briarcove/components.css +27 -0
  72. package/src/themes/briarcove/domains.css +72 -0
  73. package/src/themes/briarcove/index.css +6 -0
  74. package/src/themes/briarcove/tokens.css +179 -0
  75. package/src/themes/briarcovelib/base.css +111 -0
  76. package/src/themes/briarcovelib/components.css +22 -0
  77. package/src/themes/briarcovelib/domains.css +19 -0
  78. package/src/themes/briarcovelib/index.css +6 -0
  79. package/src/themes/briarcovelib/tokens.css +167 -0
  80. package/src/themes/compass/base.css +112 -0
  81. package/src/themes/compass/components.css +22 -0
  82. package/src/themes/compass/domains.css +19 -0
  83. package/src/themes/compass/index.css +6 -0
  84. package/src/themes/compass/tokens.css +167 -0
  85. package/src/themes/duskline/base.css +167 -0
  86. package/src/themes/duskline/components.css +27 -0
  87. package/src/themes/duskline/domains.css +72 -0
  88. package/src/themes/duskline/index.css +6 -0
  89. package/src/themes/duskline/tokens.css +171 -0
  90. package/src/themes/forge/base.css +165 -0
  91. package/src/themes/forge/components.css +24 -0
  92. package/src/themes/forge/domains.css +72 -0
  93. package/src/themes/forge/index.css +6 -0
  94. package/src/themes/forge/tokens.css +178 -0
  95. package/src/themes/garden/base.css +167 -0
  96. package/src/themes/garden/components.css +27 -0
  97. package/src/themes/garden/domains.css +72 -0
  98. package/src/themes/garden/index.css +6 -0
  99. package/src/themes/garden/tokens.css +178 -0
  100. package/src/themes/greyline/base.css +165 -0
  101. package/src/themes/greyline/components.css +24 -0
  102. package/src/themes/greyline/domains.css +70 -0
  103. package/src/themes/greyline/index.css +6 -0
  104. package/src/themes/greyline/tokens.css +161 -0
  105. package/src/themes/kbcv/base.css +112 -0
  106. package/src/themes/kbcv/components.css +22 -0
  107. package/src/themes/kbcv/domains.css +19 -0
  108. package/src/themes/kbcv/index.css +6 -0
  109. package/src/themes/kbcv/tokens.css +167 -0
  110. package/src/themes/lanternhouse/base.css +170 -0
  111. package/src/themes/lanternhouse/components.css +27 -0
  112. package/src/themes/lanternhouse/domains.css +72 -0
  113. package/src/themes/lanternhouse/index.css +6 -0
  114. package/src/themes/lanternhouse/tokens.css +167 -0
  115. package/src/themes/marenlys/base.css +181 -0
  116. package/src/themes/marenlys/components.css +27 -0
  117. package/src/themes/marenlys/domains.css +72 -0
  118. package/src/themes/marenlys/index.css +6 -0
  119. package/src/themes/marenlys/tokens.css +167 -0
  120. package/src/themes/quizbit/base.css +120 -0
  121. package/src/themes/quizbit/components.css +27 -0
  122. package/src/themes/quizbit/domains.css +7 -0
  123. package/src/themes/quizbit/index.css +6 -0
  124. package/src/themes/quizbit/tokens.css +132 -0
  125. package/src/themes/saltsignal/base.css +168 -0
  126. package/src/themes/saltsignal/components.css +27 -0
  127. package/src/themes/saltsignal/domains.css +72 -0
  128. package/src/themes/saltsignal/index.css +6 -0
  129. package/src/themes/saltsignal/tokens.css +170 -0
  130. package/src/themes/spacewizard/base.css +165 -0
  131. package/src/themes/spacewizard/components.css +24 -0
  132. package/src/themes/spacewizard/domains.css +70 -0
  133. package/src/themes/spacewizard/index.css +6 -0
  134. package/src/themes/spacewizard/tokens.css +160 -0
  135. package/src/themes/tidemark/base.css +169 -0
  136. package/src/themes/tidemark/components.css +27 -0
  137. package/src/themes/tidemark/domains.css +72 -0
  138. package/src/themes/tidemark/index.css +6 -0
  139. package/src/themes/tidemark/tokens.css +175 -0
  140. package/src/themes/undertow/base.css +114 -0
  141. package/src/themes/undertow/components.css +22 -0
  142. package/src/themes/undertow/domains.css +19 -0
  143. package/src/themes/undertow/index.css +6 -0
  144. package/src/themes/undertow/tokens.css +171 -0
  145. package/src/themes/vscode/base.css +104 -0
  146. package/src/themes/vscode/components.css +24 -0
  147. package/src/themes/vscode/domains.css +132 -0
  148. package/src/themes/vscode/index.css +13 -0
  149. package/src/themes/vscode/tokens.css +346 -0
@@ -0,0 +1,167 @@
1
+ /* Hex — Briarcovelib Design Tokens
2
+ * Public library. Warm light mode with sienna and slate blue.
3
+ * Civic warmth — welcoming, literary, community-focused.
4
+ *
5
+ * Full palette (7 swatch colors):
6
+ * #FAF8F4 vellum — background
7
+ * #F0ECE3 linen — card
8
+ * #E2DCD0 sandstone — secondary, muted
9
+ * #2B2622 umber — foreground text
10
+ * #6B6054 driftwood — muted foreground
11
+ * #A5562E sienna — primary, ring
12
+ * #3A6B8C slate blue — accent
13
+ *
14
+ * @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
15
+ * :root provides standalone CSS custom property access for non-Tailwind consumers.
16
+ */
17
+
18
+ @theme {
19
+ /* Surface colors */
20
+ --color-background: #faf8f4;
21
+ --color-foreground: #2b2622;
22
+ --color-card: #f0ece3;
23
+ --color-card-foreground: #2b2622;
24
+ --color-popover: #ffffff;
25
+ --color-popover-foreground: #2b2622;
26
+
27
+ /* Brand */
28
+ --color-primary: #a5562e;
29
+ --color-primary-foreground: #faf8f4;
30
+
31
+ /* Soft accents */
32
+ --color-secondary: #e2dcd0;
33
+ --color-secondary-foreground: #2b2622;
34
+ --color-muted: #e2dcd0;
35
+ --color-muted-foreground: #6b6054;
36
+ --color-accent: #3a6b8c;
37
+ --color-accent-foreground: #faf8f4;
38
+
39
+ /* Semantic status */
40
+ --color-destructive: #b83232;
41
+ --color-destructive-foreground: #faf8f4;
42
+ --color-success: #3b7a57;
43
+ --color-warning: #c49030;
44
+ --color-info: #3a6b8c;
45
+
46
+ /* Borders and focus */
47
+ --color-border: #d0c8ba;
48
+ --color-input: #d0c8ba;
49
+ --color-ring: #a5562e;
50
+
51
+ /* Typography */
52
+ --font-sans: 'Cabin', 'Inter', system-ui, sans-serif;
53
+ --font-mono: 'Cabin', 'SF Mono', ui-monospace, monospace;
54
+ --font-serif: 'Bitter', Georgia, serif;
55
+ --font-heading: 'Bitter', Georgia, serif;
56
+
57
+ /* Radius */
58
+ /* Typography — IDE-density type scale */
59
+ --font-size-2xs: 0.625rem;
60
+ --font-size-2xs--line-height: 1.25;
61
+ --font-size-xs: 0.75rem;
62
+ --font-size-xs--line-height: 1.5;
63
+ --font-size-sm: 0.8125rem;
64
+ --font-size-sm--line-height: 1.5;
65
+ --font-size-base: 0.875rem;
66
+ --font-size-base--line-height: 1.5;
67
+ --font-size-lg: 1.125rem;
68
+ --font-size-lg--line-height: 1.25;
69
+ --font-size-xl: 1.25rem;
70
+ --font-size-xl--line-height: 1.25;
71
+
72
+ /* Display font family */
73
+ --font-display: var(--font-sans);
74
+
75
+ --radius: 6px;
76
+ }
77
+
78
+ :root {
79
+ --background: #faf8f4;
80
+ --foreground: #2b2622;
81
+ --card: #f0ece3;
82
+ --card-foreground: #2b2622;
83
+ --popover: #ffffff;
84
+ --popover-foreground: #2b2622;
85
+ --primary: #a5562e;
86
+ --primary-foreground: #faf8f4;
87
+ --secondary: #e2dcd0;
88
+ --secondary-foreground: #2b2622;
89
+ --muted: #e2dcd0;
90
+ --muted-foreground: #6b6054;
91
+ --accent: #3a6b8c;
92
+ --accent-foreground: #faf8f4;
93
+ --destructive: #b83232;
94
+ --destructive-foreground: #faf8f4;
95
+ --success: #3b7a57;
96
+ --warning: #c49030;
97
+ --info: #3a6b8c;
98
+ --border: #d0c8ba;
99
+ --input: #d0c8ba;
100
+ --ring: #a5562e;
101
+ /* Typography — IDE-density type scale */
102
+ --font-size-2xs: 0.625rem;
103
+ --font-size-2xs--line-height: 1.25;
104
+ --font-size-xs: 0.75rem;
105
+ --font-size-xs--line-height: 1.5;
106
+ --font-size-sm: 0.8125rem;
107
+ --font-size-sm--line-height: 1.5;
108
+ --font-size-base: 0.875rem;
109
+ --font-size-base--line-height: 1.5;
110
+ --font-size-lg: 1.125rem;
111
+ --font-size-lg--line-height: 1.25;
112
+ --font-size-xl: 1.25rem;
113
+ --font-size-xl--line-height: 1.25;
114
+
115
+ /* Display font family */
116
+ --font-display: var(--font-sans);
117
+
118
+ --radius: 6px;
119
+
120
+ /* Typography — IDE-density type scale (shorthand aliases) */
121
+ --text-2xs: 0.625rem;
122
+ --text-xs: 0.75rem;
123
+ --text-sm: 0.8125rem;
124
+ --text-base: 0.875rem;
125
+ --text-lg: 1.125rem;
126
+ --text-xl: 1.25rem;
127
+ --leading-tight: 1.25;
128
+ --leading-snug: 1.375;
129
+ --leading-normal: 1.5;
130
+ --leading-relaxed: 1.625;
131
+ --weight-normal: 400;
132
+ --weight-medium: 500;
133
+ --weight-semibold: 600;
134
+ --weight-bold: 700;
135
+ --tracking-tight: -0.01em;
136
+ --tracking-normal: 0;
137
+ --tracking-wide: 0.05em;
138
+ --tracking-wider: 0.08em;
139
+ --font-display: var(--font-sans);
140
+ --font-sans: 'Cabin', 'Inter', system-ui, sans-serif;
141
+ --font-mono: 'Cabin', 'SF Mono', ui-monospace, monospace;
142
+ --font-serif: 'Bitter', Georgia, serif;
143
+ --font-heading: 'Bitter', Georgia, serif;
144
+
145
+ /* ── Named palette aliases ──────────────────────────────────────────────
146
+ * All 7 swatch colors available for direct template use.
147
+ */
148
+ --bl-vellum: #faf8f4;
149
+ --bl-linen: #f0ece3;
150
+ --bl-sandstone: #e2dcd0;
151
+ --bl-umber: #2b2622;
152
+ --bl-driftwood: #6b6054;
153
+ --bl-sienna: #a5562e;
154
+ --bl-slate: #3a6b8c;
155
+
156
+ /* ── Rig component token bridge ─────────────────────────────────────────
157
+ * Overrides shared/tokens.css defaults where the Briarcovelib palette needs
158
+ * values that can't be derived directly from --color-* semantics.
159
+ */
160
+
161
+ /* Button — sandstone for hover feedback */
162
+ --rig-button-hover-bg: #e2dcd0;
163
+
164
+ /* Scrollbar — umber tint for warm literary feel */
165
+ --rig-scrollbar-thumb: rgba(43, 38, 34, 0.12);
166
+ --rig-scrollbar-thumb-hover: rgba(43, 38, 34, 0.25);
167
+ }
@@ -0,0 +1,112 @@
1
+ /* Hex — Compass Base Styles
2
+ * Veterinary clinic — Outfit headings, Atkinson Hyperlegible body. Reassuring.
3
+ */
4
+
5
+ @reference 'tailwindcss';
6
+ @reference './tokens.css';
7
+
8
+ html {
9
+ font-size: 16px;
10
+ }
11
+
12
+ html,
13
+ body {
14
+ @apply bg-background text-foreground;
15
+ color-scheme: light;
16
+ -webkit-font-smoothing: antialiased;
17
+ -moz-osx-font-smoothing: grayscale;
18
+ }
19
+
20
+ body {
21
+ font-size: 17px;
22
+ font-weight: 400;
23
+ line-height: 1.65;
24
+ font-family: 'Atkinson Hyperlegible', var(--font-serif);
25
+ }
26
+
27
+ h1 {
28
+ font-size: 48px;
29
+ font-weight: 600;
30
+ font-family: 'Outfit', var(--font-sans);
31
+ color: var(--color-primary);
32
+ margin: 0;
33
+ padding: 0;
34
+ line-height: 1.15;
35
+ }
36
+
37
+ h2 {
38
+ font-size: 36px;
39
+ font-weight: 500;
40
+ font-family: 'Outfit', var(--font-sans);
41
+ color: var(--color-primary);
42
+ margin: 0;
43
+ padding: 0;
44
+ line-height: 1.2;
45
+ }
46
+
47
+ ::-webkit-scrollbar {
48
+ width: 8px;
49
+ height: 8px;
50
+ }
51
+ ::-webkit-scrollbar-track {
52
+ background: transparent;
53
+ }
54
+ ::-webkit-scrollbar-thumb {
55
+ background: color-mix(in srgb, var(--color-foreground) 12%, transparent);
56
+ border-radius: 4px;
57
+ }
58
+ ::-webkit-scrollbar-thumb:hover {
59
+ background: color-mix(in srgb, var(--color-foreground) 25%, transparent);
60
+ }
61
+
62
+ *:focus-visible {
63
+ outline: 2px solid var(--color-primary);
64
+ outline-offset: 2px;
65
+ }
66
+ ::selection {
67
+ background: color-mix(in srgb, var(--color-primary) 30%, transparent);
68
+ color: var(--color-foreground);
69
+ }
70
+
71
+ html {
72
+ scroll-behavior: smooth;
73
+ }
74
+
75
+ @media (prefers-reduced-motion: reduce) {
76
+ *,
77
+ *::before,
78
+ *::after {
79
+ animation-duration: 0.01ms !important;
80
+ animation-iteration-count: 1 !important;
81
+ transition-duration: 0.01ms !important;
82
+ scroll-behavior: auto !important;
83
+ }
84
+ }
85
+
86
+ * {
87
+ scrollbar-width: thin;
88
+ scrollbar-color: color-mix(in srgb, var(--color-foreground) 12%, transparent) transparent;
89
+ }
90
+
91
+ @keyframes scroll-fade-in {
92
+ from {
93
+ opacity: 0;
94
+ transform: translateY(20px);
95
+ }
96
+ to {
97
+ opacity: 1;
98
+ transform: translateY(0);
99
+ }
100
+ }
101
+ .scroll-reveal {
102
+ animation: scroll-fade-in linear both;
103
+ animation-timeline: view();
104
+ animation-range: entry 10% cover 30%;
105
+ }
106
+ @media (prefers-reduced-motion: reduce) {
107
+ .scroll-reveal {
108
+ animation: none;
109
+ opacity: 1;
110
+ transform: none;
111
+ }
112
+ }
@@ -0,0 +1,22 @@
1
+ /* Hex — Compass Component Barrel */
2
+
3
+ @import '../../shared/rig-defaults.css';
4
+ @import '../../shared/components/core.css';
5
+ @import '../../shared/components/layout.css';
6
+ @import '../../shared/components/nav.css';
7
+ @import '../../shared/components/editor.css';
8
+ @import '../../shared/components/lists.css';
9
+ @import '../../shared/components/menus.css';
10
+ @import '../../shared/components/extras.css';
11
+ @import '../../shared/components/shell.css';
12
+ @import '../../shared/components/data.css';
13
+ @import '../../shared/components/spatial.css';
14
+ @import '../../shared/components/temporal.css';
15
+ @import '../../shared/components/web.css';
16
+ @import '../../shared/a11y.css';
17
+ @import '../../shared/components/prose.css';
18
+ @import '../../shared/utilities.css';
19
+ @import '../../shared/scroll-animations.css';
20
+
21
+ @reference 'tailwindcss';
22
+ @reference './tokens.css';
@@ -0,0 +1,19 @@
1
+ /* Hex — Compass Domains */
2
+ @reference 'tailwindcss';
3
+ @reference './tokens.css';
4
+
5
+ [data-domain='legal'] {
6
+ --domain-accent: #d16b3f;
7
+ }
8
+ [data-domain='life'] {
9
+ --domain-accent: #2a7d5f;
10
+ }
11
+ [data-domain='software'] {
12
+ --domain-accent: #4a7a9e;
13
+ }
14
+ [data-domain='business'] {
15
+ --domain-accent: #2a7d5f;
16
+ }
17
+ [data-domain='history'] {
18
+ --domain-accent: #4e6650;
19
+ }
@@ -0,0 +1,6 @@
1
+ @import 'tailwindcss';
2
+ @import '../../shared/tokens.css';
3
+ @import './tokens.css';
4
+ @import './base.css';
5
+ @import './components.css';
6
+ @import './domains.css';
@@ -0,0 +1,167 @@
1
+ /* Hex — Compass Design Tokens
2
+ * Veterinary clinic. Soft light mode with true green and warm coral.
3
+ * Clinical warmth — reassuring, accessible, nature-forward.
4
+ *
5
+ * Full palette (7 swatch colors):
6
+ * #F8FDF6 mint green — background
7
+ * #F0F5EE soft sage — card
8
+ * #E0ECE0 pale eucalyptus — secondary, muted
9
+ * #1A2A1A deep moss — foreground text
10
+ * #4A6A4A fern — muted foreground
11
+ * #2D7A3E true green — primary, ring
12
+ * #D16B3F warm coral — accent, action
13
+ *
14
+ * @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
15
+ * :root provides standalone CSS custom property access for non-Tailwind consumers.
16
+ */
17
+
18
+ @theme {
19
+ /* Surface colors */
20
+ --color-background: #f8fdf6;
21
+ --color-foreground: #1a2a1a;
22
+ --color-card: #f0f5ee;
23
+ --color-card-foreground: #1a2a1a;
24
+ --color-popover: #ffffff;
25
+ --color-popover-foreground: #1a2a1a;
26
+
27
+ /* Brand */
28
+ --color-primary: #2d7a3e;
29
+ --color-primary-foreground: #f8fdf6;
30
+
31
+ /* Soft accents */
32
+ --color-secondary: #e0ece0;
33
+ --color-secondary-foreground: #1a2a1a;
34
+ --color-muted: #e0ece0;
35
+ --color-muted-foreground: #4a6a4a;
36
+ --color-accent: #d16b3f;
37
+ --color-accent-foreground: #f8fdf6;
38
+
39
+ /* Semantic status */
40
+ --color-destructive: #cc3b3b;
41
+ --color-destructive-foreground: #f8fdf6;
42
+ --color-success: #2d7a3e;
43
+ --color-warning: #d4a030;
44
+ --color-info: #4a7a9e;
45
+
46
+ /* Borders and focus */
47
+ --color-border: #c0d8c0;
48
+ --color-input: #c0d8c0;
49
+ --color-ring: #2d7a3e;
50
+
51
+ /* Typography */
52
+ --font-sans: 'Outfit', 'Inter', system-ui, sans-serif;
53
+ --font-mono: 'Outfit', 'SF Mono', ui-monospace, monospace;
54
+ --font-serif: 'Atkinson Hyperlegible', 'Inter', system-ui, sans-serif;
55
+ --font-heading: 'Outfit', 'Inter', system-ui, sans-serif;
56
+
57
+ /* Radius */
58
+ /* Typography — IDE-density type scale */
59
+ --font-size-2xs: 0.625rem;
60
+ --font-size-2xs--line-height: 1.25;
61
+ --font-size-xs: 0.75rem;
62
+ --font-size-xs--line-height: 1.5;
63
+ --font-size-sm: 0.8125rem;
64
+ --font-size-sm--line-height: 1.5;
65
+ --font-size-base: 0.875rem;
66
+ --font-size-base--line-height: 1.5;
67
+ --font-size-lg: 1.125rem;
68
+ --font-size-lg--line-height: 1.25;
69
+ --font-size-xl: 1.25rem;
70
+ --font-size-xl--line-height: 1.25;
71
+
72
+ /* Display font family */
73
+ --font-display: var(--font-sans);
74
+
75
+ --radius: 8px;
76
+ }
77
+
78
+ :root {
79
+ --background: #f8fdf6;
80
+ --foreground: #1a2a1a;
81
+ --card: #f0f5ee;
82
+ --card-foreground: #1a2a1a;
83
+ --popover: #ffffff;
84
+ --popover-foreground: #1a2a1a;
85
+ --primary: #2d7a3e;
86
+ --primary-foreground: #f8fdf6;
87
+ --secondary: #e0ece0;
88
+ --secondary-foreground: #1a2a1a;
89
+ --muted: #e0ece0;
90
+ --muted-foreground: #4a6a4a;
91
+ --accent: #d16b3f;
92
+ --accent-foreground: #f8fdf6;
93
+ --destructive: #cc3b3b;
94
+ --destructive-foreground: #f8fdf6;
95
+ --success: #2d7a3e;
96
+ --warning: #d4a030;
97
+ --info: #4a7a9e;
98
+ --border: #c0d8c0;
99
+ --input: #c0d8c0;
100
+ --ring: #2d7a3e;
101
+ /* Typography — IDE-density type scale */
102
+ --font-size-2xs: 0.625rem;
103
+ --font-size-2xs--line-height: 1.25;
104
+ --font-size-xs: 0.75rem;
105
+ --font-size-xs--line-height: 1.5;
106
+ --font-size-sm: 0.8125rem;
107
+ --font-size-sm--line-height: 1.5;
108
+ --font-size-base: 0.875rem;
109
+ --font-size-base--line-height: 1.5;
110
+ --font-size-lg: 1.125rem;
111
+ --font-size-lg--line-height: 1.25;
112
+ --font-size-xl: 1.25rem;
113
+ --font-size-xl--line-height: 1.25;
114
+
115
+ /* Display font family */
116
+ --font-display: var(--font-sans);
117
+
118
+ --radius: 8px;
119
+
120
+ /* Typography — IDE-density type scale (shorthand aliases) */
121
+ --text-2xs: 0.625rem;
122
+ --text-xs: 0.75rem;
123
+ --text-sm: 0.8125rem;
124
+ --text-base: 0.875rem;
125
+ --text-lg: 1.125rem;
126
+ --text-xl: 1.25rem;
127
+ --leading-tight: 1.25;
128
+ --leading-snug: 1.375;
129
+ --leading-normal: 1.5;
130
+ --leading-relaxed: 1.625;
131
+ --weight-normal: 400;
132
+ --weight-medium: 500;
133
+ --weight-semibold: 600;
134
+ --weight-bold: 700;
135
+ --tracking-tight: -0.01em;
136
+ --tracking-normal: 0;
137
+ --tracking-wide: 0.05em;
138
+ --tracking-wider: 0.08em;
139
+ --font-display: var(--font-sans);
140
+ --font-sans: 'Outfit', 'Inter', system-ui, sans-serif;
141
+ --font-mono: 'Outfit', 'SF Mono', ui-monospace, monospace;
142
+ --font-serif: 'Atkinson Hyperlegible', 'Inter', system-ui, sans-serif;
143
+ --font-heading: 'Outfit', 'Inter', system-ui, sans-serif;
144
+
145
+ /* ── Named palette aliases ──────────────────────────────────────────────
146
+ * All 7 swatch colors available for direct template use.
147
+ */
148
+ --ca-mint-green: #f8fdf6;
149
+ --ca-sage: #f0f5ee;
150
+ --ca-eucalyptus: #e0ece0;
151
+ --ca-moss: #1a2a1a;
152
+ --ca-fern: #4a6a4a;
153
+ --ca-green: #2d7a3e;
154
+ --ca-coral: #d16b3f;
155
+
156
+ /* ── Rig component token bridge ─────────────────────────────────────────
157
+ * Overrides shared/tokens.css defaults where the Compass palette needs
158
+ * values that can't be derived directly from --color-* semantics.
159
+ */
160
+
161
+ /* Button — pale eucalyptus for hover feedback */
162
+ --rig-button-hover-bg: #e0ece0;
163
+
164
+ /* Scrollbar — deep moss tint for light mode */
165
+ --rig-scrollbar-thumb: rgba(26, 42, 26, 0.12);
166
+ --rig-scrollbar-thumb-hover: rgba(26, 42, 26, 0.25);
167
+ }
@@ -0,0 +1,167 @@
1
+ /* Hex — Duskline Base Styles
2
+ * html/body defaults, scrollbar, focus, selection, transitions.
3
+ * Investigative noir typography with true dark canvas.
4
+ */
5
+
6
+ @reference 'tailwindcss';
7
+ @reference './tokens.css';
8
+
9
+ /* Base styles */
10
+ html {
11
+ /* Keep 16px on <html> so Tailwind rem utilities stay correctly sized */
12
+ font-size: 16px;
13
+ }
14
+
15
+ html,
16
+ body {
17
+ @apply bg-background text-foreground font-sans;
18
+
19
+ color-scheme: dark;
20
+ -webkit-font-smoothing: antialiased;
21
+ -moz-osx-font-smoothing: grayscale;
22
+ }
23
+
24
+ body {
25
+ font-size: 16px;
26
+ font-weight: 400;
27
+ line-height: 1.6;
28
+ }
29
+
30
+ /* Heading defaults */
31
+ h1 {
32
+ font-size: 48px;
33
+ font-weight: 600;
34
+ font-family: 'IBM Plex Sans Condensed', var(--font-sans);
35
+ color: var(--color-primary);
36
+ margin: 0;
37
+ padding: 0;
38
+ line-height: 1.1;
39
+ }
40
+
41
+ h2 {
42
+ font-size: 36px;
43
+ font-weight: 500;
44
+ color: var(--color-primary);
45
+ margin: 0;
46
+ padding: 0;
47
+ line-height: 1.1;
48
+ }
49
+
50
+ /* Scrollbar */
51
+ ::-webkit-scrollbar {
52
+ width: 8px;
53
+ height: 8px;
54
+ }
55
+
56
+ ::-webkit-scrollbar-track {
57
+ background: transparent;
58
+ }
59
+
60
+ ::-webkit-scrollbar-thumb {
61
+ background: color-mix(in srgb, var(--color-foreground) 10%, transparent);
62
+ border-radius: 4px;
63
+ }
64
+
65
+ ::-webkit-scrollbar-thumb:hover {
66
+ background: color-mix(in srgb, var(--color-foreground) 20%, transparent);
67
+ }
68
+
69
+ /* Focus styles */
70
+ *:focus-visible {
71
+ outline: 2px solid var(--color-primary);
72
+ outline-offset: 2px;
73
+ }
74
+
75
+ /* Selection */
76
+ ::selection {
77
+ background: color-mix(in srgb, var(--color-primary) 40%, transparent);
78
+ color: var(--color-foreground);
79
+ }
80
+
81
+ /* Smooth scrolling */
82
+ html {
83
+ scroll-behavior: smooth;
84
+ }
85
+
86
+ /* Reduced motion — disable animations and transitions */
87
+ @media (prefers-reduced-motion: reduce) {
88
+ *,
89
+ *::before,
90
+ *::after {
91
+ animation-duration: 0.01ms !important;
92
+ animation-iteration-count: 1 !important;
93
+ transition-duration: 0.01ms !important;
94
+ scroll-behavior: auto !important;
95
+ }
96
+ }
97
+
98
+ /* Firefox scrollbar */
99
+ * {
100
+ scrollbar-width: thin;
101
+ scrollbar-color: color-mix(in srgb, var(--color-foreground) 10%, transparent) transparent;
102
+ }
103
+
104
+ /* ───────── Scroll-draw SVG utility ───────── */
105
+
106
+ @keyframes scroll-draw-in {
107
+ from {
108
+ stroke-dashoffset: 1;
109
+ }
110
+
111
+ to {
112
+ stroke-dashoffset: 0;
113
+ }
114
+ }
115
+
116
+ .scroll-draw path,
117
+ .scroll-draw line,
118
+ .scroll-draw polyline,
119
+ .scroll-draw polygon,
120
+ .scroll-draw circle,
121
+ .scroll-draw ellipse {
122
+ stroke-dasharray: 1;
123
+ stroke-dashoffset: 1;
124
+ animation: scroll-draw-in linear both;
125
+ animation-timeline: view();
126
+ animation-range: entry 20% cover 50%;
127
+ }
128
+
129
+ @media (prefers-reduced-motion: reduce) {
130
+ .scroll-draw path,
131
+ .scroll-draw line,
132
+ .scroll-draw polyline,
133
+ .scroll-draw polygon,
134
+ .scroll-draw circle,
135
+ .scroll-draw ellipse {
136
+ animation: none;
137
+ stroke-dashoffset: 0;
138
+ }
139
+ }
140
+
141
+ /* ───────── Scroll-reveal utility ───────── */
142
+
143
+ @keyframes scroll-fade-in {
144
+ from {
145
+ opacity: 0;
146
+ transform: translateY(20px);
147
+ }
148
+
149
+ to {
150
+ opacity: 1;
151
+ transform: translateY(0);
152
+ }
153
+ }
154
+
155
+ .scroll-reveal {
156
+ animation: scroll-fade-in linear both;
157
+ animation-timeline: view();
158
+ animation-range: entry 10% cover 30%;
159
+ }
160
+
161
+ @media (prefers-reduced-motion: reduce) {
162
+ .scroll-reveal {
163
+ animation: none;
164
+ opacity: 1;
165
+ transform: none;
166
+ }
167
+ }
@@ -0,0 +1,27 @@
1
+ /* Hex — Duskline Component Barrel
2
+ * Imports shared component CSS (one file per Rig package).
3
+ * Components use only semantic tokens — Tailwind resolves them
4
+ * against this theme's tokens.css at build time.
5
+ * @import rules must precede @reference so postcss-import can inline them.
6
+ */
7
+
8
+ @import '../../shared/rig-defaults.css';
9
+ @import '../../shared/components/core.css';
10
+ @import '../../shared/components/layout.css';
11
+ @import '../../shared/components/nav.css';
12
+ @import '../../shared/components/editor.css';
13
+ @import '../../shared/components/lists.css';
14
+ @import '../../shared/components/menus.css';
15
+ @import '../../shared/components/extras.css';
16
+ @import '../../shared/components/shell.css';
17
+ @import '../../shared/components/data.css';
18
+ @import '../../shared/components/spatial.css';
19
+ @import '../../shared/components/temporal.css';
20
+ @import '../../shared/components/web.css';
21
+ @import '../../shared/a11y.css';
22
+ @import '../../shared/components/prose.css';
23
+ @import '../../shared/utilities.css';
24
+ @import '../../shared/scroll-animations.css';
25
+
26
+ @reference 'tailwindcss';
27
+ @reference './tokens.css';