@cirthcss/cirth 0.5.0 → 0.7.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/dist/cirth.css CHANGED
@@ -45,17 +45,14 @@ section {
45
45
 
46
46
  .container, .container-fluid {
47
47
  width: 100%;
48
- padding-right: var(--cirth-spacing);
49
- padding-left: var(--cirth-spacing);
50
- margin-left: auto;
51
- margin-right: auto;
48
+ padding-inline: var(--cirth-spacing);
49
+ margin-inline: auto;
52
50
  }
53
51
 
54
52
  @media (min-width: 576px) {
55
53
  .container {
56
54
  max-width: 510px;
57
- padding-left: 0;
58
- padding-right: 0;
55
+ padding-inline: 0;
59
56
  }
60
57
  }
61
58
 
@@ -84,8 +81,7 @@ section {
84
81
  }
85
82
 
86
83
  .grid {
87
- grid-column-gap: var(--cirth-grid-column-gap);
88
- grid-row-gap: var(--cirth-grid-row-gap);
84
+ gap: var(--cirth-grid-row-gap) var(--cirth-grid-column-gap);
89
85
  grid-template-columns: 1fr;
90
86
  display: grid;
91
87
  }
@@ -100,6 +96,10 @@ section {
100
96
  min-width: 0;
101
97
  }
102
98
 
99
+ .grid > :where(button, [type="submit"], [type="reset"], [role="button"], input:not([type="checkbox"], [type="radio"]), select, textarea) {
100
+ margin-bottom: 0;
101
+ }
102
+
103
103
  .overflow-auto {
104
104
  overflow: auto;
105
105
  }
@@ -213,8 +213,6 @@ mark {
213
213
  blockquote {
214
214
  margin: var(--cirth-typography-spacing-vertical) 0;
215
215
  padding: var(--cirth-spacing);
216
- border-right: none;
217
- border-left: var(--cirth-border-width-4) solid var(--cirth-blockquote-border-color);
218
216
  border-inline-start: var(--cirth-border-width-4) solid var(--cirth-blockquote-border-color);
219
217
  border-inline-end: none;
220
218
  display: block;
@@ -254,7 +252,6 @@ del {
254
252
  text-decoration: var(--cirth-text-decoration);
255
253
  -webkit-text-decoration-color: var(--cirth-underline);
256
254
  text-decoration-color: var(--cirth-underline);
257
- text-underline-offset: .125em;
258
255
  transition: background-color var(--cirth-transition), color var(--cirth-transition), text-decoration var(--cirth-transition), box-shadow var(--cirth-transition);
259
256
  outline: none;
260
257
  }
@@ -298,7 +295,6 @@ button {
298
295
  text-transform: none;
299
296
  margin: 0;
300
297
  font-family: inherit;
301
- overflow: visible;
302
298
  }
303
299
 
304
300
  button, [type="submit"], [type="reset"], [type="button"] {
@@ -501,17 +497,16 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
501
497
  border-collapse: collapse;
502
498
  border-spacing: 0;
503
499
  text-indent: 0;
500
+ border-color: currentColor;
504
501
  width: 100%;
505
502
  }
506
503
 
507
504
  th, td {
508
505
  padding: calc(var(--cirth-spacing) / 2) var(--cirth-spacing);
509
506
  border-bottom: var(--cirth-border-width) solid var(--cirth-table-border-color);
510
- background-color: var(--cirth-background-color);
511
507
  color: var(--cirth-color);
512
508
  font-weight: var(--cirth-font-weight);
513
509
  font-variant-numeric: tabular-nums;
514
- text-align: left;
515
510
  text-align: start;
516
511
  }
517
512
 
@@ -528,22 +523,15 @@ table.striped tbody tr:nth-child(odd) th, table.striped tbody tr:nth-child(odd)
528
523
  vertical-align: middle;
529
524
  }
530
525
 
531
- audio, video {
532
- display: inline-block;
533
- }
534
-
535
- audio:not([controls]) {
536
- height: 0;
537
- display: none;
538
- }
539
-
540
526
  :where(iframe) {
541
527
  border-style: none;
542
528
  }
543
529
 
544
530
  img {
545
- border-style: none;
546
531
  max-width: 100%;
532
+ }
533
+
534
+ img:where(:not([height]), [width][height]) {
547
535
  height: auto;
548
536
  }
549
537
 
@@ -551,10 +539,6 @@ img {
551
539
  fill: currentColor;
552
540
  }
553
541
 
554
- svg:not(:root), svg:not(:host) {
555
- overflow: hidden;
556
- }
557
-
558
542
  pre, code, kbd, samp {
559
543
  font-size: .875em;
560
544
  font-family: var(--cirth-font-family);
@@ -566,7 +550,6 @@ pre code, pre samp {
566
550
  }
567
551
 
568
552
  pre {
569
- -ms-overflow-style: scrollbar;
570
553
  overflow: auto;
571
554
  }
572
555
 
@@ -602,6 +585,13 @@ kbd {
602
585
  vertical-align: baseline;
603
586
  }
604
587
 
588
+ var {
589
+ color: var(--cirth-code-color);
590
+ font-size: .875em;
591
+ font-style: italic;
592
+ font-family: var(--cirth-font-family);
593
+ }
594
+
605
595
  figure {
606
596
  margin: 0;
607
597
  padding: 0;
@@ -621,14 +611,10 @@ hr {
621
611
  color: inherit;
622
612
  }
623
613
 
624
- [hidden], template {
614
+ [hidden]:where(:not([hidden="until-found"])) {
625
615
  display: none;
626
616
  }
627
617
 
628
- canvas {
629
- display: inline-block;
630
- }
631
-
632
618
  input, optgroup, select, textarea {
633
619
  font-size: var(--cirth-font-size-md);
634
620
  line-height: var(--cirth-line-height);
@@ -637,26 +623,7 @@ input, optgroup, select, textarea {
637
623
  font-family: inherit;
638
624
  }
639
625
 
640
- input {
641
- overflow: visible;
642
- }
643
-
644
- select {
645
- text-transform: none;
646
- }
647
-
648
626
  legend {
649
- max-width: 100%;
650
- color: inherit;
651
- white-space: normal;
652
- padding: 0;
653
- }
654
-
655
- textarea {
656
- overflow: auto;
657
- }
658
-
659
- [type="checkbox"], [type="radio"] {
660
627
  padding: 0;
661
628
  }
662
629
 
@@ -677,28 +644,15 @@ textarea {
677
644
  -webkit-appearance: none;
678
645
  }
679
646
 
680
- ::-webkit-file-upload-button {
647
+ ::file-selector-button {
681
648
  -webkit-appearance: button;
682
649
  font: inherit;
683
650
  }
684
651
 
685
- ::-moz-focus-inner {
686
- border-style: none;
687
- padding: 0;
688
- }
689
-
690
- :-moz-focusring {
691
- outline: none;
692
- }
693
-
694
652
  :-moz-ui-invalid {
695
653
  box-shadow: none;
696
654
  }
697
655
 
698
- ::-ms-expand {
699
- display: none;
700
- }
701
-
702
656
  [type="file"], [type="range"] {
703
657
  border-width: 0;
704
658
  padding: 0;
@@ -775,13 +729,10 @@ label[aria-disabled="true"] input[disabled] {
775
729
  }
776
730
 
777
731
  :where(input, select, textarea):not([type="checkbox"], [type="radio"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"], [type="range"])[aria-invalid] {
778
- padding-right: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
779
- padding-left: var(--cirth-form-element-spacing-horizontal);
732
+ padding-inline: var(--cirth-form-element-spacing-horizontal) calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
780
733
  background-position: center right var(--cirth-space-3);
781
734
  background-size: var(--cirth-size-4) auto;
782
735
  background-repeat: no-repeat;
783
- padding-inline-start: var(--cirth-form-element-spacing-horizontal);
784
- padding-inline-end: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
785
736
  }
786
737
 
787
738
  :where(input, select, textarea):not([type="checkbox"], [type="radio"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"], [type="range"])[aria-invalid="false"]:not(select) {
@@ -822,17 +773,11 @@ label[aria-disabled="true"] input[disabled] {
822
773
  background-position: center left var(--cirth-space-3);
823
774
  }
824
775
 
825
- input::placeholder, textarea::placeholder, select:invalid {
826
- color: var(--cirth-form-element-placeholder-color);
827
- opacity: 1;
828
- }
829
-
830
- input::-webkit-input-placeholder {
831
- color: var(--cirth-form-element-placeholder-color);
832
- opacity: 1;
776
+ [dir="rtl"] textarea[aria-invalid] {
777
+ background-position: top left var(--cirth-space-3);
833
778
  }
834
779
 
835
- textarea::-webkit-input-placeholder {
780
+ input::placeholder, textarea::placeholder, select:invalid {
836
781
  color: var(--cirth-form-element-placeholder-color);
837
782
  opacity: 1;
838
783
  }
@@ -841,20 +786,12 @@ input:not([type="checkbox"], [type="radio"]), select, textarea {
841
786
  margin-bottom: var(--cirth-spacing);
842
787
  }
843
788
 
844
- select::-ms-expand {
845
- background-color: #0000;
846
- border: 0;
847
- }
848
-
849
789
  select:not([multiple], [size]) {
850
- padding-right: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
851
- padding-left: var(--cirth-form-element-spacing-horizontal);
790
+ padding-inline: var(--cirth-form-element-spacing-horizontal) calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
852
791
  background-image: var(--cirth-icon-chevron);
853
792
  background-position: center right var(--cirth-space-3);
854
793
  background-size: var(--cirth-size-4) auto;
855
794
  background-repeat: no-repeat;
856
- padding-inline-start: var(--cirth-form-element-spacing-horizontal);
857
- padding-inline-end: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
858
795
  }
859
796
 
860
797
  select[multiple] option:checked {
@@ -1043,76 +980,80 @@ label:has([type="checkbox"], [type="radio"]) {
1043
980
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1044
981
  --cirth-icon-position: var(--cirth-space-3);
1045
982
  --cirth-icon-width: var(--cirth-size-4);
1046
- padding-right: calc(var(--cirth-icon-width) + var(--cirth-icon-position));
1047
983
  background-image: var(--cirth-icon-date);
1048
984
  background-position: center right var(--cirth-icon-position);
1049
985
  background-size: var(--cirth-icon-width) auto;
1050
986
  background-repeat: no-repeat;
987
+ padding-inline-end: calc(var(--cirth-icon-width) + var(--cirth-icon-position));
1051
988
  }
1052
989
 
1053
990
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="time"] {
1054
991
  background-image: var(--cirth-icon-time);
1055
992
  }
1056
993
 
994
+ ::-webkit-date-and-time-value {
995
+ text-align: inherit;
996
+ }
997
+
998
+ ::-webkit-datetime-edit {
999
+ padding-block: 0;
1000
+ }
1001
+
1057
1002
  [type="date"]::-webkit-calendar-picker-indicator {
1058
1003
  width: var(--cirth-icon-width);
1059
- margin-right: calc(var(--cirth-icon-width) * -1);
1060
- margin-left: var(--cirth-icon-position);
1004
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1061
1005
  opacity: 0;
1062
1006
  }
1063
1007
 
1064
1008
  [type="datetime-local"]::-webkit-calendar-picker-indicator {
1065
1009
  width: var(--cirth-icon-width);
1066
- margin-right: calc(var(--cirth-icon-width) * -1);
1067
- margin-left: var(--cirth-icon-position);
1010
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1068
1011
  opacity: 0;
1069
1012
  }
1070
1013
 
1071
1014
  [type="month"]::-webkit-calendar-picker-indicator {
1072
1015
  width: var(--cirth-icon-width);
1073
- margin-right: calc(var(--cirth-icon-width) * -1);
1074
- margin-left: var(--cirth-icon-position);
1016
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1075
1017
  opacity: 0;
1076
1018
  }
1077
1019
 
1078
1020
  [type="time"]::-webkit-calendar-picker-indicator {
1079
1021
  width: var(--cirth-icon-width);
1080
- margin-right: calc(var(--cirth-icon-width) * -1);
1081
- margin-left: var(--cirth-icon-position);
1022
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1082
1023
  opacity: 0;
1083
1024
  }
1084
1025
 
1085
1026
  [type="week"]::-webkit-calendar-picker-indicator {
1086
1027
  width: var(--cirth-icon-width);
1087
- margin-right: calc(var(--cirth-icon-width) * -1);
1088
- margin-left: var(--cirth-icon-position);
1028
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1089
1029
  opacity: 0;
1090
1030
  }
1091
1031
 
1092
1032
  @-moz-document url-prefix() {
1093
1033
  [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"] {
1094
- padding-right: var(--cirth-form-element-spacing-horizontal);
1095
1034
  background-image: none;
1035
+ padding-inline-end: var(--cirth-form-element-spacing-horizontal);
1096
1036
  }
1097
1037
  }
1098
1038
 
1099
1039
  [dir="rtl"] :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1040
+ background-position: center left var(--cirth-icon-position);
1100
1041
  text-align: right;
1101
1042
  }
1102
1043
 
1103
1044
  [type="file"] {
1104
1045
  --cirth-color: var(--cirth-muted-color);
1105
- margin-left: calc(var(--cirth-outline-width) * -1);
1106
1046
  padding: calc(var(--cirth-form-element-spacing-vertical) * .5) 0;
1107
- padding-left: var(--cirth-outline-width);
1108
1047
  background: none;
1109
1048
  border: 0;
1110
1049
  border-radius: 0;
1050
+ margin-inline-start: calc(var(--cirth-outline-width) * -1);
1051
+ padding-inline-start: var(--cirth-outline-width);
1111
1052
  }
1112
1053
 
1113
1054
  [type="file"]::file-selector-button {
1114
- margin-right: calc(var(--cirth-spacing) / 2);
1115
1055
  padding: calc(var(--cirth-form-element-spacing-vertical) * .5) var(--cirth-form-element-spacing-horizontal);
1056
+ margin-inline-end: calc(var(--cirth-spacing) / 2);
1116
1057
  }
1117
1058
 
1118
1059
  [type="file"]:is(:hover, :active, :focus)::file-selector-button {
@@ -1296,7 +1237,7 @@ details summary:focus-visible:not([role]) {
1296
1237
  }
1297
1238
 
1298
1239
  details summary[role="button"] {
1299
- text-align: left;
1240
+ text-align: start;
1300
1241
  width: 100%;
1301
1242
  }
1302
1243
 
@@ -1316,10 +1257,6 @@ details[open] > summary:after {
1316
1257
  transform: rotate(0);
1317
1258
  }
1318
1259
 
1319
- [dir="rtl"] details summary {
1320
- text-align: right;
1321
- }
1322
-
1323
1260
  [dir="rtl"] details summary:after {
1324
1261
  float: left;
1325
1262
  background-position: 0;
@@ -1334,12 +1271,15 @@ article {
1334
1271
  }
1335
1272
 
1336
1273
  article > header, article > footer {
1337
- margin-right: calc(var(--cirth-block-spacing-horizontal) * -1);
1338
- margin-left: calc(var(--cirth-block-spacing-horizontal) * -1);
1274
+ margin-inline: calc(var(--cirth-block-spacing-horizontal) * -1);
1339
1275
  padding: calc(var(--cirth-block-spacing-vertical) - var(--cirth-space-2)) var(--cirth-block-spacing-horizontal);
1340
1276
  background-color: var(--cirth-card-sectioning-background-color);
1341
1277
  }
1342
1278
 
1279
+ article > header > :last-child, article > footer > :last-child {
1280
+ margin-bottom: 0;
1281
+ }
1282
+
1343
1283
  article > header {
1344
1284
  margin-top: calc(var(--cirth-block-spacing-vertical) * -1);
1345
1285
  margin-bottom: var(--cirth-block-spacing-vertical);
@@ -1454,12 +1394,7 @@ details.dropdown > summary + ul {
1454
1394
  padding: 0;
1455
1395
  display: flex;
1456
1396
  position: absolute;
1457
- left: 0;
1458
- }
1459
-
1460
- details.dropdown > summary + ul[dir="rtl"] {
1461
- left: auto;
1462
- right: 0;
1397
+ inset-inline-start: 0;
1463
1398
  }
1464
1399
 
1465
1400
  details.dropdown > summary + ul li {
@@ -1493,7 +1428,9 @@ details.dropdown > summary + ul li a:hover, details.dropdown > summary + ul li a
1493
1428
  }
1494
1429
 
1495
1430
  details.dropdown > summary + ul li label {
1496
- width: 100%;
1431
+ margin: calc(var(--cirth-form-element-spacing-vertical) * -.5) calc(var(--cirth-form-element-spacing-horizontal) * -1);
1432
+ padding: calc(var(--cirth-form-element-spacing-vertical) * .5) var(--cirth-form-element-spacing-horizontal);
1433
+ display: block;
1497
1434
  }
1498
1435
 
1499
1436
  details.dropdown > summary + ul li:has(label):hover {
@@ -1526,6 +1463,16 @@ label > details.dropdown {
1526
1463
  margin-top: calc(var(--cirth-spacing) * .25);
1527
1464
  }
1528
1465
 
1466
+ [dir="rtl"] details.dropdown > summary:after, [dir="rtl"] details.dropdown > button:after, [dir="rtl"] details.dropdown > a:after {
1467
+ float: left;
1468
+ transform: rotate(0deg) translateX(calc((var(--cirth-form-element-spacing-horizontal) - var(--cirth-space-3)) * -1));
1469
+ background-position: 0;
1470
+ }
1471
+
1472
+ [dir="rtl"] nav details.dropdown > summary:after {
1473
+ transform: rotate(0) translateX(0);
1474
+ }
1475
+
1529
1476
  [role="search"], [role="group"] {
1530
1477
  width: 100%;
1531
1478
  margin-bottom: var(--cirth-spacing);
@@ -1533,33 +1480,50 @@ label > details.dropdown {
1533
1480
  box-shadow: var(--cirth-group-box-shadow, 0 0 0 #0000);
1534
1481
  vertical-align: middle;
1535
1482
  transition: box-shadow var(--cirth-transition);
1483
+ flex-wrap: wrap;
1536
1484
  display: inline-flex;
1537
1485
  position: relative;
1538
1486
  }
1539
1487
 
1488
+ [role="search"] > small, [role="group"] > small {
1489
+ margin-top: calc(var(--cirth-spacing) * .25);
1490
+ flex: 0 0 100%;
1491
+ order: 1;
1492
+ margin-bottom: 0;
1493
+ }
1494
+
1540
1495
  [role="search"] > *, [role="search"] input:not([type="checkbox"], [type="radio"]), [role="search"] select, [role="group"] > *, [role="group"] input:not([type="checkbox"], [type="radio"]), [role="group"] select {
1541
1496
  flex: auto;
1542
1497
  margin-bottom: 0;
1543
1498
  position: relative;
1544
1499
  }
1545
1500
 
1501
+ [role="search"] > :is(input, select, textarea), [role="search"] input:not([type="checkbox"], [type="radio"]):is(input, select, textarea), [role="search"] select:is(input, select, textarea), [role="group"] > :is(input, select, textarea), [role="group"] input:not([type="checkbox"], [type="radio"]):is(input, select, textarea), [role="group"] select:is(input, select, textarea) {
1502
+ flex: 99;
1503
+ }
1504
+
1546
1505
  [role="search"] > :not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] > :not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
1547
- border-top-left-radius: 0;
1548
- border-bottom-left-radius: 0;
1549
- margin-left: 0;
1506
+ border-start-start-radius: 0;
1507
+ border-end-start-radius: 0;
1508
+ margin-inline-start: 0;
1550
1509
  }
1551
1510
 
1552
1511
  [role="search"] > :not(:last-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="search"] select:not(:last-child), [role="group"] > :not(:last-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="group"] select:not(:last-child) {
1553
- border-top-right-radius: 0;
1554
- border-bottom-right-radius: 0;
1512
+ border-start-end-radius: 0;
1513
+ border-end-end-radius: 0;
1555
1514
  }
1556
1515
 
1557
1516
  [role="search"] > :focus, [role="search"] input:not([type="checkbox"], [type="radio"]):focus, [role="search"] select:focus, [role="group"] > :focus, [role="group"] input:not([type="checkbox"], [type="radio"]):focus, [role="group"] select:focus {
1558
1517
  z-index: 2;
1559
1518
  }
1560
1519
 
1520
+ :is([role="search"] > :has( + small:last-child), [role="group"] > :has( + small:last-child)) {
1521
+ border-start-end-radius: var(--cirth-border-radius);
1522
+ border-end-end-radius: var(--cirth-border-radius);
1523
+ }
1524
+
1561
1525
  [role="search"] button:not(:first-child), [role="search"] [type="submit"]:not(:first-child), [role="search"] [type="reset"]:not(:first-child), [role="search"] [type="button"]:not(:first-child), [role="search"] [role="button"]:not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] button:not(:first-child), [role="group"] [type="submit"]:not(:first-child), [role="group"] [type="reset"]:not(:first-child), [role="group"] [type="button"]:not(:first-child), [role="group"] [role="button"]:not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
1562
- margin-left: calc(var(--cirth-border-width) * -1);
1526
+ margin-inline-start: calc(var(--cirth-border-width) * -1);
1563
1527
  }
1564
1528
 
1565
1529
  [role="search"] button, [role="search"] [type="submit"], [role="search"] [type="reset"], [role="search"] [type="button"], [role="search"] [role="button"], [role="group"] button, [role="group"] [type="submit"], [role="group"] [type="reset"], [role="group"] [type="button"], [role="group"] [role="button"] {
@@ -1571,19 +1535,7 @@ label > details.dropdown {
1571
1535
  --cirth-group-box-shadow: var(--cirth-group-box-shadow-focus-with-button);
1572
1536
  }
1573
1537
 
1574
- [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]) {
1575
- border-color: #0000;
1576
- }
1577
-
1578
- [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
1579
- border-color: #0000;
1580
- }
1581
-
1582
- [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]) {
1583
- border-color: #0000;
1584
- }
1585
-
1586
- [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
1538
+ :is([role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"], [aria-invalid]), [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select:not([aria-invalid]), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"], [aria-invalid]), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select:not([aria-invalid])) {
1587
1539
  border-color: #0000;
1588
1540
  }
1589
1541
 
@@ -1653,13 +1605,18 @@ label > details.dropdown {
1653
1605
  }
1654
1606
 
1655
1607
  [role="search"] > :first-child {
1656
- border-top-left-radius: var(--cirth-radius-pill);
1657
- border-bottom-left-radius: var(--cirth-radius-pill);
1608
+ border-start-start-radius: var(--cirth-radius-pill);
1609
+ border-end-start-radius: var(--cirth-radius-pill);
1658
1610
  }
1659
1611
 
1660
1612
  [role="search"] > :last-child {
1661
- border-top-right-radius: var(--cirth-radius-pill);
1662
- border-bottom-right-radius: var(--cirth-radius-pill);
1613
+ border-start-end-radius: var(--cirth-radius-pill);
1614
+ border-end-end-radius: var(--cirth-radius-pill);
1615
+ }
1616
+
1617
+ [role="search"] > :has( + small:last-child) {
1618
+ border-start-end-radius: var(--cirth-radius-pill);
1619
+ border-end-end-radius: var(--cirth-radius-pill);
1663
1620
  }
1664
1621
 
1665
1622
  [aria-busy="true"]:not(input, select, textarea, html, form) {
@@ -1667,14 +1624,24 @@ label > details.dropdown {
1667
1624
  }
1668
1625
 
1669
1626
  [aria-busy="true"]:not(input, select, textarea, html, form):before {
1670
- background-image: var(--cirth-icon-loading);
1671
1627
  content: "";
1672
1628
  vertical-align: -.125em;
1673
- background-repeat: no-repeat;
1674
- background-size: 1em;
1675
1629
  width: 1em;
1676
1630
  height: 1em;
1631
+ -webkit-mask-image: var(--cirth-icon-loading);
1632
+ mask-image: var(--cirth-icon-loading);
1633
+ background-color: currentColor;
1677
1634
  display: inline-block;
1635
+ -webkit-mask-size: 1em;
1636
+ mask-size: 1em;
1637
+ -webkit-mask-repeat: no-repeat;
1638
+ mask-repeat: no-repeat;
1639
+ }
1640
+
1641
+ @media (forced-colors: active) {
1642
+ [aria-busy="true"]:not(input, select, textarea, html, form):before {
1643
+ background-color: canvastext;
1644
+ }
1678
1645
  }
1679
1646
 
1680
1647
  [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty):before {
@@ -1685,6 +1652,18 @@ label > details.dropdown {
1685
1652
  text-align: center;
1686
1653
  }
1687
1654
 
1655
+ input:is([type="submit"], [type="button"], [type="reset"])[aria-busy="true"] {
1656
+ background-image: var(--cirth-icon-loading);
1657
+ background-position: center left var(--cirth-form-element-spacing-horizontal);
1658
+ background-repeat: no-repeat;
1659
+ background-size: 1em;
1660
+ padding-inline-start: calc(var(--cirth-form-element-spacing-horizontal) + 1em + var(--cirth-spacing) * .5);
1661
+ }
1662
+
1663
+ [dir="rtl"] input:is([type="submit"], [type="button"], [type="reset"])[aria-busy="true"] {
1664
+ background-position: center right var(--cirth-form-element-spacing-horizontal);
1665
+ }
1666
+
1688
1667
  button[aria-busy="true"], [type="submit"][aria-busy="true"], [type="button"][aria-busy="true"], [type="reset"][aria-busy="true"], [role="button"][aria-busy="true"], a[aria-busy="true"] {
1689
1668
  pointer-events: none;
1690
1669
  }
@@ -1715,6 +1694,7 @@ dialog {
1715
1694
  dialog > article {
1716
1695
  width: 100%;
1717
1696
  max-height: calc(100vh - var(--cirth-spacing) * 2);
1697
+ max-height: calc(100dvh - var(--cirth-spacing) * 2);
1718
1698
  margin: var(--cirth-spacing);
1719
1699
  overflow: auto;
1720
1700
  }
@@ -1737,13 +1717,13 @@ dialog > article > header > * {
1737
1717
 
1738
1718
  dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
1739
1719
  margin: 0;
1740
- margin-left: var(--cirth-spacing);
1741
1720
  float: right;
1721
+ margin-inline-start: var(--cirth-spacing);
1742
1722
  padding: 0;
1743
1723
  }
1744
1724
 
1745
1725
  dialog > article > footer {
1746
- text-align: right;
1726
+ text-align: end;
1747
1727
  }
1748
1728
 
1749
1729
  dialog > article > footer button, dialog > article > footer [role="button"] {
@@ -1751,7 +1731,7 @@ dialog > article > footer button, dialog > article > footer [role="button"] {
1751
1731
  }
1752
1732
 
1753
1733
  dialog > article > footer button:not(:first-of-type), dialog > article > footer [role="button"]:not(:first-of-type) {
1754
- margin-left: calc(var(--cirth-spacing) * .5);
1734
+ margin-inline-start: calc(var(--cirth-spacing) * .5);
1755
1735
  }
1756
1736
 
1757
1737
  dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
@@ -1767,7 +1747,7 @@ dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
1767
1747
  background-color: #0000;
1768
1748
  background-repeat: no-repeat;
1769
1749
  border: none;
1770
- margin-left: auto;
1750
+ margin-inline-start: auto;
1771
1751
  display: block;
1772
1752
  }
1773
1753
 
@@ -1779,10 +1759,14 @@ dialog:not([open]), dialog[open="false"] {
1779
1759
  display: none;
1780
1760
  }
1781
1761
 
1762
+ [dir="rtl"] dialog > article > header :is(a, button)[rel="prev"], [dir="rtl"] dialog > article > header .close {
1763
+ float: left;
1764
+ }
1765
+
1782
1766
  .modal-is-open {
1783
- padding-right: var(--cirth-scrollbar-width, 0px);
1784
1767
  pointer-events: none;
1785
1768
  touch-action: none;
1769
+ padding-inline-end: var(--cirth-scrollbar-width, 0);
1786
1770
  overflow: hidden;
1787
1771
  }
1788
1772
 
@@ -1849,11 +1833,11 @@ nav ol, nav ul {
1849
1833
  }
1850
1834
 
1851
1835
  nav ol:first-of-type, nav ul:first-of-type {
1852
- margin-left: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1836
+ margin-inline-start: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1853
1837
  }
1854
1838
 
1855
1839
  nav ol:last-of-type, nav ul:last-of-type {
1856
- margin-right: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1840
+ margin-inline-end: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1857
1841
  }
1858
1842
 
1859
1843
  nav li {
@@ -1862,23 +1846,27 @@ nav li {
1862
1846
  display: inline-block;
1863
1847
  }
1864
1848
 
1865
- nav li :where(a, [role="link"]) {
1849
+ nav li :where(a:not([role="button"]), [role="link"]) {
1866
1850
  margin: calc(var(--cirth-nav-link-spacing-vertical) * -1) calc(var(--cirth-nav-link-spacing-horizontal) * -1);
1867
1851
  padding: var(--cirth-nav-link-spacing-vertical) var(--cirth-nav-link-spacing-horizontal);
1868
1852
  border-radius: var(--cirth-border-radius);
1869
1853
  display: inline-block;
1870
1854
  }
1871
1855
 
1872
- nav li :where(a, [role="link"]):not(:hover) {
1856
+ nav li :where(a:not([role="button"]), [role="link"]):not(:hover) {
1873
1857
  text-decoration: none;
1874
1858
  }
1875
1859
 
1860
+ nav li [role="group"], nav li [role="search"] {
1861
+ width: auto;
1862
+ margin-bottom: 0;
1863
+ }
1864
+
1876
1865
  nav li button, nav li [role="button"], nav li [type="button"], nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), nav li select {
1877
1866
  height: auto;
1878
- margin-right: inherit;
1879
- margin-bottom: 0;
1880
- margin-left: inherit;
1867
+ margin-inline: inherit;
1881
1868
  padding: calc(var(--cirth-nav-link-spacing-vertical) - var(--cirth-border-width) * 2) var(--cirth-nav-link-spacing-horizontal);
1869
+ margin-bottom: 0;
1882
1870
  }
1883
1871
 
1884
1872
  nav[aria-label="breadcrumb"] {
@@ -1930,10 +1918,6 @@ aside li [role="button"] {
1930
1918
  margin: inherit;
1931
1919
  }
1932
1920
 
1933
- [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child) :after {
1934
- content: "\\";
1935
- }
1936
-
1937
1921
  progress {
1938
1922
  vertical-align: baseline;
1939
1923
  appearance: none;
@@ -2139,7 +2123,7 @@ progress::-moz-progress-bar {
2139
2123
  opacity: 0;
2140
2124
  }
2141
2125
 
2142
- to {
2126
+ 100% {
2143
2127
  transform: var(--cirth-tooltip-caret-slide-to);
2144
2128
  opacity: 1;
2145
2129
  }
@@ -2158,14 +2142,10 @@ progress::-moz-progress-bar {
2158
2142
  }
2159
2143
 
2160
2144
  [aria-hidden="false"][hidden]:not(:focus) {
2161
- clip: rect(0, 0, 0, 0);
2145
+ clip-path: inset(50%);
2162
2146
  position: absolute;
2163
2147
  }
2164
2148
 
2165
- a, area, button, input, label, select, summary, textarea, [tabindex] {
2166
- -ms-touch-action: manipulation;
2167
- }
2168
-
2169
2149
  [dir="rtl"] {
2170
2150
  direction: rtl;
2171
2151
  }
@@ -2182,6 +2162,34 @@ a, area, button, input, label, select, summary, textarea, [tabindex] {
2182
2162
  }
2183
2163
  }
2184
2164
 
2165
+ .sr-only {
2166
+ clip-path: inset(50%);
2167
+ white-space: nowrap;
2168
+ border: 0;
2169
+ width: 1px;
2170
+ height: 1px;
2171
+ margin: -1px;
2172
+ padding: 0;
2173
+ position: absolute;
2174
+ overflow: hidden;
2175
+ }
2176
+
2177
+ .sr-only-focusable:focus, .sr-only-focusable:focus-within {
2178
+ clip-path: none;
2179
+ white-space: normal;
2180
+ width: auto;
2181
+ height: auto;
2182
+ margin: 0;
2183
+ position: static;
2184
+ overflow: visible;
2185
+ }
2186
+
2187
+ .truncate {
2188
+ white-space: nowrap;
2189
+ text-overflow: ellipsis;
2190
+ overflow: hidden;
2191
+ }
2192
+
2185
2193
  :root, :host {
2186
2194
  --cirth-color-black: #000;
2187
2195
  --cirth-color-white: #fff;
@@ -2326,6 +2334,7 @@ a, a.secondary, a.contrast {
2326
2334
 
2327
2335
  small {
2328
2336
  --cirth-font-size: .875em;
2337
+ font-size: var(--cirth-font-size);
2329
2338
  }
2330
2339
 
2331
2340
  h1, h2, h3 {
@@ -2386,7 +2395,7 @@ thead th, thead td, tfoot th, tfoot td {
2386
2395
  --cirth-border-width: .1875rem;
2387
2396
  }
2388
2397
 
2389
- pre, code, kbd, samp {
2398
+ pre, code, kbd, samp, var {
2390
2399
  --cirth-font-family: var(--cirth-font-family-mono);
2391
2400
  }
2392
2401
 
@@ -2461,7 +2470,7 @@ nav details.dropdown summary:focus-visible {
2461
2470
  --cirth-form-element-spacing-horizontal: var(--cirth-space-8);
2462
2471
  }
2463
2472
 
2464
- details summary[role="button"]:not(.outline):after, [aria-busy="true"]:not(input, select, textarea):is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
2473
+ details summary[role="button"]:not(.outline):after {
2465
2474
  filter: brightness(0) invert();
2466
2475
  }
2467
2476