@semanticus/semanticus-css 2.2.0 → 3.1.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.
Files changed (150) hide show
  1. package/README.md +23 -22
  2. package/dist/semanticus-no-utilities.css +1 -1
  3. package/dist/semanticus-semantics.css +1 -1
  4. package/dist/semanticus-utilities.css +1 -1
  5. package/dist/semanticus.css +2 -2
  6. package/dist/semanticus.palette.amber.css +1 -1
  7. package/dist/semanticus.palette.azure.css +1 -1
  8. package/dist/semanticus.palette.blue.css +1 -1
  9. package/dist/semanticus.palette.cyan.css +1 -1
  10. package/dist/semanticus.palette.fuchsia.css +1 -1
  11. package/dist/semanticus.palette.green.css +1 -1
  12. package/dist/semanticus.palette.grey.css +1 -1
  13. package/dist/semanticus.palette.indigo.css +1 -1
  14. package/dist/semanticus.palette.jade.css +1 -1
  15. package/dist/semanticus.palette.lime.css +1 -1
  16. package/dist/semanticus.palette.orange.css +1 -1
  17. package/dist/semanticus.palette.pink.css +1 -1
  18. package/dist/semanticus.palette.pumpkin.css +1 -1
  19. package/dist/semanticus.palette.purple.css +1 -1
  20. package/dist/semanticus.palette.red.css +1 -1
  21. package/dist/semanticus.palette.sand.css +1 -1
  22. package/dist/semanticus.palette.slate.css +1 -1
  23. package/dist/semanticus.palette.violet.css +1 -1
  24. package/dist/semanticus.palette.yellow.css +1 -1
  25. package/dist/semanticus.palette.zinc.css +1 -1
  26. package/dist/semanticus.size.pico.css +1 -1
  27. package/package.json +1 -1
  28. package/src/components/_card.css +55 -46
  29. package/src/components/_icons.css +2 -2
  30. package/src/components/_pane.css +15 -8
  31. package/src/components/_sidebar.css +6 -6
  32. package/src/components/_variables.css +28 -0
  33. package/src/components/modules.css +2 -0
  34. package/src/index.css +1 -1
  35. package/src/palettes/amber.css +22 -26
  36. package/src/palettes/azure.css +22 -26
  37. package/src/palettes/blue.css +22 -26
  38. package/src/palettes/cyan.css +22 -26
  39. package/src/palettes/fuchsia.css +25 -26
  40. package/src/palettes/green.css +22 -26
  41. package/src/palettes/grey.css +22 -26
  42. package/src/palettes/indigo.css +22 -26
  43. package/src/palettes/jade.css +22 -26
  44. package/src/palettes/lime.css +22 -26
  45. package/src/palettes/orange.css +22 -26
  46. package/src/palettes/pink.css +22 -26
  47. package/src/palettes/pumpkin.css +25 -26
  48. package/src/palettes/purple.css +22 -26
  49. package/src/palettes/red.css +22 -26
  50. package/src/palettes/sand.css +22 -26
  51. package/src/palettes/slate.css +22 -26
  52. package/src/palettes/violet.css +22 -26
  53. package/src/palettes/yellow.css +22 -26
  54. package/src/palettes/zinc.css +22 -26
  55. package/src/semantics/attributes/_aria-busy.css +1 -10
  56. package/src/semantics/attributes/_aria-disabled.css +2 -23
  57. package/src/semantics/attributes/_disabled.css +3 -0
  58. package/src/semantics/attributes/_popover.css +4 -3
  59. package/src/semantics/attributes/_role-group-search.css +135 -0
  60. package/src/semantics/attributes/_role-list.css +23 -0
  61. package/src/semantics/attributes/_role-status-alert.css +28 -22
  62. package/src/semantics/attributes/_role-tooltip.css +11 -8
  63. package/src/semantics/elements/_address.css +2 -2
  64. package/src/semantics/elements/_aside.css +4 -3
  65. package/src/semantics/elements/_blockquote.css +6 -6
  66. package/src/semantics/elements/_body.css +0 -2
  67. package/src/semantics/elements/_buttons.css +100 -0
  68. package/src/semantics/elements/_code.css +18 -8
  69. package/src/semantics/elements/_del.css +1 -1
  70. package/src/semantics/elements/_details.css +147 -162
  71. package/src/semantics/elements/_dialog.css +24 -17
  72. package/src/semantics/elements/_fieldset.css +27 -0
  73. package/src/semantics/elements/_figure.css +1 -1
  74. package/src/semantics/elements/_footer.css +0 -1
  75. package/src/semantics/elements/_header.css +0 -1
  76. package/src/semantics/elements/_headings.css +86 -9
  77. package/src/semantics/elements/_hgroup.css +2 -2
  78. package/src/semantics/elements/_hr.css +2 -2
  79. package/src/semantics/elements/_inputs.css +14 -0
  80. package/src/semantics/elements/_ins.css +1 -1
  81. package/src/semantics/elements/_label.css +4 -0
  82. package/src/semantics/elements/_links.css +34 -41
  83. package/src/semantics/elements/_lists.css +10 -8
  84. package/src/semantics/elements/_mark.css +2 -2
  85. package/src/semantics/elements/_nav.css +65 -35
  86. package/src/semantics/elements/_p.css +2 -2
  87. package/src/semantics/elements/_progress.css +18 -11
  88. package/src/semantics/elements/{_document.css → _root.css} +12 -9
  89. package/src/semantics/elements/_section.css +0 -1
  90. package/src/semantics/elements/_small.css +27 -0
  91. package/src/semantics/elements/_table.css +20 -6
  92. package/src/semantics/elements/inputs/_checkbox-radio.css +30 -0
  93. package/src/semantics/elements/inputs/_checkbox.css +19 -0
  94. package/src/semantics/elements/{_type-color.css → inputs/_color.css} +5 -3
  95. package/src/semantics/elements/inputs/_common.css +87 -0
  96. package/src/semantics/elements/inputs/_date.css +53 -0
  97. package/src/semantics/elements/inputs/_file.css +35 -0
  98. package/src/semantics/elements/inputs/_input.css +47 -0
  99. package/src/semantics/elements/inputs/_radio.css +11 -0
  100. package/src/semantics/elements/inputs/_range.css +69 -0
  101. package/src/semantics/elements/inputs/_search.css +48 -0
  102. package/src/semantics/elements/inputs/_select.css +32 -0
  103. package/src/semantics/elements/inputs/_switch.css +46 -0
  104. package/src/semantics/elements/inputs/_textarea.css +30 -0
  105. package/src/semantics/modules.css +9 -13
  106. package/src/sizes/pico.css +24 -23
  107. package/src/utilities/_grid.css +917 -179
  108. package/src/utilities/_variables.css +21 -14
  109. package/src/utilities/borders/_border-radius.css +9 -9
  110. package/src/utilities/borders/_border-style.css +10 -10
  111. package/src/utilities/colors/_bg-colors.css +22 -38
  112. package/src/utilities/colors/_border-colors.css +20 -26
  113. package/src/utilities/colors/_subtle-colors.css +55 -61
  114. package/src/utilities/colors/_text-bg-colors.css +35 -35
  115. package/src/utilities/colors/_text-colors.css +24 -46
  116. package/src/utilities/effects/_focus-ring.css +14 -11
  117. package/src/utilities/layout/_misc.css +4 -3
  118. package/src/utilities/sizing/_width.css +48 -0
  119. package/src/utilities/spacing/_gap.css +0 -43
  120. package/src/utilities/spacing/_margin.css +0 -1
  121. package/src/utilities/spacing/_padding.css +0 -1
  122. package/src/utilities/typography/_font-sizes.css +6 -6
  123. package/src/variables/_all.css +3 -4
  124. package/src/variables/_theme.css +394 -237
  125. package/src/variants/_intent.css +8 -0
  126. package/src/variants/_variables.css +109 -9
  127. package/src/variants/intent/_common.css +33 -0
  128. package/src/variants/intent/_contrast.css +30 -31
  129. package/src/variants/intent/_danger.css +7 -30
  130. package/src/variants/intent/_info.css +7 -30
  131. package/src/variants/intent/_primary.css +7 -30
  132. package/src/variants/intent/_secondary.css +7 -30
  133. package/src/variants/intent/_success.css +7 -30
  134. package/src/variants/intent/_warning.css +7 -30
  135. package/src/variants/modifiers/_ghost.css +52 -152
  136. package/src/variants/modifiers/_striped.css +6 -5
  137. package/src/variants/modifiers/_subtle.css +55 -113
  138. package/src/variants/modules.css +1 -7
  139. package/src/semantics/attributes/_role-group.css +0 -126
  140. package/src/semantics/attributes/_role-search.css +0 -14
  141. package/src/semantics/elements/_article.css +0 -3
  142. package/src/semantics/elements/_button.css +0 -124
  143. package/src/semantics/elements/_input.css +0 -302
  144. package/src/semantics/elements/_main.css +0 -3
  145. package/src/semantics/elements/_type-checkbox-radio.css +0 -139
  146. package/src/semantics/elements/_type-date.css +0 -37
  147. package/src/semantics/elements/_type-file.css +0 -23
  148. package/src/semantics/elements/_type-range.css +0 -87
  149. package/src/semantics/elements/_type-search.css +0 -30
  150. package/src/variables/_elements.css +0 -195
