@niche-works/style-layouts 0.2.0 → 0.3.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 (50) hide show
  1. package/README.ja.md +11 -0
  2. package/README.md +11 -0
  3. package/balance/index.cjs +1 -1
  4. package/center/index.cjs +1 -1
  5. package/constants.cjs +2 -2
  6. package/constants.d.cts +2 -2
  7. package/constants.d.mts +2 -2
  8. package/constants.mjs +2 -2
  9. package/core/_constants.cjs +58 -78
  10. package/core/_constants.d.cts +57 -71
  11. package/core/_constants.d.mts +57 -71
  12. package/core/_constants.mjs +58 -72
  13. package/core/balance/balance.cjs +1 -1
  14. package/core/balance/balance.mjs +2 -2
  15. package/core/balance/styles.css +8 -22
  16. package/core/center/center.cjs +1 -1
  17. package/core/center/center.mjs +2 -2
  18. package/core/center/styles.css +59 -24
  19. package/core/constants.cjs +18 -20
  20. package/core/constants.d.cts +17 -19
  21. package/core/constants.d.mts +17 -19
  22. package/core/constants.mjs +17 -19
  23. package/core/flow/flow.cjs +7 -7
  24. package/core/flow/flow.mjs +8 -8
  25. package/core/flow/styles.css +24 -20
  26. package/core/layer/layer.cjs +1 -1
  27. package/core/layer/layer.mjs +2 -2
  28. package/core/layer/styles.css +2 -6
  29. package/core/matrix/matrix.cjs +39 -41
  30. package/core/matrix/matrix.mjs +40 -42
  31. package/core/matrix/styles.css +106 -4
  32. package/core/pack/pack.cjs +1 -1
  33. package/core/pack/pack.mjs +2 -2
  34. package/core/pack/styles.css +17 -8
  35. package/core/pin/styles.css +1 -0
  36. package/core/stack/stack.cjs +19 -19
  37. package/core/stack/stack.mjs +20 -20
  38. package/core/stack/styles.css +26 -22
  39. package/core/styles.css +359 -149
  40. package/core/tile/styles.css +116 -43
  41. package/core/tile/tile.cjs +2 -52
  42. package/core/tile/tile.mjs +4 -54
  43. package/flow/index.cjs +1 -1
  44. package/layer/index.cjs +1 -1
  45. package/matrix/index.cjs +1 -1
  46. package/pack/index.cjs +1 -1
  47. package/package.json +1 -1
  48. package/pin/index.cjs +1 -1
  49. package/stack/index.cjs +1 -1
  50. package/tile/index.cjs +1 -1
package/core/styles.css CHANGED
@@ -36,16 +36,14 @@
36
36
  .nws-layout-stack.nws-layout-direction-x.nws-layout-alignY-bottom {
37
37
  align-items: flex-end;
38
38
  }
39
- .nws-layout-stack.nws-layout-direction-x.nws-layout-childSizeX > * {
40
- flex-basis: var(--nws-layout-childSizeX);
41
- }
42
- .nws-layout-stack.nws-layout-direction-x.nws-layout-childSizeY > * {
43
- height: var(--nws-layout-childSizeY);
44
- }
45
39
  .nws-layout-stack.nws-layout-direction-x > * {
46
40
  flex-grow: 0;
47
41
  flex-shrink: 0;
48
42
  min-width: 0;
43
+ min-height: 0;
44
+ }
45
+ .nws-layout-stack.nws-layout-direction-x.nws-layout-childSizeX > * {
46
+ flex-basis: var(--nws-layout-childSizeX);
49
47
  }
50
48
  .nws-layout-stack.nws-layout-direction-x.nws-layout-adjustX-fit {
51
49
  justify-content: flex-start;
@@ -54,7 +52,6 @@
54
52
  flex-grow: 1;
55
53
  flex-shrink: 1;
56
54
  flex-basis: auto;
57
- min-width: 0;
58
55
  }
