@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,114 @@
1
+ /* Hex — Aldricpace Base Styles
2
+ * html/body defaults, scrollbar, focus, selection, transitions.
3
+ * Cold light mode law firm — EB Garamond serif headings, Inter body.
4
+ */
5
+
6
+ @reference 'tailwindcss';
7
+ @reference './tokens.css';
8
+
9
+ html {
10
+ font-size: 16px;
11
+ }
12
+
13
+ html,
14
+ body {
15
+ @apply bg-background text-foreground font-sans;
16
+
17
+ color-scheme: light;
18
+ -webkit-font-smoothing: antialiased;
19
+ -moz-osx-font-smoothing: grayscale;
20
+ }
21
+
22
+ body {
23
+ font-size: 16px;
24
+ font-weight: 400;
25
+ line-height: 1.65;
26
+ }
27
+
28
+ h1 {
29
+ font-size: 48px;
30
+ font-weight: 400;
31
+ font-family: var(--font-serif);
32
+ color: var(--color-primary);
33
+ margin: 0;
34
+ padding: 0;
35
+ line-height: 1.15;
36
+ }
37
+
38
+ h2 {
39
+ font-size: 36px;
40
+ font-weight: 400;
41
+ font-family: var(--font-serif);
42
+ color: var(--color-primary);
43
+ margin: 0;
44
+ padding: 0;
45
+ line-height: 1.2;
46
+ }
47
+
48
+ ::-webkit-scrollbar {
49
+ width: 8px;
50
+ height: 8px;
51
+ }
52
+ ::-webkit-scrollbar-track {
53
+ background: transparent;
54
+ }
55
+ ::-webkit-scrollbar-thumb {
56
+ background: color-mix(in srgb, var(--color-foreground) 12%, transparent);
57
+ border-radius: 4px;
58
+ }
59
+ ::-webkit-scrollbar-thumb:hover {
60
+ background: color-mix(in srgb, var(--color-foreground) 25%, transparent);
61
+ }
62
+
63
+ *:focus-visible {
64
+ outline: 2px solid var(--color-primary);
65
+ outline-offset: 2px;
66
+ }
67
+
68
+ ::selection {
69
+ background: color-mix(in srgb, var(--color-primary) 30%, transparent);
70
+ color: var(--color-foreground);
71
+ }
72
+
73
+ html {
74
+ scroll-behavior: smooth;
75
+ }
76
+
77
+ @media (prefers-reduced-motion: reduce) {
78
+ *,
79
+ *::before,
80
+ *::after {
81
+ animation-duration: 0.01ms !important;
82
+ animation-iteration-count: 1 !important;
83
+ transition-duration: 0.01ms !important;
84
+ scroll-behavior: auto !important;
85
+ }
86
+ }
87
+
88
+ * {
89
+ scrollbar-width: thin;
90
+ scrollbar-color: color-mix(in srgb, var(--color-foreground) 12%, transparent) transparent;
91
+ }
92
+
93
+ @keyframes scroll-fade-in {
94
+ from {
95
+ opacity: 0;
96
+ transform: translateY(20px);
97
+ }
98
+ to {
99
+ opacity: 1;
100
+ transform: translateY(0);
101
+ }
102
+ }
103
+ .scroll-reveal {
104
+ animation: scroll-fade-in linear both;
105
+ animation-timeline: view();
106
+ animation-range: entry 10% cover 30%;
107
+ }
108
+ @media (prefers-reduced-motion: reduce) {
109
+ .scroll-reveal {
110
+ animation: none;
111
+ opacity: 1;
112
+ transform: none;
113
+ }
114
+ }
@@ -0,0 +1,22 @@
1
+ /* Hex — Aldricpace 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 — Aldricpace Domains */
2
+ @reference 'tailwindcss';
3
+ @reference './tokens.css';
4
+
5
+ [data-domain='legal'] {
6
+ --domain-accent: #2b4c7e;
7
+ }
8
+ [data-domain='life'] {
9
+ --domain-accent: #8b6f4e;
10
+ }
11
+ [data-domain='software'] {
12
+ --domain-accent: #3b7a57;
13
+ }
14
+ [data-domain='business'] {
15
+ --domain-accent: #2b4c7e;
16
+ }
17
+ [data-domain='history'] {
18
+ --domain-accent: #9e3b3b;
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,169 @@
1
+ /* Hex — Aldricpace Design Tokens
2
+ * Conservative law firm. Cold light mode with navy and brass accents.
3
+ * Institutional restraint — suited for professional services, legal, finance.
4
+ *
5
+ * Full palette (8 swatch colors):
6
+ * #FAFBFC cold white — background
7
+ * #F2F4F7 fog — card
8
+ * #E6E9EF slate wash — secondary, muted
9
+ * #1B2033 ink — foreground text
10
+ * #555E73 graphite — muted foreground
11
+ * #2B4C7E navy — primary, ring
12
+ * #8B6F4E brass — accent
13
+ * #9E3B3B merlot — destructive
14
+ *
15
+ * @theme feeds Tailwind v4 utility generation (bg-background, text-foreground, etc.)
16
+ * :root provides standalone CSS custom property access for non-Tailwind consumers.
17
+ */
18
+
19
+ @theme {
20
+ /* Surface colors */
21
+ --color-background: #fafbfc;
22
+ --color-foreground: #1b2033;
23
+ --color-card: #f2f4f7;
24
+ --color-card-foreground: #1b2033;
25
+ --color-popover: #ffffff;
26
+ --color-popover-foreground: #1b2033;
27
+
28
+ /* Brand */
29
+ --color-primary: #2b4c7e;
30
+ --color-primary-foreground: #fafbfc;
31
+
32
+ /* Soft accents */
33
+ --color-secondary: #e6e9ef;
34
+ --color-secondary-foreground: #1b2033;
35
+ --color-muted: #e6e9ef;
36
+ --color-muted-foreground: #555e73;
37
+ --color-accent: #8b6f4e;
38
+ --color-accent-foreground: #fafbfc;
39
+
40
+ /* Semantic status */
41
+ --color-destructive: #9e3b3b;
42
+ --color-destructive-foreground: #fafbfc;
43
+ --color-success: #3b7a57;
44
+ --color-warning: #b8952a;
45
+ --color-info: #2b4c7e;
46
+
47
+ /* Borders and focus */
48
+ --color-border: #d1d5de;
49
+ --color-input: #d1d5de;
50
+ --color-ring: #2b4c7e;
51
+
52
+ /* Typography */
53
+ --font-sans: 'Inter', system-ui, sans-serif;
54
+ --font-mono: 'Inter', 'SF Mono', ui-monospace, monospace;
55
+ --font-serif: 'EB Garamond', Georgia, serif;
56
+ --font-heading: 'EB Garamond', Georgia, serif;
57
+
58
+ /* Radius */
59
+ /* Typography — IDE-density type scale */
60
+ --font-size-2xs: 0.625rem;
61
+ --font-size-2xs--line-height: 1.25;
62
+ --font-size-xs: 0.75rem;
63
+ --font-size-xs--line-height: 1.5;
64
+ --font-size-sm: 0.8125rem;
65
+ --font-size-sm--line-height: 1.5;
66
+ --font-size-base: 0.875rem;
67
+ --font-size-base--line-height: 1.5;
68
+ --font-size-lg: 1.125rem;
69
+ --font-size-lg--line-height: 1.25;
70
+ --font-size-xl: 1.25rem;
71
+ --font-size-xl--line-height: 1.25;
72
+
73
+ /* Display font family */
74
+ --font-display: var(--font-sans);
75
+
76
+ --radius: 3px;
77
+ }
78
+
79
+ :root {
80
+ --background: #fafbfc;
81
+ --foreground: #1b2033;
82
+ --card: #f2f4f7;
83
+ --card-foreground: #1b2033;
84
+ --popover: #ffffff;
85
+ --popover-foreground: #1b2033;
86
+ --primary: #2b4c7e;
87
+ --primary-foreground: #fafbfc;
88
+ --secondary: #e6e9ef;
89
+ --secondary-foreground: #1b2033;
90
+ --muted: #e6e9ef;
91
+ --muted-foreground: #555e73;
92
+ --accent: #8b6f4e;
93
+ --accent-foreground: #fafbfc;
94
+ --destructive: #9e3b3b;
95
+ --destructive-foreground: #fafbfc;
96
+ --success: #3b7a57;
97
+ --warning: #b8952a;
98
+ --info: #2b4c7e;
99
+ --border: #d1d5de;
100
+ --input: #d1d5de;
101
+ --ring: #2b4c7e;
102
+ /* Typography — IDE-density type scale */
103
+ --font-size-2xs: 0.625rem;
104
+ --font-size-2xs--line-height: 1.25;
105
+ --font-size-xs: 0.75rem;
106
+ --font-size-xs--line-height: 1.5;
107
+ --font-size-sm: 0.8125rem;
108
+ --font-size-sm--line-height: 1.5;
109
+ --font-size-base: 0.875rem;
110
+ --font-size-base--line-height: 1.5;
111
+ --font-size-lg: 1.125rem;
112
+ --font-size-lg--line-height: 1.25;
113
+ --font-size-xl: 1.25rem;
114
+ --font-size-xl--line-height: 1.25;
115
+
116
+ /* Display font family */
117
+ --font-display: var(--font-sans);
118
+
119
+ --radius: 3px;
120
+
121
+ /* Typography — IDE-density type scale (shorthand aliases) */
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-display: var(--font-sans);
141
+ --font-sans: 'Inter', system-ui, sans-serif;
142
+ --font-mono: 'Inter', 'SF Mono', ui-monospace, monospace;
143
+ --font-serif: 'EB Garamond', Georgia, serif;
144
+ --font-heading: 'EB Garamond', Georgia, serif;
145
+
146
+ /* ── Named palette aliases ──────────────────────────────────────────────
147
+ * All 8 swatch colors available for direct template use.
148
+ */
149
+ --ap-cold-white: #fafbfc;
150
+ --ap-fog: #f2f4f7;
151
+ --ap-slate: #e6e9ef;
152
+ --ap-ink: #1b2033;
153
+ --ap-graphite: #555e73;
154
+ --ap-navy: #2b4c7e;
155
+ --ap-brass: #8b6f4e;
156
+ --ap-merlot: #9e3b3b;
157
+
158
+ /* ── Rig component token bridge ─────────────────────────────────────────
159
+ * Overrides shared/tokens.css defaults where the Aldricpace palette needs
160
+ * values that can't be derived directly from --color-* semantics.
161
+ */
162
+
163
+ /* Button — slate wash for hover feedback */
164
+ --rig-button-hover-bg: #e6e9ef;
165
+
166
+ /* Scrollbar — ink tint for light mode */
167
+ --rig-scrollbar-thumb: rgba(27, 32, 51, 0.12);
168
+ --rig-scrollbar-thumb-hover: rgba(27, 32, 51, 0.25);
169
+ }
@@ -0,0 +1,192 @@
1
+ /* Hex — Andrew Passanisi Base Styles
2
+ * html/body defaults, element resets, scrollbar, focus, selection,
3
+ * transitions, and utility classes from the original site.
4
+ */
5
+
6
+ @reference 'tailwindcss';
7
+ @reference './tokens.css';
8
+
9
+ /* ───────── Reset ───────── */
10
+
11
+ *,
12
+ *::before,
13
+ *::after {
14
+ box-sizing: border-box;
15
+ margin: 0;
16
+ }
17
+
18
+ /* ───────── Root ───────── */
19
+
20
+ html,
21
+ body,
22
+ #app,
23
+ .my-app {
24
+ @apply w-full bg-blue-darkest font-body;
25
+ font-size: 18px;
26
+ color-scheme: dark;
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
+ }
30
+
31
+ @media (min-width: 768px) {
32
+ html,
33
+ body,
34
+ #app,
35
+ .my-app {
36
+ font-size: 16px;
37
+ }
38
+ }
39
+
40
+ /* ───────── Typography resets ───────── */
41
+
42
+ p,
43
+ span,
44
+ b,
45
+ a,
46
+ li,
47
+ h1,
48
+ h2 {
49
+ @apply text-blue-lighter;
50
+ }
51
+
52
+ p,
53
+ span,
54
+ div,
55
+ a {
56
+ @apply font-body font-light leading-6;
57
+ }
58
+
59
+ h2 {
60
+ @apply mb-8 mt-4 font-bold text-blue-lightest;
61
+ }
62
+
63
+ /* ───────── Links ───────── */
64
+
65
+ a {
66
+ @apply transition-all;
67
+
68
+ &:hover {
69
+ @apply text-accent transition-all;
70
+ }
71
+ }
72
+
73
+ /* ───────── Buttons ───────── */
74
+
75
+ button {
76
+ @apply max-w-fit rounded border border-accent px-4 py-2 font-accent text-sm text-green transition-all;
77
+
78
+ &:hover {
79
+ @apply bg-green text-blue-darkest drop-shadow-green;
80
+
81
+ > * {
82
+ @apply text-blue-darkest;
83
+ }
84
+ }
85
+ }
86
+
87
+ /* ───────── List markers ───────── */
88
+
89
+ li {
90
+ &::before {
91
+ @apply mb-[0.1rem] mr-2 inline-block h-1 w-1 bg-accent;
92
+ content: '';
93
+ }
94
+ }
95
+
96
+ /* ───────── Utility classes ───────── */
97
+
98
+ .hero-heading {
99
+ font-size: clamp(36px, 6vw, 72px);
100
+ }
101
+
102
+ .section-heading {
103
+ font-size: clamp(22px, 5vw, 30px);
104
+ @apply relative overflow-hidden;
105
+
106
+ &::after {
107
+ @apply absolute top-[13px] ml-4 h-px w-1/4 bg-blue-lighter;
108
+ content: '';
109
+ }
110
+ }
111
+
112
+ /* ───────── Scrollbar ───────── */
113
+
114
+ ::-webkit-scrollbar {
115
+ width: 8px;
116
+ height: 8px;
117
+ }
118
+
119
+ ::-webkit-scrollbar-track {
120
+ background: transparent;
121
+ }
122
+
123
+ ::-webkit-scrollbar-thumb {
124
+ background: rgba(160, 178, 255, 0.2);
125
+ border-radius: 4px;
126
+ }
127
+
128
+ ::-webkit-scrollbar-thumb:hover {
129
+ background: rgba(160, 178, 255, 0.4);
130
+ }
131
+
132
+ * {
133
+ scrollbar-width: thin;
134
+ scrollbar-color: rgba(160, 178, 255, 0.2) transparent;
135
+ }
136
+
137
+ /* ───────── Focus ───────── */
138
+
139
+ *:focus-visible {
140
+ outline: 1px solid var(--color-ring);
141
+ outline-offset: -1px;
142
+ }
143
+
144
+ /* ───────── Selection ───────── */
145
+
146
+ ::selection {
147
+ background: rgba(45, 79, 224, 0.4);
148
+ color: var(--color-blue-lightest);
149
+ }
150
+
151
+ /* ───────── Transitions ───────── */
152
+
153
+ .job-slide-fade-enter-active {
154
+ transition: all 0.3s ease-out;
155
+ }
156
+
157
+ .job-slide-fade-leave-active {
158
+ transition: all 0s cubic-bezier(1, 0.5, 0.8, 1);
159
+ }
160
+
161
+ .job-slide-fade-enter-from,
162
+ .job-slide-fade-leave-to {
163
+ transform: translateX(20px);
164
+ opacity: 0;
165
+ }
166
+
167
+ .header-slide-fade-enter-active {
168
+ transition: all 0.2s ease-out;
169
+ }
170
+
171
+ .header-slide-fade-leave-active {
172
+ transition: all 0.2s ease-out;
173
+ }
174
+
175
+ .header-slide-fade-enter-from,
176
+ .header-slide-fade-leave-to {
177
+ transform: translateY(-40px);
178
+ opacity: 0;
179
+ }
180
+
181
+ /* ───────── Reduced motion ───────── */
182
+
183
+ @media (prefers-reduced-motion: reduce) {
184
+ *,
185
+ *::before,
186
+ *::after {
187
+ animation-duration: 0.01ms !important;
188
+ animation-iteration-count: 1 !important;
189
+ transition-duration: 0.01ms !important;
190
+ scroll-behavior: auto !important;
191
+ }
192
+ }
@@ -0,0 +1,11 @@
1
+ /* Hex — Andrew Passanisi Full Bundle
2
+ * Import this single file to get everything:
3
+ * Tailwind v4 + shared Rig tokens + base styles + theme tokens.
4
+ *
5
+ * Usage: import '@amulet-laboratories/hex/andrewpassanisi/source'
6
+ */
7
+
8
+ @import 'tailwindcss';
9
+ @import '../../shared/tokens.css';
10
+ @import './base.css';
11
+ @import './tokens.css';
@@ -0,0 +1,136 @@
1
+ /* Hex — Andrew Passanisi Design Tokens
2
+ * Dark portfolio theme — deep navy (#060d2b) & neon green (#AEF66D).
3
+ * Preserves the original site's exact Tailwind utility names so all
4
+ * template classes (text-blue-lighter, bg-blue-darkest, etc.) resolve
5
+ * without any component changes.
6
+ */
7
+
8
+ @theme {
9
+ /* ── Reset namespaces ── */
10
+ --color-*: initial;
11
+ --font-size-*: initial;
12
+ --font-*: initial;
13
+ --radius-*: initial;
14
+ --breakpoint-*: initial;
15
+ --drop-shadow-*: initial;
16
+
17
+ /* ── Site palette — maps to Tailwind utilities ── */
18
+ --color-blue-lightest: #cad3f7;
19
+ --color-blue-lighter: #a0b2ff;
20
+ --color-blue-light: #2d4fe0;
21
+ --color-blue: #132881;
22
+ --color-blue-dark: #0d1b56;
23
+ --color-blue-darker: #091441;
24
+ --color-blue-darkest: #060d2b;
25
+ --color-green: #aef66d;
26
+ --color-yellow: #dff081;
27
+ --color-accent: #aef66d;
28
+ --color-white: #ffffff;
29
+ --color-black: #000000;
30
+ --color-transparent: rgb(0 0 0 / 0);
31
+
32
+ /* ── Hex semantic contract ── */
33
+ --color-background: #060d2b;
34
+ --color-foreground: #a0b2ff;
35
+ --color-card: #091441;
36
+ --color-card-foreground: #a0b2ff;
37
+ --color-popover: #0d1b56;
38
+ --color-popover-foreground: #cad3f7;
39
+ --color-primary: #aef66d;
40
+ --color-primary-foreground: #060d2b;
41
+ --color-secondary: #091441;
42
+ --color-secondary-foreground: #a0b2ff;
43
+ --color-muted: #0d1b56;
44
+ --color-muted-foreground: #a0b2ff;
45
+ --color-accent-foreground: #060d2b;
46
+ --color-destructive: #f85149;
47
+ --color-destructive-foreground: #cad3f7;
48
+ --color-success: #aef66d;
49
+ --color-warning: #dff081;
50
+ --color-info: #2d4fe0;
51
+ --color-border: #132881;
52
+ --color-input: #0d1b56;
53
+ --color-ring: #aef66d;
54
+
55
+ /* ── Typography ── */
56
+ --font-body: 'Open Sans', sans-serif;
57
+ --font-accent: 'Fira Code', monospace;
58
+
59
+ /* ── Type scale ── */
60
+ --font-size-xxs: 0.625rem;
61
+ --font-size-xxs--line-height: 1.25;
62
+ --font-size-xs: 0.75rem;
63
+ --font-size-xs--line-height: 1.5;
64
+ --font-size-sm: 0.875rem;
65
+ --font-size-sm--line-height: 1.5;
66
+ --font-size-base: 1rem;
67
+ --font-size-base--line-height: 1.5;
68
+ --font-size-md: 1.125rem;
69
+ --font-size-md--line-height: 1.5;
70
+ --font-size-lg: 1.25rem;
71
+ --font-size-lg--line-height: 1.4;
72
+ --font-size-xl: 1.5625rem;
73
+ --font-size-xl--line-height: 1.3;
74
+ --font-size-2xl: 1.75rem;
75
+ --font-size-2xl--line-height: 1.25;
76
+ --font-size-3xl: 2rem;
77
+ --font-size-3xl--line-height: 1.25;
78
+ --font-size-4xl: 2.375rem;
79
+ --font-size-4xl--line-height: 1.2;
80
+
81
+ /* ── Border radius ── */
82
+ --radius-none: 0;
83
+ --radius-xs: 0.125rem;
84
+ --radius-sm: 0.375rem;
85
+ --radius: 0.25rem;
86
+ --radius-lg: 0.5rem;
87
+ --radius-xl: 1rem;
88
+ --radius-full: 9999px;
89
+
90
+ /* ── Breakpoints ── */
91
+ --breakpoint-xs: 360px;
92
+ --breakpoint-sm: 768px;
93
+ --breakpoint-md: 1024px;
94
+ --breakpoint-lg: 1366px;
95
+ --breakpoint-xl: 1920px;
96
+
97
+ /* ── Drop shadows ── */
98
+ --drop-shadow-green: 0 0 4px #aef66da1;
99
+ --drop-shadow-blue: 0 0 4px #cad3f7aa;
100
+ }
101
+
102
+ :root {
103
+ /* ── Shorthand aliases ── */
104
+ --background: #060d2b;
105
+ --foreground: #a0b2ff;
106
+ --primary: #aef66d;
107
+ --primary-foreground: #060d2b;
108
+ --border: #132881;
109
+ --input: #0d1b56;
110
+ --ring: #aef66d;
111
+ --radius: 0.25rem;
112
+
113
+ /* ── Rig semantic token bridge ── */
114
+ --rig-button-bg: var(--color-accent);
115
+ --rig-button-fg: var(--color-blue-darkest);
116
+ --rig-button-hover-bg: var(--color-green);
117
+ --rig-button-border: var(--color-accent);
118
+ --rig-button-secondary-bg: transparent;
119
+ --rig-button-secondary-fg: var(--color-accent);
120
+ --rig-button-secondary-hover-bg: var(--color-blue-darker);
121
+ --rig-input-bg: var(--color-blue-darker);
122
+ --rig-input-border: var(--color-blue);
123
+ --rig-input-fg: var(--color-blue-lightest);
124
+ --rig-input-placeholder: var(--color-blue-lighter);
125
+ --rig-badge-bg: var(--color-accent);
126
+ --rig-badge-fg: var(--color-blue-darkest);
127
+ --rig-sidebar-bg: var(--color-blue-darker);
128
+ --rig-sidebar-border: var(--color-blue);
129
+ --rig-sidebar-fg: var(--color-blue-lighter);
130
+ --rig-scrollbar-thumb: rgba(160, 178, 255, 0.15);
131
+ --rig-scrollbar-thumb-hover: rgba(160, 178, 255, 0.28);
132
+ --rig-list-hover-bg: rgba(174, 246, 109, 0.06);
133
+ --rig-list-active-bg: var(--color-accent);
134
+ --rig-list-active-fg: var(--color-blue-darkest);
135
+ --rig-description-fg: var(--color-blue-lighter);
136
+ }