@semanticus/semanticus-css 0.7.0 → 0.8.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 (84) hide show
  1. package/README.md +8 -10
  2. package/dist/semanticus-semantics.css +11 -1
  3. package/dist/semanticus.css +14 -2
  4. package/dist/semanticus.palette.amber.css +1 -1
  5. package/dist/semanticus.palette.blue.css +1 -1
  6. package/dist/semanticus.palette.cyan.css +1 -1
  7. package/dist/semanticus.palette.fuchsia.css +1 -1
  8. package/dist/semanticus.palette.green.css +1 -1
  9. package/dist/semanticus.palette.grey.css +1 -1
  10. package/dist/semanticus.palette.indigo.css +1 -1
  11. package/dist/semanticus.palette.jade.css +1 -1
  12. package/dist/semanticus.palette.lime.css +1 -1
  13. package/dist/semanticus.palette.orange.css +1 -1
  14. package/dist/semanticus.palette.pink.css +1 -1
  15. package/dist/semanticus.palette.pumpkin.css +1 -1
  16. package/dist/semanticus.palette.purple.css +1 -1
  17. package/dist/semanticus.palette.red.css +1 -1
  18. package/dist/semanticus.palette.sand.css +1 -1
  19. package/dist/semanticus.palette.slate.css +1 -1
  20. package/dist/semanticus.palette.violet.css +1 -1
  21. package/dist/semanticus.palette.yellow.css +1 -1
  22. package/dist/semanticus.palette.zinc.css +1 -1
  23. package/dist/semanticus.size.pico.css +1 -0
  24. package/package.json +3 -7
  25. package/src/index.css +11 -4
  26. package/src/palettes/amber.css +3 -3
  27. package/src/palettes/blue.css +3 -3
  28. package/src/palettes/cyan.css +3 -3
  29. package/src/palettes/fuchsia.css +3 -3
  30. package/src/palettes/green.css +3 -3
  31. package/src/palettes/grey.css +3 -3
  32. package/src/palettes/indigo.css +3 -3
  33. package/src/palettes/jade.css +3 -3
  34. package/src/palettes/lime.css +3 -3
  35. package/src/palettes/orange.css +3 -3
  36. package/src/palettes/pink.css +3 -3
  37. package/src/palettes/pumpkin.css +3 -3
  38. package/src/palettes/purple.css +3 -3
  39. package/src/palettes/red.css +3 -3
  40. package/src/palettes/sand.css +3 -3
  41. package/src/palettes/slate.css +3 -3
  42. package/src/palettes/violet.css +3 -3
  43. package/src/palettes/yellow.css +3 -3
  44. package/src/palettes/zinc.css +3 -3
  45. package/src/semantics/_aside.css +2 -2
  46. package/src/semantics/_details.css +1 -1
  47. package/src/semantics/_input.css +2 -2
  48. package/src/semantics/_links.css +1 -1
  49. package/src/semantics/_progress.css +1 -1
  50. package/src/semantics/_typography.css +3 -3
  51. package/src/semantics/index.css +9 -4
  52. package/src/sizes/pico.css +95 -0
  53. package/src/utilities/_variables.css +19 -214
  54. package/src/utilities/borders/_border-radius.css +24 -0
  55. package/src/utilities/borders/_border-width.css +8 -0
  56. package/src/utilities/colors/_background-colors.css +51 -44
  57. package/src/utilities/colors/_border-colors.css +14 -14
  58. package/src/utilities/colors/_text-colors.css +80 -80
  59. package/src/utilities/effects/_shadows.css +10 -10
  60. package/src/utilities/layout/_flexbox.css +16 -1
  61. package/src/utilities/layout/_misc.css +2 -2
  62. package/src/utilities/modules.css +6 -0
  63. package/src/utilities/spacing/_gap.css +63 -0
  64. package/src/utilities/spacing/_margin.css +145 -0
  65. package/src/utilities/spacing/_padding.css +145 -0
  66. package/src/utilities/typography/_font-sizes.css +0 -15
  67. package/src/variables/_all.css +15 -739
  68. package/src/variables/_breakpoints.css +10 -0
  69. package/src/variables/_colors.css +366 -0
  70. package/src/variables/_components.css +318 -0
  71. package/src/variables/_elements.css +199 -0
  72. package/src/variables/_icons.css +43 -0
  73. package/src/variables/{_shared.css → _layout.css} +71 -64
  74. package/src/variants/_contrast.css +1 -1
  75. package/src/variants/_ghost.css +8 -8
  76. package/src/variants/_secondary.css +1 -1
  77. package/src/variants/modules.css +0 -1
  78. package/dist/semanticus-utilities.css +0 -7
  79. package/dist/semanticus-variants.css +0 -1
  80. package/dist/semanticus.size.slim.css +0 -1
  81. package/src/sizes/slim.css +0 -41
  82. package/src/utilities/index.css +0 -14
  83. package/src/variants/_flow.css +0 -15
  84. package/src/variants/index.css +0 -9
