@niche-works/style-layouts 0.2.0 → 0.3.1

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 +14 -28
  16. package/core/center/center.cjs +1 -1
  17. package/core/center/center.mjs +2 -2
  18. package/core/center/styles.css +55 -42
  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 -10
  29. package/core/matrix/matrix.cjs +39 -41
  30. package/core/matrix/matrix.mjs +40 -42
  31. package/core/matrix/styles.css +100 -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 -24
  39. package/core/styles.css +355 -179
  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;
@@ -82,7 +79,6 @@
82
79
  min-height: 100%;
83
80
  }
84
81
  .nws-layout-stack.nws-layout-direction-x.nws-layout-adjustY-shrink > * {
85
- min-height: 0;
86
82
  max-height: 100%;
87
83
  }
88
84
  .nws-layout-stack.nws-layout-direction-y {
@@ -115,14 +111,14 @@
115
111
  .nws-layout-stack.nws-layout-direction-y.nws-layout-alignY-spaceEvenly {
116
112
  justify-content: space-evenly;
117
113
  }
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
114
  .nws-layout-stack.nws-layout-direction-y > * {
115
+ flex-grow: 0;
116
+ flex-shrink: 0;
125
117
  min-width: 0;
118
+ min-height: 0;
119
+ }
120
+ .nws-layout-stack.nws-layout-direction-y.nws-layout-childSizeX > * {
121
+ width: var(--nws-layout-childSizeX);
126
122
  }
127
123
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustX-fit {
128
124
  align-items: stretch;
@@ -138,13 +134,10 @@
138
134
  min-width: 100%;
139
135
  }
140
136
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustX-shrink > * {
141
- min-width: 0;
142
137
  max-width: 100%;
143
138
  }
144
- .nws-layout-stack.nws-layout-direction-y > * {
145
- flex-grow: 0;
146
- flex-shrink: 0;
147
- min-height: 0;
139
+ .nws-layout-stack.nws-layout-direction-y.nws-layout-childSizeY > * {
140
+ flex-basis: var(--nws-layout-childSizeY);
148
141
  }
149
142
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustY-fit {
150
143
  justify-content: flex-start;
@@ -153,7 +146,6 @@
153
146
  flex-grow: 1;
154
147
  flex-shrink: 1;
155
148
  flex-basis: auto;
156
- min-height: 0;
157
149
  }
158
150
  .nws-layout-stack.nws-layout-direction-y.nws-layout-adjustY-fit.nws-layout-childSizeY > * {
159
151
  flex-basis: var(--nws-layout-childSizeY);
@@ -168,10 +160,20 @@
168
160
  aspect-ratio: var(--nws-layout-childRatio);
169
161
  }
170
162
  .nws-layout-stack.nws-layout-gapX {
171
- column-gap: var(--nws-layout-gapX);
163
+ margin-left: calc(var(--nws-layout-gapX) / -2);
164
+ margin-right: calc(var(--nws-layout-gapX) / -2);
165
+ }
166
+ .nws-layout-stack.nws-layout-gapX > * {
167
+ margin-left: calc(var(--nws-layout-gapX) / 2);
168
+ margin-right: calc(var(--nws-layout-gapX) / 2);
172
169
  }
173
170
  .nws-layout-stack.nws-layout-gapY {
174
- row-gap: var(--nws-layout-gapY);
171
+ margin-top: calc(var(--nws-layout-gapY) / -2);
172
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
173
+ }
174
+ .nws-layout-stack.nws-layout-gapY > * {
175
+ margin-top: calc(var(--nws-layout-gapY) / 2);
176
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
175
177
  }
176
178
 
177
179
  .nws-layout-flow {
@@ -225,16 +227,14 @@
225
227
  .nws-layout-flow.nws-layout-direction-x.nws-layout-alignY-spaceEvenly {
226
228
  align-content: space-evenly;
227
229
  }
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
230
  .nws-layout-flow.nws-layout-direction-x > * {
235
231
  flex-grow: 0;
236
232
  flex-shrink: 0;
237
233
  min-width: 0;
234
+ min-height: 0;
235
+ }
236
+ .nws-layout-flow.nws-layout-direction-x.nws-layout-childSizeX > * {
237
+ flex-basis: var(--nws-layout-childSizeX);
238
238
  }
239
239
  .nws-layout-flow.nws-layout-direction-x.nws-layout-adjustX-fit {
240
240
  justify-content: flex-start;
@@ -243,7 +243,6 @@
243
243
  flex-grow: 1;
244
244
  flex-shrink: 1;
245
245
  flex-basis: auto;
246
- min-width: 0;
247
246
  }
248
247
  .nws-layout-flow.nws-layout-direction-x.nws-layout-adjustX-fit.nws-layout-childSizeX > * {
249
248
  flex-basis: var(--nws-layout-childSizeX);
@@ -254,8 +253,8 @@
254
253
  .nws-layout-flow.nws-layout-direction-x.nws-layout-adjustX-shrink > * {
255
254
  flex-shrink: 1;
256
255
  }
257
- .nws-layout-flow.nws-layout-direction-x > * {
258
- min-height: 0;
256
+ .nws-layout-flow.nws-layout-direction-x.nws-layout-childSizeY > * {
257
+ height: var(--nws-layout-childSizeY);
259
258
  }
260
259
  .nws-layout-flow.nws-layout-direction-y {
261
260
  flex-direction: column;
@@ -299,20 +298,18 @@
299
298
  .nws-layout-flow.nws-layout-direction-y.nws-layout-alignY-spaceEvenly {
300
299
  justify-content: space-evenly;
301
300
  }
301
+ .nws-layout-flow.nws-layout-direction-y > * {
302
+ flex-grow: 0;
303
+ flex-shrink: 0;
304
+ min-width: 0;
305
+ min-height: 0;
306
+ }
302
307
  .nws-layout-flow.nws-layout-direction-y.nws-layout-childSizeX > * {
303
308
  width: var(--nws-layout-childSizeX);
304
309
  }
305
310
  .nws-layout-flow.nws-layout-direction-y.nws-layout-childSizeY > * {
306
311
  flex-basis: var(--nws-layout-childSizeY);
307
312
  }
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
313
  .nws-layout-flow.nws-layout-direction-y.nws-layout-adjustY-fit {
317
314
  justify-content: flex-start;
318
315
  }
@@ -320,7 +317,6 @@
320
317
  flex-grow: 1;
321
318
  flex-shrink: 1;
322
319
  flex-basis: auto;
323
- min-height: 0;
324
320
  }
325
321
  .nws-layout-flow.nws-layout-direction-y.nws-layout-adjustY-fit.nws-layout-childSizeY > * {
326
322
  flex-basis: var(--nws-layout-childSizeY);
@@ -335,10 +331,20 @@
335
331
  aspect-ratio: var(--nws-layout-childRatio);
336
332
  }
337
333
  .nws-layout-flow.nws-layout-gapX {
338
- column-gap: var(--nws-layout-gapX);
334
+ margin-left: calc(var(--nws-layout-gapX) / -2);
335
+ margin-right: calc(var(--nws-layout-gapX) / -2);
336
+ }
337
+ .nws-layout-flow.nws-layout-gapX > * {
338
+ margin-left: calc(var(--nws-layout-gapX) / 2);
339
+ margin-right: calc(var(--nws-layout-gapX) / 2);
339
340
  }
340
341
  .nws-layout-flow.nws-layout-gapY {
341
- row-gap: var(--nws-layout-gapY);
342
+ margin-top: calc(var(--nws-layout-gapY) / -2);
343
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
344
+ }
345
+ .nws-layout-flow.nws-layout-gapY > * {
346
+ margin-top: calc(var(--nws-layout-gapY) / 2);
347
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
342
348
  }
343
349
 
344
350
  .nws-layout-tile {
@@ -347,21 +353,129 @@
347
353
  --nws-layout-childSizeX: auto;
348
354
  --nws-layout-childSizeY: auto;
349
355
  --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
356
  display: grid;
355
357
  }
358
+ .nws-layout-tile > * {
359
+ min-width: 0;
360
+ min-height: 0;
361
+ }
356
362
  .nws-layout-tile.nws-layout-direction-x {
357
363
  grid-auto-flow: row;
358
- grid-template-columns: var(--nws-layout-templateX);
359
- grid-auto-rows: var(--nws-layout-autoTracY);
364
+ grid-template-columns: repeat(auto-fit, minmax(max-content, 100%));
365
+ }
366
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-childSizeX {
367
+ grid-template-columns: repeat(auto-fit, var(--nws-layout-childSizeX));
368
+ }
369
+ .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 {
370
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
371
+ }
372
+ .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 > * {
373
+ width: auto;
374
+ }
375
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-fit.nws-layout-childSizeX {
376
+ grid-template-columns: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeX)), 1fr));
377
+ }
378
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-grow.nws-layout-childSizeX {
379
+ grid-template-columns: repeat(auto-fit, minmax(var(--nws-layout-childSizeX), 1fr));
380
+ }
381
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustX-shrink.nws-layout-childSizeX {
382
+ grid-template-columns: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeX)));
383
+ }
384
+ .nws-layout-tile.nws-layout-direction-x {
385
+ grid-auto-rows: auto;
386
+ }
387
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-fit {
388
+ grid-auto-rows: minmax(0, 100%);
389
+ align-content: stretch;
390
+ }
391
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-fit > * {
392
+ height: auto;
393
+ }
394
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow {
395
+ grid-auto-rows: minmax(auto, 100%);
396
+ }
397
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow > * {
398
+ max-height: 100%;
399
+ height: 100%;
400
+ }
401
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow.nws-layout-childSizeY {
402
+ grid-auto-rows: minmax(var(--nws-layout-childSizeY), 100%);
403
+ }
404
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
405
+ min-height: var(--nws-layout-childSizeY);
406
+ }
407
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink {
408
+ grid-auto-rows: minmax(0, auto);
409
+ }
410
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink > * {
411
+ min-height: 100%;
412
+ height: 100%;
413
+ }
414
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink.nws-layout-childSizeY {
415
+ grid-auto-rows: minmax(0, var(--nws-layout-childSizeY));
416
+ }
417
+ .nws-layout-tile.nws-layout-direction-x.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
418
+ max-height: var(--nws-layout-childSizeY);
360
419
  }
