@cogenta/theme-association 0.3.3 → 0.5.3
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/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/render/blocks/accordion.d.ts.map +1 -1
- package/dist/src/render/blocks/accordion.js +13 -10
- package/dist/src/render/blocks/accordion.js.map +1 -1
- package/dist/src/render/blocks/breakdown.d.ts +14 -0
- package/dist/src/render/blocks/breakdown.d.ts.map +1 -0
- package/dist/src/render/blocks/breakdown.js +17 -0
- package/dist/src/render/blocks/breakdown.js.map +1 -0
- package/dist/src/render/blocks/collection-list.d.ts +4 -10
- package/dist/src/render/blocks/collection-list.d.ts.map +1 -1
- package/dist/src/render/blocks/collection-list.js +89 -58
- package/dist/src/render/blocks/collection-list.js.map +1 -1
- package/dist/src/render/blocks/cta.d.ts +0 -5
- package/dist/src/render/blocks/cta.d.ts.map +1 -1
- package/dist/src/render/blocks/cta.js +22 -10
- package/dist/src/render/blocks/cta.js.map +1 -1
- package/dist/src/render/blocks/embed.d.ts.map +1 -1
- package/dist/src/render/blocks/embed.js +30 -22
- package/dist/src/render/blocks/embed.js.map +1 -1
- package/dist/src/render/blocks/faq.d.ts.map +1 -1
- package/dist/src/render/blocks/faq.js +11 -15
- package/dist/src/render/blocks/faq.js.map +1 -1
- package/dist/src/render/blocks/feature-grid.d.ts +6 -0
- package/dist/src/render/blocks/feature-grid.d.ts.map +1 -1
- package/dist/src/render/blocks/feature-grid.js +42 -20
- package/dist/src/render/blocks/feature-grid.js.map +1 -1
- package/dist/src/render/blocks/gallery.d.ts +9 -7
- package/dist/src/render/blocks/gallery.d.ts.map +1 -1
- package/dist/src/render/blocks/gallery.js +22 -16
- package/dist/src/render/blocks/gallery.js.map +1 -1
- package/dist/src/render/blocks/hero.d.ts +23 -9
- package/dist/src/render/blocks/hero.d.ts.map +1 -1
- package/dist/src/render/blocks/hero.js +40 -23
- package/dist/src/render/blocks/hero.js.map +1 -1
- package/dist/src/render/blocks/logo-strip.d.ts +6 -0
- package/dist/src/render/blocks/logo-strip.d.ts.map +1 -1
- package/dist/src/render/blocks/logo-strip.js +7 -9
- package/dist/src/render/blocks/logo-strip.js.map +1 -1
- package/dist/src/render/blocks/logos.d.ts +14 -0
- package/dist/src/render/blocks/logos.d.ts.map +1 -1
- package/dist/src/render/blocks/logos.js +30 -16
- package/dist/src/render/blocks/logos.js.map +1 -1
- package/dist/src/render/blocks/media-figure.d.ts +12 -5
- package/dist/src/render/blocks/media-figure.d.ts.map +1 -1
- package/dist/src/render/blocks/media-figure.js +32 -18
- package/dist/src/render/blocks/media-figure.js.map +1 -1
- package/dist/src/render/blocks/pricing-table.d.ts.map +1 -1
- package/dist/src/render/blocks/pricing-table.js +18 -20
- package/dist/src/render/blocks/pricing-table.js.map +1 -1
- package/dist/src/render/blocks/prose.d.ts +9 -3
- package/dist/src/render/blocks/prose.d.ts.map +1 -1
- package/dist/src/render/blocks/prose.js +11 -4
- package/dist/src/render/blocks/prose.js.map +1 -1
- package/dist/src/render/blocks/quote.d.ts +4 -7
- package/dist/src/render/blocks/quote.d.ts.map +1 -1
- package/dist/src/render/blocks/quote.js +12 -17
- package/dist/src/render/blocks/quote.js.map +1 -1
- package/dist/src/render/blocks/stat-counter.d.ts +8 -1
- package/dist/src/render/blocks/stat-counter.d.ts.map +1 -1
- package/dist/src/render/blocks/stat-counter.js +18 -10
- package/dist/src/render/blocks/stat-counter.js.map +1 -1
- package/dist/src/render/blocks/stats.d.ts +12 -1
- package/dist/src/render/blocks/stats.d.ts.map +1 -1
- package/dist/src/render/blocks/stats.js +24 -14
- package/dist/src/render/blocks/stats.js.map +1 -1
- package/dist/src/render/blocks/testimonial.d.ts +6 -5
- package/dist/src/render/blocks/testimonial.d.ts.map +1 -1
- package/dist/src/render/blocks/testimonial.js +13 -11
- package/dist/src/render/blocks/testimonial.js.map +1 -1
- package/dist/src/render/chrome.d.ts +38 -1
- package/dist/src/render/chrome.d.ts.map +1 -1
- package/dist/src/render/chrome.js +117 -91
- package/dist/src/render/chrome.js.map +1 -1
- package/dist/src/render/details.d.ts +79 -0
- package/dist/src/render/details.d.ts.map +1 -0
- package/dist/src/render/details.js +221 -0
- package/dist/src/render/details.js.map +1 -0
- package/dist/src/render/figures.d.ts +29 -0
- package/dist/src/render/figures.d.ts.map +1 -0
- package/dist/src/render/figures.js +59 -0
- package/dist/src/render/figures.js.map +1 -0
- package/dist/src/render/layout.d.ts +31 -0
- package/dist/src/render/layout.d.ts.map +1 -0
- package/dist/src/render/layout.js +46 -0
- package/dist/src/render/layout.js.map +1 -0
- package/dist/src/render/page-head.d.ts +7 -0
- package/dist/src/render/page-head.d.ts.map +1 -0
- package/dist/src/render/page-head.js +95 -0
- package/dist/src/render/page-head.js.map +1 -0
- package/dist/src/render/render-block.d.ts +8 -12
- package/dist/src/render/render-block.d.ts.map +1 -1
- package/dist/src/render/render-block.js +40 -29
- package/dist/src/render/render-block.js.map +1 -1
- package/dist/src/render/strings.d.ts +15 -0
- package/dist/src/render/strings.d.ts.map +1 -0
- package/dist/src/render/strings.js +39 -0
- package/dist/src/render/strings.js.map +1 -0
- package/dist/src/render/term-archive.d.ts.map +1 -1
- package/dist/src/render/term-archive.js +33 -25
- package/dist/src/render/term-archive.js.map +1 -1
- package/dist/src/render/widget-areas.d.ts +14 -0
- package/dist/src/render/widget-areas.d.ts.map +1 -0
- package/dist/src/render/widget-areas.js +21 -0
- package/dist/src/render/widget-areas.js.map +1 -0
- package/dist/theme.config.d.ts +1 -1
- package/dist/theme.config.js +3 -3
- package/dist/theme.config.js.map +1 -1
- package/package.json +5 -5
- package/src/index.ts +9 -0
- package/src/render/blocks/accordion.ts +28 -22
- package/src/render/blocks/breakdown.ts +42 -0
- package/src/render/blocks/collection-list.ts +234 -103
- package/src/render/blocks/cta.ts +48 -19
- package/src/render/blocks/embed.ts +47 -29
- package/src/render/blocks/faq.ts +22 -31
- package/src/render/blocks/feature-grid.ts +73 -41
- package/src/render/blocks/gallery.ts +32 -26
- package/src/render/blocks/hero.ts +56 -43
- package/src/render/blocks/logo-strip.ts +23 -21
- package/src/render/blocks/logos.ts +45 -40
- package/src/render/blocks/media-figure.ts +49 -24
- package/src/render/blocks/pricing-table.ts +31 -40
- package/src/render/blocks/prose.ts +16 -6
- package/src/render/blocks/quote.ts +34 -27
- package/src/render/blocks/stat-counter.ts +35 -29
- package/src/render/blocks/stats.ts +46 -38
- package/src/render/blocks/testimonial.ts +29 -20
- package/src/render/chrome.ts +165 -91
- package/src/render/details.ts +276 -0
- package/src/render/figures.ts +68 -0
- package/src/render/layout.ts +78 -0
- package/src/render/page-head.ts +193 -0
- package/src/render/render-block.ts +45 -32
- package/src/render/strings.ts +74 -0
- package/src/render/term-archive.ts +94 -58
- package/src/render/widget-areas.ts +24 -0
- package/src/styles/archive.css +38 -102
- package/src/styles/base.css +503 -554
- package/src/styles/blocks.css +913 -666
- package/src/styles/chrome.css +506 -0
- package/src/styles/listings.css +591 -0
- package/src/styles/theme.css +25 -19
- package/src/styles/tokens.css +284 -234
- package/src/styles/widgets.css +1059 -0
- package/tokens.json +18 -18
package/src/styles/base.css
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Document, accessibility floor,
|
|
3
|
-
* the
|
|
4
|
-
*
|
|
5
|
-
* token directly.
|
|
2
|
+
* Document, accessibility floor, the grid, section titles, page titles,
|
|
3
|
+
* actions, and the utility pages the host renders (search, forms, comments).
|
|
4
|
+
* Everything reads `tokens.css`.
|
|
6
5
|
*/
|
|
7
6
|
|
|
8
7
|
/* --------------------------------------------------------------------------
|
|
@@ -15,190 +14,228 @@
|
|
|
15
14
|
box-sizing: border-box;
|
|
16
15
|
}
|
|
17
16
|
|
|
17
|
+
html {
|
|
18
|
+
-webkit-text-size-adjust: 100%;
|
|
19
|
+
text-size-adjust: 100%;
|
|
20
|
+
scroll-padding-block-start: var(--ca-s6);
|
|
21
|
+
hanging-punctuation: first allow-end last;
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
body {
|
|
19
25
|
margin: 0;
|
|
20
|
-
background: var(--
|
|
21
|
-
color: var(--
|
|
22
|
-
font-family: var(--
|
|
23
|
-
font-size: var(--
|
|
24
|
-
|
|
26
|
+
background: var(--ca-canvas);
|
|
27
|
+
color: var(--ca-ink);
|
|
28
|
+
font-family: var(--ca-font-text);
|
|
29
|
+
font-size: var(--ca-text-md);
|
|
30
|
+
font-weight: var(--ca-weight-regular);
|
|
31
|
+
line-height: var(--ca-leading-text);
|
|
25
32
|
font-kerning: normal;
|
|
26
33
|
font-variant-ligatures: common-ligatures;
|
|
27
|
-
|
|
28
|
-
text-
|
|
29
|
-
-webkit-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
h1,
|
|
33
|
-
h2,
|
|
34
|
-
h3,
|
|
35
|
-
h4,
|
|
36
|
-
h5,
|
|
37
|
-
h6 {
|
|
38
|
-
font-family: var(--cg-font-display);
|
|
39
|
-
font-weight: var(--cg-weight-bold);
|
|
34
|
+
font-synthesis: none;
|
|
35
|
+
text-rendering: optimizeLegibility;
|
|
36
|
+
-webkit-font-smoothing: antialiased;
|
|
40
37
|
}
|
|
41
38
|
|
|
42
39
|
::selection {
|
|
43
|
-
background: var(--
|
|
44
|
-
color: var(--
|
|
40
|
+
background: var(--ca-green);
|
|
41
|
+
color: var(--ca-green-fg);
|
|
45
42
|
}
|
|
46
43
|
|
|
47
44
|
img,
|
|
48
45
|
video,
|
|
49
46
|
iframe {
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
display: block;
|
|
48
|
+
max-inline-size: 100%;
|
|
49
|
+
block-size: auto;
|
|
52
50
|
}
|
|
53
51
|
|
|
54
52
|
img {
|
|
55
|
-
display: block;
|
|
56
53
|
object-fit: cover;
|
|
57
54
|
}
|
|
58
55
|
|
|
56
|
+
:where(img, video) {
|
|
57
|
+
filter: brightness(var(--ca-image-brightness));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:where(h1, h2, h3, h4, h5, h6) {
|
|
61
|
+
margin: 0;
|
|
62
|
+
font-family: var(--ca-font-display);
|
|
63
|
+
font-optical-sizing: auto;
|
|
64
|
+
font-weight: var(--ca-weight-semibold);
|
|
65
|
+
line-height: var(--ca-leading-heading);
|
|
66
|
+
letter-spacing: var(--ca-tracking-heading);
|
|
67
|
+
text-wrap: balance;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:where(p, li, dd, figcaption, blockquote) {
|
|
71
|
+
text-wrap: pretty;
|
|
72
|
+
}
|
|
73
|
+
|
|
59
74
|
:where(a) {
|
|
60
|
-
color: var(--
|
|
61
|
-
text-decoration-
|
|
75
|
+
color: var(--ca-ink);
|
|
76
|
+
text-decoration-line: underline;
|
|
77
|
+
text-decoration-thickness: var(--ca-rule);
|
|
78
|
+
text-decoration-color: var(--ca-green);
|
|
79
|
+
text-underline-offset: 0.22em;
|
|
62
80
|
transition:
|
|
63
|
-
color var(--
|
|
64
|
-
text-decoration-color var(--
|
|
81
|
+
color var(--ca-duration) var(--ca-ease),
|
|
82
|
+
text-decoration-color var(--ca-duration) var(--ca-ease);
|
|
65
83
|
}
|
|
66
84
|
|
|
67
85
|
:where(a:hover) {
|
|
68
|
-
color: var(--
|
|
69
|
-
text-decoration-color: currentColor;
|
|
86
|
+
color: var(--ca-green);
|
|
70
87
|
}
|
|
71
88
|
|
|
72
89
|
:where(hr) {
|
|
73
|
-
block-size:
|
|
90
|
+
block-size: var(--ca-rule);
|
|
74
91
|
border: 0;
|
|
75
|
-
margin-block: var(--
|
|
76
|
-
background: var(--
|
|
92
|
+
margin-block: var(--ca-s10);
|
|
93
|
+
background: var(--ca-line);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:where(code, kbd, samp, pre) {
|
|
97
|
+
font-family: var(--ca-font-code);
|
|
98
|
+
font-size: 0.88em;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:where(data, time) {
|
|
102
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
77
103
|
}
|
|
78
104
|
|
|
79
|
-
/* A visually hidden label — `renderSocialLinks` (`@cogenta/theme-kit`) needs
|
|
80
|
-
this class to exist, and this is the standard clip-to-1px technique. */
|
|
81
105
|
.cg-visually-hidden {
|
|
82
106
|
position: absolute;
|
|
83
107
|
inline-size: 1px;
|
|
84
108
|
block-size: 1px;
|
|
109
|
+
margin: -1px;
|
|
110
|
+
padding: 0;
|
|
85
111
|
overflow: hidden;
|
|
86
|
-
clip:
|
|
112
|
+
clip-path: inset(50%);
|
|
87
113
|
white-space: nowrap;
|
|
114
|
+
border: 0;
|
|
88
115
|
}
|
|
89
116
|
|
|
90
117
|
/* --------------------------------------------------------------------------
|
|
91
|
-
Focus, targets, motion
|
|
118
|
+
Focus, targets, motion. Motion is a colour or an underline changing, in
|
|
119
|
+
under 150 ms; nothing moves in space, nothing fades in on scroll.
|
|
92
120
|
-------------------------------------------------------------------------- */
|
|
93
121
|
|
|
94
|
-
:where(a, button, summary, [tabindex]):focus-visible {
|
|
95
|
-
outline:
|
|
122
|
+
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
|
|
123
|
+
outline: var(--ca-rule-strong) solid var(--ca-green);
|
|
96
124
|
outline-offset: 3px;
|
|
97
|
-
border-radius: var(--cg-radius-xs);
|
|
98
125
|
}
|
|
99
126
|
|
|
100
|
-
:where(.cg-action, .
|
|
127
|
+
:where(.cg-action, .ca-nav-toggle-label, .cg-theme-toggle, summary) {
|
|
101
128
|
min-block-size: 44px;
|
|
102
|
-
min-inline-size: 44px;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
@supports (animation-timeline: view()) {
|
|
106
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
107
|
-
@keyframes cg-settle {
|
|
108
|
-
from {
|
|
109
|
-
opacity: 0;
|
|
110
|
-
transform: translateY(var(--cg-s3));
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
to {
|
|
114
|
-
opacity: 1;
|
|
115
|
-
transform: none;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.cg-block {
|
|
120
|
-
animation: cg-settle linear both;
|
|
121
|
-
animation-timeline: view();
|
|
122
|
-
animation-range: entry 0% cover 20%;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
129
|
}
|
|
126
130
|
|
|
131
|
+
/* Every transition in this theme reads `--ca-duration`, so reduced motion is
|
|
132
|
+
one declaration rather than an `!important` sweep over every element. */
|
|
127
133
|
@media (prefers-reduced-motion: reduce) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
*::after {
|
|
131
|
-
animation-duration: 1ms !important;
|
|
132
|
-
animation-iteration-count: 1 !important;
|
|
133
|
-
transition-duration: 1ms !important;
|
|
134
|
-
scroll-behavior: auto !important;
|
|
134
|
+
:root {
|
|
135
|
+
--ca-duration: 0ms;
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
.cg-skip-link {
|
|
139
140
|
position: absolute;
|
|
140
|
-
inset-inline-start: var(--
|
|
141
|
-
inset-block-start: calc(var(--
|
|
142
|
-
z-index:
|
|
143
|
-
padding: var(--
|
|
144
|
-
background: var(--
|
|
145
|
-
color: var(--
|
|
146
|
-
|
|
147
|
-
font-weight: var(--
|
|
141
|
+
inset-inline-start: var(--ca-s3);
|
|
142
|
+
inset-block-start: calc(var(--ca-s16) * -1);
|
|
143
|
+
z-index: 40;
|
|
144
|
+
padding: var(--ca-s2) var(--ca-s4);
|
|
145
|
+
background: var(--ca-action);
|
|
146
|
+
color: var(--ca-action-fg);
|
|
147
|
+
font-size: var(--ca-text-caption);
|
|
148
|
+
font-weight: var(--ca-weight-semibold);
|
|
148
149
|
text-decoration: none;
|
|
149
|
-
transition: inset-block-start var(--cg-duration) var(--cg-ease);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
.cg-skip-link:focus-visible {
|
|
153
|
-
inset-block-start: var(--
|
|
154
|
-
outline-color: var(--cg-canvas);
|
|
153
|
+
inset-block-start: var(--ca-s3);
|
|
155
154
|
}
|
|
156
155
|
|
|
157
156
|
/* --------------------------------------------------------------------------
|
|
158
|
-
|
|
157
|
+
The grid. Every block is a section around a twelve-column container; the
|
|
158
|
+
section rhythm is one variable, applied to all of them.
|
|
159
159
|
-------------------------------------------------------------------------- */
|
|
160
160
|
|
|
161
|
-
.
|
|
161
|
+
.ca-main {
|
|
162
162
|
display: flow-root;
|
|
163
|
-
/* Contains decorative bleed (the hero's own negative-inset halo) so it
|
|
164
|
-
never contributes to the document's horizontal scroll extent — found on
|
|
165
|
-
this theme's own scaffolded site at 360px. */
|
|
166
163
|
overflow-x: clip;
|
|
164
|
+
padding-block-end: calc(var(--ca-section) / 2);
|
|
167
165
|
}
|
|
168
166
|
|
|
169
|
-
.
|
|
170
|
-
|
|
167
|
+
.ca-container {
|
|
168
|
+
display: grid;
|
|
169
|
+
grid-template-columns: repeat(var(--ca-columns), minmax(0, 1fr));
|
|
170
|
+
column-gap: var(--ca-col-gap);
|
|
171
|
+
align-items: start;
|
|
172
|
+
inline-size: 100%;
|
|
173
|
+
max-inline-size: calc(var(--ca-page) + var(--ca-gutter) * 2);
|
|
171
174
|
margin-inline: auto;
|
|
172
|
-
|
|
173
|
-
padding-inline: var(--cg-gutter);
|
|
175
|
+
padding-inline: var(--ca-gutter);
|
|
174
176
|
}
|
|
175
177
|
|
|
176
|
-
/*
|
|
178
|
+
/* Below the wide breakpoint twelve columns only make slivers: every child
|
|
179
|
+
takes the full row, and each block redistributes from there. */
|
|
180
|
+
.ca-container > * {
|
|
181
|
+
grid-column: 1 / -1;
|
|
182
|
+
min-inline-size: 0;
|
|
183
|
+
}
|
|
177
184
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
padding-block: var(--cg-s10);
|
|
181
|
-
border-radius: var(--cg-radius-lg);
|
|
185
|
+
.ca-section {
|
|
186
|
+
padding-block: calc(var(--ca-section) / 2);
|
|
182
187
|
}
|
|
183
188
|
|
|
184
|
-
|
|
185
|
-
|
|
189
|
+
/* A page that ends on a band ends on it: no strip of paper between the band
|
|
190
|
+
and the footer. */
|
|
191
|
+
.ca-main:has(> .ca-section[data-band]:last-child),
|
|
192
|
+
.ca-main:has(> [data-variant-background]:last-child) {
|
|
193
|
+
padding-block-end: 0;
|
|
186
194
|
}
|
|
187
195
|
|
|
196
|
+
/* --- section titles ----------------------------------------------------------
|
|
197
|
+
A titled block names itself in the display face, on the first column, with
|
|
198
|
+
the same space under it everywhere. */
|
|
199
|
+
|
|
200
|
+
.ca-head {
|
|
201
|
+
margin-block-end: var(--ca-s10);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.ca-head__title {
|
|
205
|
+
max-inline-size: 22ch;
|
|
206
|
+
font-size: var(--ca-size-section);
|
|
207
|
+
font-weight: var(--ca-weight-semibold);
|
|
208
|
+
font-stretch: var(--ca-stretch-display);
|
|
209
|
+
line-height: var(--ca-leading-heading);
|
|
210
|
+
letter-spacing: var(--ca-tracking-display);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.ca-empty {
|
|
214
|
+
margin: 0;
|
|
215
|
+
padding: var(--ca-s6) 0;
|
|
216
|
+
border-block: var(--ca-rule) solid var(--ca-line);
|
|
217
|
+
color: var(--ca-ink-muted);
|
|
218
|
+
font-size: var(--ca-text-md);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* --- per-block variants (blocks@2.0, RFC 0002) --------------------------- */
|
|
222
|
+
|
|
223
|
+
[data-block][data-variant-background="muted"],
|
|
188
224
|
[data-block][data-variant-background="image"] {
|
|
189
|
-
background: var(--
|
|
225
|
+
background: var(--ca-band);
|
|
226
|
+
padding-block: calc(var(--ca-section) * 0.7);
|
|
190
227
|
}
|
|
191
228
|
|
|
192
|
-
[data-block][data-variant-
|
|
193
|
-
margin-block: calc(var(--
|
|
229
|
+
[data-block][data-variant-background] + [data-block][data-variant-background] {
|
|
230
|
+
margin-block-start: calc(var(--ca-section) / 2);
|
|
194
231
|
}
|
|
195
232
|
|
|
196
|
-
[data-block][data-variant-spacing="
|
|
197
|
-
|
|
233
|
+
[data-block][data-variant-spacing="compact"] {
|
|
234
|
+
padding-block: calc(var(--ca-section) / 4);
|
|
198
235
|
}
|
|
199
236
|
|
|
200
|
-
[data-block][data-variant-
|
|
201
|
-
|
|
237
|
+
[data-block][data-variant-spacing="spacious"] {
|
|
238
|
+
padding-block: calc(var(--ca-section) * 0.85);
|
|
202
239
|
}
|
|
203
240
|
|
|
204
241
|
[data-block][data-variant-align="center"] {
|
|
@@ -209,513 +246,369 @@ img {
|
|
|
209
246
|
text-align: end;
|
|
210
247
|
}
|
|
211
248
|
|
|
212
|
-
[data-block][data-variant-width="full"] {
|
|
249
|
+
[data-block][data-variant-width="full"] > .ca-container {
|
|
213
250
|
max-inline-size: none;
|
|
214
|
-
padding-inline: 0;
|
|
215
251
|
}
|
|
216
252
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
margin
|
|
221
|
-
|
|
222
|
-
font-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
253
|
+
/* --- the kicker: a short line above a title, in the organisation's green -- */
|
|
254
|
+
|
|
255
|
+
.ca-kicker {
|
|
256
|
+
margin: 0;
|
|
257
|
+
color: var(--ca-green);
|
|
258
|
+
font-family: var(--ca-font-text);
|
|
259
|
+
font-size: var(--ca-text-caption);
|
|
260
|
+
font-weight: var(--ca-weight-semibold);
|
|
261
|
+
line-height: var(--ca-leading-ui);
|
|
226
262
|
}
|
|
227
263
|
|
|
228
|
-
/*
|
|
229
|
-
Chrome — sticky header, pill nav, CSS-only mobile disclosure
|
|
230
|
-
-------------------------------------------------------------------------- */
|
|
264
|
+
/* --- the title of any page that has no hero and is not an event ------------ */
|
|
231
265
|
|
|
232
|
-
.
|
|
233
|
-
|
|
234
|
-
inset-block-start: 0;
|
|
235
|
-
z-index: 5;
|
|
236
|
-
padding: var(--cg-s4) var(--cg-gutter);
|
|
237
|
-
/* Flat and fully opaque, not a frosted-glass blur: a sticky header reads
|
|
238
|
-
as a solid plane sitting above the page, with a hairline marking where
|
|
239
|
-
it ends. */
|
|
240
|
-
background: var(--cg-canvas);
|
|
241
|
-
border-block-end: 1px solid var(--cg-line-soft);
|
|
266
|
+
.ca-page-head {
|
|
267
|
+
padding-block: calc(var(--ca-section) * 0.55) calc(var(--ca-section) * 0.2);
|
|
242
268
|
}
|
|
243
269
|
|
|
244
|
-
.
|
|
245
|
-
|
|
246
|
-
flex-wrap: wrap;
|
|
247
|
-
align-items: center;
|
|
248
|
-
gap: var(--cg-gap);
|
|
249
|
-
max-inline-size: var(--cg-page);
|
|
250
|
-
margin-inline: auto;
|
|
270
|
+
.ca-page-head__inner {
|
|
271
|
+
row-gap: var(--ca-s5);
|
|
251
272
|
}
|
|
252
273
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
font-family: var(--cg-font-display);
|
|
258
|
-
font-weight: var(--cg-weight-bold);
|
|
259
|
-
font-size: var(--cg-text-lg);
|
|
260
|
-
text-decoration: none;
|
|
261
|
-
margin-inline-end: auto;
|
|
274
|
+
/* Text that opens a page under its title follows the title at a heading's
|
|
275
|
+
distance, not a section's. */
|
|
276
|
+
.ca-page-head + .ca-section {
|
|
277
|
+
padding-block-start: var(--ca-s6);
|
|
262
278
|
}
|
|
263
279
|
|
|
264
|
-
.
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
280
|
+
.ca-page-head__title {
|
|
281
|
+
max-inline-size: 20ch;
|
|
282
|
+
font-size: var(--ca-size-title);
|
|
283
|
+
font-weight: var(--ca-weight-bold);
|
|
284
|
+
font-stretch: var(--ca-stretch-display);
|
|
285
|
+
line-height: var(--ca-leading-display);
|
|
286
|
+
letter-spacing: var(--ca-tracking-display);
|
|
270
287
|
}
|
|
271
288
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
289
|
+
.ca-page-head__lead {
|
|
290
|
+
margin: 0;
|
|
291
|
+
max-inline-size: 48ch;
|
|
292
|
+
color: var(--ca-ink-muted);
|
|
293
|
+
font-size: var(--ca-size-lead);
|
|
294
|
+
line-height: var(--ca-leading-lead);
|
|
278
295
|
}
|
|
279
296
|
|
|
280
|
-
.
|
|
297
|
+
.ca-page-head__meta {
|
|
281
298
|
display: flex;
|
|
282
299
|
flex-wrap: wrap;
|
|
283
|
-
|
|
284
|
-
gap: var(--cg-s5);
|
|
300
|
+
gap: var(--ca-s1) var(--ca-s5);
|
|
285
301
|
margin: 0;
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
font-
|
|
289
|
-
font-weight: var(--cg-weight-semibold);
|
|
302
|
+
color: var(--ca-ink-muted);
|
|
303
|
+
font-size: var(--ca-text-caption);
|
|
304
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
290
305
|
}
|
|
291
306
|
|
|
292
|
-
.
|
|
293
|
-
.cg-nav__items span {
|
|
294
|
-
color: var(--cg-ink-muted);
|
|
295
|
-
text-decoration: none;
|
|
296
|
-
border-radius: var(--cg-radius-pill);
|
|
297
|
-
padding: var(--cg-s2) var(--cg-s3);
|
|
298
|
-
transition:
|
|
299
|
-
background-color var(--cg-duration) var(--cg-ease),
|
|
300
|
-
color var(--cg-duration) var(--cg-ease);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
.cg-nav__items a:hover {
|
|
304
|
-
color: var(--cg-ink);
|
|
305
|
-
background: var(--cg-surface-sunken);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
/* The mobile disclosure — `<details>`/`<summary>`, zero JavaScript. */
|
|
309
|
-
.cg-nav-toggle {
|
|
310
|
-
position: relative;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
.cg-nav-toggle__button {
|
|
307
|
+
.ca-page-head__terms {
|
|
314
308
|
display: flex;
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
border-radius: var(--cg-radius-pill);
|
|
320
|
-
background: var(--cg-surface-sunken);
|
|
321
|
-
color: var(--cg-ink);
|
|
322
|
-
cursor: pointer;
|
|
309
|
+
flex-wrap: wrap;
|
|
310
|
+
gap: var(--ca-s1) var(--ca-s4);
|
|
311
|
+
margin: 0;
|
|
312
|
+
padding: 0;
|
|
323
313
|
list-style: none;
|
|
314
|
+
font-size: var(--ca-text-caption);
|
|
315
|
+
font-weight: var(--ca-weight-semibold);
|
|
324
316
|
}
|
|
325
317
|
|
|
326
|
-
.
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
.cg-nav-toggle__icon {
|
|
331
|
-
inline-size: 1.25rem;
|
|
332
|
-
block-size: 1.25rem;
|
|
318
|
+
.ca-page-head__terms a {
|
|
319
|
+
color: var(--ca-green);
|
|
320
|
+
text-decoration-color: transparent;
|
|
333
321
|
}
|
|
334
322
|
|
|
335
|
-
.
|
|
336
|
-
|
|
337
|
-
that suppression stops *painting* the content, but an absolutely
|
|
338
|
-
positioned panel this far off its own toggle can still be measured into
|
|
339
|
-
the document's horizontal extent, producing a real, scrollable overflow
|
|
340
|
-
with no visible cause — found on this theme's own scaffolded site at
|
|
341
|
-
360px. `display: none` here removes the box outright; the toggle's own
|
|
342
|
-
`[open]` rule below is the only thing that ever shows it again. */
|
|
343
|
-
display: none;
|
|
344
|
-
position: absolute;
|
|
345
|
-
inset-inline-end: 0;
|
|
346
|
-
inset-block-start: calc(100% + var(--cg-s2));
|
|
347
|
-
z-index: 6;
|
|
348
|
-
min-inline-size: 13rem;
|
|
349
|
-
padding: var(--cg-s3);
|
|
350
|
-
background: var(--cg-surface-raised);
|
|
351
|
-
border-radius: var(--cg-radius-md);
|
|
352
|
-
box-shadow: var(--cogenta-shadow-md);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
.cg-nav--mobile .cg-nav__items {
|
|
356
|
-
flex-direction: column;
|
|
357
|
-
align-items: stretch;
|
|
358
|
-
gap: var(--cg-s1);
|
|
323
|
+
.ca-page-head__terms a:hover {
|
|
324
|
+
text-decoration-color: currentColor;
|
|
359
325
|
}
|
|
360
326
|
|
|
361
|
-
.
|
|
362
|
-
|
|
327
|
+
.ca-page-head__cover {
|
|
328
|
+
margin: var(--ca-s6) 0 0;
|
|
363
329
|
}
|
|
364
330
|
|
|
365
|
-
.
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
331
|
+
.ca-page-head__image {
|
|
332
|
+
inline-size: 100%;
|
|
333
|
+
aspect-ratio: 16 / 9;
|
|
334
|
+
background: var(--ca-band);
|
|
369
335
|
}
|
|
370
336
|
|
|
371
|
-
@media (min-width:
|
|
372
|
-
.
|
|
373
|
-
|
|
337
|
+
@media (min-width: 64rem) {
|
|
338
|
+
.ca-page-head__title,
|
|
339
|
+
.ca-page-head__meta,
|
|
340
|
+
.ca-page-head__terms {
|
|
341
|
+
grid-column: 1 / span 9;
|
|
374
342
|
}
|
|
375
343
|
|
|
376
|
-
.
|
|
377
|
-
|
|
344
|
+
.ca-page-head__lead {
|
|
345
|
+
grid-column: 1 / span 7;
|
|
378
346
|
}
|
|
379
347
|
}
|
|
380
348
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
349
|
+
/* --------------------------------------------------------------------------
|
|
350
|
+
Actions: a filled green rectangle for the primary intent, and for the rest
|
|
351
|
+
the words underlined with an arrow after them. No lift, no shadow. The
|
|
352
|
+
yellow belongs to the donation ask, set by the blocks that carry it.
|
|
353
|
+
-------------------------------------------------------------------------- */
|
|
384
354
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
reads as this theme's own chrome rather than a borrowed control. */
|
|
389
|
-
.cg-theme-toggle {
|
|
390
|
-
display: inline-flex;
|
|
355
|
+
.cg-actions {
|
|
356
|
+
display: flex;
|
|
357
|
+
flex-wrap: wrap;
|
|
391
358
|
align-items: center;
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
border-radius: var(--cg-radius-pill);
|
|
397
|
-
border: 0;
|
|
398
|
-
background: var(--cg-surface-sunken);
|
|
399
|
-
color: var(--cg-ink);
|
|
400
|
-
cursor: pointer;
|
|
401
|
-
transition: background-color var(--cg-duration) var(--cg-ease);
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
.cg-theme-toggle:hover {
|
|
405
|
-
background: var(--cg-accent-soft);
|
|
406
|
-
color: var(--cg-accent-soft-fg);
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
.cg-theme-toggle__icon {
|
|
410
|
-
inline-size: 1.2rem;
|
|
411
|
-
block-size: 1.2rem;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
.cg-theme-toggle__icon--moon {
|
|
415
|
-
display: none;
|
|
359
|
+
gap: var(--ca-s4) var(--ca-s8);
|
|
360
|
+
margin: 0;
|
|
361
|
+
padding: 0;
|
|
362
|
+
list-style: none;
|
|
416
363
|
}
|
|
417
364
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
:
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
365
|
+
.cg-action {
|
|
366
|
+
font-family: var(--ca-font-text);
|
|
367
|
+
font-size: var(--ca-text-md);
|
|
368
|
+
font-weight: var(--ca-weight-semibold);
|
|
369
|
+
line-height: 1.2;
|
|
370
|
+
text-decoration: none;
|
|
371
|
+
transition:
|
|
372
|
+
background-color var(--ca-duration) var(--ca-ease),
|
|
373
|
+
color var(--ca-duration) var(--ca-ease),
|
|
374
|
+
border-color var(--ca-duration) var(--ca-ease),
|
|
375
|
+
text-decoration-color var(--ca-duration) var(--ca-ease);
|
|
428
376
|
}
|
|
429
377
|
|
|
430
|
-
|
|
431
|
-
display:
|
|
378
|
+
.cg-action[data-emphasis="primary"] {
|
|
379
|
+
display: inline-flex;
|
|
380
|
+
align-items: center;
|
|
381
|
+
justify-content: center;
|
|
382
|
+
padding: var(--ca-s3) var(--ca-s6);
|
|
383
|
+
border: var(--ca-rule) solid var(--ca-action);
|
|
384
|
+
border-radius: var(--ca-radius-control);
|
|
385
|
+
background: var(--ca-action);
|
|
386
|
+
color: var(--ca-action-fg);
|
|
387
|
+
white-space: nowrap;
|
|
432
388
|
}
|
|
433
389
|
|
|
434
|
-
|
|
435
|
-
|
|
390
|
+
.cg-action[data-emphasis="primary"]:hover {
|
|
391
|
+
background: var(--ca-action-hover);
|
|
392
|
+
border-color: var(--ca-action-hover);
|
|
393
|
+
color: var(--ca-action-hover-fg);
|
|
436
394
|
}
|
|
437
395
|
|
|
438
|
-
/*
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
.
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
border-block-start: 1px solid var(--cg-line-soft);
|
|
447
|
-
font-size: var(--cg-text-sm);
|
|
396
|
+
/* A text link with an arrow after it. Not a flex container: in one, the
|
|
397
|
+
words and the arrow are two flex items and each gets its own underline.
|
|
398
|
+
As inline content the words carry one continuous underline, and the
|
|
399
|
+
arrow, an inline-block, inherits none (CSS Text Decoration: decorations do
|
|
400
|
+
not propagate to atomic inlines). The same rules draw every arrow link of
|
|
401
|
+
the theme. The link itself is inline, so a long label wraps like text. */
|
|
402
|
+
.cg-action[data-emphasis="secondary"] {
|
|
403
|
+
display: inline-block;
|
|
448
404
|
}
|
|
449
405
|
|
|
450
|
-
.cg-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
406
|
+
.cg-action[data-emphasis="secondary"],
|
|
407
|
+
.ca-arrow-link {
|
|
408
|
+
color: var(--ca-ink);
|
|
409
|
+
font-weight: var(--ca-weight-semibold);
|
|
410
|
+
text-decoration-line: underline;
|
|
411
|
+
text-decoration-thickness: var(--ca-rule-strong);
|
|
412
|
+
text-decoration-color: var(--ca-green);
|
|
413
|
+
text-decoration-skip-ink: auto;
|
|
414
|
+
text-underline-offset: 0.28em;
|
|
458
415
|
}
|
|
459
416
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
417
|
+
/* An action's label is a few words: it stays on one line with its arrow. */
|
|
418
|
+
.cg-action[data-emphasis="secondary"] {
|
|
419
|
+
padding-block: var(--ca-s3);
|
|
420
|
+
white-space: nowrap;
|
|
465
421
|
}
|
|
466
422
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
text-decoration: none;
|
|
423
|
+
/* The arrow rides on the last word of the link (`arrowWords`), which cannot
|
|
424
|
+
break, so the arrow is never alone at the start of a line. */
|
|
425
|
+
.ca-arrow-link__end,
|
|
426
|
+
.ca-arrow-link__start {
|
|
427
|
+
white-space: nowrap;
|
|
473
428
|
}
|
|
474
429
|
|
|
475
|
-
.cg-
|
|
476
|
-
|
|
430
|
+
.cg-action[data-emphasis="secondary"]::after,
|
|
431
|
+
.ca-arrow-link__end::after {
|
|
432
|
+
content: "\2192" / "";
|
|
433
|
+
display: inline-block;
|
|
434
|
+
margin-inline-start: 0.35em;
|
|
477
435
|
}
|
|
478
436
|
|
|
479
|
-
.
|
|
480
|
-
|
|
437
|
+
.ca-arrow-link__start::before {
|
|
438
|
+
content: "\2190" / "";
|
|
439
|
+
display: inline-block;
|
|
440
|
+
margin-inline-end: 0.35em;
|
|
481
441
|
}
|
|
482
442
|
|
|
483
|
-
.cg-
|
|
484
|
-
.
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
gap: var(--cg-s3);
|
|
488
|
-
font-weight: var(--cg-weight-regular);
|
|
443
|
+
.cg-action[data-emphasis="secondary"]:hover,
|
|
444
|
+
.ca-arrow-link:hover {
|
|
445
|
+
color: var(--ca-green);
|
|
446
|
+
text-decoration-color: currentColor;
|
|
489
447
|
}
|
|
490
448
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
449
|
+
/* The donation ask: ink words on the signal yellow. */
|
|
450
|
+
.ca-ask .cg-action[data-emphasis="primary"],
|
|
451
|
+
.ca-header__action {
|
|
452
|
+
border-color: var(--ca-signal);
|
|
453
|
+
background: var(--ca-signal);
|
|
454
|
+
color: var(--ca-signal-ink);
|
|
494
455
|
}
|
|
495
456
|
|
|
496
|
-
.cg-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
list-style: none;
|
|
457
|
+
.ca-ask .cg-action[data-emphasis="primary"]:hover,
|
|
458
|
+
.ca-header__action:hover {
|
|
459
|
+
border-color: var(--ca-signal-hover);
|
|
460
|
+
background: var(--ca-signal-hover);
|
|
461
|
+
color: var(--ca-signal-ink);
|
|
502
462
|
}
|
|
503
463
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
inline-size: 2.25rem;
|
|
509
|
-
block-size: 2.25rem;
|
|
510
|
-
border-radius: var(--cg-radius-pill);
|
|
511
|
-
background: var(--cg-surface-raised);
|
|
512
|
-
color: var(--cg-ink-muted);
|
|
513
|
-
box-shadow: var(--cg-ring);
|
|
514
|
-
}
|
|
464
|
+
/* --------------------------------------------------------------------------
|
|
465
|
+
Search, forms and comments: the utility pages the host renders, in the
|
|
466
|
+
same register. The host sets them in a bare `<main class="cg-main">`.
|
|
467
|
+
-------------------------------------------------------------------------- */
|
|
515
468
|
|
|
516
|
-
.cg-
|
|
517
|
-
|
|
469
|
+
:is(.cg-main, .cg-sidebar-layout__content) > .cg-page__title,
|
|
470
|
+
.cg-search__form,
|
|
471
|
+
.cg-search__results,
|
|
472
|
+
.cg-search__empty,
|
|
473
|
+
.cg-search__error,
|
|
474
|
+
.cg-form,
|
|
475
|
+
.cg-form__confirmation {
|
|
476
|
+
inline-size: 100%;
|
|
477
|
+
max-inline-size: calc(var(--ca-page) + var(--ca-gutter) * 2);
|
|
478
|
+
margin-inline: auto;
|
|
479
|
+
padding-inline: var(--ca-gutter);
|
|
518
480
|
}
|
|
519
481
|
|
|
520
|
-
.cg-
|
|
521
|
-
|
|
522
|
-
|
|
482
|
+
:is(.cg-main, .cg-sidebar-layout__content) > .cg-page__title {
|
|
483
|
+
padding-block: calc(var(--ca-section) * 0.55) var(--ca-s8);
|
|
484
|
+
font-size: var(--ca-size-title);
|
|
485
|
+
font-weight: var(--ca-weight-bold);
|
|
486
|
+
font-stretch: var(--ca-stretch-display);
|
|
487
|
+
line-height: var(--ca-leading-display);
|
|
488
|
+
letter-spacing: var(--ca-tracking-display);
|
|
523
489
|
}
|
|
524
490
|
|
|
525
|
-
.cg-
|
|
526
|
-
|
|
491
|
+
.cg-search__form > *,
|
|
492
|
+
.cg-form > * {
|
|
493
|
+
max-inline-size: 44rem;
|
|
527
494
|
}
|
|
528
495
|
|
|
529
|
-
.cg-
|
|
496
|
+
.cg-search__form {
|
|
530
497
|
display: flex;
|
|
531
498
|
flex-wrap: wrap;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
margin-
|
|
536
|
-
padding-block-start: var(--cg-s6);
|
|
537
|
-
font-size: var(--cg-text-xs);
|
|
538
|
-
letter-spacing: var(--cg-tracking-wide);
|
|
539
|
-
text-transform: uppercase;
|
|
540
|
-
color: var(--cg-ink-subtle);
|
|
499
|
+
/* The field and its button share one height on their line. */
|
|
500
|
+
align-items: stretch;
|
|
501
|
+
gap: var(--ca-s3) var(--ca-s4);
|
|
502
|
+
margin-block: 0 var(--ca-s10);
|
|
541
503
|
}
|
|
542
504
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
margin: var(--cg-s8) 0 0;
|
|
552
|
-
padding: 0;
|
|
553
|
-
list-style: none;
|
|
505
|
+
.cg-search__form label,
|
|
506
|
+
.cg-form__field label,
|
|
507
|
+
.cg-comment__form label {
|
|
508
|
+
display: block;
|
|
509
|
+
margin-block-end: var(--ca-s2);
|
|
510
|
+
color: var(--ca-ink);
|
|
511
|
+
font-size: var(--ca-text-caption);
|
|
512
|
+
font-weight: var(--ca-weight-semibold);
|
|
554
513
|
}
|
|
555
514
|
|
|
556
|
-
.cg-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
justify-content: center;
|
|
560
|
-
gap: var(--cg-s2);
|
|
561
|
-
padding: var(--cg-s3) var(--cg-s6);
|
|
562
|
-
border: 0;
|
|
563
|
-
border-radius: var(--cg-radius-pill);
|
|
564
|
-
font-size: var(--cg-text-sm);
|
|
565
|
-
font-weight: var(--cg-weight-bold);
|
|
566
|
-
letter-spacing: var(--cg-tracking-snug);
|
|
567
|
-
line-height: var(--cg-leading-snug);
|
|
568
|
-
text-decoration: none;
|
|
569
|
-
white-space: nowrap;
|
|
570
|
-
transition:
|
|
571
|
-
background-color var(--cg-duration) var(--cg-ease),
|
|
572
|
-
color var(--cg-duration) var(--cg-ease),
|
|
573
|
-
box-shadow var(--cg-duration) var(--cg-ease),
|
|
574
|
-
transform var(--cg-duration-fast) var(--cg-ease);
|
|
515
|
+
.cg-search__form label {
|
|
516
|
+
flex-basis: 100%;
|
|
517
|
+
margin: 0;
|
|
575
518
|
}
|
|
576
519
|
|
|
577
|
-
.cg-
|
|
578
|
-
|
|
579
|
-
color: var(--cg-accent-fg);
|
|
580
|
-
box-shadow: var(--cogenta-shadow-sm);
|
|
520
|
+
.cg-search__form input[type="search"] {
|
|
521
|
+
flex: 1 1 18rem;
|
|
581
522
|
}
|
|
582
523
|
|
|
583
|
-
.cg-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
524
|
+
.cg-search__results {
|
|
525
|
+
display: grid;
|
|
526
|
+
margin-block: 0 var(--ca-section);
|
|
527
|
+
list-style: none;
|
|
528
|
+
font-family: var(--ca-font-display);
|
|
529
|
+
font-size: var(--ca-text-xl);
|
|
530
|
+
font-weight: var(--ca-weight-semibold);
|
|
587
531
|
}
|
|
588
532
|
|
|
589
|
-
.cg-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
box-shadow: var(--cg-ring-strong);
|
|
533
|
+
.cg-search__results > * {
|
|
534
|
+
padding-block: var(--ca-s5);
|
|
535
|
+
border-block-start: var(--ca-rule) solid var(--ca-line);
|
|
593
536
|
}
|
|
594
537
|
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
538
|
+
/* A result reads like a row of the calendar: the title in the display face,
|
|
539
|
+
the green underline on hover, the summary in the text face under it. */
|
|
540
|
+
.cg-search__results > :first-child {
|
|
541
|
+
border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
|
|
598
542
|
}
|
|
599
543
|
|
|
600
|
-
.cg-
|
|
601
|
-
|
|
602
|
-
box-shadow: none;
|
|
544
|
+
.cg-search__hit {
|
|
545
|
+
line-height: var(--ca-leading-heading);
|
|
603
546
|
}
|
|
604
547
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
align-items: center;
|
|
609
|
-
padding: var(--cg-s1) var(--cg-s4);
|
|
610
|
-
border-radius: var(--cg-radius-pill);
|
|
611
|
-
background: var(--cg-accent-soft);
|
|
612
|
-
color: var(--cg-accent-soft-fg);
|
|
613
|
-
font-size: var(--cg-text-xs);
|
|
614
|
-
font-weight: var(--cg-weight-bold);
|
|
615
|
-
letter-spacing: var(--cg-tracking-wide);
|
|
616
|
-
text-transform: uppercase;
|
|
548
|
+
.cg-search__title {
|
|
549
|
+
font-stretch: var(--ca-stretch-display);
|
|
550
|
+
letter-spacing: var(--ca-tracking-heading);
|
|
617
551
|
}
|
|
618
552
|
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
.
|
|
624
|
-
.cg-cta__title,
|
|
625
|
-
.cg-faq__title,
|
|
626
|
-
.cg-impact__title,
|
|
627
|
-
.cg-logos__title,
|
|
628
|
-
.cg-list__title-heading,
|
|
629
|
-
.cg-pricing__title,
|
|
630
|
-
.cg-accordion__title,
|
|
631
|
-
.cg-stat-counters__title {
|
|
632
|
-
margin: 0 0 var(--cg-s10);
|
|
633
|
-
font-size: var(--cg-text-2xl);
|
|
634
|
-
line-height: var(--cg-leading-snug);
|
|
635
|
-
letter-spacing: var(--cg-tracking-tight);
|
|
636
|
-
text-wrap: balance;
|
|
553
|
+
a.cg-search__title {
|
|
554
|
+
color: var(--ca-ink);
|
|
555
|
+
text-decoration-thickness: var(--ca-rule-strong);
|
|
556
|
+
text-decoration-color: transparent;
|
|
557
|
+
text-underline-offset: 0.16em;
|
|
637
558
|
}
|
|
638
559
|
|
|
639
|
-
.cg-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
.cg-list__items,
|
|
643
|
-
.cg-faq__items,
|
|
644
|
-
.cg-accordion__items,
|
|
645
|
-
.cg-pricing__tiers {
|
|
646
|
-
margin: 0;
|
|
647
|
-
padding: 0;
|
|
648
|
-
list-style: none;
|
|
560
|
+
a.cg-search__title:hover {
|
|
561
|
+
color: var(--ca-ink);
|
|
562
|
+
text-decoration-color: var(--ca-green);
|
|
649
563
|
}
|
|
650
564
|
|
|
651
|
-
.cg-
|
|
652
|
-
.cg-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
scrollbar-width: thin;
|
|
658
|
-
scrollbar-color: var(--cg-line-strong) transparent;
|
|
659
|
-
padding-block: var(--cg-s2);
|
|
660
|
-
margin-block: calc(var(--cg-s2) * -1);
|
|
565
|
+
.cg-search__excerpt,
|
|
566
|
+
.cg-search__meta,
|
|
567
|
+
.cg-search__count {
|
|
568
|
+
font-family: var(--ca-font-text);
|
|
569
|
+
font-weight: var(--ca-weight-regular);
|
|
570
|
+
letter-spacing: 0;
|
|
661
571
|
}
|
|
662
572
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
.cg-search__empty,
|
|
670
|
-
.cg-search__error,
|
|
671
|
-
.cg-form,
|
|
672
|
-
.cg-form__confirmation,
|
|
673
|
-
.cg-comments {
|
|
674
|
-
max-inline-size: var(--cg-page);
|
|
675
|
-
margin-inline: auto;
|
|
676
|
-
padding-inline: var(--cg-gutter);
|
|
573
|
+
.cg-search__excerpt {
|
|
574
|
+
margin: var(--ca-s2) 0 0;
|
|
575
|
+
max-inline-size: 64ch;
|
|
576
|
+
color: var(--ca-ink-muted);
|
|
577
|
+
font-size: var(--ca-text-md);
|
|
578
|
+
line-height: var(--ca-leading-text);
|
|
677
579
|
}
|
|
678
580
|
|
|
679
|
-
.cg-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
margin-block-end: var(--cg-s8);
|
|
581
|
+
.cg-search__meta {
|
|
582
|
+
margin: var(--ca-s2) 0 0;
|
|
583
|
+
color: var(--ca-green);
|
|
584
|
+
font-size: var(--ca-text-caption);
|
|
585
|
+
font-weight: var(--ca-weight-semibold);
|
|
685
586
|
}
|
|
686
587
|
|
|
687
|
-
.cg-
|
|
588
|
+
.cg-search__count {
|
|
688
589
|
display: block;
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
.cg-search__form input[type="search"] {
|
|
695
|
-
flex: 1 1 16rem;
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
.cg-search__results {
|
|
699
|
-
margin: 0 auto;
|
|
700
|
-
padding-inline-start: var(--cg-gutter);
|
|
701
|
-
display: grid;
|
|
702
|
-
gap: var(--cg-s4);
|
|
703
|
-
font-size: var(--cg-text-lg);
|
|
590
|
+
margin-block-start: var(--ca-s3);
|
|
591
|
+
color: var(--ca-ink-muted);
|
|
592
|
+
font-size: var(--ca-text-md);
|
|
593
|
+
line-height: var(--ca-leading-ui);
|
|
704
594
|
}
|
|
705
595
|
|
|
706
596
|
.cg-search__empty,
|
|
707
597
|
.cg-comments__empty,
|
|
708
|
-
.cg-comments__closed
|
|
709
|
-
|
|
598
|
+
.cg-comments__closed,
|
|
599
|
+
.cg-form__help {
|
|
600
|
+
color: var(--ca-ink-muted);
|
|
710
601
|
}
|
|
711
602
|
|
|
712
603
|
.cg-search__error,
|
|
713
604
|
.cg-form__error,
|
|
714
605
|
.cg-form__field-error {
|
|
715
|
-
color: var(--
|
|
716
|
-
font-weight: var(--
|
|
606
|
+
color: var(--ca-ink);
|
|
607
|
+
font-weight: var(--ca-weight-semibold);
|
|
717
608
|
}
|
|
718
609
|
|
|
610
|
+
/* Fields are a box with a real edge: a form a neighbour fills in once a
|
|
611
|
+
year must look like one. */
|
|
719
612
|
.cg-search__form input,
|
|
720
613
|
.cg-form__field input,
|
|
721
614
|
.cg-form__field select,
|
|
@@ -723,66 +616,82 @@ img {
|
|
|
723
616
|
.cg-comment__form input,
|
|
724
617
|
.cg-comment__form textarea {
|
|
725
618
|
inline-size: 100%;
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
border
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
619
|
+
min-block-size: 44px;
|
|
620
|
+
padding: var(--ca-s2) var(--ca-s3);
|
|
621
|
+
border: var(--ca-rule) solid var(--ca-line-strong);
|
|
622
|
+
border-radius: var(--ca-radius-control);
|
|
623
|
+
background: var(--ca-canvas);
|
|
624
|
+
color: var(--ca-ink);
|
|
625
|
+
font-family: var(--ca-font-text);
|
|
626
|
+
font-size: var(--ca-text-md);
|
|
627
|
+
line-height: var(--ca-leading-ui);
|
|
628
|
+
transition: border-color var(--ca-duration) var(--ca-ease);
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
.cg-form__field textarea,
|
|
632
|
+
.cg-comment__form textarea {
|
|
633
|
+
padding: var(--ca-s3);
|
|
634
|
+
resize: vertical;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.cg-search__form input:focus-visible,
|
|
638
|
+
.cg-form__field :is(input, select, textarea):focus-visible,
|
|
639
|
+
.cg-comment__form :is(input, textarea):focus-visible {
|
|
640
|
+
outline: var(--ca-rule-strong) solid var(--ca-green);
|
|
641
|
+
outline-offset: 1px;
|
|
642
|
+
border-color: var(--ca-green);
|
|
732
643
|
}
|
|
733
644
|
|
|
734
645
|
.cg-form__field input[aria-invalid="true"],
|
|
735
646
|
.cg-form__field select[aria-invalid="true"],
|
|
736
647
|
.cg-form__field textarea[aria-invalid="true"] {
|
|
737
|
-
border-
|
|
738
|
-
border-
|
|
648
|
+
border-color: var(--ca-ink);
|
|
649
|
+
border-width: var(--ca-rule-strong);
|
|
739
650
|
}
|
|
740
651
|
|
|
741
652
|
.cg-search__form button,
|
|
742
653
|
.cg-form button[type="submit"],
|
|
743
654
|
.cg-comment__form button[type="submit"] {
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
border
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
655
|
+
min-block-size: 44px;
|
|
656
|
+
padding: var(--ca-s3) var(--ca-s6);
|
|
657
|
+
border: var(--ca-rule) solid var(--ca-action);
|
|
658
|
+
border-radius: var(--ca-radius-control);
|
|
659
|
+
background: var(--ca-action);
|
|
660
|
+
color: var(--ca-action-fg);
|
|
661
|
+
font-family: var(--ca-font-text);
|
|
662
|
+
font-size: var(--ca-text-md);
|
|
663
|
+
font-weight: var(--ca-weight-semibold);
|
|
750
664
|
cursor: pointer;
|
|
751
|
-
transition:
|
|
665
|
+
transition:
|
|
666
|
+
background-color var(--ca-duration) var(--ca-ease),
|
|
667
|
+
border-color var(--ca-duration) var(--ca-ease),
|
|
668
|
+
color var(--ca-duration) var(--ca-ease);
|
|
752
669
|
}
|
|
753
670
|
|
|
754
671
|
.cg-search__form button:hover,
|
|
755
672
|
.cg-form button[type="submit"]:hover,
|
|
756
673
|
.cg-comment__form button[type="submit"]:hover {
|
|
757
|
-
background: var(--
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
.cg-form__field,
|
|
761
|
-
.cg-comment__form p {
|
|
762
|
-
display: block;
|
|
763
|
-
margin-block-end: var(--cg-s5);
|
|
674
|
+
background: var(--ca-action-hover);
|
|
675
|
+
border-color: var(--ca-action-hover);
|
|
676
|
+
color: var(--ca-action-hover-fg);
|
|
764
677
|
}
|
|
765
678
|
|
|
766
|
-
.cg-form__field
|
|
767
|
-
.cg-comment__form label {
|
|
679
|
+
.cg-form__field {
|
|
768
680
|
display: block;
|
|
769
|
-
|
|
770
|
-
font-weight: var(--cg-weight-semibold);
|
|
771
|
-
margin-block-end: var(--cg-s2);
|
|
681
|
+
margin-block-end: var(--ca-s6);
|
|
772
682
|
}
|
|
773
683
|
|
|
774
684
|
.cg-form__help {
|
|
775
|
-
margin: var(--
|
|
776
|
-
font-size: var(--
|
|
777
|
-
color: var(--cg-ink-muted);
|
|
685
|
+
margin: var(--ca-s2) 0 0;
|
|
686
|
+
font-size: var(--ca-text-sm);
|
|
778
687
|
}
|
|
779
688
|
|
|
780
689
|
.cg-form__choice {
|
|
781
690
|
display: inline-flex;
|
|
782
691
|
align-items: center;
|
|
783
|
-
gap: var(--
|
|
784
|
-
margin-inline-end: var(--
|
|
785
|
-
font-weight:
|
|
692
|
+
gap: var(--ca-s2);
|
|
693
|
+
margin-inline-end: var(--ca-s4);
|
|
694
|
+
font-weight: var(--ca-weight-regular);
|
|
786
695
|
}
|
|
787
696
|
|
|
788
697
|
.cg-form__honeypot,
|
|
@@ -794,11 +703,33 @@ img {
|
|
|
794
703
|
inset-inline-start: -9999px;
|
|
795
704
|
}
|
|
796
705
|
|
|
706
|
+
/* Comments sit on the reading column of the text above them. */
|
|
797
707
|
.cg-comments {
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
708
|
+
display: grid;
|
|
709
|
+
grid-template-columns: repeat(var(--ca-columns), minmax(0, 1fr));
|
|
710
|
+
column-gap: var(--ca-col-gap);
|
|
711
|
+
max-inline-size: calc(var(--ca-page) + var(--ca-gutter) * 2);
|
|
712
|
+
margin: 0 auto var(--ca-section);
|
|
713
|
+
padding: 0 var(--ca-gutter);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.cg-comments > * {
|
|
717
|
+
grid-column: 1 / -1;
|
|
718
|
+
min-inline-size: 0;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
@media (min-width: 64rem) {
|
|
722
|
+
.cg-comments > * {
|
|
723
|
+
grid-column: 1 / span 8;
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
.cg-comments > h2 {
|
|
728
|
+
padding-block-start: var(--ca-s5);
|
|
729
|
+
border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
|
|
730
|
+
margin-block-end: var(--ca-s5);
|
|
731
|
+
font-size: var(--ca-size-section);
|
|
732
|
+
font-stretch: var(--ca-stretch-display);
|
|
802
733
|
}
|
|
803
734
|
|
|
804
735
|
.cg-comments__list,
|
|
@@ -809,34 +740,52 @@ img {
|
|
|
809
740
|
}
|
|
810
741
|
|
|
811
742
|
.cg-comment {
|
|
812
|
-
padding-block: var(--
|
|
813
|
-
border-block-
|
|
743
|
+
padding-block: var(--ca-s5);
|
|
744
|
+
border-block-start: var(--ca-rule) solid var(--ca-line);
|
|
814
745
|
}
|
|
815
746
|
|
|
816
747
|
.cg-comment__replies {
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
.cg-comment__replies .cg-comment {
|
|
821
|
-
padding-inline-start: var(--cg-s6);
|
|
822
|
-
border-inline-start: 2px solid var(--cg-line-soft);
|
|
823
|
-
border-block-end: 0;
|
|
748
|
+
margin-block-start: var(--ca-s4);
|
|
749
|
+
padding-inline-start: var(--ca-s6);
|
|
750
|
+
border-inline-start: var(--ca-rule) solid var(--ca-line);
|
|
824
751
|
}
|
|
825
752
|
|
|
826
753
|
.cg-comment__meta {
|
|
827
754
|
display: flex;
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
margin-block-end: var(--cg-s2);
|
|
755
|
+
flex-wrap: wrap;
|
|
756
|
+
gap: var(--ca-s1) var(--ca-s3);
|
|
757
|
+
margin: 0 0 var(--ca-s2);
|
|
758
|
+
font-size: var(--ca-text-sm);
|
|
833
759
|
}
|
|
834
760
|
|
|
835
761
|
.cg-comment__author {
|
|
836
|
-
|
|
837
|
-
|
|
762
|
+
color: var(--ca-ink);
|
|
763
|
+
font-weight: var(--ca-weight-semibold);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
.cg-comment__date {
|
|
767
|
+
color: var(--ca-ink-muted);
|
|
768
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
838
769
|
}
|
|
839
770
|
|
|
840
|
-
.cg-comment__body {
|
|
771
|
+
.cg-comment__body p {
|
|
841
772
|
margin: 0;
|
|
842
773
|
}
|
|
774
|
+
|
|
775
|
+
.cg-comment__body p + p {
|
|
776
|
+
margin-block-start: var(--ca-s3);
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.cg-comment__form {
|
|
780
|
+
display: grid;
|
|
781
|
+
gap: var(--ca-s3);
|
|
782
|
+
margin-block-start: var(--ca-s6);
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
.cg-comment__form > * {
|
|
786
|
+
margin: 0;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
.cg-comment__form button[type="submit"] {
|
|
790
|
+
justify-self: start;
|
|
791
|
+
}
|