@semanticus/semanticus-css 0.9.0 → 1.0.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 (144) hide show
  1. package/NOTICE +16 -16
  2. package/README.md +128 -29
  3. package/dist/semanticus-no-utilities.css +11 -0
  4. package/dist/semanticus-semantics.css +3 -4
  5. package/dist/semanticus-utilities.css +11 -0
  6. package/dist/semanticus.css +4 -12
  7. package/dist/semanticus.palette.amber.css +1 -1
  8. package/dist/semanticus.palette.azure.css +1 -0
  9. package/dist/semanticus.palette.blue.css +1 -1
  10. package/dist/semanticus.palette.cyan.css +1 -1
  11. package/dist/semanticus.palette.fuchsia.css +1 -1
  12. package/dist/semanticus.palette.green.css +1 -1
  13. package/dist/semanticus.palette.grey.css +1 -1
  14. package/dist/semanticus.palette.indigo.css +1 -1
  15. package/dist/semanticus.palette.jade.css +1 -1
  16. package/dist/semanticus.palette.lime.css +1 -1
  17. package/dist/semanticus.palette.orange.css +1 -1
  18. package/dist/semanticus.palette.pink.css +1 -1
  19. package/dist/semanticus.palette.pumpkin.css +1 -1
  20. package/dist/semanticus.palette.purple.css +1 -1
  21. package/dist/semanticus.palette.red.css +1 -1
  22. package/dist/semanticus.palette.sand.css +1 -1
  23. package/dist/semanticus.palette.slate.css +1 -1
  24. package/dist/semanticus.palette.violet.css +1 -1
  25. package/dist/semanticus.palette.yellow.css +1 -1
  26. package/dist/semanticus.palette.zinc.css +1 -1
  27. package/dist/semanticus.size.pico.css +1 -1
  28. package/package.json +24 -15
  29. package/src/components/_card.css +84 -0
  30. package/src/{variants → components}/_sidebar.css +3 -5
  31. package/src/components/modules.css +2 -0
  32. package/src/index.css +8 -10
  33. package/src/no-utilities.css +22 -0
  34. package/src/palettes/amber.css +28 -53
  35. package/src/palettes/azure.css +31 -0
  36. package/src/palettes/blue.css +28 -53
  37. package/src/palettes/cyan.css +28 -53
  38. package/src/palettes/fuchsia.css +28 -53
  39. package/src/palettes/green.css +28 -53
  40. package/src/palettes/grey.css +28 -53
  41. package/src/palettes/indigo.css +28 -53
  42. package/src/palettes/jade.css +28 -53
  43. package/src/palettes/lime.css +28 -53
  44. package/src/palettes/orange.css +28 -53
  45. package/src/palettes/pink.css +28 -53
  46. package/src/palettes/pumpkin.css +28 -53
  47. package/src/palettes/purple.css +28 -53
  48. package/src/palettes/red.css +28 -53
  49. package/src/palettes/sand.css +28 -53
  50. package/src/palettes/slate.css +28 -53
  51. package/src/palettes/violet.css +28 -53
  52. package/src/palettes/yellow.css +28 -53
  53. package/src/palettes/zinc.css +28 -53
  54. package/src/semantics/attributes/_aria-busy.css +0 -3
  55. package/src/semantics/attributes/_hidden.css +0 -3
  56. package/src/semantics/attributes/_role-group-search.css +11 -14
  57. package/src/semantics/attributes/_role-toolbar.css +2 -5
  58. package/src/semantics/attributes/_role-tooltip.css +6 -9
  59. package/src/semantics/elements/_article.css +0 -3
  60. package/src/semantics/elements/_aside.css +1 -7
  61. package/src/semantics/elements/_blockquote.css +2 -2
  62. package/src/semantics/elements/_body.css +1 -4
  63. package/src/semantics/elements/_button.css +23 -26
  64. package/src/semantics/elements/_code.css +5 -8
  65. package/src/semantics/elements/_del.css +1 -1
  66. package/src/semantics/elements/_details.css +39 -40
  67. package/src/semantics/elements/_dialog.css +13 -17
  68. package/src/semantics/elements/_document.css +10 -4
  69. package/src/semantics/elements/_embedded.css +0 -3
  70. package/src/semantics/elements/_figure.css +0 -3
  71. package/src/semantics/elements/_footer.css +0 -3
  72. package/src/semantics/elements/_header.css +0 -3
  73. package/src/semantics/elements/_headings.css +7 -17
  74. package/src/semantics/elements/_hgroup.css +1 -1
  75. package/src/semantics/elements/_hr.css +1 -4
  76. package/src/semantics/elements/_input.css +33 -36
  77. package/src/semantics/elements/_ins.css +1 -1
  78. package/src/semantics/elements/_links.css +22 -18
  79. package/src/semantics/elements/_main.css +0 -4
  80. package/src/semantics/elements/_mark.css +2 -2
  81. package/src/semantics/elements/_nav.css +5 -8
  82. package/src/semantics/elements/_progress.css +5 -8
  83. package/src/semantics/elements/_section.css +0 -3
  84. package/src/semantics/elements/_small.css +3 -0
  85. package/src/semantics/elements/_table.css +3 -5
  86. package/src/semantics/elements/_type-checkbox-radio.css +19 -22
  87. package/src/semantics/elements/_type-color.css +2 -5
  88. package/src/semantics/elements/_type-date.css +1 -4
  89. package/src/semantics/elements/_type-file.css +7 -10
  90. package/src/semantics/elements/_type-range.css +11 -14
  91. package/src/semantics/elements/_type-search.css +6 -10
  92. package/src/semantics/index.css +2 -5
  93. package/src/semantics/modules.css +1 -7
  94. package/src/sizes/pico.css +20 -33
  95. package/src/utilities/_grid.css +306 -0
  96. package/src/utilities/_variables.css +27 -42
  97. package/src/utilities/borders/_border-radius.css +54 -79
  98. package/src/utilities/borders/_border-style.css +15 -5
  99. package/src/utilities/borders/_border-width.css +0 -28
  100. package/src/utilities/colors/_bg-colors.css +75 -0
  101. package/src/utilities/colors/_border-colors.css +17 -39
  102. package/src/utilities/colors/_subtle-colors.css +145 -0
  103. package/src/utilities/colors/_text-bg-colors.css +62 -0
  104. package/src/utilities/colors/_text-colors.css +32 -409
  105. package/src/utilities/effects/_focus-ring.css +33 -0
  106. package/src/utilities/effects/_shadows.css +0 -33
  107. package/src/utilities/index.css +16 -0
  108. package/src/utilities/layout/_misc.css +2 -5
  109. package/src/utilities/layout/{_grid.css → _ratio.css} +0 -19
  110. package/src/utilities/modules.css +9 -3
  111. package/src/utilities/sizing/_width.css +8 -0
  112. package/src/utilities/spacing/_gap.css +144 -144
  113. package/src/utilities/spacing/_margin.css +324 -324
  114. package/src/utilities/spacing/_padding.css +324 -324
  115. package/src/utilities/typography/_font-sizes.css +6 -6
  116. package/src/variables/_all.css +2 -20
  117. package/src/variables/_elements.css +29 -28
  118. package/src/variables/_theme.css +336 -0
  119. package/src/variants/_variables.css +24 -0
  120. package/src/variants/intent/_contrast.css +46 -0
  121. package/src/variants/intent/_danger.css +38 -0
  122. package/src/variants/intent/_info.css +38 -0
  123. package/src/variants/intent/_primary.css +38 -0
  124. package/src/variants/intent/_secondary.css +38 -0
  125. package/src/variants/intent/_success.css +38 -0
  126. package/src/variants/intent/_warning.css +38 -0
  127. package/src/variants/{_container.css → modifiers/_container.css} +3 -10
  128. package/src/variants/modifiers/_ghost.css +164 -0
  129. package/src/variants/modifiers/_striped.css +11 -0
  130. package/src/variants/modifiers/_subtle.css +133 -0
  131. package/src/variants/modules.css +12 -14
  132. package/src/_normalize.css +0 -214
  133. package/src/semantics/_misc.css +0 -3
  134. package/src/utilities/colors/_background-colors.css +0 -248
  135. package/src/variables/_colors.css +0 -355
  136. package/src/variables/_components.css +0 -330
  137. package/src/variables/_icons.css +0 -55
  138. package/src/variables/_layout.css +0 -123
  139. package/src/variants/_contained.css +0 -43
  140. package/src/variants/_contrast.css +0 -61
  141. package/src/variants/_ghost.css +0 -68
  142. package/src/variants/_pane-panel-card.css +0 -54
  143. package/src/variants/_secondary.css +0 -48
  144. package/src/variants/_striped.css +0 -10
