@anyblades/blades 3.1.0-alpha.2 → 3.1.0-beta.2

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 (87) hide show
  1. package/README.md +46 -15
  2. package/css/blades.css +158 -597
  3. package/css/blades.min.css +38 -12
  4. package/css/blades.ninja.css +4057 -0
  5. package/css/blades.ninja.min.css +190 -0
  6. package/css/float-label.css +207 -0
  7. package/css/float-label.min.css +55 -0
  8. package/css/{pico.layered.css → layered/blades.layered.css} +441 -16
  9. package/css/{pico.layered.min.css → layered/blades.layered.min.css} +74 -8
  10. package/css/layered/compact.css +54 -0
  11. package/css/layered/components/accordion.css +85 -0
  12. package/css/layered/components/card.css +48 -0
  13. package/css/layered/components/dropdown.css +191 -0
  14. package/css/layered/components/group.css +208 -0
  15. package/css/layered/components/loading.css +43 -0
  16. package/css/layered/components/modal.css +158 -0
  17. package/css/layered/components/nav.css +117 -0
  18. package/css/layered/components/progress.css +76 -0
  19. package/css/layered/components/tooltip.css +176 -0
  20. package/css/layered/components.css +1082 -0
  21. package/css/layered/content/button.css +208 -0
  22. package/css/layered/content/code.css +64 -0
  23. package/css/layered/content/embedded-content.css +41 -0
  24. package/css/layered/content/figure.css +15 -0
  25. package/css/layered/content/link.css +84 -0
  26. package/css/layered/content/misc.css +22 -0
  27. package/css/layered/content/table.css +33 -0
  28. package/css/layered/content/typography.css +159 -0
  29. package/css/layered/content.css +611 -0
  30. package/css/layered/forms/basics.css +338 -0
  31. package/css/layered/forms/checkbox-radio-switch.css +164 -0
  32. package/css/layered/forms/input-color.css +20 -0
  33. package/css/layered/forms/input-datetime.css +57 -0
  34. package/css/layered/forms/input-file.css +29 -0
  35. package/css/layered/forms/input-range.css +121 -0
  36. package/css/layered/forms/input-search.css +66 -0
  37. package/css/layered/forms.css +778 -0
  38. package/css/layered/layout/container.css +42 -0
  39. package/css/layered/layout/document.css +48 -0
  40. package/css/layered/layout/grid.css +22 -0
  41. package/css/layered/layout/landmarks.css +12 -0
  42. package/css/layered/layout/overflow-auto.css +9 -0
  43. package/css/layered/layout/section.css +9 -0
  44. package/css/layered/layout.css +119 -0
  45. package/css/layered/utilities.css +35 -0
  46. package/css/layered/variables.css +365 -0
  47. package/css/pico.conditional.css +16 -15
  48. package/css/pico.conditional.min.css +7 -7
  49. package/css/pico.css +16 -15
  50. package/css/pico.min.css +7 -7
  51. package/package.json +15 -11
  52. package/src/_compact.css +51 -0
  53. package/src/blades/_index.css +23 -0
  54. package/src/blades/float-label/_index.css +2 -0
  55. package/src/{standalone/forms/_float-label.theme.css → blades/float-label/_theme.css} +5 -1
  56. package/src/blades.css +3 -2
  57. package/src/blades.ninja.css +3 -0
  58. package/src/float-label.css +1 -0
  59. package/src/ninja/_index.css +19 -0
  60. package/src/{standalone → ninja}/_theme.css +0 -2
  61. package/src/{ninja.css → ninja/_utilities.css} +55 -6
  62. package/src/pico/_variables.css +6 -5
  63. package/src/pico/content/_button.css +1 -1
  64. package/src/pico/layout/_document.css +9 -0
  65. package/src/pico/layout/_index.css +0 -1
  66. package/src/pico/layout/_landmarks.css +1 -9
  67. package/src/pico.css +1 -0
  68. package/css/blades.standalone.css +0 -860
  69. package/css/blades.standalone.min.css +0 -37
  70. package/css/ninja.css +0 -83
  71. package/css/ninja.min.css +0 -5
  72. package/src/blades.standalone.css +0 -2
  73. package/src/standalone/_core.css +0 -32
  74. package/src/standalone/_utilities.css +0 -55
  75. package/src/standalone/forms/_float-label.css +0 -2
  76. /package/src/{standalone/content → blades}/_code.css +0 -0
  77. /package/src/{standalone/layout → blades}/_columns.css +0 -0
  78. /package/src/{standalone/components/_icon-helper.css → blades/_icon.css} +0 -0
  79. /package/src/{standalone/components → blades}/_timeline.css +0 -0
  80. /package/src/{standalone → blades}/_variables.css +0 -0
  81. /package/src/{standalone/forms/_float-label.core.css → blades/float-label/_core.css} +0 -0
  82. /package/src/{standalone/layout/_breakout.css → ninja/_container-breakout.css} +0 -0
  83. /package/src/{standalone/content/_typography.css → ninja/_heading-anchor.css} +0 -0
  84. /package/src/{standalone/content/_list.css → ninja/_list-helpers.css} +0 -0
  85. /package/src/{standalone/layout/_scroller.css → ninja/_page-anchors.css} +0 -0
  86. /package/src/{standalone/content/_table.css → ninja/_table-helpers.css} +0 -0
  87. /package/src/{standalone/content → ninja}/_table-responsive.css +0 -0
