@troennes/minium 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.
package/README.md CHANGED
@@ -35,13 +35,13 @@ The library takes on more CSS when it lets users write meaningfully less HTML. F
35
35
  Load the minified stylesheet from jsDelivr without installing anything:
36
36
 
37
37
  ```html
38
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@troennes/minium@0.2.0/dist/minium.min.css">
38
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@troennes/minium@0.3.0/dist/minium.min.css">
39
39
  ```
40
40
 
41
41
  To add a color theme, load its stylesheet after the core stylesheet:
42
42
 
43
43
  ```html
44
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@troennes/minium@0.2.0/dist/themes/blue.css">
44
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@troennes/minium@0.3.0/dist/themes/blue.css">
45
45
  ```
46
46
 
47
47
  ### Install with npm
@@ -101,7 +101,7 @@ Keep the generated `fonts/` directory beside the stylesheet so its relative font
101
101
  <meta charset="utf-8">
102
102
  <meta name="viewport" content="width=device-width, initial-scale=1">
103
103
  <title>Hello, world</title>
104
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@troennes/minium@0.2.0/dist/minium.min.css">
104
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@troennes/minium@0.3.0/dist/minium.min.css">
105
105
  </head>
106
106
  <body>
107
107
  <main class="container flow">
@@ -151,6 +151,8 @@
151
151
  div.code-toolbar>.toolbar>.toolbar-item>a,
152
152
  div.code-toolbar>.toolbar>.toolbar-item>button,
153
153
  div.code-toolbar>.toolbar>.toolbar-item>span {
154
+ --border-color: var(--color-border-weak);
155
+
154
156
  display: inline-flex;
155
157
  align-items: center;
156
158
  gap: var(--space-3xs);
@@ -160,8 +162,8 @@
160
162
  background-color: var(--color-fill);
161
163
  color: var(--color-text);
162
164
  padding: var(--space-3xs) var(--space-2xs);
163
- border: var(--border-width) solid var(--color-border-weak);
164
- box-shadow: var(--shadow-small);
165
+ border: var(--border-width) solid var(--border-color);
166
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
165
167
  border-radius: var(--border-radius-s);
166
168
  }
167
169
 
package/dist/minium.css CHANGED
@@ -98,7 +98,7 @@
98
98
  --line-height: 1.5;
99
99
  --font-weight: 400;
100
100
  --font-weight-bold: 700;
101
- --shadow-small: 0 1px 3px -1px rgb(0 0 0 / 10%), 0 1px 2px 0 rgb(0 0 0 / 10%);
101
+ --shadow-small: black 8%;
102
102
  --shadow-medium: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%);
103
103
  --shadow-large: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
104
104
  --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 5%);
@@ -464,7 +464,17 @@
464
464
 
465
465
  *,
466
466
  *::before,