@@ -4,26 +4,30 @@ body:has(dialog[open]) {
4
4
  pointer-events: none;
5
5
  touch-action: none;
6
6
 
7
- & dialog[open],
8
- & dialog:target {
7
+ dialog:is([open], :target) {
9
8
  pointer-events: auto;
10
9
  touch-action: auto;
11
10
  }
12
11
  }
13
12
 
14
13
  dialog {
14
+ --_dialog-border-color: var(--dialog-border-color);
15
+ --_dialog-background-color: var(--dialog-background-color);
16
+
15
17
  max-height: calc(100vh - var(--spacing) * 2);
16
18
  margin: auto;
17
19
  overflow: auto;
18
20
  padding: var(--spacing);
19
- border-radius: var(--radius);
20
- background: var(--dialog-fill);
21
- box-shadow: var(--dialog-shadow);
22
- border: var(--border-size) solid var(--border-color);
21
+ border-radius: var(--border-radius);
22
+ border: var(--border-width) solid var(--_dialog-border-color);
23
+ background: var(--_dialog-background-color);
24
+ box-shadow: var(--menu-box-shadow);
23
25
 
24
26
  /* Opening animation using @starting-style (Chrome 117+, Firefox 129+, Safari 17.4+) */
25
27
  /* Gracefully degrades to instant appearance in unsupported browsers */
26
- transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
28
+ transition:
29
+ opacity 0.2s ease-in-out,
30
+ transform 0.2s ease-in-out;
27
31
 
28
32
  @media (--breakpoint-sm) {
29
33
  max-width: 510px;
@@ -35,15 +39,17 @@ dialog {
35
39
 
36
40
  /* Hidden state */
37
41
  &:not([open]),
38
- &[open=false] {
42
+ &[open="false"] {
39
43
  display: none;
40
44
  }
41
45
 
42
46
  /* Backdrop overlay */
43
47
  &::backdrop {
44
48
  backdrop-filter: blur(0.375rem);
45
- background-color: var(--dialog-overlay);
46
- transition: backdrop-filter 0.2s ease-in-out, background-color 0.2s ease-in-out;
49
+ background-color: var(--backdrop-background-color);
50
+ transition:
51
+ backdrop-filter 0.2s ease-in-out,
52
+ background-color 0.2s ease-in-out;
47
53
  }
48
54
 
49
55
  > header,
@@ -51,7 +57,7 @@ dialog {
51
57
  width: auto;
52
58
  margin-inline: calc(var(--spacing) * -1);
53
59
  padding-inline: var(--spacing);
54
- background-color: var(--dialog-section-fill);
60
+ background-color: var(--dialog-marginals-background-color);
55
61
  display: flex;
56
62
  gap: calc(var(--nav-link-gap) * 1.5);
57
63
  align-items: center;
@@ -60,18 +66,19 @@ dialog {
60
66
  /* Header styling */
61
67
  > header {
62
68
  margin-top: calc(var(--spacing) * -1);
63
- border-bottom: var(--border-size) solid var(--dialog-section-border);
64
- border-top-right-radius: var(--radius);
65
- border-top-left-radius: var(--radius);
69
+ border-bottom: var(--border-width) solid
70
+ var(--dialog-marginals-border-color);
71
+ border-top-right-radius: var(--border-radius);
72
+ border-top-left-radius: var(--border-radius);
66
73
  justify-content: space-between;
67
74
  }
68
75
 
69
76
  /* Footer styling */
70
77
  > footer {
71
78
  margin-bottom: calc(var(--spacing) * -1);
72
- border-top: var(--border-size) solid var(--dialog-section-border);
73
- border-bottom-right-radius: var(--radius);
74
- border-bottom-left-radius: var(--radius);
79
+ border-top: var(--border-width) solid var(--dialog-marginals-border-color);
80
+ border-bottom-right-radius: var(--border-radius);
81
+ border-bottom-left-radius: var(--border-radius);
75
82
  justify-content: end;
76
83
  }
77
84
 
@@ -0,0 +1,27 @@
1
+ /* See _input.css for shared styles */
2
+
3
+ fieldset {
4
+ width: 100%;
5
+ margin: 0;
6
+ padding: 0;
7
+ border: 0;
8
+ }
9
+
10
+ legend {
11
+ max-width: 100%;
12
+ padding: 0;
13
+ color: inherit;
14
+ white-space: normal;
15
+ }
16
+
17
+ fieldset legend {
18
+ margin-bottom: calc(var(--spacing) * 0.5);
19
+ }
20
+
21
+ label,
22
+ fieldset legend {
23
+ display: block;
24
+ margin-bottom: calc(var(--spacing) * 0.375);
25
+ color: var(--typography-color);
26
+ font-weight: var(--form-label-font-weight, var(--font-weight));
27
+ }
@@ -5,6 +5,6 @@ figure {
5
5
 
6
6
  & figcaption {
7
7
  padding: calc(var(--spacing) * 0.5) 0;
8
- color: var(--color-text-muted);
8
+ color: var(--color-muted);
9
9
  }
10
10
  }
@@ -1,5 +1,4 @@
1
1
  footer {
2
- width: 100%;
3
2
  padding-block: var(--spacing);
4
3
  margin-top: var(--spacing);
5
4
 
@@ -1,5 +1,4 @@
1
1
  header {
2
- width: 100%;
3
2
  padding-block: var(--spacing);
4
3
  margin-bottom: var(--spacing);
5
4
 
@@ -4,21 +4,98 @@ h3,
4
4
  h4,
5
5
  h5,
6
6
  h6 {
7
+ --font-weight: var(--heading-font-weight);
8
+
7
9
  margin-top: 0;
8
- margin-bottom: var(--typography-spacing-vertical);
10
+ margin-bottom: var(--typography-margin-block);
9
11
  font-weight: var(--font-weight);
10
12
  font-size: var(--font-size);
11
13
  line-height: var(--line-height);
12
14
  font-family: var(--font-family);
13
15
  }
14
16
 
15
- h1 { color: var(--color-text); }
16
- h2 { color: color-mix(in srgb, var(--color-text) 90%, light-dark(white, black)); }
17
- h3 { color: color-mix(in srgb, var(--color-text) 80%, light-dark(white, black)); }
18
- h4 { color: color-mix(in srgb, var(--color-text) 70%, light-dark(white, black)); }
19
- h5 { color: color-mix(in srgb, var(--color-text) 60%, light-dark(white, black)); }
20
- h6 { color: color-mix(in srgb, var(--color-text) 65%, light-dark(white, black)); }
17
+ h1 {
18
+ --font-size: var(--h1-font-size);
19
+ --line-height: var(--h1-line-height);
20
+ --heading-margin-top: var(--h1-margin-top);
21
+
22
+ color: var(--typography-color);
23
+ }
24
+
25
+ h2 {
26
+ --font-size: var(--h2-font-size);
27
+ --line-height: var(--h2-line-height);
28
+ --heading-margin-top: var(--h2-margin-top);
29
+
30
+ color: color-mix(
31
+ in srgb,
32
+ var(--typography-color) 90%,
33
+ light-dark(white, black)
34
+ );
35
+ }
36
+
37
+ h3 {
38
+ --font-size: var(--h3-font-size);
39
+ --line-height: var(--h3-line-height);
40
+ --heading-margin-top: var(--h3-margin-top);
41
+
42
+ color: color-mix(
43
+ in srgb,
44
+ var(--typography-color) 80%,
45
+ light-dark(white, black)
46
+ );
47
+ }
48
+
49
+ h4 {
50
+ --font-size: var(--h4-font-size);
51
+ --line-height: var(--h4-line-height);
52
+ --heading-margin-top: var(--h4-margin-top);
53
+
54
+ color: color-mix(
55
+ in srgb,
56
+ var(--typography-color) 70%,
57
+ light-dark(white, black)
58
+ );
59
+ }
60
+
61
+ h5 {
62
+ --font-size: var(--h5-font-size);
63
+ --line-height: var(--h5-line-height);
64
+ --heading-margin-top: var(--h5-margin-top);
65
+
66
+ color: color-mix(
67
+ in srgb,
68
+ var(--typography-color) 60%,
69
+ light-dark(white, black)
70
+ );
71
+ }
72
+
73
+ h6 {
74
+ --font-size: var(--h6-font-size);
75
+ --line-height: var(--h6-line-height);
76
+ --heading-margin-top: var(--h6-margin-top);
77
+
78
+ color: color-mix(
79
+ in srgb,
80
+ var(--typography-color) 65%,
81
+ light-dark(white, black)
82
+ );
83
+ }
21
84
 
22
- :where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul, hr) ~ :is(h1, h2, h3, h4, h5, h6) {
23
- margin-top: var(--heading-gap-top);
85
+ :where(
86
+ article,
87
+ address,
88
+ blockquote,
89
+ dl,
90
+ figure,
91
+ form,
92
+ ol,
93
+ p,
94
+ pre,
95
+ table,
96
+ ul,
97
+ hr
98
+ )
99
+ ~ :is(h1, h2, h3, h4, h5, h6) {
100
+ margin-top: var(--heading-margin-top);
24
101
  }
@@ -1,11 +1,11 @@
1
1
  hgroup {
2
- margin-bottom: var(--typography-spacing-vertical);
2
+ margin-bottom: var(--typography-margin-block);
3
3
 
4
4
  & > * {
5
5
  margin-block: 0 !important;
6
6
 
7
7
  &:not(:first-child):last-child {
8
- color: var(--color-text-muted);
8
+ color: var(--color-muted);
9
9
  --font-weight: unset;
10
10
  font-size: 1rem;
11
11
  }
@@ -1,7 +1,7 @@
1
1
  hr {
2
2
  height: 0;
3
- margin: var(--typography-spacing-vertical) 0;
3
+ margin: var(--typography-margin-block) 0;
4
4
  border: 0;
5
- border-top: 1px solid var(--color-border);
5
+ border-top: 1px solid var(--border-color);
6
6
  color: inherit;
7
7
  }
@@ -0,0 +1,14 @@
1
+ @import "./inputs/_common.css";
2
+
3
+ @import "./inputs/_checkbox-radio.css";
4
+ @import "./inputs/_checkbox.css";
5
+ @import "./inputs/_color.css";
6
+ @import "./inputs/_date.css";
7
+ @import "./inputs/_file.css";
8
+ @import "./inputs/_input.css";
9
+ @import "./inputs/_radio.css";
10
+ @import "./inputs/_range.css";
11
+ @import "./inputs/_search.css";
12
+ @import "./inputs/_select.css";
13
+ @import "./inputs/_switch.css";
14
+ @import "./inputs/_textarea.css";
@@ -1,4 +1,4 @@
1
1
  ins {
2
- color: var(--color-success-text);
2
+ color: var(--success-color);
3
3
  text-decoration: none;
4
4
  }
@@ -0,0 +1,4 @@
1
+ label:has([type="checkbox"], [type="radio"]) {
2
+ width: fit-content;
3
+ cursor: pointer;
4
+ }
@@ -1,37 +1,47 @@
1
- :where(a:not([role=button])),
2
- [role=link] {
3
- --color-background: transparent;
4
- --border-color: transparent;
5
- --color-text: var(--color-primary-text);
6
- --shadow: transparent;
7
- outline: none;
1
+ :where(a:not([role="button"])),
2
+ [role="link"] {
3
+ --_links-color: var(--links-color);
4
+ --_links-color-hover: var(--links-color-hover);
5
+ --_links-text-decoration: var(--links-text-decoration);
6
+ --_links-outline-color: var(--primary-outline-color);
7
+
8
8
  padding: 0;
9
- background-color: var(--color-background);
10
- color: var(--color-text);
11
- text-decoration: var(--a-decoration);
12
- text-decoration-color: oklch(from var(--color-text) l c h / 0.3);
9
+ background-color: transparent;
10
+ border-color: transparent;
11
+ color: var(--_links-color);
12
+ text-decoration: var(--_links-text-decoration);
13
+ text-decoration-color: oklch(from var(--_links-color) l c h / 0.3);
13
14
  text-underline-offset: 0.125em;
14
- transition: background-color var(--transition), color var(--transition), text-decoration-color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
15
-
16
- &:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
17
- --color-background: transparent;
18
- --border-color: transparent;
19
- --color-text: var(--color-primary-text-hover);
20
- --shadow: transparent;
21
- text-decoration-color: oklch(from var(--color-text) l c h / 0.85);
15
+ transition:
16
+ background-color var(--transition),
17
+ color var(--transition),
18
+ text-decoration-color var(--transition),
19
+ text-decoration var(--transition);
20
+
21
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
22
+ background-color: transparent;
23
+ border-color: transparent;
24
+
25
+ color: var(--_links-color-hover);
26
+ text-decoration-color: var(--_links-color-hover);
22
27
  }
23
28
 
24
- &:is([aria-current]:not([aria-current=false])) {
29
+ &:is([aria-current]:not([aria-current="false"])) {
25
30
  font-weight: 500;
26
- text-decoration-color: oklch(from var(--color-text) l c h / 0.6);
27
31
  }
28
32
 
29
33
  &:focus-visible {
30
- box-shadow: 0 0 0 var(--outline-size) var(--color-primary-focus-ring);
34
+ border-radius: var(--border-radius);
35
+ outline: var(--outline-width) solid var(--_links-outline-color);
36
+ box-shadow: 0 0 0 var(--focus-ring-width) var(--_links-outline-color);
37
+ }
38
+
39
+ &[aria-busy="true"] {
40
+ pointer-events: none;
31
41
  }
32
42
  }
33
43
 
34
- [role=link] {
44
+ [role="link"] {
35
45
  cursor: pointer;
36
46
 
37
47
  &button {
@@ -39,23 +49,6 @@
39
49
  }
40
50
  }
41
51
 
42
- a[role=button] {
52
+ a[role="button"] {
43
53
  display: inline-block;
44
54
  }
45
-
46
- aside {
47
- nav {
48
- a:not([role=button]), [role=link] {
49
- display: block !important;
50
- width: 100%;
51
- }
52
- }
53
- }
54
-
55
- nav {
56
- a:not([role=button]), [role=link] {
57
- &:not(:hover) {
58
- --a-decoration: none;
59
- }
60
- }
61
- }
@@ -1,22 +1,24 @@
1
1
  dl,
2
2
  ol,
3
3
  ul {
4
+ --_lists-marker-color: var(--lists-marker-color);
5
+
4
6
  margin-top: 0;
5
- margin-bottom: var(--typography-spacing-vertical);
6
- color: var(--color-text);
7
+ margin-bottom: var(--typography-margin-block);
8
+ color: var(--typography-color);
7
9
  font-style: normal;
8
10
  font-weight: var(--font-weight);
9
11
  }
10
12
 
11
13
  :where(ol, ul) li {
12
- margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);
14
+ margin-bottom: calc(var(--typography-margin-block) * 0.25);
15
+
16
+ &::marker {
17
+ color: var(--_lists-marker-color);
18
+ }
13
19
  }
14
20
 
15
21
  :where(dl, ol, ul) :where(dl, ol, ul) {
16
22
  margin: 0;
17
- margin-top: calc(var(--typography-spacing-vertical) * 0.25);
18
- }
19
-
20
- ul li {
21
- list-style: square;
23
+ margin-top: calc(var(--typography-margin-block) * 0.25);
22
24
  }
@@ -1,6 +1,6 @@
1
1
  mark {
2
2
  padding: 0.125rem 0.25rem;
3
- background-color: var(--color-warning-fill);
4
- color: var(--color-warning-on-fill);
3
+ background-color: var(--mark-background-color);
4
+ color: #fff;
5
5
  vertical-align: baseline;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  nav {
2
- --typography-spacing-vertical: 0;
3
- --heading-gap-top: 0;
2
+ --typography-margin-block: 0;
3
+ --heading-margin-top: 0;
4
4
 
5
5
  display: flex;
6
6
  gap: calc(var(--nav-link-gap) * 1.5);
@@ -9,43 +9,38 @@ nav {
9
9
  overflow: visible;
10
10
 
11
11
  > * {
12
- margin: 0 !important;
12
+ margin-block: 0 !important;
13
13
 
14
14
  &:only-child {
15
15
  flex-grow: 1;
16
16
  }
17
17
  }
18
18
 
19
- &[aria-label=breadcrumb] {
20
- align-items: center;
21
- justify-content: start;
22
-
23
- & ul li {
24
- &:not(:first-child) {
25
- margin-inline-start: calc(var(--nav-link-gap) * 2);
26
- }
27
-
28
- &:not(:last-child)::after {
29
- display: inline-block;
30
- position: absolute;
31
- width: calc(var(--nav-link-gap) * 3);
32
- content: var(--nav-breadcrumb-divider);
33
- color: var(--color-text-muted);
34
- text-align: center;
35
- text-decoration: none;
36
- white-space: nowrap;
37
- }
19
+ a:not([role="button"]),
20
+ [role="link"] {
21
+ &:not(:hover) {
22
+ --_links-text-decoration: none;
38
23
  }
24
+ }
39
25
 
40
- & :where(a[aria-current]:not([aria-current=false]), [role=link][aria-current]:not([aria-current=false])) {
41
- background-color: transparent;
42
- color: inherit;
43
- text-decoration: none;
44
- pointer-events: none;
45
- }
26
+ :is(
27
+ button,
28
+ [role="button"],
29
+ [type="button"],
30
+ select,
31
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])
32
+ ) {
33
+ --inputs-padding-block: calc(var(--nav-link-gap) - var(--border-width) * 2);
34
+ --inputs-padding-inline: var(--nav-link-gap);
35
+ --_buttons-padding-block: var(--inputs-padding-block);
36
+ --_buttons-padding-inline: var(--inputs-padding-inline);
37
+
38
+ width: auto;
39
+ height: auto;
46
40
  }
47
41
 
48
- ul, ol {
42
+ ul,
43
+ ol {
49
44
  align-items: center;
50
45
  display: flex;
51
46
  gap: calc(var(--nav-link-gap) * 1.5);
@@ -68,17 +63,52 @@ nav {
68
63
  }
69
64
  }
70
65
 
71
- [dir=rtl] :where(nav[aria-label=breadcrumb]) ul li:not(:last-child)::after {
72
- content: "\\";
73
- }
74
-
75
66
  aside {
76
67
  > nav {
77
68
  flex-grow: 1;
78
69
  }
79
70
 
80
71
  nav {
81
- align-items: stretch !important;
82
- flex-direction: column;
72
+ :is(a, [role="link"], button, [role="button"]) {
73
+ display: block;
74
+ width: 100%;
75
+ }
76
+ }
77
+ }
78
+
79
+ /* Breadcrumbs */
80
+
81
+ nav:has(> ol:only-child) {
82
+ align-items: center;
83
+ justify-content: start;
84
+
85
+ ol li {
86
+ &:not(:first-child) {
87
+ margin-inline-start: calc(var(--nav-link-gap) * 2);
88
+ }
89
+
90
+ &:not(:last-child)::after {
91
+ display: inline-block;
92
+ position: absolute;
93
+ width: calc(var(--nav-link-gap) * 3);
94
+ content: var(--nav-breadcrumb-divider);
95
+ color: var(--color-muted);
96
+ text-align: center;
97
+ text-decoration: none;
98
+ white-space: nowrap;
99
+ }
100
+ }
101
+
102
+ li[aria-current]:not([aria-current="false"]) > :is(a, [role="link"]),
103
+ a[aria-current]:not([aria-current="false"]),
104
+ [role="link"][aria-current]:not([aria-current="false"]) {
105
+ background-color: transparent;
106
+ color: inherit;
107
+ text-decoration: none;
108
+ font-weight: inherit;
109
+
110
+ &:is(:hover, :active, :focus) {
111
+ text-decoration: var(--_links-text-decoration);
112
+ }
83
113
  }
84
114
  }
@@ -1,7 +1,7 @@
1
1
  p {
2
- color: var(--color-text);
2
+ color: var(--typography-color);
3
3
  font-style: normal;
4
4
  font-weight: var(--font-weight);
5
- margin-bottom: var(--typography-spacing-vertical);
5
+ margin-bottom: var(--typography-margin-block);
6
6
  margin-top: 0;
7
7
  }
@@ -1,6 +1,7 @@
1
1
  progress {
2
- -webkit-appearance: none;
3
- -moz-appearance: none;
2
+ --_progress-accent-color: var(--progress-accent-color);
3
+ --_progress-track-background-color: var(--progress-track-background-color);
4
+
4
5
  display: inline-block;
5
6
  appearance: none;
6
7
  width: 100%;
@@ -8,30 +9,36 @@ progress {
8
9
  margin-bottom: calc(var(--spacing) * 0.5);
9
10
  overflow: hidden;
10
11
  border: 0;
11
- border-radius: var(--radius);
12
- background-color: var(--progress-track-fill);
13
- color: var(--progress-fill);
12
+ border-radius: var(--border-radius);
13
+ background-color: var(--_progress-track-background-color);
14
+ color: var(--_progress-accent-color);
14
15
  vertical-align: baseline;
15
- accent-color: var(--color-primary-fill);
16
+ accent-color: var(--_progress-accent-color);
16
17
 
17
18
  &::-webkit-progress-bar {
18
- border-radius: var(--radius);
19
+ border-radius: var(--border-radius);
19
20
  background: none;
20
21
  }
21
22
 
22
23
  &[value]::-webkit-progress-value {
23
- background-color: var(--progress-fill);
24
+ background-color: var(--_progress-accent-color);
24
25
  transition: inline-size var(--transition);
25
26
  }
26
27
 
27
28
  &::-moz-progress-bar {
28
- background-color: var(--progress-fill);
29
+ background-color: var(--_progress-accent-color);
29
30
  }
30
31
  }
31
32
 
32
33
  @media (prefers-reduced-motion: no-preference) {
33
34
  progress:indeterminate {
34
- background: var(--progress-track-fill) linear-gradient(to right, var(--progress-fill) 30%, var(--progress-track-fill) 30%) top left/150% 150% no-repeat;
35
+ background: var(--_progress-track-background-color)
36
+ linear-gradient(
37
+ to right,
38
+ var(--_progress-accent-color) 30%,
39
+ var(--_progress-track-background-color) 30%
40
+ )
41
+ top left/150% 150% no-repeat;
35
42
  animation: progress-indeterminate 1s linear infinite;
36
43
 
37
44
  &[value]::-webkit-progress-value {
@@ -43,7 +50,7 @@ progress {
43
50
  }
44
51
  }
45
52
 
46
- [dir=rtl] progress:indeterminate {
53
+ [dir="rtl"] progress:indeterminate {
47
54
  animation-direction: reverse;
48
55
  }
49
56
  }