@commonpub/layer 0.3.38 → 0.4.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.
@@ -0,0 +1,353 @@
1
+ @layer commonpub {
2
+ /* ===========================================
3
+ CommonPub Agora Theme — Dark (Grove)
4
+ Warm dark surfaces with green-tinted blacks,
5
+ commons green accent, serif display font,
6
+ paper texture, snappy easing.
7
+
8
+ Complete design system override — mirrors
9
+ all agora.css component overrides.
10
+ =========================================== */
11
+
12
+ [data-theme="agora-dark"] {
13
+ /* === SURFACES (grove-tinted warm darks) === */
14
+ --bg: #0d1a12;
15
+ --surface: #141f17;
16
+ --surface2: #1a261e;
17
+ --surface3: #213028;
18
+
19
+ --color-surface: var(--surface);
20
+ --color-surface-alt: var(--surface2);
21
+ --color-surface-raised: var(--surface2);
22
+ --color-surface-overlay: rgba(0, 0, 0, 0.7);
23
+ --color-surface-overlay-light: rgba(0, 0, 0, 0.6);
24
+ --color-surface-scrim: rgba(13, 26, 18, 0.85);
25
+ --color-surface-hover: var(--surface3);
26
+ --color-bg-subtle: var(--bg);
27
+
28
+ /* === TEXT (warm light on dark) === */
29
+ --text: #e8e8e2;
30
+ --text-dim: #b0b0a6;
31
+ --text-faint: #7a7a72;
32
+
33
+ --color-text: var(--text);
34
+ --color-text-secondary: var(--text-dim);
35
+ --color-text-muted: var(--text-faint);
36
+ --color-text-inverse: #0d1a12;
37
+ --color-on-accent: #ffffff;
38
+ --color-on-primary: #ffffff;
39
+ --color-primary-hover: #4aa06e;
40
+
41
+ /* === BORDERS (grove-tinted, soft) === */
42
+ --border: rgba(232, 232, 226, 0.15);
43
+ --border2: rgba(232, 232, 226, 0.08);
44
+
45
+ --color-border: var(--border2);
46
+ --color-border-strong: var(--border);
47
+ --color-border-focus: var(--accent);
48
+
49
+ /* === ACCENT (commons green, brighter for dark bg) === */
50
+ --accent: #4aa06e;
51
+ --accent-bg: rgba(74, 160, 110, 0.12);
52
+ --accent-bg-strong: rgba(74, 160, 110, 0.25);
53
+ --accent-bg-heavy: rgba(74, 160, 110, 0.45);
54
+ --accent-bg-solid: rgba(74, 160, 110, 0.65);
55
+ --accent-border: rgba(74, 160, 110, 0.3);
56
+ --accent-focus-ring: 0 0 0 3px rgba(74, 160, 110, 0.2);
57
+ --shadow-accent: 4px 4px 0 var(--accent);
58
+
59
+ --color-primary: var(--accent);
60
+ --color-accent: var(--accent);
61
+ --color-accent-hover: #5ab87e;
62
+ --color-accent-text: #0d1a12;
63
+ --color-primary-text: #ffffff;
64
+ --color-accent-bg: var(--accent-bg);
65
+ --color-accent-border: var(--accent-border);
66
+
67
+ /* === SEMANTIC COLORS (brighter for dark bg) === */
68
+ --green: #4aa06e;
69
+ --green-bg: rgba(74, 160, 110, 0.12);
70
+ --green-border: rgba(74, 160, 110, 0.3);
71
+
72
+ --yellow: #daa040;
73
+ --yellow-bg: rgba(218, 160, 64, 0.12);
74
+ --yellow-border: rgba(218, 160, 64, 0.3);
75
+
76
+ --red: #d85e55;
77
+ --red-bg: rgba(216, 94, 85, 0.12);
78
+ --red-border: rgba(216, 94, 85, 0.3);
79
+
80
+ --purple: #9a7ec4;
81
+ --purple-bg: rgba(154, 126, 196, 0.12);
82
+ --purple-border: rgba(154, 126, 196, 0.3);
83
+
84
+ --teal: #3dbcab;
85
+ --teal-bg: rgba(61, 188, 171, 0.12);
86
+ --teal-border: rgba(61, 188, 171, 0.3);
87
+
88
+ --pink: #d07090;
89
+ --pink-bg: rgba(208, 112, 144, 0.12);
90
+ --pink-border: rgba(208, 112, 144, 0.3);
91
+
92
+ --color-success: var(--green);
93
+ --color-warning: var(--yellow);
94
+ --color-error: var(--red);
95
+ --color-info: #6a9fd0;
96
+ --color-success-bg: var(--green-bg);
97
+ --color-warning-bg: var(--yellow-bg);
98
+ --color-error-bg: var(--red-bg);
99
+ --color-info-bg: rgba(106, 159, 208, 0.12);
100
+
101
+ /* === OVERLAYS === */
102
+ --color-badge-overlay: rgba(0, 0, 0, 0.75);
103
+
104
+ /* === INTERACTIVE === */
105
+ --color-link: var(--accent);
106
+ --color-link-hover: #5ab87e;
107
+
108
+ /* === TYPOGRAPHY (warm, distinctive) === */
109
+ --font-sans: 'Work Sans', system-ui, -apple-system, sans-serif;
110
+ --font-mono: 'JetBrains Mono', ui-monospace, monospace;
111
+ --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
112
+
113
+ --font-heading: var(--font-display);
114
+ --font-body: var(--font-sans);
115
+
116
+ /* Font Sizes (Agora scale) */
117
+ --text-xs: 0.6875rem;
118
+ --text-sm: 0.8125rem;
119
+ --text-base: 0.9375rem;
120
+ --text-md: 1.0625rem;
121
+ --text-lg: 1.25rem;
122
+ --text-xl: 1.5rem;
123
+ --text-2xl: 1.875rem;
124
+ --text-3xl: 2.375rem;
125
+ --text-4xl: 3rem;
126
+ --text-5xl: 4rem;
127
+ --text-label: 0.625rem;
128
+
129
+ /* Line Heights */
130
+ --leading-tight: 1.15;
131
+ --leading-snug: 1.35;
132
+ --leading-normal: 1.7;
133
+ --leading-relaxed: 1.9;
134
+
135
+ /* Letter Spacing */
136
+ --tracking-tight: -0.02em;
137
+ --tracking-normal: 0;
138
+ --tracking-wide: 0.06em;
139
+ --tracking-wider: 0.1em;
140
+ --tracking-widest: 0.16em;
141
+
142
+ /* === SHADOWS (softer for dark mode) === */
143
+ --shadow-sm: 2px 2px 0 rgba(0, 0, 0, 0.4);
144
+ --shadow-md: 4px 4px 0 rgba(0, 0, 0, 0.4);
145
+ --shadow-lg: 6px 6px 0 rgba(0, 0, 0, 0.4);
146
+ --shadow-xl: 8px 8px 0 rgba(0, 0, 0, 0.4);
147
+
148
+ /* === TRANSITIONS (snappy) === */
149
+ --transition-fast: 120ms cubic-bezier(0.22, 1, 0.36, 1);
150
+ --transition-default: 250ms cubic-bezier(0.22, 1, 0.36, 1);
151
+ --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
152
+
153
+ /* === FOCUS === */
154
+ --focus-ring: 0 0 0 3px rgba(74, 160, 110, 0.25);
155
+
156
+ color-scheme: dark;
157
+ }
158
+
159
+
160
+ /* ═══════════════════════════════════════════
161
+ PAPER TEXTURE — darker, grove-tinted
162
+ ═══════════════════════════════════════════ */
163
+
164
+ [data-theme="agora-dark"] body::after {
165
+ content: '';
166
+ position: fixed;
167
+ inset: 0;
168
+ pointer-events: none;
169
+ z-index: 9999;
170
+ opacity: 0.03;
171
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
172
+ }
173
+
174
+
175
+ /* ═══════════════════════════════════════════
176
+ TYPOGRAPHY — Serif headings
177
+ ═══════════════════════════════════════════ */
178
+
179
+ [data-theme="agora-dark"] h1,
180
+ [data-theme="agora-dark"] h2,
181
+ [data-theme="agora-dark"] h3 {
182
+ font-family: var(--font-display);
183
+ }
184
+
185
+ [data-theme="agora-dark"] :focus-visible {
186
+ outline: none;
187
+ box-shadow: var(--focus-ring);
188
+ }
189
+
190
+
191
+ /* ═══════════════════════════════════════════
192
+ COMPONENT OVERRIDES — mirrors agora.css
193
+ ═══════════════════════════════════════════ */
194
+
195
+ /* Topbar */
196
+ [data-theme="agora-dark"] .cpub-topbar {
197
+ background: var(--surface);
198
+ border-bottom-color: var(--border);
199
+ }
200
+
201
+ [data-theme="agora-dark"] .cpub-site-logo .cpub-logo-name {
202
+ font-family: var(--font-display);
203
+ font-weight: 700;
204
+ letter-spacing: -0.02em;
205
+ }
206
+
207
+ [data-theme="agora-dark"] .cpub-site-logo .cpub-logo-bracket {
208
+ color: var(--accent);
209
+ }
210
+
211
+ /* Buttons */
212
+ [data-theme="agora-dark"] .cpub-btn {
213
+ border-color: var(--border);
214
+ transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
215
+ }
216
+
217
+ [data-theme="agora-dark"] .cpub-btn:hover {
218
+ transform: translateY(-1px);
219
+ box-shadow: var(--shadow-sm);
220
+ }
221
+
222
+ [data-theme="agora-dark"] .cpub-btn:active {
223
+ transform: translateY(0);
224
+ box-shadow: none;
225
+ }
226
+
227
+ [data-theme="agora-dark"] .cpub-btn-primary {
228
+ background: var(--accent);
229
+ border-color: #2a6342;
230
+ box-shadow: var(--shadow-md);
231
+ }
232
+
233
+ [data-theme="agora-dark"] .cpub-btn-primary:hover {
234
+ background: #5ab87e;
235
+ box-shadow: var(--shadow-accent);
236
+ transform: translateY(-1px);
237
+ }
238
+
239
+ [data-theme="agora-dark"] .cpub-btn-ghost {
240
+ color: var(--accent);
241
+ border-color: transparent;
242
+ }
243
+
244
+ [data-theme="agora-dark"] .cpub-btn-ghost:hover {
245
+ color: #5ab87e;
246
+ background: var(--accent-bg);
247
+ }
248
+
249
+ /* Cards */
250
+ [data-theme="agora-dark"] .cpub-sb-card,
251
+ [data-theme="agora-dark"] .cpub-stat-card {
252
+ background: var(--surface);
253
+ border-color: var(--border);
254
+ box-shadow: var(--shadow-sm);
255
+ }
256
+
257
+ [data-theme="agora-dark"] .cpub-content-card {
258
+ border-color: var(--border);
259
+ background: var(--surface);
260
+ transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
261
+ }
262
+
263
+ [data-theme="agora-dark"] .cpub-content-card:hover {
264
+ border-left-color: var(--accent);
265
+ border-left-width: 4px;
266
+ transform: translateY(-2px);
267
+ box-shadow: var(--shadow-md);
268
+ }
269
+
270
+ [data-theme="agora-dark"] .cpub-content-card h3,
271
+ [data-theme="agora-dark"] .cpub-content-card .cpub-card-title {
272
+ font-family: var(--font-display);
273
+ font-weight: 700;
274
+ }
275
+
276
+ /* Inputs */
277
+ [data-theme="agora-dark"] .cpub-input,
278
+ [data-theme="agora-dark"] .cpub-textarea,
279
+ [data-theme="agora-dark"] .cpub-select {
280
+ border-color: var(--border);
281
+ background: var(--surface);
282
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
283
+ }
284
+
285
+ [data-theme="agora-dark"] .cpub-input:focus,
286
+ [data-theme="agora-dark"] .cpub-textarea:focus,
287
+ [data-theme="agora-dark"] .cpub-select:focus {
288
+ border-color: var(--accent);
289
+ box-shadow: var(--focus-ring);
290
+ outline: none;
291
+ }
292
+
293
+ /* Tags */
294
+ [data-theme="agora-dark"] .cpub-tag {
295
+ border-width: 1px;
296
+ }
297
+
298
+ /* Section titles */
299
+ [data-theme="agora-dark"] .cpub-section-title-lg,
300
+ [data-theme="agora-dark"] .cpub-section-title-sm {
301
+ font-family: var(--font-display);
302
+ }
303
+
304
+ /* Prose */
305
+ [data-theme="agora-dark"] .cpub-prose h1,
306
+ [data-theme="agora-dark"] .cpub-prose h2,
307
+ [data-theme="agora-dark"] .cpub-prose h3,
308
+ [data-theme="agora-dark"] .cpub-prose h4 {
309
+ font-family: var(--font-display);
310
+ }
311
+
312
+ [data-theme="agora-dark"] .cpub-prose blockquote {
313
+ border-left-color: var(--accent);
314
+ background: var(--accent-bg);
315
+ }
316
+
317
+ [data-theme="agora-dark"] .cpub-prose a {
318
+ color: var(--accent);
319
+ text-decoration-color: rgba(74, 160, 110, 0.3);
320
+ }
321
+
322
+ /* Admin */
323
+ [data-theme="agora-dark"] .admin-brand {
324
+ font-family: var(--font-display);
325
+ }
326
+
327
+ [data-theme="agora-dark"] .admin-nav-link.router-link-exact-active {
328
+ color: var(--accent);
329
+ background: var(--accent-bg);
330
+ }
331
+
332
+ [data-theme="agora-dark"] .admin-badge {
333
+ background: var(--accent);
334
+ }
335
+
336
+ /* Footer */
337
+ [data-theme="agora-dark"] .cpub-footer-logo .cpub-logo-name {
338
+ font-family: var(--font-display);
339
+ font-weight: 700;
340
+ }
341
+
342
+
343
+ /* ═══════════════════════════════════════════
344
+ CONTENT TYPE BADGE COLORS (Agora dark)
345
+ ═══════════════════════════════════════════ */
346
+
347
+ [data-theme="agora-dark"] [data-content-type="article"] { --badge-color: #6a9fd0; --badge-bg: rgba(106, 159, 208, 0.12); }
348
+ [data-theme="agora-dark"] [data-content-type="blog"] { --badge-color: #4aa06e; --badge-bg: rgba(74, 160, 110, 0.12); }
349
+ [data-theme="agora-dark"] [data-content-type="project"] { --badge-color: #9a7ec4; --badge-bg: rgba(154, 126, 196, 0.12); }
350
+ [data-theme="agora-dark"] [data-content-type="explainer"] { --badge-color: #3dbcab; --badge-bg: rgba(61, 188, 171, 0.12); }
351
+ [data-theme="agora-dark"] [data-content-type="video"] { --badge-color: #d85e55; --badge-bg: rgba(216, 94, 85, 0.12); }
352
+ [data-theme="agora-dark"] [data-content-type="tutorial"] { --badge-color: #daa040; --badge-bg: rgba(218, 160, 64, 0.12); }
353
+ }