@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,237 @@
1
+ /*
2
+ * The article page: the header (kicker, headline, standfirst, byline and
3
+ * date between hairlines, lead photograph), the reading column, the pull
4
+ * quote hanging to its left, the drop cap, and the foot.
5
+ *
6
+ * On a wide screen the page sits on the twelve columns this way:
7
+ *
8
+ * columns 4 to 9 kicker, standfirst, byline, and the reading column
9
+ * columns 4 to 10 the headline, one column wider on the right
10
+ * columns 2 to 11 the lead photograph and any wide figure
11
+ * columns 3 to 8 a pull quote, hanging one column to the left
12
+
13
+ * The axis is centred, so the page balances on the screen however long the
14
+ * article runs.
15
+ */
16
+
17
+ /* --------------------------------------------------------------------------
18
+ Header
19
+ -------------------------------------------------------------------------- */
20
+
21
+ .cg-article-head {
22
+ padding-block: calc(var(--cg-section) * 0.6) 0;
23
+ }
24
+
25
+ .cg-article-head__inner {
26
+ row-gap: 0;
27
+ }
28
+
29
+ .cg-article-head__kicker {
30
+ margin: 0 0 var(--cg-s4);
31
+ font-family: var(--cg-font-ui);
32
+ font-size: var(--cg-text-label);
33
+ font-weight: var(--cg-weight-bold);
34
+ line-height: 1.2;
35
+ letter-spacing: var(--cg-tracking-caps);
36
+ text-transform: uppercase;
37
+ }
38
+
39
+ .cg-article-head__kicker-link {
40
+ display: inline-block;
41
+ padding-block-start: var(--cg-s2);
42
+ border-block-start: var(--cg-rule-heavy) solid var(--cg-accent);
43
+ color: var(--cg-accent);
44
+ text-decoration: none;
45
+ }
46
+
47
+ a.cg-article-head__kicker-link:hover {
48
+ color: var(--cg-accent-hover);
49
+ border-color: var(--cg-accent-hover);
50
+ }
51
+
52
+ .cg-article-head__title {
53
+ font-size: var(--cg-size-headline);
54
+ font-weight: var(--cg-weight-semibold);
55
+ line-height: var(--cg-leading-display);
56
+ letter-spacing: var(--cg-tracking-display);
57
+ }
58
+
59
+ .cg-article-head__standfirst {
60
+ margin: var(--cg-s5) 0 0;
61
+ max-inline-size: 58ch;
62
+ color: var(--cg-ink);
63
+ font-family: var(--cg-font-text);
64
+ font-size: var(--cg-size-standfirst);
65
+ font-style: italic;
66
+ font-weight: var(--cg-weight-regular);
67
+ line-height: var(--cg-leading-snug);
68
+ }
69
+
70
+ .cg-article-head__meta {
71
+ display: flex;
72
+ flex-wrap: wrap;
73
+ align-items: baseline;
74
+ justify-content: space-between;
75
+ gap: var(--cg-s2) var(--cg-s6);
76
+ margin-block-start: var(--cg-s6);
77
+ padding-block: var(--cg-s3);
78
+ border-block: var(--cg-rule) solid var(--cg-line);
79
+ font-family: var(--cg-font-ui);
80
+ font-size: var(--cg-text-sm);
81
+ line-height: var(--cg-leading-ui);
82
+ }
83
+
84
+ /* A byline is a list of names; the separators are drawn here, so no word of
85
+ any language is written into the markup. */
86
+ .cg-byline {
87
+ display: flex;
88
+ flex-wrap: wrap;
89
+ margin: 0;
90
+ padding: 0;
91
+ list-style: none;
92
+ color: var(--cg-ink);
93
+ font-weight: var(--cg-weight-bold);
94
+ }
95
+
96
+ .cg-byline__name + .cg-byline__name::before {
97
+ content: ",\00a0";
98
+ }
99
+
100
+ .cg-byline__name:last-child:not(:first-child)::before {
101
+ content: "\00a0&\00a0";
102
+ font-weight: var(--cg-weight-regular);
103
+ }
104
+
105
+ .cg-byline__link {
106
+ color: var(--cg-ink);
107
+ text-decoration-color: transparent;
108
+ text-underline-offset: 0.22em;
109
+ }
110
+
111
+ .cg-byline__link:hover {
112
+ color: var(--cg-accent);
113
+ text-decoration-color: currentColor;
114
+ }
115
+
116
+ .cg-article-head__dateline {
117
+ display: flex;
118
+ flex-wrap: wrap;
119
+ gap: var(--cg-s1) var(--cg-s4);
120
+ margin: 0;
121
+ color: var(--cg-ink-muted);
122
+ font-variant-numeric: lining-nums tabular-nums;
123
+ }
124
+
125
+ .cg-article-head__cover {
126
+ margin: var(--cg-s8) 0 0;
127
+ }
128
+
129
+ .cg-article-head__image {
130
+ inline-size: 100%;
131
+ aspect-ratio: 3 / 2;
132
+ object-fit: cover;
133
+ }
134
+
135
+ @media (min-width: 64rem) {
136
+ .cg-article-head__kicker,
137
+ .cg-article-head__standfirst,
138
+ .cg-article-head__meta {
139
+ grid-column: var(--cg-col-reading);
140
+ }
141
+
142
+ .cg-article-head__title {
143
+ grid-column: var(--cg-col-headline);
144
+ }
145
+
146
+ .cg-article-head__cover {
147
+ grid-column: var(--cg-col-wide);
148
+ }
149
+ }
150
+
151
+ /* The lead photograph an article opens its body with (a `mediaFigure`)
152
+ follows the header with less space than two blocks usually keep. */
153
+ :is(.cg-article, .cg-article :where(.cg-sidebar-layout__content)) > .cg-article-head + .cg-figure {
154
+ padding-block-start: var(--cg-s8);
155
+ }
156
+
157
+ /* --------------------------------------------------------------------------
158
+ The reading column
159
+ -------------------------------------------------------------------------- */
160
+
161
+ :is(.cg-article, .cg-article :where(.cg-sidebar-layout__content)) > .cg-prose {
162
+ padding-block: var(--cg-s4);
163
+ }
164
+
165
+ :is(.cg-article, .cg-article :where(.cg-sidebar-layout__content)) > .cg-article-head + .cg-prose {
166
+ padding-block-start: var(--cg-s10);
167
+ }
168
+
169
+ /* The reading column itself (columns 3 to 9) is every page's, in
170
+ `blocks.css`; an article only hangs its pull quotes further left. */
171
+ @media (min-width: 64rem) {
172
+ .cg-article .cg-pullquote__quote,
173
+ .cg-article .cg-pullquote__attribution {
174
+ grid-column: var(--cg-col-hang);
175
+ }
176
+ }
177
+
178
+ /* A pull quote inside an article keeps close to the paragraphs around it. */
179
+ :is(.cg-article, .cg-article :where(.cg-sidebar-layout__content)) > .cg-pullquote {
180
+ padding-block: var(--cg-s8);
181
+ }
182
+
183
+ /* The drop cap: the first letter of the first paragraph, two lines deep,
184
+ set only where the browser can set a true initial letter. A float-based
185
+ imitation drifts off the baseline grid, so there is none. Two lines, not
186
+ three: an opening paragraph of two lines is common in news writing, and a
187
+ three-line cap would push into the paragraph after it. */
188
+ @supports (initial-letter: 2) or (-webkit-initial-letter: 2) {
189
+ .cg-article [data-opening] .cg-prose__body > p:first-child::first-letter {
190
+ -webkit-initial-letter: 2;
191
+ initial-letter: 2;
192
+ margin-inline-end: 0.12em;
193
+ color: var(--cg-ink);
194
+ font-family: var(--cg-font-display);
195
+ font-weight: var(--cg-weight-semibold);
196
+ }
197
+ }
198
+
199
+ /* --------------------------------------------------------------------------
200
+ The foot: terms that are neither the section nor a byline.
201
+ -------------------------------------------------------------------------- */
202
+
203
+ .cg-article-foot {
204
+ padding-block: var(--cg-s6) 0;
205
+ }
206
+
207
+ .cg-article-foot__terms {
208
+ display: flex;
209
+ flex-wrap: wrap;
210
+ gap: var(--cg-s2) var(--cg-s5);
211
+ margin: 0;
212
+ padding-block-start: var(--cg-s4);
213
+ padding-inline: 0;
214
+ border-block-start: var(--cg-rule) solid var(--cg-line-ink);
215
+ list-style: none;
216
+ font-family: var(--cg-font-ui);
217
+ font-size: var(--cg-text-label);
218
+ font-weight: var(--cg-weight-bold);
219
+ letter-spacing: var(--cg-tracking-caps);
220
+ text-transform: uppercase;
221
+ }
222
+
223
+ .cg-article-foot__link {
224
+ color: var(--cg-ink);
225
+ text-decoration-color: transparent;
226
+ }
227
+
228
+ a.cg-article-foot__link:hover {
229
+ color: var(--cg-accent);
230
+ text-decoration-color: currentColor;
231
+ }
232
+
233
+ @media (min-width: 64rem) {
234
+ .cg-article-foot__terms {
235
+ grid-column: var(--cg-col-reading);
236
+ }
237
+ }