@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,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,161 @@
1
+ /* Hex — Greyline Design Tokens
2
+ * True achromatic monochrome. Grayscale newspaper / monochrome monitor.
3
+ * Dark mode corporate/consultancy theme — suited for professional services.
4
+ * Every color is pure gray (h=0, s=0) — no blue, no warm tint.
5
+ *
6
+ * Palette:
7
+ * #0c0c0c near-black — background
8
+ * #141414 charcoal — card, popover
9
+ * #1c1c1c dark gray — secondary, muted
10
+ * #2a2a2a border gray — borders
11
+ * #606060 medium gray — muted foreground
12
+ * #9a9a9a silver — primary brand
13
+ * #b5b5b5 light silver — accent
14
+ * #e8e8e8 near-white — foreground text
15
+ * #f87171 red — destructive
16
+ * #fbbf24 amber — warning
17
+ * #34d399 emerald — success
18
+ * #60a5fa blue — info
19
+ *
20
+ * @theme feeds Tailwind v4 utility generation.
21
+ * :root provides standalone CSS custom property access.
22
+ */
23
+
24
+ @theme {
25
+ /* Surface colors */
26
+ --color-background: #0c0c0c;
27
+ --color-foreground: #e8e8e8;
28
+ --color-card: #141414;
29
+ --color-card-foreground: #e8e8e8;
30
+ --color-popover: #141414;
31
+ --color-popover-foreground: #e8e8e8;
32
+
33
+ /* Brand */
34
+ --color-primary: #9a9a9a;
35
+ --color-primary-foreground: #0c0c0c;
36
+
37
+ /* Soft accents */
38
+ --color-secondary: #1c1c1c;
39
+ --color-secondary-foreground: #e8e8e8;
40
+ --color-muted: #1c1c1c;
41
+ --color-muted-foreground: #606060;
42
+ --color-accent: #b5b5b5;
43
+ --color-accent-foreground: #0c0c0c;
44
+
45
+ /* Semantic status */
46
+ --color-destructive: #f87171;
47
+ --color-destructive-foreground: #0c0c0c;
48
+ --color-success: #34d399;
49
+ --color-warning: #fbbf24;
50
+ --color-info: #60a5fa;
51
+
52
+ /* Borders and focus */
53
+ --color-border: #2a2a2a;
54
+ --color-input: #2a2a2a;
55
+ --color-ring: #9a9a9a;
56
+
57
+ /* Typography */
58
+ --font-mono: 'IBM Plex Mono', 'SF Mono', 'JetBrains Mono', ui-monospace, monospace;
59
+ --font-sans: 'IBM Plex Sans', 'Inter', system-ui, sans-serif;
60
+
61
+ /* Radius */
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
+ /* Display font family */
77
+ --font-display: var(--font-sans);
78
+
79
+ --radius: 4px;
80
+ }
81
+
82
+ :root {
83
+ --background: #0c0c0c;
84
+ --foreground: #e8e8e8;
85
+ --card: #141414;
86
+ --card-foreground: #e8e8e8;
87
+ --popover: #141414;
88
+ --popover-foreground: #e8e8e8;
89
+ --primary: #9a9a9a;
90
+ --primary-foreground: #0c0c0c;
91
+ --secondary: #1c1c1c;
92
+ --secondary-foreground: #e8e8e8;
93
+ --muted: #1c1c1c;
94
+ --muted-foreground: #606060;
95
+ --accent: #b5b5b5;
96
+ --accent-foreground: #0c0c0c;
97
+ --destructive: #f87171;
98
+ --destructive-foreground: #0c0c0c;
99
+ --success: #34d399;
100
+ --warning: #fbbf24;
101
+ --info: #60a5fa;
102
+ --border: #2a2a2a;
103
+ --input: #2a2a2a;
104
+ --ring: #9a9a9a;
105
+ /* Typography — IDE-density type scale */
106
+ --font-size-2xs: 0.625rem;
107
+ --font-size-2xs--line-height: 1.25;
108
+ --font-size-xs: 0.75rem;
109
+ --font-size-xs--line-height: 1.5;
110
+ --font-size-sm: 0.8125rem;
111
+ --font-size-sm--line-height: 1.5;
112
+ --font-size-base: 0.875rem;
113
+ --font-size-base--line-height: 1.5;
114
+ --font-size-lg: 1.125rem;
115
+ --font-size-lg--line-height: 1.25;
116
+ --font-size-xl: 1.25rem;
117
+ --font-size-xl--line-height: 1.25;
118
+
119
+ /* Display font family */
120
+ --font-display: var(--font-sans);
121
+
122
+ --radius: 4px;
123
+
124
+ /* Typography — IDE-density type scale (shorthand aliases) */
125
+ --text-2xs: 0.625rem;
126
+ --text-xs: 0.75rem;
127
+ --text-sm: 0.8125rem;
128
+ --text-base: 0.875rem;
129
+ --text-lg: 1.125rem;
130
+ --text-xl: 1.25rem;
131
+ --leading-tight: 1.25;
132
+ --leading-snug: 1.375;
133
+ --leading-normal: 1.5;
134
+ --leading-relaxed: 1.625;
135
+ --weight-normal: 400;
136
+ --weight-medium: 500;
137
+ --weight-semibold: 600;
138
+ --weight-bold: 700;
139
+ --tracking-tight: -0.01em;
140
+ --tracking-normal: 0;
141
+ --tracking-wide: 0.05em;
142
+ --tracking-wider: 0.08em;
143
+ --font-display: var(--font-sans);
144
+ --font-mono: 'IBM Plex Mono', 'SF Mono', 'JetBrains Mono', ui-monospace, monospace;
145
+ --font-sans: 'IBM Plex Sans', 'Inter', system-ui, sans-serif;
146
+
147
+ /* ── Named palette aliases ── */
148
+ --gl-black: #0c0c0c;
149
+ --gl-charcoal: #141414;
150
+ --gl-surface: #1c1c1c;
151
+ --gl-border: #2a2a2a;
152
+ --gl-muted: #606060;
153
+ --gl-silver: #9a9a9a;
154
+ --gl-silver-light: #b5b5b5;
155
+ --gl-white: #e8e8e8;
156
+
157
+ /* ── Rig component token bridge ── */
158
+ --rig-button-hover-bg: #1c1c1c;
159
+ --rig-scrollbar-thumb: rgba(232, 232, 232, 0.12);
160
+ --rig-scrollbar-thumb-hover: rgba(232, 232, 232, 0.25);
161
+ }
@@ -0,0 +1,112 @@
1
+ /* Hex — KBCV Base Styles
2
+ * Community radio — Chivo display, Newsreader body. Warm analog.
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: 'Newsreader', var(--font-serif);
25
+ }
26
+
27
+ h1 {
28
+ font-size: 56px;
29
+ font-weight: 900;
30
+ font-family: 'Chivo', var(--font-sans);
31
+ color: var(--color-primary);
32
+ margin: 0;
33
+ padding: 0;
34
+ line-height: 1.05;
35
+ }
36
+
37
+ h2 {
38
+ font-size: 36px;
39
+ font-weight: 700;
40
+ font-family: 'Chivo', var(--font-sans);
41
+ color: var(--color-foreground);
42
+ margin: 0;
43
+ padding: 0;
44
+ line-height: 1.15;
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 — KBCV 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 — KBCV Domains */
2
+ @reference 'tailwindcss';
3
+ @reference './tokens.css';
4
+
5
+ [data-domain='legal'] {
6
+ --domain-accent: #b83232;
7
+ }
8
+ [data-domain='life'] {
9
+ --domain-accent: #2d6a4f;
10
+ }
11
+ [data-domain='software'] {
12
+ --domain-accent: #4a6a8a;
13
+ }
14
+ [data-domain='business'] {
15
+ --domain-accent: #b83232;
16
+ }
17
+ [data-domain='history'] {
18
+ --domain-accent: #706459;
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 — KBCV Design Tokens
2
+ * Community radio station. Warm neutral with analog character.
3
+ * Parchment background, broadcast red, dial green accents.
4
+ *
5
+ * Full palette (7 swatch colors):
6
+ * #F7F3EE parchment — background
7
+ * #EDEAE4 oatmeal — card
8
+ * #DDD7CE kraft — secondary, muted
9
+ * #2A2521 espresso — foreground text
10
+ * #706459 walnut — muted foreground
11
+ * #B83232 broadcast red — primary, ring
12
+ * #2D6A4F dial green — 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: #f7f3ee;
21
+ --color-foreground: #2a2521;
22
+ --color-card: #edeae4;
23
+ --color-card-foreground: #2a2521;
24
+ --color-popover: #ffffff;
25
+ --color-popover-foreground: #2a2521;
26
+
27
+ /* Brand */
28
+ --color-primary: #b83232;
29
+ --color-primary-foreground: #fffdf8;
30
+
31
+ /* Soft accents */
32
+ --color-secondary: #ddd7ce;
33
+ --color-secondary-foreground: #2a2521;
34
+ --color-muted: #ddd7ce;
35
+ --color-muted-foreground: #706459;
36
+ --color-accent: #2d6a4f;
37
+ --color-accent-foreground: #fffdf8;
38
+
39
+ /* Semantic status */
40
+ --color-destructive: #b83232;
41
+ --color-destructive-foreground: #fffdf8;
42
+ --color-success: #2d6a4f;
43
+ --color-warning: #d4a030;
44
+ --color-info: #4a6a8a;
45
+
46
+ /* Borders and focus */
47
+ --color-border: #cbc4ba;
48
+ --color-input: #cbc4ba;
49
+ --color-ring: #b83232;
50
+
51
+ /* Typography */
52
+ --font-sans: 'Chivo', 'Inter', system-ui, sans-serif;
53
+ --font-mono: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
54
+ --font-serif: 'Newsreader', Georgia, serif;
55
+ --font-heading: 'Chivo', '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: 6px;
76
+ }
77
+
78
+ :root {
79
+ --background: #f7f3ee;
80
+ --foreground: #2a2521;
81
+ --card: #edeae4;
82
+ --card-foreground: #2a2521;
83
+ --popover: #ffffff;
84
+ --popover-foreground: #2a2521;
85
+ --primary: #b83232;
86
+ --primary-foreground: #fffdf8;
87
+ --secondary: #ddd7ce;
88
+ --secondary-foreground: #2a2521;
89
+ --muted: #ddd7ce;
90
+ --muted-foreground: #706459;
91
+ --accent: #2d6a4f;
92
+ --accent-foreground: #fffdf8;
93
+ --destructive: #b83232;
94
+ --destructive-foreground: #fffdf8;
95
+ --success: #2d6a4f;
96
+ --warning: #d4a030;
97
+ --info: #4a6a8a;
98
+ --border: #cbc4ba;
99
+ --input: #cbc4ba;
100
+ --ring: #b83232;
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: 'Chivo', 'Inter', system-ui, sans-serif;
141
+ --font-mono: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
142
+ --font-serif: 'Newsreader', Georgia, serif;
143
+ --font-heading: 'Chivo', 'Inter', system-ui, sans-serif;
144
+
145
+ /* ── Named palette aliases ──────────────────────────────────────────────
146
+ * All 7 swatch colors available for direct template use.
147
+ */
148
+ --kbcv-parchment: #f7f3ee;
149
+ --kbcv-oatmeal: #edeae4;
150
+ --kbcv-kraft: #ddd7ce;
151
+ --kbcv-espresso: #2a2521;
152
+ --kbcv-walnut: #706459;
153
+ --kbcv-red: #b83232;
154
+ --kbcv-green: #2d6a4f;
155
+
156
+ /* ── Rig component token bridge ─────────────────────────────────────────
157
+ * Overrides shared/tokens.css defaults where the KBCV palette needs
158
+ * values that can't be derived directly from --color-* semantics.
159
+ */
160
+
161
+ /* Button — kraft for hover feedback */
162
+ --rig-button-hover-bg: #ddd7ce;
163
+
164
+ /* Scrollbar — espresso tint for warm analog feel */
165
+ --rig-scrollbar-thumb: rgba(42, 37, 33, 0.12);
166
+ --rig-scrollbar-thumb-hover: rgba(42, 37, 33, 0.25);
167
+ }
@@ -0,0 +1,170 @@
1
+ /* Hex — Lanternhouse Base Styles
2
+ * html/body defaults, scrollbar, focus, selection, transitions.
3
+ * Rich dark hotel typography with Bodoni serif headings and Lora body.
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;
18
+
19
+ color-scheme: dark;
20
+ -webkit-font-smoothing: antialiased;
21
+ -moz-osx-font-smoothing: grayscale;
22
+ }
23
+
24
+ body {
25
+ /* Boutique luxury: 18px body, light weight, relaxed leading, Lora serif */
26
+ font-size: 18px;
27
+ font-weight: 300;
28
+ line-height: 1.7;
29
+ font-family: 'Lora', var(--font-serif);
30
+ }
31
+
32
+ /* Heading defaults — Bodoni Moda serif for luxury feel */
33
+ h1 {
34
+ font-size: 64px;
35
+ font-weight: 700;
36
+ font-family: var(--font-serif);
37
+ color: var(--color-primary);
38
+ margin: 0;
39
+ padding: 0;
40
+ line-height: 1.1;
41
+ }
42
+
43
+ h2 {
44
+ font-size: 48px;
45
+ font-weight: 300;
46
+ font-family: var(--font-serif);
47
+ color: var(--color-primary);
48
+ margin: 0;
49
+ padding: 0;
50
+ line-height: 1.2;
51
+ }
52
+
53
+ /* Scrollbar */
54
+ ::-webkit-scrollbar {
55
+ width: 8px;
56
+ height: 8px;
57
+ }
58
+
59
+ ::-webkit-scrollbar-track {
60
+ background: transparent;
61
+ }
62
+
63
+ ::-webkit-scrollbar-thumb {
64
+ background: color-mix(in srgb, var(--color-foreground) 15%, transparent);
65
+ border-radius: 4px;
66
+ }
67
+
68
+ ::-webkit-scrollbar-thumb:hover {
69
+ background: color-mix(in srgb, var(--color-foreground) 25%, transparent);
70
+ }
71
+
72
+ /* Focus styles */
73
+ *:focus-visible {
74
+ outline: 2px solid var(--color-primary);
75
+ outline-offset: 2px;
76
+ }
77
+
78
+ /* Selection */
79
+ ::selection {
80
+ background: color-mix(in srgb, var(--color-primary) 40%, transparent);
81
+ color: var(--color-foreground);
82
+ }
83
+
84
+ /* Smooth scrolling */
85
+ html {
86
+ scroll-behavior: smooth;
87
+ }
88
+
89
+ /* Reduced motion — disable animations and transitions */
90
+ @media (prefers-reduced-motion: reduce) {
91
+ *,
92
+ *::before,
93
+ *::after {
94
+ animation-duration: 0.01ms !important;
95
+ animation-iteration-count: 1 !important;
96
+ transition-duration: 0.01ms !important;
97
+ scroll-behavior: auto !important;
98
+ }
99
+ }
100
+
101
+ /* Firefox scrollbar */
102
+ * {
103
+ scrollbar-width: thin;
104
+ scrollbar-color: color-mix(in srgb, var(--color-foreground) 15%, transparent) transparent;
105
+ }
106
+
107
+ /* ───────── Scroll-draw SVG utility ───────── */
108
+
109
+ @keyframes scroll-draw-in {
110
+ from {
111
+ stroke-dashoffset: 1;
112
+ }
113
+
114
+ to {
115
+ stroke-dashoffset: 0;
116
+ }
117
+ }
118
+
119
+ .scroll-draw path,
120
+ .scroll-draw line,
121
+ .scroll-draw polyline,
122
+ .scroll-draw polygon,
123
+ .scroll-draw circle,
124
+ .scroll-draw ellipse {
125
+ stroke-dasharray: 1;
126
+ stroke-dashoffset: 1;
127
+ animation: scroll-draw-in linear both;
128
+ animation-timeline: view();
129
+ animation-range: entry 20% cover 50%;
130
+ }
131
+
132
+ @media (prefers-reduced-motion: reduce) {
133
+ .scroll-draw path,
134
+ .scroll-draw line,
135
+ .scroll-draw polyline,
136
+ .scroll-draw polygon,
137
+ .scroll-draw circle,
138
+ .scroll-draw ellipse {
139
+ animation: none;
140
+ stroke-dashoffset: 0;
141
+ }
142
+ }
143
+
144
+ /* ───────── Scroll-reveal utility ───────── */
145
+
146
+ @keyframes scroll-fade-in {
147
+ from {
148
+ opacity: 0;
149
+ transform: translateY(20px);
150
+ }
151
+
152
+ to {
153
+ opacity: 1;
154
+ transform: translateY(0);
155
+ }
156
+ }
157
+
158
+ .scroll-reveal {
159
+ animation: scroll-fade-in linear both;
160
+ animation-timeline: view();
161
+ animation-range: entry 10% cover 30%;
162
+ }
163
+
164
+ @media (prefers-reduced-motion: reduce) {
165
+ .scroll-reveal {
166
+ animation: none;
167
+ opacity: 1;
168
+ transform: none;
169
+ }
170
+ }
@@ -0,0 +1,27 @@
1
+ /* Hex — Lanternhouse 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';