@cogenta/theme-restaurant 0.3.2 → 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 +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/render/blocks/accordion.d.ts +7 -0
- package/dist/src/render/blocks/accordion.d.ts.map +1 -1
- package/dist/src/render/blocks/accordion.js +10 -16
- package/dist/src/render/blocks/accordion.js.map +1 -1
- package/dist/src/render/blocks/collection-list.d.ts +4 -11
- package/dist/src/render/blocks/collection-list.d.ts.map +1 -1
- package/dist/src/render/blocks/collection-list.js +96 -96
- package/dist/src/render/blocks/collection-list.js.map +1 -1
- package/dist/src/render/blocks/cta.d.ts +7 -4
- package/dist/src/render/blocks/cta.d.ts.map +1 -1
- package/dist/src/render/blocks/cta.js +9 -7
- 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 -28
- package/dist/src/render/blocks/embed.js.map +1 -1
- package/dist/src/render/blocks/faq.d.ts +13 -1
- package/dist/src/render/blocks/faq.d.ts.map +1 -1
- package/dist/src/render/blocks/faq.js +15 -11
- package/dist/src/render/blocks/faq.js.map +1 -1
- package/dist/src/render/blocks/feature-grid.d.ts.map +1 -1
- package/dist/src/render/blocks/feature-grid.js +43 -16
- package/dist/src/render/blocks/feature-grid.js.map +1 -1
- package/dist/src/render/blocks/gallery.d.ts +0 -7
- package/dist/src/render/blocks/gallery.d.ts.map +1 -1
- package/dist/src/render/blocks/gallery.js +28 -10
- package/dist/src/render/blocks/gallery.js.map +1 -1
- package/dist/src/render/blocks/hero.d.ts +16 -9
- package/dist/src/render/blocks/hero.d.ts.map +1 -1
- package/dist/src/render/blocks/hero.js +27 -20
- 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 +8 -0
- package/dist/src/render/blocks/logos.d.ts.map +1 -1
- package/dist/src/render/blocks/logos.js +18 -18
- package/dist/src/render/blocks/logos.js.map +1 -1
- package/dist/src/render/blocks/media-figure.d.ts +14 -3
- package/dist/src/render/blocks/media-figure.d.ts.map +1 -1
- package/dist/src/render/blocks/media-figure.js +34 -16
- 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 +17 -22
- package/dist/src/render/blocks/pricing-table.js.map +1 -1
- package/dist/src/render/blocks/prose.d.ts +11 -6
- package/dist/src/render/blocks/prose.d.ts.map +1 -1
- package/dist/src/render/blocks/prose.js +13 -7
- package/dist/src/render/blocks/prose.js.map +1 -1
- package/dist/src/render/blocks/quote.d.ts +6 -2
- package/dist/src/render/blocks/quote.d.ts.map +1 -1
- package/dist/src/render/blocks/quote.js +14 -12
- package/dist/src/render/blocks/quote.js.map +1 -1
- package/dist/src/render/blocks/stat-counter.d.ts +6 -0
- package/dist/src/render/blocks/stat-counter.d.ts.map +1 -1
- package/dist/src/render/blocks/stat-counter.js +7 -10
- package/dist/src/render/blocks/stat-counter.js.map +1 -1
- package/dist/src/render/blocks/stats.d.ts +7 -0
- package/dist/src/render/blocks/stats.d.ts.map +1 -1
- package/dist/src/render/blocks/stats.js +8 -16
- package/dist/src/render/blocks/stats.js.map +1 -1
- package/dist/src/render/blocks/testimonial.d.ts +5 -11
- package/dist/src/render/blocks/testimonial.d.ts.map +1 -1
- package/dist/src/render/blocks/testimonial.js +9 -17
- package/dist/src/render/blocks/testimonial.js.map +1 -1
- package/dist/src/render/chrome.d.ts.map +1 -1
- package/dist/src/render/chrome.js +101 -84
- package/dist/src/render/chrome.js.map +1 -1
- package/dist/src/render/dish.d.ts +13 -0
- package/dist/src/render/dish.d.ts.map +1 -0
- package/dist/src/render/dish.js +84 -0
- package/dist/src/render/dish.js.map +1 -0
- package/dist/src/render/layout.d.ts +23 -0
- package/dist/src/render/layout.d.ts.map +1 -0
- package/dist/src/render/layout.js +33 -0
- package/dist/src/render/layout.js.map +1 -0
- package/dist/src/render/menu.d.ts +53 -0
- package/dist/src/render/menu.d.ts.map +1 -0
- package/dist/src/render/menu.js +99 -0
- package/dist/src/render/menu.js.map +1 -0
- package/dist/src/render/render-block.d.ts +19 -0
- package/dist/src/render/render-block.d.ts.map +1 -1
- package/dist/src/render/render-block.js +50 -39
- 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 +23 -0
- package/dist/src/render/strings.js.map +1 -0
- package/dist/src/render/term-archive.d.ts +10 -4
- package/dist/src/render/term-archive.d.ts.map +1 -1
- package/dist/src/render/term-archive.js +25 -16
- package/dist/src/render/term-archive.js.map +1 -1
- package/dist/src/render/widget-areas.d.ts +13 -0
- package/dist/src/render/widget-areas.d.ts.map +1 -0
- package/dist/src/render/widget-areas.js +20 -0
- package/dist/src/render/widget-areas.js.map +1 -0
- package/dist/theme.config.d.ts +1 -1
- package/dist/theme.config.js +2 -2
- package/dist/theme.config.js.map +1 -1
- package/package.json +5 -5
- package/src/index.ts +3 -0
- package/src/render/blocks/accordion.ts +18 -47
- package/src/render/blocks/collection-list.ts +245 -133
- package/src/render/blocks/cta.ts +20 -11
- package/src/render/blocks/embed.ts +45 -36
- package/src/render/blocks/faq.ts +32 -25
- package/src/render/blocks/feature-grid.ts +83 -33
- package/src/render/blocks/gallery.ts +39 -21
- package/src/render/blocks/hero.ts +41 -34
- package/src/render/blocks/logo-strip.ts +27 -25
- package/src/render/blocks/logos.ts +34 -43
- package/src/render/blocks/media-figure.ts +49 -24
- package/src/render/blocks/pricing-table.ts +30 -42
- package/src/render/blocks/prose.ts +18 -9
- package/src/render/blocks/quote.ts +29 -19
- package/src/render/blocks/stat-counter.ts +24 -29
- package/src/render/blocks/stats.ts +30 -40
- package/src/render/blocks/testimonial.ts +17 -22
- package/src/render/chrome.ts +113 -95
- package/src/render/dish.ts +195 -0
- package/src/render/layout.ts +64 -0
- package/src/render/menu.ts +117 -0
- package/src/render/render-block.ts +51 -40
- package/src/render/strings.ts +44 -0
- package/src/render/term-archive.ts +78 -44
- package/src/render/widget-areas.ts +23 -0
- package/src/styles/archive.css +46 -56
- package/src/styles/base.css +807 -554
- package/src/styles/blocks.css +723 -641
- package/src/styles/menu.css +482 -0
- package/src/styles/theme.css +24 -25
- package/src/styles/tokens.css +239 -225
- package/src/styles/widgets.css +853 -0
- package/tokens.json +16 -16
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The menu, the band of plates, lists of photographed or plain entries, and
|
|
3
|
+
* the page of one dish. Everything reads `tokens.css`.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* --------------------------------------------------------------------------
|
|
7
|
+
Lists: the frame every `collectionList` shape sits in.
|
|
8
|
+
-------------------------------------------------------------------------- */
|
|
9
|
+
|
|
10
|
+
.cr-list__items {
|
|
11
|
+
margin: 0;
|
|
12
|
+
padding: 0;
|
|
13
|
+
list-style: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.cr-list__viewport {
|
|
17
|
+
overflow-x: auto;
|
|
18
|
+
overscroll-behavior-x: contain;
|
|
19
|
+
scroll-snap-type: x mandatory;
|
|
20
|
+
scrollbar-width: thin;
|
|
21
|
+
padding-block-end: var(--cr-s4);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* One column holds a printed menu's width, not the page's: the leaders stay
|
|
25
|
+
the length of a few words. */
|
|
26
|
+
.cr-list[data-layout="list"] .cr-menu {
|
|
27
|
+
max-inline-size: 38rem;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@media (min-width: 64rem) {
|
|
31
|
+
.cr-list[data-layout="list"] .cr-menu {
|
|
32
|
+
grid-column: 3 / span 8;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* A titled menu: the title on the first three columns, the menu on the
|
|
36
|
+
last eight, so the sections read as a card set beside its name. */
|
|
37
|
+
.cr-list[data-shape="menu"] .cr-head {
|
|
38
|
+
position: sticky;
|
|
39
|
+
inset-block-start: var(--cr-s8);
|
|
40
|
+
grid-column: 1 / span 3;
|
|
41
|
+
grid-row: 1;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.cr-list[data-shape="menu"] .cr-head + .cr-menu {
|
|
45
|
+
grid-column: 5 / span 8;
|
|
46
|
+
grid-row: 1;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.cr-list[data-shape="menu"] .cr-head__title {
|
|
50
|
+
max-inline-size: 10ch;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* --------------------------------------------------------------------------
|
|
55
|
+
The menu: sections in small capitals, a dish per line with a dotted leader
|
|
56
|
+
to its price, the description under it.
|
|
57
|
+
-------------------------------------------------------------------------- */
|
|
58
|
+
|
|
59
|
+
.cr-menu__section {
|
|
60
|
+
padding-block-end: var(--cr-s12);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.cr-menu__section:last-child {
|
|
64
|
+
padding-block-end: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.cr-menu__section-title {
|
|
68
|
+
margin: 0 0 var(--cr-s3);
|
|
69
|
+
padding-block-end: var(--cr-s3);
|
|
70
|
+
border-block-end: var(--cr-rule) solid var(--cr-line-ink);
|
|
71
|
+
color: var(--cr-brass);
|
|
72
|
+
font-family: var(--cr-font-display);
|
|
73
|
+
font-size: var(--cr-size-label);
|
|
74
|
+
font-weight: var(--cr-weight-semibold);
|
|
75
|
+
font-variant-caps: all-small-caps;
|
|
76
|
+
line-height: 1.2;
|
|
77
|
+
letter-spacing: var(--cr-tracking-caps);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.cr-menu__items {
|
|
81
|
+
margin: 0;
|
|
82
|
+
padding: 0;
|
|
83
|
+
list-style: none;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Dishes are separated by space alone, the way a printed menu sets them: a
|
|
87
|
+
rule under every dish would make a form of it. */
|
|
88
|
+
.cr-menu__item {
|
|
89
|
+
padding-block: var(--cr-s3) var(--cr-s4);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* One line: the name, a leader of dots on the shared baseline, the price.
|
|
93
|
+
A long name wraps and the leader and price follow its last line. */
|
|
94
|
+
.cr-menu__line {
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: last baseline;
|
|
97
|
+
gap: 0 var(--cr-s3);
|
|
98
|
+
margin: 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.cr-menu__name {
|
|
102
|
+
flex: 0 1 auto;
|
|
103
|
+
color: var(--cr-ink);
|
|
104
|
+
font-family: var(--cr-font-display);
|
|
105
|
+
font-size: var(--cr-size-dish-name);
|
|
106
|
+
font-weight: var(--cr-weight-semibold);
|
|
107
|
+
line-height: 1.2;
|
|
108
|
+
text-decoration-color: transparent;
|
|
109
|
+
text-underline-offset: 0.2em;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.cr-menu__name:hover {
|
|
113
|
+
text-decoration-color: currentColor;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.cr-menu__leader {
|
|
117
|
+
flex: 1 1 var(--cr-s8);
|
|
118
|
+
min-inline-size: var(--cr-s6);
|
|
119
|
+
margin-block-end: 0.3em;
|
|
120
|
+
border-block-end: var(--cr-rule-strong) dotted var(--cr-line-strong);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.cr-menu__price {
|
|
124
|
+
flex: none;
|
|
125
|
+
color: var(--cr-ink);
|
|
126
|
+
font-size: var(--cr-text-md);
|
|
127
|
+
font-weight: var(--cr-weight-medium);
|
|
128
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
129
|
+
white-space: nowrap;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.cr-menu__description {
|
|
133
|
+
margin: var(--cr-s1) 0 0;
|
|
134
|
+
max-inline-size: 52ch;
|
|
135
|
+
color: var(--cr-ink-muted);
|
|
136
|
+
font-size: var(--cr-text-caption);
|
|
137
|
+
line-height: 1.5;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.cr-menu__diet {
|
|
141
|
+
color: var(--cr-ink-muted);
|
|
142
|
+
font-style: italic;
|
|
143
|
+
white-space: nowrap;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.cr-menu__text + .cr-menu__diet {
|
|
147
|
+
margin-inline-start: 0.5em;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Two columns of sections on a wide screen, balanced, never a section split
|
|
151
|
+
across them. */
|
|
152
|
+
@media (min-width: 48rem) {
|
|
153
|
+
.cr-list[data-layout="grid"] .cr-menu:not([data-sections="1"]),
|
|
154
|
+
.cr-list[data-layout="carousel"] .cr-menu:not([data-sections="1"]) {
|
|
155
|
+
column-count: 2;
|
|
156
|
+
column-gap: clamp(var(--cr-s10), 5vw, var(--cr-s20));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.cr-list[data-layout="grid"] .cr-menu__section,
|
|
160
|
+
.cr-list[data-layout="carousel"] .cr-menu__section {
|
|
161
|
+
break-inside: avoid;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.cr-list[data-layout="grid"] .cr-menu:not([data-sections="1"]) .cr-menu__section:last-child {
|
|
165
|
+
padding-block-end: 0;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@media (min-width: 64rem) {
|
|
170
|
+
.cr-list[data-layout="list"] .cr-head + .cr-menu {
|
|
171
|
+
grid-column: 5 / span 7;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* --------------------------------------------------------------------------
|
|
176
|
+
A band of plates: the photograph at 4:5, the name and the price under it.
|
|
177
|
+
-------------------------------------------------------------------------- */
|
|
178
|
+
|
|
179
|
+
.cr-plates {
|
|
180
|
+
display: grid;
|
|
181
|
+
grid-auto-flow: column;
|
|
182
|
+
grid-auto-columns: 72%;
|
|
183
|
+
gap: var(--cr-col-gap);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@media (min-width: 40rem) {
|
|
187
|
+
.cr-plates {
|
|
188
|
+
grid-auto-columns: calc((100% - var(--cr-col-gap) * 2) / 3);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
@media (min-width: 64rem) {
|
|
193
|
+
.cr-plates {
|
|
194
|
+
grid-auto-columns: calc((100% - var(--cr-col-gap) * 3) / 4);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.cr-plates__item {
|
|
199
|
+
scroll-snap-align: start;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.cr-plates__media {
|
|
203
|
+
display: block;
|
|
204
|
+
margin-block-end: var(--cr-s4);
|
|
205
|
+
background: var(--cr-plate);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.cr-plates__image {
|
|
209
|
+
inline-size: 100%;
|
|
210
|
+
aspect-ratio: 4 / 5;
|
|
211
|
+
object-fit: cover;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.cr-plates__item[data-media="false"] {
|
|
215
|
+
padding-block-start: var(--cr-s4);
|
|
216
|
+
border-block-start: var(--cr-rule) solid var(--cr-line-ink);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.cr-plates__line {
|
|
220
|
+
display: flex;
|
|
221
|
+
align-items: baseline;
|
|
222
|
+
justify-content: space-between;
|
|
223
|
+
gap: var(--cr-s4);
|
|
224
|
+
margin: 0;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.cr-plates__name {
|
|
228
|
+
color: var(--cr-ink);
|
|
229
|
+
font-family: var(--cr-font-display);
|
|
230
|
+
font-size: var(--cr-size-dish-name);
|
|
231
|
+
font-weight: var(--cr-weight-semibold);
|
|
232
|
+
line-height: 1.2;
|
|
233
|
+
text-decoration-color: transparent;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.cr-plates__name:hover {
|
|
237
|
+
text-decoration-color: currentColor;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.cr-plates__price {
|
|
241
|
+
flex: none;
|
|
242
|
+
font-weight: var(--cr-weight-medium);
|
|
243
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.cr-plates__section {
|
|
247
|
+
margin: var(--cr-s1) 0 0;
|
|
248
|
+
color: var(--cr-ink-muted);
|
|
249
|
+
font-size: var(--cr-text-caption);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* --------------------------------------------------------------------------
|
|
253
|
+
Photographed entries without a price, and a plain index.
|
|
254
|
+
-------------------------------------------------------------------------- */
|
|
255
|
+
|
|
256
|
+
.cr-photos {
|
|
257
|
+
display: grid;
|
|
258
|
+
grid-template-columns: minmax(0, 1fr);
|
|
259
|
+
gap: var(--cr-s12) var(--cr-col-gap);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
@media (min-width: 40rem) {
|
|
263
|
+
.cr-photos {
|
|
264
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@media (min-width: 64rem) {
|
|
269
|
+
.cr-photos[data-count="3"] {
|
|
270
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.cr-list__viewport .cr-photos {
|
|
275
|
+
grid-template-columns: none;
|
|
276
|
+
grid-auto-flow: column;
|
|
277
|
+
grid-auto-columns: 72%;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@media (min-width: 40rem) {
|
|
281
|
+
.cr-list__viewport .cr-photos {
|
|
282
|
+
grid-auto-columns: calc((100% - var(--cr-col-gap) * 2) / 3);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.cr-photos__item {
|
|
287
|
+
scroll-snap-align: start;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.cr-photos__media {
|
|
291
|
+
display: block;
|
|
292
|
+
margin-block-end: var(--cr-s5);
|
|
293
|
+
background: var(--cr-plate);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.cr-photos__image {
|
|
297
|
+
inline-size: 100%;
|
|
298
|
+
aspect-ratio: 4 / 5;
|
|
299
|
+
object-fit: cover;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.cr-photos__name {
|
|
303
|
+
font-size: var(--cr-text-2xl);
|
|
304
|
+
font-weight: var(--cr-weight-regular);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.cr-photos__text {
|
|
308
|
+
margin: var(--cr-s2) 0 0;
|
|
309
|
+
max-inline-size: 42ch;
|
|
310
|
+
color: var(--cr-ink-muted);
|
|
311
|
+
font-size: var(--cr-text-caption);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.cr-index__item {
|
|
315
|
+
padding-block: var(--cr-s6);
|
|
316
|
+
border-block-start: var(--cr-rule) solid var(--cr-line);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
.cr-index__item:last-child {
|
|
320
|
+
border-block-end: var(--cr-rule) solid var(--cr-line);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.cr-index__name {
|
|
324
|
+
font-size: var(--cr-text-2xl);
|
|
325
|
+
font-weight: var(--cr-weight-regular);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.cr-index__link {
|
|
329
|
+
color: var(--cr-ink);
|
|
330
|
+
text-decoration-color: transparent;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.cr-index__link:hover {
|
|
334
|
+
text-decoration-color: currentColor;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.cr-index__text {
|
|
338
|
+
margin: var(--cr-s2) 0 0;
|
|
339
|
+
max-inline-size: var(--cr-measure);
|
|
340
|
+
color: var(--cr-ink-muted);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
@media (min-width: 64rem) {
|
|
344
|
+
.cr-list[data-shape="index"] .cr-head {
|
|
345
|
+
grid-column: 1 / span 4;
|
|
346
|
+
grid-row: 1;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.cr-list[data-shape="index"] .cr-index {
|
|
350
|
+
grid-column: 5 / span 8;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.cr-list[data-shape="index"] .cr-head + .cr-index {
|
|
354
|
+
grid-row: 1;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/* --------------------------------------------------------------------------
|
|
359
|
+
The page of one dish.
|
|
360
|
+
-------------------------------------------------------------------------- */
|
|
361
|
+
|
|
362
|
+
.cr-dish {
|
|
363
|
+
padding-block: calc(var(--cr-section) * 0.4) calc(var(--cr-section) * 0.3);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.cr-dish__inner {
|
|
367
|
+
row-gap: var(--cr-s10);
|
|
368
|
+
align-items: center;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.cr-dish__media {
|
|
372
|
+
margin: 0;
|
|
373
|
+
background: var(--cr-plate);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.cr-dish__image {
|
|
377
|
+
inline-size: 100%;
|
|
378
|
+
aspect-ratio: 4 / 5;
|
|
379
|
+
object-fit: cover;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.cr-dish__section {
|
|
383
|
+
margin: 0 0 var(--cr-s4);
|
|
384
|
+
color: var(--cr-brass);
|
|
385
|
+
font-family: var(--cr-font-display);
|
|
386
|
+
font-size: var(--cr-size-label);
|
|
387
|
+
font-weight: var(--cr-weight-semibold);
|
|
388
|
+
font-variant-caps: all-small-caps;
|
|
389
|
+
line-height: 1.2;
|
|
390
|
+
letter-spacing: var(--cr-tracking-caps);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.cr-dish__title {
|
|
394
|
+
font-size: var(--cr-size-dish);
|
|
395
|
+
font-weight: var(--cr-weight-light);
|
|
396
|
+
line-height: 1.02;
|
|
397
|
+
letter-spacing: var(--cr-tracking-display);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.cr-dish__summary {
|
|
401
|
+
margin: var(--cr-s6) 0 0;
|
|
402
|
+
max-inline-size: 36ch;
|
|
403
|
+
color: var(--cr-ink-muted);
|
|
404
|
+
font-family: var(--cr-font-display);
|
|
405
|
+
font-size: var(--cr-size-lead);
|
|
406
|
+
font-style: italic;
|
|
407
|
+
line-height: var(--cr-leading-lead);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
.cr-dish__price-line {
|
|
411
|
+
display: flex;
|
|
412
|
+
flex-wrap: wrap;
|
|
413
|
+
align-items: baseline;
|
|
414
|
+
justify-content: space-between;
|
|
415
|
+
gap: var(--cr-s2) var(--cr-s6);
|
|
416
|
+
margin: var(--cr-s10) 0 0;
|
|
417
|
+
padding-block: var(--cr-s4);
|
|
418
|
+
border-block: var(--cr-rule) solid var(--cr-line-ink);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.cr-dish__price {
|
|
422
|
+
color: var(--cr-ink);
|
|
423
|
+
font-size: var(--cr-text-xl);
|
|
424
|
+
font-weight: var(--cr-weight-medium);
|
|
425
|
+
font-variant-numeric: lining-nums tabular-nums;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.cr-dish__diet {
|
|
429
|
+
color: var(--cr-ink-muted);
|
|
430
|
+
font-style: italic;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
.cr-dish__details {
|
|
434
|
+
margin-block-start: var(--cr-s2);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.cr-dish__facts {
|
|
438
|
+
margin: 0;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.cr-dish__fact {
|
|
442
|
+
display: grid;
|
|
443
|
+
grid-template-columns: minmax(6.5rem, 1fr) 3fr;
|
|
444
|
+
gap: var(--cr-s1) var(--cr-s5);
|
|
445
|
+
padding-block: var(--cr-s4);
|
|
446
|
+
border-block-end: var(--cr-rule) solid var(--cr-line);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.cr-dish__fact-label {
|
|
450
|
+
color: var(--cr-ink-muted);
|
|
451
|
+
font-size: var(--cr-text-caption);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.cr-dish__fact-value {
|
|
455
|
+
margin: 0;
|
|
456
|
+
font-size: var(--cr-text-md);
|
|
457
|
+
line-height: 1.5;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.cr-dish__terms {
|
|
461
|
+
display: flex;
|
|
462
|
+
flex-wrap: wrap;
|
|
463
|
+
gap: var(--cr-s1) var(--cr-s5);
|
|
464
|
+
margin: var(--cr-s6) 0 0;
|
|
465
|
+
padding: 0;
|
|
466
|
+
list-style: none;
|
|
467
|
+
font-size: var(--cr-text-caption);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
@media (min-width: 64rem) {
|
|
471
|
+
.cr-dish[data-media="true"] .cr-dish__media {
|
|
472
|
+
grid-column: 1 / span 6;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
.cr-dish[data-media="true"] .cr-dish__info {
|
|
476
|
+
grid-column: 8 / span 5;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
.cr-dish[data-media="false"] .cr-dish__info {
|
|
480
|
+
grid-column: 1 / span 7;
|
|
481
|
+
}
|
|
482
|
+
}
|
package/src/styles/theme.css
CHANGED
|
@@ -1,36 +1,35 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* `@cogenta/theme-restaurant`'s stylesheet
|
|
3
|
-
* else.
|
|
2
|
+
* `@cogenta/theme-restaurant`'s stylesheet: the entry point, and nothing else.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
4
|
+
* tokens.css the design system, derived from the skin's `--cogenta-*`
|
|
5
|
+
* custom properties (contract D)
|
|
6
|
+
* base.css document, accessibility floor, grid, section and page
|
|
7
|
+
* titles, actions, header, footer, and the utility pages the
|
|
8
|
+
* host renders (search, forms, comments)
|
|
9
|
+
* menu.css the menu, the band of plates, photographed and plain lists,
|
|
10
|
+
* the page of one dish
|
|
11
|
+
* blocks.css the other vocabulary blocks
|
|
12
|
+
* archive.css the taxonomy-term archive
|
|
13
|
+
* widgets.css the widget areas: the column beside a dish, the bands, the
|
|
14
|
+
* footer columns
|
|
6
15
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* base.css document, accessibility floor, page frame, chrome, actions
|
|
10
|
-
* blocks.css the seventeen vocabulary blocks
|
|
11
|
-
* archive.css the taxonomy-term archive (contract D `theme@1.3`)
|
|
16
|
+
* Not one colour is written literally in any of them: every value comes from
|
|
17
|
+
* a skin token or from a `--cr-*` property composed from those.
|
|
12
18
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* four into one sheet, so no visitor ever pays for four round trips.
|
|
21
|
-
*
|
|
22
|
-
* The one thing this file adds on its own: the Google Fonts request for the
|
|
23
|
-
* two type families `tokens.json` names — Cormorant Garamond (display
|
|
24
|
-
* headings, light weight) and Jost (body copy, controls, small-caps
|
|
25
|
-
* labels) — loaded here, once, rather than per skin, since a skin only ever
|
|
26
|
-
* *names* a font family; it does not fetch one. Both fall back to a real
|
|
27
|
-
* system stack (`tokens.json`'s `font.serif`/`font.sans`) if Google Fonts is
|
|
28
|
-
* unreachable.
|
|
19
|
+
* The one thing this file adds on its own is the Google Fonts request for the
|
|
20
|
+
* two families the skin names: Cormorant Garamond (display, upright and
|
|
21
|
+
* italic, 300 to 700) and Karla (text, upright and italic, 200 to 800). A
|
|
22
|
+
* skin only names a family; it never fetches one. Both fall back to a real
|
|
23
|
+
* system stack if Google Fonts is unreachable, and `display=swap` keeps text
|
|
24
|
+
* visible while they load. `cogenta serve` hoists this `@import` above the
|
|
25
|
+
* skin's rules.
|
|
29
26
|
*/
|
|
30
27
|
|
|
31
|
-
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;
|
|
28
|
+
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Karla:ital,wght@0,200..800;1,200..800&display=swap");
|
|
32
29
|
|
|
33
30
|
@import "./tokens.css";
|
|
34
31
|
@import "./base.css";
|
|
32
|
+
@import "./menu.css";
|
|
35
33
|
@import "./blocks.css";
|
|
36
34
|
@import "./archive.css";
|
|
35
|
+
@import "./widgets.css";
|