59
56
  .nws-layout-stack.nws-layout-direction-x.nws-layout-adjustX-fit.nws-layout-childSizeX > * {
60
57
  flex-basis: var(--nws-layout-childSizeX);
@@ -65,8 +62,8 @@
65
62
  .nws-layout-stack.nws-layout-direction-x.nws-layout-adjustX-shrink > * {
66
63
  flex-shrink: 1;
67
64
  }
68
- .nws-layout-stack.nws-layout-direction-x > * {
69
- min-height: 0;
65
+ .nws-layout-stack.nws-layout-direction-x.nws-layout-childSizeY > * {
66
+ height: var(--nws-layout-childSizeY);
70
67
  }
71
68
  .nws-layout-stack.nws-layout-direction-x.nws-layout-adjustY-fit {
72
69
  align-items: stretch;
@@ -115,14 +112,14 @@
115
112
  .nws-layout-stack.nws-layout-direction-y.nws-layout-alignY-spaceEvenly {
116
113
  justify-content: space-evenly;
117
114
  }
118
- .nws-layout-stack.nws-layout-direction-y.nws-layout-childSizeX > * {
119
- width: var(--nws-layout-childSizeX);
120
- }
121
- .nws-layout-stack.nws-layout-direction-y.nws-layout-childSizeY > * {
122
- flex-basis: var(--nws-layout-childSizeY);
123
- }
124
115
  .nws-layout-stack.nws-layout-direction-y > * {
116
+ flex-grow: 0;
117
+ flex-shrink: 0;
125
118
  min-width: 0;
119
+ min-height: 0;
120
+ }
121
+ .nws-layout-stack.nws-layout-direction-y.nws-layout-childSizeX > * {
122
+ width: var(--nws-layout-childSizeX);
126
123
  }
127
124
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustX-fit {
128
125
  align-items: stretch;
@@ -141,10 +138,8 @@
141
138
  min-width: 0;
142
139
  max-width: 100%;
143
140
  }
144
- .nws-layout-stack.nws-layout-direction-y > * {
145
- flex-grow: 0;
146
- flex-shrink: 0;
147
- min-height: 0;
141
+ .nws-layout-stack.nws-layout-direction-y.nws-layout-childSizeY > * {
142
+ flex-basis: var(--nws-layout-childSizeY);
148
143
  }
149
144
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustY-fit {
150
145
  justify-content: flex-start;
@@ -153,7 +148,6 @@
153
148
  flex-grow: 1;
154
149
  flex-shrink: 1;
155
150
  flex-basis: auto;
156
- min-height: 0;
157
151
  }
158
152
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustY-fit.nws-layout-childSizeY > * {
159
153
  flex-basis: var(--nws-layout-childSizeY);
@@ -168,10 +162,20 @@
168
162
  aspect-ratio: var(--nws-layout-childRatio);
169
163
  }
170
164
  .nws-layout-stack.nws-layout-gapX {
171
- column-gap: var(--nws-layout-gapX);
165
+ margin-left: calc(var(--nws-layout-gapX) / -2);
166
+ margin-right: calc(var(--nws-layout-gapX) / -2);
167
+ }
168
+ .nws-layout-stack.nws-layout-gapX > * {
169
+ margin-left: calc(var(--nws-layout-gapX) / 2);
170
+ margin-right: calc(var(--nws-layout-gapX) / 2);
172
171
  }
173
172
  .nws-layout-stack.nws-layout-gapY {
174
- row-gap: var(--nws-layout-gapY);
173
+ margin-top: calc(var(--nws-layout-gapY) / -2);
174
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
175
+ }
176
+ .nws-layout-stack.nws-layout-gapY > * {
177
+ margin-top: calc(var(--nws-layout-gapY) / 2);
178
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
175
179
  }
176
180
 
177
181
  .nws-layout-flow {
@@ -225,16 +229,14 @@
225
229
  .nws-layout-flow.nws-layout-direction-x.nws-layout-alignY-spaceEvenly {
226
230
  align-content: space-evenly;
227
231
  }
228
- .nws-layout-flow.nws-layout-direction-x.nws-layout-childSizeX > * {
229
- flex-basis: var(--nws-layout-childSizeX);
230
- }
231
- .nws-layout-flow.nws-layout-direction-x.nws-layout-childSizeY > * {
232
- height: var(--nws-layout-childSizeY);
233
- }
234
232
  .nws-layout-flow.nws-layout-direction-x > * {
235
233
  flex-grow: 0;
236
234
  flex-shrink: 0;
237
235
  min-width: 0;
236
+ min-height: 0;
237
+ }
238
+ .nws-layout-flow.nws-layout-direction-x.nws-layout-childSizeX > * {
239
+ flex-basis: var(--nws-layout-childSizeX);
238
240
  }
239
241
  .nws-layout-flow.nws-layout-direction-x.nws-layout-adjustX-fit {
240
242
  justify-content: flex-start;
@@ -243,7 +245,6 @@
243
245
  flex-grow: 1;
244
246
  flex-shrink: 1;
245
247
  flex-basis: auto;
246
- min-width: 0;
247
248
  }
248
249
  .nws-layout-flow.nws-layout-direction-x.nws-layout-adjustX-fit.nws-layout-childSizeX > * {
249
250
  flex-basis: var(--nws-layout-childSizeX);
@@ -254,8 +255,8 @@
254
255
  .nws-layout-flow.nws-layout-direction-x.nws-layout-adjustX-shrink > * {
255
256
  flex-shrink: 1;
256
257
  }
257
- .nws-layout-flow.nws-layout-direction-x > * {
258
- min-height: 0;
258
+ .nws-layout-flow.nws-layout-direction-x.nws-layout-childSizeY > * {
259
+ height: var(--nws-layout-childSizeY);
259
260
  }
260
261
  .nws-layout-flow.nws-layout-direction-y {
261
262
  flex-direction: column;
@@ -299,20 +300,18 @@
299
300
  .nws-layout-flow.nws-layout-direction-y.nws-layout-alignY-spaceEvenly {
300
301
  justify-content: space-evenly;
301
302
  }
303
+ .nws-layout-flow.nws-layout-direction-y > * {
304
+ flex-grow: 0;
305
+ flex-shrink: 0;
306
+ min-width: 0;
307
+ min-height: 0;
308
+ }
302
309
  .nws-layout-flow.nws-layout-direction-y.nws-layout-childSizeX > * {
303
310
  width: var(--nws-layout-childSizeX);
304
311
  }
305
312
  .nws-layout-flow.nws-layout-direction-y.nws-layout-childSizeY > * {
306
313
  flex-basis: var(--nws-layout-childSizeY);
307
314
  }
308
- .nws-layout-flow.nws-layout-direction-y > * {
309
- min-width: 0;
310
- }
311
- .nws-layout-flow.nws-layout-direction-y > * {
312
- flex-grow: 0;
313
- flex-shrink: 0;
314
- min-height: 0;
315
- }
316
315
  .nws-layout-flow.nws-layout-direction-y.nws-layout-adjustY-fit {
317
316
  justify-content: flex-start;
318
317
  }
@@ -320,7 +319,6 @@
320
319
  flex-grow: 1;
321
320
  flex-shrink: 1;
322
321
  flex-basis: auto;
323
- min-height: 0;
324
322
  }
325
323
  .nws-layout-flow.nws-layout-direction-y.nws-layout-adjustY-fit.nws-layout-childSizeY > * {
326
324
  flex-basis: var(--nws-layout-childSizeY);
@@ -335,10 +333,20 @@
335
333
  aspect-ratio: var(--nws-layout-childRatio);
336
334
  }
337
335
  .nws-layout-flow.nws-layout-gapX {
338
- column-gap: var(--nws-layout-gapX);
336
+ margin-left: calc(var(--nws-layout-gapX) / -2);
337
+ margin-right: calc(var(--nws-layout-gapX) / -2);
338
+ }
339
+ .nws-layout-flow.nws-layout-gapX > * {
340
+ margin-left: calc(var(--nws-layout-gapX) / 2);
341
+ margin-right: calc(var(--nws-layout-gapX) / 2);
339
342
  }
340
343
  .nws-layout-flow.nws-layout-gapY {
341
- row-gap: var(--nws-layout-gapY);
344
+ margin-top: calc(var(--nws-layout-gapY) / -2);
345
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
346
+ }
347
+ .nws-layout-flow.nws-layout-gapY > * {
348
+ margin-top: calc(var(--nws-layout-gapY) / 2);
349
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
342
350
  }
343
351
 
344
352
  .nws-layout-tile {
@@ -347,21 +355,129 @@
347
355
  --nws-layout-childSizeX: auto;
348
356
  --nws-layout-childSizeY: auto;
349
357
  --nws-layout-childRatio: auto;
350
- --nws-layout-templateX: none;
351
- --nws-layout-templateY: none;
352
- --nws-layout-autoTracX: auto;
353
- --nws-layout-autoTracY: auto;
354
358
  display: grid;
355
359
  }
360
+ .nws-layout-tile > * {
361
+ min-width: 0;
362
+ min-height: 0;
363
+ }
356
364
  .nws-layout-tile.nws-layout-direction-x {
357
365
  grid-auto-flow: row;
358
- grid-template-columns: var(--nws-layout-templateX);
359
- grid-auto-rows: var(--nws-layout-autoTracY);
366
+ grid-template-columns: repeat(auto-fit, minmax(max-content, 100%));
367
+ }
368
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-childSizeX {
369
+ grid-template-columns: repeat(auto-fit, var(--nws-layout-childSizeX));
370
+ }
371
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-fit, .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-grow, .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-shrink {
372
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
373
+ }
374
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-fit > *, .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-grow > *, .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-shrink > * {
375
+ width: auto;
376
+ }
377
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-fit.nws-layout-childSizeX {
378
+ grid-template-columns: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeX)), 1fr));
379
+ }
380
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-grow.nws-layout-childSizeX {
381
+ grid-template-columns: repeat(auto-fit, minmax(var(--nws-layout-childSizeX), 1fr));
382
+ }
383
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-shrink.nws-layout-childSizeX {
384
+ grid-template-columns: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeX)));
385
+ }
386
+ .nws-layout-tile.nws-layout-direction-x {
387
+ grid-auto-rows: auto;
388
+ }
389
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-fit {
390
+ grid-auto-rows: minmax(0, 100%);
391
+ align-content: stretch;
392
+ }
393
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-fit > * {
394
+ height: auto;
395
+ }
396
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow {
397
+ grid-auto-rows: minmax(auto, 100%);
398
+ }
399
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow > * {
400
+ max-height: 100%;
401
+ height: 100%;
402
+ }
403
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow.nws-layout-childSizeY {
404
+ grid-auto-rows: minmax(var(--nws-layout-childSizeY), 100%);
405
+ }
406
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
407
+ min-height: var(--nws-layout-childSizeY);
408
+ }
409
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink {
410
+ grid-auto-rows: minmax(0, auto);
411
+ }
412
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink > * {
413
+ min-height: 100%;
414
+ height: 100%;
415
+ }
416
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink.nws-layout-childSizeY {
417
+ grid-auto-rows: minmax(0, var(--nws-layout-childSizeY));
418
+ }
419
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
420
+ max-height: var(--nws-layout-childSizeY);
360
421
  }