467
- *::after {
467
+ *::after,
468
+ *::file-selector-button {
469
+ box-sizing: border-box;
470
+ }
471
+
472
+
473
+ *::-webkit-slider-thumb {
474
+ box-sizing: border-box;
475
+ }
476
+
477
+ *::-moz-range-thumb {
468
478
  box-sizing: border-box;
469
479
  }
470
480
 
@@ -1029,12 +1039,13 @@
1029
1039
  :where(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"] ) {
1030
1040
  --button-surface: var(--color-primary);
1031
1041
  --button-text: var(--color-primary-inverse);
1042
+ --border-color: var(--button-surface);
1032
1043
 
1033
1044
  background-color: var(--button-surface);
1034
1045
  color: var(--button-text);
1035
-
1036
1046
  padding: var(--space-2xs) var(--space-xs);
1037
- border: var(--border-width) solid var(--button-surface);
1047
+ border: var(--border-width) solid var(--border-color);
1048
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
1038
1049
  border-radius: var(--border-radius-m);
1039
1050
  font-weight: var(--font-weight-bold);
1040
1051
  line-height: var(--line-height);
@@ -1043,13 +1054,15 @@
1043
1054
 
1044
1055
 
1045
1056
  &:is([aria-current], :hover) {
1057
+ --border-color: oklch(from var(--button-surface) calc(l * var(--hover-multiplier)) c h);
1058
+
1046
1059
  background-color: oklch(from var(--button-surface) calc(l * var(--hover-multiplier)) c h);
1047
- border-color: oklch(from var(--button-surface) calc(l * var(--hover-multiplier)) c h);
1048
1060
  }
1049
1061
 
1050
1062
  &:active {
1063
+ --border-color: oklch(from var(--button-surface) calc(l * var(--hover-multiplier) * var(--hover-multiplier)) c h);
1064
+
1051
1065
  background-color: oklch(from var(--button-surface) calc(l * var(--hover-multiplier) * var(--hover-multiplier)) c h);
1052
- border-color: oklch(from var(--button-surface) calc(l * var(--hover-multiplier) * var(--hover-multiplier)) c h);
1053
1066
  }
1054
1067
 
1055
1068
 
@@ -1102,9 +1115,7 @@
1102
1115
  &.neutral {
1103
1116
  --button-surface: transparent;
1104
1117
  --button-text: var(--color-text);
1105
-
1106
- border: var(--border-width) solid var(--color-border-strong);
1107
- box-shadow: var(--shadow-small);
1118
+ --border-color: var(--color-border-strong);
1108
1119
 
1109
1120
  &:hover {
1110
1121
  --button-surface: var(--color-fill);
@@ -1121,18 +1132,18 @@
1121
1132
  input[type="reset"] {
1122
1133
  --button-surface: var(--color-primary-fill-active);
1123
1134
  --button-text: var(--color-primary-text);
1135
+ --border-color: transparent;
1124
1136
 
1125
1137
 
1126
1138
  --button-overlay-alpha: calc(1 - var(--hover-multiplier));
1127
1139
  --button-overlay: light-dark(oklch(from var(--button-text) l c h / calc(1.5 * var(--button-overlay-alpha))), rgb(0 0 0 / calc(2 * var(--button-overlay-alpha))));
1128
1140
 
1129
- border-color: transparent;
1130
-
1131
1141
 
1132
1142
  &:is([aria-current], :hover, :active) {
1143
+ --border-color: transparent;
1144
+
1133
1145
  background-color: var(--button-surface);
1134
1146
  background-image: linear-gradient(var(--button-overlay), var(--button-overlay));
1135
- border-color: transparent;
1136
1147
  }
1137
1148
 
1138
1149
  &:active {
@@ -1176,7 +1187,6 @@
1176
1187
  --button-text: var(--link-color);
1177
1188
 
1178
1189
  border-color: transparent;
1179
- box-shadow: none;
1180
1190
  text-decoration: underline;
1181
1191
  text-decoration-thickness: var(--text-decoration-thickness);
1182
1192
  text-decoration-color: var(--link-color-decoration);
@@ -1238,7 +1248,7 @@
1238
1248
  display: inline-flex;
1239
1249
  align-items: center;
1240
1250
  justify-content: center;
1241
-
1251
+ border-bottom-color: var(--border-color);
1242
1252
 
1243
1253
  &:is(:hover, :focus-visible) {
1244
1254
  --button-surface: var(--color-fill);
@@ -1267,8 +1277,10 @@
1267
1277
  display: block;
1268
1278
 
1269
1279
  &:not(:has(> summary[role="button"]), .border-none) {
1270
- border: var(--border-width) solid var(--color-border-strong);
1271
- box-shadow: var(--shadow-small);
1280
+ --border-color: var(--color-border-strong);
1281
+
1282
+ border: var(--border-width) solid var(--border-color);
1283
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
1272
1284
  }
1273
1285
 
1274
1286
  &[open] summary::after{
@@ -1502,6 +1514,22 @@
1502
1514
  object-fit: cover;
1503
1515
  }
1504
1516
 
1517
+
1518
+ &:has(> img) {
1519
+ position: relative;
1520
+ background-color: transparent;
1521
+
1522
+ &::after {
1523
+ content: "";
1524
+ position: absolute;
1525
+ inset: 0;
1526
+ border-radius: inherit;
1527
+ corner-shape: inherit;
1528
+ box-shadow: inset 0 0 0 1px light-dark(rgb(0 0 0 / 8%), rgb(255 255 255 / 8%));
1529
+ pointer-events: none;
1530
+ }
1531
+ }
1532
+
1505
1533
  > :not(img) {
1506
1534
  color: inherit;
1507
1535
  overflow: hidden;
@@ -1573,6 +1601,8 @@
1573
1601
  @layer components {
1574
1602
  .badge,
1575
1603
  .pill {
1604
+ --border-color: var(--color-border-weak);
1605
+
1576
1606
  display: inline-flex;
1577
1607
  align-items: center;
1578
1608
  gap: var(--space-3xs);
@@ -1582,14 +1612,15 @@
1582
1612
  background-color: var(--color-fill);
1583
1613
  color: var(--color-text);
1584
1614
  padding: var(--space-3xs) var(--space-2xs);
1585
- border: var(--border-width) solid var(--color-border-weak);
1586
-
1615
+ border: var(--border-width) solid var(--border-color);
1616
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
1587
1617
  border-radius: var(--border-radius-s);
1588
1618
 
1589
1619
  &.primary {
1620
+ --border-color: var(--color-primary-border-weak);
1621
+
1590
1622
  background-color: var(--color-primary-fill);
1591
1623
  color: var(--color-primary-text);
1592
- border-color: var(--color-primary-border-weak);
1593
1624
  }
1594
1625
 
1595
1626
  &.muted {
@@ -1597,33 +1628,38 @@
1597
1628
  }
1598
1629
 
1599
1630
  &.accent {
1631
+ --border-color: var(--color-accent-border-weak);
1632
+
1600
1633
  background-color: var(--color-accent-fill);
1601
1634
  color: var(--color-accent-text);
1602
- border-color: var(--color-accent-border-weak);
1603
1635
  }
1604
1636
 
1605
1637
  &.danger {
1638
+ --border-color: var(--color-danger-border-weak);
1639
+
1606
1640
  background-color: var(--color-danger-fill);
1607
1641
  color: var(--color-danger-text);
1608
- border-color: var(--color-danger-border-weak);
1609
1642
  }
1610
1643
 
1611
1644
  &.success {
1645
+ --border-color: var(--color-success-border-weak);
1646
+
1612
1647
  background-color: var(--color-success-fill);
1613
1648
  color: var(--color-success-text);
1614
- border-color: var(--color-success-border-weak);
1615
1649
  }
1616
1650
 
1617
1651
  &.warning {
1652
+ --border-color: var(--color-warning-border-weak);
1653
+
1618
1654
  background-color: var(--color-warning-fill);
1619
1655
  color: var(--color-warning-text);
1620
- border-color: var(--color-warning-border-weak);
1621
1656
  }
1622
1657
 
1623
1658
  &.info {
1659
+ --border-color: var(--color-info-border-weak);
1660
+
1624
1661
  background-color: var(--color-info-fill);
1625
1662
  color: var(--color-info-text);
1626
- border-color: var(--color-info-border-weak);
1627
1663
  }
1628
1664
  }
1629
1665
 
@@ -1754,7 +1790,7 @@
1754
1790
  gap: var(--space-3xs);
1755
1791
 
1756
1792
 
1757
- &:where(:not(.primary, .accent, .danger, .success, .warning, .info, .contrast, .neutral, .secondary, .tertiary, .icon-only, .close)) {
1793
+ &:where(:not(.primary, .accent, .danger, .success, .warning, .info, .contrast, .neutral, .secondary, .tertiary, .icon-only, .close, [role="group"] > .dropdown > *)) {
1758
1794
  --button-surface: transparent;
1759
1795
  --button-text: var(--color-text);
1760
1796
 
@@ -2278,17 +2314,20 @@
2278
2314
 
2279
2315
  input:is([type="checkbox"], [type="radio"]) {
2280
2316
  --size: 1em;
2317
+ --border-color: var(--color-border-strong);
2281
2318
 
2282
2319
  appearance: none;
2283
- height: var(--size);
2284
- width: var(--size);
2320
+
2321
+ height: round(var(--size), 1px);
2322
+ width: round(var(--size), 1px);
2285
2323
  position: relative;
2286
2324
  cursor: pointer;
2287
2325
  font-size: inherit;
2288
2326
  margin: 0;
2289
2327
  margin-block-end: -0.15em;
2290
2328
  margin-inline-end: var(--space-3xs);
2291
- border: var(--border-width) solid var(--color-border-strong);
2329
+ border: var(--border-width) solid var(--border-color);
2330
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
2292
2331
 
2293
2332
  &:focus {
2294
2333
  outline-offset: var(--outline-offset, 1px);
@@ -2318,29 +2357,30 @@
2318
2357
  }
2319
2358
  }
2320
2359
 
2321
- input:is([type="checkbox"]:not([role="switch"]), [type="radio"]):checked,
2322
- input[type="checkbox"]:indeterminate {
2323
- background-color: var(--color-primary);
2324
- border-color: var(--color-primary);
2360
+ input:is([type="checkbox"]:not([role="switch"])):is(:checked, :indeterminate) {
2361
+ --border-color: var(--color-primary);
2362
+ --inverse-color: var(--color-primary-inverse);
2363
+
2364
+ background-color: var(--border-color);
2325
2365
 
2326
2366
  &::after {
2327
2367
  content: "";
2328
2368
  position: absolute;
2329
2369
  inset: 0;
2330
- background-color: var(--color-primary-inverse);
2370
+ background-color: var(--inverse-color);
2331
2371
  mask-position: center;
2332
2372
  mask-repeat: no-repeat;
2333
2373
  mask-size: 100%;
2334
2374
  }
2335
2375
 
2336
2376
  &[aria-invalid="false"] {
2337
- background-color: var(--color-success);
2338
- border-color: var(--color-success);
2377
+ --border-color: var(--color-success);
2378
+ --inverse-color: var(--color-success-inverse);
2339
2379
  }
2340
2380
 
2341
2381
  &[aria-invalid="true"] {
2342
- background-color: var(--color-danger);
2343
- border-color: var(--color-danger);
2382
+ --border-color: var(--color-danger);
2383
+ --inverse-color: var(--color-danger-inverse);
2344
2384
  }
2345
2385
  }
2346
2386
 
@@ -2359,51 +2399,75 @@
2359
2399
  input[type="radio"] {
2360
2400
  border-radius: var(--border-radius-f);
2361
2401
 
2362
- &:checked::after {
2402
+ &:checked {
2403
+ --border-color: var(--color-primary);
2404
+ --inverse-color: var(--color-primary-inverse);
2405
+
2363
2406
 
2364
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='currentColor'/%3E%3C/svg%3E");
2407
+ border-width: calc(var(--size) * 0.3);
2408
+ border-bottom-color: var(--border-color);
2409
+ background-color: var(--inverse-color);
2410
+ background-clip: padding-box;
2411
+
2412
+ &[aria-invalid="false"] {
2413
+ --border-color: var(--color-success);
2414
+ --inverse-color: var(--color-success-inverse);
2415
+ }
2416
+
2417
+ &[aria-invalid="true"] {
2418
+ --border-color: var(--color-danger);
2419
+ --inverse-color: var(--color-danger-inverse);
2420
+ }
2365
2421
  }
2366
2422
  }
2367
2423
 
2368
2424
 
2369
2425
  input[type="checkbox"][role="switch"] {
2370
2426
  --width: 1.85;
2427
+ --border-color: var(--switch-color-border);
2371
2428
 
2372
2429
  background-color: var(--switch-color-surface);
2373
- inline-size: calc(var(--width) * var(--size));
2430
+ inline-size: round(var(--width) * var(--size), 1px);
2374
2431
  transition: 0.1s ease-in-out;
2375
- border: var(--border-width) solid var(--switch-color-border);
2376
2432
  border-radius: var(--border-radius-f);
2377
- padding: 1px;
2433
+
2434
+ border: none;
2435
+ box-shadow:
2436
+ inset 0 calc(-1 * var(--border-width)) 0 color-mix(in oklab, transparent, var(--shadow-small)),
2437
+ inset 0 0 0 var(--border-width) var(--border-color);
2378
2438
 
2379
2439
  &::before {
2380
2440
  content: "";
2381
2441
  display: block;
2382
2442
  aspect-ratio: 1;
2383
- block-size: calc(var(--size) - (2 * var(--border-width)) - 2px);
2443
+ block-size: 100%;
2444
+ border: var(--border-width) solid rgb(0 0 0 / 10%);
2384
2445
  border-radius: var(--border-radius-f);
2385
- background-color: var(--color-primary-inverse);
2386
- box-shadow: var(--shadow-small);
2446
+ background-color: white;
2447
+ background-clip: padding-box;
2387
2448
  transition: margin 0.1s ease-in-out;
2388
2449
  }
2389
2450
 
2390
2451
  &:checked {
2391
- background-color: var(--color-primary);
2392
- border-color: var(--color-primary);
2393
2452
 
2453
+ --border-color: oklch(from var(--color-primary) min(l, 0.72) c h);
2454
+
2455
+ background-color: var(--border-color);
2456
+
2394
2457
  &::before {
2395
- margin-inline-start: calc((var(--width) * var(--size)) - var(--size));
2396
- background-color: var(--color-primary-inverse);
2458
+ margin-inline-start: calc(round(var(--width) * var(--size), 1px) - round(var(--size), 1px));
2397
2459
  }
2398
2460
 
2399
2461
  &[aria-invalid="false"] {
2462
+ --border-color: var(--color-success);
2463
+
2400
2464
  background-color: var(--color-success);
2401
- border-color: var(--color-success);
2402
2465
  }
2403
2466
 
2404
2467
  &[aria-invalid="true"] {
2468
+ --border-color: var(--color-danger);
2469
+
2405
2470
  background-color: var(--color-danger);
2406
- border-color: var(--color-danger);
2407
2471
  }
2408
2472
  }
2409
2473
 
@@ -2418,10 +2482,12 @@
2418
2482
  @layer base {
2419
2483
 
2420
2484
  :where(input, select, textarea) {
2485
+ --border-color: var(--color-border-strong);
2486
+
2421
2487
  background-color: var(--form-color-surface);
2422
- border: var(--border-width) solid var(--color-border-strong);
2488
+ border: var(--border-width) solid var(--border-color);
2489
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
2423
2490
  border-radius: var(--border-radius-m);
2424
-
2425
2491
  line-height: var(--line-height);
2426
2492
  }
2427
2493
 
@@ -2466,7 +2532,7 @@
2466
2532
 
2467
2533
  :is(input, select, textarea) {
2468
2534
  &[aria-invalid="false"] {
2469
- border-color: var(--color-success-border-strong);
2535
+ --border-color: var(--color-success-border-strong);
2470
2536
 
2471
2537
  + small {
2472
2538
  color: var(--color-success-text);
@@ -2474,7 +2540,7 @@
2474
2540
  }
2475
2541
 
2476
2542
  &[aria-invalid="true"] {
2477
- border-color: var(--color-danger-border-strong);
2543
+ --border-color: var(--color-danger-border-strong);
2478
2544
 
2479
2545
  + small {
2480
2546
  color: var(--color-danger-text);
@@ -2521,8 +2587,9 @@
2521
2587
  select[disabled],
2522
2588
  textarea[disabled],
2523
2589
  :where(fieldset[disabled]) :is(input:not([type="submit"], [type="button"], [type="reset"]), select, textarea) {
2590
+ --border-color: var(--form-color-border-disabled);
2591
+
2524
2592
  background-color: transparent;
2525
- border-color: var(--form-color-border-disabled);
2526
2593
  opacity: 0.5;
2527
2594
  pointer-events: none;
2528
2595
  }
@@ -2571,65 +2638,90 @@
2571
2638
  }
2572
2639
 
2573
2640
  input[type="file"] {
2641
+
2642
+ border: none;
2643
+ box-shadow:
2644
+ inset 0 calc(-1 * var(--border-width)) 0 color-mix(in oklab, transparent, var(--shadow-small)),
2645
+ inset 0 0 0 var(--border-width) var(--border-color);
2646
+
2574
2647
  &::file-selector-button {
2648
+ --border-color: var(--color-primary);
2649
+
2575
2650
  background-color: var(--color-primary);
2576
2651
  color: var(--color-primary-inverse);
2577
- box-shadow: var(--shadow-small);
2578
2652
  padding: var(--space-2xs) var(--space-xs);
2579
- border: var(--border-width) solid var(--color-primary);
2653
+ border: var(--border-width) solid var(--border-color);
2654
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
2655
+
2656
+ block-size: 100%;
2580
2657
  font-weight: bold;
2581
2658
  line-height: var(--line-height);
2582
2659
  text-align: center;
2583
2660
  margin-inline-end: var(--space-xs);
2584
2661
  border-radius: 0;
2662
+ border-start-start-radius: var(--border-radius-m);
2663
+ border-end-start-radius: var(--border-radius-m);
2585
2664
  font-family: inherit;
2665
+ font-size: inherit;
2586
2666
  }
2587
2667
 
2588
2668
  &:is([aria-current], :hover)::file-selector-button {
2589
- background-color: oklch(from var(--color-primary) calc(l * var(--hover-multiplier)) c h);
2590
- border-color: oklch(from var(--color-primary) calc(l * var(--hover-multiplier)) c h);
2669
+ --border-color: oklch(from var(--color-primary) calc(l * var(--hover-multiplier)) c h);
2670
+
2671
+ background-color: var(--border-color);
2591
2672
  }
2592
2673
 
2593
2674
  &:active::file-selector-button {
2594
- background-color: oklch(from var(--color-primary) calc(l * var(--hover-multiplier) * var(--hover-multiplier)) c h);
2595
- border-color: oklch(from var(--color-primary) calc(l * var(--hover-multiplier) * var(--hover-multiplier)) c h);
2675
+ --border-color: oklch(from var(--color-primary) calc(l * var(--hover-multiplier) * var(--hover-multiplier)) c h);
2676
+
2677
+ background-color: var(--border-color);
2596
2678
  }
2597
2679
 
2598
- &.small::file-selector-button {
2599
- padding: var(--space-3xs) var(--space-2xs);
2680
+
2681
+ &.small {
2600
2682
  font-size: var(--size-small);
2683
+
2684
+ &::file-selector-button {
2685
+ padding: var(--space-3xs) var(--space-2xs);
2686
+ }
2601
2687
  }
2602
2688
 
2603
- &.large::file-selector-button {
2604
- padding: var(--space-xs) var(--space-s);
2689
+ &.large {
2605
2690
  font-size: var(--size-h4);
2691
+
2692
+ &::file-selector-button {
2693
+ padding: var(--space-xs) var(--space-s);
2694
+ }
2606
2695
  }
2607
2696
  }
2608
2697
 
2609
2698
  input[type="range"] {
2610
2699
  background-color: var(--color-fill);
2611
2700
  border-color: var(--color-border-weak);
2612
- height: 0.33em;
2701
+
2702
+ height: round(0.33em, 2px);
2613
2703
  appearance: none;
2614
2704
  cursor: pointer;
2615
2705
  box-shadow: var(--shadow-inner);
2616
2706
 
2617
2707
  &::-moz-range-thumb {
2618
- width: 1em;
2619
- height: 1em;
2620
- background-color: var(--color-text);
2708
+ width: round(1em, 2px);
2709
+ height: round(1em, 2px);
2710
+
2711
+ background-color: white;
2712
+ background-clip: padding-box;
2713
+ border: var(--border-width) solid rgb(0 0 0 / 20%);
2621
2714
  border-radius: var(--border-radius-f);
2622
- border: none;
2623
- box-shadow: var(--shadow-small);
2624
2715
  }
2625
2716
 
2626
2717
  &::-webkit-slider-thumb {
2627
2718
  appearance: none;
2628
- width: 1em;
2629
- height: 1em;
2630
- background-color: var(--color-text);
2719
+ width: round(1em, 2px);
2720
+ height: round(1em, 2px);
2721
+ background-color: white;
2722
+ background-clip: padding-box;
2723
+ border: var(--border-width) solid rgb(0 0 0 / 20%);
2631
2724
  border-radius: var(--border-radius-f);
2632
- box-shadow: var(--shadow-small);
2633
2725
  }
2634
2726
 
2635
2727
  &:active {
@@ -2812,25 +2904,44 @@
2812
2904
  border-radius: 0;
2813
2905
  }
2814
2906
 
2815
- :not(:first-child, button, input:is([type="submit"], [type="button"], [type="reset"])) {
2907
+
2908
+ > :not(:first-child, button, [role="button"], input:is([type="submit"], [type="button"], [type="reset"])) {
2816
2909
  border-inline-start: 0;
2817
2910
  }
2911
+
2912
+ > :first-child {
2913
+ border-start-start-radius: var(--border-radius-m);
2914
+ border-end-start-radius: var(--border-radius-m);
2915
+ }
2916
+
2917
+ > :last-child {
2918
+ border-start-end-radius: var(--border-radius-m);
2919
+ border-end-end-radius: var(--border-radius-m);
2920
+ }
2921
+
2818
2922
 
2819
- :last-child {
2820
- border-bottom-right-radius: var(--border-radius-m);
2821
- border-top-right-radius: var(--border-radius-m);
2923
+ > .dropdown {
2924
+ display: flex;
2925
+ align-self: stretch;
2926
+
2927
+ > button[popovertarget] {
2928
+ border-radius: inherit;
2929
+ }
2822
2930
  }
2823
2931
 
2824
- :first-child {
2825
- border-bottom-left-radius: var(--border-radius-m);
2826
- border-top-left-radius: var(--border-radius-m);
2932
+
2933
+ > :is(button, [role="button"], input:is([type="submit"], [type="button"], [type="reset"]), .dropdown)
2934
+ + :is(button, [role="button"], input:is([type="submit"], [type="button"], [type="reset"])),
2935
+ > :is(button, [role="button"], input:is([type="submit"], [type="button"], [type="reset"]))
2936
+ + .dropdown > button[popovertarget] {
2937
+ border-inline-start-color: color-mix(in oklab, var(--button-surface), var(--button-text) 20%);
2827
2938
  }
2828
2939
 
2829
2940
  button,
2830
2941
  input:is([type="submit"], [type="button"], [type="reset"]) {
2831
2942
  width: unset;
2832
2943
  }
2833
- }
2944
+ }
2834
2945
  }
2835
2946
 
2836
2947
 
@@ -2964,11 +3075,13 @@
2964
3075
 
2965
3076
 
2966
3077
  nav[aria-label="pagination" i] > :is(ol,ul) {
3078
+ --border-color: var(--color-border-strong);
3079
+
2967
3080
  inline-size: fit-content;
2968
3081
  max-inline-size: 100%;
2969
- border: var(--border-width) solid var(--color-border-strong);
3082
+ border: var(--border-width) solid var(--border-color);
3083
+ border-bottom-color: color-mix(in oklab, var(--border-color), var(--shadow-small));
2970
3084
  border-radius: var(--border-radius-s);
2971
- box-shadow: var(--shadow-small);
2972
3085
 
2973
3086
  li {
2974
3087
 
@@ -3137,7 +3250,7 @@
3137
3250
  &::-webkit-meter-bar {
3138
3251
  background: transparent;
3139
3252
  border-radius: var(--border-radius-f);
3140
- block-size: 0.5em;
3253
+ block-size: 100%;
3141
3254
  }
3142
3255
 
3143
3256
  &::-webkit-meter-optimum-value,
@@ -3193,7 +3306,7 @@
3193
3306
 
3194
3307
 
3195
3308
  .shadow-none {box-shadow: none}
3196
- .shadow-s {box-shadow: var(--shadow-small)}
3309
+ .shadow-s {border-bottom: var(--border-width) solid color-mix(in oklab, var(--border-color, var(--color-border-weak)), var(--shadow-small))}
3197
3310
  .shadow-m {box-shadow: var(--shadow-medium)}
3198
3311
  .shadow-l {box-shadow: var(--shadow-large)}
3199
3312
  .shadow-inner {box-shadow: var(--shadow-inner)}