@sc-360-v2/storefront-cms-library 0.5.71 → 0.5.72

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.
@@ -1,348 +1,348 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
- @use "./functions.scss" as *;
4
-
5
- [data-div-type="element"] {
6
- &[data-element-type="productHighlights"] {
7
- // width: var(--_lt-wh);
8
- // height: var(--_lt-ht);
9
- // margin: var(--_lt-mn);
10
- // padding: var(--_lt-pg);
11
- // width: var(--_ctm-lt-wh, var(--_tst-lt-wh));
12
- // width: var(--_sf-nw-wh, var(--_tst-lt-wh));
13
- width: var(
14
- --_sf-el-wh-st-mx,
15
- calc(
16
- 1% * var(--_ctm-mob-ele-nw-wh-vl, var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl)))
17
- )
18
- );
19
- margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
20
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
21
- // height: ;
22
- // aspect-ratio: 1 / var(--_sf-aspect-ratio);
23
- // --_aspect-ratio: calc(
24
- // 1 * (var(--_ctm-lt-ht, var(--_tst-lt-ht)) / var(--_ctm-lt-wh, var(--_tst-lt-wh)))
25
- // );
26
-
27
- & > .wrapper {
28
- width: 100%;
29
- // height: 100%;
30
- }
31
- &[data-show-shadow="false"] {
32
- --_show-shadow: none;
33
- }
34
- &[data-overflow-items="Scroll"] {
35
- .horizontal {
36
- width: 100%;
37
- overflow-x: auto;
38
- .item {
39
- width: 100%;
40
- flex-shrink: 0;
41
- }
42
- }
43
- .vertical {
44
- overflow-y: auto;
45
- max-height: 30%;
46
- }
47
- }
48
- .text-element {
49
- color: #333;
50
- font-size: 12px;
51
- font-style: normal;
52
- font-weight: 400;
53
- line-height: 18px;
54
- margin-bottom: 6px;
55
- }
56
- .highlights__container {
57
- background-color: var(
58
- --_ctm-mob-dn-wt-se-bd-cr,
59
- var(--_ctm-tab-dn-wt-se-bd-cr, var(--_ctm-dn-wt-se-bd-cr))
60
- );
61
-
62
- border-color: var(
63
- --_ctm-mob-dn-wt-se-br-cr,
64
- var(--_ctm-tab-dn-wt-se-br-cr, var(--_ctm-dn-wt-se-br-cr))
65
- );
66
-
67
- border-style: var(
68
- --_ctm-mob-dn-wt-se-br-se,
69
- var(--_ctm-tab-dn-wt-se-br-se, var(--_ctm-dn-wt-se-br-se))
70
- );
71
-
72
- border-width: var(
73
- --_ctm-mob-dn-wt-se-br-wh,
74
- var(--_ctm-tab-dn-wt-se-br-wh, var(--_ctm-dn-wt-se-br-wh))
75
- );
76
-
77
- border-radius: var(
78
- --_ctm-mob-dn-wt-se-br-rs,
79
- var(--_ctm-tab-dn-wt-se-br-rs, var(--_ctm-dn-wt-se-br-rs))
80
- );
81
-
82
- box-shadow: var(
83
- --_show-shadow,
84
- var(--_ctm-mob-dn-wt-se-sw-ae, var(--_ctm-tab-dn-wt-se-sw-ae, var(--_ctm-dn-wt-se-sw-ae)))
85
- var(--_ctm-mob-dn-wt-se-sw-br, var(--_ctm-tab-dn-wt-se-sw-br, var(--_ctm-dn-wt-se-sw-br)))
86
- var(--_ctm-mob-dn-wt-se-sw-sd, var(--_ctm-tab-dn-wt-se-sw-sd, var(--_ctm-dn-wt-se-sw-sd)))
87
- var(--_ctm-mob-dn-wt-se-sw-cr, var(--_ctm-tab-dn-wt-se-sw-cr, var(--_ctm-dn-wt-se-sw-cr)))
88
- );
89
-
90
- padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
91
- padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
92
- // Must stay lowercase to match `<div className="stack">` in the ProductHighlights
93
- // element. Class selectors are case-sensitive in standards mode, so the old `.stacK`
94
- // matched nothing on the storefront and took this whole block down with it.
95
- // The renderer emits `class="stack"`. This block used to read `.stacK`, so every
96
- // rule under it — the item box (Item Style fill/border/radius/shadow), the title
97
- // typography and the horizontal/vertical/grid layouts — never matched anything.
98
- .stack {
99
- display: flex;
100
- flex-direction: column;
101
- gap: prepareMediaVariable(--_ctm-lt-te-ad-is-sg);
102
-
103
- .item {
104
- width: prepareMediaVariable(--_ctm-lt-im-wh);
105
- height: prepareMediaVariable(--_ctm-lt-im-ht);
106
-
107
- position: relative;
108
- img {
109
- object-fit: cover;
110
- display: block;
111
- height: 100%;
112
- width: 100%;
113
- box-sizing: border-box;
114
-
115
- padding: var(--_ctm-mob-lt-im-pg, var(--_ctm-tab-lt-im-pg, var(--_ctm-lt-im-pg)));
116
-
117
- background-color: var(
118
- --_ctm-mob-dn-im-se-bd-cr,
119
- var(--_ctm-tab-dn-im-se-bd-cr, var(--_ctm-dn-im-se-bd-cr))
120
- );
121
-
122
- border-color: var(
123
- --_ctm-mob-dn-im-se-br-cr,
124
- var(--_ctm-tab-dn-im-se-br-cr, var(--_ctm-dn-im-se-br-cr))
125
- );
126
-
127
- border-style: var(
128
- --_ctm-mob-dn-im-se-br-se,
129
- var(--_ctm-tab-dn-im-se-br-se, var(--_ctm-dn-im-se-br-se))
130
- );
131
-
132
- border-width: var(
133
- --_ctm-mob-dn-im-se-br-wh,
134
- var(--_ctm-tab-dn-im-se-br-wh, var(--_ctm-dn-im-se-br-wh))
135
- );
136
-
137
- border-radius: var(
138
- --_ctm-mob-dn-im-se-br-rs,
139
- var(--_ctm-tab-dn-im-se-br-rs, var(--_ctm-dn-im-se-br-rs))
140
- );
141
-
142
- box-shadow: var(
143
- --_show-shadow,
144
- var(
145
- --_ctm-mob-dn-im-se-sw-ae,
146
- var(--_ctm-tab-dn-im-se-sw-ae, var(--_ctm-dn-im-se-sw-ae))
147
- )
148
- var(
149
- --_ctm-mob-dn-im-se-sw-br,
150
- var(--_ctm-tab-dn-im-se-sw-br, var(--_ctm-dn-im-se-sw-br))
151
- )
152
- var(
153
- --_ctm-mob-dn-im-se-sw-sd,
154
- var(--_ctm-tab-dn-im-se-sw-sd, var(--_ctm-dn-im-se-sw-sd))
155
- )
156
- var(
157
- --_ctm-mob-dn-im-se-sw-cr,
158
- var(--_ctm-tab-dn-im-se-sw-cr, var(--_ctm-dn-im-se-sw-cr))
159
- )
160
- );
161
- }
162
- }
163
- .items__container {
164
- &[data-show-divider="true"] {
165
- &[data-flex-direction="row"] {
166
- // The divider is a pseudo-element and takes no space of its own, so a thick
167
- // one grew back over the item beside it — see dividerGapReserve in functions.scss.
168
- .item:not(:last-child) {
169
- @include dividerGapReserve(--_ctm-dn-wt-se-dr-wt, right);
170
- }
171
- .item:not(:last-child)::before {
172
- content: "";
173
- position: absolute;
174
- top: 0;
175
- bottom: 0; /* For full height divider */
176
- right: dividerGapOffset(--_ctm-lt-im-sg, --_ctm-dn-wt-se-dr-wt);
177
- width: var(
178
- --_ctm-mob-dn-wt-se-dr-wt,
179
- var(--_ctm-tab-dn-wt-se-dr-wt, var(--_ctm-dn-wt-se-dr-wt))
180
- ); /* Divider thickness */
181
- background-color: var(
182
- --_ctm-mob-dn-wt-se-dr-cr,
183
- var(--_ctm-tab-dn-wt-se-dr-cr, var(--_ctm-dn-wt-se-dr-cr))
184
- ); /* Divider color */
185
- }
186
- }
187
- &[data-flex-direction="column"] {
188
- .item:not(:last-child) {
189
- @include dividerGapReserve(--_ctm-dn-wt-se-dr-wt);
190
- }
191
- .item:not(:last-child)::before {
192
- content: "";
193
- position: absolute;
194
- left: 0;
195
- right: 0;
196
- bottom: dividerGapOffset(--_ctm-lt-im-sg, --_ctm-dn-wt-se-dr-wt);
197
- height: var(
198
- --_ctm-mob-dn-wt-se-dr-wt,
199
- var(--_ctm-tab-dn-wt-se-dr-wt, var(--_ctm-dn-wt-se-dr-wt))
200
- );
201
- background-color: var(
202
- --_ctm-mob-dn-wt-se-dr-cr,
203
- var(--_ctm-tab-dn-wt-se-dr-cr, var(--_ctm-dn-wt-se-dr-cr))
204
- );
205
- }
206
- }
207
- }
208
- }
209
-
210
- .title {
211
- color: var(--_ctm-mob-dn-wt-se-cr, var(--_ctm-tab-dn-wt-se-cr, var(--_ctm-dn-wt-se-cr)));
212
- font-family: var(
213
- --_ctm-mob-dn-wt-se-ft-fy,
214
- var(--_ctm-tab-dn-wt-se-ft-fy, var(--_ctm-dn-wt-se-ft-fy))
215
- );
216
- text-transform: var(
217
- --_ctm-mob-dn-wt-se-tt-tm,
218
- var(--_ctm-tab-dn-wt-se-tt-tm, var(--_ctm-dn-wt-se-tt-tm))
219
- );
220
- word-wrap: var(
221
- --_ctm-mob-dn-wt-se-wd-wp,
222
- var(--_ctm-tab-dn-wt-se-wd-wp, var(--_ctm-dn-wt-se-wd-wp))
223
- );
224
- word-break: var(
225
- --_ctm-mob-dn-wt-se-wd-bk,
226
- var(--_ctm-tab-dn-wt-se-wd-bk, var(--_ctm-dn-wt-se-wd-bk))
227
- );
228
- font-size: var(
229
- --_ctm-mob-dn-wt-se-ft-se,
230
- var(--_ctm-tab-dn-wt-se-ft-se, var(--_ctm-dn-wt-se-ft-se))
231
- );
232
- font-weight: var(
233
- --_ctm-mob-dn-wt-se-ft-wt,
234
- var(--_ctm-tab-dn-wt-se-ft-wt, var(--_ctm-dn-wt-se-ft-wt))
235
- );
236
- font-style: var(
237
- --_ctm-mob-dn-wt-se-ft-se-ic,
238
- var(--_ctm-tab-dn-wt-se-ft-se-ic, var(--_ctm-dn-wt-se-ft-se-ic))
239
- );
240
- text-align: var(
241
- --_ctm-mob-dn-wt-se-tt-an,
242
- var(--_ctm-tab-dn-wt-se-tt-an, var(--_ctm-dn-wt-se-tt-an))
243
- );
244
- letter-spacing: var(
245
- --_ctm-mob-dn-wt-se-lr-sg,
246
- var(--_ctm-tab-dn-wt-se-lr-sg, var(--_ctm-dn-wt-se-lr-sg))
247
- );
248
- // Line box guard. The line-height control stores a fixed length (its default is
249
- // 1rem), so it does not grow with the font size — at a large size the glyphs
250
- // end up taller than their own line box and look cut off. max(..., 1em) keeps
251
- // the box at least as tall as the text while still honouring a larger value.
252
- line-height: max(
253
- var(
254
- --_ctm-mob-dn-wt-se-le-ht,
255
- var(--_ctm-tab-dn-wt-se-le-ht, var(--_ctm-dn-wt-se-le-ht, 1em))
256
- ),
257
- 1em
258
- );
259
- text-decoration: var(
260
- --_ctm-mob-dn-wt-se-ue,
261
- var(--_ctm-tab-dn-wt-se-ue, var(--_ctm-dn-wt-se-ue))
262
- );
263
- padding: prepareMediaVariable(--_ctm-dn-wt-se-pg);
264
-
265
- // Text Overflow is a `controls` property, not a CSS one, so it cannot travel as
266
- // a variable — the renderer adds `.flex__overflow` and publishes the line count
267
- // as `--_sf-line-clamp`.
268
- &.flex__overflow {
269
- white-space: normal;
270
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
271
- }
272
- }
273
- .horizontal {
274
- display: flex;
275
- gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg, 10px)));
276
- .item {
277
- flex-shrink: 0;
278
- }
279
-
280
- &[data-overflow-items="Wrap"] {
281
- flex-wrap: wrap;
282
- }
283
- &[data-overflow-items="Scroll"] {
284
- width: 100%;
285
- overflow-x: auto;
286
- }
287
- &[data-overflow-items="Hidden"] {
288
- overflow-x: hidden;
289
- }
290
-
291
- &[items-content-alignement="right"] {
292
- justify-content: flex-end;
293
- }
294
- &[items-content-alignement="left"] {
295
- justify-content: flex-start;
296
- }
297
- &[items-content-alignement="center"] {
298
- justify-content: center;
299
- }
300
- }
301
- .vertical {
302
- display: flex;
303
- flex-direction: column;
304
- gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
305
- height: prepareMediaVariable(--_ctm-lt-mx-cr-ht);
306
- max-height: prepareMediaVariable(--_ctm-lt-mx-cr-ht);
307
-
308
- &[data-overflow-items="Scroll"] {
309
- overflow-y: auto;
310
- }
311
- &[data-overflow-items="Hidden"] {
312
- overflow-y: hidden;
313
- }
314
-
315
- &[items-content-alignement="right"] {
316
- align-items: flex-end;
317
- }
318
- &[items-content-alignement="left"] {
319
- align-items: flex-start;
320
- }
321
- &[items-content-alignement="center"] {
322
- align-items: center;
323
- }
324
- }
325
- .grid {
326
- display: grid;
327
- grid-template-columns: repeat(var(--_ctm-lt-is-pr-rw), minmax(auto, 1fr));
328
- grid-template-columns: repeat(
329
- var(--_ctm-mob-lt-is-pr-rw, var(--_ctm-tab-lt-is-pr-rw, var(--_ctm-lt-is-pr-rw))),
330
- minmax(auto, 1fr)
331
- );
332
- gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg, 10px)));
333
- max-height: prepareMediaVariable(--_ctm-lt-mx-cr-ht);
334
- &[data-overflow-items="Scroll"] {
335
- overflow-y: auto;
336
- }
337
- &[data-overflow-items="Hidden"] {
338
- overflow-y: hidden;
339
- }
340
- margin: 0px;
341
- .item {
342
- width: auto;
343
- }
344
- }
345
- }
346
- }
347
- }
348
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+ @use "./functions.scss" as *;
4
+
5
+ [data-div-type="element"] {
6
+ &[data-element-type="productHighlights"] {
7
+ // width: var(--_lt-wh);
8
+ // height: var(--_lt-ht);
9
+ // margin: var(--_lt-mn);
10
+ // padding: var(--_lt-pg);
11
+ // width: var(--_ctm-lt-wh, var(--_tst-lt-wh));
12
+ // width: var(--_sf-nw-wh, var(--_tst-lt-wh));
13
+ width: var(
14
+ --_sf-el-wh-st-mx,
15
+ calc(
16
+ 1% * var(--_ctm-mob-ele-nw-wh-vl, var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl)))
17
+ )
18
+ );
19
+ margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
20
+ // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
21
+ // height: ;
22
+ // aspect-ratio: 1 / var(--_sf-aspect-ratio);
23
+ // --_aspect-ratio: calc(
24
+ // 1 * (var(--_ctm-lt-ht, var(--_tst-lt-ht)) / var(--_ctm-lt-wh, var(--_tst-lt-wh)))
25
+ // );
26
+
27
+ & > .wrapper {
28
+ width: 100%;
29
+ // height: 100%;
30
+ }
31
+ &[data-show-shadow="false"] {
32
+ --_show-shadow: none;
33
+ }
34
+ &[data-overflow-items="Scroll"] {
35
+ .horizontal {
36
+ width: 100%;
37
+ overflow-x: auto;
38
+ .item {
39
+ width: 100%;
40
+ flex-shrink: 0;
41
+ }
42
+ }
43
+ .vertical {
44
+ overflow-y: auto;
45
+ max-height: 30%;
46
+ }
47
+ }
48
+ .text-element {
49
+ color: #333;
50
+ font-size: 12px;
51
+ font-style: normal;
52
+ font-weight: 400;
53
+ line-height: 18px;
54
+ margin-bottom: 6px;
55
+ }
56
+ .highlights__container {
57
+ background-color: var(
58
+ --_ctm-mob-dn-wt-se-bd-cr,
59
+ var(--_ctm-tab-dn-wt-se-bd-cr, var(--_ctm-dn-wt-se-bd-cr))
60
+ );
61
+
62
+ border-color: var(
63
+ --_ctm-mob-dn-wt-se-br-cr,
64
+ var(--_ctm-tab-dn-wt-se-br-cr, var(--_ctm-dn-wt-se-br-cr))
65
+ );
66
+
67
+ border-style: var(
68
+ --_ctm-mob-dn-wt-se-br-se,
69
+ var(--_ctm-tab-dn-wt-se-br-se, var(--_ctm-dn-wt-se-br-se))
70
+ );
71
+
72
+ border-width: var(
73
+ --_ctm-mob-dn-wt-se-br-wh,
74
+ var(--_ctm-tab-dn-wt-se-br-wh, var(--_ctm-dn-wt-se-br-wh))
75
+ );
76
+
77
+ border-radius: var(
78
+ --_ctm-mob-dn-wt-se-br-rs,
79
+ var(--_ctm-tab-dn-wt-se-br-rs, var(--_ctm-dn-wt-se-br-rs))
80
+ );
81
+
82
+ box-shadow: var(
83
+ --_show-shadow,
84
+ var(--_ctm-mob-dn-wt-se-sw-ae, var(--_ctm-tab-dn-wt-se-sw-ae, var(--_ctm-dn-wt-se-sw-ae)))
85
+ var(--_ctm-mob-dn-wt-se-sw-br, var(--_ctm-tab-dn-wt-se-sw-br, var(--_ctm-dn-wt-se-sw-br)))
86
+ var(--_ctm-mob-dn-wt-se-sw-sd, var(--_ctm-tab-dn-wt-se-sw-sd, var(--_ctm-dn-wt-se-sw-sd)))
87
+ var(--_ctm-mob-dn-wt-se-sw-cr, var(--_ctm-tab-dn-wt-se-sw-cr, var(--_ctm-dn-wt-se-sw-cr)))
88
+ );
89
+
90
+ padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
91
+ padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
92
+ // Must stay lowercase to match `<div className="stack">` in the ProductHighlights
93
+ // element. Class selectors are case-sensitive in standards mode, so the old `.stacK`
94
+ // matched nothing on the storefront and took this whole block down with it.
95
+ // The renderer emits `class="stack"`. This block used to read `.stacK`, so every
96
+ // rule under it — the item box (Item Style fill/border/radius/shadow), the title
97
+ // typography and the horizontal/vertical/grid layouts — never matched anything.
98
+ .stack {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: prepareMediaVariable(--_ctm-lt-te-ad-is-sg);
102
+
103
+ .item {
104
+ width: prepareMediaVariable(--_ctm-lt-im-wh);
105
+ height: prepareMediaVariable(--_ctm-lt-im-ht);
106
+
107
+ position: relative;
108
+ img {
109
+ object-fit: cover;
110
+ display: block;
111
+ height: 100%;
112
+ width: 100%;
113
+ box-sizing: border-box;
114
+
115
+ padding: var(--_ctm-mob-lt-im-pg, var(--_ctm-tab-lt-im-pg, var(--_ctm-lt-im-pg)));
116
+
117
+ background-color: var(
118
+ --_ctm-mob-dn-im-se-bd-cr,
119
+ var(--_ctm-tab-dn-im-se-bd-cr, var(--_ctm-dn-im-se-bd-cr))
120
+ );
121
+
122
+ border-color: var(
123
+ --_ctm-mob-dn-im-se-br-cr,
124
+ var(--_ctm-tab-dn-im-se-br-cr, var(--_ctm-dn-im-se-br-cr))
125
+ );
126
+
127
+ border-style: var(
128
+ --_ctm-mob-dn-im-se-br-se,
129
+ var(--_ctm-tab-dn-im-se-br-se, var(--_ctm-dn-im-se-br-se))
130
+ );
131
+
132
+ border-width: var(
133
+ --_ctm-mob-dn-im-se-br-wh,
134
+ var(--_ctm-tab-dn-im-se-br-wh, var(--_ctm-dn-im-se-br-wh))
135
+ );
136
+
137
+ border-radius: var(
138
+ --_ctm-mob-dn-im-se-br-rs,
139
+ var(--_ctm-tab-dn-im-se-br-rs, var(--_ctm-dn-im-se-br-rs))
140
+ );
141
+
142
+ box-shadow: var(
143
+ --_show-shadow,
144
+ var(
145
+ --_ctm-mob-dn-im-se-sw-ae,
146
+ var(--_ctm-tab-dn-im-se-sw-ae, var(--_ctm-dn-im-se-sw-ae))
147
+ )
148
+ var(
149
+ --_ctm-mob-dn-im-se-sw-br,
150
+ var(--_ctm-tab-dn-im-se-sw-br, var(--_ctm-dn-im-se-sw-br))
151
+ )
152
+ var(
153
+ --_ctm-mob-dn-im-se-sw-sd,
154
+ var(--_ctm-tab-dn-im-se-sw-sd, var(--_ctm-dn-im-se-sw-sd))
155
+ )
156
+ var(
157
+ --_ctm-mob-dn-im-se-sw-cr,
158
+ var(--_ctm-tab-dn-im-se-sw-cr, var(--_ctm-dn-im-se-sw-cr))
159
+ )
160
+ );
161
+ }
162
+ }
163
+ .items__container {
164
+ &[data-show-divider="true"] {
165
+ &[data-flex-direction="row"] {
166
+ // The divider is a pseudo-element and takes no space of its own, so a thick
167
+ // one grew back over the item beside it — see dividerGapReserve in functions.scss.
168
+ .item:not(:last-child) {
169
+ @include dividerGapReserve(--_ctm-dn-wt-se-dr-wt, right);
170
+ }
171
+ .item:not(:last-child)::before {
172
+ content: "";
173
+ position: absolute;
174
+ top: 0;
175
+ bottom: 0; /* For full height divider */
176
+ right: dividerGapOffset(--_ctm-lt-im-sg, --_ctm-dn-wt-se-dr-wt);
177
+ width: var(
178
+ --_ctm-mob-dn-wt-se-dr-wt,
179
+ var(--_ctm-tab-dn-wt-se-dr-wt, var(--_ctm-dn-wt-se-dr-wt))
180
+ ); /* Divider thickness */
181
+ background-color: var(
182
+ --_ctm-mob-dn-wt-se-dr-cr,
183
+ var(--_ctm-tab-dn-wt-se-dr-cr, var(--_ctm-dn-wt-se-dr-cr))
184
+ ); /* Divider color */
185
+ }
186
+ }
187
+ &[data-flex-direction="column"] {
188
+ .item:not(:last-child) {
189
+ @include dividerGapReserve(--_ctm-dn-wt-se-dr-wt);
190
+ }
191
+ .item:not(:last-child)::before {
192
+ content: "";
193
+ position: absolute;
194
+ left: 0;
195
+ right: 0;
196
+ bottom: dividerGapOffset(--_ctm-lt-im-sg, --_ctm-dn-wt-se-dr-wt);
197
+ height: var(
198
+ --_ctm-mob-dn-wt-se-dr-wt,
199
+ var(--_ctm-tab-dn-wt-se-dr-wt, var(--_ctm-dn-wt-se-dr-wt))
200
+ );
201
+ background-color: var(
202
+ --_ctm-mob-dn-wt-se-dr-cr,
203
+ var(--_ctm-tab-dn-wt-se-dr-cr, var(--_ctm-dn-wt-se-dr-cr))
204
+ );
205
+ }
206
+ }
207
+ }
208
+ }
209
+
210
+ .title {
211
+ color: var(--_ctm-mob-dn-wt-se-cr, var(--_ctm-tab-dn-wt-se-cr, var(--_ctm-dn-wt-se-cr)));
212
+ font-family: var(
213
+ --_ctm-mob-dn-wt-se-ft-fy,
214
+ var(--_ctm-tab-dn-wt-se-ft-fy, var(--_ctm-dn-wt-se-ft-fy))
215
+ );
216
+ text-transform: var(
217
+ --_ctm-mob-dn-wt-se-tt-tm,
218
+ var(--_ctm-tab-dn-wt-se-tt-tm, var(--_ctm-dn-wt-se-tt-tm))
219
+ );
220
+ word-wrap: var(
221
+ --_ctm-mob-dn-wt-se-wd-wp,
222
+ var(--_ctm-tab-dn-wt-se-wd-wp, var(--_ctm-dn-wt-se-wd-wp))
223
+ );
224
+ word-break: var(
225
+ --_ctm-mob-dn-wt-se-wd-bk,
226
+ var(--_ctm-tab-dn-wt-se-wd-bk, var(--_ctm-dn-wt-se-wd-bk))
227
+ );
228
+ font-size: var(
229
+ --_ctm-mob-dn-wt-se-ft-se,
230
+ var(--_ctm-tab-dn-wt-se-ft-se, var(--_ctm-dn-wt-se-ft-se))
231
+ );
232
+ font-weight: var(
233
+ --_ctm-mob-dn-wt-se-ft-wt,
234
+ var(--_ctm-tab-dn-wt-se-ft-wt, var(--_ctm-dn-wt-se-ft-wt))
235
+ );
236
+ font-style: var(
237
+ --_ctm-mob-dn-wt-se-ft-se-ic,
238
+ var(--_ctm-tab-dn-wt-se-ft-se-ic, var(--_ctm-dn-wt-se-ft-se-ic))
239
+ );
240
+ text-align: var(
241
+ --_ctm-mob-dn-wt-se-tt-an,
242
+ var(--_ctm-tab-dn-wt-se-tt-an, var(--_ctm-dn-wt-se-tt-an))
243
+ );
244
+ letter-spacing: var(
245
+ --_ctm-mob-dn-wt-se-lr-sg,
246
+ var(--_ctm-tab-dn-wt-se-lr-sg, var(--_ctm-dn-wt-se-lr-sg))
247
+ );
248
+ // Line box guard. The line-height control stores a fixed length (its default is
249
+ // 1rem), so it does not grow with the font size — at a large size the glyphs
250
+ // end up taller than their own line box and look cut off. max(..., 1em) keeps
251
+ // the box at least as tall as the text while still honouring a larger value.
252
+ line-height: max(
253
+ var(
254
+ --_ctm-mob-dn-wt-se-le-ht,
255
+ var(--_ctm-tab-dn-wt-se-le-ht, var(--_ctm-dn-wt-se-le-ht, 1em))
256
+ ),
257
+ 1em
258
+ );
259
+ text-decoration: var(
260
+ --_ctm-mob-dn-wt-se-ue,
261
+ var(--_ctm-tab-dn-wt-se-ue, var(--_ctm-dn-wt-se-ue))
262
+ );
263
+ padding: prepareMediaVariable(--_ctm-dn-wt-se-pg);
264
+
265
+ // Text Overflow is a `controls` property, not a CSS one, so it cannot travel as
266
+ // a variable — the renderer adds `.flex__overflow` and publishes the line count
267
+ // as `--_sf-line-clamp`.
268
+ &.flex__overflow {
269
+ white-space: normal;
270
+ @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
271
+ }
272
+ }
273
+ .horizontal {
274
+ display: flex;
275
+ gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg, 10px)));
276
+ .item {
277
+ flex-shrink: 0;
278
+ }
279
+
280
+ &[data-overflow-items="Wrap"] {
281
+ flex-wrap: wrap;
282
+ }
283
+ &[data-overflow-items="Scroll"] {
284
+ width: 100%;
285
+ overflow-x: auto;
286
+ }
287
+ &[data-overflow-items="Hidden"] {
288
+ overflow-x: hidden;
289
+ }
290
+
291
+ &[items-content-alignement="right"] {
292
+ justify-content: flex-end;
293
+ }
294
+ &[items-content-alignement="left"] {
295
+ justify-content: flex-start;
296
+ }
297
+ &[items-content-alignement="center"] {
298
+ justify-content: center;
299
+ }
300
+ }
301
+ .vertical {
302
+ display: flex;
303
+ flex-direction: column;
304
+ gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
305
+ height: prepareMediaVariable(--_ctm-lt-mx-cr-ht);
306
+ max-height: prepareMediaVariable(--_ctm-lt-mx-cr-ht);
307
+
308
+ &[data-overflow-items="Scroll"] {
309
+ overflow-y: auto;
310
+ }
311
+ &[data-overflow-items="Hidden"] {
312
+ overflow-y: hidden;
313
+ }
314
+
315
+ &[items-content-alignement="right"] {
316
+ align-items: flex-end;
317
+ }
318
+ &[items-content-alignement="left"] {
319
+ align-items: flex-start;
320
+ }
321
+ &[items-content-alignement="center"] {
322
+ align-items: center;
323
+ }
324
+ }
325
+ .grid {
326
+ display: grid;
327
+ grid-template-columns: repeat(var(--_ctm-lt-is-pr-rw), minmax(auto, 1fr));
328
+ grid-template-columns: repeat(
329
+ var(--_ctm-mob-lt-is-pr-rw, var(--_ctm-tab-lt-is-pr-rw, var(--_ctm-lt-is-pr-rw))),
330
+ minmax(auto, 1fr)
331
+ );
332
+ gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg, 10px)));
333
+ max-height: prepareMediaVariable(--_ctm-lt-mx-cr-ht);
334
+ &[data-overflow-items="Scroll"] {
335
+ overflow-y: auto;
336
+ }
337
+ &[data-overflow-items="Hidden"] {
338
+ overflow-y: hidden;
339
+ }
340
+ margin: 0px;
341
+ .item {
342
+ width: auto;
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }