layout-style-css 2.1.0 → 3.0.0

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 (79) hide show
  1. package/README.md +124 -145
  2. package/dist/core.css +2 -1
  3. package/dist/foundation.css +194 -0
  4. package/dist/layout-style-css.css +527 -941
  5. package/dist/layout-style-css.min.css +1 -1
  6. package/dist/personalities/bauhaus.css +13 -39
  7. package/dist/personalities/bento.css +16 -37
  8. package/dist/personalities/brutalism.css +13 -30
  9. package/dist/personalities/cyberpunk.css +12 -29
  10. package/dist/personalities/f-pattern.css +16 -42
  11. package/dist/personalities/maximalist.css +16 -45
  12. package/dist/personalities/minimal-saas.css +7 -31
  13. package/dist/personalities/mondrian.css +12 -37
  14. package/dist/personalities/neumorphism.css +15 -39
  15. package/dist/personalities/retro-glass.css +14 -39
  16. package/dist/personalities/retrofuturism.css +12 -29
  17. package/dist/personalities/split-screen.css +24 -36
  18. package/dist/personalities/synthwave.css +13 -41
  19. package/dist/personalities/tactile.css +15 -32
  20. package/dist/personalities/y2k.css +13 -30
  21. package/dist/personalities/z-pattern.css +16 -43
  22. package/dist/personalities.css +1 -1
  23. package/dist/primitives.css +27 -63
  24. package/dist/recipes.css +92 -167
  25. package/dist/utilities.css +39 -104
  26. package/dist/wrappers.css +28 -108
  27. package/package.json +12 -24
  28. package/CHANGELOG.md +0 -90
  29. package/CONTRIBUTING.md +0 -55
  30. package/SECURITY.md +0 -50
  31. package/demo/assets/apple-touch-icon.svg +0 -7
  32. package/demo/assets/favicon.svg +0 -7
  33. package/demo/assets/social-card.png +0 -0
  34. package/demo/browserconfig.xml +0 -9
  35. package/demo/demo.css +0 -523
  36. package/demo/demo.js +0 -605
  37. package/demo/index.html +0 -325
  38. package/demo/robots.txt +0 -4
  39. package/demo/site.webmanifest +0 -23
  40. package/demo/sitemap.xml +0 -9
  41. package/dist/integrations/ui-style-kit.css +0 -175
  42. package/dist/legacy.css +0 -787
  43. package/docs/wiki/Contributing.md +0 -36
  44. package/docs/wiki/Demo-And-GitHub-Pages.md +0 -53
  45. package/docs/wiki/Getting-Started.md +0 -51
  46. package/docs/wiki/Home.md +0 -33
  47. package/docs/wiki/Installation-And-CDN.md +0 -72
  48. package/docs/wiki/Layout-Primitives.md +0 -48
  49. package/docs/wiki/Layout-Recipes.md +0 -49
  50. package/docs/wiki/Layout-Styles.md +0 -33
  51. package/docs/wiki/Migrating-To-2.0.md +0 -186
  52. package/docs/wiki/Release-And-Publishing.md +0 -77
  53. package/docs/wiki/Security-And-Support.md +0 -36
  54. package/docs/wiki/UI-Style-Kit-Compatibility.md +0 -49
  55. package/docs/wiki/_Sidebar.md +0 -15
  56. package/styles/core.css +0 -6
  57. package/styles/integrations/ui-style-kit.css +0 -175
  58. package/styles/legacy.css +0 -173
  59. package/styles/personalities/bauhaus.css +0 -46
  60. package/styles/personalities/bento.css +0 -43
  61. package/styles/personalities/brutalism.css +0 -36
  62. package/styles/personalities/cyberpunk.css +0 -36
  63. package/styles/personalities/f-pattern.css +0 -48
  64. package/styles/personalities/maximalist.css +0 -51
  65. package/styles/personalities/minimal-saas.css +0 -37
  66. package/styles/personalities/mondrian.css +0 -44
  67. package/styles/personalities/neumorphism.css +0 -46
  68. package/styles/personalities/retro-glass.css +0 -44
  69. package/styles/personalities/retrofuturism.css +0 -36
  70. package/styles/personalities/split-screen.css +0 -41
  71. package/styles/personalities/synthwave.css +0 -48
  72. package/styles/personalities/tactile.css +0 -39
  73. package/styles/personalities/y2k.css +0 -36
  74. package/styles/personalities/z-pattern.css +0 -49
  75. package/styles/personalities.css +0 -18
  76. package/styles/primitives.css +0 -219
  77. package/styles/recipes.css +0 -270
  78. package/styles/utilities.css +0 -162
  79. package/styles/wrappers.css +0 -174