361
420
  .nws-layout-tile.nws-layout-direction-y {
362
421
  grid-auto-flow: column;
363
- grid-auto-columns: var(--nws-layout-autoTracX);
364
- grid-template-rows: var(--nws-layout-templateY);
422
+ grid-auto-columns: auto;
423
+ }
424
+ .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 > * {
425
+ width: auto;
426
+ }
427
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-fit {
428
+ grid-auto-columns: minmax(0, 100%);
429
+ }
430
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-grow {
431
+ grid-auto-columns: minmax(auto, 100%);
432
+ }
433
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-grow.nws-layout-childSizeX {
434
+ grid-auto-columns: minmax(var(--nws-layout-childSizeX), 100%);
435
+ }
436
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-shrink {
437
+ grid-auto-columns: minmax(0, auto);
438
+ }
439
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustX-shrink.nws-layout-childSizeX {
440
+ grid-auto-columns: minmax(0, var(--nws-layout-childSizeX));
441
+ }
442
+ .nws-layout-tile.nws-layout-direction-y {
443
+ grid-template-rows: repeat(auto-fit, minmax(max-content, 100%));
444
+ }
445
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-childSizeY {
446
+ grid-template-rows: repeat(auto-fit, var(--nws-layout-childSizeY));
447
+ }
448
+ .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 {
449
+ grid-template-rows: repeat(auto-fit, minmax(0, 1fr));
450
+ }
451
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit {
452
+ align-content: stretch;
453
+ }
454
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit > * {
455
+ height: auto;
456
+ }
457
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-fit.nws-layout-childSizeY {
458
+ grid-template-rows: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeY)), 1fr));
459
+ }
460
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow > * {
461
+ max-height: 100%;
462
+ height: 100%;
463
+ }
464
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow.nws-layout-childSizeY {
465
+ grid-template-rows: repeat(auto-fit, minmax(var(--nws-layout-childSizeY), 1fr));
466
+ }
467
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
468
+ min-height: var(--nws-layout-childSizeY);
469
+ }
470
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink > * {
471
+ min-height: 100%;
472
+ height: 100%;
473
+ }
474
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink.nws-layout-childSizeY {
475
+ grid-template-rows: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeY)));
476
+ }
477
+ .nws-layout-tile.nws-layout-direction-y.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
478
+ max-height: var(--nws-layout-childSizeY);
365
479
  }
