@utrecht/component-library-css 1.0.0-alpha.208 → 1.0.0-alpha.210

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/dist/bem.css CHANGED
@@ -342,7 +342,7 @@ ol.utrecht-breadcrumb__list {
342
342
  * Copyright (c) 2021 Robbert Broersma
343
343
  */
344
344
  /* stylelint-disable-next-line block-no-empty */
345
- .utrecht-button {
345
+ .utrecht-button, .utrecht-button-link {
346
346
  background-color: var(--utrecht-button-primary-action-background-color, var(--utrecht-button-background-color));
347
347
  border-color: var(--utrecht-button-border-color, transparent);
348
348
  border-radius: var(--utrecht-button-border-radius);
@@ -380,7 +380,7 @@ ol.utrecht-breadcrumb__list {
380
380
  cursor: var(--utrecht-action-busy-cursor);
381
381
  }
382
382
 
383
- .utrecht-button:disabled,
383
+ .utrecht-button:disabled, .utrecht-button-link:disabled,
384
384
  .utrecht-button--disabled {
385
385
  background-color: var(--utrecht-button-disabled-background-color, var(--utrecht-button-background-color));
386
386
  border-color: var(--utrecht-button-disabled-border-color, var(--utrecht-button-border-color));
@@ -388,14 +388,14 @@ ol.utrecht-breadcrumb__list {
388
388
  cursor: var(--utrecht-action-disabled-cursor);
389
389
  }
390
390
 
391
- .utrecht-button:active:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled),
391
+ .utrecht-button:active:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled), .utrecht-button-link:active:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled),
392
392
  .utrecht-button--active {
393
393
  background-color: var(--utrecht-button-active-background-color, var(--utrecht-button-background-color));
394
394
  border-color: var(--utrecht-button-active-border-color, var(--utrecht-button-border-color));
395
395
  color: var(--utrecht-button-active-color, var(--utrecht-button-color));
396
396
  }
397
397
 
398
- .utrecht-button--focus-visible, .utrecht-button:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
398
+ .utrecht-button--focus-visible, .utrecht-button-link--focus-visible, .utrecht-button:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled), .utrecht-button-link:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
399
399
  /* the pseudo-class for `:focus-visible` is implemented via the mixin */
400
400
  box-shadow: 0 0 0 var(--utrecht-focus-box-shadow-spread-radius, 0) var(--utrecht-focus-box-shadow-color, transparent);
401
401
  outline-color: var(--utrecht-focus-outline-color, transparent);
@@ -404,7 +404,7 @@ ol.utrecht-breadcrumb__list {
404
404
  outline-width: var(--utrecht-focus-outline-width, 0);
405
405
  }
406
406
 
407
- .utrecht-button--focus, .utrecht-button:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
407
+ .utrecht-button--focus, .utrecht-button-link--focus, .utrecht-button:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled), .utrecht-button-link:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
408
408
  background-color: var(--utrecht-button-focus-background-color, var(--utrecht-button-background-color));
409
409
  border-color: var(--utrecht-button-focus-border-color, var(--utrecht-button-border-color));
410
410
  color: var(--utrecht-button-focus-color, var(--utrecht-button-color));