@@ -0,0 +1,42 @@
1
+ @layer blades {
2
+ /**
3
+ * Container
4
+ */
5
+ .container,
6
+ .container-fluid {
7
+ width: 100%;
8
+ margin-right: auto;
9
+ margin-left: auto;
10
+ padding-right: var(--pico-spacing);
11
+ padding-left: var(--pico-spacing);
12
+ }
13
+
14
+ @media (min-width: 576px) {
15
+ .container {
16
+ max-width: 510px;
17
+ padding-right: 0;
18
+ padding-left: 0;
19
+ }
20
+ }
21
+ @media (min-width: 768px) {
22
+ .container {
23
+ max-width: 700px;
24
+ }
25
+ }
26
+ @media (min-width: 1024px) {
27
+ .container {
28
+ max-width: 950px;
29
+ }
30
+ }
31
+ @media (min-width: 1280px) {
32
+ .container {
33
+ max-width: 1200px;
34
+ }
35
+ }
36
+ @media (min-width: 1536px) {
37
+ .container {
38
+ max-width: 1450px;
39
+ }
40
+ }
41
+
42
+ }
@@ -0,0 +1,48 @@
1
+ @layer blades {
2
+ /**
3
+ * Document
4
+ * Content-box & Responsive typography
5
+ */
6
+ *,
7
+ *::before,
8
+ *::after {
9
+ box-sizing: border-box;
10
+ background-repeat: no-repeat;
11
+ }
12
+
13
+ ::before,
14
+ ::after {
15
+ text-decoration: inherit;
16
+ vertical-align: inherit;
17
+ }
18
+
19
+ :where(:scope),
20
+ :where(:host) {
21
+ -webkit-tap-highlight-color: transparent;
22
+ -webkit-text-size-adjust: 100%;
23
+ -moz-text-size-adjust: 100%;
24
+ text-size-adjust: 100%;
25
+ background-color: var(--pico-background-color);
26
+ color: var(--pico-color);
27
+ font-weight: var(--pico-font-weight);
28
+ font-size: var(--pico-font-size);
29
+ line-height: var(--pico-line-height);
30
+ font-family: var(--pico-font-family);
31
+ text-underline-offset: var(--pico-text-underline-offset);
32
+ text-rendering: optimizeLegibility;
33
+ overflow-wrap: break-word;
34
+ -moz-tab-size: 4;
35
+ -o-tab-size: 4;
36
+ tab-size: 4;
37
+ }
38
+
39
+ body {
40
+ width: 100%;
41
+ margin: 0;
42
+ }
43
+
44
+ main {
45
+ display: block;
46
+ }
47
+
48
+ }
@@ -0,0 +1,22 @@
1
+ @layer blades {
2
+ /**
3
+ * Grid
4
+ * Minimal grid system with auto-layout columns
5
+ */
6
+ .grid {
7
+ grid-column-gap: var(--pico-grid-column-gap);
8
+ grid-row-gap: var(--pico-grid-row-gap);
9
+ display: grid;
10
+ grid-template-columns: 1fr;
11
+ }
12
+ @media (min-width: 768px) {
13
+ .grid {
14
+ grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
15
+ }
16
+ }
17
+ .grid > *:not(.does-not-exist) {
18
+ min-width: 0;
19
+ margin-bottom: 0; /* https://github.com/picocss/pico/issues/738 */
20
+ }
21
+
22
+ }
@@ -0,0 +1,12 @@
1
+ @layer blades {
2
+ /**
3
+ * Landmarks
4
+ * Included in pico.css and blades.ninja.css; not in blades.css
5
+ */
6
+ body > header,
7
+ body > main,
8
+ body > footer {
9
+ padding-block: var(--pico-block-spacing-vertical);
10
+ }
11
+
12
+ }
@@ -0,0 +1,9 @@
1
+ @layer blades {
2
+ /**
3
+ * Overflow auto
4
+ */
5
+ .overflow-auto {
6
+ overflow: auto;
7
+ }
8
+
9
+ }
@@ -0,0 +1,9 @@
1
+ @layer blades {
2
+ /**
3
+ * Section
4
+ */
5
+ section {
6
+ margin-bottom: var(--pico-block-spacing-vertical);
7
+ }
8
+
9
+ }
@@ -0,0 +1,119 @@
1
+ @layer blades {
2
+ /**
3
+ * Document
4
+ * Content-box & Responsive typography
5
+ */
6
+ *,
7
+ *::before,
8
+ *::after {
9
+ box-sizing: border-box;
10
+ background-repeat: no-repeat;
11
+ }
12
+
13
+ ::before,
14
+ ::after {
15
+ text-decoration: inherit;
16
+ vertical-align: inherit;
17
+ }
18
+
19
+ :where(:scope),
20
+ :where(:host) {
21
+ -webkit-tap-highlight-color: transparent;
22
+ -webkit-text-size-adjust: 100%;
23
+ -moz-text-size-adjust: 100%;
24
+ text-size-adjust: 100%;
25
+ background-color: var(--pico-background-color);
26
+ color: var(--pico-color);
27
+ font-weight: var(--pico-font-weight);
28
+ font-size: var(--pico-font-size);
29
+ line-height: var(--pico-line-height);
30
+ font-family: var(--pico-font-family);
31
+ text-underline-offset: var(--pico-text-underline-offset);
32
+ text-rendering: optimizeLegibility;
33
+ overflow-wrap: break-word;
34
+ -moz-tab-size: 4;
35
+ -o-tab-size: 4;
36
+ tab-size: 4;
37
+ }
38
+
39
+ body {
40
+ width: 100%;
41
+ margin: 0;
42
+ }
43
+
44
+ main {
45
+ display: block;
46
+ }
47
+
48
+ /**
49
+ * Section
50
+ */
51
+ section {
52
+ margin-bottom: var(--pico-block-spacing-vertical);
53
+ }
54
+ /**
55
+ * Container
56
+ */
57
+ .container,
58
+ .container-fluid {
59
+ width: 100%;
60
+ margin-right: auto;
61
+ margin-left: auto;
62
+ padding-right: var(--pico-spacing);
63
+ padding-left: var(--pico-spacing);
64
+ }
65
+
66
+ @media (min-width: 576px) {
67
+ .container {
68
+ max-width: 510px;
69
+ padding-right: 0;
70
+ padding-left: 0;
71
+ }
72
+ }
73
+ @media (min-width: 768px) {
74
+ .container {
75
+ max-width: 700px;
76
+ }
77
+ }
78
+ @media (min-width: 1024px) {
79
+ .container {
80
+ max-width: 950px;
81
+ }
82
+ }
83
+ @media (min-width: 1280px) {
84
+ .container {
85
+ max-width: 1200px;
86
+ }
87
+ }
88
+ @media (min-width: 1536px) {
89
+ .container {
90
+ max-width: 1450px;
91
+ }
92
+ }
93
+ /**
94
+ * Grid
95
+ * Minimal grid system with auto-layout columns
96
+ */
97
+ .grid {
98
+ grid-column-gap: var(--pico-grid-column-gap);
99
+ grid-row-gap: var(--pico-grid-row-gap);
100
+ display: grid;
101
+ grid-template-columns: 1fr;
102
+ }
103
+ @media (min-width: 768px) {
104
+ .grid {
105
+ grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
106
+ }
107
+ }
108
+ .grid > *:not(.does-not-exist) {
109
+ min-width: 0;
110
+ margin-bottom: 0; /* https://github.com/picocss/pico/issues/738 */
111
+ }
112
+ /**
113
+ * Overflow auto
114
+ */
115
+ .overflow-auto {
116
+ overflow: auto;
117
+ }
118
+
119
+ }
@@ -0,0 +1,35 @@
1
+ @layer blades {
2
+ /**
3
+ * Accessibility & User interaction
4
+ */
5
+ [aria-controls] {
6
+ cursor: pointer;
7
+ }
8
+
9
+ [aria-disabled="true"],
10
+ [disabled] {
11
+ cursor: not-allowed;
12
+ }
13
+
14
+ [dir="rtl"] {
15
+ direction: rtl;
16
+ }
17
+
18
+ /**
19
+ * Reduce Motion Features
20
+ */
21
+ @media (prefers-reduced-motion: reduce) {
22
+ *:not([aria-busy="true"]):not(.unreduce-motion),
23
+ :not([aria-busy="true"])::before,
24
+ :not([aria-busy="true"])::after {
25
+ background-attachment: initial !important;
26
+ animation-duration: 1ms !important;
27
+ animation-delay: -1ms !important;
28
+ animation-iteration-count: 1 !important;
29
+ scroll-behavior: auto !important;
30
+ transition-delay: 0s !important;
31
+ transition-duration: 0s !important;
32
+ }
33
+ }
34
+
35
+ }
@@ -0,0 +1,365 @@
1
+ @layer blades {
2
+ /**
3
+ * Variables
4
+ */
5
+ :scope,
6
+ :host {
7
+ --pico-font-family-emoji:
8
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
9
+ --pico-font-family-sans-serif:
10
+ system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue",
11
+ sans-serif, var(--pico-font-family-emoji);
12
+ --pico-font-family-monospace:
13
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace,
14
+ var(--pico-font-family-emoji);
15
+ --pico-font-family: var(--pico-font-family-sans-serif);
16
+ --pico-line-height: 1.5;
17
+ --pico-font-weight: 400;
18
+ --pico-font-size: 100%;
19
+ --pico-text-underline-offset: 0.1rem;
20
+ --pico-border-radius: 0.25rem;
21
+ --pico-border-width: 0.0625rem;
22
+ --pico-outline-width: 0.125rem;
23
+ --pico-transition: 0.2s ease-in-out;
24
+ --pico-spacing: 1rem;
25
+ --pico-typography-spacing-vertical: 1rem;
26
+ --pico-block-spacing-vertical: var(--pico-spacing);
27
+ --pico-block-spacing-horizontal: var(--pico-spacing);
28
+ --pico-grid-column-gap: var(--pico-spacing);
29
+ --pico-grid-row-gap: var(--pico-spacing);
30
+ --pico-form-element-spacing-vertical: 0.75rem;
31
+ --pico-form-element-spacing-horizontal: 1rem;
32
+ --pico-nav-element-spacing-vertical: 1rem;
33
+ --pico-nav-link-spacing-vertical: 0.5rem;
34
+ --pico-nav-link-spacing-horizontal: 0.5rem;
35
+ --pico-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
36
+ }
37
+ @media (min-width: 576px) {
38
+ :scope,
39
+ :host {
40
+ --pico-font-size: 106.25%;
41
+ }
42
+ }
43
+ @media (min-width: 768px) {
44
+ :scope,
45
+ :host {
46
+ --pico-font-size: 112.5%;
47
+ }
48
+ }
49
+ @media (min-width: 1024px) {
50
+ :scope,
51
+ :host {
52
+ --pico-font-size: 118.75%;
53
+ }
54
+ }
55
+ @media (min-width: 1280px) {
56
+ :scope,
57
+ :host {
58
+ --pico-font-size: 125%;
59
+ }
60
+ }
61
+ @media (min-width: 1536px) {
62
+ :scope,
63
+ :host {
64
+ --pico-font-size: 131.25%;
65
+ }
66
+ }
67
+
68
+ a {
69
+ --pico-text-decoration: underline;
70
+ }
71
+ a.secondary,
72
+ a.contrast {
73
+ --pico-text-decoration: underline;
74
+ }
75
+
76
+ small {
77
+ --pico-font-size: 0.875em;
78
+ }
79
+
80
+ h1,
81
+ h2,
82
+ h3,
83
+ h4,
84
+ h5,
85
+ h6 {
86
+ --pico-font-weight: 700;
87
+ }
88
+
89
+ h1 {
90
+ --pico-font-size: 2rem;
91
+ --pico-line-height: 1.125;
92
+ --pico-typography-spacing-top: 3rem;
93
+ }
94
+
95
+ h2 {
96
+ --pico-font-size: 1.75rem;
97
+ --pico-line-height: 1.15;
98
+ --pico-typography-spacing-top: 2.625rem;
99
+ }
100
+
101
+ h3 {
102
+ --pico-font-size: 1.5rem;
103
+ --pico-line-height: 1.175;
104
+ --pico-typography-spacing-top: 2.25rem;
105
+ }
106
+
107
+ h4 {
108
+ --pico-font-size: 1.25rem;
109
+ --pico-line-height: 1.2;
110
+ --pico-typography-spacing-top: 1.874rem;
111
+ }
112
+
113
+ h5 {
114
+ --pico-font-size: 1.125rem;
115
+ --pico-line-height: 1.225;
116
+ --pico-typography-spacing-top: 1.6875rem;
117
+ }
118
+
119
+ h6 {
120
+ --pico-font-size: 1rem;
121
+ --pico-line-height: 1.25;
122
+ --pico-typography-spacing-top: 1.5rem;
123
+ }
124
+
125
+ thead th,
126
+ thead td,
127
+ tfoot th,
128
+ tfoot td {
129
+ --pico-font-weight: 600;
130
+ --pico-border-width: 0.1875rem;
131
+ }
132
+
133
+ pre,
134
+ code,
135
+ kbd,
136
+ samp {
137
+ --pico-font-family: var(--pico-font-family-monospace);
138
+ }
139
+
140
+ kbd {
141
+ --pico-font-weight: bolder;
142
+ }
143
+
144
+ input:not(
145
+ [type="submit"],
146
+ [type="button"],
147
+ [type="reset"],
148
+ [type="checkbox"],
149
+ [type="radio"],
150
+ [type="file"]
151
+ ),
152
+ :where(select, textarea) {
153
+ --pico-outline-width: 0.0625rem;
154
+ }
155
+
156
+ [type="search"] {
157
+ --pico-border-radius: 5rem;
158
+ }
159
+
160
+ [type="checkbox"],
161
+ [type="radio"] {
162
+ --pico-border-width: 0.125rem;
163
+ }
164
+
165
+ [type="checkbox"][role="switch"] {
166
+ --pico-border-width: 0.1875rem;
167
+ }
168
+
169
+ details.dropdown summary:not([role="button"]) {
170
+ --pico-outline-width: 0.0625rem;
171
+ }
172
+
173
+ nav details.dropdown summary:focus-visible {
174
+ --pico-outline-width: 0.125rem;
175
+ }
176
+
177
+ [role="search"] {
178
+ --pico-border-radius: 5rem;
179
+ }
180
+
181
+ [role="search"] button,
182
+ [role="search"] [type="submit"],
183
+ [role="search"] [type="button"],
184
+ [role="search"] [role="button"],
185
+ [role="group"] button,
186
+ [role="group"] [type="submit"],
187
+ [role="group"] [type="button"],
188
+ [role="group"] [role="button"] {
189
+ --pico-form-element-spacing-horizontal: 2rem;
190
+ }
191
+
192
+ details summary[role="button"]:not(.outline)::after {
193
+ filter: brightness(0) invert(1);
194
+ }
195
+
196
+ [aria-busy="true"]:not(input, select, textarea):is(
197
+ button,
198
+ [type="submit"],
199
+ [type="button"],
200
+ [type="reset"],
201
+ [role="button"]
202
+ ):not(.outline)::before {
203
+ filter: brightness(0) invert(1);
204
+ }
205
+
206
+ /**
207
+ * Color schemes
208
+ * One palette for both schemes: light-dark() picks the value from the used color-scheme,
209
+ * so the dark scheme only has to switch color-scheme (same selectors as before).
210
+ */
211
+ :scope,
212
+ :host,
213
+ [data-theme="light"],
214
+ [data-theme="dark"] {
215
+ color-scheme: light;
216
+ --pico-background-color: light-dark(#fff, rgb(19, 22.5, 30.5));
217
+ --pico-color: light-dark(#373c44, #c2c7d0);
218
+ --pico-text-selection-color: light-dark(rgba(2, 154, 232, 0.25), rgba(1, 170, 255, 0.1875));
219
+ --pico-muted-color: light-dark(#646b79, #7b8495);
220
+ --pico-muted-border-color: light-dark(rgb(231, 234, 239.5), #202632);
221
+ --pico-primary: light-dark(#0172ad, #01aaff);
222
+ --pico-primary-background: #0172ad;
223
+ --pico-primary-border: var(--pico-primary-background);
224
+ --pico-primary-underline: light-dark(rgba(1, 114, 173, 0.5), rgba(1, 170, 255, 0.5));
225
+ --pico-primary-hover: light-dark(#015887, #79c0ff);
226
+ --pico-primary-hover-background: light-dark(#02659a, #017fc0);
227
+ --pico-primary-hover-border: var(--pico-primary-hover-background);
228
+ --pico-primary-hover-underline: var(--pico-primary-hover);
229
+ /* Focus rings are opaque: at 25–50% alpha they composite below 3:1 (SC 1.4.11), see #167 */
230
+ --pico-primary-focus: light-dark(rgb(2, 138, 212), rgb(1, 170, 255));
231
+ --pico-primary-inverse: #fff;
232
+ --pico-secondary: light-dark(#5d6b89, #969eaf);
233
+ --pico-secondary-background: #525f7a;
234
+ --pico-secondary-border: var(--pico-secondary-background);
235
+ --pico-secondary-underline: light-dark(rgba(93, 107, 137, 0.5), rgba(150, 158, 175, 0.5));
236
+ --pico-secondary-hover: light-dark(#48536b, #b3b9c5);
237
+ --pico-secondary-hover-background: light-dark(#48536b, #5d6b89);
238
+ --pico-secondary-hover-border: var(--pico-secondary-hover-background);
239
+ --pico-secondary-hover-underline: var(--pico-secondary-hover);
240
+ --pico-secondary-focus: light-dark(rgb(93, 107, 137), rgb(144, 158, 190));
241
+ --pico-secondary-inverse: #fff;
242
+ --pico-contrast: light-dark(#181c25, #dfe3eb);
243
+ --pico-contrast-background: light-dark(#181c25, #eff1f4);
244
+ --pico-contrast-border: var(--pico-contrast-background);
245
+ --pico-contrast-underline: light-dark(rgba(24, 28, 37, 0.5), rgba(223, 227, 235, 0.5));
246
+ --pico-contrast-hover: light-dark(#000, #fff);
247
+ --pico-contrast-hover-background: light-dark(#000, #fff);
248
+ --pico-contrast-hover-border: var(--pico-contrast-hover-background);
249
+ --pico-contrast-hover-underline: light-dark(
250
+ var(--pico-secondary-hover),
251
+ var(--pico-contrast-hover)
252
+ );
253
+ --pico-contrast-focus: light-dark(rgb(93, 107, 137), rgb(207, 213, 226));
254
+ --pico-contrast-inverse: light-dark(#fff, #000);
255
+ --pico-box-shadow: 0 0.5rem 2.5rem light-dark(rgba(129, 145, 181, 0.2), rgba(7, 8.5, 12, 0.2));
256
+ --pico-h1-color: light-dark(#2d3138, #f0f1f3);
257
+ --pico-h2-color: light-dark(#373c44, #e0e3e7);
258
+ --pico-h3-color: light-dark(#424751, #c2c7d0);
259
+ --pico-h4-color: light-dark(#4d535e, #b3b9c5);
260
+ --pico-h5-color: light-dark(#5c6370, #a4acba);
261
+ --pico-h6-color: light-dark(#646b79, #8891a4);
262
+ --pico-mark-background-color: light-dark(rgb(252.5, 230.5, 191.5), #014063);
263
+ --pico-mark-color: light-dark(#0f1114, #fff);
264
+ --pico-ins-color: light-dark(rgb(28.5, 105.5, 84), #62af9a);
265
+ --pico-del-color: light-dark(rgb(136, 56.5, 53), rgb(205.5, 126, 123));
266
+ --pico-blockquote-border-color: var(--pico-muted-border-color);
267
+ --pico-blockquote-footer-color: var(--pico-muted-color);
268
+ --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
269
+ --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
270
+ --pico-table-border-color: var(--pico-muted-border-color);
271
+ --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
272
+ --pico-code-background-color: light-dark(rgb(243, 244.5, 246.75), rgb(26, 30.5, 40.25));
273
+ --pico-code-color: light-dark(#646b79, #8891a4);
274
+ --pico-code-kbd-background-color: var(--pico-color);
275
+ --pico-code-kbd-color: var(--pico-background-color);
276
+ --pico-form-element-background-color: light-dark(rgb(251, 251.5, 252.25), rgb(28, 33, 43.5));
277
+ --pico-form-element-selected-background-color: light-dark(#dfe3eb, #2a3140);
278
+ --pico-form-element-border-color: light-dark(#cfd5e2, #2a3140);
279
+ --pico-form-element-color: light-dark(#23262c, #e0e3e7);
280
+ --pico-form-element-placeholder-color: light-dark(var(--pico-muted-color), #8891a4);
281
+ --pico-form-element-active-background-color: light-dark(#fff, rgb(26, 30.5, 40.25));
282
+ --pico-form-element-active-border-color: var(--pico-primary-border);
283
+ --pico-form-element-focus-color: var(--pico-primary-border);
284
+ --pico-form-element-disabled-opacity: 0.5;
285
+ --pico-form-element-invalid-border-color: light-dark(
286
+ rgb(183.5, 105.5, 106.5),
287
+ rgb(200.25, 79.25, 72.25)
288
+ );
289
+ --pico-form-element-invalid-active-border-color: light-dark(
290
+ rgb(200.25, 79.25, 72.25),
291
+ rgb(214, 92, 86)
292
+ );
293
+ --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
294
+ --pico-form-element-valid-border-color: light-dark(rgb(76, 154.5, 137.5), #2a7b6f);
295
+ --pico-form-element-valid-active-border-color: light-dark(
296
+ rgb(39, 152.75, 118.75),
297
+ rgb(22, 137, 105.5)
298
+ );
299
+ --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
300
+ /* One stroke color for both schemes, at least 3:1 on light and dark form backgrounds */
301
+ --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 154.5, 137.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
302
+ --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200.25, 79.25, 72.25)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
303
+ }
304
+
305
+ input:is(
306
+ [type="submit"],
307
+ [type="button"],
308
+ [type="reset"],
309
+ [type="checkbox"],
310
+ [type="radio"],
311
+ [type="file"]
312
+ ) {
313
+ --pico-form-element-focus-color: var(--pico-primary-focus);
314
+ }
315
+
316
+ /* Dark scheme: switch color-scheme, plus filters that light-dark() can't pick */
317
+ @media only screen and (prefers-color-scheme: dark) {
318
+ :scope:not([data-theme]),
319
+ :host(:not([data-theme])) {
320
+ color-scheme: dark;
321
+ }
322
+ :scope:not([data-theme]) details summary[role="button"].contrast:not(.outline)::after,
323
+ :host(:not([data-theme])) details summary[role="button"].contrast:not(.outline)::after,
324
+ :scope:not([data-theme])
325
+ [aria-busy="true"]:not(input, select, textarea).contrast:is(
326
+ button,
327
+ [type="submit"],
328
+ [type="button"],
329
+ [type="reset"],
330
+ [role="button"]
331
+ ):not(.outline)::before,
332
+ :host(:not([data-theme]))
333
+ [aria-busy="true"]:not(input, select, textarea).contrast:is(
334
+ button,
335
+ [type="submit"],
336
+ [type="button"],
337
+ [type="reset"],
338
+ [role="button"]
339
+ ):not(.outline)::before {
340
+ filter: brightness(0);
341
+ }
342
+ }
343
+ [data-theme="dark"] {
344
+ color-scheme: dark;
345
+ }
346
+ [data-theme="dark"] details summary[role="button"].contrast:not(.outline)::after,
347
+ [data-theme="dark"]
348
+ [aria-busy="true"]:not(input, select, textarea).contrast:is(
349
+ button,
350
+ [type="submit"],
351
+ [type="button"],
352
+ [type="reset"],
353
+ [role="button"]
354
+ ):not(.outline)::before {
355
+ filter: brightness(0);
356
+ }
357
+
358
+ progress,
359
+ [type="checkbox"],
360
+ [type="radio"],
361
+ [type="range"] {
362
+ accent-color: var(--pico-primary);
363
+ }
364
+
365
+ }