@mlola-ui/tokens 1.0.10 → 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.
- package/generated/recipes.css +109 -2
- package/package.json +1 -1
package/generated/recipes.css
CHANGED
|
@@ -145,8 +145,39 @@
|
|
|
145
145
|
gap: var(--ml-space-2);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
/* A list of benefits, each after a check. Pricing tiers and feature rows share it. */
|
|
149
|
+
.ml-check-list {
|
|
150
|
+
margin: 0;
|
|
151
|
+
padding: 0;
|
|
152
|
+
list-style: none;
|
|
153
|
+
display: grid;
|
|
154
|
+
gap: var(--ml-space-2);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.ml-check-list li {
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: flex-start;
|
|
160
|
+
gap: var(--ml-space-2);
|
|
161
|
+
font-size: var(--ml-type-base);
|
|
162
|
+
color: var(--ml-text-muted);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.ml-check-list li > svg {
|
|
166
|
+
flex: none;
|
|
167
|
+
margin-top: 0.2em;
|
|
168
|
+
color: var(--ml-success-text);
|
|
169
|
+
}
|
|
170
|
+
|
|
148
171
|
.ml-section {
|
|
149
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;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* A section a link jumps to clears the sticky navigation bar. */
|
|
179
|
+
.ml-section[id] {
|
|
180
|
+
scroll-margin-block-start: calc(var(--ml-control-md) + var(--ml-space-6));
|
|
150
181
|
}
|
|
151
182
|
|
|
152
183
|
.ml-section-shell {
|
|
@@ -551,6 +582,12 @@
|
|
|
551
582
|
color: var(--ml-text);
|
|
552
583
|
}
|
|
553
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
|
+
|
|
554
591
|
/* components/accordion */
|
|
555
592
|
.ml-accordion {
|
|
556
593
|
width: 100%;
|
|
@@ -1409,15 +1446,41 @@
|
|
|
1409
1446
|
|
|
1410
1447
|
.ml-breadcrumb-item {
|
|
1411
1448
|
display: inline-flex;
|
|
1449
|
+
min-width: 0;
|
|
1412
1450
|
align-items: center;
|
|
1413
1451
|
gap: var(--ml-space-1-5);
|
|
1414
1452
|
}
|
|
1415
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
|
+
|
|
1416
1466
|
.ml-breadcrumb-link {
|
|
1417
1467
|
color: var(--ml-text-muted);
|
|
1418
1468
|
text-decoration: none;
|
|
1419
1469
|
}
|
|
1420
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
|
+
|
|
1421
1484
|
.ml-breadcrumb-link:hover {
|
|
1422
1485
|
color: var(--ml-text);
|
|
1423
1486
|
}
|
|
@@ -1933,7 +1996,24 @@
|
|
|
1933
1996
|
height: 100%;
|
|
1934
1997
|
}
|
|
1935
1998
|
|
|
1936
|
-
/*
|
|
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. */
|
|
1937
2017
|
.ml-carousel-arrow {
|
|
1938
2018
|
position: absolute;
|
|
1939
2019
|
top: 50%;
|
|
@@ -2072,6 +2152,7 @@
|
|
|
2072
2152
|
grid-template-columns: auto 1fr;
|
|
2073
2153
|
gap: var(--ml-space-1-5) var(--ml-space-3);
|
|
2074
2154
|
align-items: start;
|
|
2155
|
+
align-content: start;
|
|
2075
2156
|
}
|
|
2076
2157
|
|
|
2077
2158
|
.ml-checkbox-control {
|
|
@@ -3061,6 +3142,7 @@
|
|
|
3061
3142
|
.ml-dropzone-root {
|
|
3062
3143
|
display: grid;
|
|
3063
3144
|
gap: var(--ml-space-2);
|
|
3145
|
+
align-content: start;
|
|
3064
3146
|
}
|
|
3065
3147
|
|
|
3066
3148
|
.ml-dropzone {
|
|
@@ -3299,6 +3381,8 @@
|
|
|
3299
3381
|
grid-template-columns: minmax(0, 1fr);
|
|
3300
3382
|
gap: var(--ml-space-1-5);
|
|
3301
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;
|
|
3302
3386
|
}
|
|
3303
3387
|
|
|
3304
3388
|
.ml-input,
|
|
@@ -3449,6 +3533,13 @@
|
|
|
3449
3533
|
pointer-events: none;
|
|
3450
3534
|
}
|
|
3451
3535
|
|
|
3536
|
+
/* A text affix ("https://", a domain, a unit) reads at the size of what is typed beside it. */
|
|
3537
|
+
.ml-input-leading,
|
|
3538
|
+
.ml-input-trailing {
|
|
3539
|
+
font-size: var(--ml-type-base);
|
|
3540
|
+
line-height: var(--ml-leading-snug);
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3452
3543
|
/* components/kbd */
|
|
3453
3544
|
.ml-kbd {
|
|
3454
3545
|
display: inline-grid;
|
|
@@ -3637,9 +3728,12 @@
|
|
|
3637
3728
|
border-inline-start: var(--ml-border-width) solid var(--ml-border-subtle);
|
|
3638
3729
|
}
|
|
3639
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. */
|
|
3640
3733
|
.ml-number-input-step {
|
|
3641
3734
|
display: inline-grid;
|
|
3642
|
-
width: var(--ml-control-md);
|
|
3735
|
+
min-width: var(--ml-control-md);
|
|
3736
|
+
aspect-ratio: 1;
|
|
3643
3737
|
place-items: center;
|
|
3644
3738
|
padding: 0;
|
|
3645
3739
|
border: 0;
|
|
@@ -3937,6 +4031,7 @@
|
|
|
3937
4031
|
display: grid;
|
|
3938
4032
|
gap: var(--ml-space-2);
|
|
3939
4033
|
width: 100%;
|
|
4034
|
+
align-content: start;
|
|
3940
4035
|
}
|
|
3941
4036
|
|
|
3942
4037
|
.ml-progress-root[data-tone="info"] {
|
|
@@ -4284,6 +4379,7 @@
|
|
|
4284
4379
|
display: grid;
|
|
4285
4380
|
gap: var(--ml-space-3);
|
|
4286
4381
|
width: 100%;
|
|
4382
|
+
align-content: start;
|
|
4287
4383
|
}
|
|
4288
4384
|
|
|
4289
4385
|
.ml-radio-group[data-orientation="horizontal"] .ml-radio-group-items {
|
|
@@ -4305,6 +4401,7 @@
|
|
|
4305
4401
|
.ml-radio-group-items {
|
|
4306
4402
|
display: grid;
|
|
4307
4403
|
gap: var(--ml-space-2-5);
|
|
4404
|
+
align-content: start;
|
|
4308
4405
|
}
|
|
4309
4406
|
|
|
4310
4407
|
/* components/rating */
|
|
@@ -4486,6 +4583,8 @@
|
|
|
4486
4583
|
position: relative;
|
|
4487
4584
|
display: grid;
|
|
4488
4585
|
grid-template-columns: minmax(0, 1fr);
|
|
4586
|
+
/* In a form row taller than itself, the trigger keeps a field's height instead of stretching. */
|
|
4587
|
+
align-content: start;
|
|
4489
4588
|
gap: var(--ml-space-1-5);
|
|
4490
4589
|
width: 100%;
|
|
4491
4590
|
min-width: 0;
|
|
@@ -4510,6 +4609,10 @@
|
|
|
4510
4609
|
border: var(--ml-border-width) solid var(--ml-border);
|
|
4511
4610
|
border-radius: var(--ml-radius-md);
|
|
4512
4611
|
box-shadow: var(--ml-shadow-xs);
|
|
4612
|
+
/* The same type as a text field, so a select and an input sit level in a row. */
|
|
4613
|
+
font-family: var(--ml-font-sans);
|
|
4614
|
+
font-size: var(--ml-type-base);
|
|
4615
|
+
line-height: var(--ml-leading-snug);
|
|
4513
4616
|
cursor: pointer;
|
|
4514
4617
|
text-align: start;
|
|
4515
4618
|
transition: border-color var(--ml-duration-fast),box-shadow var(--ml-duration-fast);
|
|
@@ -4991,6 +5094,7 @@
|
|
|
4991
5094
|
display: grid;
|
|
4992
5095
|
gap: var(--ml-space-2-5);
|
|
4993
5096
|
width: 100%;
|
|
5097
|
+
align-content: start;
|
|
4994
5098
|
}
|
|
4995
5099
|
|
|
4996
5100
|
.ml-slider-header {
|
|
@@ -5339,6 +5443,9 @@ button.ml-stepper-target:focus-visible {
|
|
|
5339
5443
|
|
|
5340
5444
|
/* components/table */
|
|
5341
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;
|
|
5342
5449
|
width: 100%;
|
|
5343
5450
|
overflow-x: auto;
|
|
5344
5451
|
border: var(--ml-border-width) solid var(--ml-border-subtle);
|