@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.
@@ -42,17 +42,14 @@
42
42
 
43
43
  .cirth .container, .cirth .container-fluid {
44
44
  width: 100%;
45
- padding-right: var(--cirth-spacing);
46
- padding-left: var(--cirth-spacing);
47
- margin-left: auto;
48
- margin-right: auto;
45
+ padding-inline: var(--cirth-spacing);
46
+ margin-inline: auto;
49
47
  }
50
48
 
51
49
  @media (min-width: 576px) {
52
50
  .cirth .container {
53
51
  max-width: 510px;
54
- padding-left: 0;
55
- padding-right: 0;
52
+ padding-inline: 0;
56
53
  }
57
54
  }
58
55
 
@@ -81,8 +78,7 @@
81
78
  }
82
79
 
83
80
  .cirth .grid {
84
- grid-column-gap: var(--cirth-grid-column-gap);
85
- grid-row-gap: var(--cirth-grid-row-gap);
81
+ gap: var(--cirth-grid-row-gap) var(--cirth-grid-column-gap);
86
82
  grid-template-columns: 1fr;
87
83
  display: grid;
88
84
  }
@@ -97,6 +93,10 @@
97
93
  min-width: 0;
98
94
  }
99
95
 
96
+ .cirth .grid > :where(button, [type="submit"], [type="reset"], [role="button"], input:not([type="checkbox"], [type="radio"]), select, textarea) {
97
+ margin-bottom: 0;
98
+ }
99
+
100
100
  .cirth .overflow-auto {
101
101
  overflow: auto;
102
102
  }
@@ -210,8 +210,6 @@
210
210
  .cirth blockquote {
211
211
  margin: var(--cirth-typography-spacing-vertical) 0;
212
212
  padding: var(--cirth-spacing);
213
- border-right: none;
214
- border-left: var(--cirth-border-width-4) solid var(--cirth-blockquote-border-color);
215
213
  border-inline-start: var(--cirth-border-width-4) solid var(--cirth-blockquote-border-color);
216
214
  border-inline-end: none;
217
215
  display: block;
@@ -251,7 +249,6 @@
251
249
  text-decoration: var(--cirth-text-decoration);
252
250
  -webkit-text-decoration-color: var(--cirth-underline);
253
251
  text-decoration-color: var(--cirth-underline);
254
- text-underline-offset: .125em;
255
252
  transition: background-color var(--cirth-transition), color var(--cirth-transition), text-decoration var(--cirth-transition), box-shadow var(--cirth-transition);
256
253
  outline: none;
257
254
  }
@@ -295,7 +292,6 @@
295
292
  text-transform: none;
296
293
  margin: 0;
297
294
  font-family: inherit;
298
- overflow: visible;
299
295
  }
300
296
 
301
297
  .cirth button, .cirth [type="submit"], .cirth [type="reset"], .cirth [type="button"] {
@@ -498,17 +494,16 @@
498
494
  border-collapse: collapse;
499
495
  border-spacing: 0;
500
496
  text-indent: 0;
497
+ border-color: currentColor;
501
498
  width: 100%;
502
499
  }
503
500
 
504
501
  .cirth th, .cirth td {
505
502
  padding: calc(var(--cirth-spacing) / 2) var(--cirth-spacing);
506
503
  border-bottom: var(--cirth-border-width) solid var(--cirth-table-border-color);
507
- background-color: var(--cirth-background-color);
508
504
  color: var(--cirth-color);
509
505
  font-weight: var(--cirth-font-weight);
510
506
  font-variant-numeric: tabular-nums;
511
- text-align: left;
512
507
  text-align: start;
513
508
  }
514
509
 
@@ -525,22 +520,15 @@
525
520
  vertical-align: middle;
526
521
  }
527
522
 
528
- .cirth audio, .cirth video {
529
- display: inline-block;
530
- }
531
-
532
- .cirth audio:not([controls]) {
533
- height: 0;
534
- display: none;
535
- }
536
-
537
523
  .cirth :where(iframe) {
538
524
  border-style: none;
539
525
  }
540
526
 
541
527
  .cirth img {
542
- border-style: none;
543
528
  max-width: 100%;
529
+ }
530
+
531
+ .cirth img:where(:not([height]), [width][height]) {
544
532
  height: auto;
545
533
  }
546
534
 
@@ -548,10 +536,6 @@
548
536
  fill: currentColor;
549
537
  }
550
538
 
551
- .cirth svg:not(:root), .cirth svg:not(:host) {
552
- overflow: hidden;
553
- }
554
-
555
539
  .cirth pre, .cirth code, .cirth kbd, .cirth samp {
556
540
  font-size: .875em;
557
541
  font-family: var(--cirth-font-family);
@@ -563,7 +547,6 @@
563
547
  }