@@ -1,12 +1,9 @@
1
- /**
2
- * Nav
3
- */
4
1
  nav {
5
2
  --typography-spacing-vertical: 0;
6
- --typography-headings-top: 0;
3
+ --heading-gap-top: 0;
7
4
 
8
5
  display: flex;
9
- gap: calc(var(--nav-link-spacing) * 1.5);
6
+ gap: calc(var(--nav-link-gap) * 1.5);
10
7
  align-items: center;
11
8
  justify-content: space-between;
12
9
  overflow: visible;
@@ -21,13 +18,13 @@ nav {
21
18
 
22
19
  & ul li {
23
20
  &:not(:first-child) {
24
- margin-inline-start: calc(var(--nav-link-spacing) * 2);
21
+ margin-inline-start: calc(var(--nav-link-gap) * 2);
25
22
  }
26
23
 
27
24
  &:not(:last-child)::after {
28
25
  display: inline-block;
29
26
  position: absolute;
30
- width: calc(var(--nav-link-spacing) * 3);
27
+ width: calc(var(--nav-link-gap) * 3);
31
28
  content: var(--nav-breadcrumb-divider);
32
29
  color: var(--color-text-muted);
33
30
  text-align: center;
@@ -47,7 +44,7 @@ nav {
47
44
  ul, ol {
48
45
  align-items: center;
49
46
  display: flex;
50
- gap: calc(var(--nav-link-spacing) * 1.5);
47
+ gap: calc(var(--nav-link-gap) * 1.5);
51
48
  list-style: none;
52
49
  margin-bottom: 0 !important;
53
50
  padding: 0;
@@ -1,6 +1,3 @@
1
- /**
2
- * Progress
3
- */
4
1
  progress {
5
2
  -webkit-appearance: none;
6
3
  -moz-appearance: none;
@@ -11,14 +8,14 @@ progress {
11
8
  margin-bottom: calc(var(--spacing) * 0.5);
12
9
  overflow: hidden;
13
10
  border: 0;
14
- border-radius: var(--border-radius);
15
- background-color: var(--progress-bg);
11
+ border-radius: var(--radius);
12
+ background-color: var(--progress-track-fill);
16
13
  color: var(--progress-fill);
17
14
  vertical-align: baseline;
18
- accent-color: rgb(var(--color-primary-rgb));
15
+ accent-color: var(--color-primary-fill);
19
16
 
20
17
  &::-webkit-progress-bar {
21
- border-radius: var(--border-radius);
18
+ border-radius: var(--radius);
22
19
  background: none;
23
20
  }
24
21
 
@@ -34,7 +31,7 @@ progress {
34
31
 
35
32
  @media (prefers-reduced-motion: no-preference) {
36
33
  progress:indeterminate {
37
- background: var(--progress-bg) linear-gradient(to right, var(--progress-fill) 30%, var(--progress-bg) 30%) top left/150% 150% no-repeat;
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;
38
35
  animation: progress-indeterminate 1s linear infinite;
39
36
 
40
37
  &[value]::-webkit-progress-value {
@@ -1,6 +1,3 @@
1
- /**
2
- * Section
3
- */
4
1
  section {
5
2
  width: 100%;
6
3
  margin-bottom: var(--spacing);
@@ -0,0 +1,3 @@
1
+ small {
2
+ font-size: var(--font-size);
3
+ }
@@ -1,8 +1,6 @@
1
- /**
2
- * Table
3
- */
4
1
  table {
5
2
  border-collapse: collapse;
3
+ border-color: currentcolor; /* modern-normalize */
6
4
  border-spacing: 0;
7
5
  color: var(--color-text);
8
6
  font-style: normal;
@@ -16,7 +14,7 @@ table {
16
14
  th,
17
15
  td {
18
16
  padding: calc(var(--spacing) / 2) var(--spacing);
19
- border-bottom: var(--border-width) solid var(--table-border-color);
17
+ border-bottom: var(--border-size) solid var(--color-border);
20
18
  background-color: var(--color-background);
21
19
  color: var(--color-text);
22
20
  font-weight: var(--font-weight);
@@ -27,7 +25,7 @@ td {
27
25
  tfoot {
28
26
  & th,
29
27
  & td {
30
- border-top: var(--border-width) solid var(--table-border-color);
28
+ border-top: var(--border-size) solid var(--color-border);
31
29
  border-bottom: 0;
32
30
  }
33
31
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Checkboxes, Radios and Switches
3
- */
4
1
  label:has([type=checkbox], [type=radio]) {
5
2
  width: fit-content;
6
3
  cursor: pointer;
@@ -15,7 +12,7 @@ label:has([type=checkbox], [type=radio]) {
15
12
  height: 1.25em;
16
13
  margin-top: -0.125em;
17
14
  margin-inline-end: 0.5em;
18
- border-width: var(--border-width);
15
+ border-width: var(--border-size);
19
16
  vertical-align: middle;
20
17
  cursor: pointer;
21
18
 
@@ -24,8 +21,8 @@ label:has([type=checkbox], [type=radio]) {
24
21
  }
25
22
 
26
23
  &:checked, &:checked:active, &:checked:focus {
27
- --color-background: var(--color-primary-bg);
28
- --border-color: var(--color-primary-border);
24
+ --color-background: var(--color-primary-fill);
25
+ --border-color: var(--color-primary-fill);
29
26
  background-image: var(--icon-checkbox);
30
27
  background-position: center;
31
28
  background-size: 0.75em auto;
@@ -45,8 +42,8 @@ label:has([type=checkbox], [type=radio]) {
45
42
 
46
43
  [type=checkbox] {
47
44
  &:indeterminate {
48
- --color-background: var(--color-primary-bg);
49
- --border-color: var(--color-primary-border);
45
+ --color-background: var(--color-primary-fill);
46
+ --border-color: var(--color-primary-fill);
50
47
  background-image: var(--icon-minus);
51
48
  background-position: center;
52
49
  background-size: 0.75em auto;
@@ -58,24 +55,24 @@ label:has([type=checkbox], [type=radio]) {
58
55
  border-radius: 50%;
59
56
 
60
57
  &:checked, &:checked:active, &:checked:focus {
61
- --color-background: var(--color-primary-inverse);
58
+ --color-background: var(--color-primary-on-fill);
62
59
  border-width: 0.35em;
63
60
  background-image: none;
64
61
  }
65
62
  }
66
63
 
67
64
  [type=checkbox][role=switch] {
68
- --color-background: var(--switch-bg);
69
- --color-text: var(--switch-thumb-color);
65
+ --color-background: var(--switch-fill);
66
+ --color-text: var(--switch-thumb-fill);
70
67
  width: 2.25em;
71
68
  height: 1.25em;
72
- border: var(--border-width) solid var(--border-color);
69
+ border: var(--border-size) solid var(--border-color);
73
70
  border-radius: 1.25em;
74
71
  background-color: var(--color-background);
75
72
  line-height: 1.25em;
76
73
 
77
74
  &:not([aria-invalid]) {
78
- --border-color: var(--switch-bg);
75
+ --border-color: var(--switch-fill);
79
76
  }
80
77
 
81
78
  &:before {
@@ -84,19 +81,19 @@ label:has([type=checkbox], [type=radio]) {
84
81
  height: 100%;
85
82
  border-radius: 50%;
86
83
  background-color: var(--color-text);
87
- box-shadow: var(--switch-thumb-shadow);
84
+ box-shadow: var(--switch-thumb-glow);
88
85
  content: "";
89
86
  transition: margin 0.1s ease-in-out;
90
87
  }
91
88
 
92
89
  &:focus {
93
- --color-background: var(--switch-bg);
94
- --border-color: var(--switch-bg);
90
+ --color-background: var(--switch-fill);
91
+ --border-color: var(--switch-fill);
95
92
  }
96
93
 
97
94
  &:checked {
98
- --color-background: var(--switch-checked-bg);
99
- --border-color: var(--switch-checked-bg);
95
+ --color-background: var(--switch-fill-checked);
96
+ --border-color: var(--switch-fill-checked);
100
97
  background-image: none;
101
98
 
102
99
  &::before {
@@ -113,13 +110,13 @@ label:has([type=checkbox], [type=radio]) {
113
110
  [type=checkbox][role=switch][aria-invalid=false]:checked,
114
111
  [type=checkbox][role=switch][aria-invalid=false]:checked:active,
115
112
  [type=checkbox][role=switch][aria-invalid=false]:checked:focus {
116
- --color-background: var(--form-valid-border);
113
+ --color-background: var(--color-success-fill);
117
114
  }
118
115
  [type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
119
116
  [type=checkbox][role=switch]:checked[aria-invalid=true],
120
117
  [type=checkbox][role=switch]:checked:active[aria-invalid=true],
121
118
  [type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
122
- --color-background: var(--form-invalid-border);
119
+ --color-background: var(--color-danger-fill);
123
120
  }
124
121
 
125
122
  [type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus,
@@ -129,7 +126,7 @@ label:has([type=checkbox], [type=radio]) {
129
126
  [type=checkbox][role=switch][aria-invalid=false]:checked,
130
127
  [type=checkbox][role=switch][aria-invalid=false]:checked:active,
131
128
  [type=checkbox][role=switch][aria-invalid=false]:checked:focus {
132
- --border-color: var(--form-valid-border);
129
+ --border-color: var(--color-success-fill);
133
130
  }
134
131
  [type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
135
132
  [type=radio]:checked[aria-invalid=true],
@@ -138,5 +135,5 @@ label:has([type=checkbox], [type=radio]) {
138
135
  [type=checkbox][role=switch]:checked[aria-invalid=true],
139
136
  [type=checkbox][role=switch]:checked:active[aria-invalid=true],
140
137
  [type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
141
- --border-color: var(--form-invalid-border);
138
+ --border-color: var(--color-danger-fill);
142
139
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Input type color
3
- */
4
1
  [type=color] {
5
2
  &::-webkit-color-swatch-wrapper {
6
3
  padding: 0;
@@ -12,11 +9,11 @@
12
9
 
13
10
  &::-webkit-color-swatch {
14
11
  border: 0;
15
- border-radius: calc(var(--border-radius) * 0.5);
12
+ border-radius: calc(var(--radius) * 0.5);
16
13
  }
17
14
 
18
15
  &::-moz-color-swatch {
19
16
  border: 0;
20
- border-radius: calc(var(--border-radius) * 0.5);
17
+ border-radius: calc(var(--radius) * 0.5);
21
18
  }
22
19
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Input type datetime
3
- */
4
1
  :where(input:not([type=checkbox], [type=radio], [type=range], [type=file]):is([type=date], [type=datetime-local], [type=month], [type=time], [type=week])) {
5
2
  --icon-position: 0.75rem;
6
3
  --icon-width: 1rem;
@@ -31,7 +28,7 @@
31
28
  [type=month],
32
29
  [type=time],
33
30
  [type=week] {
34
- padding-right: var(--form-element-spacing-horizontal);
31
+ padding-right: var(--input-spacing-horizontal);
35
32
  background-image: none;
36
33
  }
37
34
  }
@@ -1,26 +1,23 @@
1
- /**
2
- * Input type file
3
- */
4
1
  [type=file] {
5
2
  --color-text: var(--color-text-muted);
6
- margin-left: calc(var(--outline-width) * -1);
7
- padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;
8
- padding-left: var(--outline-width);
3
+ margin-left: calc(var(--outline-size) * -1);
4
+ padding: calc(var(--input-spacing-vertical) * 0.5) 0;
5
+ padding-left: var(--outline-size);
9
6
  border: 0;
10
7
  border-radius: 0;
11
8
  background: none;
12
9
 
13
10
  &::file-selector-button {
14
11
  margin-right: calc(var(--spacing) / 2);
15
- padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);
12
+ padding: calc(var(--input-spacing-vertical) * 0.5) var(--input-spacing-horizontal);
16
13
  }
17
14
 
18
15
  &:is(:hover, :active, :focus)::file-selector-button {
19
- --color-background: var(--color-secondary-hover-bg);
20
- --border-color: var(--color-secondary-hover-border);
16
+ --color-background: var(--color-secondary-fill-hover);
17
+ --border-color: var(--color-secondary-fill-hover);
21
18
  }
22
19
 
23
20
  &:focus::file-selector-button {
24
- --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--color-secondary-focus);
21
+ --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-secondary-focus-ring);
25
22
  }
26
23
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Input type range
3
- */
4
1
  [type=range] {
5
2
  -webkit-appearance: none;
6
3
  -moz-appearance: none;
@@ -12,24 +9,24 @@
12
9
  &::-webkit-slider-runnable-track {
13
10
  width: 100%;
14
11
  height: 0.375rem;
15
- border-radius: var(--border-radius);
16
- background-color: var(--range-border-color);
12
+ border-radius: var(--radius);
13
+ background-color: var(--range-track-border);
17
14
  transition: background-color var(--transition), box-shadow var(--transition);
18
15
  }
19
16
 
20
17
  &::-moz-range-track {
21
18
  width: 100%;
22
19
  height: 0.375rem;
23
- border-radius: var(--border-radius);
24
- background-color: var(--range-border-color);
20
+ border-radius: var(--radius);
21
+ background-color: var(--range-track-border);
25
22
  transition: background-color var(--transition), box-shadow var(--transition);
26
23
  }
27
24
 
28
25
  &::-ms-track {
29
26
  width: 100%;
30
27
  height: 0.375rem;
31
- border-radius: var(--border-radius);
32
- background-color: var(--range-border-color);
28
+ border-radius: var(--radius);
29
+ background-color: var(--range-track-border);
33
30
  transition: background-color var(--transition), box-shadow var(--transition);
34
31
  }
35
32
 
@@ -40,7 +37,7 @@
40
37
  margin-top: -0.4375rem;
41
38
  border: 2px solid var(--range-thumb-border);
42
39
  border-radius: 50%;
43
- background-color: var(--range-thumb-color);
40
+ background-color: var(--range-thumb-fill);
44
41
  cursor: pointer;
45
42
  transition: background-color var(--transition), transform var(--transition);
46
43
  }
@@ -52,7 +49,7 @@
52
49
  margin-top: -0.4375rem;
53
50
  border: 2px solid var(--range-thumb-border);
54
51
  border-radius: 50%;
55
- background-color: var(--range-thumb-color);
52
+ background-color: var(--range-thumb-fill);
56
53
  cursor: pointer;
57
54
  transition: background-color var(--transition), transform var(--transition);
58
55
  }
@@ -64,14 +61,14 @@
64
61
  margin-top: -0.4375rem;
65
62
  border: 2px solid var(--range-thumb-border);
66
63
  border-radius: 50%;
67
- background-color: var(--range-thumb-color);
64
+ background-color: var(--range-thumb-fill);
68
65
  cursor: pointer;
69
66
  transition: background-color var(--transition), transform var(--transition);
70
67
  }
71
68
 
72
69
  &:active, &:focus-within {
73
- --range-border-color: var(--range-active-border);
74
- --range-thumb-color: var(--range-thumb-active);
70
+ --range-track-border: var(--range-track-border-active);
71
+ --range-thumb-fill: var(--range-thumb-fill-active);
75
72
  }
76
73
 
77
74
  &:active {
@@ -1,18 +1,14 @@
1
- /**
2
- * Input type search
3
- *
4
- */
5
1
  input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
6
- padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);
2
+ padding-inline-start: calc(var(--input-spacing-horizontal) + 1.75rem);
7
3
  background-image: var(--icon-search);
8
- background-position: left calc(var(--form-element-spacing-horizontal) + 0.125rem) center;
4
+ background-position: left calc(var(--input-spacing-horizontal) + 0.125rem) center;
9
5
  background-size: 1rem auto;
10
6
  background-repeat: no-repeat;
11
7
 
12
8
  &[aria-invalid] {
13
- padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);
9
+ padding-inline-start: calc(var(--input-spacing-horizontal) + 1.75rem);
14
10
  /* Using calc with var to workaround LightningCSS minification bug with 3-value syntax */
15
- background-position: left calc(var(--form-element-spacing-horizontal) * 0 + 1.125rem) center, right calc(var(--form-element-spacing-horizontal) * 0 + 0.75rem) center;
11
+ background-position: left calc(var(--input-spacing-horizontal) * 0 + 1.125rem) center, right calc(var(--input-spacing-horizontal) * 0 + 0.75rem) center;
16
12
  }
17
13
 
18
14
  &[aria-invalid=false] {
@@ -25,10 +21,10 @@ input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search]
25
21
  }
26
22
 
27
23
  [dir=rtl] input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
28
- background-position: right calc(var(--form-element-spacing-horizontal) * 0 + 1.125rem) center;
24
+ background-position: right calc(var(--input-spacing-horizontal) * 0 + 1.125rem) center;
29
25
 
30
26
  &[aria-invalid] {
31
27
  /* Using calc with var to workaround LightningCSS minification bug with 3-value syntax */
32
- background-position: right calc(var(--form-element-spacing-horizontal) * 0 + 1.125rem) center, left calc(var(--form-element-spacing-horizontal) * 0 + 0.75rem) center;
28
+ background-position: right calc(var(--input-spacing-horizontal) * 0 + 1.125rem) center, left calc(var(--input-spacing-horizontal) * 0 + 0.75rem) center;
33
29
  }
34
30
  }
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Semantic-first HTML styling (no variants or utility classes)
5
5
  *
6
- * Adapted from Pico CSS (https://picocss.com)
7
- * Original work: Copyright (c) 2019-2024 Pico CSS
6
+ * Original works: see https://github.com/semanticus/semanticus-css/blob/main/NOTICE for copyright and license details
7
+ *
8
8
  * Modifications: Copyright (c) 2026 Joao Goncalves
9
9
  * Licensed under MIT (https://github.com/semanticus/semanticus-css/blob/main/LICENSE)
10
10
  */
@@ -12,8 +12,5 @@
12
12
  /* Variables */
13
13
  @import '../variables/_all.css';
14
14
 
15
- /* Normalize */
16
- @import '../_normalize.css';
17
-
18
15
  /* Semantic Components */
19
16
  @import "./modules.css";
@@ -1,10 +1,3 @@
1
- /**
2
- * Semanticus CSS Semantics Modules
3
- * Just the semantic component styles (no variables, no normalize)
4
- * Used by the full version which imports variables/normalize separately
5
- */
6
- @import "./_misc.css";
7
-
8
1
  @import "./attributes/_aria-busy.css";
9
2
  @import "./attributes/_hidden.css";
10
3
  @import "./attributes/_popover.css";
@@ -41,6 +34,7 @@
41
34
  @import "./elements/_p.css";
42
35
  @import "./elements/_progress.css";
43
36
  @import "./elements/_section.css";
37
+ @import "./elements/_small.css";
44
38
  @import "./elements/_strong.css";
45
39
  @import "./elements/_sub.css";
46
40
  @import "./elements/_sup.css";
@@ -16,31 +16,28 @@
16
16
  --text-underline-offset: 0.1rem;
17
17
 
18
18
  /* Borders & Effects – global defaults for border-radius, border-width, outline, and transition */
19
- --border-radius: 0.25rem;
20
- --border-width: 0.0625rem; /* 1px – base border width used by forms, tables, etc. */
21
- --outline-width: 0.125rem; /* 2px – focus-ring width */
19
+ --radius: 0.25rem;
20
+ --border-size: 0.0625rem; /* 1px – base border width used by forms, tables, etc. */
21
+ --outline-size: 0.125rem; /* 2px – focus-ring width */
22
22
  --transition: 0.2s ease-in-out; /* Default transition timing for interactive state changes */
23
23
 
24
24
  /* Spacing – shared base unit used for padding, margins, and gaps throughout the layout */
25
25
  --base-spacing: 1rem;
26
- --responsive-multiplier: 1;
27
- --spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
26
+ --spacing: var(--base-spacing);
28
27
  --typography-spacing-vertical: 1rem; /* Vertical margin below typographic elements (p, lists, etc.) */
29
- --grid-column-gap: var(--spacing); /* Column gap in CSS Grid layouts */
30
- --grid-row-gap: var(--spacing); /* Row gap in CSS Grid layouts */
31
- --form-element-spacing-vertical: 0.75rem; /* Vertical padding inside form inputs, selects, and textareas */
32
- --form-element-spacing-horizontal: 1rem; /* Horizontal padding inside form inputs, selects, and textareas */
28
+ --input-spacing-vertical: 0.75rem; /* Vertical padding inside form inputs, selects, and textareas */
29
+ --input-spacing-horizontal: 1rem; /* Horizontal padding inside form inputs, selects, and textareas */
33
30
 
34
31
  /* Shadows – used by [role="group"] and [role="search"] button/input combos */
35
32
  --group-shadow: 0 0 0 rgba(0, 0, 0, 0); /* Default (no shadow) */
36
- --group-shadow-focus-with-button: 0 0 0 var(--outline-width) var(--color-primary-focus); /* Focus ring when a button inside the group is focused */
37
- --group-shadow-focus-with-input: 0 0 0 0.0625rem var(--form-border-color); /* Focus ring when an input inside the group is focused */
33
+ --group-shadow-focus-button: 0 0 0 var(--outline-size) var(--color-primary-focus-ring); /* Focus ring when a button inside the group is focused */
34
+ --group-shadow-focus-input: 0 0 0 0.0625rem var(--input-border); /* Focus ring when an input inside the group is focused */
38
35
 
39
36
  /* Navigation – spacing and breadcrumb configuration */
40
- --nav-link-spacing: calc(var(--spacing) * 0.5); /* padding inside nav links */
37
+ --nav-link-gap: calc(var(--spacing) * 0.5); /* padding inside nav links */
41
38
  --nav-breadcrumb-divider: ">"; /* Character displayed between breadcrumb items */
42
39
 
43
- --sidebar-width: 25%; /* Sidebar width */
40
+ --sidebar-size: 25%; /* Sidebar width */
44
41
  }
45
42
 
46
43
  /* Responsive Font Sizes – progressively increase root font-size at wider viewports */
@@ -48,10 +45,8 @@
48
45
  :root,
49
46
  :host {
50
47
  --font-size: 106.25%;
51
- --sidebar-width: max(25%, 150px);
52
- --responsive-multiplier: 1.25;
53
- --spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
54
- --nav-link-spacing: calc(var(--spacing) * 0.5);
48
+ --sidebar-size: max(25%, 150px);
49
+ --spacing: calc(var(--base-spacing) * 1.25);
55
50
  }
56
51
  }
57
52
 
@@ -59,10 +54,8 @@
59
54
  :root,
60
55
  :host {
61
56
  --font-size: 112.5%;
62
- --sidebar-width: max(22%, 180px);
63
- --responsive-multiplier: 1.5;
64
- --spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
65
- --nav-link-spacing: calc(var(--spacing) * 0.5);
57
+ --sidebar-size: max(22%, 180px);
58
+ --spacing: calc(var(--base-spacing) * 1.5);
66
59
  }
67
60
  }
68
61
 
@@ -70,10 +63,8 @@
70
63
  :root,
71
64
  :host {
72
65
  --font-size: 118.75%;
73
- --sidebar-width: max(20%, 200px);
74
- --responsive-multiplier: 1.75;
75
- --spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
76
- --nav-link-spacing: calc(var(--spacing) * 0.5);
66
+ --sidebar-size: max(20%, 200px);
67
+ --spacing: calc(var(--base-spacing) * 1.75);
77
68
  }
78
69
  }
79
70
 
@@ -81,10 +72,8 @@
81
72
  :root,
82
73
  :host {
83
74
  --font-size: 125%;
84
- --sidebar-width: max(18%, 220px);
85
- --responsive-multiplier: 2;
86
- --spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
87
- --nav-link-spacing: calc(var(--spacing) * 0.5);
75
+ --sidebar-size: max(18%, 220px);
76
+ --spacing: calc(var(--base-spacing) * 2);
88
77
  }
89
78
  }
90
79
 
@@ -92,9 +81,7 @@
92
81
  :root,
93
82
  :host {
94
83
  --font-size: 131.25%;
95
- --sidebar-width: clamp(240px, 16%, 300px);
96
- --responsive-multiplier: 2.25;
97
- --spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
98
- --nav-link-spacing: calc(var(--spacing) * 0.5);
84
+ --sidebar-size: clamp(240px, 16%, 300px);
85
+ --spacing: calc(var(--base-spacing) * 2.25);
99
86
  }
100
87
  }