@gemboss/website-ui 0.0.0-stage → 0.2.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 (44) hide show
  1. package/AGENTS.md +191 -0
  2. package/CHANGELOG.md +47 -0
  3. package/README.md +118 -2
  4. package/bin/gemboss-website.mjs +78 -0
  5. package/bin/lib/check.mjs +695 -0
  6. package/bin/lib/gap.mjs +189 -0
  7. package/bin/lib/init.mjs +99 -0
  8. package/bin/lib/upgrade.mjs +155 -0
  9. package/bin/lib/util.mjs +147 -0
  10. package/css/base.css +107 -0
  11. package/css/components.css +324 -0
  12. package/css/footer.css +53 -0
  13. package/css/header.css +231 -0
  14. package/css/layout.css +59 -0
  15. package/css/prose.css +119 -0
  16. package/css/sections.css +173 -0
  17. package/css/tokens.css +200 -0
  18. package/demo/index.html +703 -0
  19. package/demo/theme-example.html +133 -0
  20. package/docs/components.md +407 -0
  21. package/docs/markup-contract.md +148 -0
  22. package/docs/philosophy.md +69 -0
  23. package/docs/theming.md +96 -0
  24. package/js/website.js +186 -0
  25. package/package.json +50 -4
  26. package/skill/SKILL.md +49 -0
  27. package/system.json +122 -0
  28. package/templates/footer.html +40 -0
  29. package/templates/header.html +60 -0
  30. package/templates/page.html +134 -0
  31. package/templates/sections/cta.html +15 -0
  32. package/templates/sections/faq.html +24 -0
  33. package/templates/sections/features.html +32 -0
  34. package/templates/sections/hero.html +27 -0
  35. package/templates/sections/logos.html +15 -0
  36. package/templates/sections/pricing.html +51 -0
  37. package/templates/sections/prose.html +36 -0
  38. package/templates/sections/quote.html +13 -0
  39. package/templates/sections/showcase.html +25 -0
  40. package/templates/sections/split.html +27 -0
  41. package/templates/sections/stats.html +26 -0
  42. package/templates/sections/steps.html +17 -0
  43. package/website.css +1274 -0
  44. package/website.min.css +1 -0