564
548
 
565
549
  .cirth pre {
566
- -ms-overflow-style: scrollbar;
567
550
  overflow: auto;
568
551
  }
569
552
 
@@ -599,6 +582,13 @@
599
582
  vertical-align: baseline;
600
583
  }
601
584
 
585
+ .cirth var {
586
+ color: var(--cirth-code-color);
587
+ font-size: .875em;
588
+ font-style: italic;
589
+ font-family: var(--cirth-font-family);
590
+ }
591
+
602
592
  .cirth figure {
603
593
  margin: 0;
604
594
  padding: 0;
@@ -618,14 +608,10 @@
618
608
  color: inherit;
619
609
  }
620
610
 
621
- .cirth [hidden], .cirth template {
611
+ .cirth [hidden]:where(:not([hidden="until-found"])) {
622
612
  display: none;
623
613
  }
624
614
 
625
- .cirth canvas {
626
- display: inline-block;
627
- }
628
-
629
615
  .cirth input, .cirth optgroup, .cirth select, .cirth textarea {
630
616
  font-size: var(--cirth-font-size-md);
631
617
  line-height: var(--cirth-line-height);
@@ -634,26 +620,7 @@
634
620
  font-family: inherit;
635
621
  }
636
622
 
637
- .cirth input {
638
- overflow: visible;
639
- }
640
-
641
- .cirth select {
642
- text-transform: none;
643
- }
644
-
645
623
  .cirth legend {
646
- max-width: 100%;
647
- color: inherit;
648
- white-space: normal;
649
- padding: 0;
650
- }
651
-
652
- .cirth textarea {
653
- overflow: auto;
654
- }
655
-
656
- .cirth [type="checkbox"], .cirth [type="radio"] {
657
624
  padding: 0;
658
625
  }
659
626
 
@@ -674,28 +641,15 @@
674
641
  -webkit-appearance: none;
675
642
  }
676
643
 
