@amulet-laboratories/hex 0.3.0 → 0.5.1

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 (189) hide show
  1. package/dist/beacon.css +1 -0
  2. package/dist/brass.css +5 -0
  3. package/dist/cardinal.css +5 -0
  4. package/dist/citron.css +5 -0
  5. package/dist/clover.css +5 -0
  6. package/dist/cobalt.css +5 -0
  7. package/dist/copper.css +5 -0
  8. package/dist/cypress.css +5 -0
  9. package/dist/damson.css +5 -0
  10. package/dist/fern.css +5 -0
  11. package/dist/forge.css +2 -2
  12. package/dist/garden.css +2 -2
  13. package/dist/greyline.css +2 -2
  14. package/dist/harbor.css +5 -0
  15. package/dist/hearth.css +5 -0
  16. package/dist/hex.css +2 -2
  17. package/dist/iris.css +5 -0
  18. package/dist/juniper.css +5 -0
  19. package/dist/lagoon.css +5 -0
  20. package/dist/ochre.css +5 -0
  21. package/dist/orchid.css +5 -0
  22. package/dist/quartz.css +5 -0
  23. package/dist/roast.css +5 -0
  24. package/dist/sienna.css +5 -0
  25. package/dist/slate.css +5 -0
  26. package/dist/spacewizard.css +2 -2
  27. package/dist/vesper.css +5 -0
  28. package/dist/voltaic.css +1 -0
  29. package/package.json +73 -53
  30. package/src/index.css +3 -3
  31. package/src/scoped/index.css +13 -13
  32. package/src/scoped/themes/{kbcv.css → cardinal.css} +17 -1
  33. package/src/scoped/themes/citron.css +105 -0
  34. package/src/scoped/themes/{compass.css → clover.css} +26 -13
  35. package/src/scoped/themes/{vscode.css → cobalt.css} +10 -5
  36. package/src/scoped/themes/{undertow.css → copper.css} +16 -1
  37. package/src/scoped/themes/{tidemark.css → cypress.css} +24 -11
  38. package/src/scoped/themes/{aldricpace.css → harbor.css} +15 -3
  39. package/src/scoped/themes/hearth.css +134 -0
  40. package/src/scoped/themes/{briarcove.css → iris.css} +13 -2
  41. package/src/scoped/themes/juniper.css +121 -0
  42. package/src/scoped/themes/{duskline.css → lagoon.css} +25 -9
  43. package/src/scoped/themes/{saltsignal.css → ochre.css} +23 -10
  44. package/src/scoped/themes/{marenlys.css → orchid.css} +26 -9
  45. package/src/scoped/themes/{briarcovelib.css → sienna.css} +20 -7
  46. package/src/scoped/themes/{lanternhouse.css → vesper.css} +27 -6
  47. package/src/scoped/tokens.css +15 -13
  48. package/src/shared/components/content.css +772 -0
  49. package/src/shared/components/core.css +88 -720
  50. package/src/shared/components/data.css +24 -126
  51. package/src/shared/components/editor.css +33 -164
  52. package/src/shared/components/extras.css +30 -346
  53. package/src/shared/components/layout.css +21 -369
  54. package/src/shared/components/lists.css +11 -114
  55. package/src/shared/components/menus.css +10 -146
  56. package/src/shared/components/nav.css +112 -501
  57. package/src/shared/components/prose.css +12 -180
  58. package/src/shared/components/shell.css +22 -259
  59. package/src/shared/components/spatial.css +15 -47
  60. package/src/shared/components/temporal.css +28 -68
  61. package/src/shared/components/web.css +42 -1037
  62. package/src/shared/tokens.css +37 -0
  63. package/src/shared/utilities.css +52 -3
  64. package/src/themes/beacon/base.css +59 -0
  65. package/src/themes/beacon/index.css +11 -0
  66. package/src/themes/beacon/tokens.css +219 -0
  67. package/src/themes/brass/base.css +179 -0
  68. package/src/themes/brass/components.css +23 -0
  69. package/src/themes/brass/domains.css +731 -0
  70. package/src/themes/brass/tokens.css +208 -0
  71. package/src/themes/{kbcv → cardinal}/tokens.css +5 -0
  72. package/src/themes/citron/base.css +232 -0
  73. package/src/themes/citron/tokens.css +136 -0
  74. package/src/themes/{vscode → cobalt}/tokens.css +5 -5
  75. package/src/themes/damson/base.css +179 -0
  76. package/src/themes/damson/components.css +23 -0
  77. package/src/themes/damson/domains.css +731 -0
  78. package/src/themes/damson/tokens.css +208 -0
  79. package/src/themes/{quizbit → fern}/base.css +21 -27
  80. package/src/themes/fern/components.css +23 -0
  81. package/src/themes/fern/domains.css +731 -0
  82. package/src/themes/fern/tokens.css +208 -0
  83. package/src/themes/{aldricpace → harbor}/tokens.css +5 -0
  84. package/src/themes/hearth/base.css +111 -0
  85. package/src/themes/hearth/components.css +22 -0
  86. package/src/themes/hearth/domains.css +19 -0
  87. package/src/themes/hearth/tokens.css +179 -0
  88. package/src/themes/juniper/base.css +111 -0
  89. package/src/themes/juniper/components.css +22 -0
  90. package/src/themes/juniper/domains.css +19 -0
  91. package/src/themes/juniper/tokens.css +171 -0
  92. package/src/themes/lagoon/index.css +6 -0
  93. package/src/themes/{duskline → lagoon}/tokens.css +5 -0
  94. package/src/themes/ochre/index.css +6 -0
  95. package/src/themes/{saltsignal → ochre}/tokens.css +8 -8
  96. package/src/themes/orchid/index.css +6 -0
  97. package/src/themes/{marenlys → orchid}/tokens.css +8 -3
  98. package/src/themes/quartz/base.css +114 -0
  99. package/src/themes/quartz/components.css +23 -0
  100. package/src/themes/quartz/domains.css +731 -0
  101. package/src/themes/quartz/index.css +6 -0
  102. package/src/themes/quartz/tokens.css +208 -0
  103. package/src/themes/roast/base.css +114 -0
  104. package/src/themes/roast/components.css +23 -0
  105. package/src/themes/roast/domains.css +731 -0
  106. package/src/themes/roast/index.css +6 -0
  107. package/src/themes/roast/tokens.css +208 -0
  108. package/src/themes/sienna/index.css +6 -0
  109. package/src/themes/slate/base.css +207 -0
  110. package/src/themes/slate/components.css +23 -0
  111. package/src/themes/slate/domains.css +731 -0
  112. package/src/themes/slate/index.css +6 -0
  113. package/src/themes/slate/tokens.css +208 -0
  114. package/src/themes/vesper/index.css +6 -0
  115. package/src/themes/{lanternhouse → vesper}/tokens.css +5 -0
  116. package/dist/aldricpace.css +0 -5
  117. package/dist/briarcove.css +0 -5
  118. package/dist/briarcovelib.css +0 -5
  119. package/dist/compass.css +0 -5
  120. package/dist/duskline.css +0 -5
  121. package/dist/kbcv.css +0 -5
  122. package/dist/lanternhouse.css +0 -5
  123. package/dist/marenlys.css +0 -5
  124. package/dist/quizbit.css +0 -5
  125. package/dist/saltsignal.css +0 -5
  126. package/dist/tidemark.css +0 -5
  127. package/dist/undertow.css +0 -5
  128. package/dist/vscode.css +0 -5
  129. package/src/scoped/themes/quizbit.css +0 -101
  130. package/src/themes/quizbit/tokens.css +0 -132
  131. /package/src/themes/{aldricpace → brass}/index.css +0 -0
  132. /package/src/themes/{kbcv → cardinal}/base.css +0 -0
  133. /package/src/themes/{kbcv → cardinal}/components.css +0 -0
  134. /package/src/themes/{kbcv → cardinal}/domains.css +0 -0
  135. /package/src/themes/{briarcove → cardinal}/index.css +0 -0
  136. /package/src/themes/{quizbit → citron}/components.css +0 -0
  137. /package/src/themes/{quizbit → citron}/domains.css +0 -0
  138. /package/src/themes/{briarcovelib → citron}/index.css +0 -0
  139. /package/src/themes/{compass → clover}/base.css +0 -0
  140. /package/src/themes/{compass → clover}/components.css +0 -0
  141. /package/src/themes/{compass → clover}/domains.css +0 -0
  142. /package/src/themes/{compass → clover}/index.css +0 -0
  143. /package/src/themes/{compass → clover}/tokens.css +0 -0
  144. /package/src/themes/{vscode → cobalt}/base.css +0 -0
  145. /package/src/themes/{vscode → cobalt}/components.css +0 -0
  146. /package/src/themes/{vscode → cobalt}/domains.css +0 -0
  147. /package/src/themes/{vscode → cobalt}/index.css +0 -0
  148. /package/src/themes/{undertow → copper}/base.css +0 -0
  149. /package/src/themes/{undertow → copper}/components.css +0 -0
  150. /package/src/themes/{undertow → copper}/domains.css +0 -0
  151. /package/src/themes/{duskline → copper}/index.css +0 -0
  152. /package/src/themes/{undertow → copper}/tokens.css +0 -0
  153. /package/src/themes/{tidemark → cypress}/base.css +0 -0
  154. /package/src/themes/{tidemark → cypress}/components.css +0 -0
  155. /package/src/themes/{tidemark → cypress}/domains.css +0 -0
  156. /package/src/themes/{kbcv → cypress}/index.css +0 -0
  157. /package/src/themes/{tidemark → cypress}/tokens.css +0 -0
  158. /package/src/themes/{lanternhouse → damson}/index.css +0 -0
  159. /package/src/themes/{marenlys → fern}/index.css +0 -0
  160. /package/src/themes/{aldricpace → harbor}/base.css +0 -0
  161. /package/src/themes/{aldricpace → harbor}/components.css +0 -0
  162. /package/src/themes/{aldricpace → harbor}/domains.css +0 -0
  163. /package/src/themes/{quizbit → harbor}/index.css +0 -0
  164. /package/src/themes/{saltsignal → hearth}/index.css +0 -0
  165. /package/src/themes/{briarcove → iris}/base.css +0 -0
  166. /package/src/themes/{briarcove → iris}/components.css +0 -0
  167. /package/src/themes/{briarcove → iris}/domains.css +0 -0
  168. /package/src/themes/{tidemark → iris}/index.css +0 -0
  169. /package/src/themes/{briarcove → iris}/tokens.css +0 -0
  170. /package/src/themes/{undertow → juniper}/index.css +0 -0
  171. /package/src/themes/{duskline → lagoon}/base.css +0 -0
  172. /package/src/themes/{duskline → lagoon}/components.css +0 -0
  173. /package/src/themes/{duskline → lagoon}/domains.css +0 -0
  174. /package/src/themes/{saltsignal → ochre}/base.css +0 -0
  175. /package/src/themes/{saltsignal → ochre}/components.css +0 -0
  176. /package/src/themes/{saltsignal → ochre}/domains.css +0 -0
  177. /package/src/themes/{marenlys → orchid}/base.css +0 -0
  178. /package/src/themes/{marenlys → orchid}/components.css +0 -0
  179. /package/src/themes/{marenlys → orchid}/domains.css +0 -0
  180. /package/src/themes/{briarcovelib → sienna}/base.css +0 -0
  181. /package/src/themes/{briarcovelib → sienna}/components.css +0 -0
  182. /package/src/themes/{briarcovelib → sienna}/domains.css +0 -0
  183. /package/src/themes/{briarcovelib → sienna}/tokens.css +0 -0
  184. /package/src/themes/{lanternhouse → vesper}/base.css +0 -0
  185. /package/src/themes/{lanternhouse → vesper}/components.css +0 -0
  186. /package/src/themes/{lanternhouse → vesper}/domains.css +0 -0
  187. /package/src/themes/{andrewpassanisi → voltaic}/base.css +0 -0
  188. /package/src/themes/{andrewpassanisi → voltaic}/index.css +0 -0
  189. /package/src/themes/{andrewpassanisi → voltaic}/tokens.css +0 -0