@@ -1,219 +0,0 @@
1
- @layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities, ly.integrations, ly.legacy;
2
-
3
- /* Reusable composition primitives own flow and sizing only. */
4
-
5
- @layer ly.primitives {
6
- .ly-page {
7
- min-block-size: 100svh;
8
- }
9
-
10
- .ly-header,
11
- .ly-footer,
12
- .ly-main,
13
- .ly-section,
14
- .ly-surface {
15
- min-inline-size: 0;
16
- min-block-size: 0;
17
- }
18
-
19
- .ly-header {
20
- min-block-size: var(--ly-header-height);
21
- }
22
-
23
- .ly-header--sticky {
24
- position: sticky;
25
- inset-block-start: 0;
26
- z-index: var(--ly-z-header);
27
- }
28
-
29
- .ly-section {
30
- padding-block: var(--ly-section-padding-block);
31
- }
32
-
33
- .ly-section--compact {
34
- --ly-section-padding-block: var(--ly-space-7);
35
- }
36
-
37
- .ly-section--flush {
38
- --ly-section-padding-block: 0;
39
- }
40
-
41
- .ly-readable {
42
- max-inline-size: var(--ly-wrapper-prose);
43
- }
44
-
45
- .ly-stack {
46
- display: flex;
47
- flex-direction: column;
48
- gap: var(--ly-stack-gap);
49
- }
50
-
51
- .ly-cluster {
52
- display: flex;
53
- flex-wrap: wrap;
54
- align-items: center;
55
- gap: var(--ly-cluster-gap);
56
- }
57
-
58
- .ly-center {
59
- inline-size: min(100%, var(--ly-center-max, var(--ly-wrapper-content)));
60
- margin-inline: auto;
61
- }
62
-
63
- .ly-cover {
64
- display: flex;
65
- flex-direction: column;
66
- min-block-size: var(--ly-cover-min);
67
- padding-block: var(--ly-cover-padding, var(--ly-space-5));
68
- }
69
-
70
- .ly-cover > :where(.ly-cover__center, [data-ly-cover-center]) {
71
- margin-block: auto;
72
- }
73
-
74
- .ly-switcher {
75
- display: flex;
76
- flex-wrap: wrap;
77
- gap: var(--ly-gap);
78
- }
79
-
80
- .ly-switcher > * {
81
- flex-basis: calc((var(--ly-switcher-threshold) - 100%) * 999);
82
- flex-grow: 1;
83
- min-inline-size: 0;
84
- }
85
-
86
- .ly-sidebar {
87
- display: flex;
88
- flex-wrap: wrap;
89
- gap: var(--ly-gap);
90
- }
91
-
92
- .ly-sidebar > :where(.ly-sidebar__side, [data-ly-sidebar="side"]) {
93
- flex-basis: var(--ly-sidebar-size);
94
- flex-grow: 1;
95
- }
96
-
97
- .ly-sidebar > :where(.ly-sidebar__content, [data-ly-sidebar="content"]) {
98
- flex-basis: 0;
99
- flex-grow: 999;
100
- min-inline-size: min(100%, var(--ly-sidebar-content-min));
101
- }
102
-
103
- .ly-grid {
104
- display: grid;
105
- grid-template-columns: repeat(var(--ly-grid-columns), minmax(0, 1fr));
106
- gap: var(--ly-grid-gap);
107
- }
108
-
109
- .ly-grid--auto {
110
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-grid-min)), 1fr));
111
- }
112
-
113
- .ly-grid > *,
114
- .ly-split > *,
115
- .ly-panes > *,
116
- .ly-media > * {
117
- min-inline-size: 0;
118
- }
119
-
120
- .ly-split {
121
- display: grid;
122
- grid-template-columns: minmax(0, 1fr);
123
- gap: var(--ly-gap);
124
- align-items: var(--ly-split-align, center);
125
- }
126
-
127
- .ly-panes {
128
- display: grid;
129
- grid-template-columns: minmax(0, 1fr);
130
- gap: var(--ly-gap);
131
- }
132
-
133
- .ly-media {
134
- display: grid;
135
- grid-template-areas:
136
- "media"
137
- "content"
138
- "actions";
139
- grid-template-columns: minmax(0, 1fr);
140
- gap: var(--ly-gap);
141
- align-items: var(--ly-media-align, start);
142
- }
143
-
144
- .ly-media > :where(.ly-media__asset, [data-ly-media="asset"]) {
145
- grid-area: media;
146
- }
147
-
148
- .ly-media > :where(.ly-media__content, [data-ly-media="content"]) {
149
- grid-area: content;
150
- }
151
-
152
- .ly-media > :where(.ly-media__actions, [data-ly-media="actions"]) {
153
- grid-area: actions;
154
- }
155
-
156
- .ly-reel {
157
- display: grid;
158
- grid-auto-flow: column;
159
- grid-auto-columns: minmax(min(100%, var(--ly-reel-item-min)), var(--ly-reel-item-max));
160
- gap: var(--ly-grid-gap);
161
- overflow-x: auto;
162
- overflow-inline: auto;
163
- overscroll-behavior-inline: contain;
164
- scroll-snap-type: inline proximity;
165
- }
166
-
167
- .ly-reel > * {
168
- min-inline-size: 0;
169
- scroll-snap-align: start;
170
- }
171
-
172
- .ly-frame {
173
- aspect-ratio: var(--ly-frame-ratio);
174
- overflow: hidden;
175
- }
176
-
177
- .ly-frame > * {
178
- inline-size: 100%;
179
- block-size: 100%;
180
- object-fit: cover;
181
- }
182
-
183
- .ly-scroll {
184
- min-block-size: 0;
185
- max-block-size: var(--ly-scroll-max);
186
- overflow: auto;
187
- overscroll-behavior: contain;
188
- }
189
-
190
- /* Unsupported container-query browsers retain this safe DOM-order stack. */
191
- }
192
-
193
- @layer ly.primitives {
194
- @container (min-width: 48rem) {
195
- .ly-split {
196
- grid-template-columns: minmax(0, var(--ly-split-primary, 1fr)) minmax(0, var(--ly-split-secondary, 1fr));
197
- }
198
-
199
- .ly-panes--2 {
200
- grid-template-columns: minmax(0, 1fr) minmax(min(100%, var(--ly-pane-size)), 0.7fr);
201
- }
202
-
203
- .ly-media {
204
- grid-template-areas:
205
- "media content"
206
- "media actions";
207
- grid-template-columns: minmax(min(100%, var(--ly-media-size)), auto) minmax(0, 1fr);
208
- }
209
- }
210
-
211
- @container (min-width: 64rem) {
212
- .ly-panes--3 {
213
- grid-template-columns:
214
- minmax(min(100%, var(--ly-pane-rail, 14rem)), 0.35fr)
215
- minmax(0, 1fr)
216
- minmax(min(100%, var(--ly-pane-rail, 14rem)), 0.35fr);
217
- }
218
- }
219
- }
@@ -1,270 +0,0 @@
1
- @layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities, ly.integrations, ly.legacy;
2
-
3
- /*
4
- Built-in recipes follow semantic mobile DOM order. Wider arrangements use
5
- named areas so visual placement never changes keyboard or reading order.
6
- */
7
-
8
- @layer ly.recipes {
9
- :where(.ly-app-shell, [data-ly-recipe="app-shell"]),
10
- :where(.ly-dashboard, [data-ly-recipe="dashboard"]),
11
- :where(.ly-docs, [data-ly-recipe="docs"]),
12
- :where(.ly-list-detail, [data-ly-recipe="list-detail"]),
13
- :where(.ly-split-hero, [data-ly-recipe="split-hero"]),
14
- :where(.ly-gallery, [data-ly-recipe="gallery"]),
15
- :where(.ly-card-grid, [data-ly-recipe="card-grid"]) {
16
- container-name: ly-recipe;
17
- container-type: inline-size;
18
- min-inline-size: 0;
19
- }
20
-
21
- :where(.ly-app-shell, [data-ly-recipe="app-shell"]),
22
- :where(.ly-dashboard, [data-ly-recipe="dashboard"]),
23
- :where(.ly-docs, [data-ly-recipe="docs"]),
24
- :where(.ly-list-detail, [data-ly-recipe="list-detail"]),
25
- :where(.ly-split-hero, [data-ly-recipe="split-hero"]) {
26
- display: grid;
27
- grid-template-columns: minmax(0, 1fr);
28
- gap: var(--ly-gap);
29
- }
30
-
31
- :where(.ly-app-shell, [data-ly-recipe="app-shell"]) {
32
- min-block-size: 100svh;
33
- grid-template-areas:
34
- "header"
35
- "sidebar"
36
- "main"
37
- "aside"
38
- "footer";
39
- grid-template-rows: auto auto minmax(0, 1fr) auto auto;
40
- }
41
-
42
- :where(.ly-dashboard, [data-ly-recipe="dashboard"]) {
43
- grid-template-areas:
44
- "header"
45
- "nav"
46
- "main"
47
- "aside"
48
- "footer";
49
- }
50
-
51
- :where(.ly-docs, [data-ly-recipe="docs"]) {
52
- grid-template-areas:
53
- "header"
54
- "nav"
55
- "main"
56
- "aside"
57
- "footer";
58
- }
59
-
60
- :where(.ly-list-detail, [data-ly-recipe="list-detail"]) {
61
- grid-template-areas:
62
- "primary"
63
- "secondary"
64
- "actions";
65
- }
66
-
67
- :where(.ly-split-hero, [data-ly-recipe="split-hero"]) {
68
- grid-template-areas:
69
- "content"
70
- "media"
71
- "actions";
72
- align-items: var(--ly-split-hero-align, center);
73
- }
74
-
75
- :where(.ly-gallery, [data-ly-recipe="gallery"]),
76
- :where(.ly-card-grid, [data-ly-recipe="card-grid"]) {
77
- display: grid;
78
- gap: var(--ly-grid-gap);
79
- }
80
-
81
- :where(.ly-gallery, [data-ly-recipe="gallery"]) {
82
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-gallery-min)), 1fr));
83
- }
84
-
85
- :where(.ly-card-grid, [data-ly-recipe="card-grid"]) {
86
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-card-grid-min)), 1fr));
87
- }
88
-
89
- :where(.ly-gallery, [data-ly-recipe="gallery"]) > *,
90
- :where(.ly-card-grid, [data-ly-recipe="card-grid"]) > * {
91
- min-inline-size: 0;
92
- }
93
-
94
- :where(.ly-area--header, [data-ly-area="header"]) {
95
- grid-area: header;
96
- min-inline-size: 0;
97
- }
98
-
99
- :where(.ly-area--nav, [data-ly-area="nav"]) {
100
- grid-area: nav;
101
- min-inline-size: 0;
102
- }
103
-
104
- :where(.ly-area--main, [data-ly-area="main"]) {
105
- grid-area: main;
106
- min-inline-size: 0;
107
- }
108
-
109
- :where(.ly-area--aside, [data-ly-area="aside"]) {
110
- grid-area: aside;
111
- min-inline-size: 0;
112
- }
113
-
114
- :where(.ly-area--footer, [data-ly-area="footer"]) {
115
- grid-area: footer;
116
- min-inline-size: 0;
117
- }
118
-
119
- :where(.ly-area--content, [data-ly-area="content"]) {
120
- grid-area: content;
121
- min-inline-size: 0;
122
- }
123
-
124
- :where(.ly-area--media, [data-ly-area="media"]) {
125
- grid-area: media;
126
- min-inline-size: 0;
127
- }
128
-
129
- :where(.ly-area--actions, [data-ly-area="actions"]) {
130
- grid-area: actions;
131
- min-inline-size: 0;
132
- }
133
-
134
- :where(.ly-area--primary, [data-ly-area="primary"]) {
135
- grid-area: primary;
136
- min-inline-size: 0;
137
- }
138
-
139
- :where(.ly-area--secondary, [data-ly-area="secondary"]) {
140
- grid-area: secondary;
141
- min-inline-size: 0;
142
- }
143
-
144
- .ly-app-header {
145
- grid-area: header;
146
- min-inline-size: 0;
147
- }
148
-
149
- .ly-app-sidebar {
150
- grid-area: sidebar;
151
- min-inline-size: 0;
152
- }
153
-
154
- .ly-app-main {
155
- grid-area: main;
156
- min-inline-size: 0;
157
- }
158
-
159
- .ly-app-aside {
160
- grid-area: aside;
161
- min-inline-size: 0;
162
- }
163
-
164
- .ly-app-footer {
165
- grid-area: footer;
166
- min-inline-size: 0;
167
- }
168
-
169
- :where(.ly-app-shell, [data-ly-recipe="app-shell"])
170
- > :where(.ly-area--nav, [data-ly-area="nav"]) {
171
- grid-area: sidebar;
172
- }
173
-
174
- /*
175
- A recipe responds to its nearest ancestor container and then becomes the
176
- containment scope for nested compositions. Standalone roots keep the safe
177
- mobile template when no ancestor container is present.
178
- */
179
- @container (min-width: 48rem) {
180
- :where(.ly-app-shell, [data-ly-recipe="app-shell"]) {
181
- grid-template-areas:
182
- "header header"
183
- "sidebar main"
184
- "aside main"
185
- "footer footer";
186
- grid-template-columns: minmax(min(100%, var(--ly-recipe-rail)), auto) minmax(0, 1fr);
187
- }
188
-
189
- :where(.ly-dashboard, [data-ly-recipe="dashboard"]) {
190
- grid-template-areas:
191
- "header header"
192
- "nav nav"
193
- "main aside"
194
- "footer footer";
195
- grid-template-columns: minmax(0, 1fr) minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
196
- }
197
-
198
- :where(.ly-docs, [data-ly-recipe="docs"]) {
199
- grid-template-areas:
200
- "header header"
201
- "nav main"
202
- "nav aside"
203
- "footer footer";
204
- grid-template-columns: minmax(min(100%, var(--ly-recipe-rail)), auto) minmax(0, 1fr);
205
- }
206
-
207
- :where(.ly-list-detail, [data-ly-recipe="list-detail"]) {
208
- grid-template-areas:
209
- "primary secondary"
210
- "actions actions";
211
- grid-template-columns: minmax(min(100%, var(--ly-pane-size)), 0.7fr) minmax(0, 1fr);
212
- }
213
-
214
- :where(.ly-split-hero, [data-ly-recipe="split-hero"]) {
215
- grid-template-areas:
216
- "content media"
217
- "actions media";
218
- grid-template-columns: minmax(0, var(--ly-split-primary, 1fr)) minmax(0, var(--ly-split-secondary, 1fr));
219
- }
220
-
221
- :where(.ly-gallery, [data-ly-recipe="gallery"]) {
222
- --ly-gallery-min: 14rem;
223
- }
224
-
225
- :where(.ly-card-grid, [data-ly-recipe="card-grid"]) {
226
- --ly-card-grid-min: 18rem;
227
- }
228
- }
229
-
230
- @container (min-width: 64rem) {
231
- :where(.ly-app-shell, [data-ly-recipe="app-shell"]) {
232
- grid-template-areas:
233
- "sidebar header header"
234
- "sidebar main aside"
235
- "sidebar footer footer";
236
- grid-template-columns:
237
- minmax(min(100%, var(--ly-recipe-rail)), auto)
238
- minmax(0, 1fr)
239
- minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
240
- }
241
-
242
- :where(.ly-dashboard, [data-ly-recipe="dashboard"]),
243
- :where(.ly-docs, [data-ly-recipe="docs"]) {
244
- grid-template-areas:
245
- "nav header header"
246
- "nav main aside"
247
- "nav footer footer";
248
- grid-template-columns:
249
- minmax(min(100%, var(--ly-recipe-rail)), auto)
250
- minmax(0, 1fr)
251
- minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
252
- }
253
-
254
- :where(.ly-list-detail, [data-ly-recipe="list-detail"]) {
255
- grid-template-columns: minmax(min(100%, var(--ly-pane-size)), 0.45fr) minmax(0, 1fr);
256
- }
257
-
258
- :where(.ly-split-hero, [data-ly-recipe="split-hero"]) {
259
- grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
260
- }
261
-
262
- :where(.ly-gallery, [data-ly-recipe="gallery"]) {
263
- --ly-gallery-min: 16rem;
264
- }
265
-
266
- :where(.ly-card-grid, [data-ly-recipe="card-grid"]) {
267
- --ly-card-grid-min: 20rem;
268
- }
269
- }
270
- }
@@ -1,162 +0,0 @@
1
- @layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities, ly.integrations, ly.legacy;
2
-
3
- @layer ly.utilities {
4
- .ly-cols-1 { --ly-grid-columns: 1; }
5
- .ly-cols-2 { --ly-grid-columns: 2; }
6
- .ly-cols-3 { --ly-grid-columns: 3; }
7
- .ly-cols-4 { --ly-grid-columns: 4; }
8
- .ly-cols-5 { --ly-grid-columns: 5; }
9
- .ly-cols-6 { --ly-grid-columns: 6; }
10
- .ly-cols-7 { --ly-grid-columns: 7; }
11
- .ly-cols-8 { --ly-grid-columns: 8; }
12
- .ly-cols-9 { --ly-grid-columns: 9; }
13
- .ly-cols-10 { --ly-grid-columns: 10; }
14
- .ly-cols-11 { --ly-grid-columns: 11; }
15
- .ly-cols-12 { --ly-grid-columns: 12; }
16
- .ly-cols-16 { --ly-grid-columns: 16; }
17
-
18
- .ly-span-1 { grid-column: span 1; }
19
- .ly-span-2 { grid-column: span 2; }
20
- .ly-span-3 { grid-column: span 3; }
21
- .ly-span-4 { grid-column: span 4; }
22
- .ly-span-5 { grid-column: span 5; }
23
- .ly-span-6 { grid-column: span 6; }
24
- .ly-span-7 { grid-column: span 7; }
25
- .ly-span-8 { grid-column: span 8; }
26
- .ly-span-9 { grid-column: span 9; }
27
- .ly-span-10 { grid-column: span 10; }
28
- .ly-span-11 { grid-column: span 11; }
29
- .ly-span-12 { grid-column: span 12; }
30
- .ly-span-13 { grid-column: span 13; }
31
- .ly-span-14 { grid-column: span 14; }
32
- .ly-span-15 { grid-column: span 15; }
33
- .ly-span-16 { grid-column: span 16; }
34
- .ly-span-full { grid-column: 1 / -1; }
35
-
36
- .ly-gap-0 { --ly-gap: var(--ly-space-0); --ly-grid-gap: var(--ly-space-0); --ly-stack-gap: var(--ly-space-0); --ly-cluster-gap: var(--ly-space-0); }
37
- .ly-gap-1 { --ly-gap: var(--ly-space-1); --ly-grid-gap: var(--ly-space-1); --ly-stack-gap: var(--ly-space-1); --ly-cluster-gap: var(--ly-space-1); }
38
- .ly-gap-2 { --ly-gap: var(--ly-space-2); --ly-grid-gap: var(--ly-space-2); --ly-stack-gap: var(--ly-space-2); --ly-cluster-gap: var(--ly-space-2); }
39
- .ly-gap-3 { --ly-gap: var(--ly-space-3); --ly-grid-gap: var(--ly-space-3); --ly-stack-gap: var(--ly-space-3); --ly-cluster-gap: var(--ly-space-3); }
40
- .ly-gap-4 { --ly-gap: var(--ly-space-4); --ly-grid-gap: var(--ly-space-4); --ly-stack-gap: var(--ly-space-4); --ly-cluster-gap: var(--ly-space-4); }
41
- .ly-gap-5 { --ly-gap: var(--ly-space-5); --ly-grid-gap: var(--ly-space-5); --ly-stack-gap: var(--ly-space-5); --ly-cluster-gap: var(--ly-space-5); }
42
- .ly-gap-6 { --ly-gap: var(--ly-space-6); --ly-grid-gap: var(--ly-space-6); --ly-stack-gap: var(--ly-space-6); --ly-cluster-gap: var(--ly-space-6); }
43
- .ly-gap-7 { --ly-gap: var(--ly-space-7); --ly-grid-gap: var(--ly-space-7); --ly-stack-gap: var(--ly-space-7); --ly-cluster-gap: var(--ly-space-7); }
44
- .ly-gap-8 { --ly-gap: var(--ly-space-8); --ly-grid-gap: var(--ly-space-8); --ly-stack-gap: var(--ly-space-8); --ly-cluster-gap: var(--ly-space-8); }
45
- .ly-gap-9 { --ly-gap: var(--ly-space-9); --ly-grid-gap: var(--ly-space-9); --ly-stack-gap: var(--ly-space-9); --ly-cluster-gap: var(--ly-space-9); }
46
-
47
- .ly-pad-0 { padding: var(--ly-space-0); }
48
- .ly-pad-1 { padding: var(--ly-space-1); }
49
- .ly-pad-2 { padding: var(--ly-space-2); }
50
- .ly-pad-3 { padding: var(--ly-space-3); }
51
- .ly-pad-4 { padding: var(--ly-space-4); }
52
- .ly-pad-5 { padding: var(--ly-space-5); }
53
- .ly-pad-6 { padding: var(--ly-space-6); }
54
- .ly-pad-7 { padding: var(--ly-space-7); }
55
- .ly-pad-8 { padding: var(--ly-space-8); }
56
- .ly-pad-9 { padding: var(--ly-space-9); }
57
-
58
- .ly-px-4 { padding-inline: var(--ly-space-4); }
59
- .ly-px-6 { padding-inline: var(--ly-space-6); }
60
- .ly-px-8 { padding-inline: var(--ly-space-8); }
61
- .ly-py-4 { padding-block: var(--ly-space-4); }
62
- .ly-py-6 { padding-block: var(--ly-space-6); }
63
- .ly-py-8 { padding-block: var(--ly-space-8); }
64
-
65
- .ly-mx-auto { margin-inline: auto; }
66
- .ly-w-full { inline-size: 100%; }
67
- .ly-h-full { block-size: 100%; }
68
- .ly-min-h-screen { min-block-size: 100svh; }
69
- .ly-bleed { inline-size: 100vw; margin-inline: calc(50% - 50vw); }
70
- .ly-overflow-auto { overflow: auto; }
71
- .ly-overflow-hidden { overflow: hidden; }
72
-
73
- .ly-items-start { align-items: flex-start; }
74
- .ly-items-center { align-items: center; }
75
- .ly-items-end { align-items: flex-end; }
76
- .ly-items-stretch { align-items: stretch; }
77
- .ly-justify-start { justify-content: flex-start; }
78
- .ly-justify-center { justify-content: center; }
79
- .ly-justify-end { justify-content: flex-end; }
80
- .ly-justify-between { justify-content: space-between; }
81
-
82
- .ly-frame-1x1 { --ly-frame-ratio: 1 / 1; }
83
- .ly-frame-2x1 { --ly-frame-ratio: 2 / 1; }
84
- .ly-frame-3x2 { --ly-frame-ratio: 3 / 2; }
85
- .ly-frame-4x3 { --ly-frame-ratio: 4 / 3; }
86
- .ly-frame-16x9 { --ly-frame-ratio: 16 / 9; }
87
- .ly-frame-21x9 { --ly-frame-ratio: 21 / 9; }
88
-
89
- .ly-hidden { display: none !important; }
90
-
91
- .ly-show-md-up,
92
- .ly-show-lg-up {
93
- display: none !important;
94
- }
95
-
96
- .ly-visually-hidden {
97
- position: absolute !important;
98
- inline-size: 1px !important;
99
- block-size: 1px !important;
100
- padding: 0 !important;
101
- margin: -1px !important;
102
- overflow: hidden !important;
103
- clip: rect(0, 0, 0, 0) !important;
104
- clip-path: inset(50%) !important;
105
- white-space: nowrap !important;
106
- }
107
-
108
- /* Explicit escape hatches require consumers to verify focus and reading order. */
109
- .ly-order-first { order: -1; }
110
- .ly-order-normal { order: 0; }
111
- .ly-order-last { order: 999; }
112
- .ly-order-1 { order: 1; }
113
- .ly-order-2 { order: 2; }
114
- .ly-order-3 { order: 3; }
115
- .ly-order-4 { order: 4; }
116
- .ly-order-5 { order: 5; }
117
- .ly-order-6 { order: 6; }
118
-
119
- @container (min-width: 48rem) {
120
- .ly-md-cols-1 { --ly-grid-columns: 1; }
121
- .ly-md-cols-2 { --ly-grid-columns: 2; }
122
- .ly-md-cols-3 { --ly-grid-columns: 3; }
123
- .ly-md-cols-4 { --ly-grid-columns: 4; }
124
- .ly-md-cols-6 { --ly-grid-columns: 6; }
125
- .ly-md-cols-8 { --ly-grid-columns: 8; }
126
- .ly-md-cols-12 { --ly-grid-columns: 12; }
127
- .ly-md-cols-16 { --ly-grid-columns: 16; }
128
- .ly-show-md-up { display: revert !important; }
129
-
130
- .ly-md-order-first { order: -1; }
131
- .ly-md-order-normal { order: 0; }
132
- .ly-md-order-last { order: 999; }
133
- .ly-md-order-1 { order: 1; }
134
- .ly-md-order-2 { order: 2; }
135
- .ly-md-order-3 { order: 3; }
136
- .ly-md-order-4 { order: 4; }
137
- .ly-md-order-5 { order: 5; }
138
- .ly-md-order-6 { order: 6; }
139
- }
140
-
141
- @container (min-width: 64rem) {
142
- .ly-lg-cols-1 { --ly-grid-columns: 1; }
143
- .ly-lg-cols-2 { --ly-grid-columns: 2; }
144
- .ly-lg-cols-3 { --ly-grid-columns: 3; }
145
- .ly-lg-cols-4 { --ly-grid-columns: 4; }
146
- .ly-lg-cols-6 { --ly-grid-columns: 6; }
147
- .ly-lg-cols-8 { --ly-grid-columns: 8; }
148
- .ly-lg-cols-12 { --ly-grid-columns: 12; }
149
- .ly-lg-cols-16 { --ly-grid-columns: 16; }
150
- .ly-show-lg-up { display: revert !important; }
151
-
152
- .ly-lg-order-first { order: -1; }
153
- .ly-lg-order-normal { order: 0; }
154
- .ly-lg-order-last { order: 999; }
155
- .ly-lg-order-1 { order: 1; }
156
- .ly-lg-order-2 { order: 2; }
157
- .ly-lg-order-3 { order: 3; }
158
- .ly-lg-order-4 { order: 4; }
159
- .ly-lg-order-5 { order: 5; }
160
- .ly-lg-order-6 { order: 6; }
161
- }
162
- }