677
- .cirth ::-webkit-file-upload-button {
644
+ .cirth ::file-selector-button {
678
645
  -webkit-appearance: button;
679
646
  font: inherit;
680
647
  }
681
648
 
682
- .cirth ::-moz-focus-inner {
683
- border-style: none;
684
- padding: 0;
685
- }
686
-
687
- .cirth :-moz-focusring {
688
- outline: none;
689
- }
690
-
691
649
  .cirth :-moz-ui-invalid {
692
650
  box-shadow: none;
693
651
  }
694
652
 
695
- .cirth ::-ms-expand {
696
- display: none;
697
- }
698
-
699
653
  .cirth [type="file"], .cirth [type="range"] {
700
654
  border-width: 0;
701
655
  padding: 0;
@@ -772,13 +726,10 @@
772
726
  }
773
727
 
774
728
  .cirth :where(input, select, textarea):not([type="checkbox"], [type="radio"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"], [type="range"])[aria-invalid] {
775
- padding-right: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
776
- padding-left: var(--cirth-form-element-spacing-horizontal);
729
+ padding-inline: var(--cirth-form-element-spacing-horizontal) calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
777
730
  background-position: center right var(--cirth-space-3);
778
731
  background-size: var(--cirth-size-4) auto;
779
732
  background-repeat: no-repeat;
780
- padding-inline-start: var(--cirth-form-element-spacing-horizontal);
781
- padding-inline-end: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
782
733
  }
783
734
 
784
735
  .cirth :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) {
@@ -819,17 +770,11 @@
819
770
  background-position: center left var(--cirth-space-3);
820
771
  }
821
772
 
822
- .cirth input::placeholder, .cirth textarea::placeholder, .cirth select:invalid {
823
- color: var(--cirth-form-element-placeholder-color);
824
- opacity: 1;
825
- }
826
-
827
- .cirth input::-webkit-input-placeholder {
828
- color: var(--cirth-form-element-placeholder-color);
829
- opacity: 1;
773
+ [dir="rtl"] .cirth textarea[aria-invalid] {
774
+ background-position: top left var(--cirth-space-3);
830
775
  }
831
776
 
832
- .cirth textarea::-webkit-input-placeholder {
777
+ .cirth input::placeholder, .cirth textarea::placeholder, .cirth select:invalid {
833
778
  color: var(--cirth-form-element-placeholder-color);
834
779
  opacity: 1;
835
780
  }
@@ -838,20 +783,12 @@
838
783
  margin-bottom: var(--cirth-spacing);
839
784
  }
840
785
 
841
- .cirth select::-ms-expand {
842
- background-color: #0000;
843
- border: 0;
844
- }
845
-
846
786
  .cirth select:not([multiple], [size]) {
847
- padding-right: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
848
- padding-left: var(--cirth-form-element-spacing-horizontal);
787
+ padding-inline: var(--cirth-form-element-spacing-horizontal) calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
849
788
  background-image: var(--cirth-icon-chevron);
850
789
  background-position: center right var(--cirth-space-3);
851
790
  background-size: var(--cirth-size-4) auto;
852
791
  background-repeat: no-repeat;
853
- padding-inline-start: var(--cirth-form-element-spacing-horizontal);
854
- padding-inline-end: calc(var(--cirth-form-element-spacing-horizontal) + var(--cirth-space-6));
855
792
  }
856
793
 
857
794
  .cirth select[multiple] option:checked {
@@ -1040,76 +977,80 @@
1040
977
  .cirth input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1041
978
  --cirth-icon-position: var(--cirth-space-3);
1042
979
  --cirth-icon-width: var(--cirth-size-4);
1043
- padding-right: calc(var(--cirth-icon-width) + var(--cirth-icon-position));
1044
980
  background-image: var(--cirth-icon-date);
1045
981
  background-position: center right var(--cirth-icon-position);
1046
982
  background-size: var(--cirth-icon-width) auto;
1047
983
  background-repeat: no-repeat;
984
+ padding-inline-end: calc(var(--cirth-icon-width) + var(--cirth-icon-position));
1048
985
  }
1049
986
 
1050
987
  .cirth input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="time"] {
1051
988
  background-image: var(--cirth-icon-time);
1052
989
  }
1053
990
 
991
+ .cirth ::-webkit-date-and-time-value {
992
+ text-align: inherit;
993
+ }
994
+
995
+ .cirth ::-webkit-datetime-edit {
996
+ padding-block: 0;
997
+ }
998
+
1054
999
  .cirth [type="date"]::-webkit-calendar-picker-indicator {
1055
1000
  width: var(--cirth-icon-width);
1056
- margin-right: calc(var(--cirth-icon-width) * -1);
1057
- margin-left: var(--cirth-icon-position);
1001
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1058
1002
  opacity: 0;
1059
1003
  }
1060
1004
 
1061
1005
  .cirth [type="datetime-local"]::-webkit-calendar-picker-indicator {
1062
1006
  width: var(--cirth-icon-width);
1063
- margin-right: calc(var(--cirth-icon-width) * -1);
1064
- margin-left: var(--cirth-icon-position);
1007
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1065
1008
  opacity: 0;
1066
1009
  }
1067
1010
 
1068
1011
  .cirth [type="month"]::-webkit-calendar-picker-indicator {
1069
1012
  width: var(--cirth-icon-width);
1070
- margin-right: calc(var(--cirth-icon-width) * -1);
1071
- margin-left: var(--cirth-icon-position);
1013
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1072
1014
  opacity: 0;
1073
1015
  }
1074
1016
 
1075
1017
  .cirth [type="time"]::-webkit-calendar-picker-indicator {
1076
1018
  width: var(--cirth-icon-width);
1077
- margin-right: calc(var(--cirth-icon-width) * -1);
1078
- margin-left: var(--cirth-icon-position);
1019
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1079
1020
  opacity: 0;
1080
1021
  }
1081
1022
 
1082
1023
  .cirth [type="week"]::-webkit-calendar-picker-indicator {
1083
1024
  width: var(--cirth-icon-width);
1084
- margin-right: calc(var(--cirth-icon-width) * -1);
1085
- margin-left: var(--cirth-icon-position);
1025
+ margin-inline: var(--cirth-icon-position) calc(var(--cirth-icon-width) * -1);
1086
1026
  opacity: 0;
1087
1027
  }
1088
1028
 
1089
1029
  @-moz-document url-prefix() {
1090
1030
  .cirth [type="date"], .cirth [type="datetime-local"], .cirth [type="month"], .cirth [type="time"], .cirth [type="week"] {
1091
- padding-right: var(--cirth-form-element-spacing-horizontal);
1092
1031
  background-image: none;
1032
+ padding-inline-end: var(--cirth-form-element-spacing-horizontal);
1093
1033
  }
1094
1034
  }
1095
1035
 
1096
1036
  [dir="rtl"] .cirth :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1037
+ background-position: center left var(--cirth-icon-position);
1097
1038
  text-align: right;
1098
1039
  }
1099
1040
 