361
422
  .nws-layout-tile.nws-layout-direction-y {
362
423
  grid-auto-flow: column;
363
- grid-auto-columns: var(--nws-layout-autoTracX);
364
- grid-template-rows: var(--nws-layout-templateY);
424
+ grid-auto-columns: auto;
425
+ }
426
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-fit > *, .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-grow > *, .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-shrink > * {
427
+ width: auto;
428
+ }
429
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-fit {
430
+ grid-auto-columns: minmax(0, 100%);
431
+ }
432
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-grow {
433
+ grid-auto-columns: minmax(auto, 100%);
434
+ }
435
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-grow.nws-layout-childSizeX {
436
+ grid-auto-columns: minmax(var(--nws-layout-childSizeX), 100%);
437
+ }
438
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-shrink {
439
+ grid-auto-columns: minmax(0, auto);
440
+ }
441
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-shrink.nws-layout-childSizeX {
442
+ grid-auto-columns: minmax(0, var(--nws-layout-childSizeX));
443
+ }
444
+ .nws-layout-tile.nws-layout-direction-y {
445
+ grid-template-rows: repeat(auto-fit, minmax(max-content, 100%));
446
+ }
447
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-childSizeY {
448
+ grid-template-rows: repeat(auto-fit, var(--nws-layout-childSizeY));
449
+ }
450
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit, .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow, .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink {
451
+ grid-template-rows: repeat(auto-fit, minmax(0, 1fr));
452
+ }
453
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit {
454
+ align-content: stretch;
455
+ }
456
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit > * {
457
+ height: auto;
458
+ }
459
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit.nws-layout-childSizeY {
460
+ grid-template-rows: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeY)), 1fr));
461
+ }
462
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow > * {
463
+ max-height: 100%;
464
+ height: 100%;
465
+ }
466
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow.nws-layout-childSizeY {
467
+ grid-template-rows: repeat(auto-fit, minmax(var(--nws-layout-childSizeY), 1fr));
468
+ }
469
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
470
+ min-height: var(--nws-layout-childSizeY);
471
+ }
472
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink > * {
473
+ min-height: 100%;
474
+ height: 100%;
475
+ }
476
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink.nws-layout-childSizeY {
477
+ grid-template-rows: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeY)));
478
+ }
479
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
480
+ max-height: var(--nws-layout-childSizeY);
365
481
  }