366
480
  .nws-layout-tile.nws-layout-alignX-left {
367
481
  justify-content: flex-start;
@@ -405,41 +519,6 @@
405
519
  .nws-layout-tile.nws-layout-childSizeY > * {
406
520
  height: var(--nws-layout-childSizeY);
407
521
  }
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
522
  .nws-layout-tile.nws-layout-childRatio > * {
444
523
  aspect-ratio: var(--nws-layout-childRatio);
445
524
  }
@@ -453,20 +532,20 @@
453
532
  .nws-layout-matrix {
454
533
  --nws-layout-gapX: 0px;
455
534
  --nws-layout-gapY: 0px;
535
+ --nws-layout-childSizeX: auto;
536
+ --nws-layout-childSizeY: auto;
456
537
  --nws-layout-childRatio: auto;
538
+ --nws-layout-childCountX: auto-fit;
539
+ --nws-layout-childCountY: auto-fit;
457
540
  --nws-layout-templateX: none;
458
541
  --nws-layout-templateY: none;
459
542
  display: grid;
460
543
  }
461
544
  .nws-layout-matrix.nws-layout-direction-x {
462
545
  grid-auto-flow: row;
463
- grid-template-columns: var(--nws-layout-templateX);
464
- grid-template-rows: var(--nws-layout-templateY);
465
546
  }
466
547
  .nws-layout-matrix.nws-layout-direction-y {
467
548
  grid-auto-flow: column;
468
- grid-template-columns: var(--nws-layout-templateX);
469
- grid-template-rows: var(--nws-layout-templateY);
470
549
  }
471
550
  .nws-layout-matrix.nws-layout-alignX-left {
472
551
  justify-content: flex-start;
@@ -504,6 +583,102 @@
504
583
  .nws-layout-matrix.nws-layout-alignY-spaceEvenly {
505
584
  align-content: space-evenly;
506
585
  }
586
+ .nws-layout-matrix {
587
+ grid-template-columns: repeat(auto-fit, auto);
588
+ }
589
+ .nws-layout-matrix.nws-layout-childSizeX {
590
+ grid-template-columns: repeat(auto-fit, var(--nws-layout-childSizeX));
591
+ }
592
+ .nws-layout-matrix.nws-layout-childSizeX.nws-layout-childCountX {
593
+ grid-template-columns: repeat(var(--nws-layout-childCountX), var(--nws-layout-childSizeX));
594
+ }
595
+ .nws-layout-matrix.nws-layout-childCountX {
596
+ grid-template-columns: repeat(var(--nws-layout-childCountX), auto);
597
+ }
598
+ .nws-layout-matrix.nws-layout-templateX {
599
+ grid-template-columns: var(--nws-layout-templateX);
600
+ }
601
+ .nws-layout-matrix.nws-layout-adjustX-fit {
602
+ grid-template-columns: repeat(auto-fit, 1fr);
603
+ }
604
+ .nws-layout-matrix.nws-layout-adjustX-fit.nws-layout-childSizeX {
605
+ grid-template-columns: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeX)), 1fr));
606
+ }
607
+ .nws-layout-matrix.nws-layout-adjustX-fit.nws-layout-childSizeX.nws-layout-childCountX {
608
+ 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));
609
+ }
610
+ .nws-layout-matrix.nws-layout-adjustX-fit.nws-layout-childCountX {
611
+ grid-template-columns: repeat(var(--nws-layout-childCountX), 1fr);
612
+ }
613
+ .nws-layout-matrix.nws-layout-adjustX-grow {
614
+ grid-template-columns: repeat(auto-fit, 1fr);
615
+ }
616
+ .nws-layout-matrix.nws-layout-adjustX-grow.nws-layout-childSizeX {
617
+ grid-template-columns: repeat(auto-fit, minmax(var(--nws-layout-childSizeX), 1fr));
618
+ }
619
+ .nws-layout-matrix.nws-layout-adjustX-grow.nws-layout-childSizeX.nws-layout-childCountX {
620
+ grid-template-columns: repeat(var(--nws-layout-childCountX), minmax(var(--nws-layout-childSizeX), 1fr));
621
+ }
622
+ .nws-layout-matrix.nws-layout-adjustX-grow.nws-layout-childCountX {
623
+ grid-template-columns: repeat(var(--nws-layout-childCountX), 1fr);
624
+ }
625
+ .nws-layout-matrix.nws-layout-adjustX-shrink.nws-layout-childSizeX {
626
+ grid-template-columns: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeX)));
627
+ }
628
+ .nws-layout-matrix.nws-layout-adjustX-shrink.nws-layout-childSizeX.nws-layout-childCountX {
629
+ grid-template-columns: repeat(var(--nws-layout-childCountX), minmax(0, var(--nws-layout-childSizeX)));
630
+ }
631
+ .nws-layout-matrix.nws-layout-adjustX-shrink.nws-layout-childCountX {
632
+ grid-template-columns: repeat(var(--nws-layout-childCountX), auto);
633
+ }
634
+ .nws-layout-matrix {
635
+ grid-template-rows: repeat(auto-fit, auto);
636
+ }
637
+ .nws-layout-matrix.nws-layout-childSizeY {
638
+ grid-template-rows: repeat(auto-fit, var(--nws-layout-childSizeY));
639
+ }
640
+ .nws-layout-matrix.nws-layout-childSizeY.nws-layout-childCountY {
641
+ grid-template-rows: repeat(var(--nws-layout-childCountY), var(--nws-layout-childSizeY));
642
+ }
643
+ .nws-layout-matrix.nws-layout-childCountY {
644
+ grid-template-rows: repeat(var(--nws-layout-childCountY), auto);
645
+ }
646
+ .nws-layout-matrix.nws-layout-templateY {
647
+ grid-template-rows: var(--nws-layout-templateY);
648
+ }
649
+ .nws-layout-matrix.nws-layout-adjustY-fit {
650
+ grid-template-rows: repeat(auto-fit, 1fr);
651
+ }
652
+ .nws-layout-matrix.nws-layout-adjustY-fit.nws-layout-childSizeY {
653
+ grid-template-rows: repeat(auto-fit, minmax(clamp(0px, 100%, var(--nws-layout-childSizeY)), 1fr));
654
+ }
655
+ .nws-layout-matrix.nws-layout-adjustY-fit.nws-layout-childSizeY.nws-layout-childCountY {
656
+ 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));
657
+ }
658
+ .nws-layout-matrix.nws-layout-adjustY-fit.nws-layout-childCountY {
659
+ grid-template-rows: repeat(var(--nws-layout-childCountY), 1fr);
660
+ }
661
+ .nws-layout-matrix.nws-layout-adjustY-grow {
662
+ grid-template-rows: repeat(auto-fit, 1fr);
663
+ }
664
+ .nws-layout-matrix.nws-layout-adjustY-grow.nws-layout-childSizeY {
665
+ grid-template-rows: repeat(auto-fit, minmax(var(--nws-layout-childSizeY), 1fr));
666
+ }
667
+ .nws-layout-matrix.nws-layout-adjustY-grow.nws-layout-childSizeY.nws-layout-childCountY {
668
+ grid-template-rows: repeat(var(--nws-layout-childCountY), minmax(var(--nws-layout-childSizeY), 1fr));
669
+ }
670
+ .nws-layout-matrix.nws-layout-adjustY-grow.nws-layout-childCountY {
671
+ grid-template-rows: repeat(var(--nws-layout-childCountY), 1fr);
672
+ }
673
+ .nws-layout-matrix.nws-layout-adjustY-shrink.nws-layout-childSizeY {
674
+ grid-template-rows: repeat(auto-fit, minmax(0, var(--nws-layout-childSizeY)));
675
+ }
676
+ .nws-layout-matrix.nws-layout-adjustY-shrink.nws-layout-childSizeY.nws-layout-childCountY {
677
+ grid-template-rows: repeat(var(--nws-layout-childCountY), minmax(0, var(--nws-layout-childSizeY)));
678
+ }
679
+ .nws-layout-matrix.nws-layout-adjustY-shrink.nws-layout-childCountY {
680
+ grid-template-rows: repeat(var(--nws-layout-childCountY), auto);
681
+ }
507
682
  .nws-layout-matrix.nws-layout-childRatio > * {
508
683
  aspect-ratio: var(--nws-layout-childRatio);
509
684
  }