1100
1041
  .cirth [type="file"] {
1101
1042
  --cirth-color: var(--cirth-muted-color);
1102
- margin-left: calc(var(--cirth-outline-width) * -1);
1103
1043
  padding: calc(var(--cirth-form-element-spacing-vertical) * .5) 0;
1104
- padding-left: var(--cirth-outline-width);
1105
1044
  background: none;
1106
1045
  border: 0;
1107
1046
  border-radius: 0;
1047
+ margin-inline-start: calc(var(--cirth-outline-width) * -1);
1048
+ padding-inline-start: var(--cirth-outline-width);
1108
1049
  }
1109
1050
 
1110
1051
  .cirth [type="file"]::file-selector-button {
1111
- margin-right: calc(var(--cirth-spacing) / 2);
1112
1052
  padding: calc(var(--cirth-form-element-spacing-vertical) * .5) var(--cirth-form-element-spacing-horizontal);
1053
+ margin-inline-end: calc(var(--cirth-spacing) / 2);
1113
1054
  }
1114
1055
 
1115
1056
  .cirth [type="file"]:is(:hover, :active, :focus)::file-selector-button {
@@ -1293,7 +1234,7 @@
1293
1234
  }
1294
1235
 
1295
1236
  .cirth details summary[role="button"] {
1296
- text-align: left;
1237
+ text-align: start;
1297
1238
  width: 100%;
1298
1239
  }
1299
1240
 
@@ -1313,10 +1254,6 @@
1313
1254
  transform: rotate(0);
1314
1255
  }
1315
1256
 
1316
- [dir="rtl"] .cirth details summary {
1317
- text-align: right;
1318
- }
1319
-
1320
1257
  [dir="rtl"] .cirth details summary:after {
1321
1258
  float: left;
1322
1259
  background-position: 0;
@@ -1331,12 +1268,15 @@
1331
1268
  }
1332
1269
 
1333
1270
  .cirth article > header, .cirth article > footer {
1334
- margin-right: calc(var(--cirth-block-spacing-horizontal) * -1);
1335
- margin-left: calc(var(--cirth-block-spacing-horizontal) * -1);
1271
+ margin-inline: calc(var(--cirth-block-spacing-horizontal) * -1);
1336
1272
  padding: calc(var(--cirth-block-spacing-vertical) - var(--cirth-space-2)) var(--cirth-block-spacing-horizontal);
1337
1273
  background-color: var(--cirth-card-sectioning-background-color);
1338
1274
  }
1339
1275
 
1276
+ .cirth article > header > :last-child, .cirth article > footer > :last-child {
1277
+ margin-bottom: 0;
1278
+ }
1279
+
1340
1280
  .cirth article > header {
1341
1281
  margin-top: calc(var(--cirth-block-spacing-vertical) * -1);
1342
1282
  margin-bottom: var(--cirth-block-spacing-vertical);
@@ -1451,12 +1391,7 @@
1451
1391
  padding: 0;
1452
1392
  display: flex;
1453
1393
  position: absolute;
1454
- left: 0;
1455
- }
1456
-
1457
- .cirth details.dropdown > summary + ul[dir="rtl"] {
1458
- left: auto;
1459
- right: 0;
1394
+ inset-inline-start: 0;
1460
1395
  }
1461
1396
 
1462
1397
  .cirth details.dropdown > summary + ul li {
@@ -1490,7 +1425,9 @@
1490
1425
  }
1491
1426
 
1492
1427
  .cirth details.dropdown > summary + ul li label {
1493
- width: 100%;
1428
+ margin: calc(var(--cirth-form-element-spacing-vertical) * -.5) calc(var(--cirth-form-element-spacing-horizontal) * -1);
1429
+ padding: calc(var(--cirth-form-element-spacing-vertical) * .5) var(--cirth-form-element-spacing-horizontal);
1430
+ display: block;
1494
1431
  }
1495
1432
 
1496
1433
  .cirth details.dropdown > summary + ul li:has(label):hover {
@@ -1523,6 +1460,16 @@
1523
1460
  margin-top: calc(var(--cirth-spacing) * .25);
1524
1461
  }
1525
1462
 