366
482
  .nws-layout-tile.nws-layout-alignX-left {
367
483
  justify-content: flex-start;
@@ -405,41 +521,6 @@
405
521
  .nws-layout-tile.nws-layout-childSizeY > * {
406
522
  height: var(--nws-layout-childSizeY);
407
523
  }
408
- .nws-layout-tile > * {
409
- min-width: 0;
410
- }
411
- .nws-layout-tile.nws-layout-adjustX-fit > * {
412
- width: auto;
413
- }
414
- .nws-layout-tile.nws-layout-adjustX-grow > * {
415
- width: auto;
416
- }
417
- .nws-layout-tile.nws-layout-adjustX-shrink > * {
418
- width: auto;
419
- }
420
- .nws-layout-tile > * {
421
- min-height: 0;
422
- }
423
- .nws-layout-tile.nws-layout-adjustY-fit {
424
- align-content: stretch;
425
- }
426
- .nws-layout-tile.nws-layout-adjustY-fit > * {
427
- height: auto;
428
- }
429
- .nws-layout-tile.nws-layout-adjustY-grow > * {
430
- max-height: 100%;
431
- height: 100%;
432
- }
433
- .nws-layout-tile.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
434
- min-height: var(--nws-layout-childSizeY);
435
- }
436
- .nws-layout-tile.nws-layout-adjustY-shrink > * {
437
- min-height: 100%;
438
- height: 100%;
439
- }
440
- .nws-layout-tile.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
441
- max-height: var(--nws-layout-childSizeY);
442
- }
443
524
  .nws-layout-tile.nws-layout-childRatio > * {
444
525
  aspect-ratio: var(--nws-layout-childRatio);
445
526
  }
@@ -453,20 +534,20 @@
453
534
  .nws-layout-matrix {
454
535
  --nws-layout-gapX: 0px;
455
536
  --nws-layout-gapY: 0px;
537
+ --nws-layout-childSizeX: auto;
538
+ --nws-layout-childSizeY: auto;
456
539
  --nws-layout-childRatio: auto;
540
+ --nws-layout-childCountX: auto-fit;
541
+ --nws-layout-childCountY: auto-fit;
457
542
  --nws-layout-templateX: none;
458
543
  --nws-layout-templateY: none;
459
544
  display: grid;
460
545
  }
461
546
  .nws-layout-matrix.nws-layout-direction-x {
462
547
  grid-auto-flow: row;
463
- grid-template-columns: var(--nws-layout-templateX);
464
- grid-template-rows: var(--nws-layout-templateY);
465
548
  }
466
549
  .nws-layout-matrix.nws-layout-direction-y {
467
550
  grid-auto-flow: column;
468
- grid-template-columns: var(--nws-layout-templateX);
469
- grid-template-rows: var(--nws-layout-templateY);
470
551
  }
