@cogenta/theme-magazine 1.1.3 → 1.3.4

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 (126) hide show
  1. package/dist/src/index.d.ts +3 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +3 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/render/article.d.ts +32 -0
  6. package/dist/src/render/article.d.ts.map +1 -0
  7. package/dist/src/render/article.js +137 -0
  8. package/dist/src/render/article.js.map +1 -0
  9. package/dist/src/render/blocks/accordion.d.ts.map +1 -1
  10. package/dist/src/render/blocks/accordion.js +9 -13
  11. package/dist/src/render/blocks/accordion.js.map +1 -1
  12. package/dist/src/render/blocks/collection-list.d.ts.map +1 -1
  13. package/dist/src/render/blocks/collection-list.js +91 -118
  14. package/dist/src/render/blocks/collection-list.js.map +1 -1
  15. package/dist/src/render/blocks/cta.d.ts +4 -4
  16. package/dist/src/render/blocks/cta.d.ts.map +1 -1
  17. package/dist/src/render/blocks/cta.js +7 -9
  18. package/dist/src/render/blocks/cta.js.map +1 -1
  19. package/dist/src/render/blocks/embed.d.ts.map +1 -1
  20. package/dist/src/render/blocks/embed.js +17 -20
  21. package/dist/src/render/blocks/embed.js.map +1 -1
  22. package/dist/src/render/blocks/faq.d.ts.map +1 -1
  23. package/dist/src/render/blocks/faq.js +12 -11
  24. package/dist/src/render/blocks/faq.js.map +1 -1
  25. package/dist/src/render/blocks/feature-grid.d.ts.map +1 -1
  26. package/dist/src/render/blocks/feature-grid.js +13 -20
  27. package/dist/src/render/blocks/feature-grid.js.map +1 -1
  28. package/dist/src/render/blocks/gallery.d.ts +6 -6
  29. package/dist/src/render/blocks/gallery.d.ts.map +1 -1
  30. package/dist/src/render/blocks/gallery.js +15 -13
  31. package/dist/src/render/blocks/gallery.js.map +1 -1
  32. package/dist/src/render/blocks/hero.d.ts +6 -5
  33. package/dist/src/render/blocks/hero.d.ts.map +1 -1
  34. package/dist/src/render/blocks/hero.js +15 -14
  35. package/dist/src/render/blocks/hero.js.map +1 -1
  36. package/dist/src/render/blocks/logo-strip.d.ts.map +1 -1
  37. package/dist/src/render/blocks/logo-strip.js +8 -11
  38. package/dist/src/render/blocks/logo-strip.js.map +1 -1
  39. package/dist/src/render/blocks/logos.d.ts.map +1 -1
  40. package/dist/src/render/blocks/logos.js +16 -16
  41. package/dist/src/render/blocks/logos.js.map +1 -1
  42. package/dist/src/render/blocks/media-figure.d.ts +8 -8
  43. package/dist/src/render/blocks/media-figure.d.ts.map +1 -1
  44. package/dist/src/render/blocks/media-figure.js +23 -19
  45. package/dist/src/render/blocks/media-figure.js.map +1 -1
  46. package/dist/src/render/blocks/pricing-table.d.ts.map +1 -1
  47. package/dist/src/render/blocks/pricing-table.js +19 -22
  48. package/dist/src/render/blocks/pricing-table.js.map +1 -1
  49. package/dist/src/render/blocks/prose.d.ts +6 -10
  50. package/dist/src/render/blocks/prose.d.ts.map +1 -1
  51. package/dist/src/render/blocks/prose.js +8 -11
  52. package/dist/src/render/blocks/prose.js.map +1 -1
  53. package/dist/src/render/blocks/quote.d.ts +6 -9
  54. package/dist/src/render/blocks/quote.d.ts.map +1 -1
  55. package/dist/src/render/blocks/quote.js +11 -13
  56. package/dist/src/render/blocks/quote.js.map +1 -1
  57. package/dist/src/render/blocks/stat-counter.d.ts.map +1 -1
  58. package/dist/src/render/blocks/stat-counter.js +9 -10
  59. package/dist/src/render/blocks/stat-counter.js.map +1 -1
  60. package/dist/src/render/blocks/stats.d.ts.map +1 -1
  61. package/dist/src/render/blocks/stats.js +9 -12
  62. package/dist/src/render/blocks/stats.js.map +1 -1
  63. package/dist/src/render/blocks/testimonial.d.ts +4 -13
  64. package/dist/src/render/blocks/testimonial.d.ts.map +1 -1
  65. package/dist/src/render/blocks/testimonial.js +7 -15
  66. package/dist/src/render/blocks/testimonial.js.map +1 -1
  67. package/dist/src/render/chrome.d.ts.map +1 -1
  68. package/dist/src/render/chrome.js +109 -97
  69. package/dist/src/render/chrome.js.map +1 -1
  70. package/dist/src/render/layout.d.ts +28 -0
  71. package/dist/src/render/layout.d.ts.map +1 -0
  72. package/dist/src/render/layout.js +72 -0
  73. package/dist/src/render/layout.js.map +1 -0
  74. package/dist/src/render/render-block.d.ts +15 -13
  75. package/dist/src/render/render-block.d.ts.map +1 -1
  76. package/dist/src/render/render-block.js +53 -29
  77. package/dist/src/render/render-block.js.map +1 -1
  78. package/dist/src/render/story.d.ts +41 -0
  79. package/dist/src/render/story.d.ts.map +1 -0
  80. package/dist/src/render/story.js +65 -0
  81. package/dist/src/render/story.js.map +1 -0
  82. package/dist/src/render/term-archive.d.ts +0 -10
  83. package/dist/src/render/term-archive.d.ts.map +1 -1
  84. package/dist/src/render/term-archive.js +42 -19
  85. package/dist/src/render/term-archive.js.map +1 -1
  86. package/dist/src/render/widget-areas.d.ts +12 -0
  87. package/dist/src/render/widget-areas.d.ts.map +1 -0
  88. package/dist/src/render/widget-areas.js +19 -0
  89. package/dist/src/render/widget-areas.js.map +1 -0
  90. package/dist/theme.config.js +2 -2
  91. package/dist/theme.config.js.map +1 -1
  92. package/package.json +5 -5
  93. package/src/index.ts +3 -0
  94. package/src/render/article.ts +239 -0
  95. package/src/render/blocks/accordion.ts +23 -30
  96. package/src/render/blocks/collection-list.ts +161 -225
  97. package/src/render/blocks/cta.ts +19 -13
  98. package/src/render/blocks/embed.ts +40 -36
  99. package/src/render/blocks/faq.ts +31 -36
  100. package/src/render/blocks/feature-grid.ts +26 -36
  101. package/src/render/blocks/gallery.ts +24 -18
  102. package/src/render/blocks/hero.ts +32 -32
  103. package/src/render/blocks/logo-strip.ts +17 -17
  104. package/src/render/blocks/logos.ts +23 -31
  105. package/src/render/blocks/media-figure.ts +36 -20
  106. package/src/render/blocks/pricing-table.ts +29 -34
  107. package/src/render/blocks/prose.ts +13 -13
  108. package/src/render/blocks/quote.ts +24 -24
  109. package/src/render/blocks/stat-counter.ts +16 -24
  110. package/src/render/blocks/stats.ts +14 -24
  111. package/src/render/blocks/testimonial.ts +12 -17
  112. package/src/render/chrome.ts +123 -104
  113. package/src/render/layout.ts +105 -0
  114. package/src/render/render-block.ts +61 -33
  115. package/src/render/story.ts +139 -0
  116. package/src/render/term-archive.ts +111 -58
  117. package/src/render/widget-areas.ts +22 -0
  118. package/src/styles/archive.css +114 -17
  119. package/src/styles/article.css +237 -0
  120. package/src/styles/base.css +848 -591
  121. package/src/styles/blocks.css +903 -921
  122. package/src/styles/stories.css +593 -0
  123. package/src/styles/theme.css +28 -9
  124. package/src/styles/tokens.css +200 -185
  125. package/src/styles/widgets.css +614 -0
  126. package/tokens.json +18 -18