1463
+ [dir="rtl"] .cirth details.dropdown > summary:after, [dir="rtl"] .cirth details.dropdown > button:after, [dir="rtl"] .cirth details.dropdown > a:after {
1464
+ float: left;
1465
+ transform: rotate(0deg) translateX(calc((var(--cirth-form-element-spacing-horizontal) - var(--cirth-space-3)) * -1));
1466
+ background-position: 0;
1467
+ }
1468
+
1469
+ [dir="rtl"] .cirth nav details.dropdown > summary:after {
1470
+ transform: rotate(0) translateX(0);
1471
+ }
1472
+
1526
1473
  .cirth [role="search"], .cirth [role="group"] {
1527
1474
  width: 100%;
1528
1475
  margin-bottom: var(--cirth-spacing);
@@ -1530,33 +1477,50 @@
1530
1477
  box-shadow: var(--cirth-group-box-shadow, 0 0 0 #0000);
1531
1478
  vertical-align: middle;
1532
1479
  transition: box-shadow var(--cirth-transition);
1480
+ flex-wrap: wrap;
1533
1481
  display: inline-flex;
1534
1482
  position: relative;
1535
1483
  }
1536
1484
 
1485
+ .cirth [role="search"] > small, .cirth [role="group"] > small {
1486
+ margin-top: calc(var(--cirth-spacing) * .25);
1487
+ flex: 0 0 100%;
1488
+ order: 1;
1489
+ margin-bottom: 0;
1490
+ }
1491
+
1537
1492
  .cirth [role="search"] > *, .cirth [role="search"] input:not([type="checkbox"], [type="radio"]), .cirth [role="search"] select, .cirth [role="group"] > *, .cirth [role="group"] input:not([type="checkbox"], [type="radio"]), .cirth [role="group"] select {
1538
1493
  flex: auto;
1539
1494
  margin-bottom: 0;
1540
1495
  position: relative;
1541
1496
  }
1542
1497
 
1498
+ .cirth [role="search"] > :is(input, select, textarea), .cirth [role="search"] input:not([type="checkbox"], [type="radio"]):is(input, select, textarea), .cirth [role="search"] select:is(input, select, textarea), .cirth [role="group"] > :is(input, select, textarea), .cirth [role="group"] input:not([type="checkbox"], [type="radio"]):is(input, select, textarea), .cirth [role="group"] select:is(input, select, textarea) {
1499
+ flex: 99;
1500
+ }
1501
+
1543
1502
  .cirth [role="search"] > :not(:first-child), .cirth [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), .cirth [role="search"] select:not(:first-child), .cirth [role="group"] > :not(:first-child), .cirth [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), .cirth [role="group"] select:not(:first-child) {
1544
- border-top-left-radius: 0;
1545
- border-bottom-left-radius: 0;
1546
- margin-left: 0;
1503
+ border-start-start-radius: 0;
1504
+ border-end-start-radius: 0;
1505
+ margin-inline-start: 0;
1547
1506
  }
1548
1507
 
1549
1508
  .cirth [role="search"] > :not(:last-child), .cirth [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child), .cirth [role="search"] select:not(:last-child), .cirth [role="group"] > :not(:last-child), .cirth [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child), .cirth [role="group"] select:not(:last-child) {
1550
- border-top-right-radius: 0;
1551
- border-bottom-right-radius: 0;
1509
+ border-start-end-radius: 0;
1510
+ border-end-end-radius: 0;
1552
1511
  }
1553
1512
 
1554
1513
  .cirth [role="search"] > :focus, .cirth [role="search"] input:not([type="checkbox"], [type="radio"]):focus, .cirth [role="search"] select:focus, .cirth [role="group"] > :focus, .cirth [role="group"] input:not([type="checkbox"], [type="radio"]):focus, .cirth [role="group"] select:focus {
1555
1514
  z-index: 2;
1556
1515
  }
1557
1516
 
1517
+ :is(.cirth [role="search"] > :has( + small:last-child), .cirth [role="group"] > :has( + small:last-child)) {
1518
+ border-start-end-radius: var(--cirth-border-radius);
1519
+ border-end-end-radius: var(--cirth-border-radius);
1520
+ }
1521
+
1558
1522
  .cirth [role="search"] button:not(:first-child), .cirth [role="search"] [type="submit"]:not(:first-child), .cirth [role="search"] [type="reset"]:not(:first-child), .cirth [role="search"] [type="button"]:not(:first-child), .cirth [role="search"] [role="button"]:not(:first-child), .cirth [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), .cirth [role="search"] select:not(:first-child), .cirth [role="group"] button:not(:first-child), .cirth [role="group"] [type="submit"]:not(:first-child), .cirth [role="group"] [type="reset"]:not(:first-child), .cirth [role="group"] [type="button"]:not(:first-child), .cirth [role="group"] [role="button"]:not(:first-child), .cirth [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), .cirth [role="group"] select:not(:first-child) {
1559
- margin-left: calc(var(--cirth-border-width) * -1);
1523
+ margin-inline-start: calc(var(--cirth-border-width) * -1);
1560
1524
  }
1561
1525
 
1562
1526
  .cirth [role="search"] button, .cirth [role="search"] [type="submit"], .cirth [role="search"] [type="reset"], .cirth [role="search"] [type="button"], .cirth [role="search"] [role="button"], .cirth [role="group"] button, .cirth [role="group"] [type="submit"], .cirth [role="group"] [type="reset"], .cirth [role="group"] [type="button"], .cirth [role="group"] [role="button"] {
@@ -1568,19 +1532,7 @@
1568
1532
  --cirth-group-box-shadow: var(--cirth-group-box-shadow-focus-with-button);
1569
1533
  }
1570
1534
 
1571
- .cirth [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]) {
1572
- border-color: #0000;
1573
- }
1574
-
1575
- .cirth [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
1576
- border-color: #0000;
1577
- }
1578
-
1579
- .cirth [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]) {
1580
- border-color: #0000;
1581
- }
1582
-
1583
- .cirth [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
1535
+ :is(.cirth [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"], [aria-invalid]), .cirth [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select:not([aria-invalid]), .cirth [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"], [aria-invalid]), .cirth [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select:not([aria-invalid])) {
1584
1536
  border-color: #0000;
1585
1537
  }
1586
1538
 
@@ -1650,13 +1602,18 @@
1650
1602
  }