471
552
  .nws-layout-matrix.nws-layout-alignX-left {
472
553
  justify-content: flex-start;
@@ -504,6 +585,108 @@
504
585
  .nws-layout-matrix.nws-layout-alignY-spaceEvenly {
505
586
  align-content: space-evenly;
506
587
  }
588
+ .nws-layout-matrix {
589
+ grid-template-columns: repeat(auto-fit, auto);
590
+ }
591
+ .nws-layout-matrix.nws-layout-childSizeX {
592
+ grid-template-columns: repeat(auto-fit, var(--nws-layout-childSizeX));
593
+ }
594
+ .nws-layout-matrix.nws-layout-childSizeX.nws-layout-childCountX {
595
+ grid-template-columns: repeat(var(--nws-layout-childCountX), var(--nws-layout-childSizeX));
596
+ }
597
+ .nws-layout-matrix.nws-layout-childCountX {
598
+ grid-template-columns: repeat(var(--nws-layout-childCountX), auto);
599
+ }
600
+ .nws-layout-matrix.nws-layout-templateX {
601
+ grid-template-columns: var(--nws-layout-templateX);
602
+ }
603
+ .nws-layout-matrix.nws-layout-adjustX-fit {
604
+ grid-template-columns: repeat(auto-fit, 1fr);
605
+ }
606
+ .nws-layout-matrix.nws-layout-adjustX-fit.nws-layout-childSizeX {
607
+ grid-template-columns: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeX)), 1fr));
608
+ }
609
+ .nws-layout-matrix.nws-layout-adjustX-fit.nws-layout-childSizeX.nws-layout-childCountX {
610
+ grid-template-columns: repeat(var(--nws-layout-childCountX), minmax(clamp(0px, (100% - var(--nws-layout-gapX) * (var(--nws-layout-childCountX) - 1)) / var(--nws-layout-childCountX), var(--nws-layout-childSizeX)), 1fr));
611
+ }
612
+ .nws-layout-matrix.nws-layout-adjustX-fit.nws-layout-childCountX {
613
+ grid-template-columns: repeat(var(--nws-layout-childCountX), 1fr);
614
+ }
615
+ .nws-layout-matrix.nws-layout-adjustX-grow {
616
+ grid-template-columns: repeat(auto-fit, 1fr);
617
+ }
618
+ .nws-layout-matrix.nws-layout-adjustX-grow.nws-layout-childSizeX {
619
+ grid-template-columns: repeat(auto-fit, minmax(var(--nws-layout-childSizeX), 1fr));
620
+ }
621
+ .nws-layout-matrix.nws-layout-adjustX-grow.nws-layout-childSizeX.nws-layout-childCountX {
622
+ grid-template-columns: repeat(var(--nws-layout-childCountX), minmax(var(--nws-layout-childSizeX), 1fr));
623
+ }
624
+ .nws-layout-matrix.nws-layout-adjustX-grow.nws-layout-childCountX {
625
+ grid-template-columns: repeat(var(--nws-layout-childCountX), 1fr);
626
+ }
627
+ .nws-layout-matrix.nws-layout-adjustX-shrink {
628
+ grid-template-columns: repeat(auto-fit, auto);
629
+ }
630
+ .nws-layout-matrix.nws-layout-adjustX-shrink.nws-layout-childSizeX {
631
+ grid-template-columns: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeX)));
632
+ }
633
+ .nws-layout-matrix.nws-layout-adjustX-shrink.nws-layout-childSizeX.nws-layout-childCountX {
634
+ grid-template-columns: repeat(var(--nws-layout-childCountX), minmax(0, var(--nws-layout-childSizeX)));
635
+ }
636
+ .nws-layout-matrix.nws-layout-adjustX-shrink.nws-layout-childCountX {
637
+ grid-template-columns: repeat(var(--nws-layout-childCountX), auto);
638
+ }
639
+ .nws-layout-matrix {
640
+ grid-template-rows: repeat(auto-fit, auto);
641
+ }
642
+ .nws-layout-matrix.nws-layout-childSizeY {
643
+ grid-template-rows: repeat(auto-fit, var(--nws-layout-childSizeY));
644
+ }
645
+ .nws-layout-matrix.nws-layout-childSizeY.nws-layout-childCountY {
646
+ grid-template-rows: repeat(var(--nws-layout-childCountY), var(--nws-layout-childSizeY));
647
+ }
648
+ .nws-layout-matrix.nws-layout-childCountY {
649
+ grid-template-rows: repeat(var(--nws-layout-childCountY), auto);
650
+ }
651
+ .nws-layout-matrix.nws-layout-templateY {
652
+ grid-template-rows: var(--nws-layout-templateY);
653
+ }
654
+ .nws-layout-matrix.nws-layout-adjustY-fit {
655
+ grid-template-rows: repeat(auto-fit, 1fr);
656
+ }
657
+ .nws-layout-matrix.nws-layout-adjustY-fit.nws-layout-childSizeY {
658
+ grid-template-rows: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeY)), 1fr));
659
+ }
660
+ .nws-layout-matrix.nws-layout-adjustY-fit.nws-layout-childSizeY.nws-layout-childCountY {
661
+ grid-template-rows: repeat(var(--nws-layout-childCountY), minmax(clamp(0px, (100% - var(--nws-layout-gapY) * (var(--nws-layout-childCountY) - 1)) / var(--nws-layout-childCountY), var(--nws-layout-childSizeY)), 1fr));
662
+ }
663
+ .nws-layout-matrix.nws-layout-adjustY-fit.nws-layout-childCountY {
664
+ grid-template-rows: repeat(var(--nws-layout-childCountY), 1fr);
665
+ }
666
+ .nws-layout-matrix.nws-layout-adjustY-grow {
667
+ grid-template-rows: repeat(auto-fit, 1fr);
668
+ }
669
+ .nws-layout-matrix.nws-layout-adjustY-grow.nws-layout-childSizeY {
670
+ grid-template-rows: repeat(auto-fit, minmax(var(--nws-layout-childSizeY), 1fr));
671
+ }
672
+ .nws-layout-matrix.nws-layout-adjustY-grow.nws-layout-childSizeY.nws-layout-childCountY {
673
+ grid-template-rows: repeat(var(--nws-layout-childCountY), minmax(var(--nws-layout-childSizeY), 1fr));
674
+ }
675
+ .nws-layout-matrix.nws-layout-adjustY-grow.nws-layout-childCountY {
676
+ grid-template-rows: repeat(var(--nws-layout-childCountY), 1fr);
677
+ }
678
+ .nws-layout-matrix.nws-layout-adjustY-shrink {
679
+ grid-template-rows: repeat(auto-fit, auto);
680
+ }
681
+ .nws-layout-matrix.nws-layout-adjustY-shrink.nws-layout-childSizeY {
682
+ grid-template-rows: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeY)));
683
+ }
684
+ .nws-layout-matrix.nws-layout-adjustY-shrink.nws-layout-childSizeY.nws-layout-childCountY {
685
+ grid-template-rows: repeat(var(--nws-layout-childCountY), minmax(0, var(--nws-layout-childSizeY)));
686
+ }
687
+ .nws-layout-matrix.nws-layout-adjustY-shrink.nws-layout-childCountY {
688
+ grid-template-rows: repeat(var(--nws-layout-childCountY), auto);
689
+ }
507
690
  .nws-layout-matrix.nws-layout-childRatio > * {
508
691
  aspect-ratio: var(--nws-layout-childRatio);
509
692
  }