@@ -412,14 +412,15 @@ ol.utrecht-breadcrumb__list {
412
412
 
413
413
  /* override the `:focus` selector above */
414
414
  /* stylelint-disable-next-line no-descending-specificity */
415
- .utrecht-button:focus:not(:focus-visible) {
415
+ .utrecht-button:focus:not(:focus-visible), .utrecht-button-link:focus:not(:focus-visible) {
416
416
  /* undo focus ring */
417
417
  box-shadow: none;
418
418
  outline-style: none;
419
419
  }
420
420
 
421
- .utrecht-button--hover:not(:disabled),
422
- .utrecht-button:hover:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
421
+ .utrecht-button--hover:not(:disabled), .utrecht-button-link--hover:not(:disabled),
422
+ .utrecht-button:hover:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled),
423
+ .utrecht-button-link:hover:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
423
424
  background-color: var(--utrecht-button-hover-background-color, var(--utrecht-button-background-color));
424
425
  border-color: var(--utrecht-button-hover-border-color, var(--utrecht-button-border-color));
425
426
  color: var(--utrecht-button-hover-color, var(--utrecht-button-color));
@@ -460,6 +461,112 @@ ol.utrecht-breadcrumb__list {
460
461
  gap: var(--utrecht-button-group-block-gap, 1em);
461
462
  }
462
463
 
464
+ /**
465
+ * @license EUPL-1.2
466
+ * Copyright (c) 2021 The Knights Who Say NIH! B.V.
467
+ * Copyright (c) 2021 Gemeente Utrecht
468
+ */
469
+ /**
470
+ * @license EUPL-1.2
471
+ * Copyright (c) 2021 The Knights Who Say NIH! B.V.
472
+ * Copyright (c) 2021 Gemeente Utrecht
473
+ */
474
+ /**
475
+ * @license EUPL-1.2
476
+ * Copyright (c) 2021 Gemeente Utrecht
477
+ * Copyright (c) 2021 Robbert Broersma
478
+ */
479
+ /* stylelint-disable-next-line block-no-empty */
480
+ .utrecht-button, .utrecht-button-link {
481
+ background-color: var(--utrecht-button-primary-action-background-color, var(--utrecht-button-background-color));
482
+ border-color: var(--utrecht-button-border-color, transparent);
483
+ border-radius: var(--utrecht-button-border-radius);
484
+ border-style: solid;
485
+ border-width: var(--utrecht-button-border-width, 0);
486
+ color: var(--utrecht-button-primary-action-color, var(--utrecht-button-color));
487
+ font-family: var(--utrecht-button-font-family, var(--utrecht-document-font-family));
488
+ font-size: var(--utrecht-button-font-size, var(--utrecht-document-font-family));
489
+ font-weight: var(--utrecht-button-font-weight);
490
+ inline-size: var(--utrecht-button-inline-size, auto);
491
+ letter-spacing: var(--utrecht-button-letter-spacing);
492
+ min-block-size: var(--utrecht-button-min-block-size, auto);
493
+ min-inline-size: var(--utrecht-button-min-inline-size, 0);
494
+ padding-block-end: var(--utrecht-button-padding-block-end);
495
+ padding-block-start: var(--utrecht-button-padding-block-start);
496
+ padding-inline-end: var(--utrecht-button-padding-inline-end);
497
+ padding-inline-start: var(--utrecht-button-padding-inline-start);
498
+ text-transform: var(--utrecht-button-text-transform);
499
+ user-select: none;
500
+ }
501
+
502
+ .utrecht-button--distanced {
503
+ margin-block-end: var(--utrecht-button-margin-block-end);
504
+ margin-block-start: var(--utrecht-button-margin-block-start);
505
+ margin-inline-end: var(--utrecht-button-margin-inline-end);
506
+ margin-inline-start: var(--utrecht-button-margin-inline-start);
507
+ }
508
+
509
+ .utrecht-button--submit {
510
+ /* lower priority specificty than busy and disabled cursor */
511
+ cursor: var(--utrecht-action-submit-cursor);
512
+ }
513
+
514
+ .utrecht-button--busy {
515
+ cursor: var(--utrecht-action-busy-cursor);
516
+ }
517
+
518
+ .utrecht-button:disabled, .utrecht-button-link:disabled,
519
+ .utrecht-button--disabled {
520
+ background-color: var(--utrecht-button-disabled-background-color, var(--utrecht-button-background-color));
521
+ border-color: var(--utrecht-button-disabled-border-color, var(--utrecht-button-border-color));
522
+ color: var(--utrecht-button-disabled-color, var(--utrecht-button-color));
523
+ cursor: var(--utrecht-action-disabled-cursor);
524
+ }
525
+
526
+ .utrecht-button:active:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled), .utrecht-button-link:active:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled),
527
+ .utrecht-button--active {
528
+ background-color: var(--utrecht-button-active-background-color, var(--utrecht-button-background-color));
529
+ border-color: var(--utrecht-button-active-border-color, var(--utrecht-button-border-color));
530
+ color: var(--utrecht-button-active-color, var(--utrecht-button-color));
531
+ }
532
+
533
+ .utrecht-button--focus-visible, .utrecht-button-link--focus-visible, .utrecht-button:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled), .utrecht-button-link:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
534
+ /* the pseudo-class for `:focus-visible` is implemented via the mixin */
535
+ box-shadow: 0 0 0 var(--utrecht-focus-box-shadow-spread-radius, 0) var(--utrecht-focus-box-shadow-color, transparent);
536
+ outline-color: var(--utrecht-focus-outline-color, transparent);
537
+ outline-offset: var(--utrecht-focus-outline-offset, 0);
538
+ outline-style: var(--utrecht-focus-outline-style, solid);
539
+ outline-width: var(--utrecht-focus-outline-width, 0);
540
+ }
541
+
542
+ .utrecht-button--focus, .utrecht-button-link--focus, .utrecht-button:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled), .utrecht-button-link:focus:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
543
+ background-color: var(--utrecht-button-focus-background-color, var(--utrecht-button-background-color));
544
+ border-color: var(--utrecht-button-focus-border-color, var(--utrecht-button-border-color));
545
+ color: var(--utrecht-button-focus-color, var(--utrecht-button-color));
546
+ }
547
+
548
+ /* override the `:focus` selector above */
549
+ /* stylelint-disable-next-line no-descending-specificity */
550
+ .utrecht-button:focus:not(:focus-visible), .utrecht-button-link:focus:not(:focus-visible) {
551
+ /* undo focus ring */
552
+ box-shadow: none;
553
+ outline-style: none;
554
+ }
555
+
556
+ .utrecht-button--hover:not(:disabled), .utrecht-button-link--hover:not(:disabled),
557
+ .utrecht-button:hover:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled),
558
+ .utrecht-button-link:hover:not(:disabled):not([aria-disabled=true]):not(.utrecht-button--disabled) {
559
+ background-color: var(--utrecht-button-hover-background-color, var(--utrecht-button-background-color));
560
+ border-color: var(--utrecht-button-hover-border-color, var(--utrecht-button-border-color));
561
+ color: var(--utrecht-button-hover-color, var(--utrecht-button-color));
562
+ transform: scale(var(--utrecht-button-focus-transform-scale, 1));
563
+ }
564
+
565
+ .utrecht-button-link {
566
+ cursor: var(--utrecht-action-navigate-cursor, pointer);
567
+ text-decoration: none;
568
+ }
569
+
463
570
  /**
464
571
  * @license EUPL-1.2
465
572
  * Copyright (c) 2021 Robbert Broersma
@@ -1230,6 +1337,170 @@ ol.utrecht-breadcrumb__list {
1230
1337
  height: 1em;
1231
1338
  }
1232
1339
 
1340
+ /**
1341
+ * @license EUPL-1.2
1342
+ * Copyright (c) 2022 Robbert Broersma
1343
+ */
1344
+ /**
1345
+ * @license EUPL-1.2
1346
+ * Copyright (c) 2021 The Knights Who Say NIH! B.V.
1347
+ * Copyright (c) 2021 Gemeente Utrecht
1348
+ */
1349
+ /* stylelint-disable scss/no-global-function-names */
1350
+ /**
1351
+ * @license EUPL-1.2
1352
+ * Copyright (c) 2021 Gemeente Utrecht
1353
+ * Copyright (c) 2021 Robbert Broersma
1354
+ */
1355
+ /* stylelint-disable-next-line block-no-empty */
1356
+ /*
1357
+
1358
+ # CSS implementation
1359
+
1360
+ ## `text-decoration-skip`
1361
+
1362
+ `text-decoration-skip` can be helpful to avoid making some texts unreadable.
1363
+ For example by obscuring Arabic diacritics.
1364
+
1365
+ However, the combination of a greater thickness and skipping this thick underline
1366
+ leads to a very unappealing rendering of the underline. To avoid this,
1367
+ `text-decoration-skip` is disabled for interactive states.
1368
+
1369
+ For design token configurations that have identical thickness for normal and interactive
1370
+ states, this will lead to the (undesirable) effect that the focus/hover effect is switching
1371
+ from an interrupted to an uninterrupted underline (for some texts).
1372
+
1373
+ Apart from making `skip-ink` configurable for normal/focus/hover, there is no good solution yet.
1374
+
1375
+ ---
1376
+
1377
+ Disabling `text-decoration-skip` for interactive states obscures some texts, and we assume for now
1378
+ that moving the pointer away from a link or having focus elsewhere first is simple enough to
1379
+ not make this too inconvenient.
1380
+
1381
+ ---
1382
+
1383
+ Some folks implement the underline of links using `border-bottom` or even using a finely crafted
1384
+ `linear-gradient()` with a solid color at the bottom and transparent behind the text. These approaches
1385
+ would unfortunately not be able to provide the improved readability of `text-decoration-skip`.
1386
+
1387
+ ## `text-decoration-thickness`
1388
+
1389
+ Varying `text-decoration-thickness` can be used to distinguish interactive states.
1390
+
1391
+ ---
1392
+
1393
+ `text-decoration-thickness` appears to have rendering differences between Chrome and Safari.
1394
+ In Safari the line becomes thicker with extra pixels added to the bottom, while in Chrome
1395
+ the underline offset also seems to increase along with the thickness, which effectively means
1396
+ the underline is closer to the next line than in Safari.
1397
+
1398
+ ---
1399
+
1400
+ It might be nice to use font-relative units for `text-decoration-thickness`, and that is why we
1401
+ use the `max()` function to ensure the underline remains visible for every font size.
1402
+
1403
+ ## `transition`
1404
+
1405
+ `text-decoration-thickness` could be a candidate for animating between interactive states,
1406
+ however browsers don't seem to have implemented great looking supixel tweening yet.
1407
+
1408
+ `text-decoration-skip` also makes the transition more challenging to implement.
1409
+
1410
+ */
1411
+ .utrecht-link, .utrecht-link-button {
1412
+ color: var(--utrecht-link-color, blue);
1413
+ text-decoration: var(--utrecht-link-text-decoration, underline);
1414
+ text-decoration-skip-ink: all;
1415
+ text-decoration-thickness: max(var(--utrecht-link-text-decoration-thickness), 1px);
1416
+ text-underline-offset: var(--utrecht-link-text-underline-offset);
1417
+ }
1418
+
1419
+ .utrecht-link--icon-left {
1420
+ background-image: var(--utrecht-link-icon-left-background-image, none);
1421
+ background-position: 0 0.25em;
1422
+ background-repeat: no-repeat;
1423
+ color: var(--utrecht-link-color, blue);
1424
+ font-weight: var(--utrecht-typography-weight-scale-bold-font-weight);
1425
+ padding-inline-start: var(--utrecht-space-block-md);
1426
+ text-decoration: none;
1427
+ }
1428
+
1429
+ .utrecht-link:visited, .utrecht-link-button:visited,
1430
+ .utrecht-link--visited {
1431
+ color: var(--utrecht-link-visited-color, var(--utrecht-link-color));
1432
+ }
1433
+
1434
+ .utrecht-link:hover, .utrecht-link-button:hover,
1435
+ .utrecht-link--hover,
1436
+ .utrecht-link-button--hover {
1437
+ color: var(--utrecht-link-hover-color, var(--utrecht-link-color));
1438
+ text-decoration: var(--utrecht-link-hover-text-decoration, var(--utrecht-link-text-decoration, underline));
1439
+ text-decoration-skip: none;
1440
+ text-decoration-skip-ink: none;
1441
+ text-decoration-thickness: max(var(--utrecht-link-hover-text-decoration-thickness, var(--utrecht-link-text-decoration-thickness)), 1px);
1442
+ }
1443
+
1444
+ .utrecht-link:active, .utrecht-link-button:active,
1445
+ .utrecht-link--active,
1446
+ .utrecht-link-button--active {
1447
+ color: var(--utrecht-link-active-color, var(--utrecht-link-color));
1448
+ }
1449
+
1450
+ .utrecht-link--focus, .utrecht-link-button--focus, .utrecht-link:focus, .utrecht-link-button:focus {
1451
+ color: var(--utrecht-link-focus-color, var(--utrecht-link-color));
1452
+ text-decoration: var(--utrecht-link-focus-text-decoration, var(--utrecht-link-text-decoration, underline));
1453
+ text-decoration-skip: none;
1454
+ text-decoration-skip-ink: none;
1455
+ text-decoration-thickness: max(var(--utrecht-link-focus-text-decoration-thickness, var(--utrecht-link-text-decoration-thickness)), 1px);
1456
+ }
1457
+
1458
+ .utrecht-link--focus-visible, .utrecht-link-button--focus-visible, .utrecht-link:focus, .utrecht-link-button:focus {
1459
+ box-shadow: 0 0 0 var(--utrecht-focus-box-shadow-spread-radius, 0) var(--utrecht-focus-box-shadow-color, transparent);
1460
+ outline-color: var(--utrecht-focus-outline-color, transparent);
1461
+ outline-offset: var(--utrecht-focus-outline-offset, 0);
1462
+ outline-style: var(--utrecht-focus-outline-style, solid);
1463
+ outline-width: var(--utrecht-focus-outline-width, 0);
1464
+ }
1465
+
1466
+ .utrecht-link:focus:not(:focus-visible), .utrecht-link-button:focus:not(:focus-visible) {
1467
+ /* undo focus ring */
1468
+ box-shadow: none;
1469
+ outline-style: none;
1470
+ }
1471
+
1472
+ /* stylelint-disable-next-line block-no-empty */
1473
+ /* stylelint-disable-next-line block-no-empty */
1474
+ .utrecht-link--telephone {
1475
+ white-space: nowrap;
1476
+ }
1477
+
1478
+ /* stylelint-disable-next-line block-no-empty */
1479
+ /* stylelint-disable-next-line block-no-empty */
1480
+ .utrecht-link-button {
1481
+ cursor: pointer;
1482
+ display: inline-flex;
1483
+ font-family: var(--utrecht-button-font-family, var(--utrecht-document-font-family));
1484
+ font-size: var(--utrecht-button-font-size, var(--utrecht-document-font-family));
1485
+ font-weight: var(--utrecht-button-font-weight);
1486
+ inline-size: var(--utrecht-button-inline-size, auto);
1487
+ letter-spacing: var(--utrecht-button-letter-spacing);
1488
+ min-block-size: var(--utrecht-button-min-block-size, auto);
1489
+ min-inline-size: var(--utrecht-button-min-inline-size, 0);
1490
+ padding-block-end: var(--utrecht-button-padding-block-end);
1491
+ padding-block-start: var(--utrecht-button-padding-block-start);
1492
+ padding-inline-end: var(--utrecht-button-padding-inline-end);
1493
+ padding-inline-start: var(--utrecht-button-padding-inline-start);
1494
+ text-transform: var(--utrecht-button-text-transform);
1495
+ user-select: none;
1496
+ }
1497
+
1498
+ .utrecht-link-button--html-button {
1499
+ background-color: transparent;
1500
+ /* reset <button> styling */
1501
+ border-width: 0;
1502
+ }
1503
+
1233
1504
  /**
1234
1505
  * @license EUPL-1.2
1235
1506
  * Copyright (c) 2021 Gemeente Utrecht
@@ -1316,7 +1587,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
1316
1587
  `text-decoration-skip` also makes the transition more challenging to implement.
1317
1588
 
1318
1589
  */