package/css/tokens.css ADDED
@@ -0,0 +1,200 @@
1
+ /* @gemboss/website-ui tokens. GENERATED from system.json by scripts/build.mjs: do not edit by hand. */
2
+ :root {
3
+ color-scheme: light;
4
+ --gw-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
5
+ --gw-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
6
+ --gw-text-11: 11px;
7
+ --gw-text-12: 12px;
8
+ --gw-text-13: 13px;
9
+ --gw-text-14: 14px;
10
+ --gw-text-16: 16px;
11
+ --gw-text-18: 18px;
12
+ --gw-text-20: 20px;
13
+ --gw-text-22: 22px;
14
+ --gw-text-24: 24px;
15
+ --gw-text-30: 30px;
16
+ --gw-display-h1: clamp(40px, 4.6vw, 68px);
17
+ --gw-display-h2: clamp(32px, 3.4vw, 52px);
18
+ --gw-display-weight: 600;
19
+ --gw-display-tracking: -0.03em;
20
+ --gw-heading-weight: 650;
21
+ --gw-heading-tracking: -0.022em;
22
+ --gw-heading-leading: 1.08;
23
+ --gw-body-size: 18px;
24
+ --gw-body-leading: 1.6;
25
+ --gw-space-0: 0;
26
+ --gw-space-2: 2px;
27
+ --gw-space-4: 4px;
28
+ --gw-space-6: 6px;
29
+ --gw-space-8: 8px;
30
+ --gw-space-12: 12px;
31
+ --gw-space-16: 16px;
32
+ --gw-space-20: 20px;
33
+ --gw-space-24: 24px;
34
+ --gw-space-32: 32px;
35
+ --gw-space-40: 40px;
36
+ --gw-space-48: 48px;
37
+ --gw-space-64: 64px;
38
+ --gw-space-80: 80px;
39
+ --gw-space-96: 96px;
40
+ --gw-space-120: 120px;
41
+ --gw-space-section: clamp(56px, 38px + 5vw, 110px);
42
+ --gw-radius-0: 0;
43
+ --gw-radius-4: 4px;
44
+ --gw-radius-6: 6px;
45
+ --gw-radius-8: 8px;
46
+ --gw-radius-12: 12px;
47
+ --gw-radius-16: 16px;
48
+ --gw-radius-20: 20px;
49
+ --gw-radius-999: 999px;
50
+ --gw-radius-action: 8px;
51
+ --gw-radius-chip: 999px;
52
+ --gw-radius-card: 12px;
53
+ --gw-radius-panel: 16px;
54
+ --gw-shadow: 0 1px 2px rgba(31,30,29,.04), 0 2px 6px rgba(31,30,29,.06);
55
+ --gw-shadow-sm: 0 1px 2px rgba(31,30,29,.04);
56
+ --gw-shadow-raised: 0 4px 16px rgba(31,30,29,.10);
57
+ --gw-wrap: 1120px;
58
+ --gw-wrap-narrow: 780px;
59
+ --gw-gutter: 22px;
60
+ --gw-header-height: 64px;
61
+ --gw-button-height: 40px;
62
+ --gw-tap-min: 44px;
63
+ --gw-ease: cubic-bezier(.22,1,.36,1);
64
+ --gw-reveal-ms: 700ms;
65
+ --gw-spin-ms: 700ms;
66
+ --gw-wash-pink: #ff6f5e;
67
+ --gw-wash-violet: #7c8af7;
68
+ --gw-wash-sky: #43b0ff;
69
+ --gw-wash-mint: #1fcf9f;
70
+ /* accent primitives: the only colours a brand overrides (docs/theming.md) */
71
+ --gw-accent-light: #5661f5;
72
+ --gw-accent-strong-light: #3a44de;
73
+ --gw-accent-soft-light: #eef0fe;
74
+ --gw-on-accent-light: #ffffff;
75
+ --gw-accent-dark: #7c84ff;
76
+ --gw-accent-strong-dark: #a3a9ff;
77
+ --gw-accent-soft-dark: #1f2140;
78
+ --gw-on-accent-dark: #0d0d12;
79
+ --gw-bg: #ffffff;
80
+ --gw-bg-soft: #f2f3f5;
81
+ --gw-surface: #ffffff;
82
+ --gw-ink: #1b1c1e;
83
+ --gw-ink-2: #3b3d42;
84
+ --gw-muted: #686b71;
85
+ --gw-line: #e5e7ea;
86
+ --gw-line-strong: #d5d8dd;
87
+ --gw-action: #1b1c1e;
88
+ --gw-action-hover: #000000;
89
+ --gw-on-action: #ffffff;
90
+ --gw-accent: var(--gw-accent-light);
91
+ --gw-accent-strong: var(--gw-accent-strong-light);
92
+ --gw-accent-soft: var(--gw-accent-soft-light);
93
+ --gw-on-accent: var(--gw-on-accent-light);
94
+ --gw-success: #007f5f;
95
+ --gw-success-soft: #e3f1df;
96
+ --gw-warning: #9a6700;
97
+ --gw-night: #0c0e14;
98
+ --gw-night-2: #141722;
99
+ --gw-on-night: #e3e4e8;
100
+ --gw-on-night-muted: #9aa3ff;
101
+ }
102
+ @media (prefers-color-scheme: dark) {
103
+ :root:not([data-theme="light"]) {
104
+ color-scheme: dark;
105
+ --gw-bg: #0d0d12;
106
+ --gw-bg-soft: #121318;
107
+ --gw-surface: #16171d;
108
+ --gw-ink: #e3e4e8;
109
+ --gw-ink-2: #c4c6cc;
110
+ --gw-muted: #9a9ca6;
111
+ --gw-line: #2a2b33;
112
+ --gw-line-strong: #383944;
113
+ --gw-action: #f2f3f5;
114
+ --gw-action-hover: #ffffff;
115
+ --gw-on-action: #0d0d12;
116
+ --gw-accent: var(--gw-accent-dark);
117
+ --gw-accent-strong: var(--gw-accent-strong-dark);
118
+ --gw-accent-soft: var(--gw-accent-soft-dark);
119
+ --gw-on-accent: var(--gw-on-accent-dark);
120
+ --gw-success: #34c38f;
121
+ --gw-success-soft: #132a22;
122
+ --gw-warning: #e0b341;
123
+ --gw-night: #0a0b10;
124
+ --gw-night-2: #12141c;
125
+ --gw-on-night: #e3e4e8;
126
+ --gw-on-night-muted: #9aa3ff;
127
+ }
128
+ }
129
+ :root[data-theme="dark"] {
130
+ color-scheme: dark;
131
+ --gw-bg: #0d0d12;
132
+ --gw-bg-soft: #121318;
133
+ --gw-surface: #16171d;
134
+ --gw-ink: #e3e4e8;
135
+ --gw-ink-2: #c4c6cc;
136
+ --gw-muted: #9a9ca6;
137
+ --gw-line: #2a2b33;
138
+ --gw-line-strong: #383944;
139
+ --gw-action: #f2f3f5;
140
+ --gw-action-hover: #ffffff;
141
+ --gw-on-action: #0d0d12;
142
+ --gw-accent: var(--gw-accent-dark);
143
+ --gw-accent-strong: var(--gw-accent-strong-dark);
144
+ --gw-accent-soft: var(--gw-accent-soft-dark);
145
+ --gw-on-accent: var(--gw-on-accent-dark);
146
+ --gw-success: #34c38f;
147
+ --gw-success-soft: #132a22;
148
+ --gw-warning: #e0b341;
149
+ --gw-night: #0a0b10;
150
+ --gw-night-2: #12141c;
151
+ --gw-on-night: #e3e4e8;
152
+ --gw-on-night-muted: #9aa3ff;
153
+ }
154
+ :root[data-theme="light"] {
155
+ color-scheme: light;
156
+ --gw-bg: #ffffff;
157
+ --gw-bg-soft: #f2f3f5;
158
+ --gw-surface: #ffffff;
159
+ --gw-ink: #1b1c1e;
160
+ --gw-ink-2: #3b3d42;
161
+ --gw-muted: #686b71;
162
+ --gw-line: #e5e7ea;
163
+ --gw-line-strong: #d5d8dd;
164
+ --gw-action: #1b1c1e;
165
+ --gw-action-hover: #000000;
166
+ --gw-on-action: #ffffff;
167
+ --gw-accent: var(--gw-accent-light);
168
+ --gw-accent-strong: var(--gw-accent-strong-light);
169
+ --gw-accent-soft: var(--gw-accent-soft-light);
170
+ --gw-on-accent: var(--gw-on-accent-light);
171
+ --gw-success: #007f5f;
172
+ --gw-success-soft: #e3f1df;
173
+ --gw-warning: #9a6700;
174
+ --gw-night: #0c0e14;
175
+ --gw-night-2: #141722;
176
+ --gw-on-night: #e3e4e8;
177
+ --gw-on-night-muted: #9aa3ff;
178
+ }
179
+ /* night band: the dark palette inside, on the night ground, in both themes */
180
+ .gw-band--night, .gw-showcase {
181
+ color-scheme: dark;
182
+ --gw-bg: var(--gw-night);
183
+ --gw-bg-soft: var(--gw-night-2);
184
+ --gw-surface: var(--gw-night-2);
185
+ --gw-ink: #e3e4e8;
186
+ --gw-ink-2: #c4c6cc;
187
+ --gw-muted: #9a9ca6;
188
+ --gw-line: #2a2b33;
189
+ --gw-line-strong: #383944;
190
+ --gw-action: #f2f3f5;
191
+ --gw-action-hover: #ffffff;
192
+ --gw-on-action: #0d0d12;
193
+ --gw-accent: var(--gw-accent-dark);
194
+ --gw-accent-strong: var(--gw-accent-strong-dark);
195
+ --gw-accent-soft: var(--gw-accent-soft-dark);
196
+ --gw-on-accent: var(--gw-on-accent-dark);
197
+ --gw-success: #34c38f;
198
+ --gw-success-soft: #132a22;
199
+ --gw-warning: #e0b341;
200
+ }