@@ -521,9 +696,8 @@
521
696
  --nws-layout-childSizeY: auto;
522
697
  --nws-layout-childRatio: auto;
523
698
  display: flex;
524
- justify-content: safe center;
525
- align-content: safe center;
526
- align-items: flex-start;
699
+ justify-content: flex-start;
700
+ align-content: flex-start;
527
701
  flex-wrap: nowrap;
528
702
  }
529
703
  .nws-layout-center > * {
@@ -536,17 +710,23 @@
536
710
  .nws-layout-center.nws-layout-direction-x {
537
711
  flex-direction: row;
538
712
  }
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
713
  .nws-layout-center.nws-layout-direction-x > * {
544
714
  max-width: none;
715
+ max-height: none;
545
716
  flex-grow: 0;
546
717
  flex-shrink: 0;
718
+ margin-top: auto;
719
+ margin-bottom: auto;
720
+ }
721
+ .nws-layout-center.nws-layout-direction-x > *:first-child {
722
+ margin-left: auto;
723
+ }
724
+ .nws-layout-center.nws-layout-direction-x > *:last-child {
725
+ margin-right: auto;
547
726
  }
548
- .nws-layout-center.nws-layout-direction-x.nws-layout-adjustX-fit {
549
- justify-content: stretch;
727
+ .nws-layout-center.nws-layout-direction-x.nws-layout-childSizeX > * {
728
+ width: var(--nws-layout-childSizeX);
729
+ flex-basis: var(--nws-layout-childSizeX);
550
730
  }
551
731
  .nws-layout-center.nws-layout-direction-x.nws-layout-adjustX-fit > * {
552
732
  width: 100%;
@@ -555,32 +735,22 @@
555
735
  flex-shrink: 1;
556
736
  flex-basis: 0%;
557
737
  }
558
- .nws-layout-center.nws-layout-direction-x.nws-layout-adjustX-grow {
559
- justify-content: stretch;
560
- }
561
738
  .nws-layout-center.nws-layout-direction-x.nws-layout-adjustX-grow > * {
562
739
  width: 100%;
563
740
  min-width: var(--nws-layout-childSizeX);
564
741
  max-width: none;
565
742
  flex-grow: 1;
566
- flex-shrink: 0;
567
743
  flex-basis: var(--nws-layout-childSizeX);
568
744
  }
569
745
  .nws-layout-center.nws-layout-direction-x.nws-layout-adjustX-shrink > * {
570
746
  width: var(--nws-layout-childSizeX);
571
747
  max-width: 100%;
572
- flex-grow: 0;
573
748
  flex-shrink: 1;
574
749
  flex-basis: var(--nws-layout-childSizeX);
575
750
  }
576
751
  .nws-layout-center.nws-layout-direction-x.nws-layout-childSizeY > * {
577
752
  height: var(--nws-layout-childSizeY);
578
753
  }
579
- .nws-layout-center.nws-layout-direction-x > * {
580
- max-height: none;
581
- margin-top: auto;
582
- margin-bottom: auto;
583
- }
584
754
  .nws-layout-center.nws-layout-direction-x.nws-layout-adjustY-fit {
585
755
  align-items: stretch;
586
756
  }
@@ -602,17 +772,40 @@
602
772
  margin-top: auto;
603
773
  margin-bottom: auto;
604
774
  }
775
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX {
776
+ margin-left: calc(var(--nws-layout-gapX) / -2);
777
+ margin-right: calc(var(--nws-layout-gapX) / -2);
778
+ }
779
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX > * {
780
+ margin-left: calc(var(--nws-layout-gapX) / 2);
781
+ margin-right: calc(var(--nws-layout-gapX) / 2);
782
+ }
783
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX > *:first-child {
784
+ margin-left: auto;
785
+ }
786
+ .nws-layout-center.nws-layout-direction-x.nws-layout-gapX > *:last-child {
787
+ margin-right: auto;
788
+ }
605
789
  .nws-layout-center.nws-layout-direction-y {
606
790
  flex-direction: column;
607
791
  }
608
- .nws-layout-center.nws-layout-direction-y.nws-layout-childSizeX > * {
609
- width: var(--nws-layout-childSizeX);
610
- }
611
792
  .nws-layout-center.nws-layout-direction-y > * {
612
793
  max-width: none;
794
+ max-height: none;
795
+ flex-grow: 0;
796
+ flex-shrink: 0;
613
797
  margin-left: auto;
614
798
  margin-right: auto;
615
799
  }
800
+ .nws-layout-center.nws-layout-direction-y > *:first-child {
801
+ margin-top: auto;
802
+ }
803
+ .nws-layout-center.nws-layout-direction-y > *:last-child {
804
+ margin-bottom: auto;
805
+ }
806
+ .nws-layout-center.nws-layout-direction-y.nws-layout-childSizeX > * {
807
+ width: var(--nws-layout-childSizeX);
808
+ }
616
809
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustX-fit {
617
810
  align-items: stretch;
618
811
  }
@@ -625,8 +818,8 @@
625
818
  }