1319
- .utrecht-link {
1590
+ .utrecht-link, .utrecht-link-button {
1320
1591
  color: var(--utrecht-link-color, blue);
1321
1592
  text-decoration: var(--utrecht-link-text-decoration, underline);
1322
1593
  text-decoration-skip-ink: all;
@@ -1334,13 +1605,14 @@ however browsers don't seem to have implemented great looking supixel tweening y
1334
1605
  text-decoration: none;
1335
1606
  }
1336
1607
 
1337
- .utrecht-link:visited,
1608
+ .utrecht-link:visited, .utrecht-link-button:visited,
1338
1609
  .utrecht-link--visited {
1339
1610
  color: var(--utrecht-link-visited-color, var(--utrecht-link-color));
1340
1611
  }
1341
1612
 
1342
- .utrecht-link:hover,
1343
- .utrecht-link--hover {
1613
+ .utrecht-link:hover, .utrecht-link-button:hover,
1614
+ .utrecht-link--hover,
1615
+ .utrecht-link-button--hover {
1344
1616
  color: var(--utrecht-link-hover-color, var(--utrecht-link-color));
1345
1617
  text-decoration: var(--utrecht-link-hover-text-decoration, var(--utrecht-link-text-decoration, underline));
1346
1618
  text-decoration-skip: none;
@@ -1348,12 +1620,13 @@ however browsers don't seem to have implemented great looking supixel tweening y
1348
1620
  text-decoration-thickness: max(var(--utrecht-link-hover-text-decoration-thickness, var(--utrecht-link-text-decoration-thickness)), 1px);
1349
1621
  }
1350
1622
 
1351
- .utrecht-link:active,
1352
- .utrecht-link--active {
1623
+ .utrecht-link:active, .utrecht-link-button:active,
1624
+ .utrecht-link--active,
1625
+ .utrecht-link-button--active {
1353
1626
  color: var(--utrecht-link-active-color, var(--utrecht-link-color));
1354
1627
  }
1355
1628
 
1356
- .utrecht-link--focus, .utrecht-link:focus {
1629
+ .utrecht-link--focus, .utrecht-link:focus, .utrecht-link-button:focus, .utrecht-link-button--focus {
1357
1630
  color: var(--utrecht-link-focus-color, var(--utrecht-link-color));
1358
1631
  text-decoration: var(--utrecht-link-focus-text-decoration, var(--utrecht-link-text-decoration, underline));
1359
1632
  text-decoration-skip: none;
@@ -1361,7 +1634,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
1361
1634
  text-decoration-thickness: max(var(--utrecht-link-focus-text-decoration-thickness, var(--utrecht-link-text-decoration-thickness)), 1px);
1362
1635
  }
1363
1636
 
1364
- .utrecht-link--focus-visible, .utrecht-link:focus {
1637
+ .utrecht-link--focus-visible, .utrecht-link:focus, .utrecht-link-button:focus, .utrecht-link-button--focus-visible {
1365
1638
  box-shadow: 0 0 0 var(--utrecht-focus-box-shadow-spread-radius, 0) var(--utrecht-focus-box-shadow-color, transparent);
1366
1639
  outline-color: var(--utrecht-focus-outline-color, transparent);
1367
1640
  outline-offset: var(--utrecht-focus-outline-offset, 0);
@@ -1369,7 +1642,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
1369
1642
  outline-width: var(--utrecht-focus-outline-width, 0);
1370
1643
  }
1371
1644
 
1372
- .utrecht-link:focus:not(:focus-visible) {
1645
+ .utrecht-link:focus:not(:focus-visible), .utrecht-link-button:focus:not(:focus-visible) {
1373
1646
  /* undo focus ring */
1374
1647
  box-shadow: none;
1375
1648
  outline-style: none;
@@ -2322,6 +2595,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
2322
2595
  color: var(--utrecht-table-header-cell-color);
2323
2596
  font-size: var(--utrecht-table-header-cell-font-size);
2324
2597
  font-weight: var(--utrecht-table-header-cell-font-weight);
2598
+ text-align: start;
2325
2599
  text-transform: var(--utrecht-table-header-cell-text-transform);
2326
2600
  }
2327
2601
 
@@ -2345,6 +2619,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
2345
2619
  padding-inline-end: var(--utrecht-table-row-padding-inline-end, var(--utrecht-table-cell-padding-inline-end, 0));
2346
2620
  }
2347
2621
 
2622
+ .utrecht-table__header-cell--numeric-column,
2348
2623
  .utrecht-table__cell--numeric-column {
2349
2624
  /* stylelint-disable-next-line declaration-property-value-disallowed-list */
2350
2625
  text-align: right;
@@ -2506,6 +2781,8 @@ however browsers don't seem to have implemented great looking supixel tweening y
2506
2781
  }
2507
2782
 
2508
2783
  .utrecht-textbox--numeric {
2784
+ -moz-appearance: textfield;
2785
+ /* avoid spinner input in Firefox */
2509
2786
  font-variant-numeric: lining-nums tabular-nums;
2510
2787
  }
2511
2788
 
package/dist/html.css CHANGED
@@ -1313,6 +1313,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
1313
1313
  color: var(--utrecht-table-header-cell-color);
1314
1314
  font-size: var(--utrecht-table-header-cell-font-size);
1315
1315
  font-weight: var(--utrecht-table-header-cell-font-weight);
1316
+ text-align: start;
1316
1317
  text-transform: var(--utrecht-table-header-cell-text-transform);
1317
1318
  }
1318
1319
 
@@ -1339,7 +1340,10 @@ however browsers don't seem to have implemented great looking supixel tweening y
1339
1340
  padding-inline-end: var(--utrecht-table-row-padding-inline-end, var(--utrecht-table-cell-padding-inline-end, 0));
1340
1341
  }
1341
1342
 
1342
- .utrecht-table__cell--numeric-column, .utrecht-html td.numeric, .utrecht-html thead > tr > th.numeric,
1343
+ .utrecht-table__header-cell--numeric-column,
1344
+ .utrecht-table__cell--numeric-column,
1345
+ .utrecht-html td.numeric,
1346
+ .utrecht-html thead > tr > th.numeric,
1343
1347
  .utrecht-html tfoot > tr > th.numeric,
1344
1348
  .utrecht-html th[scope=column].numeric {
1345
1349
  /* stylelint-disable-next-line declaration-property-value-disallowed-list */
@@ -1627,6 +1631,8 @@ however browsers don't seem to have implemented great looking supixel tweening y
1627
1631
  .utrecht-html input[inputmode=decimal i],
1628
1632
  .utrecht-html input[inputmode=numeric i],
1629
1633
  .utrecht-html input[type=number i] {
1634
+ -moz-appearance: textfield;
1635
+ /* avoid spinner input in Firefox */
1630
1636
  font-variant-numeric: lining-nums tabular-nums;
1631
1637
  }
1632
1638
 
@@ -2100,6 +2106,7 @@ however browsers don't seem to have implemented great looking supixel tweening y
2100
2106
  color: var(--utrecht-table-header-cell-color);
2101
2107
  font-size: var(--utrecht-table-header-cell-font-size);
2102
2108
  font-weight: var(--utrecht-table-header-cell-font-weight);
2109
+ text-align: start;
2103
2110
  text-transform: var(--utrecht-table-header-cell-text-transform);
2104
2111
  }
2105
2112
 
@@ -2126,9 +2133,12 @@ however browsers don't seem to have implemented great looking supixel tweening y
2126
2133
  padding-inline-end: var(--utrecht-table-row-padding-inline-end, var(--utrecht-table-cell-padding-inline-end, 0));
2127
2134
  }
2128
2135
 
2129
- .utrecht-table__cell--numeric-column, .utrecht-html thead > tr > th.numeric,
2136
+ .utrecht-table__header-cell--numeric-column,
2137
+ .utrecht-table__cell--numeric-column,
2138
+ .utrecht-html thead > tr > th.numeric,
2130
2139
  .utrecht-html tfoot > tr > th.numeric,
2131
- .utrecht-html th[scope=column].numeric, .utrecht-html td.numeric {
2140
+ .utrecht-html th[scope=column].numeric,
2141
+ .utrecht-html td.numeric {
2132
2142
  /* stylelint-disable-next-line declaration-property-value-disallowed-list */
2133
2143
  text-align: right;
2134
2144
  }
@@ -2414,6 +2424,8 @@ however browsers don't seem to have implemented great looking supixel tweening y
2414
2424
  .utrecht-html input[inputmode=decimal i],
2415
2425
  .utrecht-html input[inputmode=numeric i],
2416
2426
  .utrecht-html input[type=number i] {
2427
+ -moz-appearance: textfield;
2428
+ /* avoid spinner input in Firefox */
2417
2429
  font-variant-numeric: lining-nums tabular-nums;
2418
2430
  }
2419
2431