@@ -521,9 +704,8 @@
521
704
  --nws-layout-childSizeY: auto;
522
705
  --nws-layout-childRatio: auto;
523
706
  display: flex;
524
- justify-content: safe center;
525
- align-content: safe center;
526
- align-items: flex-start;
707
+ justify-content: flex-start;
708
+ align-content: flex-start;
527
709
  flex-wrap: nowrap;
528
710
  }
529
711
  .nws-layout-center > * {
@@ -536,14 +718,22 @@
536
718
  .nws-layout-center.nws-layout-direction-x {
537
719
  flex-direction: row;
538
720
  }
539
- .nws-layout-center.nws-layout-direction-x.nws-layout-childSizeX > * {
540
- width: var(--nws-layout-childSizeX);
541
- flex-basis: var(--nws-layout-childSizeX);
542
- }
543
721
  .nws-layout-center.nws-layout-direction-x > * {
544
722
  max-width: none;
545
723
  flex-grow: 0;
546
724
  flex-shrink: 0;
725
+ margin-top: auto;
726
+ margin-bottom: auto;
727
+ }
728
+ .nws-layout-center.nws-layout-direction-x > *:first-child {
729
+ margin-left: auto;
730
+ }
731
+ .nws-layout-center.nws-layout-direction-x > *:last-child {
732
+ margin-right: auto;
733
+ }
734
+ .nws-layout-center.nws-layout-direction-x.nws-layout-childSizeX > * {
735
+ width: var(--nws-layout-childSizeX);
736
+ flex-basis: var(--nws-layout-childSizeX);
547
737
  }
548
738
  .nws-layout-center.nws-layout-direction-x.nws-layout-adjustX-fit {
549
739
  justify-content: stretch;
@@ -573,14 +763,14 @@
573
763
  flex-shrink: 1;
574
764
  flex-basis: var(--nws-layout-childSizeX);
575
765
  }
576
- .nws-layout-center.nws-layout-direction-x.nws-layout-childSizeY > * {
577
- height: var(--nws-layout-childSizeY);
578
- }
579
766
  .nws-layout-center.nws-layout-direction-x > * {
580
767
  max-height: none;
581
768
  margin-top: auto;
582
769
  margin-bottom: auto;
583
770
  }
771
+ .nws-layout-center.nws-layout-direction-x.nws-layout-childSizeY > * {
772
+ height: var(--nws-layout-childSizeY);
773
+ }
584
774
  .nws-layout-center.nws-layout-direction-x.nws-layout-adjustY-fit {
585
775
  align-items: stretch;
586
776
  }
@@ -602,17 +792,37 @@
602
792
  margin-top: auto;
603
793
  margin-bottom: auto;
604
794
  }
795
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX {
796
+ margin-left: calc(var(--nws-layout-gapX) / -2);
797
+ margin-right: calc(var(--nws-layout-gapX) / -2);
798
+ }
799
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX > * {
800
+ margin-left: calc(var(--nws-layout-gapX) / 2);
801
+ margin-right: calc(var(--nws-layout-gapX) / 2);
802
+ }
803
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX > *:first-child {
804
+ margin-left: auto;
805
+ }
806
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX > *:last-child {
807
+ margin-right: auto;
808
+ }
605
809
  .nws-layout-center.nws-layout-direction-y {
606
810
  flex-direction: column;
607
811
  }
