@mlola-ui/tokens 1.0.11 → 1.0.12

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.
@@ -170,6 +170,9 @@
170
170
 
171
171
  .ml-section {
172
172
  padding-block: clamp(3.5rem,8vw,6.5rem);
173
+ /* A section is a grid or flex item in a page shell; without this, a wide
174
+ table inside it widens the whole page instead of scrolling in place. */
175
+ min-width: 0;
173
176
  }
174
177
 
175
178
  /* A section a link jumps to clears the sticky navigation bar. */
@@ -579,6 +582,12 @@
579
582
  color: var(--ml-text);
580
583
  }
581
584
 
585
+ /* The navigation, main and footer are grid items; they may be narrower than
586
+ their widest content (a table that scrolls), so the page never does. */
587
+ .ml-page-shell > * {
588
+ min-width: 0;
589
+ }
590
+
582
591
  /* components/accordion */
583
592
  .ml-accordion {
584
593
  width: 100%;
@@ -1437,15 +1446,41 @@
1437
1446
 
1438
1447
  .ml-breadcrumb-item {
1439
1448
  display: inline-flex;
1449
+ min-width: 0;
1440
1450
  align-items: center;
1441
1451
  gap: var(--ml-space-1-5);
1442
1452
  }
1443
1453
 
1454
+ /* Links, in-app buttons and the current page share one shape; a long title shortens instead of breaking the bar. */
1455
+ .ml-breadcrumb-link,
1456
+ .ml-breadcrumb-page {
1457
+ display: inline-flex;
1458
+ align-items: center;
1459
+ gap: var(--ml-space-1);
1460
+ min-width: 0;
1461
+ overflow: hidden;
1462
+ text-overflow: ellipsis;
1463
+ white-space: nowrap;
1464
+ }
1465
+
1444
1466
  .ml-breadcrumb-link {
1445
1467
  color: var(--ml-text-muted);
1446
1468
  text-decoration: none;
1447
1469
  }
1448
1470
 
1471
+ button.ml-breadcrumb-link {
1472
+ padding: 0;
1473
+ border: 0;
1474
+ border-radius: var(--ml-radius-xs);
1475
+ background: none;
1476
+ font: inherit;
1477
+ cursor: pointer;
1478
+ }
1479
+
1480
+ .ml-breadcrumb-icon {
1481
+ flex: none;
1482
+ }
1483
+
1449
1484
  .ml-breadcrumb-link:hover {
1450
1485
  color: var(--ml-text);
1451
1486
  }
@@ -1961,7 +1996,24 @@
1961
1996
  height: 100%;
1962
1997
  }
1963
1998
 
1964
- /* Arrows float over the edges and come forward when the reader is near. */
1999
+ /* With a pointer that hovers, the arrows sit in a gutter beside the slides,
2000
+ never over them. On touch the reader swipes, the arrows stay hidden until
2001
+ focused, and the slides keep the full width. */
2002
+ @media (hover: hover) and (pointer: fine) {
2003
+ .ml-carousel[data-arrows] .ml-carousel-viewport {
2004
+ padding-inline: calc(var(--ml-control-md) + var(--ml-space-3));
2005
+ }
2006
+
2007
+ .ml-carousel[data-arrows] .ml-carousel-arrow[data-side="previous"] {
2008
+ left: 0;
2009
+ }
2010
+
2011
+ .ml-carousel[data-arrows] .ml-carousel-arrow[data-side="next"] {
2012
+ right: 0;
2013
+ }
2014
+ }
2015
+
2016
+ /* The arrows come forward when the reader is near. */
1965
2017
  .ml-carousel-arrow {
1966
2018
  position: absolute;
1967
2019
  top: 50%;
@@ -2100,6 +2152,7 @@
2100
2152
  grid-template-columns: auto 1fr;
2101
2153
  gap: var(--ml-space-1-5) var(--ml-space-3);
2102
2154
  align-items: start;
2155
+ align-content: start;
2103
2156
  }
2104
2157
 
2105
2158
  .ml-checkbox-control {
@@ -3089,6 +3142,7 @@
3089
3142
  .ml-dropzone-root {
3090
3143
  display: grid;
3091
3144
  gap: var(--ml-space-2);
3145
+ align-content: start;
3092
3146
  }
3093
3147
 
3094
3148
  .ml-dropzone {
@@ -3327,6 +3381,8 @@
3327
3381
  grid-template-columns: minmax(0, 1fr);
3328
3382
  gap: var(--ml-space-1-5);
3329
3383
  width: 100%;
3384
+ /* In a form row taller than itself, a field keeps its own height instead of stretching its label and control apart. */
3385
+ align-content: start;
3330
3386
  }
3331
3387
 
3332
3388
  .ml-input,
@@ -3672,9 +3728,12 @@
3672
3728
  border-inline-start: var(--ml-border-width) solid var(--ml-border-subtle);
3673
3729
  }
3674
3730
 
3731
+ /* Square at any height: where touch sizing makes the field taller, the steps
3732
+ grow with it instead of stretching into tall slivers. */
3675
3733
  .ml-number-input-step {
3676
3734
  display: inline-grid;
3677
- width: var(--ml-control-md);
3735
+ min-width: var(--ml-control-md);
3736
+ aspect-ratio: 1;
3678
3737
  place-items: center;
3679
3738
  padding: 0;
3680
3739
  border: 0;
@@ -3972,6 +4031,7 @@
3972
4031
  display: grid;
3973
4032
  gap: var(--ml-space-2);
3974
4033
  width: 100%;
4034
+ align-content: start;
3975
4035
  }
3976
4036
 
3977
4037
  .ml-progress-root[data-tone="info"] {
@@ -4319,6 +4379,7 @@
4319
4379
  display: grid;
4320
4380
  gap: var(--ml-space-3);
4321
4381
  width: 100%;
4382
+ align-content: start;
4322
4383
  }
4323
4384
 
4324
4385
  .ml-radio-group[data-orientation="horizontal"] .ml-radio-group-items {
@@ -4340,6 +4401,7 @@
4340
4401
  .ml-radio-group-items {
4341
4402
  display: grid;
4342
4403
  gap: var(--ml-space-2-5);
4404
+ align-content: start;
4343
4405
  }
4344
4406
 
4345
4407
  /* components/rating */
@@ -5032,6 +5094,7 @@
5032
5094
  display: grid;
5033
5095
  gap: var(--ml-space-2-5);
5034
5096
  width: 100%;
5097
+ align-content: start;
5035
5098
  }
5036
5099
 
5037
5100
  .ml-slider-header {
@@ -5380,6 +5443,9 @@ button.ml-stepper-target:focus-visible {
5380
5443
 
5381
5444
  /* components/table */
5382
5445
  .ml-table-container {
5446
+ /* The containing block for anything positioned inside, such as visually
5447
+ hidden cell text, so it scrolls with the table instead of widening the page. */
5448
+ position: relative;
5383
5449
  width: 100%;
5384
5450
  overflow-x: auto;
5385
5451
  border: var(--ml-border-width) solid var(--ml-border-subtle);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlola-ui/tokens",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "Stable CSS entry for the framework-free Mlola UI design system",
5
5
  "main": "tokens.css",
6
6
  "sideEffects": [