@@ -0,0 +1,614 @@
1
+ /* --------------------------------------------------------------------------
2
+ Widgets (contract D `theme@1.6`): the rail beside a story, a section front
3
+ or search results, the bands before and after the content, and the footer
4
+ columns under the colophon's name.
5
+
6
+ The host draws one markup for every theme (`cg-sidebar-layout`); this file
7
+ only sets it in this theme's register: the page's own edges and gutters, a
8
+ rail of labels on heavy rules, headlines in the display face, and no box
9
+ anywhere but the one subscription pitch, which takes the editorial red.
10
+ -------------------------------------------------------------------------- */
11
+
12
+ /* --- the layout ------------------------------------------------------------ */
13
+
14
+ .cg-sidebar-layout {
15
+ box-sizing: border-box;
16
+ display: grid;
17
+ gap: var(--cg-s12);
18
+ inline-size: 100%;
19
+ max-inline-size: calc(var(--cg-page) + var(--cg-gutter) * 2);
20
+ margin-inline: auto;
21
+ padding-inline: var(--cg-gutter);
22
+ }
23
+
24
+ @media (min-width: 64rem) {
25
+ .cg-sidebar-layout {
26
+ grid-template-columns: minmax(0, 1fr) minmax(16rem, 19rem);
27
+ column-gap: calc(var(--cg-col-gap) * 2.5);
28
+ }
29
+
30
+ /* The content column is narrower than a page: text moves to its left edge
31
+ and takes more of its columns, so a story beside a rail still reads at a
32
+ full measure. */
33
+ .cg-sidebar-layout__content {
34
+ --cg-col-reading: 1 / span 9;
35
+ --cg-col-headline: 1 / span 11;
36
+ --cg-col-hang: 1 / span 9;
37
+ --cg-col-wide: 1 / -1;
38
+ }
39
+ }
40
+
41
+ .cg-sidebar-layout__content {
42
+ min-inline-size: 0;
43
+ }
44
+
45
+ /* Inside the content column the layout already holds the gutters. */
46
+ .cg-sidebar-layout__content :is(.cg-container, .cg-comments, .cg-form, .cg-form__confirmation),
47
+ .cg-sidebar-layout__content
48
+ > :is(
49
+ .cg-page__title,
50
+ .cg-search__form,
51
+ .cg-search__results,
52
+ .cg-search__empty,
53
+ .cg-search__error
54
+ ) {
55
+ max-inline-size: none;
56
+ padding-inline: 0;
57
+ }
58
+
59
+ .cg-sidebar-layout__content > .cg-page__title::after {
60
+ inset-inline: 0;
61
+ }
62
+
63
+ .cg-sidebar-layout__aside {
64
+ align-self: start;
65
+ padding-block: calc(var(--cg-section) / 2);
66
+ }
67
+
68
+ @media (max-width: 63.99rem) {
69
+ .cg-sidebar-layout__aside {
70
+ padding-block-start: 0;
71
+ }
72
+ }
73
+
74
+ /* A band the host places outside the layout (the home page, a page opening on
75
+ its own hero): on the page's columns, never edge to edge. */
76
+ .cg-widget-area--placed {
77
+ box-sizing: border-box;
78
+ inline-size: 100%;
79
+ max-inline-size: calc(var(--cg-page) + var(--cg-gutter) * 2);
80
+ margin-inline: auto;
81
+ padding: calc(var(--cg-section) / 2) var(--cg-gutter);
82
+ }
83
+
84
+ .cg-sidebar-layout__content .cg-widget-area--placed {
85
+ max-inline-size: none;
86
+ padding-inline: 0;
87
+ }
88
+
89
+ .cg-widget-area--placed[data-area="sidebar"] {
90
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
91
+ column-gap: var(--cg-col-gap);
92
+ border: 0;
93
+ }
94
+
95
+ /* --- a widget ---------------------------------------------------------------- */
96
+
97
+ .cg-widget-area {
98
+ display: grid;
99
+ gap: var(--cg-s10);
100
+ align-content: start;
101
+ }
102
+
103
+ .cg-widget {
104
+ min-inline-size: 0;
105
+ color: var(--cg-ink);
106
+ }
107
+
108
+ .cg-widget__title {
109
+ margin: 0 0 var(--cg-s4);
110
+ padding-block-start: var(--cg-s3);
111
+ border-block-start: var(--cg-rule-heavy) solid var(--cg-line-ink);
112
+ color: var(--cg-ink);
113
+ font-family: var(--cg-font-ui);
114
+ font-size: var(--cg-text-label);
115
+ font-weight: var(--cg-weight-bold);
116
+ line-height: 1.2;
117
+ letter-spacing: var(--cg-tracking-caps);
118
+ text-transform: uppercase;
119
+ }
120
+
121
+ .cg-widget__body {
122
+ font-family: var(--cg-font-text);
123
+ font-size: var(--cg-text-sm);
124
+ line-height: var(--cg-leading-snug);
125
+ }
126
+
127
+ .cg-widget__body :is(ul, ol) {
128
+ margin: 0;
129
+ padding: 0;
130
+ list-style: none;
131
+ }
132
+
133
+ .cg-widget__body p {
134
+ margin: 0 0 var(--cg-s3);
135
+ }
136
+
137
+ .cg-widget__body p:last-child {
138
+ margin-block-end: 0;
139
+ }
140
+
141
+ .cg-widget a {
142
+ color: var(--cg-ink);
143
+ text-decoration-line: underline;
144
+ text-decoration-color: transparent;
145
+ text-decoration-thickness: var(--cg-rule);
146
+ text-underline-offset: 0.14em;
147
+ transition: text-decoration-color var(--cg-duration) var(--cg-ease);
148
+ }
149
+
150
+ .cg-widget a:hover {
151
+ color: var(--cg-ink);
152
+ text-decoration-color: var(--cg-accent);
153
+ }
154
+
155
+ .cg-widget__empty {
156
+ color: var(--cg-ink-muted);
157
+ }
158
+
159
+ /* --- lists: stories, sections, archives, comments, links ---------------------- */
160
+
161
+ .cg-widget__entry,
162
+ .cg-widget__comment,
163
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) > li {
164
+ padding-block: var(--cg-s3);
165
+ border-block-start: var(--cg-rule) solid var(--cg-line);
166
+ border-block-end: 0;
167
+ }
168
+
169
+ .cg-widget__entry:first-child,
170
+ .cg-widget__comment:first-child,
171
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) > li:first-child {
172
+ padding-block-start: 0;
173
+ border-block-start: 0;
174
+ }
175
+
176
+ .cg-widget__entry {
177
+ display: grid;
178
+ grid-template-columns: minmax(0, 1fr);
179
+ column-gap: var(--cg-s4);
180
+ align-items: start;
181
+ }
182
+
183
+ .cg-widget__entry[data-image="image"] {
184
+ grid-template-columns: minmax(0, 1fr) 4.5rem;
185
+ }
186
+
187
+ .cg-widget__entry-image {
188
+ grid-column: 2;
189
+ grid-row: 1;
190
+ display: block;
191
+ inline-size: 100%;
192
+ block-size: auto;
193
+ aspect-ratio: 1;
194
+ object-fit: cover;
195
+ filter: brightness(var(--cg-image-brightness));
196
+ }
197
+
198
+ .cg-widget__entry-text {
199
+ display: grid;
200
+ gap: var(--cg-s1);
201
+ grid-row: 1;
202
+ }
203
+
204
+ .cg-widget__entry-title,
205
+ .cg-widget__comment-entry {
206
+ font-family: var(--cg-font-display);
207
+ font-size: var(--cg-text-md);
208
+ font-weight: var(--cg-weight-semibold);
209
+ line-height: var(--cg-leading-heading);
210
+ letter-spacing: var(--cg-tracking-heading);
211
+ text-wrap: balance;
212
+ }
213
+
214
+ .cg-widget__entry-excerpt,
215
+ .cg-widget__comment-excerpt {
216
+ margin: 0;
217
+ color: var(--cg-ink-muted);
218
+ }
219
+
220
+ .cg-widget__entry-date,
221
+ .cg-widget__comment-date,
222
+ :is(.cg-widget__terms, .cg-widget__archives) [class$="-count"],
223
+ .cg-widget__cloud-count {
224
+ color: var(--cg-ink-muted);
225
+ font-family: var(--cg-font-ui);
226
+ font-size: var(--cg-text-xs);
227
+ font-variant-numeric: lining-nums tabular-nums;
228
+ }
229
+
230
+ :is(.cg-widget__terms, .cg-widget__archives) > li,
231
+ .cg-widget__terms li {
232
+ display: flex;
233
+ flex-wrap: wrap;
234
+ justify-content: space-between;
235
+ align-items: baseline;
236
+ gap: var(--cg-s2) var(--cg-s4);
237
+ font-family: var(--cg-font-ui);
238
+ font-size: var(--cg-text-ui);
239
+ font-weight: var(--cg-weight-medium);
240
+ }
241
+
242
+ .cg-widget__terms ul {
243
+ flex-basis: 100%;
244
+ padding-inline-start: var(--cg-s4);
245
+ }
246
+
247
+ .cg-widget__toc-item[data-depth="1"] {
248
+ padding-inline-start: var(--cg-s4);
249
+ }
250
+
251
+ .cg-widget__toc-item[data-depth="2"] {
252
+ padding-inline-start: var(--cg-s8);
253
+ }
254
+
255
+ .cg-widget__links,
256
+ .cg-widget__toc {
257
+ font-family: var(--cg-font-ui);
258
+ font-size: var(--cg-text-ui);
259
+ font-weight: var(--cg-weight-medium);
260
+ }
261
+
262
+ .cg-widget [aria-current="page"] {
263
+ color: var(--cg-accent);
264
+ }
265
+
266
+ .cg-widget__cloud {
267
+ display: flex;
268
+ flex-wrap: wrap;
269
+ gap: var(--cg-s2) var(--cg-s4);
270
+ font-family: var(--cg-font-ui);
271
+ font-weight: var(--cg-weight-semibold);
272
+ }
273
+
274
+ .cg-widget__cloud-item[data-weight="1"] {
275
+ font-size: var(--cg-text-xs);
276
+ }
277
+ .cg-widget__cloud-item[data-weight="2"] {
278
+ font-size: var(--cg-text-sm);
279
+ }
280
+ .cg-widget__cloud-item[data-weight="3"] {
281
+ font-size: var(--cg-text-md);
282
+ }
283
+ .cg-widget__cloud-item[data-weight="4"] {
284
+ font-size: var(--cg-text-lg);
285
+ }
286
+ .cg-widget__cloud-item[data-weight="5"] {
287
+ font-size: var(--cg-text-xl);
288
+ }
289
+
290
+ /* --- search, a jump menu, a form: fields are a baseline ------------------------ */
291
+
292
+ .cg-widget__search,
293
+ .cg-widget__jump {
294
+ display: flex;
295
+ align-items: end;
296
+ gap: var(--cg-s3);
297
+ }
298
+
299
+ .cg-widget__search-input,
300
+ .cg-widget__jump select,
301
+ .cg-widget__form :is(input:not([type="checkbox"]), select, textarea) {
302
+ box-sizing: border-box;
303
+ flex: 1;
304
+ inline-size: 100%;
305
+ min-inline-size: 0;
306
+ min-block-size: 44px;
307
+ padding: var(--cg-s2) 0;
308
+ border: 0;
309
+ border-block-end: var(--cg-rule) solid var(--cg-line-strong);
310
+ border-radius: 0;
311
+ background: transparent;
312
+ color: var(--cg-ink);
313
+ font-family: var(--cg-font-text);
314
+ font-size: var(--cg-text-md);
315
+ }
316
+
317
+ .cg-widget__form textarea {
318
+ padding: var(--cg-s3);
319
+ border: var(--cg-rule) solid var(--cg-line-strong);
320
+ border-radius: var(--cg-radius);
321
+ }
322
+
323
+ .cg-widget__search-input:focus-visible,
324
+ .cg-widget__jump select:focus-visible,
325
+ .cg-widget__form :is(input, select, textarea):focus-visible {
326
+ outline: none;
327
+ border-color: var(--cg-ink);
328
+ box-shadow: inset 0 calc(var(--cg-rule) * -1) 0 var(--cg-ink);
329
+ }
330
+
331
+ .cg-widget__search-button,
332
+ .cg-widget__jump-button,
333
+ .cg-widget__form-submit,
334
+ .cg-widget__cta-action {
335
+ display: inline-flex;
336
+ align-items: center;
337
+ justify-content: center;
338
+ min-block-size: 44px;
339
+ padding: var(--cg-s2) var(--cg-s5);
340
+ border: var(--cg-rule) solid var(--cg-action);
341
+ border-radius: var(--cg-radius-control);
342
+ background: var(--cg-action);
343
+ color: var(--cg-action-fg);
344
+ font-family: var(--cg-font-ui);
345
+ font-size: var(--cg-text-ui);
346
+ font-weight: var(--cg-weight-semibold);
347
+ text-decoration: none;
348
+ cursor: pointer;
349
+ transition:
350
+ background-color var(--cg-duration) var(--cg-ease),
351
+ border-color var(--cg-duration) var(--cg-ease);
352
+ }
353
+
354
+ .cg-widget a.cg-widget__cta-action {
355
+ color: var(--cg-action-fg);
356
+ text-decoration: none;
357
+ }
358
+
359
+ :is(
360
+ .cg-widget__search-button,
361
+ .cg-widget__jump-button,
362
+ .cg-widget__form-submit,
363
+ .cg-widget__cta-action
364
+ ):hover {
365
+ background: var(--cg-action-hover);
366
+ border-color: var(--cg-action-hover);
367
+ color: var(--cg-action-hover-fg);
368
+ }
369
+
370
+ .cg-widget__form {
371
+ display: grid;
372
+ gap: var(--cg-s4);
373
+ }
374
+
375
+ .cg-widget__form label {
376
+ display: block;
377
+ color: var(--cg-ink-muted);
378
+ font-family: var(--cg-font-ui);
379
+ font-size: var(--cg-text-label);
380
+ font-weight: var(--cg-weight-bold);
381
+ letter-spacing: var(--cg-tracking-caps);
382
+ text-transform: uppercase;
383
+ }
384
+
385
+ /* --- words and pictures ---------------------------------------------------------- */
386
+
387
+ .cg-widget__figure,
388
+ .cg-widget__embed,
389
+ .cg-widget__quote {
390
+ margin: 0;
391
+ }
392
+
393
+ :is(.cg-widget__image, .cg-widget__about-image, .cg-widget__gallery-image) {
394
+ display: block;
395
+ inline-size: 100%;
396
+ block-size: auto;
397
+ filter: brightness(var(--cg-image-brightness));
398
+ }
399
+
400
+ .cg-widget__caption {
401
+ margin-block-start: var(--cg-s2);
402
+ color: var(--cg-ink-muted);
403
+ font-family: var(--cg-font-ui);
404
+ font-size: var(--cg-text-xs);
405
+ }
406
+
407
+ .cg-widget__frame {
408
+ display: block;
409
+ inline-size: 100%;
410
+ aspect-ratio: 16 / 9;
411
+ border: 0;
412
+ }
413
+
414
+ .cg-widget__gallery {
415
+ display: grid;
416
+ grid-template-columns: repeat(3, minmax(0, 1fr));
417
+ gap: var(--cg-s2);
418
+ }
419
+
420
+ .cg-widget__gallery[data-columns="2"] {
421
+ grid-template-columns: repeat(2, minmax(0, 1fr));
422
+ }
423
+ .cg-widget__gallery[data-columns="4"] {
424
+ grid-template-columns: repeat(4, minmax(0, 1fr));
425
+ }
426
+
427
+ .cg-widget__quote-text {
428
+ margin: 0;
429
+ font-family: var(--cg-font-display);
430
+ font-size: var(--cg-text-lg);
431
+ font-weight: var(--cg-weight-medium);
432
+ line-height: var(--cg-leading-heading);
433
+ }
434
+
435
+ .cg-widget__quote-source {
436
+ display: flex;
437
+ flex-wrap: wrap;
438
+ gap: var(--cg-s2);
439
+ margin-block-start: var(--cg-s3);
440
+ font-family: var(--cg-font-ui);
441
+ font-size: var(--cg-text-xs);
442
+ }
443
+
444
+ .cg-widget__quote-name {
445
+ font-weight: var(--cg-weight-bold);
446
+ }
447
+
448
+ .cg-widget__quote-role {
449
+ color: var(--cg-ink-muted);
450
+ }
451
+
452
+ .cg-widget__about,
453
+ .cg-widget__cta {
454
+ display: grid;
455
+ gap: var(--cg-s3);
456
+ justify-items: start;
457
+ }
458
+
459
+ .cg-widget__about-heading,
460
+ .cg-widget__cta-heading {
461
+ margin: 0;
462
+ font-family: var(--cg-font-display);
463
+ font-size: var(--cg-text-xl);
464
+ font-weight: var(--cg-weight-bold);
465
+ line-height: var(--cg-leading-heading);
466
+ letter-spacing: var(--cg-tracking-heading);
467
+ text-wrap: balance;
468
+ }
469
+
470
+ .cg-widget__about-body,
471
+ .cg-widget__cta-body {
472
+ margin: 0;
473
+ color: var(--cg-ink-muted);
474
+ }
475
+
476
+ /* The subscription pitch is the one widget on a rule of editorial red. */
477
+ .cg-widget--cta {
478
+ padding-block-start: var(--cg-s4);
479
+ border-block-start: var(--cg-rule-heavy) solid var(--cg-accent);
480
+ }
481
+
482
+ .cg-widget--cta .cg-widget__title {
483
+ padding-block-start: 0;
484
+ border-block-start: 0;
485
+ }
486
+
487
+ .cg-widget__contact {
488
+ display: grid;
489
+ gap: var(--cg-s2);
490
+ font-family: var(--cg-font-ui);
491
+ font-size: var(--cg-text-ui);
492
+ }
493
+
494
+ .cg-widget__contact-line {
495
+ display: flex;
496
+ gap: var(--cg-s2);
497
+ align-items: start;
498
+ margin: 0;
499
+ }
500
+
501
+ .cg-widget__icon {
502
+ flex: none;
503
+ margin-block-start: 0.2em;
504
+ }
505
+
506
+ .cg-widget__hours {
507
+ display: grid;
508
+ grid-template-columns: auto 1fr;
509
+ gap: var(--cg-s1) var(--cg-s4);
510
+ margin: var(--cg-s3) 0 0;
511
+ font-variant-numeric: lining-nums tabular-nums;
512
+ }
513
+
514
+ .cg-widget__hours dd {
515
+ margin: 0;
516
+ }
517
+
518
+ .cg-widget__social {
519
+ display: flex;
520
+ flex-wrap: wrap;
521
+ gap: var(--cg-s3) var(--cg-s5);
522
+ font-family: var(--cg-font-ui);
523
+ font-size: var(--cg-text-ui);
524
+ font-weight: var(--cg-weight-medium);
525
+ }
526
+
527
+ .cg-widget__calendar-table {
528
+ inline-size: 100%;
529
+ border-collapse: collapse;
530
+ font-family: var(--cg-font-ui);
531
+ font-size: var(--cg-text-xs);
532
+ font-variant-numeric: lining-nums tabular-nums;
533
+ text-align: center;
534
+ }
535
+
536
+ .cg-widget__calendar-table caption {
537
+ padding-block-end: var(--cg-s2);
538
+ font-weight: var(--cg-weight-bold);
539
+ text-align: start;
540
+ }
541
+
542
+ .cg-widget__calendar-table :is(th, td) {
543
+ padding-block: var(--cg-s1);
544
+ }
545
+
546
+ .cg-widget__calendar-table td[data-posts] a {
547
+ color: var(--cg-accent);
548
+ font-weight: var(--cg-weight-bold);
549
+ }
550
+
551
+ .cg-widget__calendar-nav {
552
+ display: flex;
553
+ justify-content: space-between;
554
+ margin: var(--cg-s3) 0 0;
555
+ font-family: var(--cg-font-ui);
556
+ font-size: var(--cg-text-xs);
557
+ }
558
+
559
+ /* --- under a story: the next stories as a strip ------------------------------------ */
560
+
561
+ @media (min-width: 48rem) {
562
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
563
+ .cg-widget__entries {
564
+ display: grid;
565
+ grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
566
+ column-gap: var(--cg-col-gap);
567
+ }
568
+
569
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"]) .cg-widget__entry {
570
+ position: relative;
571
+ padding-block-start: 0;
572
+ border-block-start: 0;
573
+ }
574
+
575
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
576
+ .cg-widget__entry
577
+ + .cg-widget__entry::before {
578
+ content: "";
579
+ position: absolute;
580
+ inset-block: 0;
581
+ inset-inline-start: calc(var(--cg-col-gap) / -2);
582
+ inline-size: var(--cg-rule);
583
+ background: var(--cg-line);
584
+ }
585
+
586
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
587
+ .cg-widget__entry-title {
588
+ font-size: var(--cg-size-brief);
589
+ }
590
+ }
591
+
592
+ /* --- the colophon's widget columns ------------------------------------------------- */
593
+
594
+ .cg-colophon__widgets {
595
+ display: grid;
596
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
597
+ gap: var(--cg-s8) var(--cg-col-gap);
598
+ padding-block: var(--cg-s6) var(--cg-s8);
599
+ border-block-start: var(--cg-rule) solid var(--cg-line);
600
+ }
601
+
602
+ .cg-colophon__widgets .cg-widget,
603
+ .cg-colophon__widgets .cg-widget a {
604
+ color: var(--cg-ink-muted);
605
+ }
606
+
607
+ .cg-colophon__widgets .cg-widget__title {
608
+ padding-block-start: 0;
609
+ border-block-start: 0;
610
+ }
611
+
612
+ .cg-colophon__widgets .cg-widget a:hover {
613
+ color: var(--cg-ink);
614
+ }
package/tokens.json CHANGED
@@ -1,36 +1,36 @@
1
1
  {
2
2
  "color": {
3
- "bg": "#F7F1E6",
4
- "fg": "#211A12",
5
- "accent": "#A2361F",
6
- "accentFg": "#FFFBF2",
7
- "muted": "#ECE2CF",
8
- "mutedFg": "#574A3C",
9
- "border": "#D8CBB0"
3
+ "bg": "#ffffff",
4
+ "fg": "#151412",
5
+ "accent": "#b3121c",
6
+ "accentFg": "#ffffff",
7
+ "muted": "#f2f0eb",
8
+ "mutedFg": "#4a4843",
9
+ "border": "#d8d5ce"
10
10
  },
11
11
  "font": {
12
- "sans": "'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
13
- "serif": "'Fraunces', Georgia, Cambria, 'Times New Roman', Times, serif",
14
- "mono": "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace",
12
+ "sans": "'Libre Franklin', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif",
13
+ "serif": "'Fraunces', ui-serif, Georgia, Cambria, 'Times New Roman', serif",
14
+ "mono": "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace",
15
15
  "scale": 1.25,
16
- "baseSize": "1rem"
16
+ "baseSize": "1.0625rem"
17
17
  },
18
18
  "space": {
19
19
  "unit": "0.25rem",
20
20
  "density": "comfortable"
21
21
  },
22
22
  "radius": {
23
- "sm": "0.125rem",
24
- "md": "0.25rem",
25
- "lg": "0.375rem"
23
+ "sm": "0rem",
24
+ "md": "0.125rem",
25
+ "lg": "0.1875rem"
26
26
  },
27
27
  "motion": {
28
- "duration": "200ms",
29
- "easing": "cubic-bezier(0.4, 0, 0.2, 1)",
28
+ "duration": "140ms",
29
+ "easing": "cubic-bezier(0.2, 0, 0, 1)",
30
30
  "reduced": true
31
31
  },
32
32
  "shadow": {
33
- "sm": "0 1px 2px rgba(33, 26, 18, 0.12)",
34
- "md": "0 8px 28px rgba(33, 26, 18, 0.16)"
33
+ "sm": "0 1px 0 rgba(21, 20, 18, 0.06)",
34
+ "md": "0 8px 24px rgba(21, 20, 18, 0.1)"
35
35
  }
36
36
  }