608
- .nws-layout-center.nws-layout-direction-y.nws-layout-childSizeX > * {
609
- width: var(--nws-layout-childSizeX);
610
- }
611
812
  .nws-layout-center.nws-layout-direction-y > * {
612
813
  max-width: none;
613
814
  margin-left: auto;
614
815
  margin-right: auto;
615
816
  }
817
+ .nws-layout-center.nws-layout-direction-y > *:first-child {
818
+ margin-top: auto;
819
+ }
820
+ .nws-layout-center.nws-layout-direction-y > *:last-child {
821
+ margin-bottom: auto;
822
+ }
823
+ .nws-layout-center.nws-layout-direction-y.nws-layout-childSizeX > * {
824
+ width: var(--nws-layout-childSizeX);
825
+ }
616
826
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustX-fit {
617
827
  align-items: stretch;
618
828
  }
@@ -625,8 +835,8 @@
625
835
  }
626
836
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustX-grow > * {
627
837
  width: 100%;
628
- max-width: none;
629
838
  min-width: var(--nws-layout-childSizeX);
839
+ max-width: none;
630
840
  }
631
841
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustX-shrink > * {
632
842
  width: var(--nws-layout-childSizeX);
@@ -634,15 +844,15 @@
634
844
  margin-left: auto;
635
845
  margin-right: auto;
636
846
  }
637
- .nws-layout-center.nws-layout-direction-y.nws-layout-childSizeY > * {
638
- height: var(--nws-layout-childSizeY);
639
- flex-basis: var(--nws-layout-childSizeY);
640
- }
641
847
  .nws-layout-center.nws-layout-direction-y > * {
642
848
  max-height: none;
643
849
  flex-grow: 0;
644
850
  flex-shrink: 0;
645
851
  }
852
+ .nws-layout-center.nws-layout-direction-y.nws-layout-childSizeY > * {
853
+ height: var(--nws-layout-childSizeY);
854
+ flex-basis: var(--nws-layout-childSizeY);
855
+ }
646
856
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustY-fit {
647
857
  justify-content: stretch;
648
858
  }
@@ -671,14 +881,22 @@
671
881
  flex-shrink: 1;
672
882
  flex-basis: var(--nws-layout-childSizeY);
673
883
  }