626
819
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustX-grow > * {
627
820
  width: 100%;
628
- max-width: none;
629
821
  min-width: var(--nws-layout-childSizeX);
822
+ max-width: none;
630
823
  }
631
824
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustX-shrink > * {
632
825
  width: var(--nws-layout-childSizeX);
@@ -638,14 +831,6 @@
638
831
  height: var(--nws-layout-childSizeY);
639
832
  flex-basis: var(--nws-layout-childSizeY);
640
833
  }
641
- .nws-layout-center.nws-layout-direction-y > * {
642
- max-height: none;
643
- flex-grow: 0;
644
- flex-shrink: 0;
645
- }
646
- .nws-layout-center.nws-layout-direction-y.nws-layout-adjustY-fit {
647
- justify-content: stretch;
648
- }
649
834
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustY-fit > * {
650
835
  height: 100%;
651
836
  max-height: none;
@@ -653,32 +838,35 @@
653
838
  flex-shrink: 1;
654
839
  flex-basis: 0%;
655
840
  }
656
- .nws-layout-center.nws-layout-direction-y.nws-layout-adjustY-grow {
657
- justify-content: stretch;
658
- }
659
841
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustY-grow > * {
660
842
  height: 100%;
661
843
  min-height: var(--nws-layout-childSizeY);
662
844
  max-height: none;
663
845
  flex-grow: 1;
664
- flex-shrink: 0;
665
846
  flex-basis: var(--nws-layout-childSizeY);
666
847
  }
