layout-style-css 1.1.2 → 2.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 (110) hide show
  1. package/CHANGELOG.md +33 -8
  2. package/CONTRIBUTING.md +12 -7
  3. package/README.md +231 -636
  4. package/SECURITY.md +11 -6
  5. package/demo/demo.css +523 -0
  6. package/demo/demo.js +520 -0
  7. package/demo/index.html +323 -976
  8. package/demo/site.webmanifest +1 -1
  9. package/demo/sitemap.xml +1 -1
  10. package/dist/core.css +6 -0
  11. package/dist/{layout-ui-style-kit-bridge.css → integrations/ui-style-kit.css} +13 -8
  12. package/dist/layout-style-css.css +1473 -1903
  13. package/dist/layout-style-css.min.css +1 -1
  14. package/dist/legacy.css +787 -0
  15. package/dist/personalities/bauhaus.css +46 -0
  16. package/dist/personalities/bento.css +43 -0
  17. package/dist/personalities/brutalism.css +36 -0
  18. package/dist/personalities/cyberpunk.css +36 -0
  19. package/dist/personalities/f-pattern.css +48 -0
  20. package/dist/personalities/maximalist.css +51 -0
  21. package/dist/personalities/minimal-saas.css +37 -0
  22. package/dist/personalities/mondrian.css +44 -0
  23. package/dist/personalities/neumorphism.css +46 -0
  24. package/dist/personalities/retro-glass.css +44 -0
  25. package/dist/personalities/retrofuturism.css +36 -0
  26. package/dist/personalities/split-screen.css +41 -0
  27. package/dist/personalities/synthwave.css +48 -0
  28. package/dist/personalities/tactile.css +39 -0
  29. package/dist/personalities/y2k.css +36 -0
  30. package/dist/personalities/z-pattern.css +49 -0
  31. package/dist/personalities.css +18 -0
  32. package/dist/primitives.css +219 -0
  33. package/dist/recipes.css +270 -0
  34. package/dist/utilities.css +162 -0
  35. package/dist/wrappers.css +174 -0
  36. package/docs/wiki/Contributing.md +36 -30
  37. package/docs/wiki/Demo-And-GitHub-Pages.md +53 -39
  38. package/docs/wiki/Getting-Started.md +51 -68
  39. package/docs/wiki/Home.md +33 -48
  40. package/docs/wiki/Installation-And-CDN.md +73 -58
  41. package/docs/wiki/Layout-Primitives.md +48 -57
  42. package/docs/wiki/Layout-Recipes.md +49 -80
  43. package/docs/wiki/Layout-Styles.md +33 -43
  44. package/docs/wiki/Migrating-To-2.0.md +186 -0
  45. package/docs/wiki/Release-And-Publishing.md +75 -69
  46. package/docs/wiki/Security-And-Support.md +36 -34
  47. package/docs/wiki/UI-Style-Kit-Compatibility.md +50 -54
  48. package/docs/wiki/_Sidebar.md +15 -14
  49. package/package.json +36 -45
  50. package/styles/core.css +6 -0
  51. package/styles/{layout-ui-style-kit-bridge.css → integrations/ui-style-kit.css} +13 -8
  52. package/styles/legacy.css +173 -0
  53. package/styles/personalities/bauhaus.css +46 -0
  54. package/styles/personalities/bento.css +43 -0
  55. package/styles/personalities/brutalism.css +36 -0
  56. package/styles/personalities/cyberpunk.css +36 -0
  57. package/styles/personalities/f-pattern.css +48 -0
  58. package/styles/personalities/maximalist.css +51 -0
  59. package/styles/personalities/minimal-saas.css +37 -0
  60. package/styles/personalities/mondrian.css +44 -0
  61. package/styles/personalities/neumorphism.css +46 -0
  62. package/styles/personalities/retro-glass.css +44 -0
  63. package/styles/personalities/retrofuturism.css +36 -0
  64. package/styles/personalities/split-screen.css +41 -0
  65. package/styles/personalities/synthwave.css +48 -0
  66. package/styles/personalities/tactile.css +39 -0
  67. package/styles/personalities/y2k.css +36 -0
  68. package/styles/personalities/z-pattern.css +49 -0
  69. package/styles/personalities.css +18 -0
  70. package/styles/primitives.css +219 -0
  71. package/styles/recipes.css +270 -0
  72. package/styles/utilities.css +162 -0
  73. package/styles/wrappers.css +174 -0
  74. package/dist/layout-all-with-ui-kit-and-interactive-surface.css +0 -3
  75. package/dist/layout-all-with-ui-kit.css +0 -2
  76. package/dist/layout-all.css +0 -18
  77. package/dist/layout-base.css +0 -539
  78. package/dist/layout-style-bauhaus.css +0 -70
  79. package/dist/layout-style-bento.css +0 -76
  80. package/dist/layout-style-brutalism.css +0 -70
  81. package/dist/layout-style-cyberpunk.css +0 -70
  82. package/dist/layout-style-f-pattern.css +0 -76
  83. package/dist/layout-style-maximalist.css +0 -93
  84. package/dist/layout-style-minimal-saas.css +0 -67
  85. package/dist/layout-style-mondrian.css +0 -77
  86. package/dist/layout-style-neumorphism.css +0 -72
  87. package/dist/layout-style-retro-glass.css +0 -82
  88. package/dist/layout-style-retrofuturism.css +0 -71
  89. package/dist/layout-style-split-screen.css +0 -62
  90. package/dist/layout-style-synthwave.css +0 -88
  91. package/dist/layout-style-tactile.css +0 -70
  92. package/dist/layout-style-y2k.css +0 -72
  93. package/dist/layout-style-z-pattern.css +0 -76
  94. package/styles/layout-base.css +0 -539
  95. package/styles/layout-style-bauhaus.css +0 -70
  96. package/styles/layout-style-bento.css +0 -76
  97. package/styles/layout-style-brutalism.css +0 -70
  98. package/styles/layout-style-cyberpunk.css +0 -70
  99. package/styles/layout-style-f-pattern.css +0 -76
  100. package/styles/layout-style-maximalist.css +0 -93
  101. package/styles/layout-style-minimal-saas.css +0 -67
  102. package/styles/layout-style-mondrian.css +0 -77
  103. package/styles/layout-style-neumorphism.css +0 -72
  104. package/styles/layout-style-retro-glass.css +0 -82
  105. package/styles/layout-style-retrofuturism.css +0 -71
  106. package/styles/layout-style-split-screen.css +0 -62
  107. package/styles/layout-style-synthwave.css +0 -88
  108. package/styles/layout-style-tactile.css +0 -70
  109. package/styles/layout-style-y2k.css +0 -72
  110. package/styles/layout-style-z-pattern.css +0 -76
