@commonpub/layer 0.4.0 → 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.
- package/components/SiteLogo.vue +41 -2
- package/package.json +5 -5
- package/theme/agora-dark.css +202 -6
- package/theme/agora.css +315 -15
package/components/SiteLogo.vue
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
const { themeId } = useTheme();
|
|
3
|
+
const isAgora = computed(() => themeId.value === 'agora' || themeId.value === 'agora-dark');
|
|
4
|
+
</script>
|
|
5
|
+
|
|
1
6
|
<template>
|
|
2
7
|
<span class="cpub-site-logo">
|
|
3
|
-
<
|
|
4
|
-
|
|
8
|
+
<template v-if="isAgora">
|
|
9
|
+
<!-- Town Square mark: 4 blocks + green center -->
|
|
10
|
+
<svg class="cpub-logo-mark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="22" height="22" aria-hidden="true">
|
|
11
|
+
<rect x="18" y="18" width="72" height="72" fill="none" stroke="currentColor" stroke-width="7" stroke-linejoin="round"/>
|
|
12
|
+
<rect x="110" y="18" width="72" height="72" fill="none" stroke="currentColor" stroke-width="7" stroke-linejoin="round"/>
|
|
13
|
+
<rect x="18" y="110" width="72" height="72" fill="none" stroke="currentColor" stroke-width="7" stroke-linejoin="round"/>
|
|
14
|
+
<rect x="110" y="110" width="72" height="72" fill="none" stroke="currentColor" stroke-width="7" stroke-linejoin="round"/>
|
|
15
|
+
<rect x="88" y="88" width="24" height="24" fill="var(--accent, #3d8b5e)"/>
|
|
16
|
+
<!-- Content lines: 1 green accent per block -->
|
|
17
|
+
<line x1="34" y1="54" x2="72" y2="54" stroke="var(--accent, #3d8b5e)" stroke-width="3.5" stroke-linecap="round" opacity="0.7"/>
|
|
18
|
+
<line x1="128" y1="46" x2="166" y2="46" stroke="var(--accent, #3d8b5e)" stroke-width="3.5" stroke-linecap="round" opacity="0.7"/>
|
|
19
|
+
<line x1="34" y1="148" x2="68" y2="148" stroke="var(--accent, #3d8b5e)" stroke-width="3.5" stroke-linecap="round" opacity="0.7"/>
|
|
20
|
+
<line x1="128" y1="142" x2="162" y2="142" stroke="var(--accent, #3d8b5e)" stroke-width="3.5" stroke-linecap="round" opacity="0.7"/>
|
|
21
|
+
</svg>
|
|
22
|
+
<span class="cpub-logo-name cpub-logo-name--agora">Common<span class="cpub-logo-pub">Pub</span></span>
|
|
23
|
+
</template>
|
|
24
|
+
<template v-else>
|
|
25
|
+
<span class="cpub-logo-bracket">[</span>C<span class="cpub-logo-bracket">]</span>
|
|
26
|
+
<span class="cpub-logo-name">CommonPub</span>
|
|
27
|
+
</template>
|
|
5
28
|
</span>
|
|
6
29
|
</template>
|
|
7
30
|
|
|
@@ -18,4 +41,20 @@
|
|
|
18
41
|
}
|
|
19
42
|
.cpub-logo-bracket { color: var(--accent); font-size: 15px; }
|
|
20
43
|
.cpub-logo-name { margin-left: 2px; }
|
|
44
|
+
|
|
45
|
+
/* Agora wordmark */
|
|
46
|
+
.cpub-logo-mark {
|
|
47
|
+
margin-right: 6px;
|
|
48
|
+
flex-shrink: 0;
|
|
49
|
+
}
|
|
50
|
+
.cpub-logo-name--agora {
|
|
51
|
+
font-family: var(--font-display, var(--font-heading));
|
|
52
|
+
font-weight: 700;
|
|
53
|
+
font-size: 16px;
|
|
54
|
+
letter-spacing: -0.02em;
|
|
55
|
+
margin-left: 0;
|
|
56
|
+
}
|
|
57
|
+
.cpub-logo-pub {
|
|
58
|
+
color: var(--accent);
|
|
59
|
+
}
|
|
21
60
|
</style>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commonpub/layer",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./nuxt.config.ts",
|
|
6
6
|
"files": [
|
|
@@ -50,15 +50,15 @@
|
|
|
50
50
|
"vue": "^3.4.0",
|
|
51
51
|
"vue-router": "^4.3.0",
|
|
52
52
|
"zod": "^4.3.6",
|
|
53
|
-
"@commonpub/config": "0.8.0",
|
|
54
53
|
"@commonpub/auth": "0.5.0",
|
|
54
|
+
"@commonpub/config": "0.8.0",
|
|
55
55
|
"@commonpub/editor": "0.5.0",
|
|
56
|
+
"@commonpub/protocol": "0.9.5",
|
|
56
57
|
"@commonpub/docs": "0.5.2",
|
|
57
|
-
"@commonpub/learning": "0.5.0",
|
|
58
|
-
"@commonpub/ui": "0.8.0",
|
|
59
58
|
"@commonpub/server": "2.22.0",
|
|
59
|
+
"@commonpub/ui": "0.8.1",
|
|
60
60
|
"@commonpub/schema": "0.8.13",
|
|
61
|
-
"@commonpub/
|
|
61
|
+
"@commonpub/learning": "0.5.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@testing-library/jest-dom": "^6.9.1",
|
package/theme/agora-dark.css
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
/* ===========================================
|
|
3
3
|
CommonPub Agora Theme — Dark (Grove)
|
|
4
4
|
Warm dark surfaces with green-tinted blacks,
|
|
5
|
-
green accent, serif display font
|
|
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.
|
|
6
10
|
=========================================== */
|
|
7
11
|
|
|
8
12
|
[data-theme="agora-dark"] {
|
|
@@ -34,9 +38,9 @@
|
|
|
34
38
|
--color-on-primary: #ffffff;
|
|
35
39
|
--color-primary-hover: #4aa06e;
|
|
36
40
|
|
|
37
|
-
/* === BORDERS (grove-tinted) === */
|
|
38
|
-
--border:
|
|
39
|
-
--border2:
|
|
41
|
+
/* === BORDERS (grove-tinted, soft) === */
|
|
42
|
+
--border: rgba(232, 232, 226, 0.15);
|
|
43
|
+
--border2: rgba(232, 232, 226, 0.08);
|
|
40
44
|
|
|
41
45
|
--color-border: var(--border2);
|
|
42
46
|
--color-border-strong: var(--border);
|
|
@@ -141,13 +145,205 @@
|
|
|
141
145
|
--shadow-lg: 6px 6px 0 rgba(0, 0, 0, 0.4);
|
|
142
146
|
--shadow-xl: 8px 8px 0 rgba(0, 0, 0, 0.4);
|
|
143
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
|
+
|
|
144
153
|
/* === FOCUS === */
|
|
145
|
-
--focus-ring:
|
|
154
|
+
--focus-ring: 0 0 0 3px rgba(74, 160, 110, 0.25);
|
|
146
155
|
|
|
147
156
|
color-scheme: dark;
|
|
148
157
|
}
|
|
149
158
|
|
|
150
|
-
|
|
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
|
+
|
|
151
347
|
[data-theme="agora-dark"] [data-content-type="article"] { --badge-color: #6a9fd0; --badge-bg: rgba(106, 159, 208, 0.12); }
|
|
152
348
|
[data-theme="agora-dark"] [data-content-type="blog"] { --badge-color: #4aa06e; --badge-bg: rgba(74, 160, 110, 0.12); }
|
|
153
349
|
[data-theme="agora-dark"] [data-content-type="project"] { --badge-color: #9a7ec4; --badge-bg: rgba(154, 126, 196, 0.12); }
|
package/theme/agora.css
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
@layer commonpub {
|
|
2
2
|
/* ===========================================
|
|
3
3
|
CommonPub Agora Theme — Light
|
|
4
|
+
"Where makers gather, build, and share."
|
|
5
|
+
|
|
4
6
|
Warm institutional aesthetic: parchment
|
|
5
|
-
backgrounds, green accent,
|
|
6
|
-
|
|
7
|
+
backgrounds, commons green accent, Fraunces
|
|
8
|
+
serif display, Work Sans body, soft rgba
|
|
9
|
+
borders, paper texture, snappy easing.
|
|
10
|
+
|
|
11
|
+
This is a COMPLETE design system, not just
|
|
12
|
+
a color swap. It overrides tokens AND
|
|
13
|
+
component styles.
|
|
7
14
|
=========================================== */
|
|
8
15
|
|
|
9
16
|
[data-theme="agora"] {
|
|
@@ -32,9 +39,9 @@
|
|
|
32
39
|
--color-text-muted: var(--text-faint);
|
|
33
40
|
--color-text-inverse: #f7f4ed;
|
|
34
41
|
|
|
35
|
-
/* === BORDERS (warm) === */
|
|
36
|
-
--border:
|
|
37
|
-
--border2:
|
|
42
|
+
/* === BORDERS (soft, warm) === */
|
|
43
|
+
--border: rgba(26, 26, 26, 0.25);
|
|
44
|
+
--border2: rgba(26, 26, 26, 0.12);
|
|
38
45
|
|
|
39
46
|
--color-border: var(--border2);
|
|
40
47
|
--color-border-strong: var(--border);
|
|
@@ -98,8 +105,8 @@
|
|
|
98
105
|
--color-badge-overlay: rgba(26, 26, 26, 0.75);
|
|
99
106
|
|
|
100
107
|
/* === INTERACTIVE === */
|
|
101
|
-
--color-link:
|
|
102
|
-
--color-link-hover: #
|
|
108
|
+
--color-link: #2a6342;
|
|
109
|
+
--color-link-hover: #1e4f32;
|
|
103
110
|
|
|
104
111
|
/* === TYPOGRAPHY (warm, distinctive) === */
|
|
105
112
|
--font-sans: 'Work Sans', system-ui, -apple-system, sans-serif;
|
|
@@ -128,7 +135,7 @@
|
|
|
128
135
|
--leading-normal: 1.7;
|
|
129
136
|
--leading-relaxed: 1.9;
|
|
130
137
|
|
|
131
|
-
/* Letter Spacing */
|
|
138
|
+
/* Letter Spacing (wider for Agora's institutional feel) */
|
|
132
139
|
--tracking-tight: -0.02em;
|
|
133
140
|
--tracking-normal: 0;
|
|
134
141
|
--tracking-wide: 0.06em;
|
|
@@ -136,17 +143,310 @@
|
|
|
136
143
|
--tracking-widest: 0.16em;
|
|
137
144
|
|
|
138
145
|
/* === SHADOWS (offset, warm ink) === */
|
|
139
|
-
--shadow-sm: 2px 2px 0
|
|
140
|
-
--shadow-md: 4px 4px 0
|
|
141
|
-
--shadow-lg: 6px 6px 0
|
|
142
|
-
--shadow-xl: 8px 8px 0
|
|
146
|
+
--shadow-sm: 2px 2px 0 rgba(26, 26, 26, 0.25);
|
|
147
|
+
--shadow-md: 4px 4px 0 rgba(26, 26, 26, 0.25);
|
|
148
|
+
--shadow-lg: 6px 6px 0 rgba(26, 26, 26, 0.25);
|
|
149
|
+
--shadow-xl: 8px 8px 0 rgba(26, 26, 26, 0.25);
|
|
143
150
|
--shadow-accent: 4px 4px 0 var(--accent);
|
|
144
151
|
|
|
145
|
-
/* ===
|
|
146
|
-
--
|
|
152
|
+
/* === TRANSITIONS (snappy) === */
|
|
153
|
+
--transition-fast: 120ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
154
|
+
--transition-default: 250ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
155
|
+
--transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
156
|
+
|
|
157
|
+
/* === FOCUS (glow instead of outline) === */
|
|
158
|
+
--focus-ring: 0 0 0 3px rgba(61, 139, 94, 0.2);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
/* ═══════════════════════════════════════════
|
|
163
|
+
PAPER TEXTURE OVERLAY
|
|
164
|
+
Subtle noise that gives everything a
|
|
165
|
+
tactile, printed-on-paper feel.
|
|
166
|
+
═══════════════════════════════════════════ */
|
|
167
|
+
|
|
168
|
+
[data-theme="agora"] body::after {
|
|
169
|
+
content: '';
|
|
170
|
+
position: fixed;
|
|
171
|
+
inset: 0;
|
|
172
|
+
pointer-events: none;
|
|
173
|
+
z-index: 9999;
|
|
174
|
+
opacity: 0.02;
|
|
175
|
+
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");
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
/* ═══════════════════════════════════════════
|
|
180
|
+
TYPOGRAPHY OVERRIDES
|
|
181
|
+
Fraunces for display/headings, Work Sans
|
|
182
|
+
for body, wider tracking on labels.
|
|
183
|
+
═══════════════════════════════════════════ */
|
|
184
|
+
|
|
185
|
+
[data-theme="agora"] h1,
|
|
186
|
+
[data-theme="agora"] h2,
|
|
187
|
+
[data-theme="agora"] h3 {
|
|
188
|
+
font-family: var(--font-display);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* Focus: glow instead of outline */
|
|
192
|
+
[data-theme="agora"] :focus-visible {
|
|
193
|
+
outline: none;
|
|
194
|
+
box-shadow: var(--focus-ring);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
/* ═══════════════════════════════════════════
|
|
199
|
+
COMPONENT: TOPBAR / NAVIGATION
|
|
200
|
+
═══════════════════════════════════════════ */
|
|
201
|
+
|
|
202
|
+
[data-theme="agora"] .cpub-topbar {
|
|
203
|
+
background: var(--surface);
|
|
204
|
+
border-bottom-color: var(--border);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* Agora wordmark in topbar */
|
|
208
|
+
[data-theme="agora"] .cpub-site-logo .cpub-logo-name {
|
|
209
|
+
font-family: var(--font-display);
|
|
210
|
+
font-weight: 700;
|
|
211
|
+
letter-spacing: -0.02em;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
[data-theme="agora"] .cpub-site-logo .cpub-logo-bracket {
|
|
215
|
+
color: var(--accent);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
[data-theme="agora"] .cpub-topbar-link.router-link-active {
|
|
219
|
+
color: var(--accent);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
/* ═══════════════════════════════════════════
|
|
224
|
+
COMPONENT: BUTTONS
|
|
225
|
+
Snappy easing, green primary, softer borders.
|
|
226
|
+
═══════════════════════════════════════════ */
|
|
227
|
+
|
|
228
|
+
[data-theme="agora"] .cpub-btn {
|
|
229
|
+
border-color: var(--border);
|
|
230
|
+
transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
|
|
147
231
|
}
|
|
148
232
|
|
|
149
|
-
|
|
233
|
+
[data-theme="agora"] .cpub-btn:hover {
|
|
234
|
+
transform: translateY(-1px);
|
|
235
|
+
box-shadow: var(--shadow-sm);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
[data-theme="agora"] .cpub-btn:active {
|
|
239
|
+
transform: translateY(0);
|
|
240
|
+
box-shadow: none;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
[data-theme="agora"] .cpub-btn-primary {
|
|
244
|
+
background: var(--accent);
|
|
245
|
+
border-color: #2a6342;
|
|
246
|
+
box-shadow: var(--shadow-md);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
[data-theme="agora"] .cpub-btn-primary:hover {
|
|
250
|
+
background: #348050;
|
|
251
|
+
box-shadow: var(--shadow-accent);
|
|
252
|
+
transform: translateY(-1px);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
[data-theme="agora"] .cpub-btn-ghost {
|
|
256
|
+
color: var(--accent);
|
|
257
|
+
border-color: transparent;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
[data-theme="agora"] .cpub-btn-ghost:hover {
|
|
261
|
+
color: #2a6342;
|
|
262
|
+
background: var(--accent-bg);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
/* ═══════════════════════════════════════════
|
|
267
|
+
COMPONENT: CARDS
|
|
268
|
+
Linen backgrounds, soft borders, accent
|
|
269
|
+
left-border treatment on hover.
|
|
270
|
+
═══════════════════════════════════════════ */
|
|
271
|
+
|
|
272
|
+
[data-theme="agora"] .cpub-sb-card,
|
|
273
|
+
[data-theme="agora"] .cpub-stat-card {
|
|
274
|
+
background: var(--bg);
|
|
275
|
+
border-color: var(--border);
|
|
276
|
+
box-shadow: var(--shadow-sm);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
[data-theme="agora"] .cpub-sb-card:hover,
|
|
280
|
+
[data-theme="agora"] .cpub-stat-card:hover {
|
|
281
|
+
box-shadow: var(--shadow-md);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* Content cards get accent left border on hover */
|
|
285
|
+
[data-theme="agora"] .cpub-content-card {
|
|
286
|
+
border-color: var(--border);
|
|
287
|
+
background: var(--surface);
|
|
288
|
+
transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
[data-theme="agora"] .cpub-content-card:hover {
|
|
292
|
+
border-left-color: var(--accent);
|
|
293
|
+
border-left-width: 4px;
|
|
294
|
+
transform: translateY(-2px);
|
|
295
|
+
box-shadow: var(--shadow-md);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/* Card headers use display font */
|
|
299
|
+
[data-theme="agora"] .cpub-content-card h3,
|
|
300
|
+
[data-theme="agora"] .cpub-content-card .cpub-card-title {
|
|
301
|
+
font-family: var(--font-display);
|
|
302
|
+
font-weight: 700;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
/* ═══════════════════════════════════════════
|
|
307
|
+
COMPONENT: INPUTS & FORMS
|
|
308
|
+
Soft borders, glow focus ring.
|
|
309
|
+
═══════════════════════════════════════════ */
|
|
310
|
+
|
|
311
|
+
[data-theme="agora"] .cpub-input,
|
|
312
|
+
[data-theme="agora"] .cpub-textarea,
|
|
313
|
+
[data-theme="agora"] .cpub-select {
|
|
314
|
+
border-color: var(--border);
|
|
315
|
+
background: var(--bg);
|
|
316
|
+
transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
[data-theme="agora"] .cpub-input:focus,
|
|
320
|
+
[data-theme="agora"] .cpub-textarea:focus,
|
|
321
|
+
[data-theme="agora"] .cpub-select:focus {
|
|
322
|
+
border-color: var(--accent);
|
|
323
|
+
box-shadow: var(--focus-ring);
|
|
324
|
+
outline: none;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/* Form labels get wider tracking */
|
|
328
|
+
[data-theme="agora"] .cpub-form-label {
|
|
329
|
+
letter-spacing: var(--tracking-wider);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
/* ═══════════════════════════════════════════
|
|
334
|
+
COMPONENT: BADGES & TAGS
|
|
335
|
+
Thinner borders (1px), warmer palette.
|
|
336
|
+
═══════════════════════════════════════════ */
|
|
337
|
+
|
|
338
|
+
[data-theme="agora"] .cpub-tag {
|
|
339
|
+
border-width: 1px;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
[data-theme="agora"] .cpub-badge-filled {
|
|
343
|
+
background: var(--accent);
|
|
344
|
+
border-color: var(--accent);
|
|
345
|
+
color: #fff;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
/* ═══════════════════════════════════════════
|
|
350
|
+
COMPONENT: SECTION TITLES & HEADINGS
|
|
351
|
+
Fraunces display, green accent numbers.
|
|
352
|
+
═══════════════════════════════════════════ */
|
|
353
|
+
|
|
354
|
+
[data-theme="agora"] .cpub-section-title-lg {
|
|
355
|
+
font-family: var(--font-display);
|
|
356
|
+
font-weight: 700;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
[data-theme="agora"] .cpub-section-title-sm {
|
|
360
|
+
font-family: var(--font-display);
|
|
361
|
+
font-weight: 600;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
[data-theme="agora"] .admin-page-title {
|
|
365
|
+
font-family: var(--font-display);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
/* ═══════════════════════════════════════════
|
|
370
|
+
COMPONENT: LINKS
|
|
371
|
+
Green links with underline offset.
|
|
372
|
+
═══════════════════════════════════════════ */
|
|
373
|
+
|
|
374
|
+
[data-theme="agora"] a:not(.cpub-btn):not(.cpub-topbar-link):not(.cpub-footer-link):not(.admin-nav-link) {
|
|
375
|
+
text-decoration-color: rgba(61, 139, 94, 0.3);
|
|
376
|
+
text-underline-offset: 2px;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
/* ═══════════════════════════════════════════
|
|
381
|
+
COMPONENT: FOOTER
|
|
382
|
+
Warm treatment, serif brand name.
|
|
383
|
+
═══════════════════════════════════════════ */
|
|
384
|
+
|
|
385
|
+
[data-theme="agora"] .cpub-footer {
|
|
386
|
+
border-top-color: var(--border);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
[data-theme="agora"] .cpub-footer-logo .cpub-logo-name {
|
|
390
|
+
font-family: var(--font-display);
|
|
391
|
+
font-weight: 700;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
[data-theme="agora"] .cpub-footer-col-title {
|
|
395
|
+
letter-spacing: var(--tracking-widest);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
/* ═══════════════════════════════════════════
|
|
400
|
+
PROSE / CONTENT AREA
|
|
401
|
+
Serif headings, warmer body feel.
|
|
402
|
+
═══════════════════════════════════════════ */
|
|
403
|
+
|
|
404
|
+
[data-theme="agora"] .cpub-prose h1,
|
|
405
|
+
[data-theme="agora"] .cpub-prose h2,
|
|
406
|
+
[data-theme="agora"] .cpub-prose h3,
|
|
407
|
+
[data-theme="agora"] .cpub-prose h4 {
|
|
408
|
+
font-family: var(--font-display);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
[data-theme="agora"] .cpub-prose blockquote {
|
|
412
|
+
border-left-color: var(--accent);
|
|
413
|
+
background: var(--accent-bg);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
[data-theme="agora"] .cpub-prose a {
|
|
417
|
+
color: var(--accent);
|
|
418
|
+
text-decoration-color: rgba(61, 139, 94, 0.3);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
[data-theme="agora"] .cpub-prose code {
|
|
422
|
+
background: var(--surface2);
|
|
423
|
+
border-color: var(--border2);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
/* ═══════════════════════════════════════════
|
|
428
|
+
ADMIN LAYOUT
|
|
429
|
+
Warm sidebar, serif titles.
|
|
430
|
+
═══════════════════════════════════════════ */
|
|
431
|
+
|
|
432
|
+
[data-theme="agora"] .admin-brand {
|
|
433
|
+
font-family: var(--font-display);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
[data-theme="agora"] .admin-nav-link.router-link-exact-active {
|
|
437
|
+
color: var(--accent);
|
|
438
|
+
background: var(--accent-bg);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
[data-theme="agora"] .admin-badge {
|
|
442
|
+
background: var(--accent);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
/* ═══════════════════════════════════════════
|
|
447
|
+
CONTENT TYPE BADGE COLORS (Agora palette)
|
|
448
|
+
═══════════════════════════════════════════ */
|
|
449
|
+
|
|
150
450
|
[data-theme="agora"] [data-content-type="article"] { --badge-color: #4a7fb8; --badge-bg: rgba(74, 127, 184, 0.08); }
|
|
151
451
|
[data-theme="agora"] [data-content-type="blog"] { --badge-color: #3d8b5e; --badge-bg: rgba(61, 139, 94, 0.08); }
|
|
152
452
|
[data-theme="agora"] [data-content-type="project"] { --badge-color: #7b5ea7; --badge-bg: rgba(123, 94, 167, 0.08); }
|