674
- .nws-layout-center.nws-layout-childRatio > * {
675
- aspect-ratio: var(--nws-layout-childRatio);
884
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY {
885
+ margin-top: calc(var(--nws-layout-gapY) / -2);
886
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
676
887
  }
677
- .nws-layout-center.nws-layout-gapX {
678
- column-gap: var(--nws-layout-gapX);
888
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY > * {
889
+ margin-top: calc(var(--nws-layout-gapY) / 2);
890
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
679
891
  }
680
- .nws-layout-center.nws-layout-gapY {
681
- row-gap: var(--nws-layout-gapY);
892
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY > *:first-child {
893
+ margin-top: auto;
894
+ }
895
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY > *:last-child {
896
+ margin-bottom: auto;
897
+ }
898
+ .nws-layout-center.nws-layout-childRatio > * {
899
+ aspect-ratio: var(--nws-layout-childRatio);
682
900
  }
683
901
 
684
902
  .nws-layout-pack {
@@ -689,13 +907,15 @@
689
907
  justify-content: flex-start;
690
908
  align-items: stretch;
691
909
  }
910
+ .nws-layout-pack > * {
911
+ flex-basis: 0;
912
+ flex-grow: 1;
913
+ flex-shrink: 1;
914
+ }
692
915
  .nws-layout-pack.nws-layout-direction-x {
693
916
  flex-direction: row;
694
917
  }
695
918
  .nws-layout-pack.nws-layout-direction-x > * {
696
- flex-basis: 0;
697
- flex-grow: 1;
698
- flex-shrink: 1;
699
919
  min-width: 0;
700
920
  min-height: 100%;
701
921
  max-height: 100%;
@@ -704,18 +924,25 @@
704
924
  flex-direction: column;
705
925
  }
706
926
  .nws-layout-pack.nws-layout-direction-y > * {
707
- flex-basis: 0;
708
- flex-grow: 1;
709
- flex-shrink: 1;
710
927
  min-height: 0;
711
928
  min-width: 100%;
712
929
  max-width: 100%;
713
930
  }
714
931
  .nws-layout-pack.nws-layout-gapX {
715
- column-gap: var(--nws-layout-gapX);
932
+ margin-left: calc(var(--nws-layout-gapX) / -2);
933
+ margin-right: calc(var(--nws-layout-gapX) / -2);
934
+ }
935
+ .nws-layout-pack.nws-layout-gapX > * {
936
+ margin-left: calc(var(--nws-layout-gapX) / 2);
937
+ margin-right: calc(var(--nws-layout-gapX) / 2);
716
938
  }
717
939
  .nws-layout-pack.nws-layout-gapY {
718
- row-gap: var(--nws-layout-gapY);
940
+ margin-top: calc(var(--nws-layout-gapY) / -2);
941
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
942
+ }
943
+ .nws-layout-pack.nws-layout-gapY > * {
944
+ margin-top: calc(var(--nws-layout-gapY) / 2);
945
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
719
946
  }
720
947
 
721
948
  .nws-layout-balance {
@@ -768,14 +995,12 @@
768
995
  .nws-layout-balance.nws-layout-alignY-spaceEvenly {
769
996
  align-items: space-evenly;
770
997
  }
771
- .nws-layout-balance.nws-layout-childSizeX > * {
772
- width: var(--nws-layout-childSizeX);
773
- }
774
- .nws-layout-balance.nws-layout-childSizeY > * {
775
- height: var(--nws-layout-childSizeY);
776
- }
777
998
  .nws-layout-balance > * {
778
999
  min-width: 0;
1000
+ min-height: 0;
1001
+ }
1002
+ .nws-layout-balance.nws-layout-childSizeX > * {
1003
+ width: var(--nws-layout-childSizeX);
779
1004
  }
780
1005
  .nws-layout-balance.nws-layout-adjustX-fit {
781
1006
  justify-items: stretch;
@@ -783,23 +1008,17 @@
783
1008
  .nws-layout-balance.nws-layout-adjustX-fit > * {
784
1009
  width: auto;
785
1010
  }
786
- .nws-layout-balance.nws-layout-adjustX-fit.nws-layout-childSizeX > * {
787
- width: auto;
788
- }
789
- .nws-layout-balance.nws-layout-adjustX-grow > * {
1011
+ .nws-layout-balance.nws-layout-adjustX-grow > *, .nws-layout-balance.nws-layout-adjustX-shrink > * {
790
1012
  width: 100%;
791
1013
  }
792
1014
  .nws-layout-balance.nws-layout-adjustX-grow.nws-layout-childSizeX > * {
793
1015
  min-width: var(--nws-layout-childSizeX);
794
1016
  }
795
- .nws-layout-balance.nws-layout-adjustX-shrink > * {
796
- width: 100%;
797
- }
798
1017
  .nws-layout-balance.nws-layout-adjustX-shrink.nws-layout-childSizeX > * {
799
1018
  max-width: var(--nws-layout-childSizeX);
800
1019
  }
801
- .nws-layout-balance > * {
802
- min-height: 0;
1020
+ .nws-layout-balance.nws-layout-childSizeY > * {
1021
+ height: var(--nws-layout-childSizeY);
803
1022
  }
804
1023
  .nws-layout-balance.nws-layout-adjustY-fit {
805
1024
  align-items: stretch;
@@ -807,18 +1026,12 @@
807
1026
  .nws-layout-balance.nws-layout-adjustY-fit > * {
808
1027
  height: auto;
809
1028
  }
810
- .nws-layout-balance.nws-layout-adjustY-fit.nws-layout-childSizeY > * {
811
- height: auto;
812
- }
813
- .nws-layout-balance.nws-layout-adjustY-grow > * {
1029
+ .nws-layout-balance.nws-layout-adjustY-grow > *, .nws-layout-balance.nws-layout-adjustY-shrink > * {
814
1030
  height: 100%;
815
1031
  }
816
1032
  .nws-layout-balance.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
817
1033
  min-height: var(--nws-layout-childSizeY);
818
1034
  }
819
- .nws-layout-balance.nws-layout-adjustY-shrink > * {
820
- height: 100%;
821
- }
822
1035
  .nws-layout-balance.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
823
1036
  max-height: var(--nws-layout-childSizeY);
824
1037
  }
@@ -865,13 +1078,11 @@
865
1078
  .nws-layout-layer.nws-layout-childSizeY > * {
866
1079
  height: var(--nws-layout-childSizeY);
867
1080
  }
868
- .nws-layout-layer.nws-layout-adjustX-fit > * {
1081
+ .nws-layout-layer.nws-layout-adjustX-fit > *, .nws-layout-layer.nws-layout-adjustX-grow > * {
869
1082
  justify-self: stretch;
870
1083
  width: auto;
871
1084
  }
872
1085
  .nws-layout-layer.nws-layout-adjustX-grow > * {
873
- justify-self: stretch;
874
- width: auto;
875
1086
  min-width: var(--nws-layout-childSizeX);
876
1087
  }
877
1088
  .nws-layout-layer.nws-layout-adjustX-shrink > * {
@@ -879,13 +1090,11 @@
879
1090
  min-width: 0;
880
1091
  max-width: 100%;
881
1092
  }
882
- .nws-layout-layer.nws-layout-adjustY-fit > * {
1093
+ .nws-layout-layer.nws-layout-adjustY-fit > *, .nws-layout-layer.nws-layout-adjustY-grow > * {
883
1094
  align-self: stretch;
884
1095
  height: auto;
885
1096
  }
886
1097
  .nws-layout-layer.nws-layout-adjustY-grow > * {
887
- align-self: stretch;
888
- height: auto;
889
1098
  min-height: var(--nws-layout-childSizeY);
890
1099
  }
891
1100
  .nws-layout-layer.nws-layout-adjustY-shrink > * {
@@ -900,6 +1109,7 @@
900
1109
  .nws-layout-pin {
901
1110
  --nws-layout-childSizeX: auto;
902
1111
  --nws-layout-childSizeY: auto;
1112
+ --nws-layout-childRatio: auto;
903
1113
  display: block;
904
1114
  position: relative;
905
1115
  }