1651
1603
 
1652
1604
  .cirth [role="search"] > :first-child {
1653
- border-top-left-radius: var(--cirth-radius-pill);
1654
- border-bottom-left-radius: var(--cirth-radius-pill);
1605
+ border-start-start-radius: var(--cirth-radius-pill);
1606
+ border-end-start-radius: var(--cirth-radius-pill);
1655
1607
  }
1656
1608
 
1657
1609
  .cirth [role="search"] > :last-child {
1658
- border-top-right-radius: var(--cirth-radius-pill);
1659
- border-bottom-right-radius: var(--cirth-radius-pill);
1610
+ border-start-end-radius: var(--cirth-radius-pill);
1611
+ border-end-end-radius: var(--cirth-radius-pill);
1612
+ }
1613
+
1614
+ .cirth [role="search"] > :has( + small:last-child) {
1615
+ border-start-end-radius: var(--cirth-radius-pill);
1616
+ border-end-end-radius: var(--cirth-radius-pill);
1660
1617
  }
1661
1618
 
1662
1619
  .cirth [aria-busy="true"]:not(input, select, textarea, html, form) {
@@ -1664,14 +1621,24 @@
1664
1621
  }
1665
1622
 
1666
1623
  .cirth [aria-busy="true"]:not(input, select, textarea, html, form):before {
1667
- background-image: var(--cirth-icon-loading);
1668
1624
  content: "";
1669
1625
  vertical-align: -.125em;
1670
- background-repeat: no-repeat;
1671
- background-size: 1em;
1672
1626
  width: 1em;
1673
1627
  height: 1em;
1628
+ -webkit-mask-image: var(--cirth-icon-loading);
1629
+ mask-image: var(--cirth-icon-loading);
1630
+ background-color: currentColor;
1674
1631
  display: inline-block;
1632
+ -webkit-mask-size: 1em;
1633
+ mask-size: 1em;
1634
+ -webkit-mask-repeat: no-repeat;
1635
+ mask-repeat: no-repeat;
1636
+ }
1637
+
1638
+ @media (forced-colors: active) {
1639
+ .cirth [aria-busy="true"]:not(input, select, textarea, html, form):before {
1640
+ background-color: canvastext;
1641
+ }
1675
1642
  }
1676
1643
 
1677
1644
  .cirth [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty):before {
@@ -1682,6 +1649,18 @@
1682
1649
  text-align: center;
1683
1650
  }
1684
1651
 
1652
+ .cirth input:is([type="submit"], [type="button"], [type="reset"])[aria-busy="true"] {
1653
+ background-image: var(--cirth-icon-loading);
1654
+ background-position: center left var(--cirth-form-element-spacing-horizontal);
1655
+ background-repeat: no-repeat;
1656
+ background-size: 1em;
1657
+ padding-inline-start: calc(var(--cirth-form-element-spacing-horizontal) + 1em + var(--cirth-spacing) * .5);
1658
+ }
1659
+
1660
+ [dir="rtl"] .cirth input:is([type="submit"], [type="button"], [type="reset"])[aria-busy="true"] {
1661
+ background-position: center right var(--cirth-form-element-spacing-horizontal);
1662
+ }
1663
+
1685
1664
  .cirth button[aria-busy="true"], .cirth [type="submit"][aria-busy="true"], .cirth [type="button"][aria-busy="true"], .cirth [type="reset"][aria-busy="true"], .cirth [role="button"][aria-busy="true"], .cirth a[aria-busy="true"] {
1686
1665
  pointer-events: none;
1687
1666
  }