667
848
  .nws-layout-center.nws-layout-direction-y.nws-layout-adjustY-shrink > * {
668
849
  height: var(--nws-layout-childSizeY);
669
850
  max-height: 100%;
670
- flex-grow: 0;
671
851
  flex-shrink: 1;
672
852
  flex-basis: var(--nws-layout-childSizeY);
673
853
  }
674
- .nws-layout-center.nws-layout-childRatio > * {
675
- aspect-ratio: var(--nws-layout-childRatio);
854
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY {
855
+ margin-top: calc(var(--nws-layout-gapY) / -2);
856
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
676
857
  }
677
- .nws-layout-center.nws-layout-gapX {
678
- column-gap: var(--nws-layout-gapX);
858
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY > * {
859
+ margin-top: calc(var(--nws-layout-gapY) / 2);
860
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
679
861
  }
680
- .nws-layout-center.nws-layout-gapY {
681
- row-gap: var(--nws-layout-gapY);
862
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY > *:first-child {
863
+ margin-top: auto;
864
+ }
865
+ .nws-layout-center.nws-layout-direction-y.nws-layout-gapY > *:last-child {
866
+ margin-bottom: auto;
867
+ }
868
+ .nws-layout-center.nws-layout-childRatio > * {
869
+ aspect-ratio: var(--nws-layout-childRatio);
682
870
  }
683
871
 
684
872
  .nws-layout-pack {
@@ -689,13 +877,15 @@
689
877
  justify-content: flex-start;
690
878
  align-items: stretch;
691
879
  }
880
+ .nws-layout-pack > * {
881
+ flex-basis: 0;
882
+ flex-grow: 1;
883
+ flex-shrink: 1;
884
+ }
692
885
  .nws-layout-pack.nws-layout-direction-x {
693
886
  flex-direction: row;
694
887
  }
695
888
  .nws-layout-pack.nws-layout-direction-x > * {
696
- flex-basis: 0;
697
- flex-grow: 1;
698
- flex-shrink: 1;
699
889
  min-width: 0;
700
890
  min-height: 100%;
701
891
  max-height: 100%;
@@ -704,18 +894,25 @@
704
894
  flex-direction: column;
705
895
  }
706
896
  .nws-layout-pack.nws-layout-direction-y > * {
707
- flex-basis: 0;
708
- flex-grow: 1;
709
- flex-shrink: 1;
710
897
  min-height: 0;
711
898
  min-width: 100%;
712
899
  max-width: 100%;
713
900
  }
714
901
  .nws-layout-pack.nws-layout-gapX {
715
- column-gap: var(--nws-layout-gapX);
902
+ margin-left: calc(var(--nws-layout-gapX) / -2);
903
+ margin-right: calc(var(--nws-layout-gapX) / -2);
904
+ }
905
+ .nws-layout-pack.nws-layout-gapX > * {
906
+ margin-left: calc(var(--nws-layout-gapX) / 2);
907
+ margin-right: calc(var(--nws-layout-gapX) / 2);
716
908
  }
717
909
  .nws-layout-pack.nws-layout-gapY {
718
- row-gap: var(--nws-layout-gapY);
910
+ margin-top: calc(var(--nws-layout-gapY) / -2);
911
+ margin-bottom: calc(var(--nws-layout-gapY) / -2);
912
+ }
913
+ .nws-layout-pack.nws-layout-gapY > * {
914
+ margin-top: calc(var(--nws-layout-gapY) / 2);
915
+ margin-bottom: calc(var(--nws-layout-gapY) / 2);
719
916
  }
720
917
 
721
918
  .nws-layout-balance {
@@ -742,13 +939,13 @@
742
939
  justify-items: flex-end;
743
940
  }
744
941
  .nws-layout-balance.nws-layout-alignX-spaceBetween {
745
- justify-items: space-between;
942
+ justify-content: space-between;
746
943
  }
747
944
  .nws-layout-balance.nws-layout-alignX-spaceAround {
748
- justify-items: space-around;
945
+ justify-content: space-around;
749
946
  }
750
947
  .nws-layout-balance.nws-layout-alignX-spaceEvenly {
751
- justify-items: space-evenly;
948
+ justify-content: space-evenly;
752
949
  }
753
950
  .nws-layout-balance.nws-layout-alignY-top {
754
951
  align-items: flex-start;
@@ -760,22 +957,20 @@
760
957
  align-items: flex-end;
761
958
  }
762
959
  .nws-layout-balance.nws-layout-alignY-spaceBetween {
763
- align-items: space-between;
960
+ align-content: space-between;
764
961
  }
765
962
  .nws-layout-balance.nws-layout-alignY-spaceAround {
766
- align-items: space-around;
963
+ align-content: space-around;
767
964
  }
768
965
  .nws-layout-balance.nws-layout-alignY-spaceEvenly {
769
- align-items: space-evenly;
770
- }
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);
966
+ align-content: space-evenly;
776
967
  }
777
968
  .nws-layout-balance > * {
778
969
  min-width: 0;
970
+ min-height: 0;
971
+ }
972
+ .nws-layout-balance.nws-layout-childSizeX > * {
973
+ width: var(--nws-layout-childSizeX);
779
974
  }
780
975
  .nws-layout-balance.nws-layout-adjustX-fit {
781
976
  justify-items: stretch;
@@ -783,23 +978,17 @@
783
978
  .nws-layout-balance.nws-layout-adjustX-fit > * {
784
979
  width: auto;
785
980
  }
786
- .nws-layout-balance.nws-layout-adjustX-fit.nws-layout-childSizeX > * {
787
- width: auto;
788
- }
789
- .nws-layout-balance.nws-layout-adjustX-grow > * {
981
+ .nws-layout-balance.nws-layout-adjustX-grow > *, .nws-layout-balance.nws-layout-adjustX-shrink > * {
790
982
  width: 100%;
791
983
  }
792
984
  .nws-layout-balance.nws-layout-adjustX-grow.nws-layout-childSizeX > * {
793
985
  min-width: var(--nws-layout-childSizeX);
794
986
  }
795
- .nws-layout-balance.nws-layout-adjustX-shrink > * {
796
- width: 100%;
797
- }
798
987
  .nws-layout-balance.nws-layout-adjustX-shrink.nws-layout-childSizeX > * {
799
988
  max-width: var(--nws-layout-childSizeX);
800
989
  }
801
- .nws-layout-balance > * {
802
- min-height: 0;
990
+ .nws-layout-balance.nws-layout-childSizeY > * {
991
+ height: var(--nws-layout-childSizeY);
803
992
  }
804
993
  .nws-layout-balance.nws-layout-adjustY-fit {
805
994
  align-items: stretch;
@@ -807,18 +996,12 @@
807
996
  .nws-layout-balance.nws-layout-adjustY-fit > * {
808
997
  height: auto;
809
998
  }
810
- .nws-layout-balance.nws-layout-adjustY-fit.nws-layout-childSizeY > * {
811
- height: auto;
812
- }
813
- .nws-layout-balance.nws-layout-adjustY-grow > * {
999
+ .nws-layout-balance.nws-layout-adjustY-grow > *, .nws-layout-balance.nws-layout-adjustY-shrink > * {
814
1000
  height: 100%;
815
1001
  }
816
1002
  .nws-layout-balance.nws-layout-adjustY-grow.nws-layout-childSizeY > * {
817
1003
  min-height: var(--nws-layout-childSizeY);
818
1004
  }
819
- .nws-layout-balance.nws-layout-adjustY-shrink > * {
820
- height: 100%;
821
- }
822
1005
  .nws-layout-balance.nws-layout-adjustY-shrink.nws-layout-childSizeY > * {
823
1006
  max-height: var(--nws-layout-childSizeY);
824
1007
  }
@@ -865,33 +1048,25 @@
865
1048
  .nws-layout-layer.nws-layout-childSizeY > * {
866
1049
  height: var(--nws-layout-childSizeY);
867
1050
  }
868
- .nws-layout-layer.nws-layout-adjustX-fit > * {
1051
+ .nws-layout-layer.nws-layout-adjustX-fit > *, .nws-layout-layer.nws-layout-adjustX-grow > * {
869
1052
  justify-self: stretch;
870
1053
  width: auto;
871
1054
  }
872
1055
  .nws-layout-layer.nws-layout-adjustX-grow > * {
873
- justify-self: stretch;
874
- width: auto;
875
1056
  min-width: var(--nws-layout-childSizeX);
876
1057
  }
877
1058
  .nws-layout-layer.nws-layout-adjustX-shrink > * {
878
1059
  width: clamp(0px, 100%, var(--nws-layout-childSizeX));
879
- min-width: 0;
880
- max-width: 100%;
881
1060
  }
882
- .nws-layout-layer.nws-layout-adjustY-fit > * {
1061
+ .nws-layout-layer.nws-layout-adjustY-fit > *, .nws-layout-layer.nws-layout-adjustY-grow > * {
883
1062
  align-self: stretch;
884
1063
  height: auto;
885
1064
  }
886
1065
  .nws-layout-layer.nws-layout-adjustY-grow > * {
887
- align-self: stretch;
888
- height: auto;
889
1066
  min-height: var(--nws-layout-childSizeY);
890
1067
  }
891
1068
  .nws-layout-layer.nws-layout-adjustY-shrink > * {
892
1069
  height: clamp(0px, 100%, var(--nws-layout-childSizeY));
893
- min-height: 0;
894
- max-height: 100%;
895
1070
  }
896
1071
  .nws-layout-layer.nws-layout-childRatio > * {
897
1072
  aspect-ratio: var(--nws-layout-childRatio);
@@ -900,6 +1075,7 @@
900
1075
  .nws-layout-pin {
901
1076
  --nws-layout-childSizeX: auto;
902
1077
  --nws-layout-childSizeY: auto;
1078
+ --nws-layout-childRatio: auto;
903
1079
  display: block;
904
1080
  position: relative;
905
1081
  }