@anyblades/blades 3.1.0-alpha.1 → 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.
- package/README.md +78 -3
- package/css/blades.css +371 -978
- package/css/blades.min.css +74 -37
- package/css/blades.ninja.css +4057 -0
- package/css/blades.ninja.min.css +190 -0
- package/css/float-label.css +207 -0
- package/css/float-label.min.css +55 -0
- package/css/{pico.layered.css → layered/blades.layered.css} +654 -397
- package/css/layered/blades.layered.min.css +184 -0
- package/css/layered/compact.css +54 -0
- package/css/layered/components/accordion.css +85 -0
- package/css/layered/components/card.css +48 -0
- package/css/layered/components/dropdown.css +191 -0
- package/css/layered/components/group.css +208 -0
- package/css/layered/components/loading.css +43 -0
- package/css/layered/components/modal.css +158 -0
- package/css/layered/components/nav.css +117 -0
- package/css/layered/components/progress.css +76 -0
- package/css/layered/components/tooltip.css +176 -0
- package/css/layered/components.css +1082 -0
- package/css/layered/content/button.css +208 -0
- package/css/layered/content/code.css +64 -0
- package/css/layered/content/embedded-content.css +41 -0
- package/css/layered/content/figure.css +15 -0
- package/css/layered/content/link.css +84 -0
- package/css/layered/content/misc.css +22 -0
- package/css/layered/content/table.css +33 -0
- package/css/layered/content/typography.css +159 -0
- package/css/layered/content.css +611 -0
- package/css/layered/forms/basics.css +338 -0
- package/css/layered/forms/checkbox-radio-switch.css +164 -0
- package/css/layered/forms/input-color.css +20 -0
- package/css/layered/forms/input-datetime.css +57 -0
- package/css/layered/forms/input-file.css +29 -0
- package/css/layered/forms/input-range.css +121 -0
- package/css/layered/forms/input-search.css +66 -0
- package/css/layered/forms.css +778 -0
- package/css/layered/layout/container.css +42 -0
- package/css/layered/layout/document.css +48 -0
- package/css/layered/layout/grid.css +22 -0
- package/css/layered/layout/landmarks.css +12 -0
- package/css/layered/layout/overflow-auto.css +9 -0
- package/css/layered/layout/section.css +9 -0
- package/css/layered/layout.css +119 -0
- package/css/layered/utilities.css +35 -0
- package/css/layered/variables.css +365 -0
- package/css/pico.conditional.css +229 -396
- package/css/pico.conditional.min.css +42 -31
- package/css/pico.css +229 -396
- package/css/pico.min.css +42 -31
- package/package.json +24 -11
- package/src/_compact.css +51 -0
- package/src/blades/_index.css +23 -0
- package/src/blades/float-label/_index.css +2 -0
- package/src/{standalone/forms/_float-label.theme.css → blades/float-label/_theme.css} +5 -1
- package/src/blades.css +3 -2
- package/src/blades.ninja.css +3 -0
- package/src/float-label.css +1 -0
- package/src/ninja/_index.css +19 -0
- package/src/{standalone → ninja}/_theme.css +0 -2
- package/src/{ninja.css → ninja/_utilities.css} +55 -6
- package/src/pico/_variables.css +77 -386
- package/src/pico/components/_accordion.css +8 -0
- package/src/pico/components/_card.css +14 -0
- package/src/pico/components/_dropdown.css +9 -0
- package/src/pico/components/_group.css +38 -0
- package/src/pico/components/_loading.css +9 -0
- package/src/pico/components/_modal.css +13 -0
- package/src/pico/components/_nav.css +6 -0
- package/src/pico/components/_progress.css +6 -0
- package/src/pico/components/_tooltip.css +6 -0
- package/src/pico/content/_button.css +1 -1
- package/src/pico/forms/_checkbox-radio-switch.css +13 -0
- package/src/pico/forms/_input-datetime.css +6 -0
- package/src/pico/forms/_input-range.css +9 -0
- package/src/pico/forms/_input-search.css +5 -0
- package/src/pico/layout/_document.css +9 -0
- package/src/pico/layout/_index.css +0 -1
- package/src/pico/layout/_landmarks.css +1 -9
- package/src/pico.css +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -25
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.prettierignore +0 -3
- package/CODE_OF_CONDUCT.md +0 -92
- package/context7.json +0 -4
- package/css/blades.standalone.css +0 -860
- package/css/blades.standalone.min.css +0 -37
- package/css/ninja.css +0 -83
- package/css/ninja.min.css +0 -5
- package/css/pico.layered.min.css +0 -107
- package/css/postcss.config.js +0 -23
- package/index.html +0 -63
- package/src/blades.standalone.css +0 -2
- package/src/standalone/_core.css +0 -32
- package/src/standalone/_utilities.css +0 -55
- package/src/standalone/forms/_float-label.css +0 -2
- /package/src/{standalone/content → blades}/_code.css +0 -0
- /package/src/{standalone/layout → blades}/_columns.css +0 -0
- /package/src/{standalone/components/_icon-helper.css → blades/_icon.css} +0 -0
- /package/src/{standalone/components → blades}/_timeline.css +0 -0
- /package/src/{standalone → blades}/_variables.css +0 -0
- /package/src/{standalone/forms/_float-label.core.css → blades/float-label/_core.css} +0 -0
- /package/src/{standalone/layout/_breakout.css → ninja/_container-breakout.css} +0 -0
- /package/src/{standalone/content/_typography.css → ninja/_heading-anchor.css} +0 -0
- /package/src/{standalone/content/_list.css → ninja/_list-helpers.css} +0 -0
- /package/src/{standalone/layout/_scroller.css → ninja/_page-anchors.css} +0 -0
- /package/src/{standalone/content/_table.css → ninja/_table-helpers.css} +0 -0
- /package/src/{standalone/content → ninja}/_table-responsive.css +0 -0
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
@layer
|
|
1
|
+
@layer blades {
|
|
2
2
|
/*!
|
|
3
|
+
* Blades CSS v3 with Pico CSS 🥷✨
|
|
4
|
+
* Copyright 2026 (https://blades.ninja/)
|
|
5
|
+
* Licensed under MIT
|
|
6
|
+
*//*!
|
|
3
7
|
* Blades CSS' Pico fork v2.5 🥷✨
|
|
4
8
|
* Copyright 2019-2025 (https://picocss.com)
|
|
5
9
|
* Copyright 2026 (https://blades.ninja/css/pico/)
|
|
@@ -34,24 +38,10 @@
|
|
|
34
38
|
--pico-grid-row-gap: var(--pico-spacing);
|
|
35
39
|
--pico-form-element-spacing-vertical: 0.75rem;
|
|
36
40
|
--pico-form-element-spacing-horizontal: 1rem;
|
|
37
|
-
--pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
38
|
-
--pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
|
|
39
|
-
var(--pico-primary-focus);
|
|
40
|
-
--pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
|
|
41
|
-
--pico-modal-overlay-backdrop-filter: blur(0.375rem);
|
|
42
41
|
--pico-nav-element-spacing-vertical: 1rem;
|
|
43
|
-
--pico-nav-element-spacing-horizontal: 0.5rem;
|
|
44
42
|
--pico-nav-link-spacing-vertical: 0.5rem;
|
|
45
43
|
--pico-nav-link-spacing-horizontal: 0.5rem;
|
|
46
|
-
--pico-nav-breadcrumb-divider: ">";
|
|
47
|
-
--pico-icon-checkbox: 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(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
|
48
|
-
--pico-icon-minus: 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(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
|
|
49
44
|
--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");
|
|
50
|
-
--pico-icon-date: 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%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
|
|
51
|
-
--pico-icon-time: 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%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
|
|
52
|
-
--pico-icon-search: 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='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
|
|
53
|
-
--pico-icon-close: 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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
|
|
54
|
-
--pico-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
|
|
55
45
|
}
|
|
56
46
|
@media (min-width: 576px) {
|
|
57
47
|
:scope,
|
|
@@ -197,36 +187,6 @@ nav details.dropdown summary:focus-visible {
|
|
|
197
187
|
--pico-border-radius: 5rem;
|
|
198
188
|
}
|
|
199
189
|
|
|
200
|
-
[role="search"]:has(
|
|
201
|
-
button.secondary:focus,
|
|
202
|
-
[type="submit"].secondary:focus,
|
|
203
|
-
[type="button"].secondary:focus,
|
|
204
|
-
[role="button"].secondary:focus
|
|
205
|
-
),
|
|
206
|
-
[role="group"]:has(
|
|
207
|
-
button.secondary:focus,
|
|
208
|
-
[type="submit"].secondary:focus,
|
|
209
|
-
[type="button"].secondary:focus,
|
|
210
|
-
[role="button"].secondary:focus
|
|
211
|
-
) {
|
|
212
|
-
--pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
|
|
213
|
-
var(--pico-secondary-focus);
|
|
214
|
-
}
|
|
215
|
-
[role="search"]:has(
|
|
216
|
-
button.contrast:focus,
|
|
217
|
-
[type="submit"].contrast:focus,
|
|
218
|
-
[type="button"].contrast:focus,
|
|
219
|
-
[role="button"].contrast:focus
|
|
220
|
-
),
|
|
221
|
-
[role="group"]:has(
|
|
222
|
-
button.contrast:focus,
|
|
223
|
-
[type="submit"].contrast:focus,
|
|
224
|
-
[type="button"].contrast:focus,
|
|
225
|
-
[role="button"].contrast:focus
|
|
226
|
-
) {
|
|
227
|
-
--pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
|
|
228
|
-
var(--pico-contrast-focus);
|
|
229
|
-
}
|
|
230
190
|
[role="search"] button,
|
|
231
191
|
[role="search"] [type="submit"],
|
|
232
192
|
[role="search"] [type="button"],
|
|
@@ -254,273 +214,122 @@ details summary[role="button"]:not(.outline)::after {
|
|
|
254
214
|
|
|
255
215
|
/**
|
|
256
216
|
* Color schemes
|
|
217
|
+
* One palette for both schemes: light-dark() picks the value from the used color-scheme,
|
|
218
|
+
* so the dark scheme only has to switch color-scheme (same selectors as before).
|
|
257
219
|
*/
|
|
220
|
+
:scope,
|
|
221
|
+
:host,
|
|
258
222
|
[data-theme="light"],
|
|
259
|
-
|
|
260
|
-
:host(:not([data-theme="dark"])) {
|
|
223
|
+
[data-theme="dark"] {
|
|
261
224
|
color-scheme: light;
|
|
262
|
-
--pico-background-color: #fff;
|
|
263
|
-
--pico-color: #373c44;
|
|
264
|
-
--pico-text-selection-color: rgba(2, 154, 232, 0.25);
|
|
265
|
-
--pico-muted-color: #646b79;
|
|
266
|
-
--pico-muted-border-color: rgb(231, 234, 239.5);
|
|
267
|
-
--pico-primary: #0172ad;
|
|
225
|
+
--pico-background-color: light-dark(#fff, rgb(19, 22.5, 30.5));
|
|
226
|
+
--pico-color: light-dark(#373c44, #c2c7d0);
|
|
227
|
+
--pico-text-selection-color: light-dark(rgba(2, 154, 232, 0.25), rgba(1, 170, 255, 0.1875));
|
|
228
|
+
--pico-muted-color: light-dark(#646b79, #7b8495);
|
|
229
|
+
--pico-muted-border-color: light-dark(rgb(231, 234, 239.5), #202632);
|
|
230
|
+
--pico-primary: light-dark(#0172ad, #01aaff);
|
|
268
231
|
--pico-primary-background: #0172ad;
|
|
269
232
|
--pico-primary-border: var(--pico-primary-background);
|
|
270
|
-
--pico-primary-underline: rgba(1, 114, 173, 0.5);
|
|
271
|
-
--pico-primary-hover: #015887;
|
|
272
|
-
--pico-primary-hover-background: #02659a;
|
|
233
|
+
--pico-primary-underline: light-dark(rgba(1, 114, 173, 0.5), rgba(1, 170, 255, 0.5));
|
|
234
|
+
--pico-primary-hover: light-dark(#015887, #79c0ff);
|
|
235
|
+
--pico-primary-hover-background: light-dark(#02659a, #017fc0);
|
|
273
236
|
--pico-primary-hover-border: var(--pico-primary-hover-background);
|
|
274
237
|
--pico-primary-hover-underline: var(--pico-primary-hover);
|
|
275
|
-
|
|
238
|
+
/* Focus rings are opaque: at 25–50% alpha they composite below 3:1 (SC 1.4.11), see #167 */
|
|
239
|
+
--pico-primary-focus: light-dark(rgb(2, 138, 212), rgb(1, 170, 255));
|
|
276
240
|
--pico-primary-inverse: #fff;
|
|
277
|
-
--pico-secondary: #5d6b89;
|
|
241
|
+
--pico-secondary: light-dark(#5d6b89, #969eaf);
|
|
278
242
|
--pico-secondary-background: #525f7a;
|
|
279
243
|
--pico-secondary-border: var(--pico-secondary-background);
|
|
280
|
-
--pico-secondary-underline: rgba(93, 107, 137, 0.5);
|
|
281
|
-
--pico-secondary-hover: #48536b;
|
|
282
|
-
--pico-secondary-hover-background: #48536b;
|
|
244
|
+
--pico-secondary-underline: light-dark(rgba(93, 107, 137, 0.5), rgba(150, 158, 175, 0.5));
|
|
245
|
+
--pico-secondary-hover: light-dark(#48536b, #b3b9c5);
|
|
246
|
+
--pico-secondary-hover-background: light-dark(#48536b, #5d6b89);
|
|
283
247
|
--pico-secondary-hover-border: var(--pico-secondary-hover-background);
|
|
284
248
|
--pico-secondary-hover-underline: var(--pico-secondary-hover);
|
|
285
|
-
--pico-secondary-focus:
|
|
249
|
+
--pico-secondary-focus: light-dark(rgb(93, 107, 137), rgb(144, 158, 190));
|
|
286
250
|
--pico-secondary-inverse: #fff;
|
|
287
|
-
--pico-contrast: #181c25;
|
|
288
|
-
--pico-contrast-background: #181c25;
|
|
251
|
+
--pico-contrast: light-dark(#181c25, #dfe3eb);
|
|
252
|
+
--pico-contrast-background: light-dark(#181c25, #eff1f4);
|
|
289
253
|
--pico-contrast-border: var(--pico-contrast-background);
|
|
290
|
-
--pico-contrast-underline: rgba(24, 28, 37, 0.5);
|
|
291
|
-
--pico-contrast-hover: #000;
|
|
292
|
-
--pico-contrast-hover-background: #000;
|
|
254
|
+
--pico-contrast-underline: light-dark(rgba(24, 28, 37, 0.5), rgba(223, 227, 235, 0.5));
|
|
255
|
+
--pico-contrast-hover: light-dark(#000, #fff);
|
|
256
|
+
--pico-contrast-hover-background: light-dark(#000, #fff);
|
|
293
257
|
--pico-contrast-hover-border: var(--pico-contrast-hover-background);
|
|
294
|
-
--pico-contrast-hover-underline:
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
--pico-
|
|
299
|
-
--pico-
|
|
300
|
-
--pico-
|
|
301
|
-
--pico-
|
|
302
|
-
--pico-
|
|
303
|
-
--pico-
|
|
304
|
-
--pico-
|
|
305
|
-
--pico-
|
|
306
|
-
--pico-
|
|
307
|
-
--pico-
|
|
258
|
+
--pico-contrast-hover-underline: light-dark(
|
|
259
|
+
var(--pico-secondary-hover),
|
|
260
|
+
var(--pico-contrast-hover)
|
|
261
|
+
);
|
|
262
|
+
--pico-contrast-focus: light-dark(rgb(93, 107, 137), rgb(207, 213, 226));
|
|
263
|
+
--pico-contrast-inverse: light-dark(#fff, #000);
|
|
264
|
+
--pico-box-shadow: 0 0.5rem 2.5rem light-dark(rgba(129, 145, 181, 0.2), rgba(7, 8.5, 12, 0.2));
|
|
265
|
+
--pico-h1-color: light-dark(#2d3138, #f0f1f3);
|
|
266
|
+
--pico-h2-color: light-dark(#373c44, #e0e3e7);
|
|
267
|
+
--pico-h3-color: light-dark(#424751, #c2c7d0);
|
|
268
|
+
--pico-h4-color: light-dark(#4d535e, #b3b9c5);
|
|
269
|
+
--pico-h5-color: light-dark(#5c6370, #a4acba);
|
|
270
|
+
--pico-h6-color: light-dark(#646b79, #8891a4);
|
|
271
|
+
--pico-mark-background-color: light-dark(rgb(252.5, 230.5, 191.5), #014063);
|
|
272
|
+
--pico-mark-color: light-dark(#0f1114, #fff);
|
|
273
|
+
--pico-ins-color: light-dark(rgb(28.5, 105.5, 84), #62af9a);
|
|
274
|
+
--pico-del-color: light-dark(rgb(136, 56.5, 53), rgb(205.5, 126, 123));
|
|
308
275
|
--pico-blockquote-border-color: var(--pico-muted-border-color);
|
|
309
276
|
--pico-blockquote-footer-color: var(--pico-muted-color);
|
|
310
277
|
--pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
311
278
|
--pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
312
279
|
--pico-table-border-color: var(--pico-muted-border-color);
|
|
313
280
|
--pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
|
|
314
|
-
--pico-code-background-color: rgb(243, 244.5, 246.75);
|
|
315
|
-
--pico-code-color: #646b79;
|
|
281
|
+
--pico-code-background-color: light-dark(rgb(243, 244.5, 246.75), rgb(26, 30.5, 40.25));
|
|
282
|
+
--pico-code-color: light-dark(#646b79, #8891a4);
|
|
316
283
|
--pico-code-kbd-background-color: var(--pico-color);
|
|
317
284
|
--pico-code-kbd-color: var(--pico-background-color);
|
|
318
|
-
--pico-form-element-background-color: rgb(251, 251.5, 252.25);
|
|
319
|
-
--pico-form-element-selected-background-color: #dfe3eb;
|
|
320
|
-
--pico-form-element-border-color: #cfd5e2;
|
|
321
|
-
--pico-form-element-color: #23262c;
|
|
322
|
-
--pico-form-element-placeholder-color: var(--pico-muted-color);
|
|
323
|
-
--pico-form-element-active-background-color: #fff;
|
|
285
|
+
--pico-form-element-background-color: light-dark(rgb(251, 251.5, 252.25), rgb(28, 33, 43.5));
|
|
286
|
+
--pico-form-element-selected-background-color: light-dark(#dfe3eb, #2a3140);
|
|
287
|
+
--pico-form-element-border-color: light-dark(#cfd5e2, #2a3140);
|
|
288
|
+
--pico-form-element-color: light-dark(#23262c, #e0e3e7);
|
|
289
|
+
--pico-form-element-placeholder-color: light-dark(var(--pico-muted-color), #8891a4);
|
|
290
|
+
--pico-form-element-active-background-color: light-dark(#fff, rgb(26, 30.5, 40.25));
|
|
324
291
|
--pico-form-element-active-border-color: var(--pico-primary-border);
|
|
325
292
|
--pico-form-element-focus-color: var(--pico-primary-border);
|
|
326
293
|
--pico-form-element-disabled-opacity: 0.5;
|
|
327
|
-
--pico-form-element-invalid-border-color:
|
|
328
|
-
|
|
294
|
+
--pico-form-element-invalid-border-color: light-dark(
|
|
295
|
+
rgb(183.5, 105.5, 106.5),
|
|
296
|
+
rgb(200.25, 79.25, 72.25)
|
|
297
|
+
);
|
|
298
|
+
--pico-form-element-invalid-active-border-color: light-dark(
|
|
299
|
+
rgb(200.25, 79.25, 72.25),
|
|
300
|
+
rgb(214, 92, 86)
|
|
301
|
+
);
|
|
329
302
|
--pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
|
|
330
|
-
--pico-form-element-valid-border-color: rgb(76, 154.5, 137.5);
|
|
331
|
-
--pico-form-element-valid-active-border-color:
|
|
303
|
+
--pico-form-element-valid-border-color: light-dark(rgb(76, 154.5, 137.5), #2a7b6f);
|
|
304
|
+
--pico-form-element-valid-active-border-color: light-dark(
|
|
305
|
+
rgb(39, 152.75, 118.75),
|
|
306
|
+
rgb(22, 137, 105.5)
|
|
307
|
+
);
|
|
332
308
|
--pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
|
|
333
|
-
|
|
334
|
-
--pico-switch-checked-background-color: var(--pico-primary-background);
|
|
335
|
-
--pico-switch-color: #fff;
|
|
336
|
-
--pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
337
|
-
--pico-range-border-color: #dfe3eb;
|
|
338
|
-
--pico-range-active-border-color: #bfc7d9;
|
|
339
|
-
--pico-range-thumb-border-color: var(--pico-background-color);
|
|
340
|
-
--pico-range-thumb-color: var(--pico-secondary-background);
|
|
341
|
-
--pico-range-thumb-active-color: var(--pico-primary-background);
|
|
342
|
-
--pico-accordion-border-color: var(--pico-muted-border-color);
|
|
343
|
-
--pico-accordion-active-summary-color: var(--pico-primary-hover);
|
|
344
|
-
--pico-accordion-close-summary-color: var(--pico-color);
|
|
345
|
-
--pico-accordion-open-summary-color: var(--pico-muted-color);
|
|
346
|
-
--pico-card-background-color: var(--pico-background-color);
|
|
347
|
-
--pico-card-border-color: var(--pico-muted-border-color);
|
|
348
|
-
--pico-card-box-shadow: var(--pico-box-shadow);
|
|
349
|
-
--pico-card-sectioning-background-color: rgb(251, 251.5, 252.25);
|
|
350
|
-
--pico-dropdown-background-color: #fff;
|
|
351
|
-
--pico-dropdown-border-color: #eff1f4;
|
|
352
|
-
--pico-dropdown-box-shadow: var(--pico-box-shadow);
|
|
353
|
-
--pico-dropdown-color: var(--pico-color);
|
|
354
|
-
--pico-dropdown-hover-background-color: #eff1f4;
|
|
355
|
-
--pico-loading-spinner-opacity: 0.5;
|
|
356
|
-
--pico-modal-overlay-background-color: rgba(232, 234, 237, 0.75);
|
|
357
|
-
--pico-progress-background-color: #dfe3eb;
|
|
358
|
-
--pico-progress-color: var(--pico-primary-background);
|
|
359
|
-
--pico-tooltip-background-color: var(--pico-contrast-background);
|
|
360
|
-
--pico-tooltip-color: var(--pico-contrast-inverse);
|
|
309
|
+
/* One stroke color for both schemes, at least 3:1 on light and dark form backgrounds */
|
|
361
310
|
--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");
|
|
362
311
|
--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");
|
|
363
312
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
:scope:not([data-theme="dark"])
|
|
374
|
-
input:is(
|
|
375
|
-
[type="submit"],
|
|
376
|
-
[type="button"],
|
|
377
|
-
[type="reset"],
|
|
378
|
-
[type="checkbox"],
|
|
379
|
-
[type="radio"],
|
|
380
|
-
[type="file"]
|
|
381
|
-
),
|
|
382
|
-
:host(:not([data-theme="dark"]))
|
|
383
|
-
input:is(
|
|
384
|
-
[type="submit"],
|
|
385
|
-
[type="button"],
|
|
386
|
-
[type="reset"],
|
|
387
|
-
[type="checkbox"],
|
|
388
|
-
[type="radio"],
|
|
389
|
-
[type="file"]
|
|
390
|
-
) {
|
|
313
|
+
|
|
314
|
+
input:is(
|
|
315
|
+
[type="submit"],
|
|
316
|
+
[type="button"],
|
|
317
|
+
[type="reset"],
|
|
318
|
+
[type="checkbox"],
|
|
319
|
+
[type="radio"],
|
|
320
|
+
[type="file"]
|
|
321
|
+
) {
|
|
391
322
|
--pico-form-element-focus-color: var(--pico-primary-focus);
|
|
392
323
|
}
|
|
393
324
|
|
|
325
|
+
/* Dark scheme: switch color-scheme, plus filters that light-dark() can't pick */
|
|
394
326
|
@media only screen and (prefers-color-scheme: dark) {
|
|
395
327
|
:scope:not([data-theme]),
|
|
396
328
|
:host(:not([data-theme])) {
|
|
397
329
|
color-scheme: dark;
|
|
398
|
-
--pico-background-color: rgb(19, 22.5, 30.5);
|
|
399
|
-
--pico-color: #c2c7d0;
|
|
400
|
-
--pico-text-selection-color: rgba(1, 170, 255, 0.1875);
|
|
401
|
-
--pico-muted-color: #7b8495;
|
|
402
|
-
--pico-muted-border-color: #202632;
|
|
403
|
-
--pico-primary: #01aaff;
|
|
404
|
-
--pico-primary-background: #0172ad;
|
|
405
|
-
--pico-primary-border: var(--pico-primary-background);
|
|
406
|
-
--pico-primary-underline: rgba(1, 170, 255, 0.5);
|
|
407
|
-
--pico-primary-hover: #79c0ff;
|
|
408
|
-
--pico-primary-hover-background: #017fc0;
|
|
409
|
-
--pico-primary-hover-border: var(--pico-primary-hover-background);
|
|
410
|
-
--pico-primary-hover-underline: var(--pico-primary-hover);
|
|
411
|
-
--pico-primary-focus: rgba(1, 170, 255, 0.375);
|
|
412
|
-
--pico-primary-inverse: #fff;
|
|
413
|
-
--pico-secondary: #969eaf;
|
|
414
|
-
--pico-secondary-background: #525f7a;
|
|
415
|
-
--pico-secondary-border: var(--pico-secondary-background);
|
|
416
|
-
--pico-secondary-underline: rgba(150, 158, 175, 0.5);
|
|
417
|
-
--pico-secondary-hover: #b3b9c5;
|
|
418
|
-
--pico-secondary-hover-background: #5d6b89;
|
|
419
|
-
--pico-secondary-hover-border: var(--pico-secondary-hover-background);
|
|
420
|
-
--pico-secondary-hover-underline: var(--pico-secondary-hover);
|
|
421
|
-
--pico-secondary-focus: rgba(144, 158, 190, 0.25);
|
|
422
|
-
--pico-secondary-inverse: #fff;
|
|
423
|
-
--pico-contrast: #dfe3eb;
|
|
424
|
-
--pico-contrast-background: #eff1f4;
|
|
425
|
-
--pico-contrast-border: var(--pico-contrast-background);
|
|
426
|
-
--pico-contrast-underline: rgba(223, 227, 235, 0.5);
|
|
427
|
-
--pico-contrast-hover: #fff;
|
|
428
|
-
--pico-contrast-hover-background: #fff;
|
|
429
|
-
--pico-contrast-hover-border: var(--pico-contrast-hover-background);
|
|
430
|
-
--pico-contrast-hover-underline: var(--pico-contrast-hover);
|
|
431
|
-
--pico-contrast-focus: rgba(207, 213, 226, 0.25);
|
|
432
|
-
--pico-contrast-inverse: #000;
|
|
433
|
-
--pico-box-shadow: 0 0.5rem 2.5rem rgba(7, 8.5, 12, 0.2);
|
|
434
|
-
--pico-h1-color: #f0f1f3;
|
|
435
|
-
--pico-h2-color: #e0e3e7;
|
|
436
|
-
--pico-h3-color: #c2c7d0;
|
|
437
|
-
--pico-h4-color: #b3b9c5;
|
|
438
|
-
--pico-h5-color: #a4acba;
|
|
439
|
-
--pico-h6-color: #8891a4;
|
|
440
|
-
--pico-mark-background-color: #014063;
|
|
441
|
-
--pico-mark-color: #fff;
|
|
442
|
-
--pico-ins-color: #62af9a;
|
|
443
|
-
--pico-del-color: rgb(205.5, 126, 123);
|
|
444
|
-
--pico-blockquote-border-color: var(--pico-muted-border-color);
|
|
445
|
-
--pico-blockquote-footer-color: var(--pico-muted-color);
|
|
446
|
-
--pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
447
|
-
--pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
448
|
-
--pico-table-border-color: var(--pico-muted-border-color);
|
|
449
|
-
--pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
|
|
450
|
-
--pico-code-background-color: rgb(26, 30.5, 40.25);
|
|
451
|
-
--pico-code-color: #8891a4;
|
|
452
|
-
--pico-code-kbd-background-color: var(--pico-color);
|
|
453
|
-
--pico-code-kbd-color: var(--pico-background-color);
|
|
454
|
-
--pico-form-element-background-color: rgb(28, 33, 43.5);
|
|
455
|
-
--pico-form-element-selected-background-color: #2a3140;
|
|
456
|
-
--pico-form-element-border-color: #2a3140;
|
|
457
|
-
--pico-form-element-color: #e0e3e7;
|
|
458
|
-
--pico-form-element-placeholder-color: #8891a4;
|
|
459
|
-
--pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
|
|
460
|
-
--pico-form-element-active-border-color: var(--pico-primary-border);
|
|
461
|
-
--pico-form-element-focus-color: var(--pico-primary-border);
|
|
462
|
-
--pico-form-element-disabled-opacity: 0.5;
|
|
463
|
-
--pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
|
|
464
|
-
--pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
|
|
465
|
-
--pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
|
|
466
|
-
--pico-form-element-valid-border-color: #2a7b6f;
|
|
467
|
-
--pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
|
|
468
|
-
--pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
|
|
469
|
-
--pico-switch-background-color: #333c4e;
|
|
470
|
-
--pico-switch-checked-background-color: var(--pico-primary-background);
|
|
471
|
-
--pico-switch-color: #fff;
|
|
472
|
-
--pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
473
|
-
--pico-range-border-color: #202632;
|
|
474
|
-
--pico-range-active-border-color: #2a3140;
|
|
475
|
-
--pico-range-thumb-border-color: var(--pico-background-color);
|
|
476
|
-
--pico-range-thumb-color: var(--pico-secondary-background);
|
|
477
|
-
--pico-range-thumb-active-color: var(--pico-primary-background);
|
|
478
|
-
--pico-accordion-border-color: var(--pico-muted-border-color);
|
|
479
|
-
--pico-accordion-active-summary-color: var(--pico-primary-hover);
|
|
480
|
-
--pico-accordion-close-summary-color: var(--pico-color);
|
|
481
|
-
--pico-accordion-open-summary-color: var(--pico-muted-color);
|
|
482
|
-
--pico-card-background-color: #181c25;
|
|
483
|
-
--pico-card-border-color: var(--pico-card-background-color);
|
|
484
|
-
--pico-card-box-shadow: var(--pico-box-shadow);
|
|
485
|
-
--pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
|
|
486
|
-
--pico-dropdown-background-color: #181c25;
|
|
487
|
-
--pico-dropdown-border-color: #202632;
|
|
488
|
-
--pico-dropdown-box-shadow: var(--pico-box-shadow);
|
|
489
|
-
--pico-dropdown-color: var(--pico-color);
|
|
490
|
-
--pico-dropdown-hover-background-color: #202632;
|
|
491
|
-
--pico-loading-spinner-opacity: 0.5;
|
|
492
|
-
--pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75);
|
|
493
|
-
--pico-progress-background-color: #202632;
|
|
494
|
-
--pico-progress-color: var(--pico-primary-background);
|
|
495
|
-
--pico-tooltip-background-color: var(--pico-contrast-background);
|
|
496
|
-
--pico-tooltip-color: var(--pico-contrast-inverse);
|
|
497
|
-
--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(42, 123, 111)' 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");
|
|
498
|
-
--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(149.5, 74, 80)' 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");
|
|
499
|
-
}
|
|
500
|
-
:scope:not([data-theme])
|
|
501
|
-
input:is(
|
|
502
|
-
[type="submit"],
|
|
503
|
-
[type="button"],
|
|
504
|
-
[type="reset"],
|
|
505
|
-
[type="checkbox"],
|
|
506
|
-
[type="radio"],
|
|
507
|
-
[type="file"]
|
|
508
|
-
),
|
|
509
|
-
:host(:not([data-theme]))
|
|
510
|
-
input:is(
|
|
511
|
-
[type="submit"],
|
|
512
|
-
[type="button"],
|
|
513
|
-
[type="reset"],
|
|
514
|
-
[type="checkbox"],
|
|
515
|
-
[type="radio"],
|
|
516
|
-
[type="file"]
|
|
517
|
-
) {
|
|
518
|
-
--pico-form-element-focus-color: var(--pico-primary-focus);
|
|
519
330
|
}
|
|
520
331
|
:scope:not([data-theme]) details summary[role="button"].contrast:not(.outline)::after,
|
|
521
|
-
:host(:not([data-theme])) details summary[role="button"].contrast:not(.outline)::after
|
|
522
|
-
filter: brightness(0);
|
|
523
|
-
}
|
|
332
|
+
:host(:not([data-theme])) details summary[role="button"].contrast:not(.outline)::after,
|
|
524
333
|
:scope:not([data-theme])
|
|
525
334
|
[aria-busy="true"]:not(input, select, textarea).contrast:is(
|
|
526
335
|
button,
|
|
@@ -542,122 +351,8 @@ details summary[role="button"]:not(.outline)::after {
|
|
|
542
351
|
}
|
|
543
352
|
[data-theme="dark"] {
|
|
544
353
|
color-scheme: dark;
|
|
545
|
-
--pico-background-color: rgb(19, 22.5, 30.5);
|
|
546
|
-
--pico-color: #c2c7d0;
|
|
547
|
-
--pico-text-selection-color: rgba(1, 170, 255, 0.1875);
|
|
548
|
-
--pico-muted-color: #7b8495;
|
|
549
|
-
--pico-muted-border-color: #202632;
|
|
550
|
-
--pico-primary: #01aaff;
|
|
551
|
-
--pico-primary-background: #0172ad;
|
|
552
|
-
--pico-primary-border: var(--pico-primary-background);
|
|
553
|
-
--pico-primary-underline: rgba(1, 170, 255, 0.5);
|
|
554
|
-
--pico-primary-hover: #79c0ff;
|
|
555
|
-
--pico-primary-hover-background: #017fc0;
|
|
556
|
-
--pico-primary-hover-border: var(--pico-primary-hover-background);
|
|
557
|
-
--pico-primary-hover-underline: var(--pico-primary-hover);
|
|
558
|
-
--pico-primary-focus: rgba(1, 170, 255, 0.375);
|
|
559
|
-
--pico-primary-inverse: #fff;
|
|
560
|
-
--pico-secondary: #969eaf;
|
|
561
|
-
--pico-secondary-background: #525f7a;
|
|
562
|
-
--pico-secondary-border: var(--pico-secondary-background);
|
|
563
|
-
--pico-secondary-underline: rgba(150, 158, 175, 0.5);
|
|
564
|
-
--pico-secondary-hover: #b3b9c5;
|
|
565
|
-
--pico-secondary-hover-background: #5d6b89;
|
|
566
|
-
--pico-secondary-hover-border: var(--pico-secondary-hover-background);
|
|
567
|
-
--pico-secondary-hover-underline: var(--pico-secondary-hover);
|
|
568
|
-
--pico-secondary-focus: rgba(144, 158, 190, 0.25);
|
|
569
|
-
--pico-secondary-inverse: #fff;
|
|
570
|
-
--pico-contrast: #dfe3eb;
|
|
571
|
-
--pico-contrast-background: #eff1f4;
|
|
572
|
-
--pico-contrast-border: var(--pico-contrast-background);
|
|
573
|
-
--pico-contrast-underline: rgba(223, 227, 235, 0.5);
|
|
574
|
-
--pico-contrast-hover: #fff;
|
|
575
|
-
--pico-contrast-hover-background: #fff;
|
|
576
|
-
--pico-contrast-hover-border: var(--pico-contrast-hover-background);
|
|
577
|
-
--pico-contrast-hover-underline: var(--pico-contrast-hover);
|
|
578
|
-
--pico-contrast-focus: rgba(207, 213, 226, 0.25);
|
|
579
|
-
--pico-contrast-inverse: #000;
|
|
580
|
-
--pico-box-shadow: 0 0.5rem 2.5rem rgba(7, 8.5, 12, 0.2);
|
|
581
|
-
--pico-h1-color: #f0f1f3;
|
|
582
|
-
--pico-h2-color: #e0e3e7;
|
|
583
|
-
--pico-h3-color: #c2c7d0;
|
|
584
|
-
--pico-h4-color: #b3b9c5;
|
|
585
|
-
--pico-h5-color: #a4acba;
|
|
586
|
-
--pico-h6-color: #8891a4;
|
|
587
|
-
--pico-mark-background-color: #014063;
|
|
588
|
-
--pico-mark-color: #fff;
|
|
589
|
-
--pico-ins-color: #62af9a;
|
|
590
|
-
--pico-del-color: rgb(205.5, 126, 123);
|
|
591
|
-
--pico-blockquote-border-color: var(--pico-muted-border-color);
|
|
592
|
-
--pico-blockquote-footer-color: var(--pico-muted-color);
|
|
593
|
-
--pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
594
|
-
--pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
595
|
-
--pico-table-border-color: var(--pico-muted-border-color);
|
|
596
|
-
--pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
|
|
597
|
-
--pico-code-background-color: rgb(26, 30.5, 40.25);
|
|
598
|
-
--pico-code-color: #8891a4;
|
|
599
|
-
--pico-code-kbd-background-color: var(--pico-color);
|
|
600
|
-
--pico-code-kbd-color: var(--pico-background-color);
|
|
601
|
-
--pico-form-element-background-color: rgb(28, 33, 43.5);
|
|
602
|
-
--pico-form-element-selected-background-color: #2a3140;
|
|
603
|
-
--pico-form-element-border-color: #2a3140;
|
|
604
|
-
--pico-form-element-color: #e0e3e7;
|
|
605
|
-
--pico-form-element-placeholder-color: #8891a4;
|
|
606
|
-
--pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
|
|
607
|
-
--pico-form-element-active-border-color: var(--pico-primary-border);
|
|
608
|
-
--pico-form-element-focus-color: var(--pico-primary-border);
|
|
609
|
-
--pico-form-element-disabled-opacity: 0.5;
|
|
610
|
-
--pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
|
|
611
|
-
--pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
|
|
612
|
-
--pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
|
|
613
|
-
--pico-form-element-valid-border-color: #2a7b6f;
|
|
614
|
-
--pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
|
|
615
|
-
--pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
|
|
616
|
-
--pico-switch-background-color: #333c4e;
|
|
617
|
-
--pico-switch-checked-background-color: var(--pico-primary-background);
|
|
618
|
-
--pico-switch-color: #fff;
|
|
619
|
-
--pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
620
|
-
--pico-range-border-color: #202632;
|
|
621
|
-
--pico-range-active-border-color: #2a3140;
|
|
622
|
-
--pico-range-thumb-border-color: var(--pico-background-color);
|
|
623
|
-
--pico-range-thumb-color: var(--pico-secondary-background);
|
|
624
|
-
--pico-range-thumb-active-color: var(--pico-primary-background);
|
|
625
|
-
--pico-accordion-border-color: var(--pico-muted-border-color);
|
|
626
|
-
--pico-accordion-active-summary-color: var(--pico-primary-hover);
|
|
627
|
-
--pico-accordion-close-summary-color: var(--pico-color);
|
|
628
|
-
--pico-accordion-open-summary-color: var(--pico-muted-color);
|
|
629
|
-
--pico-card-background-color: #181c25;
|
|
630
|
-
--pico-card-border-color: var(--pico-card-background-color);
|
|
631
|
-
--pico-card-box-shadow: var(--pico-box-shadow);
|
|
632
|
-
--pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
|
|
633
|
-
--pico-dropdown-background-color: #181c25;
|
|
634
|
-
--pico-dropdown-border-color: #202632;
|
|
635
|
-
--pico-dropdown-box-shadow: var(--pico-box-shadow);
|
|
636
|
-
--pico-dropdown-color: var(--pico-color);
|
|
637
|
-
--pico-dropdown-hover-background-color: #202632;
|
|
638
|
-
--pico-loading-spinner-opacity: 0.5;
|
|
639
|
-
--pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75);
|
|
640
|
-
--pico-progress-background-color: #202632;
|
|
641
|
-
--pico-progress-color: var(--pico-primary-background);
|
|
642
|
-
--pico-tooltip-background-color: var(--pico-contrast-background);
|
|
643
|
-
--pico-tooltip-color: var(--pico-contrast-inverse);
|
|
644
|
-
--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(42, 123, 111)' 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");
|
|
645
|
-
--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(149.5, 74, 80)' 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");
|
|
646
|
-
}
|
|
647
|
-
[data-theme="dark"]
|
|
648
|
-
input:is(
|
|
649
|
-
[type="submit"],
|
|
650
|
-
[type="button"],
|
|
651
|
-
[type="reset"],
|
|
652
|
-
[type="checkbox"],
|
|
653
|
-
[type="radio"],
|
|
654
|
-
[type="file"]
|
|
655
|
-
) {
|
|
656
|
-
--pico-form-element-focus-color: var(--pico-primary-focus);
|
|
657
|
-
}
|
|
658
|
-
[data-theme="dark"] details summary[role="button"].contrast:not(.outline)::after {
|
|
659
|
-
filter: brightness(0);
|
|
660
354
|
}
|
|
355
|
+
[data-theme="dark"] details summary[role="button"].contrast:not(.outline)::after,
|
|
661
356
|
[data-theme="dark"]
|
|
662
357
|
[aria-busy="true"]:not(input, select, textarea).contrast:is(
|
|
663
358
|
button,
|
|
@@ -713,9 +408,6 @@ progress,
|
|
|
713
408
|
tab-size: 4;
|
|
714
409
|
}
|
|
715
410
|
|
|
716
|
-
/**
|
|
717
|
-
* Landmarks
|
|
718
|
-
*/
|
|
719
411
|
body {
|
|
720
412
|
width: 100%;
|
|
721
413
|
margin: 0;
|
|
@@ -725,12 +417,6 @@ main {
|
|
|
725
417
|
display: block;
|
|
726
418
|
}
|
|
727
419
|
|
|
728
|
-
body > header,
|
|
729
|
-
body > main,
|
|
730
|
-
body > footer {
|
|
731
|
-
padding-block: var(--pico-block-spacing-vertical);
|
|
732
|
-
}
|
|
733
|
-
|
|
734
420
|
/**
|
|
735
421
|
* Section
|
|
736
422
|
*/
|
|
@@ -1074,7 +760,7 @@ button,
|
|
|
1074
760
|
background-color: var(--pico-background-color);
|
|
1075
761
|
box-shadow: var(--pico-box-shadow);
|
|
1076
762
|
color: var(--pico-color);
|
|
1077
|
-
font-weight: var(--pico-font-weight);
|
|
763
|
+
font-weight: var(--pico-button-font-weight, var(--pico-font-weight));
|
|
1078
764
|
font-size: 1rem;
|
|
1079
765
|
line-height: var(--pico-line-height);
|
|
1080
766
|
text-align: center;
|
|
@@ -1749,6 +1435,19 @@ label > :where(input, select, textarea) {
|
|
|
1749
1435
|
/**
|
|
1750
1436
|
* Checkboxes, Radios and Switches
|
|
1751
1437
|
*/
|
|
1438
|
+
:where(:scope),
|
|
1439
|
+
:host {
|
|
1440
|
+
--pico-icon-checkbox: 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(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
|
1441
|
+
--pico-icon-minus: 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(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
|
|
1442
|
+
}
|
|
1443
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
1444
|
+
:host {
|
|
1445
|
+
--pico-switch-background-color: light-dark(#bfc7d9, #333c4e);
|
|
1446
|
+
--pico-switch-checked-background-color: var(--pico-primary-background);
|
|
1447
|
+
--pico-switch-color: #fff;
|
|
1448
|
+
--pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1752
1451
|
label:has([type="checkbox"], [type="radio"]) {
|
|
1753
1452
|
width: -moz-fit-content;
|
|
1754
1453
|
width: fit-content;
|
|
@@ -1914,6 +1613,12 @@ label:has([type="checkbox"], [type="radio"]) {
|
|
|
1914
1613
|
/**
|
|
1915
1614
|
* Input type datetime
|
|
1916
1615
|
*/
|
|
1616
|
+
:where(:scope),
|
|
1617
|
+
:host {
|
|
1618
|
+
--pico-icon-date: 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%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
|
|
1619
|
+
--pico-icon-time: 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%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1917
1622
|
input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is(
|
|
1918
1623
|
[type="date"],
|
|
1919
1624
|
[type="datetime-local"],
|
|
@@ -1988,6 +1693,15 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
|
|
|
1988
1693
|
/**
|
|
1989
1694
|
* Input type range
|
|
1990
1695
|
*/
|
|
1696
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
1697
|
+
:host {
|
|
1698
|
+
--pico-range-border-color: light-dark(#dfe3eb, #202632);
|
|
1699
|
+
--pico-range-active-border-color: light-dark(#bfc7d9, #2a3140);
|
|
1700
|
+
--pico-range-thumb-border-color: var(--pico-background-color);
|
|
1701
|
+
--pico-range-thumb-color: var(--pico-secondary-background);
|
|
1702
|
+
--pico-range-thumb-active-color: var(--pico-primary-background);
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1991
1705
|
[type="range"] {
|
|
1992
1706
|
-webkit-appearance: none;
|
|
1993
1707
|
-moz-appearance: none;
|
|
@@ -2097,6 +1811,11 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
|
|
|
2097
1811
|
/**
|
|
2098
1812
|
* Input type search
|
|
2099
1813
|
*/
|
|
1814
|
+
:where(:scope),
|
|
1815
|
+
:host {
|
|
1816
|
+
--pico-icon-search: 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='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
|
|
1817
|
+
}
|
|
1818
|
+
|
|
2100
1819
|
input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
|
|
2101
1820
|
padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
|
|
2102
1821
|
background-image: var(--pico-icon-search);
|
|
@@ -2155,6 +1874,14 @@ input:not(
|
|
|
2155
1874
|
/**
|
|
2156
1875
|
* Accordion (<details>)
|
|
2157
1876
|
*/
|
|
1877
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
1878
|
+
:host {
|
|
1879
|
+
--pico-accordion-border-color: var(--pico-muted-border-color);
|
|
1880
|
+
--pico-accordion-active-summary-color: var(--pico-primary-hover);
|
|
1881
|
+
--pico-accordion-close-summary-color: var(--pico-color);
|
|
1882
|
+
--pico-accordion-open-summary-color: var(--pico-muted-color);
|
|
1883
|
+
}
|
|
1884
|
+
|
|
2158
1885
|
details {
|
|
2159
1886
|
display: block;
|
|
2160
1887
|
margin-bottom: var(--pico-spacing);
|
|
@@ -2229,6 +1956,20 @@ details[open] > summary::after {
|
|
|
2229
1956
|
/**
|
|
2230
1957
|
* Card (<article>)
|
|
2231
1958
|
*/
|
|
1959
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
1960
|
+
:host {
|
|
1961
|
+
--pico-card-background-color: light-dark(var(--pico-background-color), #181c25);
|
|
1962
|
+
--pico-card-border-color: light-dark(
|
|
1963
|
+
var(--pico-muted-border-color),
|
|
1964
|
+
var(--pico-card-background-color)
|
|
1965
|
+
);
|
|
1966
|
+
--pico-card-box-shadow: var(--pico-box-shadow);
|
|
1967
|
+
--pico-card-sectioning-background-color: light-dark(
|
|
1968
|
+
rgb(251, 251.5, 252.25),
|
|
1969
|
+
rgb(26, 30.5, 40.25)
|
|
1970
|
+
);
|
|
1971
|
+
}
|
|
1972
|
+
|
|
2232
1973
|
article {
|
|
2233
1974
|
margin-bottom: var(--pico-block-spacing-vertical);
|
|
2234
1975
|
padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);
|
|
@@ -2260,6 +2001,15 @@ article > footer {
|
|
|
2260
2001
|
/**
|
|
2261
2002
|
* Dropdown (details.dropdown)
|
|
2262
2003
|
*/
|
|
2004
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
2005
|
+
:host {
|
|
2006
|
+
--pico-dropdown-background-color: light-dark(#fff, #181c25);
|
|
2007
|
+
--pico-dropdown-border-color: light-dark(#eff1f4, #202632);
|
|
2008
|
+
--pico-dropdown-box-shadow: var(--pico-box-shadow);
|
|
2009
|
+
--pico-dropdown-color: var(--pico-color);
|
|
2010
|
+
--pico-dropdown-hover-background-color: light-dark(#eff1f4, #202632);
|
|
2011
|
+
}
|
|
2012
|
+
|
|
2263
2013
|
details.dropdown {
|
|
2264
2014
|
position: relative;
|
|
2265
2015
|
border-bottom: none;
|
|
@@ -2440,6 +2190,44 @@ label > details.dropdown {
|
|
|
2440
2190
|
/**
|
|
2441
2191
|
* Group ([role="group"], [role="search"])
|
|
2442
2192
|
*/
|
|
2193
|
+
:where(:scope),
|
|
2194
|
+
:host {
|
|
2195
|
+
--pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
2196
|
+
--pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
|
|
2197
|
+
var(--pico-primary-focus);
|
|
2198
|
+
--pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
|
|
2199
|
+
}
|
|
2200
|
+
[role="search"]:has(
|
|
2201
|
+
button.secondary:focus,
|
|
2202
|
+
[type="submit"].secondary:focus,
|
|
2203
|
+
[type="button"].secondary:focus,
|
|
2204
|
+
[role="button"].secondary:focus
|
|
2205
|
+
),
|
|
2206
|
+
[role="group"]:has(
|
|
2207
|
+
button.secondary:focus,
|
|
2208
|
+
[type="submit"].secondary:focus,
|
|
2209
|
+
[type="button"].secondary:focus,
|
|
2210
|
+
[role="button"].secondary:focus
|
|
2211
|
+
) {
|
|
2212
|
+
--pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
|
|
2213
|
+
var(--pico-secondary-focus);
|
|
2214
|
+
}
|
|
2215
|
+
[role="search"]:has(
|
|
2216
|
+
button.contrast:focus,
|
|
2217
|
+
[type="submit"].contrast:focus,
|
|
2218
|
+
[type="button"].contrast:focus,
|
|
2219
|
+
[role="button"].contrast:focus
|
|
2220
|
+
),
|
|
2221
|
+
[role="group"]:has(
|
|
2222
|
+
button.contrast:focus,
|
|
2223
|
+
[type="submit"].contrast:focus,
|
|
2224
|
+
[type="button"].contrast:focus,
|
|
2225
|
+
[role="button"].contrast:focus
|
|
2226
|
+
) {
|
|
2227
|
+
--pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
|
|
2228
|
+
var(--pico-contrast-focus);
|
|
2229
|
+
}
|
|
2230
|
+
|
|
2443
2231
|
[role="search"],
|
|
2444
2232
|
[role="group"] {
|
|
2445
2233
|
display: inline-flex;
|
|
@@ -2607,6 +2395,15 @@ label > details.dropdown {
|
|
|
2607
2395
|
/**
|
|
2608
2396
|
* Loading ([aria-busy=true])
|
|
2609
2397
|
*/
|
|
2398
|
+
:where(:scope),
|
|
2399
|
+
:host {
|
|
2400
|
+
--pico-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
|
|
2401
|
+
}
|
|
2402
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
2403
|
+
:host {
|
|
2404
|
+
--pico-loading-spinner-opacity: 0.5;
|
|
2405
|
+
}
|
|
2406
|
+
|
|
2610
2407
|
[aria-busy="true"]:not(input, select, textarea, html, form) {
|
|
2611
2408
|
white-space: nowrap;
|
|
2612
2409
|
}
|
|
@@ -2639,6 +2436,19 @@ a[aria-busy="true"] {
|
|
|
2639
2436
|
/**
|
|
2640
2437
|
* Modal (<dialog>)
|
|
2641
2438
|
*/
|
|
2439
|
+
:where(:scope),
|
|
2440
|
+
:host {
|
|
2441
|
+
--pico-modal-overlay-backdrop-filter: blur(0.375rem);
|
|
2442
|
+
--pico-icon-close: 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='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
|
|
2443
|
+
}
|
|
2444
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
2445
|
+
:host {
|
|
2446
|
+
--pico-modal-overlay-background-color: light-dark(
|
|
2447
|
+
rgba(232, 234, 237, 0.75),
|
|
2448
|
+
rgba(7.5, 8.5, 10, 0.75)
|
|
2449
|
+
);
|
|
2450
|
+
}
|
|
2451
|
+
|
|
2642
2452
|
:scope,
|
|
2643
2453
|
:host {
|
|
2644
2454
|
--pico-scrollbar-width: 0px;
|
|
@@ -2781,6 +2591,12 @@ dialog[open="false"] {
|
|
|
2781
2591
|
/**
|
|
2782
2592
|
* Nav
|
|
2783
2593
|
*/
|
|
2594
|
+
:where(:scope),
|
|
2595
|
+
:host {
|
|
2596
|
+
--pico-nav-element-spacing-horizontal: 0.5rem;
|
|
2597
|
+
--pico-nav-breadcrumb-divider: ">";
|
|
2598
|
+
}
|
|
2599
|
+
|
|
2784
2600
|
:where(nav li)::before {
|
|
2785
2601
|
float: left;
|
|
2786
2602
|
content: "";
|
|
@@ -2890,6 +2706,12 @@ aside li [role="button"] {
|
|
|
2890
2706
|
/**
|
|
2891
2707
|
* Progress
|
|
2892
2708
|
*/
|
|
2709
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
2710
|
+
:host {
|
|
2711
|
+
--pico-progress-background-color: light-dark(#dfe3eb, #202632);
|
|
2712
|
+
--pico-progress-color: var(--pico-primary-background);
|
|
2713
|
+
}
|
|
2714
|
+
|
|
2893
2715
|
progress {
|
|
2894
2716
|
display: inline-block;
|
|
2895
2717
|
vertical-align: baseline;
|
|
@@ -2958,6 +2780,12 @@ progress::-moz-progress-bar {
|
|
|
2958
2780
|
/**
|
|
2959
2781
|
* Tooltip ([data-tooltip])
|
|
2960
2782
|
*/
|
|
2783
|
+
:where(:scope, [data-theme="light"], [data-theme="dark"]),
|
|
2784
|
+
:host {
|
|
2785
|
+
--pico-tooltip-background-color: var(--pico-contrast-background);
|
|
2786
|
+
--pico-tooltip-color: var(--pico-contrast-inverse);
|
|
2787
|
+
}
|
|
2788
|
+
|
|
2961
2789
|
[data-tooltip] {
|
|
2962
2790
|
position: relative;
|
|
2963
2791
|
}
|
|
@@ -3154,5 +2982,434 @@ progress::-moz-progress-bar {
|
|
|
3154
2982
|
transition-duration: 0s !important;
|
|
3155
2983
|
}
|
|
3156
2984
|
}
|
|
2985
|
+
/*!
|
|
2986
|
+
* Blades CSS standalone kit v3 🥷
|
|
2987
|
+
* Copyright 2026 (https://blades.ninja/css/standalone/)
|
|
2988
|
+
* Licensed under MIT
|
|
2989
|
+
*/
|
|
2990
|
+
/*\3c !--section:code-->```css */
|
|
2991
|
+
|
|
2992
|
+
/* Follows https://github.com/picocss/pico/blob/main/scss/_index.scss */
|
|
2993
|
+
|
|
2994
|
+
:scope,
|
|
2995
|
+
:host {
|
|
2996
|
+
/**
|
|
2997
|
+
* Design Tokens !!! NAMING NOT FINALIZED YET !!!
|
|
2998
|
+
* `--in-pico: *` props below are for reference only (not to be used)
|
|
2999
|
+
*/
|
|
3000
|
+
--blades-token-primary: var(--pico-primary, dodgerblue);
|
|
3001
|
+
--in-pico: #01aaff;
|
|
3002
|
+
--blades-token-secondary: var(--pico-secondary, lightslategray);
|
|
3003
|
+
--in-pico: #969eaf;
|
|
3004
|
+
|
|
3005
|
+
/**
|
|
3006
|
+
* Inherited Variables
|
|
3007
|
+
*/
|
|
3008
|
+
--blades-timeline-border-color: color-mix(
|
|
3009
|
+
in srgb,
|
|
3010
|
+
var(--blades-token-secondary) 50%,
|
|
3011
|
+
transparent
|
|
3012
|
+
);
|
|
3013
|
+
}
|
|
3014
|
+
|
|
3015
|
+
/* Layout */
|
|
3016
|
+
|
|
3017
|
+
/*\3c !--section:docs-->
|
|
3018
|
+
|
|
3019
|
+
`.columns` automatically creates columns with at least 30 characters each:
|
|
3020
|
+
|
|
3021
|
+
<article class="columns">
|
|
3022
|
+
<p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p>
|
|
3023
|
+
</article>
|
|
3024
|
+
|
|
3025
|
+
The smaller the font size, the more columns will be created:
|
|
3026
|
+
|
|
3027
|
+
<article class="columns" style="font-size: 65%">
|
|
3028
|
+
<p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p>
|
|
3029
|
+
</article>
|
|
3030
|
+
|
|
3031
|
+
Useful for tables of contents and long lists.
|
|
3032
|
+
|
|
3033
|
+
\3c !--section:code-->
|
|
3034
|
+
```css */
|
|
3035
|
+
.columns {
|
|
3036
|
+
-moz-columns: 25ch auto;
|
|
3037
|
+
columns: 25ch auto; /* common container 65ch / 25ch => 2 columns max, with a buffer for list paddings */
|
|
3038
|
+
}
|
|
3039
|
+
/* Avoid breaking inside elements, such as nested lists */
|
|
3040
|
+
.columns > * {
|
|
3041
|
+
-moz-column-break-inside: avoid;
|
|
3042
|
+
break-inside: avoid;
|
|
3043
|
+
}
|
|
3044
|
+
/* Content */
|
|
3045
|
+
/*\3c !--section:docs-->
|
|
3046
|
+
|
|
3047
|
+
The `<pre><code>` blocks are Prism-compatible and support captions via `data-caption="..."` attribute:
|
|
3048
|
+
|
|
3049
|
+
```treeview {data-caption="Blades CSS ships:"}
|
|
3050
|
+
/css/
|
|
3051
|
+
├── blades.css (Pico CSS successor)
|
|
3052
|
+
├── blades.standalone.css (framework-agnostic)
|
|
3053
|
+
├── ninja.css (experimental add-ons)
|
|
3054
|
+
└── pico.css (underlying fork)
|
|
3055
|
+
```
|
|
3056
|
+
|
|
3057
|
+
\3c !--section:code-->
|
|
3058
|
+
```css */
|
|
3059
|
+
@media (width < 768px) {
|
|
3060
|
+
pre {
|
|
3061
|
+
border-radius: 0
|
|
3062
|
+
}
|
|
3063
|
+
}
|
|
3064
|
+
|
|
3065
|
+
/* Code block caption via data-attr (to display filename, etc.) */
|
|
3066
|
+
|
|
3067
|
+
code[data-caption]::before {
|
|
3068
|
+
display: block;
|
|
3069
|
+
margin-bottom: 1rem;
|
|
3070
|
+
content: attr(data-caption);
|
|
3071
|
+
font-style: italic;
|
|
3072
|
+
opacity: 50%;
|
|
3073
|
+
}
|
|
3074
|
+
|
|
3075
|
+
/* Forms */
|
|
3076
|
+
|
|
3077
|
+
/*!
|
|
3078
|
+
* Float Label CSS v2 by Blades CSS 🥷🏷️
|
|
3079
|
+
* Copyright 2016–2026 (https://blades.ninja/css/float-label/)
|
|
3080
|
+
* Licensed under MIT
|
|
3081
|
+
*/
|
|
3082
|
+
/*\3c !--section:docs-->
|
|
3083
|
+
|
|
3084
|
+
First, we target either:
|
|
3085
|
+
1. `<label>` which `:has` inner form inputs (classless approach)
|
|
3086
|
+
2. or explicit `.has-float-label` class (explicit approach)
|
|
3087
|
+
|
|
3088
|
+
```css */
|
|
3089
|
+
label:has(> span):has(
|
|
3090
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3091
|
+
textarea,
|
|
3092
|
+
select
|
|
3093
|
+
),
|
|
3094
|
+
.has-float-label {
|
|
3095
|
+
display: block;
|
|
3096
|
+
position: relative;
|
|
3097
|
+
/*```
|
|
3098
|
+
Finally, we detect if placeholder is shown, but not in focus. That means we can safely hide it, and enlarge the float label instead:
|
|
3099
|
+
```css */
|
|
3100
|
+
}
|
|
3101
|
+
/*```
|
|
3102
|
+
Then, we define the default/fallback state (when the float label should be minimized):
|
|
3103
|
+
```css */
|
|
3104
|
+
label:has(> span):has(
|
|
3105
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3106
|
+
textarea,
|
|
3107
|
+
select
|
|
3108
|
+
) > span,
|
|
3109
|
+
label:has(> span):has(
|
|
3110
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3111
|
+
textarea,
|
|
3112
|
+
select
|
|
3113
|
+
) label,
|
|
3114
|
+
.has-float-label > span,
|
|
3115
|
+
.has-float-label label {
|
|
3116
|
+
position: absolute;
|
|
3117
|
+
top: 0;
|
|
3118
|
+
left: 0;
|
|
3119
|
+
font-size: 75%;
|
|
3120
|
+
cursor: text;
|
|
3121
|
+
}
|
|
3122
|
+
label:has(> span):has(
|
|
3123
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3124
|
+
textarea,
|
|
3125
|
+
select
|
|
3126
|
+
) *:placeholder-shown:not(:focus)::-moz-placeholder, .has-float-label *:placeholder-shown:not(:focus)::-moz-placeholder {
|
|
3127
|
+
opacity: 0;
|
|
3128
|
+
}
|
|
3129
|
+
label:has(> span):has(
|
|
3130
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3131
|
+
textarea,
|
|
3132
|
+
select
|
|
3133
|
+
) *:-moz-placeholder:not(:focus)::placeholder, .has-float-label *:-moz-placeholder:not(:focus)::placeholder {
|
|
3134
|
+
opacity: 0;
|
|
3135
|
+
}
|
|
3136
|
+
label:has(> span):has(
|
|
3137
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3138
|
+
textarea,
|
|
3139
|
+
select
|
|
3140
|
+
) *:placeholder-shown:not(:focus)::placeholder, .has-float-label *:placeholder-shown:not(:focus)::placeholder {
|
|
3141
|
+
opacity: 0;
|
|
3142
|
+
}
|
|
3143
|
+
label:has(> span):has(
|
|
3144
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3145
|
+
textarea,
|
|
3146
|
+
select
|
|
3147
|
+
):has(*:-moz-placeholder:not(:focus)) > span, label:has(> span):has(
|
|
3148
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3149
|
+
textarea,
|
|
3150
|
+
select
|
|
3151
|
+
):has(*:-moz-placeholder:not(:focus)) label, .has-float-label:has(*:-moz-placeholder:not(:focus)) > span, .has-float-label:has(*:-moz-placeholder:not(:focus)) label {
|
|
3152
|
+
font-size: inherit;
|
|
3153
|
+
opacity: 50%;
|
|
3154
|
+
}
|
|
3155
|
+
label:has(> span):has(
|
|
3156
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3157
|
+
textarea,
|
|
3158
|
+
select
|
|
3159
|
+
):has(*:placeholder-shown:not(:focus)) > span,
|
|
3160
|
+
label:has(> span):has(
|
|
3161
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3162
|
+
textarea,
|
|
3163
|
+
select
|
|
3164
|
+
):has(*:placeholder-shown:not(:focus)) label,
|
|
3165
|
+
.has-float-label:has(*:placeholder-shown:not(:focus)) > span,
|
|
3166
|
+
.has-float-label:has(*:placeholder-shown:not(:focus)) label {
|
|
3167
|
+
font-size: inherit;
|
|
3168
|
+
opacity: 50%;
|
|
3169
|
+
}
|
|
3170
|
+
/*```
|
|
3171
|
+
|
|
3172
|
+
The `:has(*:placeholder-shown:not(:focus))` trick allows this input state information to *propagate* to the parent level. This enables modern CSS to target inner float label (`<span>` or `<label>`) regardless of its position relative to the input field.
|
|
3173
|
+
|
|
3174
|
+
Historically, this was not possible: the float label had to be placed after the input field to be targeted using the `input:focus + label` selector.
|
|
3175
|
+
|
|
3176
|
+
*/
|
|
3177
|
+
label:has(> span):has(
|
|
3178
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3179
|
+
textarea,
|
|
3180
|
+
select
|
|
3181
|
+
),
|
|
3182
|
+
.has-float-label {
|
|
3183
|
+
|
|
3184
|
+
/* Enlarged state */
|
|
3185
|
+
}
|
|
3186
|
+
/* Default/fallback state */
|
|
3187
|
+
label:has(> span):has(
|
|
3188
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3189
|
+
textarea,
|
|
3190
|
+
select
|
|
3191
|
+
) > span,
|
|
3192
|
+
label:has(> span):has(
|
|
3193
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3194
|
+
textarea,
|
|
3195
|
+
select
|
|
3196
|
+
) label,
|
|
3197
|
+
.has-float-label > span,
|
|
3198
|
+
.has-float-label label {
|
|
3199
|
+
padding-inline-start: calc(1rem + 1px); /* match Pico's padding + border */
|
|
3200
|
+
padding-block-start: 0.25rem;
|
|
3201
|
+
opacity: 75%;
|
|
3202
|
+
transition: all 0.25s;
|
|
3203
|
+
}
|
|
3204
|
+
label:has(> span):has(
|
|
3205
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3206
|
+
textarea,
|
|
3207
|
+
select
|
|
3208
|
+
) input,
|
|
3209
|
+
label:has(> span):has(
|
|
3210
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3211
|
+
textarea,
|
|
3212
|
+
select
|
|
3213
|
+
) textarea,
|
|
3214
|
+
label:has(> span):has(
|
|
3215
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3216
|
+
textarea,
|
|
3217
|
+
select
|
|
3218
|
+
) select,
|
|
3219
|
+
.has-float-label input,
|
|
3220
|
+
.has-float-label textarea,
|
|
3221
|
+
.has-float-label select {
|
|
3222
|
+
margin-block-start: 0; /* reset Pico */
|
|
3223
|
+
padding-inline-start: 1rem; /* match Pico */
|
|
3224
|
+
padding-block: 1.125rem 0.375rem; /* match Pico's total: 2 x 0.75rem = 1.5rem */
|
|
3225
|
+
}
|
|
3226
|
+
label:has(> span):has(
|
|
3227
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3228
|
+
textarea,
|
|
3229
|
+
select
|
|
3230
|
+
) input::-moz-placeholder, label:has(> span):has(
|
|
3231
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3232
|
+
textarea,
|
|
3233
|
+
select
|
|
3234
|
+
) textarea::-moz-placeholder, label:has(> span):has(
|
|
3235
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3236
|
+
textarea,
|
|
3237
|
+
select
|
|
3238
|
+
) select::-moz-placeholder, .has-float-label input::-moz-placeholder, .has-float-label textarea::-moz-placeholder, .has-float-label select::-moz-placeholder {
|
|
3239
|
+
opacity: 100%;
|
|
3240
|
+
-moz-transition: all 0.25s;
|
|
3241
|
+
transition: all 0.25s;
|
|
3242
|
+
}
|
|
3243
|
+
label:has(> span):has(
|
|
3244
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3245
|
+
textarea,
|
|
3246
|
+
select
|
|
3247
|
+
) input::placeholder, label:has(> span):has(
|
|
3248
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3249
|
+
textarea,
|
|
3250
|
+
select
|
|
3251
|
+
) textarea::placeholder, label:has(> span):has(
|
|
3252
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3253
|
+
textarea,
|
|
3254
|
+
select
|
|
3255
|
+
) select::placeholder, .has-float-label input::placeholder, .has-float-label textarea::placeholder, .has-float-label select::placeholder {
|
|
3256
|
+
opacity: 100%;
|
|
3257
|
+
transition: all 0.25s;
|
|
3258
|
+
}
|
|
3259
|
+
label:has(> span):has(
|
|
3260
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3261
|
+
textarea,
|
|
3262
|
+
select
|
|
3263
|
+
):has(*:-moz-placeholder:not(:focus)) > span, label:has(> span):has(
|
|
3264
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3265
|
+
textarea,
|
|
3266
|
+
select
|
|
3267
|
+
):has(*:-moz-placeholder:not(:focus)) label, .has-float-label:has(*:-moz-placeholder:not(:focus)) > span, .has-float-label:has(*:-moz-placeholder:not(:focus)) label {
|
|
3268
|
+
padding-block: 0.75rem; /* match Pico */
|
|
3269
|
+
}
|
|
3270
|
+
label:has(> span):has(
|
|
3271
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3272
|
+
textarea,
|
|
3273
|
+
select
|
|
3274
|
+
):has(*:placeholder-shown:not(:focus)) > span,
|
|
3275
|
+
label:has(> span):has(
|
|
3276
|
+
input:not([type="checkbox"], [type="radio"], [type="range"]),
|
|
3277
|
+
textarea,
|
|
3278
|
+
select
|
|
3279
|
+
):has(*:placeholder-shown:not(:focus)) label,
|
|
3280
|
+
.has-float-label:has(*:placeholder-shown:not(:focus)) > span,
|
|
3281
|
+
.has-float-label:has(*:placeholder-shown:not(:focus)) label {
|
|
3282
|
+
padding-block: 0.75rem; /* match Pico */
|
|
3283
|
+
}
|
|
3284
|
+
/* Components */
|
|
3285
|
+
/* Extends https://github.com/picocss/pico/blob/main/scss/content/_link.scss
|
|
3286
|
+
\3c !--section:code-->
|
|
3287
|
+
```css */
|
|
3288
|
+
/* Use inline flex only if link contains an icon */
|
|
3289
|
+
a:not(.does-not-exist):has(> i) {
|
|
3290
|
+
display: inline-flex;
|
|
3291
|
+
overflow-y: clip; /* to work in pair with text-underline-offset in Safari */
|
|
3292
|
+
gap: 0.375ch; /* =3/8 */
|
|
3293
|
+
text-wrap: balance;
|
|
3294
|
+
}
|
|
3295
|
+
a:not(.does-not-exist) > i {
|
|
3296
|
+
float: left; /* ✅ Chrome ❌ Safari */
|
|
3297
|
+
font-style: normal;
|
|
3298
|
+
text-underline-offset: -2em; /* ❌ Chrome ✅ Safari - to clip it with overflow-y */
|
|
3299
|
+
}
|
|
3300
|
+
/* Favicons */
|
|
3301
|
+
a:not(.does-not-exist) > i > img {
|
|
3302
|
+
display: inline-block; /* for Tailwind CSS Typography */
|
|
3303
|
+
max-width: none; /* to keep ratio safe */
|
|
3304
|
+
height: 1.25em;
|
|
3305
|
+
margin-block-start: calc(-0.25em / 2);
|
|
3306
|
+
}
|
|
3307
|
+
a:not(.does-not-exist) > i[class^="fa-"],
|
|
3308
|
+
a:not(.does-not-exist) > i[class*=" fa-"] {
|
|
3309
|
+
line-height: inherit;
|
|
3310
|
+
--fa-width: auto;
|
|
3311
|
+
}
|
|
3312
|
+
/* Font Awesome */
|
|
3313
|
+
a:not(.does-not-exist) > i.fa-lg {
|
|
3314
|
+
line-height: normal;
|
|
3315
|
+
}
|
|
3316
|
+
/*```
|
|
3317
|
+
\3c !--section:summary-->
|
|
3318
|
+
|
|
3319
|
+
Use *Bl*ades `<i>`-helper to wrap emojis, favicons, or simply drop Font Awesome icons inside links.
|
|
3320
|
+
It automatically handles sizing and alignment while preventing underline on icons.
|
|
3321
|
+
|
|
3322
|
+
\3c !--section:docs-->
|
|
3323
|
+
|
|
3324
|
+
<article class="breakout-item">
|
|
3325
|
+
|
|
3326
|
+
| Use `<i>`-helper with | Clean HTML without `<span>ning` |
|
|
3327
|
+
| ------------------------------------------------------------------------------------- | ------------------------------------ |
|
|
3328
|
+
| [<i>🥷</i> Emojis](#) | `<a><i>🥷</i> Text</a>` |
|
|
3329
|
+
| [<i></i> Favicons](#) | `<a><i><img src="..."></i> Text</a>` |
|
|
3330
|
+
| [<i class="fa-brands fa-github fa-lg"></i> Font Awesome icons](#) | `<a><i class="fa-..."></i> Text</a>` |
|
|
3331
|
+
</article>
|
|
3332
|
+
|
|
3333
|
+
Or even for:
|
|
3334
|
+
|
|
3335
|
+
<article>
|
|
3336
|
+
<a href="#" style="margin: 0 0 0 1rem"><i>🥷</i> very-very-very-very-very-<br>long-multiline-links</a>
|
|
3337
|
+
</article>
|
|
3338
|
+
|
|
3339
|
+
How we made it: https://codepen.io/editor/anydigital/pen/019d2b94-5616-75dc-a23e-e111869d5237
|
|
3340
|
+
|
|
3341
|
+
\3c !--section--> */
|
|
3342
|
+
/*\3c !--section:docs-->
|
|
3343
|
+
|
|
3344
|
+
Use `dl.timeline` or wrap a `<dl>` with `.has-timeline` to style it as a
|
|
3345
|
+
vertical timeline — each `<dd>` gets a left border strip acting as the track:
|
|
3346
|
+
|
|
3347
|
+
<article class="has-timeline">
|
|
3348
|
+
|
|
3349
|
+
May 11, 2026
|
|
3350
|
+
: First Blades CSS stable release (v2.2.0).
|
|
3351
|
+
|
|
3352
|
+
Mar 15, 2025
|
|
3353
|
+
: Last Pico CSS update (v2.1.1).
|
|
3354
|
+
|
|
3355
|
+
</article>
|
|
3356
|
+
|
|
3357
|
+
\3c !--section:code-->```css */
|
|
3358
|
+
dl.timeline dd, .has-timeline > dl dd {
|
|
3359
|
+
margin-block: 0;
|
|
3360
|
+
padding: 0.25rem 0 0.75rem 1rem;
|
|
3361
|
+
border-inline-start: 0.25rem solid var(--blades-timeline-border-color);
|
|
3362
|
+
}
|
|
3363
|
+
/*
|
|
3364
|
+
* Compact: opt-in denser sizing and a more current look, applied under `data-compact` on
|
|
3365
|
+
* <html> (whole page) or on any element such as a single <form>. Without the attribute it
|
|
3366
|
+
* changes nothing. Part of blades.css (and blades.layered.css); with per-part imports, import it
|
|
3367
|
+
* last (in the same layer as the other parts).
|
|
3368
|
+
*
|
|
3369
|
+
* The extra selectors keep the values winning where Pico re-declares them at the same
|
|
3370
|
+
* specificity: nested [data-theme] sections, the `.pico` root when combined with the conditional build,
|
|
3371
|
+
* and a shadow host.
|
|
3372
|
+
*/
|
|
3373
|
+
[data-compact],
|
|
3374
|
+
[data-compact] :is([data-theme], .pico),
|
|
3375
|
+
.pico[data-compact],
|
|
3376
|
+
:host([data-compact]),
|
|
3377
|
+
:host([data-compact]) [data-theme] {
|
|
3378
|
+
--pico-border-radius: 0.5rem;
|
|
3379
|
+
--pico-outline-width: 0.1875rem;
|
|
3380
|
+
--pico-block-spacing-vertical: 1.5rem;
|
|
3381
|
+
--pico-block-spacing-horizontal: 1.5rem;
|
|
3382
|
+
--pico-form-element-spacing-vertical: 0.375rem;
|
|
3383
|
+
--pico-form-element-spacing-horizontal: 0.75rem;
|
|
3384
|
+
--pico-form-label-font-weight: 500;
|
|
3385
|
+
--pico-button-font-weight: 500;
|
|
3386
|
+
--pico-form-element-background-color: light-dark(#fff, rgb(28, 33, 43.5));
|
|
3387
|
+
--pico-card-border-color: var(--pico-muted-border-color);
|
|
3388
|
+
--pico-card-box-shadow:
|
|
3389
|
+
0 0 0 var(--pico-border-width) var(--pico-card-border-color), 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
3390
|
+
--pico-card-sectioning-background-color: var(--pico-card-background-color);
|
|
3391
|
+
}
|
|
3392
|
+
|
|
3393
|
+
/* Search fields keep their pill shape */
|
|
3394
|
+
[data-compact]:is([role="search"], [type="search"]) {
|
|
3395
|
+
--pico-border-radius: 5rem;
|
|
3396
|
+
}
|
|
3397
|
+
|
|
3398
|
+
/* Page-level only: everything is sized in rem, so the root size can't change per element */
|
|
3399
|
+
:root[data-compact],
|
|
3400
|
+
:host([data-compact]) {
|
|
3401
|
+
--pico-font-size: 100%;
|
|
3402
|
+
}
|
|
3403
|
+
|
|
3404
|
+
[data-compact] :is(h1, h2, h3, h4, h5, h6),
|
|
3405
|
+
:host([data-compact]) :is(h1, h2, h3, h4, h5, h6) {
|
|
3406
|
+
--pico-font-weight: 600;
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3409
|
+
/* Keep helper text at the normal weight under the 500-weight labels */
|
|
3410
|
+
[data-compact] :where(input, select, textarea, fieldset, .grid) + small,
|
|
3411
|
+
:host([data-compact]) :where(input, select, textarea, fieldset, .grid) + small {
|
|
3412
|
+
font-weight: var(--pico-font-weight);
|
|
3413
|
+
}
|
|
3157
3414
|
|
|
3158
3415
|
}
|