@@ -1712,6 +1691,7 @@
1712
1691
  .cirth dialog > article {
1713
1692
  width: 100%;
1714
1693
  max-height: calc(100vh - var(--cirth-spacing) * 2);
1694
+ max-height: calc(100dvh - var(--cirth-spacing) * 2);
1715
1695
  margin: var(--cirth-spacing);
1716
1696
  overflow: auto;
1717
1697
  }
@@ -1734,13 +1714,13 @@
1734
1714
 
1735
1715
  .cirth dialog > article > header .close, .cirth dialog > article > header :is(a, button)[rel="prev"] {
1736
1716
  margin: 0;
1737
- margin-left: var(--cirth-spacing);
1738
1717
  float: right;
1718
+ margin-inline-start: var(--cirth-spacing);
1739
1719
  padding: 0;
1740
1720
  }
1741
1721
 
1742
1722
  .cirth dialog > article > footer {
1743
- text-align: right;
1723
+ text-align: end;
1744
1724
  }
1745
1725
 
1746
1726
  .cirth dialog > article > footer button, .cirth dialog > article > footer [role="button"] {
@@ -1748,7 +1728,7 @@
1748
1728
  }
1749
1729
 
1750
1730
  .cirth dialog > article > footer button:not(:first-of-type), .cirth dialog > article > footer [role="button"]:not(:first-of-type) {
1751
- margin-left: calc(var(--cirth-spacing) * .5);
1731
+ margin-inline-start: calc(var(--cirth-spacing) * .5);
1752
1732
  }
1753
1733
 
1754
1734
  .cirth dialog > article .close, .cirth dialog > article :is(a, button)[rel="prev"] {
@@ -1764,7 +1744,7 @@
1764
1744
  background-color: #0000;
1765
1745
  background-repeat: no-repeat;
1766
1746
  border: none;
1767
- margin-left: auto;
1747
+ margin-inline-start: auto;
1768
1748
  display: block;
1769
1749
  }
1770
1750
 
@@ -1776,10 +1756,14 @@
1776
1756
  display: none;
1777
1757
  }
1778
1758
 
1759
+ [dir="rtl"] .cirth dialog > article > header :is(a, button)[rel="prev"], [dir="rtl"] .cirth dialog > article > header .close {
1760
+ float: left;
1761
+ }
1762
+
1779
1763
  .cirth.modal-is-open, .cirth .modal-is-open {
1780
- padding-right: var(--cirth-scrollbar-width, 0px);
1781
1764
  pointer-events: none;
1782
1765
  touch-action: none;
1766
+ padding-inline-end: var(--cirth-scrollbar-width, 0);
1783
1767
  overflow: hidden;
1784
1768
  }
1785
1769
 
@@ -1846,11 +1830,11 @@
1846
1830
  }
1847
1831
 
1848
1832
  .cirth nav ol:first-of-type, .cirth nav ul:first-of-type {
1849
- margin-left: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1833
+ margin-inline-start: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1850
1834
  }
1851
1835
 
1852
1836
  .cirth nav ol:last-of-type, .cirth nav ul:last-of-type {
1853
- margin-right: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1837
+ margin-inline-end: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1854
1838
  }
1855
1839
 
1856
1840
  .cirth nav li {
@@ -1859,23 +1843,27 @@
1859
1843
  display: inline-block;
1860
1844
  }
1861
1845
 