@@ -0,0 +1,208 @@
1
+ /* Hex — Wainloft Design Tokens
2
+ * Sage green palette for home and living content sites.
3
+ * Light mode theme — sage green primary, terracotta accent, warm cream neutrals.
4
+ *
5
+ * Full palette (10 swatch colors):
6
+ * #f7f4ef warm cream — background
7
+ * #ffffff white — card, popover
8
+ * #f0ede6 warm beige — secondary
9
+ * #e8e4dc light taupe — muted
10
+ * #ddd8cf warm border — border, input
11
+ * #c17d5e terracotta — accent
12
+ * #779572 sage green — primary
13
+ * #658560 darker sage — hover
14
+ * #7a7872 muted foreground — muted-foreground
15
+ * #2a2a28 warm charcoal — foreground
16
+ *
17
+ * @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
18
+ * :root provides standalone CSS custom property access for non-Tailwind consumers.
19
+ */
20
+
21
+ @theme {
22
+ /* Surface colors */
23
+ --color-background: #f7f4ef;
24
+ --color-foreground: #2a2a28;
25
+ --color-card: #ffffff;
26
+ --color-card-foreground: #2a2a28;
27
+ --color-popover: #ffffff;
28
+ --color-popover-foreground: #2a2a28;
29
+
30
+ /* Brand */
31
+ --color-primary: #779572;
32
+ --color-primary-foreground: #ffffff;
33
+
34
+ /* Soft accents */
35
+ --color-secondary: #f0ede6;
36
+ --color-secondary-foreground: #2a2a28;
37
+ --color-muted: #e8e4dc;
38
+ --color-muted-foreground: #7a7872;
39
+ --color-accent: #c17d5e;
40
+ --color-accent-foreground: #ffffff;
41
+
42
+ /* Semantic status */
43
+ --color-destructive: #dc2626;
44
+ --color-destructive-foreground: #ffffff;
45
+ --color-success: #16a34a;
46
+ --color-warning: #d97706;
47
+ --color-info: #2563eb;
48
+
49
+ /* Borders and focus */
50
+ --color-border: #ddd8cf;
51
+ --color-input: #ddd8cf;
52
+ --color-ring: #779572;
53
+
54
+ /* Typography */
55
+ --font-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;
56
+ --font-serif: 'Libre Baskerville', ui-serif, Georgia, serif;
57
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
58
+ --font-mono: 'JetBrains Mono', ui-monospace, monospace;
59
+
60
+ /* Typography — content-optimized type scale */
61
+ --font-size-2xs: 0.75rem;
62
+ --font-size-2xs--line-height: 1.5;
63
+ --font-size-xs: 0.8125rem;
64
+ --font-size-xs--line-height: 1.5;
65
+ --font-size-sm: 0.875rem;
66
+ --font-size-sm--line-height: 1.5;
67
+ --font-size-base: 1rem;
68
+ --font-size-base--line-height: 1.7;
69
+ --font-size-lg: 1.125rem;
70
+ --font-size-lg--line-height: 1.5;
71
+ --font-size-xl: 1.25rem;
72
+ --font-size-xl--line-height: 1.4;
73
+
74
+ /* Display font family */
75
+ --font-display: var(--font-serif);
76
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
77
+
78
+ /* Radius */
79
+ --radius: 8px;
80
+ }
81
+
82
+ :root {
83
+ --background: #f7f4ef;
84
+ --foreground: #2a2a28;
85
+ --card: #ffffff;
86
+ --card-foreground: #2a2a28;
87
+ --popover: #ffffff;
88
+ --popover-foreground: #2a2a28;
89
+ --primary: #779572;
90
+ --primary-foreground: #ffffff;
91
+ --secondary: #f0ede6;
92
+ --secondary-foreground: #2a2a28;
93
+ --muted: #e8e4dc;
94
+ --muted-foreground: #7a7872;
95
+ --accent: #c17d5e;
96
+ --accent-foreground: #ffffff;
97
+ --destructive: #dc2626;
98
+ --destructive-foreground: #ffffff;
99
+ --success: #16a34a;
100
+ --warning: #d97706;
101
+ --info: #2563eb;
102
+ --border: #ddd8cf;
103
+ --input: #ddd8cf;
104
+ --ring: #779572;
105
+
106
+ /* Color token bridge -- component CSS uses var(--color-*) */
107
+ --color-background: #f7f4ef;
108
+ --color-foreground: #2a2a28;
109
+ --color-card: #ffffff;
110
+ --color-card-foreground: #2a2a28;
111
+ --color-popover: #ffffff;
112
+ --color-popover-foreground: #2a2a28;
113
+ --color-primary: #779572;
114
+ --color-primary-foreground: #ffffff;
115
+ --color-secondary: #f0ede6;
116
+ --color-secondary-foreground: #2a2a28;
117
+ --color-muted: #e8e4dc;
118
+ --color-muted-foreground: #7a7872;
119
+ --color-accent: #c17d5e;
120
+ --color-accent-foreground: #ffffff;
121
+ --color-destructive: #dc2626;
122
+ --color-destructive-foreground: #ffffff;
123
+ --color-success: #16a34a;
124
+ --color-warning: #d97706;
125
+ --color-info: #2563eb;
126
+ --color-border: #ddd8cf;
127
+ --color-input: #ddd8cf;
128
+ --color-ring: #779572;
129
+ --font-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;
130
+ --font-serif: 'Libre Baskerville', ui-serif, Georgia, serif;
131
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
132
+ --font-mono: 'JetBrains Mono', ui-monospace, monospace;
133
+ --font-heading: var(--font-serif);
134
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
135
+ --radius: 8px;
136
+
137
+ /* Typography — content-optimized type scale */
138
+ --font-size-2xs: 0.75rem;
139
+ --font-size-2xs--line-height: 1.5;
140
+ --font-size-xs: 0.8125rem;
141
+ --font-size-xs--line-height: 1.5;
142
+ --font-size-sm: 0.875rem;
143
+ --font-size-sm--line-height: 1.5;
144
+ --font-size-base: 1rem;
145
+ --font-size-base--line-height: 1.7;
146
+ --font-size-lg: 1.125rem;
147
+ --font-size-lg--line-height: 1.5;
148
+ --font-size-xl: 1.25rem;
149
+ --font-size-xl--line-height: 1.4;
150
+
151
+ /* Display font family */
152
+ --font-display: var(--font-serif);
153
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
154
+
155
+ --radius: 8px;
156
+
157
+ /* Typography — content-optimized type scale (shorthand aliases) */
158
+ --text-2xs: 0.75rem;
159
+ --text-xs: 0.8125rem;
160
+ --text-sm: 0.875rem;
161
+ --text-base: 1rem;
162
+ --text-lg: 1.125rem;
163
+ --text-xl: 1.25rem;
164
+ --leading-tight: 1.25;
165
+ --leading-snug: 1.375;
166
+ --leading-normal: 1.5;
167
+ --leading-relaxed: 1.7;
168
+ --weight-normal: 400;
169
+ --weight-medium: 500;
170
+ --weight-semibold: 600;
171
+ --weight-bold: 700;
172
+ --tracking-tight: -0.01em;
173
+ --tracking-normal: 0;
174
+ --tracking-wide: 0.05em;
175
+ --tracking-wider: 0.08em;
176
+ --font-display: var(--font-serif);
177
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
178
+ --font-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;
179
+ --font-serif: 'Libre Baskerville', ui-serif, Georgia, serif;
180
+ --font-heading: 'Playfair Display', ui-serif, Georgia, serif;
181
+ --font-mono: 'JetBrains Mono', ui-monospace, monospace;
182
+
183
+ /* ── Named palette aliases ──────────────────────────────────────────────
184
+ * All 10 swatch colors available for direct template use.
185
+ */
186
+ --wainloft-warm-cream: #f7f4ef;
187
+ --wainloft-white: #ffffff;
188
+ --wainloft-warm-beige: #f0ede6;
189
+ --wainloft-light-taupe: #e8e4dc;
190
+ --wainloft-warm-border: #ddd8cf;
191
+ --wainloft-terracotta: #c17d5e;
192
+ --wainloft-sage: #779572;
193
+ --wainloft-dark-sage: #658560;
194
+ --wainloft-muted-fg: #7a7872;
195
+ --wainloft-charcoal: #2a2a28;
196
+
197
+ /* ── Rig component token bridge ─────────────────────────────────────────
198
+ * Overrides shared/tokens.css defaults where the Wainloft palette needs
199
+ * values that can't be derived directly from --color-* semantics.
200
+ */
201
+
202
+ /* Button — darker sage for hover feedback */
203
+ --rig-button-hover-bg: #658560;
204
+
205
+ /* Scrollbar — warm charcoal tint */
206
+ --rig-scrollbar-thumb: rgba(42, 42, 40, 0.12);
207
+ --rig-scrollbar-thumb-hover: rgba(42, 42, 40, 0.25);
208
+ }
@@ -74,6 +74,11 @@
74
74
  --font-display: var(--font-sans);