@@ -8,7 +8,7 @@
8
8
  :root:not([data-theme="dark"]),
9
9
  :host(:not([data-theme="dark"])) {
10
10
  --color-text-selection: rgba(240, 96, 72, 0.25);
11
- --color-primary: #c52f21;
11
+ --color-primary-rgb: 197, 47, 33;
12
12
  --color-primary-bg: #c52f21;
13
13
  --color-primary-border: var(--color-primary-bg);
14
14
  --color-primary-underline: rgba(197, 47, 33, 0.5);
@@ -26,7 +26,7 @@
26
26
  :root:not([data-theme]),
27
27
  :host(:not([data-theme])) {
28
28
  --color-text-selection: rgba(243, 143, 121, 0.1875);
29
- --color-primary: #f38f79;
29
+ --color-primary-rgb: 243, 143, 121;
30
30
  --color-primary-bg: #c52f21;
31
31
  --color-primary-border: var(--color-primary-bg);
32
32
  --color-primary-underline: rgba(243, 143, 121, 0.5);
@@ -42,7 +42,7 @@
42
42
 
43
43
  [data-theme="dark"] {
44
44
  --color-text-selection: rgba(243, 143, 121, 0.1875);
45
- --color-primary: #f38f79;
45
+ --color-primary-rgb: 243, 143, 121;
46
46
  --color-primary-bg: #c52f21;
47
47
  --color-primary-border: var(--color-primary-bg);
48
48
  --color-primary-underline: rgba(243, 143, 121, 0.5);
@@ -8,7 +8,7 @@
8
8
  :root:not([data-theme="dark"]),
9
9
  :host(:not([data-theme="dark"])) {
10
10
  --color-text-selection: rgba(181, 157, 119, 0.25);
11
- --color-primary: #6b5733;
11
+ --color-primary-rgb: 107, 87, 51;
12
12
  --color-primary-bg: #e6d5b8;
13
13
  --color-primary-border: var(--color-primary-bg);
14
14
  --color-primary-underline: rgba(107, 87, 51, 0.5);
@@ -26,7 +26,7 @@
26
26
  :root:not([data-theme]),
27
27
  :host(:not([data-theme])) {
28
28
  --color-text-selection: rgba(201, 178, 140, 0.1875);
29
- --color-primary: #c9b28c;
29
+ --color-primary-rgb: 201, 178, 140;
30
30
  --color-primary-bg: #e6d5b8;
31
31
  --color-primary-border: var(--color-primary-bg);
32
32
  --color-primary-underline: rgba(201, 178, 140, 0.5);
@@ -42,7 +42,7 @@
42
42
 
43
43
  [data-theme="dark"] {
44
44
  --color-text-selection: rgba(201, 178, 140, 0.1875);
45
- --color-primary: #c9b28c;
45
+ --color-primary-rgb: 201, 178, 140;
46
46
  --color-primary-bg: #e6d5b8;
47
47
  --color-primary-border: var(--color-primary-bg);
48
48
  --color-primary-underline: rgba(201, 178, 140, 0.5);
@@ -8,7 +8,7 @@
8
8
  :root:not([data-theme="dark"]),
9
9
  :host(:not([data-theme="dark"])) {
10
10
  --color-text-selection: rgba(130, 146, 170, 0.25);
11
- --color-primary: #48536b;
11
+ --color-primary-rgb: 72, 83, 107;
12
12
  --color-primary-bg: #48536b;
13
13
  --color-primary-border: var(--color-primary-bg);
14
14
  --color-primary-underline: rgba(72, 83, 107, 0.5);
@@ -26,7 +26,7 @@
26
26
  :root:not([data-theme]),
27
27
  :host(:not([data-theme])) {
28
28
  --color-text-selection: rgba(159, 176, 200, 0.1875);
29
- --color-primary: #9fb0c8;
29
+ --color-primary-rgb: 159, 176, 200;
30
30
  --color-primary-bg: #48536b;
31
31
  --color-primary-border: var(--color-primary-bg);
32
32
  --color-primary-underline: rgba(159, 176, 200, 0.5);
@@ -42,7 +42,7 @@
42
42
 
43
43
  [data-theme="dark"] {
44
44
  --color-text-selection: rgba(159, 176, 200, 0.1875);
45
- --color-primary: #9fb0c8;
45
+ --color-primary-rgb: 159, 176, 200;
46
46
  --color-primary-bg: #48536b;
47
47
  --color-primary-border: var(--color-primary-bg);
48
48
  --color-primary-underline: rgba(159, 176, 200, 0.5);
@@ -8,7 +8,7 @@
8
8
  :root:not([data-theme="dark"]),
9
9
  :host(:not([data-theme="dark"])) {
10
10
  --color-text-selection: rgba(167, 128, 212, 0.25);
11
- --color-primary: #7540bf;
11
+ --color-primary-rgb: 117, 64, 191;
12
12
  --color-primary-bg: #7540bf;
13
13
  --color-primary-border: var(--color-primary-bg);
14
14
  --color-primary-underline: rgba(117, 64, 191, 0.5);
@@ -26,7 +26,7 @@
26
26
  :root:not([data-theme]),
27
27
  :host(:not([data-theme])) {
28
28
  --color-text-selection: rgba(189, 159, 223, 0.1875);
29
- --color-primary: #bd9fdf;
29
+ --color-primary-rgb: 189, 159, 223;
30
30
  --color-primary-bg: #7540bf;
31
31
  --color-primary-border: var(--color-primary-bg);
32
32
  --color-primary-underline: rgba(189, 159, 223, 0.5);
@@ -42,7 +42,7 @@
42
42
 
43
43
  [data-theme="dark"] {
44
44
  --color-text-selection: rgba(189, 159, 223, 0.1875);
45
- --color-primary: #bd9fdf;
45
+ --color-primary-rgb: 189, 159, 223;
46
46
  --color-primary-bg: #7540bf;
47
47
  --color-primary-border: var(--color-primary-bg);
48
48
  --color-primary-underline: rgba(189, 159, 223, 0.5);
@@ -8,7 +8,7 @@
8
8
  :root:not([data-theme="dark"]),
9
9
  :host(:not([data-theme="dark"])) {
10
10
  --color-text-selection: rgba(209, 188, 0, 0.25);
11
- --color-primary: #8a7a00;
11
+ --color-primary-rgb: 138, 122, 0;
12
12
  --color-primary-bg: #fcf19c;
13
13
  --color-primary-border: var(--color-primary-bg);
14
14
  --color-primary-underline: rgba(138, 122, 0, 0.5);
@@ -26,7 +26,7 @@
26
26
  :root:not([data-theme]),
27
27
  :host(:not([data-theme])) {
28
28
  --color-text-selection: rgba(233, 212, 0, 0.1875);
29
- --color-primary: #e9d400;
29
+ --color-primary-rgb: 233, 212, 0;
30
30
  --color-primary-bg: #fcf19c;
31
31
  --color-primary-border: var(--color-primary-bg);
32
32
  --color-primary-underline: rgba(233, 212, 0, 0.5);
@@ -42,7 +42,7 @@
42
42
 
43
43
  [data-theme="dark"] {
44
44
  --color-text-selection: rgba(233, 212, 0, 0.1875);
45
- --color-primary: #e9d400;
45
+ --color-primary-rgb: 233, 212, 0;
46
46
  --color-primary-bg: #fcf19c;
47
47
  --color-primary-border: var(--color-primary-bg);
48
48
  --color-primary-underline: rgba(233, 212, 0, 0.5);
@@ -8,7 +8,7 @@
8
8
  :root:not([data-theme="dark"]),
9
9
  :host(:not([data-theme="dark"])) {
10
10
  --color-text-selection: rgba(127, 139, 158, 0.25);
11
- --color-primary: #525f7a;
11
+ --color-primary-rgb: 82, 95, 122;
12
12
  --color-primary-bg: #525f7a;
13
13
  --color-primary-border: var(--color-primary-bg);
14
14
  --color-primary-underline: rgba(82, 95, 122, 0.5);
@@ -26,7 +26,7 @@
26
26
  :root:not([data-theme]),
27
27
  :host(:not([data-theme])) {
28
28
  --color-text-selection: rgba(155, 168, 189, 0.1875);
29
- --color-primary: #9ba8bd;
29
+ --color-primary-rgb: 155, 168, 189;
30
30
  --color-primary-bg: #525f7a;
31
31
  --color-primary-border: var(--color-primary-bg);
32
32
  --color-primary-underline: rgba(155, 168, 189, 0.5);
@@ -42,7 +42,7 @@
42
42
 
43
43
  [data-theme="dark"] {
44
44
  --color-text-selection: rgba(155, 168, 189, 0.1875);
45
- --color-primary: #9ba8bd;
45
+ --color-primary-rgb: 155, 168, 189;
46
46
  --color-primary-bg: #525f7a;
47
47
  --color-primary-border: var(--color-primary-bg);
48
48
  --color-primary-underline: rgba(155, 168, 189, 0.5);
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Aside its width changes according to breakpoints (see src/variables/_shared.css),
3
- * its height grows to fill the available space,
2
+ * Aside its width changes according to certain breakpoints,
3
+ * and its height grows to fill the available space,
4
4
  * and stacks its children in a column with space between them (like a <nav> would).
5
5
  * In case of a single child, this child will fill the entire height.
6
6
  */
@@ -53,7 +53,7 @@ details {
53
53
  &:focus-visible:not([role]) {
54
54
  outline: var(--outline-width) solid var(--color-primary-focus);
55
55
  outline-offset: calc(var(--spacing, 1rem) * 0.5);
56
- color: var(--color-primary);
56
+ color: rgb(var(--color-primary-rgb));
57
57
  }
58
58
 
59
59
  &[role=button] {
@@ -294,11 +294,11 @@ textarea {
294
294
  }
295
295
 
296
296
  :where(input, select, textarea, fieldset)[aria-invalid=false] + small {
297
- color: rgb(var(--success-rgb));
297
+ color: rgb(var(--color-success-rgb));
298
298
  }
299
299
 
300
300
  :where(input, select, textarea, fieldset)[aria-invalid=true] + small {
301
- color: rgb(var(--danger-rgb));
301
+ color: rgb(var(--color-danger-rgb));
302
302
  }
303
303
 
304
304
  label > :where(input, select, textarea) {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  :where(a:not([role=button])),
5
5
  [role=link] {
6
- --color-text: var(--color-primary);
6
+ --color-text: rgb(var(--color-primary-rgb));
7
7
  --color-background: transparent;
8
8
  --underline: var(--color-primary-underline);
9
9
  outline: none;
@@ -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);
@@ -84,7 +84,7 @@ hgroup {
84
84
  margin-bottom: 0;
85
85
 
86
86
  &:not(:first-child):last-child {
87
- --color-text: var(--color-text-muted);
87
+ color: color-mix(in srgb, var(--color-text), rgb(128, 128, 128) 70%);
88
88
  --font-weight: unset;
89
89
  font-size: 1rem;
90
90
  }
@@ -133,12 +133,12 @@ abbr[title] {
133
133
  }
134
134
 
135
135
  ins {
136
- color: rgb(var(--success-rgb));
136
+ color: rgb(var(--color-success-rgb));
137
137
  text-decoration: none;
138
138
  }
139
139
 
140
140
  del {
141
- color: rgb(var(--danger-rgb));
141
+ color: rgb(var(--color-danger-rgb));
142
142
  }
143
143
 
144
144
  ::selection {
@@ -1,7 +1,12 @@
1
- /**
2
- * Semanticus CSS Semantics
3
- * Variables + Normalize + Semantic HTML components
4
- * Perfect for semantic-first development without utility classes
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 */
@@ -0,0 +1,95 @@
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
+ --spacing: 1rem;
26
+ --responsive-multiplier: 1; /* Multiplier applied to spacing for responsive adjustments at wider breakpoints */
27
+ --typography-spacing-vertical: 1rem; /* Vertical margin below typographic elements (p, lists, etc.) */
28
+ --block-spacing-vertical: var(--spacing); /* Vertical padding inside block-level components (cards, modals, etc.) */
29
+ --block-spacing-horizontal: var(--spacing); /* Horizontal padding inside block-level components */
30
+ --grid-column-gap: var(--spacing); /* Column gap in CSS Grid layouts */
31
+ --grid-row-gap: var(--spacing); /* Row gap in CSS Grid layouts */
32
+ --form-element-spacing-vertical: 0.75rem; /* Vertical padding inside form inputs, selects, and textareas */
33
+ --form-element-spacing-horizontal: 1rem; /* Horizontal padding inside form inputs, selects, and textareas */
34
+
35
+ /* Shadows – used by [role="group"] and [role="search"] button/input combos */
36
+ --group-shadow: 0 0 0 rgba(0, 0, 0, 0); /* Default (no shadow) */
37
+ --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 */
38
+ --group-shadow-focus-with-input: 0 0 0 0.0625rem var(--form-border-color); /* Focus ring when an input inside the group is focused */
39
+
40
+ /* Modal – backdrop overlay settings */
41
+ --modal-overlay-backdrop-filter: blur(0.375rem); /* Applies a blur behind the modal overlay */
42
+
43
+ /* Navigation – spacing and breadcrumb configuration */
44
+ --nav-link-spacing-vertical: 0.5rem; /* Vertical padding inside nav links */
45
+ --nav-link-spacing-horizontal: 0.5rem; /* Horizontal padding inside nav links */
46
+ --nav-breadcrumb-divider: ">"; /* Character displayed between breadcrumb items */
47
+
48
+ --sidebar-width: 25%; /* Sidebar width */
49
+ }
50
+
51
+ /* Responsive Font Sizes – progressively increase root font-size at wider viewports */
52
+ @media (--breakpoint-sm) {
53
+ :root,
54
+ :host {
55
+ --font-size: 106.25%;
56
+ --sidebar-width: max(25%, 150px);
57
+ --responsive-multiplier: 1.25;
58
+ }
59
+ }
60
+
61
+ @media (--breakpoint-md) {
62
+ :root,
63
+ :host {
64
+ --font-size: 112.5%;
65
+ --sidebar-width: max(22%, 180px);
66
+ --responsive-multiplier: 1.5;
67
+ }
68
+ }
69
+
70
+ @media (--breakpoint-lg) {
71
+ :root,
72
+ :host {
73
+ --font-size: 118.75%;
74
+ --sidebar-width: max(20%, 200px);
75
+ --responsive-multiplier: 1.75;
76
+ }
77
+ }
78
+
79
+ @media (--breakpoint-xl) {
80
+ :root,
81
+ :host {
82
+ --font-size: 125%;
83
+ --sidebar-width: max(18%, 220px);
84
+ --responsive-multiplier: 2;
85
+ }
86
+ }
87
+
88
+ @media (--breakpoint-xxl) {
89
+ :root,
90
+ :host {
91
+ --font-size: 131.25%;
92
+ --sidebar-width: clamp(240px, 16%, 300px);
93
+ --responsive-multiplier: 2.25;
94
+ }
95
+ }
@@ -4,9 +4,6 @@
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
 
7
- /* Shared variables */
8
- @import '../variables/_shared.css';
9
-
10
7
  /* ==========================================================================
11
8
  Theme-independent variables
12
9
  ========================================================================== */
@@ -18,232 +15,40 @@
18
15
 
19
16
  /* Borders & radii */
20
17
  --border-style: solid;
21
- --border-radius-sm: var(--border-radius);
22
- --border-radius-lg: calc(var(--border-radius) * 2);
23
- --border-radius-xl: calc(var(--border-radius) * 4);
24
- --border-radius-xxl: calc(var(--border-radius) * 8);
18
+ --border-radius-default: var(--border-radius);
19
+ --border-radius-sm: var(--border-radius-default);
20
+ --border-radius-lg: calc(var(--border-radius-default) * 2);
21
+ --border-radius-xl: calc(var(--border-radius-default) * 4);
22
+ --border-radius-xxl: calc(var(--border-radius-default) * 8);
25
23
  --border-radius-pill: 50rem;
26
24
 
27
25
  /* Border-width scale */
28
- --border-width-1: var(--border-width);
29
- --border-width-2: calc(var(--border-width) * 2);
30
- --border-width-3: calc(var(--border-width) * 3);
31
- --border-width-4: calc(var(--border-width) * 4);
32
- --border-width-5: calc(var(--border-width) * 5);
26
+ --border-width-default: var(--border-width);
27
+ --border-width-0: 0;
28
+ --border-width-1: var(--border-width-default);
29
+ --border-width-2: calc(var(--border-width-default) * 2);
30
+ --border-width-3: calc(var(--border-width-default) * 3);
31
+ --border-width-4: calc(var(--border-width-default) * 4);
32
+ --border-width-5: calc(var(--border-width-default) * 5);
33
33
 
34
34
  /* Spacing scale */
35
+ --spacer-default: var(--spacing);
35
36
  --spacer-0: 0;
36
- --spacer-1: calc(var(--spacing) * 0.25);
37
- --spacer-2: calc(var(--spacing) * 0.5);
38
- --spacer-3: var(--spacing);
39
- --spacer-4: calc(var(--spacing) * 1.5);
40
- --spacer-5: calc(var(--spacing) * 3);
41
-
42
- /* Font-size scale */
43
- --fs-1: calc(1.375rem + 1.5vw);
44
- --fs-2: calc(1.325rem + 0.9vw);
45
- --fs-3: calc(1.3rem + 0.6vw);
46
- --fs-4: calc(1.275rem + 0.3vw);
47
- --fs-5: 1.25rem;
48
- --fs-6: 1rem;
37
+ --spacer-1: calc(var(--spacer-default) * 0.25);
38
+ --spacer-2: calc(var(--spacer-default) * 0.5);
39
+ --spacer-3: var(--spacer-default);
40
+ --spacer-4: calc(var(--spacer-default) * 1.5);
41
+ --spacer-5: calc(var(--spacer-default) * 3);
49
42
 
50
43
  /* Focus ring */
51
44
  --focus-ring-width: var(--outline-width);
52
45
  --focus-ring-opacity: 0.25;
53
46
 
54
47
  /* Auto-switching mappings (resolved at computed-value time via Semanticus CSS) */
55
- --emphasis-color: var(--color-contrast);
48
+ --emphasis-color: rgb(var(--color-contrast-rgb));
56
49
  --secondary-color: var(--color-text-muted);
57
50
  --border-color: var(--color-border-muted);
58
- --box-shadow: var(--shadow-md);
59
- --box-shadow-sm: var(--shadow-sm);
60
- --box-shadow-lg: var(--shadow-lg);
61
51
  --focus-ring-color: var(--color-primary-focus);
62
52
 
63
- /* Status inverse colors (readable text on status-colored backgrounds) */
64
- --color-success-inverse: #fff;
65
- --color-info-inverse: #fff;
66
- --color-warning-inverse: #000;
67
- --color-danger-inverse: #fff;
68
-
69
53
  --max-z-index: 1050;
70
54
  }
71
-
72
- /* ==========================================================================
73
- Light theme (default)
74
- ========================================================================== */
75
-
76
- [data-theme="light"],
77
- :root:not([data-theme="dark"]),
78
- :host(:not([data-theme="dark"])) {
79
- /* RGB channels */
80
- --primary-rgb: 1, 114, 173;
81
- --secondary-rgb: 93, 107, 137;
82
- --contrast-rgb: 24, 28, 37;
83
-
84
- /* Text emphasis (darker/hover shades in light) */
85
- --primary-text-emphasis: #015887;
86
- --secondary-text-emphasis: #48536b;
87
- --success-text-emphasis: #20603b;
88
- --info-text-emphasis: #025d5d;
89
- --warning-text-emphasis: #694d00;
90
- --danger-text-emphasis: #9b2318;
91
- --contrast-text-emphasis: #495057;
92
-
93
- /* Subtle backgrounds (low opacity) */
94
- --primary-bg-subtle: rgba(1, 114, 173, 0.1);
95
- --secondary-bg-subtle: rgba(93, 107, 137, 0.1);
96
- --success-bg-subtle: rgba(43, 122, 76, 0.1);
97
- --info-bg-subtle: rgba(4, 120, 120, 0.1);
98
- --warning-bg-subtle: rgba(255, 191, 0, 0.1);
99
- --danger-bg-subtle: rgba(197, 47, 33, 0.1);
100
- --contrast-bg-subtle: #ced4da;
101
-
102
- /* Subtle borders (medium opacity) */
103
- --primary-border-subtle: rgba(1, 114, 173, 0.35);
104
- --secondary-border-subtle: rgba(93, 107, 137, 0.35);
105
- --success-border-subtle: rgba(43, 122, 76, 0.35);
106
- --info-border-subtle: rgba(4, 120, 120, 0.35);
107
- --warning-border-subtle: rgba(255, 191, 0, 0.35);
108
- --danger-border-subtle: rgba(197, 47, 33, 0.35);
109
- --contrast-border-subtle: #adb5bd;
110
-
111
- /* Body & emphasis RGB */
112
- --body-color-rgb: 55, 60, 68;
113
- --body-bg-rgb: 255, 255, 255;
114
- --emphasis-color-rgb: 24, 28, 37;
115
-
116
- /* Secondary surfaces */
117
- --secondary-bg-rgb: 233, 236, 239;
118
-
119
- /* Link RGB */
120
- --link-color-rgb: 1, 114, 173;
121
- --link-hover-color-rgb: 1, 88, 135;
122
-
123
- /* Link hover RGB (per-variant) */
124
- --secondary-hover-color-rgb: 72, 83, 107;
125
- --success-hover-color-rgb: 32, 96, 59;
126
- --info-hover-color-rgb: 2, 93, 93;
127
- --warning-hover-color-rgb: 232, 174, 1;
128
- --danger-hover-color-rgb: 155, 35, 24;
129
- --contrast-hover-color-rgb: 249, 250, 251;
130
- }
131
-
132
- /* ==========================================================================
133
- Dark theme (system preference)
134
- ========================================================================== */
135
-
136
- @media (prefers-color-scheme: dark) {
137
- :root:not([data-theme]),
138
- :host(:not([data-theme])) {
139
- /* RGB channels */
140
- --primary-rgb: 1, 170, 255;
141
- --secondary-rgb: 150, 158, 175;
142
- --contrast-rgb: 248, 249, 250;
143
-
144
- /* Text emphasis (lighter/hover shades in dark) */
145
- --primary-text-emphasis: #79c0ff;
146
- --secondary-text-emphasis: #b3b9c5;
147
- --success-text-emphasis: #93deb5;
148
- --info-text-emphasis: #25dddd;
149
- --warning-text-emphasis: #e8ae01;
150
- --danger-text-emphasis: #f5b7a8;
151
- --contrast-text-emphasis: #f8f9fa;
152
-
153
- /* Subtle backgrounds */
154
- --primary-bg-subtle: rgba(1, 170, 255, 0.15);
155
- --secondary-bg-subtle: rgba(150, 158, 175, 0.15);
156
- --success-bg-subtle: rgba(110, 213, 157, 0.15);
157
- --info-bg-subtle: rgba(10, 194, 194, 0.15);
158
- --warning-bg-subtle: rgba(255, 191, 0, 0.15);
159
- --danger-bg-subtle: rgba(243, 143, 121, 0.15);
160
- --contrast-bg-subtle: #2a3140;
161
-
162
- /* Subtle borders */
163
- --primary-border-subtle: rgba(1, 170, 255, 0.35);
164
- --secondary-border-subtle: rgba(150, 158, 175, 0.35);
165
- --success-border-subtle: rgba(110, 213, 157, 0.35);
166
- --info-border-subtle: rgba(10, 194, 194, 0.35);
167
- --warning-border-subtle: rgba(255, 191, 0, 0.35);
168
- --danger-border-subtle: rgba(243, 143, 121, 0.35);
169
- --contrast-border-subtle: #2a3140;
170
-
171
- /* Body & emphasis RGB */
172
- --body-color-rgb: 194, 199, 208;
173
- --body-bg-rgb: 19, 23, 31;
174
- --emphasis-color-rgb: 223, 227, 235;
175
-
176
- /* Secondary surfaces */
177
- --secondary-bg-rgb: 42, 49, 64;
178
-
179
- /* Link RGB */
180
- --link-color-rgb: 1, 170, 255;
181
- --link-hover-color-rgb: 121, 192, 255;
182
-
183
- /* Link hover RGB (per-variant) */
184
- --secondary-hover-color-rgb: 179, 185, 197;
185
- --success-hover-color-rgb: 147, 222, 181;
186
- --info-hover-color-rgb: 37, 221, 221;
187
- --warning-hover-color-rgb: 232, 174, 1;
188
- --danger-hover-color-rgb: 245, 183, 168;
189
- --contrast-hover-color-rgb: 255, 255, 255;
190
- }
191
- }
192
-
193
- /* ==========================================================================
194
- Dark theme (explicit)
195
- ========================================================================== */
196
-
197
- [data-theme="dark"] {
198
- /* RGB channels */
199
- --primary-rgb: 1, 170, 255;
200
- --secondary-rgb: 150, 158, 175;
201
- --contrast-rgb: 248, 249, 250;
202
-
203
- /* Text emphasis (lighter/hover shades in dark) */
204
- --primary-text-emphasis: #79c0ff;
205
- --secondary-text-emphasis: #b3b9c5;
206
- --success-text-emphasis: #93deb5;
207
- --info-text-emphasis: #25dddd;
208
- --warning-text-emphasis: #e8ae01;
209
- --danger-text-emphasis: #f5b7a8;
210
- --contrast-text-emphasis: #f8f9fa;
211
-
212
- /* Subtle backgrounds */
213
- --primary-bg-subtle: rgba(1, 170, 255, 0.15);
214
- --secondary-bg-subtle: rgba(150, 158, 175, 0.15);
215
- --success-bg-subtle: rgba(110, 213, 157, 0.15);
216
- --info-bg-subtle: rgba(10, 194, 194, 0.15);
217
- --warning-bg-subtle: rgba(255, 191, 0, 0.15);
218
- --danger-bg-subtle: rgba(243, 143, 121, 0.15);
219
- --contrast-bg-subtle: #2a3140;
220
-
221
- /* Subtle borders */
222
- --primary-border-subtle: rgba(1, 170, 255, 0.35);
223
- --secondary-border-subtle: rgba(150, 158, 175, 0.35);
224
- --success-border-subtle: rgba(110, 213, 157, 0.35);
225
- --info-border-subtle: rgba(10, 194, 194, 0.35);
226
- --warning-border-subtle: rgba(255, 191, 0, 0.35);
227
- --danger-border-subtle: rgba(243, 143, 121, 0.35);
228
- --contrast-border-subtle: #2a3140;
229
-
230
- /* Body & emphasis RGB */
231
- --body-color-rgb: 194, 199, 208;
232
- --body-bg-rgb: 19, 23, 31;
233
- --emphasis-color-rgb: 223, 227, 235;
234
-
235
- /* Secondary surfaces */
236
- --secondary-bg-rgb: 42, 49, 64;
237
-
238
- /* Link RGB */
239
- --link-color-rgb: 1, 170, 255;
240
- --link-hover-color-rgb: 121, 192, 255;
241
-
242
- /* Link hover RGB (per-variant) */
243
- --secondary-hover-color-rgb: 179, 185, 197;
244
- --success-hover-color-rgb: 147, 222, 181;
245
- --info-hover-color-rgb: 37, 221, 221;
246
- --warning-hover-color-rgb: 232, 174, 1;
247
- --danger-hover-color-rgb: 245, 183, 168;
248
- --contrast-hover-color-rgb: 255, 255, 255;
249
- }
@@ -6,6 +6,10 @@
6
6
  border-radius: 0 !important;
7
7
  }
8
8
 
9
+ .rounded-d {
10
+ border-radius: var(--border-radius-default) !important;
11
+ }
12
+
9
13
  .rounded-1 {
10
14
  border-radius: var(--border-radius-sm) !important;
11
15
  }
@@ -44,6 +48,11 @@
44
48
  border-top-right-radius: 0 !important;
45
49
  }
46
50
 
51
+ .rounded-top-d {
52
+ border-top-left-radius: var(--border-radius-default) !important;
53
+ border-top-right-radius: var(--border-radius-default) !important;
54
+ }
55
+
47
56
  .rounded-top-1 {
48
57
  border-top-left-radius: var(--border-radius-sm) !important;
49
58
  border-top-right-radius: var(--border-radius-sm) !important;
@@ -89,6 +98,11 @@
89
98
  border-bottom-right-radius: 0 !important;
90
99
  }
91
100
 
101
+ .rounded-end-d {
102
+ border-top-right-radius: var(--border-radius-default) !important;
103
+ border-bottom-right-radius: var(--border-radius-default) !important;
104
+ }
105
+
92
106
  .rounded-end-1 {
93
107
  border-top-right-radius: var(--border-radius-sm) !important;
94
108
  border-bottom-right-radius: var(--border-radius-sm) !important;
@@ -134,6 +148,11 @@
134
148
  border-bottom-left-radius: 0 !important;
135
149
  }
136
150
 
151
+ .rounded-bottom-d {
152
+ border-bottom-right-radius: var(--border-radius-default) !important;
153
+ border-bottom-left-radius: var(--border-radius-default) !important;
154
+ }
155
+
137
156
  .rounded-bottom-1 {
138
157
  border-bottom-right-radius: var(--border-radius-sm) !important;
139
158
  border-bottom-left-radius: var(--border-radius-sm) !important;
@@ -179,6 +198,11 @@
179
198
  border-top-left-radius: 0 !important;
180
199
  }
181
200
 
201
+ .rounded-start-d {
202
+ border-bottom-left-radius: var(--border-radius-default) !important;
203
+ border-top-left-radius: var(--border-radius-default) !important;
204
+ }
205
+
182
206
  .rounded-start-1 {
183
207
  border-bottom-left-radius: var(--border-radius-sm) !important;
184
208
  border-top-left-radius: var(--border-radius-sm) !important;