1862
- .cirth nav li :where(a, [role="link"]) {
1846
+ .cirth nav li :where(a:not([role="button"]), [role="link"]) {
1863
1847
  margin: calc(var(--cirth-nav-link-spacing-vertical) * -1) calc(var(--cirth-nav-link-spacing-horizontal) * -1);
1864
1848
  padding: var(--cirth-nav-link-spacing-vertical) var(--cirth-nav-link-spacing-horizontal);
1865
1849
  border-radius: var(--cirth-border-radius);
1866
1850
  display: inline-block;
1867
1851
  }
1868
1852
 
1869
- .cirth nav li :where(a, [role="link"]):not(:hover) {
1853
+ .cirth nav li :where(a:not([role="button"]), [role="link"]):not(:hover) {
1870
1854
  text-decoration: none;
1871
1855
  }
1872
1856
 
1857
+ .cirth nav li [role="group"], .cirth nav li [role="search"] {
1858
+ width: auto;
1859
+ margin-bottom: 0;
1860
+ }
1861
+
1873
1862
  .cirth nav li button, .cirth nav li [role="button"], .cirth nav li [type="button"], .cirth nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), .cirth nav li select {
1874
1863
  height: auto;
1875
- margin-right: inherit;
1876
- margin-bottom: 0;
1877
- margin-left: inherit;
1864
+ margin-inline: inherit;
1878
1865
  padding: calc(var(--cirth-nav-link-spacing-vertical) - var(--cirth-border-width) * 2) var(--cirth-nav-link-spacing-horizontal);
1866
+ margin-bottom: 0;
1879
1867
  }
1880
1868
 
1881
1869
  .cirth nav[aria-label="breadcrumb"] {
@@ -1927,10 +1915,6 @@
1927
1915
  margin: inherit;
1928
1916
  }
1929
1917
 
1930
- [dir="rtl"] .cirth nav[aria-label="breadcrumb"] ul li:not(:last-child) :after {
1931
- content: "\\";
1932
- }
1933
-
1934
1918
  .cirth progress {
1935
1919
  vertical-align: baseline;
1936
1920
  appearance: none;
@@ -2136,7 +2120,7 @@
2136
2120
  opacity: 0;
2137
2121
  }
2138
2122
 
2139
- to {
2123
+ 100% {
2140
2124
  transform: var(--cirth-tooltip-caret-slide-to);
2141
2125
  opacity: 1;
2142
2126
  }
@@ -2155,14 +2139,10 @@
2155
2139
  }
2156
2140
 
2157
2141
  .cirth [aria-hidden="false"][hidden]:not(:focus) {
2158
- clip: rect(0, 0, 0, 0);
2142
+ clip-path: inset(50%);
2159
2143
  position: absolute;
2160
2144
  }
2161
2145
 
2162
- .cirth a, .cirth area, .cirth button, .cirth input, .cirth label, .cirth select, .cirth summary, .cirth textarea, .cirth [tabindex] {
2163
- -ms-touch-action: manipulation;
2164
- }
2165
-
2166
2146
  .cirth [dir="rtl"] {
2167
2147
  direction: rtl;
2168
2148
  }
@@ -2179,6 +2159,34 @@
2179
2159
  }
2180
2160
  }
2181
2161
 
2162
+ .cirth .sr-only {
2163
+ clip-path: inset(50%);
2164
+ white-space: nowrap;
2165
+ border: 0;
2166
+ width: 1px;
2167
+ height: 1px;
2168
+ margin: -1px;
2169
+ padding: 0;
2170
+ position: absolute;
2171
+ overflow: hidden;
2172
+ }
2173
+
2174
+ .cirth .sr-only-focusable:focus, .cirth .sr-only-focusable:focus-within {
2175
+ clip-path: none;
2176
+ white-space: normal;
2177
+ width: auto;
2178
+ height: auto;
2179
+ margin: 0;
2180
+ position: static;
2181
+ overflow: visible;
2182
+ }
2183
+
2184
+ .cirth .truncate {
2185
+ white-space: nowrap;
2186
+ text-overflow: ellipsis;
2187
+ overflow: hidden;
2188
+ }
2189
+
2182
2190
  .cirth {
2183
2191
  --cirth-color-black: #000;
2184
2192
  --cirth-color-white: #fff;
@@ -2323,6 +2331,7 @@
2323
2331
 
2324
2332
  .cirth small {
2325
2333
  --cirth-font-size: .875em;
2334
+ font-size: var(--cirth-font-size);
2326
2335
  }
2327
2336
 
2328
2337
  .cirth h1, .cirth h2, .cirth h3 {
@@ -2383,7 +2392,7 @@
2383
2392
  --cirth-border-width: .1875rem;
2384
2393
  }
2385
2394
 
2386
- .cirth pre, .cirth code, .cirth kbd, .cirth samp {
2395
+ .cirth pre, .cirth code, .cirth kbd, .cirth samp, .cirth var {
2387
2396
  --cirth-font-family: var(--cirth-font-family-mono);
2388
2397
  }
2389
2398
 
@@ -2458,7 +2467,7 @@
2458
2467
  --cirth-form-element-spacing-horizontal: var(--cirth-space-8);
2459
2468
  }
2460
2469
 
2461
- .cirth details summary[role="button"]:not(.outline):after, .cirth [aria-busy="true"]:not(input, select, textarea):is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
2470
+ .cirth details summary[role="button"]:not(.outline):after {
2462
2471
  filter: brightness(0) invert();
2463
2472
  }
2464
2473