75
75
 
76
76
  --radius: 3px;
77
+
78
+ /* Tracking — letter-spacing for heading typography */
79
+ --tracking-heading: 0.05em;
80
+ --tracking-display: 0.1em;
81
+ --tracking-caps: 0.15em;
77
82
  }
78
83
 
79
84
  :root {
@@ -0,0 +1,111 @@
1
+ /* Hex — Fogline Base Styles
2
+ * Warm espresso roastery — Cormorant Garamond display, DM Sans body.
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 font-sans;
15
+ color-scheme: dark;
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.6;
24
+ }
25
+
26
+ h1 {
27
+ font-size: 48px;
28
+ font-weight: 700;
29
+ font-family: var(--font-serif);
30
+ color: var(--color-foreground);
31
+ margin: 0;
32
+ padding: 0;
33
+ line-height: 1.1;
34
+ }
35
+
36
+ h2 {
37
+ font-size: 36px;
38
+ font-weight: 700;
39
+ font-family: var(--font-serif);
40
+ color: var(--color-foreground);
41
+ margin: 0;
42
+ padding: 0;
43
+ line-height: 1.15;
44
+ }
45
+
46
+ ::-webkit-scrollbar {
47
+ width: 8px;
48
+ height: 8px;
49
+ }
50
+ ::-webkit-scrollbar-track {
51
+ background: transparent;
52
+ }
53
+ ::-webkit-scrollbar-thumb {
54
+ background: color-mix(in srgb, var(--color-foreground) 12%, transparent);
55
+ border-radius: 8px;
56
+ }
57
+ ::-webkit-scrollbar-thumb:hover {
58
+ background: color-mix(in srgb, var(--color-foreground) 22%, transparent);
59
+ }
60
+
61
+ *:focus-visible {
62
+ outline: 2px solid var(--color-primary);
63
+ outline-offset: 2px;
64
+ }
65
+ ::selection {
66
+ background: color-mix(in srgb, var(--color-primary) 35%, transparent);
67
+ color: var(--color-foreground);
68
+ }
69
+
70
+ html {
71
+ scroll-behavior: smooth;
72
+ }
73
+
74
+ @media (prefers-reduced-motion: reduce) {
75
+ *,
76
+ *::before,
77
+ *::after {
78
+ animation-duration: 0.01ms !important;
79
+ animation-iteration-count: 1 !important;
80
+ transition-duration: 0.01ms !important;
81
+ scroll-behavior: auto !important;
82
+ }
83
+ }
84
+
85
+ * {
86
+ scrollbar-width: thin;
87
+ scrollbar-color: color-mix(in srgb, var(--color-foreground) 12%, transparent) transparent;
88
+ }
89
+
90
+ @keyframes scroll-fade-in {
91
+ from {
92
+ opacity: 0;
93
+ transform: translateY(20px);
94
+ }
95
+ to {
96
+ opacity: 1;
97
+ transform: translateY(0);
98
+ }
99
+ }
100
+ .scroll-reveal {
101
+ animation: scroll-fade-in linear both;
102
+ animation-timeline: view();
103
+ animation-range: entry 10% cover 30%;
104
+ }
105
+ @media (prefers-reduced-motion: reduce) {
106
+ .scroll-reveal {
107
+ animation: none;
108
+ opacity: 1;
109
+ transform: none;
110
+ }
111
+ }
@@ -0,0 +1,22 @@
1
+ /* Hex — Root & Remedy 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 — Root & Remedy Domains */
2
+ @reference 'tailwindcss';
3
+ @reference './tokens.css';
4
+
5
+ [data-domain='legal'] {
6
+ --domain-accent: #c9a55c;
7
+ }
8
+ [data-domain='life'] {
9
+ --domain-accent: #4a8c5c;
10
+ }
11
+ [data-domain='software'] {
12
+ --domain-accent: #6b8faa;
13
+ }
14
+ [data-domain='business'] {
15
+ --domain-accent: #4a8c5c;
16
+ }
17
+ [data-domain='history'] {
18
+ --domain-accent: #8a9a8e;
19
+ }
@@ -0,0 +1,179 @@
1
+ /* Hex — Fogline Design Tokens
2
+ * Warm espresso dark mode. The only brown-toned dark theme in Hex.
3
+ * Feels like the inside of a dimly lit roastery at dawn — deep
4
+ * espresso background, crema gold primary, patina copper accent.
5
+ *
6
+ * Full palette (8 swatch colors):
7
+ * #16120e deep espresso — background
8
+ * #1e1914 dark roast — card, popover
9
+ * #2a231c walnut — secondary, muted
10
+ * #ede4d8 steamed milk — foreground text
11
+ * #9a8b78 warm taupe — muted foreground
12
+ * #c8a265 crema gold — primary, ring
13
+ * #d4843a patina copper — accent
14
+ * #c44830 ember red — destructive
15
+ *
16
+ * Font pairing: DM Sans (sans) + Cormorant Garamond (serif/heading)
17
+ * Radius: 4px — precise, not fussy
18
+ *
19
+ * @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
20
+ * :root provides standalone CSS custom property access for non-Tailwind consumers.
21
+ */
22
+
23
+ @theme {
24
+ /* Surface colors */
25
+ --color-background: #16120e;
26
+ --color-foreground: #ede4d8;
27
+ --color-card: #1e1914;
28
+ --color-card-foreground: #ede4d8;
29
+ --color-popover: #1e1914;
30
+ --color-popover-foreground: #ede4d8;
31
+
32
+ /* Brand */
33
+ --color-primary: #c8a265;
34
+ --color-primary-foreground: #16120e;
35
+
36
+ /* Soft accents */
37
+ --color-secondary: #2a231c;
38
+ --color-secondary-foreground: #ede4d8;
39
+ --color-muted: #2a231c;
40
+ --color-muted-foreground: #9a8b78;
41
+ --color-accent: #d4843a;
42
+ --color-accent-foreground: #16120e;
43
+
44
+ /* Semantic status */
45
+ --color-destructive: #c44830;
46
+ --color-destructive-foreground: #ede4d8;
47
+ --color-success: #5a8a5c;
48
+ --color-warning: #d4a040;
49
+ --color-info: #5a8ab0;
50
+
51
+ /* Borders and focus */
52
+ --color-border: #362e26;
53
+ --color-input: #362e26;
54
+ --color-ring: #c8a265;
55
+
56
+ /* Typography */
57
+ --font-sans: 'DM Sans', 'Inter', system-ui, sans-serif;
58
+ --font-mono: 'Space Mono', 'SF Mono', ui-monospace, monospace;
59
+ --font-serif: 'Cormorant Garamond', 'Georgia', serif;
60
+ --font-heading: 'Cormorant Garamond', 'Georgia', serif;
61
+
62
+ /* Typography — IDE-density type scale */
63
+ --font-size-2xs: 0.625rem;
64
+ --font-size-2xs--line-height: 1.25;
65
+ --font-size-xs: 0.75rem;
66
+ --font-size-xs--line-height: 1.5;
67
+ --font-size-sm: 0.8125rem;
68
+ --font-size-sm--line-height: 1.5;
69
+ --font-size-base: 0.875rem;
70
+ --font-size-base--line-height: 1.5;
71
+ --font-size-lg: 1.125rem;
72
+ --font-size-lg--line-height: 1.25;
73
+ --font-size-xl: 1.25rem;
74
+ --font-size-xl--line-height: 1.25;
75
+
76
+ --font-display: var(--font-serif);
77
+
78
+ --radius: 4px;
79
+ }
80
+
81
+ :root {
82
+ --background: #16120e;
83
+ --foreground: #ede4d8;
84
+ --card: #1e1914;
85
+ --card-foreground: #ede4d8;
86
+ --popover: #1e1914;
87
+ --popover-foreground: #ede4d8;
88
+ --primary: #c8a265;
89
+ --primary-foreground: #16120e;
90
+ --secondary: #2a231c;
91
+ --secondary-foreground: #ede4d8;
92
+ --muted: #2a231c;
93
+ --muted-foreground: #9a8b78;
94
+ --accent: #d4843a;
95
+ --accent-foreground: #16120e;
96
+ --destructive: #c44830;
97
+ --destructive-foreground: #ede4d8;
98
+ --success: #5a8a5c;
99
+ --warning: #d4a040;
100
+ --info: #5a8ab0;
101
+ --border: #362e26;
102
+ --input: #362e26;
103
+ --ring: #c8a265;
104
+
105
+ --font-size-2xs: 0.625rem;
106
+ --font-size-2xs--line-height: 1.25;
107
+ --font-size-xs: 0.75rem;
108
+ --font-size-xs--line-height: 1.5;
109
+ --font-size-sm: 0.8125rem;
110
+ --font-size-sm--line-height: 1.5;
111
+ --font-size-base: 0.875rem;
112
+ --font-size-base--line-height: 1.5;
113
+ --font-size-lg: 1.125rem;
114
+ --font-size-lg--line-height: 1.25;
115
+ --font-size-xl: 1.25rem;
116
+ --font-size-xl--line-height: 1.25;
117
+
118
+ --font-display: var(--font-serif);
119
+
120
+ --radius: 4px;
121
+
122
+ --text-2xs: 0.625rem;
123
+ --text-xs: 0.75rem;
124
+ --text-sm: 0.8125rem;
125
+ --text-base: 0.875rem;
126
+ --text-lg: 1.125rem;
127
+ --text-xl: 1.25rem;
128
+ --leading-tight: 1.25;
129
+ --leading-snug: 1.375;
130
+ --leading-normal: 1.5;
131
+ --leading-relaxed: 1.625;
132
+ --weight-normal: 400;
133
+ --weight-medium: 500;
134
+ --weight-semibold: 600;
135
+ --weight-bold: 700;
136
+ --tracking-tight: -0.01em;
137
+ --tracking-normal: 0;
138
+ --tracking-wide: 0.05em;
139
+ --tracking-wider: 0.08em;
140
+ --font-sans: 'DM Sans', 'Inter', system-ui, sans-serif;
141
+ --font-mono: 'Space Mono', 'SF Mono', ui-monospace, monospace;
142
+ --font-serif: 'Cormorant Garamond', 'Georgia', serif;
143
+ --font-heading: 'Cormorant Garamond', 'Georgia', serif;
144
+
145
+ /* ── Named palette aliases ── */
146
+ --fl-espresso: #16120e;
147
+ --fl-roast: #1e1914;
148
+ --fl-walnut: #2a231c;
149
+ --fl-milk: #ede4d8;
150
+ --fl-taupe: #9a8b78;
151
+ --fl-crema: #c8a265;
152
+ --fl-copper: #d4843a;
153
+ --fl-ember: #c44830;
154
+
155
+ /* ── Rig component token bridge ── */
156
+
157
+ --rig-button-hover-bg: #362e26;
158
+ --rig-scrollbar-thumb: rgba(237, 228, 216, 0.1);
159
+ --rig-scrollbar-thumb-hover: rgba(237, 228, 216, 0.2);
160
+
161
+ --section-divider-fill: #1e1914;
162
+ --section-divider-bg: #16120e;
163
+ --ornament-color: #c8a265;
164
+ --flanked-heading-stroke: #362e26;
165
+
166
+ /* Display rhythm — editorial roastery */
167
+ --rig-display-md: 2.5rem;
168
+ --rig-display-lg: 3.5rem;
169
+ --rig-display-xl: 5rem;
170
+ --rig-display-2xl: 6.5rem;
171
+ --rig-display-tracking: -0.01em;
172
+ --rig-display-leading: 1.05;
173
+
174
+ /* Imagery — espresso warmth */
175
+ --rig-media-filter: sepia(0.12) saturate(1.12) brightness(0.97);
176
+
177
+ --link-slide-color: #c8a265;
178
+ --rig-elevation-rgb: 22 18 14;
179
+ }
@@ -0,0 +1,111 @@
1
+ /* Hex — Root & Remedy Base Styles
2
+ * Midnight apothecary — Newsreader display, Cabin body.
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 font-sans;
15
+ color-scheme: dark;
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.6;
24
+ }
25
+
26
+ h1 {
27
+ font-size: 48px;
28
+ font-weight: 700;
29
+ font-family: var(--font-serif);
30
+ color: var(--color-foreground);
31
+ margin: 0;
32
+ padding: 0;
33
+ line-height: 1.1;
34
+ }
35
+
36
+ h2 {
37
+ font-size: 36px;
38
+ font-weight: 700;
39
+ font-family: var(--font-serif);
40
+ color: var(--color-foreground);
41
+ margin: 0;
42
+ padding: 0;
43
+ line-height: 1.15;
44
+ }
45
+
46
+ ::-webkit-scrollbar {
47
+ width: 8px;
48
+ height: 8px;
49
+ }
50
+ ::-webkit-scrollbar-track {
51
+ background: transparent;
52
+ }
53
+ ::-webkit-scrollbar-thumb {
54
+ background: color-mix(in srgb, var(--color-foreground) 12%, transparent);
55
+ border-radius: 8px;
56
+ }
57
+ ::-webkit-scrollbar-thumb:hover {
58
+ background: color-mix(in srgb, var(--color-foreground) 22%, transparent);
59
+ }
60
+
61
+ *:focus-visible {
62
+ outline: 2px solid var(--color-primary);
63
+ outline-offset: 2px;
64
+ }
65
+ ::selection {
66
+ background: color-mix(in srgb, var(--color-primary) 35%, transparent);
67
+ color: var(--color-foreground);
68
+ }
69
+
70
+ html {
71
+ scroll-behavior: smooth;
72
+ }
73
+
74
+ @media (prefers-reduced-motion: reduce) {
75
+ *,
76
+ *::before,
77
+ *::after {
78
+ animation-duration: 0.01ms !important;
79
+ animation-iteration-count: 1 !important;
80
+ transition-duration: 0.01ms !important;
81
+ scroll-behavior: auto !important;
82
+ }
83
+ }
84
+
85
+ * {
86
+ scrollbar-width: thin;
87
+ scrollbar-color: color-mix(in srgb, var(--color-foreground) 12%, transparent) transparent;
88
+ }
89
+
90
+ @keyframes scroll-fade-in {
91
+ from {
92
+ opacity: 0;
93
+ transform: translateY(20px);
94
+ }
95
+ to {
96
+ opacity: 1;
97
+ transform: translateY(0);
98
+ }
99
+ }
100
+ .scroll-reveal {
101
+ animation: scroll-fade-in linear both;
102
+ animation-timeline: view();
103
+ animation-range: entry 10% cover 30%;
104
+ }
105
+ @media (prefers-reduced-motion: reduce) {
106
+ .scroll-reveal {
107
+ animation: none;
108
+ opacity: 1;
109
+ transform: none;
110
+ }
111
+ }
@@ -0,0 +1,22 @@
1
+ /* Hex — Root & Remedy 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 — Root & Remedy Domains */
2
+ @reference 'tailwindcss';
3
+ @reference './tokens.css';
4
+
5
+ [data-domain='legal'] {
6
+ --domain-accent: #c9a55c;
7
+ }
8
+ [data-domain='life'] {
9
+ --domain-accent: #4a8c5c;
10
+ }
11
+ [data-domain='software'] {
12
+ --domain-accent: #6b8faa;
13
+ }
14
+ [data-domain='business'] {
15
+ --domain-accent: #4a8c5c;
16
+ }
17
+ [data-domain='history'] {
18
+ --domain-accent: #8a9a8e;
19
+ }