@semanticus/semanticus-css 0.7.0 → 0.9.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/README.md +8 -10
- package/dist/semanticus-semantics.css +11 -1
- package/dist/semanticus.css +13 -1
- package/dist/semanticus.palette.amber.css +1 -1
- package/dist/semanticus.palette.blue.css +1 -1
- package/dist/semanticus.palette.cyan.css +1 -1
- package/dist/semanticus.palette.fuchsia.css +1 -1
- package/dist/semanticus.palette.green.css +1 -1
- package/dist/semanticus.palette.grey.css +1 -1
- package/dist/semanticus.palette.indigo.css +1 -1
- package/dist/semanticus.palette.jade.css +1 -1
- package/dist/semanticus.palette.lime.css +1 -1
- package/dist/semanticus.palette.orange.css +1 -1
- package/dist/semanticus.palette.pink.css +1 -1
- package/dist/semanticus.palette.pumpkin.css +1 -1
- package/dist/semanticus.palette.purple.css +1 -1
- package/dist/semanticus.palette.red.css +1 -1
- package/dist/semanticus.palette.sand.css +1 -1
- package/dist/semanticus.palette.slate.css +1 -1
- package/dist/semanticus.palette.violet.css +1 -1
- package/dist/semanticus.palette.yellow.css +1 -1
- package/dist/semanticus.palette.zinc.css +1 -1
- package/dist/semanticus.size.pico.css +1 -0
- package/package.json +13 -14
- package/src/index.css +11 -4
- package/src/palettes/amber.css +3 -3
- package/src/palettes/blue.css +3 -3
- package/src/palettes/cyan.css +3 -3
- package/src/palettes/fuchsia.css +3 -3
- package/src/palettes/green.css +3 -3
- package/src/palettes/grey.css +3 -3
- package/src/palettes/indigo.css +3 -3
- package/src/palettes/jade.css +3 -3
- package/src/palettes/lime.css +3 -3
- package/src/palettes/orange.css +3 -3
- package/src/palettes/pink.css +3 -3
- package/src/palettes/pumpkin.css +3 -3
- package/src/palettes/purple.css +3 -3
- package/src/palettes/red.css +3 -3
- package/src/palettes/sand.css +3 -3
- package/src/palettes/slate.css +3 -3
- package/src/palettes/violet.css +3 -3
- package/src/palettes/yellow.css +3 -3
- package/src/palettes/zinc.css +3 -3
- package/src/semantics/_misc.css +3 -0
- package/src/semantics/attributes/_popover.css +13 -0
- package/src/semantics/attributes/_role-group-search.css +140 -0
- package/src/semantics/elements/_abbr.css +5 -0
- package/src/semantics/elements/_address.css +7 -0
- package/src/semantics/elements/_article.css +6 -0
- package/src/semantics/{_aside.css → elements/_aside.css} +3 -3
- package/src/semantics/elements/_blockquote.css +18 -0
- package/src/semantics/{_button.css → elements/_button.css} +2 -2
- package/src/semantics/{_code.css → elements/_code.css} +10 -7
- package/src/semantics/elements/_del.css +3 -0
- package/src/semantics/{_details.css → elements/_details.css} +10 -10
- package/src/semantics/elements/_dialog.css +117 -0
- package/src/semantics/elements/_footer.css +13 -0
- package/src/semantics/elements/_header.css +13 -0
- package/src/semantics/elements/_headings.css +34 -0
- package/src/semantics/elements/_hgroup.css +14 -0
- package/src/semantics/{_hr.css → elements/_hr.css} +1 -1
- package/src/semantics/{_input.css → elements/_input.css} +3 -4
- package/src/semantics/elements/_ins.css +4 -0
- package/src/semantics/{_links.css → elements/_links.css} +11 -4
- package/src/semantics/elements/_lists.css +22 -0
- package/src/semantics/elements/_main.css +7 -0
- package/src/semantics/elements/_mark.css +6 -0
- package/src/semantics/{_nav.css → elements/_nav.css} +4 -4
- package/src/semantics/elements/_p.css +11 -0
- package/src/semantics/{_progress.css → elements/_progress.css} +1 -1
- package/src/semantics/elements/_section.css +7 -0
- package/src/semantics/elements/_strong.css +4 -0
- package/src/semantics/elements/_sub.css +7 -0
- package/src/semantics/elements/_sup.css +7 -0
- package/src/semantics/{_table.css → elements/_table.css} +7 -2
- package/src/semantics/index.css +9 -4
- package/src/semantics/modules.css +47 -32
- package/src/sizes/pico.css +100 -0
- package/src/utilities/_variables.css +19 -214
- package/src/utilities/borders/_border-radius.css +24 -0
- package/src/utilities/borders/_border-width.css +8 -0
- package/src/utilities/colors/_background-colors.css +51 -44
- package/src/utilities/colors/_border-colors.css +14 -14
- package/src/utilities/colors/_text-colors.css +80 -80
- package/src/utilities/effects/_shadows.css +10 -10
- package/src/utilities/layout/_flexbox.css +16 -1
- package/src/utilities/layout/_misc.css +2 -2
- package/src/utilities/modules.css +6 -0
- package/src/utilities/spacing/_gap.css +63 -0
- package/src/utilities/spacing/_margin.css +145 -0
- package/src/utilities/spacing/_padding.css +145 -0
- package/src/utilities/typography/_font-sizes.css +0 -15
- package/src/variables/_all.css +15 -739
- package/src/variables/_breakpoints.css +10 -0
- package/src/variables/_colors.css +355 -0
- package/src/variables/_components.css +330 -0
- package/src/variables/_elements.css +194 -0
- package/src/variables/_icons.css +55 -0
- package/src/variables/_layout.css +123 -0
- package/src/variants/_contrast.css +28 -14
- package/src/variants/_ghost.css +36 -29
- package/src/variants/_pane-panel-card.css +54 -0
- package/src/variants/_secondary.css +25 -12
- package/src/variants/_sidebar.css +49 -9
- package/src/variants/modules.css +4 -6
- package/dist/semanticus-utilities.css +0 -7
- package/dist/semanticus-variants.css +0 -1
- package/dist/semanticus.size.slim.css +0 -1
- package/src/semantics/_article.css +0 -12
- package/src/semantics/_dialog.css +0 -157
- package/src/semantics/_footer.css +0 -12
- package/src/semantics/_header.css +0 -12
- package/src/semantics/_main.css +0 -10
- package/src/semantics/_role-group-search.css +0 -129
- package/src/semantics/_section.css +0 -9
- package/src/semantics/_typography.css +0 -146
- package/src/sizes/slim.css +0 -41
- package/src/utilities/index.css +0 -14
- package/src/variables/_shared.css +0 -121
- package/src/variants/_card.css +0 -45
- package/src/variants/_flow.css +0 -15
- package/src/variants/_panel.css +0 -18
- package/src/variants/index.css +0 -9
- /package/src/semantics/{_aria-busy.css → attributes/_aria-busy.css} +0 -0
- /package/src/semantics/{_hidden.css → attributes/_hidden.css} +0 -0
- /package/src/semantics/{_role-toolbar.css → attributes/_role-toolbar.css} +0 -0
- /package/src/semantics/{_role-tooltip.css → attributes/_role-tooltip.css} +0 -0
- /package/src/semantics/{_body.css → elements/_body.css} +0 -0
- /package/src/semantics/{_document.css → elements/_document.css} +0 -0
- /package/src/semantics/{_embedded.css → elements/_embedded.css} +0 -0
- /package/src/semantics/{_figure.css → elements/_figure.css} +0 -0
- /package/src/semantics/{_type-checkbox-radio.css → elements/_type-checkbox-radio.css} +0 -0
- /package/src/semantics/{_type-color.css → elements/_type-color.css} +0 -0
- /package/src/semantics/{_type-date.css → elements/_type-date.css} +0 -0
- /package/src/semantics/{_type-file.css → elements/_type-file.css} +0 -0
- /package/src/semantics/{_type-range.css → elements/_type-range.css} +0 -0
- /package/src/semantics/{_type-search.css → elements/_type-search.css} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
h1,
|
|
2
|
+
h2,
|
|
3
|
+
h3,
|
|
4
|
+
h4,
|
|
5
|
+
h5,
|
|
6
|
+
h6 {
|
|
7
|
+
margin-top: 0;
|
|
8
|
+
margin-bottom: var(--typography-spacing-vertical);
|
|
9
|
+
color: var(--color-text);
|
|
10
|
+
font-weight: var(--font-weight);
|
|
11
|
+
font-size: var(--font-size);
|
|
12
|
+
line-height: var(--line-height);
|
|
13
|
+
font-family: var(--font-family);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Headings - progressive lightness using color-mix */
|
|
17
|
+
h1 { --color-text: var(--color-heading-base); }
|
|
18
|
+
h2 { --color-text: color-mix(in srgb, var(--color-heading-base), white 12%); }
|
|
19
|
+
h3 { --color-text: color-mix(in srgb, var(--color-heading-base), white 22%); }
|
|
20
|
+
h4 { --color-text: color-mix(in srgb, var(--color-heading-base), white 32%); }
|
|
21
|
+
h5 { --color-text: color-mix(in srgb, var(--color-heading-base), white 45%); }
|
|
22
|
+
h6 { --color-text: color-mix(in srgb, var(--color-heading-base), white 55%); }
|
|
23
|
+
|
|
24
|
+
/* Dark mode headings - base is lightest, mix in black for lower levels */
|
|
25
|
+
[data-theme="dark"] h1 { --color-text: var(--color-heading-base); }
|
|
26
|
+
[data-theme="dark"] h2 { --color-text: color-mix(in srgb, var(--color-heading-base), black 8%); }
|
|
27
|
+
[data-theme="dark"] h3 { --color-text: color-mix(in srgb, var(--color-heading-base), black 18%); }
|
|
28
|
+
[data-theme="dark"] h4 { --color-text: color-mix(in srgb, var(--color-heading-base), black 28%); }
|
|
29
|
+
[data-theme="dark"] h5 { --color-text: color-mix(in srgb, var(--color-heading-base), black 38%); }
|
|
30
|
+
[data-theme="dark"] h6 { --color-text: color-mix(in srgb, var(--color-heading-base), black 48%); }
|
|
31
|
+
|
|
32
|
+
:where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul, hr) ~ :is(h1, h2, h3, h4, h5, h6) {
|
|
33
|
+
margin-top: var(--typography-spacing-top);
|
|
34
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
hgroup {
|
|
2
|
+
margin-bottom: var(--typography-spacing-vertical);
|
|
3
|
+
|
|
4
|
+
& > * {
|
|
5
|
+
margin-top: 0;
|
|
6
|
+
margin-bottom: 0;
|
|
7
|
+
|
|
8
|
+
&:not(:first-child):last-child {
|
|
9
|
+
color: color-mix(in srgb, var(--color-text), rgb(128, 128, 128) 70%);
|
|
10
|
+
--font-weight: unset;
|
|
11
|
+
font-size: 1rem;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -84,8 +84,7 @@ input:not([type=checkbox], [type=radio], [type=range]) {
|
|
|
84
84
|
|
|
85
85
|
fieldset {
|
|
86
86
|
width: 100%;
|
|
87
|
-
margin: 0;
|
|
88
|
-
margin-bottom: var(--spacing);
|
|
87
|
+
margin: 0 ;
|
|
89
88
|
padding: 0;
|
|
90
89
|
border: 0;
|
|
91
90
|
}
|
|
@@ -294,11 +293,11 @@ textarea {
|
|
|
294
293
|
}
|
|
295
294
|
|
|
296
295
|
:where(input, select, textarea, fieldset)[aria-invalid=false] + small {
|
|
297
|
-
color: rgb(var(--success-rgb));
|
|
296
|
+
color: rgb(var(--color-success-rgb));
|
|
298
297
|
}
|
|
299
298
|
|
|
300
299
|
:where(input, select, textarea, fieldset)[aria-invalid=true] + small {
|
|
301
|
-
color: rgb(var(--danger-rgb));
|
|
300
|
+
color: rgb(var(--color-danger-rgb));
|
|
302
301
|
}
|
|
303
302
|
|
|
304
303
|
label > :where(input, select, textarea) {
|
|
@@ -3,20 +3,27 @@
|
|
|
3
3
|
*/
|
|
4
4
|
:where(a:not([role=button])),
|
|
5
5
|
[role=link] {
|
|
6
|
-
--color-text: var(--color-primary);
|
|
7
6
|
--color-background: transparent;
|
|
7
|
+
--border-color: transparent;
|
|
8
|
+
--color-text: rgb(var(--color-primary-rgb));
|
|
9
|
+
--shadow-lg: transparent;
|
|
8
10
|
--underline: var(--color-primary-underline);
|
|
9
11
|
outline: none;
|
|
12
|
+
padding: 0;
|
|
10
13
|
background-color: var(--color-background);
|
|
11
14
|
color: var(--color-text);
|
|
12
15
|
text-decoration: var(--text-decoration);
|
|
13
16
|
text-decoration-color: var(--underline);
|
|
14
17
|
text-underline-offset: 0.125em;
|
|
15
18
|
transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
|
|
16
|
-
}
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
&:is(:hover, :active, :focus) {
|
|
21
|
+
--color-background: transparent;
|
|
22
|
+
--border-color: transparent;
|
|
23
|
+
--color-text: rgb(var(--color-primary-rgb));
|
|
24
|
+
--shadow-lg: transparent;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
&:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
|
|
21
28
|
--color-text: var(--color-primary-hover);
|
|
22
29
|
--underline: var(--color-primary-hover-underline);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
dl,
|
|
2
|
+
ol,
|
|
3
|
+
ul {
|
|
4
|
+
margin-top: 0;
|
|
5
|
+
margin-bottom: var(--typography-spacing-vertical);
|
|
6
|
+
color: var(--color-text);
|
|
7
|
+
font-style: normal;
|
|
8
|
+
font-weight: var(--font-weight);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
:where(ol, ul) li {
|
|
12
|
+
margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where(dl, ol, ul) :where(dl, ol, ul) {
|
|
16
|
+
margin: 0;
|
|
17
|
+
margin-top: calc(var(--typography-spacing-vertical) * 0.25);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
ul li {
|
|
21
|
+
list-style: square;
|
|
22
|
+
}
|
|
@@ -6,7 +6,7 @@ nav {
|
|
|
6
6
|
--typography-headings-top: 0;
|
|
7
7
|
|
|
8
8
|
display: flex;
|
|
9
|
-
gap: var(--spacing);
|
|
9
|
+
gap: calc(var(--nav-link-spacing) * 1.5);
|
|
10
10
|
align-items: center;
|
|
11
11
|
justify-content: space-between;
|
|
12
12
|
overflow: visible;
|
|
@@ -21,13 +21,13 @@ nav {
|
|
|
21
21
|
|
|
22
22
|
& ul li {
|
|
23
23
|
&:not(:first-child) {
|
|
24
|
-
margin-inline-start: calc(var(--nav-link-spacing
|
|
24
|
+
margin-inline-start: calc(var(--nav-link-spacing) * 2);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
&:not(:last-child)::after {
|
|
28
28
|
display: inline-block;
|
|
29
29
|
position: absolute;
|
|
30
|
-
width: calc(var(--nav-link-spacing
|
|
30
|
+
width: calc(var(--nav-link-spacing) * 3);
|
|
31
31
|
content: var(--nav-breadcrumb-divider);
|
|
32
32
|
color: var(--color-text-muted);
|
|
33
33
|
text-align: center;
|
|
@@ -47,7 +47,7 @@ nav {
|
|
|
47
47
|
ul, ol {
|
|
48
48
|
align-items: center;
|
|
49
49
|
display: flex;
|
|
50
|
-
gap: var(--spacing);
|
|
50
|
+
gap: calc(var(--nav-link-spacing) * 1.5);
|
|
51
51
|
list-style: none;
|
|
52
52
|
margin-bottom: 0 !important;
|
|
53
53
|
padding: 0;
|
|
@@ -15,7 +15,7 @@ progress {
|
|
|
15
15
|
background-color: var(--progress-bg);
|
|
16
16
|
color: var(--progress-fill);
|
|
17
17
|
vertical-align: baseline;
|
|
18
|
-
accent-color: var(--color-primary);
|
|
18
|
+
accent-color: rgb(var(--color-primary-rgb));
|
|
19
19
|
|
|
20
20
|
&::-webkit-progress-bar {
|
|
21
21
|
border-radius: var(--border-radius);
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Table
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
width: 100%;
|
|
4
|
+
table {
|
|
6
5
|
border-collapse: collapse;
|
|
7
6
|
border-spacing: 0;
|
|
7
|
+
color: var(--color-text);
|
|
8
|
+
font-style: normal;
|
|
9
|
+
font-weight: var(--font-weight);
|
|
10
|
+
margin-bottom: var(--typography-spacing-vertical);
|
|
11
|
+
margin-top: 0;
|
|
8
12
|
text-indent: 0;
|
|
13
|
+
width: 100%;
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
th,
|
package/src/semantics/index.css
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
* Semanticus CSS Semantics
|
|
3
|
-
*
|
|
4
|
-
*
|
|
1
|
+
/*!
|
|
2
|
+
* Semanticus CSS Semantics Bundle v0.8.0 (https://semanticus.design/)
|
|
3
|
+
*
|
|
4
|
+
* Semantic-first HTML styling (no variants or utility classes)
|
|
5
|
+
*
|
|
6
|
+
* Adapted from Pico CSS (https://picocss.com)
|
|
7
|
+
* Original work: Copyright (c) 2019-2024 Pico CSS
|
|
8
|
+
* Modifications: Copyright (c) 2026 Joao Goncalves
|
|
9
|
+
* Licensed under MIT (https://github.com/semanticus/semanticus-css/blob/main/LICENSE)
|
|
5
10
|
*/
|
|
6
11
|
|
|
7
12
|
/* Variables */
|
|
@@ -3,36 +3,51 @@
|
|
|
3
3
|
* Just the semantic component styles (no variables, no normalize)
|
|
4
4
|
* Used by the full version which imports variables/normalize separately
|
|
5
5
|
*/
|
|
6
|
+
@import "./_misc.css";
|
|
6
7
|
|
|
7
|
-
@import "./_aria-busy.css";
|
|
8
|
-
@import "./
|
|
9
|
-
@import "./
|
|
10
|
-
@import "./
|
|
11
|
-
@import "./
|
|
12
|
-
@import "./
|
|
13
|
-
|
|
14
|
-
@import "./
|
|
15
|
-
@import "./
|
|
16
|
-
@import "./
|
|
17
|
-
@import "./
|
|
18
|
-
@import "./
|
|
19
|
-
@import "./
|
|
20
|
-
@import "./
|
|
21
|
-
@import "./
|
|
22
|
-
@import "./
|
|
23
|
-
@import "./
|
|
24
|
-
@import "./
|
|
25
|
-
@import "./
|
|
26
|
-
@import "./
|
|
27
|
-
@import "./
|
|
28
|
-
@import "./
|
|
29
|
-
@import "./
|
|
30
|
-
@import "./
|
|
31
|
-
@import "./
|
|
32
|
-
@import "./
|
|
33
|
-
@import "./
|
|
34
|
-
@import "./
|
|
35
|
-
@import "./
|
|
36
|
-
@import "./
|
|
37
|
-
@import "./
|
|
38
|
-
@import "./
|
|
8
|
+
@import "./attributes/_aria-busy.css";
|
|
9
|
+
@import "./attributes/_hidden.css";
|
|
10
|
+
@import "./attributes/_popover.css";
|
|
11
|
+
@import "./attributes/_role-group-search.css";
|
|
12
|
+
@import "./attributes/_role-toolbar.css";
|
|
13
|
+
@import "./attributes/_role-tooltip.css";
|
|
14
|
+
|
|
15
|
+
@import "./elements/_abbr.css";
|
|
16
|
+
@import "./elements/_address.css";
|
|
17
|
+
@import "./elements/_article.css";
|
|
18
|
+
@import "./elements/_aside.css";
|
|
19
|
+
@import "./elements/_blockquote.css";
|
|
20
|
+
@import "./elements/_body.css";
|
|
21
|
+
@import "./elements/_button.css";
|
|
22
|
+
@import "./elements/_code.css";
|
|
23
|
+
@import "./elements/_del.css";
|
|
24
|
+
@import "./elements/_details.css";
|
|
25
|
+
@import "./elements/_dialog.css";
|
|
26
|
+
@import "./elements/_document.css";
|
|
27
|
+
@import "./elements/_embedded.css";
|
|
28
|
+
@import "./elements/_figure.css";
|
|
29
|
+
@import "./elements/_footer.css";
|
|
30
|
+
@import "./elements/_header.css";
|
|
31
|
+
@import "./elements/_headings.css";
|
|
32
|
+
@import "./elements/_hgroup.css";
|
|
33
|
+
@import "./elements/_hr.css";
|
|
34
|
+
@import "./elements/_input.css";
|
|
35
|
+
@import "./elements/_ins.css";
|
|
36
|
+
@import "./elements/_links.css";
|
|
37
|
+
@import "./elements/_lists.css";
|
|
38
|
+
@import "./elements/_main.css";
|
|
39
|
+
@import "./elements/_mark.css";
|
|
40
|
+
@import "./elements/_nav.css";
|
|
41
|
+
@import "./elements/_p.css";
|
|
42
|
+
@import "./elements/_progress.css";
|
|
43
|
+
@import "./elements/_section.css";
|
|
44
|
+
@import "./elements/_strong.css";
|
|
45
|
+
@import "./elements/_sub.css";
|
|
46
|
+
@import "./elements/_sup.css";
|
|
47
|
+
@import "./elements/_table.css";
|
|
48
|
+
@import "./elements/_type-checkbox-radio.css";
|
|
49
|
+
@import "./elements/_type-color.css";
|
|
50
|
+
@import "./elements/_type-date.css";
|
|
51
|
+
@import "./elements/_type-file.css";
|
|
52
|
+
@import "./elements/_type-range.css";
|
|
53
|
+
@import "./elements/_type-search.css";
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* Shared variables */
|
|
2
|
+
@import '../variables/_breakpoints.css';
|
|
3
|
+
|
|
4
|
+
:root,
|
|
5
|
+
:host {
|
|
6
|
+
/* Font Families */
|
|
7
|
+
--font-family-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
8
|
+
--font-family-sans-serif: system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif, var(--font-family-emoji);
|
|
9
|
+
--font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace, var(--font-family-emoji);
|
|
10
|
+
--font-family: var(--font-family-sans-serif);
|
|
11
|
+
|
|
12
|
+
/* Typography – base defaults inherited by all elements */
|
|
13
|
+
--line-height: 1.5;
|
|
14
|
+
--font-weight: 400;
|
|
15
|
+
--font-size: 100%; /* Root font-size; overridden per breakpoint below and per element in §6 */
|
|
16
|
+
--text-underline-offset: 0.1rem;
|
|
17
|
+
|
|
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 */
|
|
22
|
+
--transition: 0.2s ease-in-out; /* Default transition timing for interactive state changes */
|
|
23
|
+
|
|
24
|
+
/* Spacing – shared base unit used for padding, margins, and gaps throughout the layout */
|
|
25
|
+
--base-spacing: 1rem;
|
|
26
|
+
--responsive-multiplier: 1;
|
|
27
|
+
--spacing: calc(var(--base-spacing) * var(--responsive-multiplier));
|
|
28
|
+
--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 */
|
|
33
|
+
|
|
34
|
+
/* Shadows – used by [role="group"] and [role="search"] button/input combos */
|
|
35
|
+
--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 */
|
|
38
|
+
|
|
39
|
+
/* Navigation – spacing and breadcrumb configuration */
|
|
40
|
+
--nav-link-spacing: calc(var(--spacing) * 0.5); /* padding inside nav links */
|
|
41
|
+
--nav-breadcrumb-divider: ">"; /* Character displayed between breadcrumb items */
|
|
42
|
+
|
|
43
|
+
--sidebar-width: 25%; /* Sidebar width */
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Responsive Font Sizes – progressively increase root font-size at wider viewports */
|
|
47
|
+
@media (--breakpoint-sm) {
|
|
48
|
+
:root,
|
|
49
|
+
:host {
|
|
50
|
+
--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);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@media (--breakpoint-md) {
|
|
59
|
+
:root,
|
|
60
|
+
:host {
|
|
61
|
+
--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);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@media (--breakpoint-lg) {
|
|
70
|
+
:root,
|
|
71
|
+
:host {
|
|
72
|
+
--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);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@media (--breakpoint-xl) {
|
|
81
|
+
:root,
|
|
82
|
+
:host {
|
|
83
|
+
--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);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@media (--breakpoint-xxl) {
|
|
92
|
+
:root,
|
|
93
|
+
:host {
|
|
94
|
+
--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);
|
|
99
|
+
}
|
|
100
|
+
}
|