@@ -1,539 +0,0 @@
1
- /*
2
- Layout Style Library base primitives.
3
- This file owns spatial composition only. Visual paint, typography, borders,
4
- shadows, and theme color are intentionally delegated to ui-style-kit-css.
5
- */
6
-
7
- @layer ly.tokens {
8
- :where(.ly-root) {
9
- --ly-space-0: 0;
10
- --ly-space-1: 0.25rem;
11
- --ly-space-2: 0.5rem;
12
- --ly-space-3: 0.75rem;
13
- --ly-space-4: 1rem;
14
- --ly-space-5: 1.5rem;
15
- --ly-space-6: 2rem;
16
- --ly-space-7: 3rem;
17
- --ly-space-8: 4rem;
18
- --ly-space-9: 6rem;
19
-
20
- --ly-container-sm: 40rem;
21
- --ly-container-md: 56rem;
22
- --ly-container-lg: 72rem;
23
- --ly-container-xl: 88rem;
24
- --ly-container-wide: 112rem;
25
- --ly-container-max: var(--ly-container-lg);
26
- --ly-content-readable: 68ch;
27
-
28
- --ly-page-padding-inline: clamp(1rem, 4vw, 3rem);
29
- --ly-section-padding-block: clamp(3rem, 7vw, 6rem);
30
- --ly-gap: var(--ly-space-5);
31
- --ly-grid-gap: var(--ly-gap);
32
- --ly-stack-gap: var(--ly-space-4);
33
- --ly-cluster-gap: var(--ly-space-3);
34
-
35
- --ly-grid-columns: 12;
36
- --ly-grid-min: 16rem;
37
- --ly-card-grid-min: 16rem;
38
- --ly-card-size-sm: 10rem;
39
- --ly-card-size-md: 14rem;
40
- --ly-card-size-lg: 18rem;
41
- --ly-gallery-min: 12rem;
42
- --ly-carousel-item-min: 16rem;
43
- --ly-carousel-item-max: 28rem;
44
- --ly-sidebar-min: 14rem;
45
- --ly-sidebar-width: 18rem;
46
- --ly-sidebar-max: 22rem;
47
- --ly-pane-fixed: 22rem;
48
- --ly-header-height: 4.5rem;
49
-
50
- --ly-radius-sm: 0.5rem;
51
- --ly-radius: 0.875rem;
52
- --ly-radius-lg: 1.5rem;
53
- --ly-radius-xl: 2.25rem;
54
-
55
- --ly-z-header: 20;
56
- --ly-z-sidebar: 10;
57
- }
58
- }
59
-
60
- @layer ly.reset {
61
- :where(.ly-root),
62
- :where(.ly-root *) {
63
- box-sizing: border-box;
64
- }
65
-
66
- :where(.ly-root) {
67
- min-width: 0;
68
- margin: 0;
69
- }
70
-
71
- :where(.ly-root img),
72
- :where(.ly-root svg),
73
- :where(.ly-root video),
74
- :where(.ly-root canvas) {
75
- max-width: 100%;
76
- }
77
- }
78
-
79
- @layer ly.layout {
80
- .ly-page {
81
- min-height: 100svh;
82
- }
83
-
84
- .ly-header,
85
- .ly-footer,
86
- .ly-main,
87
- .ly-wrapper,
88
- .ly-section,
89
- .ly-surface {
90
- min-width: 0;
91
- }
92
-
93
- .ly-header {
94
- min-height: var(--ly-header-height);
95
- }
96
-
97
- .ly-header--sticky {
98
- position: sticky;
99
- top: 0;
100
- z-index: var(--ly-z-header);
101
- }
102
-
103
- .ly-container,
104
- .ly-wrapper {
105
- /* Keep wrappers resilient during viewport resizing without owning visual paint. */
106
- width: min(100% - (var(--ly-page-padding-inline) * 2), var(--ly-container-max));
107
- margin-inline: auto;
108
- }
109
-
110
- .ly-container--sm,
111
- .ly-wrapper--sm {
112
- --ly-container-max: var(--ly-container-sm);
113
- }
114
-
115
- .ly-container--md,
116
- .ly-wrapper--md {
117
- --ly-container-max: var(--ly-container-md);
118
- }
119
-
120
- .ly-container--lg,
121
- .ly-wrapper--lg {
122
- --ly-container-max: var(--ly-container-lg);
123
- }
124
-
125
- .ly-container--xl,
126
- .ly-wrapper--xl {
127
- --ly-container-max: var(--ly-container-xl);
128
- }
129
-
130
- .ly-container--wide,
131
- .ly-wrapper--wide {
132
- --ly-container-max: var(--ly-container-wide);
133
- }
134
-
135
- .ly-container--fluid,
136
- .ly-wrapper--fluid {
137
- width: 100%;
138
- max-width: none;
139
- padding-inline: var(--ly-page-padding-inline);
140
- }
141
-
142
- .ly-wrapper--readable {
143
- --ly-container-max: var(--ly-content-readable);
144
- }
145
-
146
- .ly-readable {
147
- max-width: var(--ly-content-readable);
148
- }
149
-
150
- .ly-section {
151
- padding-block: var(--ly-section-padding-block);
152
- }
153
-
154
- .ly-section--compact {
155
- --ly-section-padding-block: var(--ly-space-7);
156
- }
157
-
158
- .ly-section--flush {
159
- --ly-section-padding-block: 0;
160
- }
161
-
162
- .ly-stack {
163
- display: flex;
164
- flex-direction: column;
165
- gap: var(--ly-stack-gap);
166
- }
167
-
168
- .ly-cluster {
169
- display: flex;
170
- flex-wrap: wrap;
171
- align-items: center;
172
- gap: var(--ly-cluster-gap);
173
- }
174
-
175
- .ly-button-group {
176
- /* Button groups provide flow only; UI libraries keep button paint and states. */
177
- display: flex;
178
- flex-wrap: wrap;
179
- align-items: center;
180
- gap: var(--ly-cluster-gap);
181
- }
182
-
183
- .ly-button-group > * {
184
- flex: 0 1 auto;
185
- min-width: min(100%, var(--ly-button-min, 8rem));
186
- }
187
-
188
- .ly-grid {
189
- display: grid;
190
- grid-template-columns: repeat(var(--ly-grid-columns), minmax(0, 1fr));
191
- gap: var(--ly-grid-gap);
192
- }
193
-
194
- .ly-grid--auto {
195
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-grid-min)), 1fr));
196
- }
197
-
198
- .ly-card-grid {
199
- display: grid;
200
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-card-grid-min)), 1fr));
201
- gap: var(--ly-grid-gap);
202
- }
203
-
204
- .ly-card-grid > * {
205
- min-width: 0;
206
- }
207
-
208
- .ly-card-sm {
209
- min-block-size: var(--ly-card-size-sm);
210
- }
211
-
212
- .ly-card-md {
213
- min-block-size: var(--ly-card-size-md);
214
- }
215
-
216
- .ly-card-lg {
217
- min-block-size: var(--ly-card-size-lg);
218
- }
219
-
220
- .ly-gallery {
221
- display: grid;
222
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-gallery-min)), 1fr));
223
- gap: var(--ly-grid-gap);
224
- }
225
-
226
- .ly-gallery > * {
227
- min-width: 0;
228
- }
229
-
230
- .ly-carousel {
231
- display: grid;
232
- grid-auto-flow: column;
233
- grid-auto-columns: minmax(min(100%, var(--ly-carousel-item-min)), var(--ly-carousel-item-max));
234
- gap: var(--ly-grid-gap);
235
- overflow-x: auto;
236
- overscroll-behavior-inline: contain;
237
- scroll-snap-type: x proximity;
238
- }
239
-
240
- .ly-carousel > * {
241
- min-width: 0;
242
- scroll-snap-align: start;
243
- }
244
-
245
- .ly-row {
246
- display: flex;
247
- flex-wrap: wrap;
248
- margin-inline: calc(var(--ly-gutter, var(--ly-gap)) * -0.5);
249
- }
250
-
251
- .ly-col {
252
- flex: 1 1 0;
253
- min-width: 0;
254
- padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5);
255
- }
256
-
257
- .ly-sidebar-layout {
258
- display: grid;
259
- grid-template-columns: 1fr;
260
- gap: var(--ly-gap);
261
- }
262
-
263
- .ly-sidebar-layout > * {
264
- min-width: 0;
265
- }
266
-
267
- .ly-sidebar {
268
- min-width: 0;
269
- }
270
-
271
- .ly-content {
272
- min-width: 0;
273
- }
274
-
275
- .ly-split {
276
- display: grid;
277
- grid-template-columns: 1fr;
278
- gap: var(--ly-gap);
279
- align-items: var(--ly-split-align, center);
280
- }
281
-
282
- .ly-split > * {
283
- min-width: 0;
284
- }
285
-
286
- .ly-panes {
287
- display: grid;
288
- grid-template-columns: 1fr;
289
- gap: var(--ly-gap);
290
- }
291
-
292
- .ly-panes > * {
293
- min-width: 0;
294
- }
295
-
296
- .ly-surface {
297
- border-radius: var(--ly-radius);
298
- }
299
-
300
- .ly-surface--raised {
301
- border-radius: var(--ly-radius-lg);
302
- }
303
-
304
- .ly-divider {
305
- min-height: 1px;
306
- margin-block: var(--ly-space-5);
307
- }
308
-
309
- .ly-frame {
310
- aspect-ratio: var(--ly-frame-ratio, 16 / 9);
311
- overflow: hidden;
312
- }
313
-
314
- .ly-frame > * {
315
- width: 100%;
316
- height: 100%;
317
- object-fit: cover;
318
- }
319
-
320
- .ly-scroll-area {
321
- min-height: 0;
322
- overflow: auto;
323
- }
324
-
325
- .ly-app-shell {
326
- min-height: 100svh;
327
- display: grid;
328
- grid-template-areas:
329
- "header"
330
- "main";
331
- grid-template-columns: minmax(0, 1fr);
332
- grid-template-rows: auto minmax(0, 1fr);
333
- }
334
-
335
- .ly-app-header {
336
- grid-area: header;
337
- min-width: 0;
338
- }
339
-
340
- .ly-app-sidebar {
341
- grid-area: sidebar;
342
- display: none;
343
- min-width: 0;
344
- }
345
-
346
- .ly-app-main {
347
- grid-area: main;
348
- min-width: 0;
349
- }
350
-
351
- .ly-visually-hidden {
352
- position: absolute !important;
353
- width: 1px !important;
354
- height: 1px !important;
355
- padding: 0 !important;
356
- margin: -1px !important;
357
- overflow: hidden !important;
358
- clip: rect(0, 0, 0, 0) !important;
359
- clip-path: inset(50%) !important;
360
- white-space: nowrap !important;
361
- }
362
- }
363
-
364
- @layer ly.responsive {
365
- @media (min-width: 48rem) {
366
- /*
367
- Fixed support tracks are capped against their container so nested layouts
368
- can compress instead of forcing horizontal page overflow.
369
- */
370
- .ly-app-shell {
371
- grid-template-areas:
372
- "sidebar header"
373
- "sidebar main";
374
- grid-template-columns: minmax(min(100%, var(--ly-sidebar-min)), var(--ly-sidebar-width)) minmax(0, 1fr);
375
- }
376
-
377
- .ly-app-sidebar {
378
- display: block;
379
- position: sticky;
380
- top: 0;
381
- z-index: var(--ly-z-sidebar);
382
- height: 100svh;
383
- overflow: auto;
384
- }
385
-
386
- .ly-sidebar-layout {
387
- grid-template-columns: minmax(min(100%, var(--ly-sidebar-min)), var(--ly-sidebar-max)) minmax(0, 1fr);
388
- align-items: start;
389
- }
390
-
391
- .ly-sidebar-layout--right {
392
- grid-template-columns: minmax(0, 1fr) minmax(min(100%, var(--ly-sidebar-min)), var(--ly-sidebar-max));
393
- }
394
-
395
- .ly-split {
396
- grid-template-columns: minmax(0, var(--ly-split-primary, 1fr)) minmax(0, var(--ly-split-secondary, 1fr));
397
- }
398
-
399
- .ly-panes--two {
400
- grid-template-columns: minmax(0, 1fr) minmax(min(100%, var(--ly-pane-fixed)), 0.7fr);
401
- }
402
- }
403
-
404
- @media (min-width: 64rem) {
405
- .ly-panes--three {
406
- grid-template-columns: minmax(min(100%, 14rem), 0.35fr) minmax(0, 1fr) minmax(min(100%, 14rem), 0.35fr);
407
- }
408
- }
409
- }
410
-
411
- @layer ly.utilities {
412
- .ly-cols-1 { --ly-grid-columns: 1; }
413
- .ly-cols-2 { --ly-grid-columns: 2; }
414
- .ly-cols-3 { --ly-grid-columns: 3; }
415
- .ly-cols-4 { --ly-grid-columns: 4; }
416
- .ly-cols-5 { --ly-grid-columns: 5; }
417
- .ly-cols-6 { --ly-grid-columns: 6; }
418
- .ly-cols-7 { --ly-grid-columns: 7; }
419
- .ly-cols-8 { --ly-grid-columns: 8; }
420
- .ly-cols-9 { --ly-grid-columns: 9; }
421
- .ly-cols-10 { --ly-grid-columns: 10; }
422
- .ly-cols-11 { --ly-grid-columns: 11; }
423
- .ly-cols-12 { --ly-grid-columns: 12; }
424
- .ly-cols-16 { --ly-grid-columns: 16; }
425
-
426
- .ly-span-1 { grid-column: span 1; }
427
- .ly-span-2 { grid-column: span 2; }
428
- .ly-span-3 { grid-column: span 3; }
429
- .ly-span-4 { grid-column: span 4; }
430
- .ly-span-5 { grid-column: span 5; }
431
- .ly-span-6 { grid-column: span 6; }
432
- .ly-span-7 { grid-column: span 7; }
433
- .ly-span-8 { grid-column: span 8; }
434
- .ly-span-9 { grid-column: span 9; }
435
- .ly-span-10 { grid-column: span 10; }
436
- .ly-span-11 { grid-column: span 11; }
437
- .ly-span-12 { grid-column: span 12; }
438
- .ly-span-13 { grid-column: span 13; }
439
- .ly-span-14 { grid-column: span 14; }
440
- .ly-span-15 { grid-column: span 15; }
441
- .ly-span-16 { grid-column: span 16; }
442
- .ly-span-full { grid-column: 1 / -1; }
443
-
444
- .ly-col-1 { flex: 0 0 auto; width: 8.333333%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
445
- .ly-col-2 { flex: 0 0 auto; width: 16.666667%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
446
- .ly-col-3 { flex: 0 0 auto; width: 25%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
447
- .ly-col-4 { flex: 0 0 auto; width: 33.333333%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
448
- .ly-col-5 { flex: 0 0 auto; width: 41.666667%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
449
- .ly-col-6 { flex: 0 0 auto; width: 50%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
450
- .ly-col-7 { flex: 0 0 auto; width: 58.333333%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
451
- .ly-col-8 { flex: 0 0 auto; width: 66.666667%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
452
- .ly-col-9 { flex: 0 0 auto; width: 75%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
453
- .ly-col-10 { flex: 0 0 auto; width: 83.333333%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
454
- .ly-col-11 { flex: 0 0 auto; width: 91.666667%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
455
- .ly-col-12 { flex: 0 0 auto; width: 100%; padding-inline: calc(var(--ly-gutter, var(--ly-gap)) * 0.5); }
456
-
457
- .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); }
458
- .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); }
459
- .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); }
460
- .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); }
461
- .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); }
462
- .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); }
463
- .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); }
464
- .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); }
465
- .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); }
466
- .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); }
467
-
468
- .ly-pad-0 { padding: var(--ly-space-0); }
469
- .ly-pad-1 { padding: var(--ly-space-1); }
470
- .ly-pad-2 { padding: var(--ly-space-2); }
471
- .ly-pad-3 { padding: var(--ly-space-3); }
472
- .ly-pad-4 { padding: var(--ly-space-4); }
473
- .ly-pad-5 { padding: var(--ly-space-5); }
474
- .ly-pad-6 { padding: var(--ly-space-6); }
475
- .ly-pad-7 { padding: var(--ly-space-7); }
476
- .ly-pad-8 { padding: var(--ly-space-8); }
477
- .ly-pad-9 { padding: var(--ly-space-9); }
478
-
479
- .ly-px-4 { padding-inline: var(--ly-space-4); }
480
- .ly-px-6 { padding-inline: var(--ly-space-6); }
481
- .ly-px-8 { padding-inline: var(--ly-space-8); }
482
- .ly-py-4 { padding-block: var(--ly-space-4); }
483
- .ly-py-6 { padding-block: var(--ly-space-6); }
484
- .ly-py-8 { padding-block: var(--ly-space-8); }
485
-
486
- .ly-mx-auto { margin-inline: auto; }
487
- .ly-w-full { width: 100%; }
488
- .ly-h-full { height: 100%; }
489
- .ly-min-h-screen { min-height: 100svh; }
490
- .ly-bleed { width: 100vw; margin-inline: calc(50% - 50vw); }
491
- .ly-overflow-auto { overflow: auto; }
492
- .ly-overflow-hidden { overflow: hidden; }
493
-
494
- .ly-items-start { align-items: flex-start; }
495
- .ly-items-center { align-items: center; }
496
- .ly-items-end { align-items: flex-end; }
497
- .ly-items-stretch { align-items: stretch; }
498
- .ly-justify-start { justify-content: flex-start; }
499
- .ly-justify-center { justify-content: center; }
500
- .ly-justify-end { justify-content: flex-end; }
501
- .ly-justify-between { justify-content: space-between; }
502
-
503
- .ly-frame-1x1 { --ly-frame-ratio: 1 / 1; }
504
- .ly-frame-2x1 { --ly-frame-ratio: 2 / 1; }
505
- .ly-frame-3x2 { --ly-frame-ratio: 3 / 2; }
506
- .ly-frame-4x3 { --ly-frame-ratio: 4 / 3; }
507
- .ly-frame-16x9 { --ly-frame-ratio: 16 / 9; }
508
- .ly-frame-21x9 { --ly-frame-ratio: 21 / 9; }
509
-
510
- .ly-hidden { display: none !important; }
511
- .ly-show-md-up,
512
- .ly-show-lg-up {
513
- display: none !important;
514
- }
515
-
516
- @media (min-width: 48rem) {
517
- .ly-md-cols-1 { --ly-grid-columns: 1; }
518
- .ly-md-cols-2 { --ly-grid-columns: 2; }
519
- .ly-md-cols-3 { --ly-grid-columns: 3; }
520
- .ly-md-cols-4 { --ly-grid-columns: 4; }
521
- .ly-md-cols-6 { --ly-grid-columns: 6; }
522
- .ly-md-cols-8 { --ly-grid-columns: 8; }
523
- .ly-md-cols-12 { --ly-grid-columns: 12; }
524
- .ly-md-cols-16 { --ly-grid-columns: 16; }
525
- .ly-show-md-up { display: revert !important; }
526
- }
527
-
528
- @media (min-width: 64rem) {
529
- .ly-lg-cols-1 { --ly-grid-columns: 1; }
530
- .ly-lg-cols-2 { --ly-grid-columns: 2; }
531
- .ly-lg-cols-3 { --ly-grid-columns: 3; }
532
- .ly-lg-cols-4 { --ly-grid-columns: 4; }
533
- .ly-lg-cols-6 { --ly-grid-columns: 6; }
534
- .ly-lg-cols-8 { --ly-grid-columns: 8; }
535
- .ly-lg-cols-12 { --ly-grid-columns: 12; }
536
- .ly-lg-cols-16 { --ly-grid-columns: 16; }
537
- .ly-show-lg-up { display: revert !important; }
538
- }
539
- }
@@ -1,70 +0,0 @@
1
- /*
2
- Layout style: bauhaus.
3
- Strict framed column shell with structural rails and measured offsets. Visual
4
- identity remains owned by ui-style-kit-css.
5
- */
6
-
7
- @layer ly.styles.bauhaus {
8
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) {
9
- --ly-container-max: 92rem;
10
- --ly-page-padding-inline: clamp(1rem, 2vw, 2rem);
11
- --ly-section-padding-block: clamp(2.5rem, 5vw, 4.5rem);
12
- --ly-sidebar-width: clamp(8rem, 12vw, 12rem);
13
- --ly-grid-min: 13rem;
14
- --ly-gap: clamp(0.75rem, 1.6vw, 1.25rem);
15
- --ly-grid-gap: var(--ly-gap);
16
- --ly-stack-gap: clamp(0.75rem, 1.5vw, 1.25rem);
17
- }
18
-
19
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-app-main {
20
- padding-block: clamp(0.75rem, 2vw, 1.5rem);
21
- }
22
-
23
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-container,
24
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-wrapper {
25
- width: min(100% - var(--ly-page-padding-inline), var(--ly-container-max));
26
- }
27
-
28
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-section {
29
- padding-block: var(--ly-section-padding-block);
30
- }
31
-
32
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-grid--auto {
33
- grid-auto-rows: minmax(7rem, auto);
34
- }
35
-
36
- @media (min-width: 48rem) {
37
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-app-shell {
38
- grid-template-areas:
39
- "sidebar header"
40
- "sidebar main";
41
- grid-template-columns: minmax(min(100%, 7rem), 0.18fr) minmax(0, 1fr);
42
- }
43
-
44
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-app-sidebar {
45
- display: block;
46
- position: sticky;
47
- top: 0;
48
- height: 100svh;
49
- overflow: auto;
50
- }
51
-
52
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-sidebar-layout {
53
- grid-template-columns: minmax(min(100%, 8rem), 0.22fr) minmax(0, 1fr);
54
- }
55
-
56
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-split {
57
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
58
- }
59
-
60
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-panes--two {
61
- grid-template-columns: minmax(0, 1fr) minmax(min(100%, 12rem), 0.5fr);
62
- }
63
- }
64
-
65
- @media (min-width: 80rem) {
66
- :where(.ly-root[data-layout="bauhaus"], .ly-root[layout-style="bauhaus"], .ly-root.ly-layout-bauhaus, .ly-root.ly-style-bauhaus) .ly-panes--three {
67
- grid-template-columns: minmax(min(100%, 10rem), 0.25fr) minmax(0, 1fr) minmax(min(100%, 10rem), 0.25fr);
68
- }
69
- }
70
- }
@@ -1,76 +0,0 @@
1
- /*
2
- Layout style: bento.
3
- Modular dashboard shell with staged mosaic zones. Visual identity remains
4
- owned by ui-style-kit-css.
5
- */
6
-
7
- @layer ly.styles.bento {
8
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) {
9
- --ly-container-max: 104rem;
10
- --ly-page-padding-inline: clamp(1rem, 3.5vw, 3rem);
11
- --ly-section-padding-block: clamp(2rem, 6vw, 5rem);
12
- --ly-sidebar-width: clamp(13rem, 16vw, 17rem);
13
- --ly-grid-min: 14rem;
14
- --ly-gap: clamp(1rem, 2.5vw, 2rem);
15
- --ly-grid-gap: var(--ly-gap);
16
- --ly-stack-gap: clamp(1rem, 2vw, 1.75rem);
17
- }
18
-
19
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-app-main {
20
- padding-block: clamp(1rem, 3vw, 2.5rem);
21
- }
22
-
23
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-container,
24
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-wrapper {
25
- width: min(100% - var(--ly-page-padding-inline), var(--ly-container-max));
26
- }
27
-
28
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-section {
29
- padding-block: var(--ly-section-padding-block);
30
- }
31
-
32
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-grid--auto {
33
- grid-auto-rows: minmax(9rem, auto);
34
- }
35
-
36
- @media (min-width: 48rem) {
37
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-app-shell {
38
- grid-template-areas:
39
- "sidebar header"
40
- "sidebar main";
41
- grid-template-columns: minmax(min(100%, 13rem), 0.26fr) minmax(0, 1fr);
42
- }
43
-
44
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-app-sidebar {
45
- display: block;
46
- position: sticky;
47
- top: var(--ly-space-3);
48
- height: calc(100svh - (var(--ly-space-3) * 2));
49
- margin: var(--ly-space-3) 0 var(--ly-space-3) var(--ly-space-3);
50
- overflow: auto;
51
- }
52
-
53
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-grid--auto > :nth-child(4n + 1) {
54
- grid-column: span 2;
55
- min-height: 14rem;
56
- }
57
-
58
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-sidebar-layout {
59
- grid-template-columns: minmax(min(100%, 12rem), 0.3fr) minmax(0, 1fr);
60
- }
61
-
62
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-split {
63
- grid-template-columns: minmax(0, 0.78fr) minmax(min(100%, 18rem), 1.22fr);
64
- }
65
-
66
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-panes--two {
67
- grid-template-columns: minmax(0, 1.18fr) minmax(min(100%, 18rem), 0.82fr);
68
- }
69
- }
70
-
71
- @media (min-width: 80rem) {
72
- :where(.ly-root[data-layout="bento"], .ly-root[layout-style="bento"], .ly-root.ly-layout-bento, .ly-root.ly-style-bento) .ly-panes--three {
73
- grid-template-columns: minmax(min(100%, 12rem), 0.6fr) minmax(0, 1.4fr) minmax(min(100%, 14rem), 0.8fr);
74
- }
75
- }
76
- }