@anyblades/blades 3.0.0-alpha.3 → 3.1.0-alpha.1

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 (53) hide show
  1. package/.prettierignore +3 -0
  2. package/CODE_OF_CONDUCT.md +92 -0
  3. package/README.md +45 -20
  4. package/css/blades.css +7 -41
  5. package/css/blades.min.css +1 -1
  6. package/css/blades.standalone.css +2 -4
  7. package/css/pico.conditional.css +4 -35
  8. package/css/pico.conditional.min.css +1 -1
  9. package/css/pico.css +4 -35
  10. package/css/pico.layered.css +3158 -0
  11. package/css/pico.layered.min.css +107 -0
  12. package/css/pico.min.css +1 -1
  13. package/package.json +17 -6
  14. package/src/pico/_index.css +4 -4
  15. package/src/pico/_utilities.css +0 -21
  16. package/src/pico/components/_accordion.css +74 -0
  17. package/src/pico/components/_card.css +31 -0
  18. package/src/pico/components/_dropdown.css +179 -0
  19. package/src/pico/components/_group.css +167 -0
  20. package/src/pico/components/_index.css +9 -0
  21. package/src/pico/components/_loading.css +31 -0
  22. package/src/pico/components/_modal.css +144 -0
  23. package/src/pico/components/_nav.css +108 -0
  24. package/src/pico/components/_progress.css +67 -0
  25. package/src/pico/components/_tooltip.css +167 -0
  26. package/src/pico/content/_button.css +205 -0
  27. package/src/pico/content/_code.css +61 -0
  28. package/src/pico/content/_embedded-content.css +37 -0
  29. package/src/pico/content/_figure.css +12 -0
  30. package/src/pico/content/_index.css +8 -0
  31. package/src/pico/content/_link.css +81 -0
  32. package/src/pico/content/_misc.css +19 -0
  33. package/src/pico/content/_table.css +30 -0
  34. package/src/pico/content/_typography.css +156 -0
  35. package/src/pico/forms/_basics.css +335 -0
  36. package/src/pico/forms/_checkbox-radio-switch.css +148 -0
  37. package/src/pico/forms/_index.css +7 -0
  38. package/src/pico/forms/_input-color.css +17 -0
  39. package/src/pico/forms/_input-datetime.css +48 -0
  40. package/src/pico/forms/_input-file.css +26 -0
  41. package/src/pico/forms/_input-range.css +109 -0
  42. package/src/pico/forms/_input-search.css +58 -0
  43. package/src/pico/layout/_container.css +39 -0
  44. package/src/pico/layout/_document.css +36 -0
  45. package/src/pico/layout/_grid.css +19 -0
  46. package/src/pico/layout/_index.css +6 -0
  47. package/src/pico/layout/_landmarks.css +17 -0
  48. package/src/pico/layout/_overflow-auto.css +6 -0
  49. package/src/pico/layout/_section.css +6 -0
  50. package/src/pico/_components.css +0 -974
  51. package/src/pico/_content.css +0 -608
  52. package/src/pico/_forms.css +0 -747
  53. package/src/pico/_layout.css +0 -128
@@ -0,0 +1,3 @@
1
+ # prettier wraps the long :has() selector over several lines, and postcss-nested then
2
+ # emits an extra empty rule and repeats the multi-line selector in the built CSS.
3
+ src/standalone/forms/_float-label.theme.css
@@ -0,0 +1,92 @@
1
+
2
+ # Contributor Covenant 3.0 Code of Conduct
3
+
4
+ ## Our Pledge
5
+
6
+ We pledge to make our community welcoming, safe, and equitable for all.
7
+
8
+ We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant.
9
+
10
+ ## Encouraged Behaviors
11
+
12
+ While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language.
13
+
14
+ With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including:
15
+
16
+ 1. Respecting the **purpose of our community**, our activities, and our ways of gathering.
17
+ 2. Engaging **kindly and honestly** with others.
18
+ 3. Respecting **different viewpoints** and experiences.
19
+ 4. **Taking responsibility** for our actions and contributions.
20
+ 5. Gracefully giving and accepting **constructive feedback**.
21
+ 6. Committing to **repairing harm** when it occurs.
22
+ 7. Behaving in other ways that promote and sustain the **well-being of our community**.
23
+
24
+
25
+ ## Restricted Behaviors
26
+
27
+ We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct.
28
+
29
+ 1. **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop.
30
+ 2. **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people.
31
+ 3. **Stereotyping or discrimination.** Characterizing anyone’s personality or behavior on the basis of immutable identities or traits.
32
+ 4. **Sexualization.** Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community.
33
+ 5. **Violating confidentiality**. Sharing or acting on someone's personal or private information without their permission.
34
+ 6. **Endangerment.** Causing, encouraging, or threatening violence or other harm toward any person or group.
35
+ 7. Behaving in other ways that **threaten the well-being** of our community.
36
+
37
+ ### Other Restrictions
38
+
39
+ 1. **Misleading identity.** Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions.
40
+ 2. **Failing to credit sources.** Not properly crediting the sources of content you contribute.
41
+ 3. **Promotional materials**. Sharing marketing or other commercial content in a way that is outside the norms of the community.
42
+ 4. **Irresponsible communication.** Failing to responsibly present content which includes, links or describes any other restricted behaviors.
43
+
44
+
45
+ ## Reporting an Issue
46
+
47
+ Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm.
48
+
49
+ When an incident does occur, it is important to report it promptly. To report a possible violation, use **coc@any.digital**.
50
+
51
+ Community Moderators take reports of violations seriously and will make every effort to respond in a timely manner. They will investigate all reports of code of conduct violations, reviewing messages, logs, and recordings, or interviewing witnesses and other participants. Community Moderators will keep investigation and enforcement actions as transparent as possible while prioritizing safety and confidentiality. In order to honor these values, enforcement actions are carried out in private with the involved parties, but communicating to the whole community may be part of a mutually agreed upon resolution.
52
+
53
+
54
+ ## Addressing and Repairing Harm
55
+
56
+ ****
57
+
58
+ If an investigation by the Community Moderators finds that this Code of Conduct has been violated, the following enforcement ladder may be used to determine how best to repair harm, based on the incident's impact on the individuals involved and the community as a whole. Depending on the severity of a violation, lower rungs on the ladder may be skipped.
59
+
60
+ 1) Warning
61
+ 1) Event: A violation involving a single incident or series of incidents.
62
+ 2) Consequence: A private, written warning from the Community Moderators.
63
+ 3) Repair: Examples of repair include a private written apology, acknowledgement of responsibility, and seeking clarification on expectations.
64
+ 2) Temporarily Limited Activities
65
+ 1) Event: A repeated incidence of a violation that previously resulted in a warning, or the first incidence of a more serious violation.
66
+ 2) Consequence: A private, written warning with a time-limited cooldown period designed to underscore the seriousness of the situation and give the community members involved time to process the incident. The cooldown period may be limited to particular communication channels or interactions with particular community members.
67
+ 3) Repair: Examples of repair may include making an apology, using the cooldown period to reflect on actions and impact, and being thoughtful about re-entering community spaces after the period is over.
68
+ 3) Temporary Suspension
69
+ 1) Event: A pattern of repeated violation which the Community Moderators have tried to address with warnings, or a single serious violation.
70
+ 2) Consequence: A private written warning with conditions for return from suspension. In general, temporary suspensions give the person being suspended time to reflect upon their behavior and possible corrective actions.
71
+ 3) Repair: Examples of repair include respecting the spirit of the suspension, meeting the specified conditions for return, and being thoughtful about how to reintegrate with the community when the suspension is lifted.
72
+ 4) Permanent Ban
73
+ 1) Event: A pattern of repeated code of conduct violations that other steps on the ladder have failed to resolve, or a violation so serious that the Community Moderators determine there is no way to keep the community safe with this person as a member.
74
+ 2) Consequence: Access to all community spaces, tools, and communication channels is removed. In general, permanent bans should be rarely used, should have strong reasoning behind them, and should only be resorted to if working through other remedies has failed to change the behavior.
75
+ 3) Repair: There is no possible repair in cases of this severity.
76
+
77
+ This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community.
78
+
79
+
80
+ ## Scope
81
+
82
+ This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
83
+
84
+
85
+ ## Attribution
86
+
87
+ This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at [https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/).
88
+
89
+ Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/)
90
+
91
+ For answers to common questions about Contributor Covenant, see the FAQ at [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Translations are provided at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). Additional enforcement and community guideline resources can be found at [https://www.contributor-covenant.org/resources](https://www.contributor-covenant.org/resources). The enforcement ladder was inspired by the work of [Mozilla’s code of conduct team](https://github.com/mozilla/inclusion).
92
+
package/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  <!--section:summary-->
6
6
 
7
- <h1><b class="mark-brand">Minimal CSS Framework</b> <small>for</small> Semantic HTML</h1>
7
+ <h1><span class="mark-brand">Minimal CSS Framework</span> <small>for</small> Semantic HTML</h1>
8
8
 
9
- <big>Fully compatible and actively maintained successor to [Pico CSS](//blades.ninja/css/pico/).</big>
9
+ <big>Fully compatible and actively maintained successor to [Pico CSS](https://picocss.com/).</big>
10
10
 
11
11
  Introduces [float labels](//blades.ninja/css/float-label/), [breakout container](//blades.ninja/css/breakout/) and other modern, opt-out [helpers](//blades.ninja/#docs).
12
12
  Simply switch `pico.css` to `blades.css` OR use `blades.standalone.css` with other frameworks.
@@ -37,18 +37,20 @@ Simply switch `pico.css` to `blades.css` OR use `blades.standalone.css` with oth
37
37
  <link rel="stylesheet" href="css/blades.css" />
38
38
  ```
39
39
 
40
- ### <mark>B.</mark> Usage from CDN
40
+ ### <mark>B.</mark> Usage from CDN <!--{#cdn}-->
41
41
 
42
42
  <!--prettier-ignore-->
43
43
  ```html
44
44
  <link rel="stylesheet" href="
45
- https://cdn.jsdelivr.net/npm/@anyblades/blades@^3.0.0-0/css/blades.min.css
45
+ https://cdn.jsdelivr.net/npm/@anyblades/blades@3/css/blades.min.css
46
46
  "/>
47
47
  ```
48
48
 
49
49
  Live example: https://github.com/pallets/website/blob/main/src/pallets/templates/layout.html
50
50
 
51
- Full list of CSS files available on CDN: https://cdn.jsdelivr.net/npm/@anyblades/blades@^3.0.0-0/css/
51
+ Full list of CSS files available on CDN: https://cdn.jsdelivr.net/npm/@anyblades/blades@3/css/
52
+
53
+ `pico.layered.min.css` is Pico wrapped in `@layer pico { }`, so any unlayered styles of yours win over it without specificity fights. Note that inside a layer Pico's own `!important` declarations (form validation, reduced motion) beat your unlayered `!important`, and your `@keyframes` of the same name as Pico's win regardless of load order. When you can use `@import`, `@import url("…/pico.min.css") layer(pico);` does the same without this file.
52
54
 
53
55
  ### <mark>C.</mark> Install with NPM
54
56
 
@@ -72,13 +74,27 @@ Alternatively, import [standalone](//blades.ninja/css/standalone/) Blades CSS so
72
74
 
73
75
  Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://github.com/anyblades/buildawesome-micro-starters/blob/main/tailwind/styles.css
74
76
 
77
+ <div><hr></div>
78
+
79
+ Or import only the [Pico CSS](//blades.ninja/css/pico/) parts you need, e.g. per page or per component:
80
+
81
+ ```css
82
+ @import "@anyblades/blades/pico/variables";
83
+ @import "@anyblades/blades/pico/layout/document";
84
+ @import "@anyblades/blades/pico/content/typography";
85
+ @import "@anyblades/blades/pico/components/modal";
86
+ ```
87
+
88
+ - `variables` and `layout/document` are the minimum; keep the same order as [`src/pico/_index.css`](https://github.com/anyblades/blades/blob/main/src/pico/_index.css) (variables → layout → content → forms → components → utilities).
89
+ - Some parts build on others, e.g. `components/group` and `components/dropdown` expect `forms/basics` and `content/button`.
90
+ - Available parts are the files under [`src/pico/`](https://github.com/anyblades/blades/tree/main/src/pico): `layout/*`, `content/*`, `forms/*`, `components/*` (or a whole category, e.g. `@anyblades/blades/pico/components`) and `utilities`.
91
+
75
92
  ### <mark>D.</mark> Official starters
76
93
 
77
- - [11ty / Build Awesome Micro-Starter[s]](https://micro.build.blades.ninja/),
78
- including the best [Content-First Starter](//content.build.blades.ninja/)
79
- - [Grav CMS v2](https://getgrav.org/migrate-to-2#:~:text=blades) uses Blades CSS by default
80
- ([Quark2 theme](//github.com/getgrav/grav-theme-quark2#quark-2-theme:~:text=blades)
81
- & [Devtools plugin](//github.com/getgrav/grav-plugin-devtools#theme-scaffolding:~:text=blades))
94
+ - https://github.com/buildawesome-one/starter
95
+ - https://github.com/buildawesome-one/examples
96
+ - https://github.com/getgrav/grav-theme-quark2
97
+ - https://github.com/getgrav/grav-plugin-devtools
82
98
 
83
99
  ---
84
100
 
@@ -189,23 +205,32 @@ Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://g
189
205
 
190
206
  ---
191
207
 
192
- ## <sup style>Trusted by</sup><!-- DRY with featured -->
208
+ ## <sup style>Trusted by</sup>
193
209
 
194
- - <b hidden>🐍</b> [Flask & Jinja community website](https://palletsprojects.com/)
210
+ - 🐍 [Flask & Jinja](https://palletsprojects.com/) community website
211
+ - 🪐 [Grav CMS v2](https://getgrav.org/migrate-to-2#:~:text=blades) default theme [↗](https://www.followthatcar.com/)
212
+ <!--https://pulsar-wildlife.club/-->
195
213
 
196
214
  <!--section:info-->
197
215
 
198
- ## <sup style>Featured by</sup>
216
+ ## <sup style>Featured by</sup> <!-- [1] big projects [2] awesome [3] smaller projects [4] blogs/social -->
199
217
 
200
218
  - [getgrav.org](https://getgrav.org/migrate-to-2#:~:text=blades)
201
219
  - [@11ty/buildawesome](https://bsky.app/profile/11ty.dev/post/3mp75r53ccv2b) [↗](https://mastodon.social/@11ty@neighborhood.11ty.dev/116816881367741413)
202
- - [sveltiacms.app](https://sveltiacms.app/en/docs/start#:~:text=anyblades) <!--Z-A-->
203
- - [libhunt.com](https://www.libhunt.com/r/blades)
204
- - [context7.com](https://context7.com/anyblades/blades)
205
- - [awesome-css](https://github.com/uhub/awesome-css)
206
- - [awesome-css-frameworks](https://github.com/gabrielizalo/awesome-css-frameworks-and-ui-libraries/tree/master/Lightweight)
207
- - [@pauleveritt](https://fosstodon.org/@pauleveritt/116387278969347700)
220
+ - [<i class="fa-brands fa-build-awesome mark-brand"></i> buildawesome.one](https://buildawesome.one/#:~:text=blades)
221
+ - https://github.com/dbohdan/classless-css
222
+ - https://github.com/uhub/awesome-css
223
+ - [/gabrielizalo/awesome-css-frameworks](https://github.com/gabrielizalo/awesome-css-frameworks-and-ui-libraries/tree/master/Lightweight)
224
+ - https://github.com/eggplantpasta/greenroom
225
+ - [/adamdjbrett/11ty-wisp](https://github.com/adamdjbrett/11ty-wisp#features:~:text=blades) [↗](https://github.com/adamdjbrett/000000076#:~:text=blades)
226
+ - [doany.io](https://doany.io/en/posts/svelte-bun-sqlite/#on-biome-and-css)
227
+ - [@draupnerdata](https://www.youtube.com/watch?v=yDjArj9HSjs&t=180s)
208
228
  - [@cantdutchthis](https://news.ycombinator.com/item?id=48729467)
229
+ - [@daviding](https://www.reddit.com/r/Wordpress/comments/1vnfhkr/comment/p3k9z1c/#:~:text=blades)
230
+ - [@infotexture](https://mastodon.social/@infotexture@indieweb.social/117294194740314396)
231
+ - [@lazarus](https://fosstodon.org/@lazarus/117384358792615667)
232
+ - [@matthewmorete](https://bsky.app/profile/matthewmorete.com/post/3mx5wvywixc2l)
233
+ - [@pauleveritt](https://fosstodon.org/@pauleveritt/116387278969347700)
209
234
 
210
235
  <!--{.markerless .columns}-->
211
236
  <!--[hostfurl.com, @johnheenan]-->
@@ -213,6 +238,6 @@ Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://g
213
238
  ## <sup style>Credits</sup>
214
239
 
215
240
  - https://picocss.com/ for [inspiration](//blades.ninja/css/pico/)
216
- - https://11ty.dev/ for site generation
241
+ - https://11ty.dev/ for [site generation](//buildawesome.one/)
217
242
 
218
243
  <!--{.markerless}-->
package/css/blades.css CHANGED
@@ -2,14 +2,12 @@
2
2
  * Blades CSS v3 with Pico CSS 🥷✨
3
3
  * Copyright 2026 (https://blades.ninja/)
4
4
  * Licensed under MIT
5
- */
6
- /*!
5
+ *//*!
7
6
  * Blades CSS' Pico fork v2.5 🥷✨
8
7
  * Copyright 2019-2025 (https://picocss.com)
9
8
  * Copyright 2026 (https://blades.ninja/css/pico/)
10
9
  * Licensed under MIT
11
- */
12
- /**
10
+ *//**
13
11
  * Variables
14
12
  */
15
13
  :scope,
@@ -680,6 +678,7 @@ progress,
680
678
  [type="range"] {
681
679
  accent-color: var(--pico-primary);
682
680
  }
681
+
683
682
  /**
684
683
  * Document
685
684
  * Content-box & Responsive typography
@@ -741,7 +740,6 @@ body > footer {
741
740
  section {
742
741
  margin-bottom: var(--pico-block-spacing-vertical);
743
742
  }
744
-
745
743
  /**
746
744
  * Container
747
745
  */
@@ -781,7 +779,6 @@ section {
781
779
  max-width: 1450px;
782
780
  }
783
781
  }
784
-
785
782
  /**
786
783
  * Grid
787
784
  * Minimal grid system with auto-layout columns
@@ -801,7 +798,6 @@ section {
801
798
  min-width: 0;
802
799
  margin-bottom: 0; /* https://github.com/picocss/pico/issues/738 */
803
800
  }
804
-
805
801
  /**
806
802
  * Overflow auto
807
803
  */
@@ -1397,7 +1393,6 @@ figure figcaption {
1397
1393
  padding: calc(var(--pico-spacing) * 0.5) 0;
1398
1394
  color: var(--pico-muted-color);
1399
1395
  }
1400
-
1401
1396
  /**
1402
1397
  * Misc
1403
1398
  */
@@ -1417,6 +1412,7 @@ template {
1417
1412
  canvas {
1418
1413
  display: inline-block;
1419
1414
  }
1415
+
1420
1416
  /**
1421
1417
  * Basics form elements
1422
1418
  */
@@ -1901,7 +1897,6 @@ label:has([type="checkbox"], [type="radio"]) {
1901
1897
  [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
1902
1898
  --pico-border-color: var(--pico-form-element-invalid-border-color);
1903
1899
  }
1904
-
1905
1900
  /**
1906
1901
  * Input type color
1907
1902
  */
@@ -1919,7 +1914,6 @@ label:has([type="checkbox"], [type="radio"]) {
1919
1914
  border: 0;
1920
1915
  border-radius: calc(var(--pico-border-radius) * 0.5);
1921
1916
  }
1922
-
1923
1917
  /**
1924
1918
  * Input type datetime
1925
1919
  */
@@ -1968,7 +1962,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1968
1962
  :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1969
1963
  text-align: end;
1970
1964
  }
1971
-
1972
1965
  /**
1973
1966
  * Input type file
1974
1967
  */
@@ -1995,7 +1988,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1995
1988
  var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
1996
1989
  0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
1997
1990
  }
1998
-
1999
1991
  /**
2000
1992
  * Input type range
2001
1993
  */
@@ -2105,7 +2097,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
2105
2097
  [type="range"]:active::-ms-thumb {
2106
2098
  transform: scale(1.25);
2107
2099
  }
2108
-
2109
2100
  /**
2110
2101
  * Input type search
2111
2102
  */
@@ -2238,7 +2229,6 @@ details[open] > summary::after {
2238
2229
  float: left;
2239
2230
  background-position: left center;
2240
2231
  }
2241
-
2242
2232
  /**
2243
2233
  * Card (<article>)
2244
2234
  */
@@ -2270,7 +2260,6 @@ article > footer {
2270
2260
  border-bottom-right-radius: var(--pico-border-radius);
2271
2261
  border-bottom-left-radius: var(--pico-border-radius);
2272
2262
  }
2273
-
2274
2263
  /**
2275
2264
  * Dropdown (details.dropdown)
2276
2265
  */
@@ -2618,7 +2607,6 @@ label > details.dropdown {
2618
2607
  border-top-right-radius: 5rem;
2619
2608
  border-bottom-right-radius: 5rem;
2620
2609
  }
2621
-
2622
2610
  /**
2623
2611
  * Loading ([aria-busy=true])
2624
2612
  */
@@ -2969,6 +2957,7 @@ progress::-moz-progress-bar {
2969
2957
  background-position: -200% 0;
2970
2958
  }
2971
2959
  }
2960
+
2972
2961
  /**
2973
2962
  * Tooltip ([data-tooltip])
2974
2963
  */
@@ -3148,27 +3137,6 @@ progress::-moz-progress-bar {
3148
3137
  cursor: not-allowed;
3149
3138
  }
3150
3139
 
3151
- [aria-hidden="false"][hidden] {
3152
- display: initial;
3153
- }
3154
-
3155
- [aria-hidden="false"][hidden]:not(:focus) {
3156
- clip: rect(0, 0, 0, 0);
3157
- position: absolute;
3158
- }
3159
-
3160
- a,
3161
- area,
3162
- button,
3163
- input,
3164
- label,
3165
- select,
3166
- summary,
3167
- textarea,
3168
- [tabindex] {
3169
- -ms-touch-action: manipulation;
3170
- }
3171
-
3172
3140
  [dir="rtl"] {
3173
3141
  direction: rtl;
3174
3142
  }
@@ -3220,6 +3188,7 @@ textarea,
3220
3188
  }
3221
3189
 
3222
3190
  /* Layout */
3191
+
3223
3192
  /*
3224
3193
  \3c !--section:code-->
3225
3194
  ```css */
@@ -3386,7 +3355,6 @@ Useful for tables of contents and long lists.
3386
3355
  bottom: 0;
3387
3356
  padding-top: 50vh;
3388
3357
  }
3389
-
3390
3358
  /* Content */
3391
3359
  /*\3c !--section:docs-->
3392
3360
 
@@ -3650,6 +3618,7 @@ code[data-caption]::before {
3650
3618
  }
3651
3619
 
3652
3620
  /* Forms */
3621
+
3653
3622
  /*!
3654
3623
  * Float Label CSS v2 by Blades CSS 🥷🏷️
3655
3624
  * Copyright 2016–2026 (https://blades.ninja/css/float-label/)
@@ -3750,7 +3719,6 @@ The `:has(*:placeholder-shown:not(:focus))` trick allows this input state inform
3750
3719
  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.
3751
3720
 
3752
3721
  */
3753
-
3754
3722
  /* Components */
3755
3723
  /* Extends https://github.com/picocss/pico/blob/main/scss/content/_link.scss
3756
3724
  \3c !--section:code-->
@@ -3830,7 +3798,6 @@ dl.timeline dd, .has-timeline > dl dd {
3830
3798
  padding: 0.25rem 0 0.75rem 1rem;
3831
3799
  border-inline-start: 0.25rem solid var(--blades-timeline-border-color);
3832
3800
  }
3833
-
3834
3801
  /* Utilities */
3835
3802
  /*\3c !--section:docs-->
3836
3803
 
@@ -3926,7 +3893,6 @@ label:has(> span):has(input:not([type="checkbox"], [type="radio"], [type="range"
3926
3893
  .has-float-label:has(*:placeholder-shown:not(:focus)) label {
3927
3894
  padding-block: 0.75rem; /* match Pico */
3928
3895
  }
3929
-
3930
3896
  html {
3931
3897
  /* Prevent horizontal overflow and scrolling, modern way. */
3932
3898
  overflow-x: clip;
@@ -106,7 +106,7 @@ button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus
106
106
  button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus
107
107
  ) select{border-color:transparent}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus),[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-input)}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) button,[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) button{--pico-button-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-border);--pico-button-hover-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-hover-border)}[role=group] [role=button]:focus,[role=group] [type=button]:focus,[role=group] [type=reset]:focus,[role=group] [type=submit]:focus,[role=group] button:focus,[role=search] [role=button]:focus,[role=search] [type=button]:focus,[role=search] [type=reset]:focus,[role=search] [type=submit]:focus,[role=search] button:focus{box-shadow:none}}[role=search]>:first-child{border-top-left-radius:5rem;border-bottom-left-radius:5rem}[role=search]>:last-child{border-top-right-radius:5rem;border-bottom-right-radius:5rem}[aria-busy=true]:not(input,select,textarea,html,form){white-space:nowrap}[aria-busy=true]:not(input,select,textarea,html,form)::before{display:inline-block;width:1em;height:1em;background-image:var(--pico-icon-loading);background-size:1em auto;background-repeat:no-repeat;content:"";vertical-align:-.125em}[aria-busy=true]:not(input,select,textarea,html,form):not(:empty)::before{margin-inline-end:calc(var(--pico-spacing) * .5)}[aria-busy=true]:not(input,select,textarea,html,form):empty{text-align:center}[role=button][aria-busy=true],[type=button][aria-busy=true],[type=reset][aria-busy=true],[type=submit][aria-busy=true],a[aria-busy=true],button[aria-busy=true]{pointer-events:none}:host,:scope{--pico-scrollbar-width:0px}dialog{display:flex;z-index:999;position:fixed;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;width:inherit;min-width:100%;height:inherit;min-height:100%;padding:0;border:0;backdrop-filter:var(--pico-modal-overlay-backdrop-filter);background-color:var(--pico-modal-overlay-background-color);color:var(--pico-color)}dialog>article{width:100%;max-height:calc(100vh - var(--pico-spacing) * 2);margin:var(--pico-spacing);overflow:auto}@media (min-width:576px){dialog>article{max-width:510px}}@media (min-width:768px){dialog>article{max-width:700px}}dialog>article>header>*{margin-bottom:0}dialog>article>header .close,dialog>article>header :is(a,button)[rel=prev]{margin:0;margin-left:var(--pico-spacing);padding:0;float:right}dialog>article>footer{text-align:end}dialog>article>footer [role=button],dialog>article>footer button{margin-bottom:0}dialog>article>footer [role=button]:not(:first-of-type),dialog>article>footer button:not(:first-of-type){margin-left:calc(var(--pico-spacing) * .5)}dialog>article .close,dialog>article :is(a,button)[rel=prev]{display:block;width:1rem;height:1rem;margin-top:calc(var(--pico-spacing) * -1);margin-bottom:var(--pico-spacing);margin-left:auto;border:none;background-image:var(--pico-icon-close);background-position:center;background-size:auto 1rem;background-repeat:no-repeat;background-color:transparent;opacity:.5;transition:opacity var(--pico-transition)}dialog>article .close:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),dialog>article :is(a,button)[rel=prev]:is(
108
108
  [aria-current]:not([aria-current=false]),:hover,:active,:focus
109
- ){opacity:1}dialog:not([open]),dialog[open=false]{display:none}.modal-is-open{padding-right:var(--pico-scrollbar-width,0);overflow:hidden;pointer-events:none;touch-action:none}.modal-is-open dialog{pointer-events:auto;touch-action:auto}:where(.modal-is-opening,.modal-is-closing) dialog,:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:both}:where(.modal-is-opening,.modal-is-closing) dialog{animation-duration:.8s;animation-name:modal-overlay}:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-delay:.2s;animation-name:modal}.modal-is-closing dialog,.modal-is-closing dialog>article{animation-delay:0s;animation-direction:reverse}@keyframes modal-overlay{from{backdrop-filter:none;background-color:transparent}}@keyframes modal{from{transform:translateY(-100%);opacity:0}}:where(nav li)::before{float:left;content:"​"}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav li{display:inline-block;margin:0;padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal)}nav li :where(a,[role=link]){display:inline-block;margin:calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);border-radius:var(--pico-border-radius)}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li [type=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-right:inherit;margin-bottom:0;margin-left:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical) * -1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal) * -1)}nav[aria-label=breadcrumb] ul li:not(:last-child)::after{display:inline-block;position:absolute;width:calc(var(--pico-nav-link-spacing-horizontal) * 4);margin:0 calc(var(--pico-nav-link-spacing-horizontal) * -1);content:var(--pico-nav-breadcrumb-divider);color:var(--pico-muted-color);text-align:center;text-decoration:none;white-space:nowrap}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){background-color:transparent;color:inherit;text-decoration:none;pointer-events:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical) * .5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child)::after{content:"\\"}progress{display:inline-block;vertical-align:baseline}progress{-webkit-appearance:none;-moz-appearance:none;display:inline-block;appearance:none;width:100%;height:.5rem;margin-bottom:calc(var(--pico-spacing) * .5);overflow:hidden;border:0;border-radius:var(--pico-border-radius);background-color:var(--pico-progress-background-color);color:var(--pico-progress-color)}progress::-webkit-progress-bar{border-radius:var(--pico-border-radius);background:0 0}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat;animation:progress-indeterminate 1s linear infinite}progress:indeterminate[value]::-webkit-progress-value{background-color:transparent}progress:indeterminate::-moz-progress-bar{background-color:transparent}}@media (prefers-reduced-motion:no-preference){[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}100%{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input,[role=button]){border-bottom:1px dotted;text-decoration:none;cursor:help}[data-tooltip]::after,[data-tooltip]::before,[data-tooltip][data-placement=top]::after,[data-tooltip][data-placement=top]::before{display:block;z-index:99;position:absolute;bottom:100%;left:50%;padding:.25rem .5rem;overflow:hidden;transform:translate(-50%,-.25rem);border-radius:var(--pico-border-radius);background:var(--pico-tooltip-background-color);content:attr(data-tooltip);color:var(--pico-tooltip-color);font-style:normal;font-weight:var(--pico-font-weight);font-size:.875rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;opacity:0;pointer-events:none}[data-tooltip]::after,[data-tooltip][data-placement=top]::after{padding:0;transform:translate(-50%,0);border-top:.3rem solid;border-right:.3rem solid transparent;border-left:.3rem solid transparent;border-radius:0;background-color:transparent;content:"";color:var(--pico-tooltip-background-color)}[data-tooltip][data-placement=bottom]::after,[data-tooltip][data-placement=bottom]::before{top:100%;bottom:auto;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{transform:translate(-50%,-.3rem);border:.3rem solid transparent;border-bottom:.3rem solid}[data-tooltip][data-placement=left]::after,[data-tooltip][data-placement=left]::before{top:50%;right:100%;bottom:auto;left:auto;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{transform:translate(.3rem,-50%);border:.3rem solid transparent;border-left:.3rem solid}[data-tooltip][data-placement=right]::after,[data-tooltip][data-placement=right]::before{top:50%;right:auto;bottom:auto;left:100%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{transform:translate(-.3rem,-50%);border:.3rem solid transparent;border-right:.3rem solid}[data-tooltip]:focus::after,[data-tooltip]:focus::before,[data-tooltip]:hover::after,[data-tooltip]:hover::before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus::after,[data-tooltip]:focus::before,[data-tooltip]:hover::after,[data-tooltip]:hover::before{--pico-tooltip-slide-to:translate(-50%, -0.25rem);transform:translate(-50%,.75rem);animation-duration:.2s;animation-fill-mode:forwards;animation-name:tooltip-slide;opacity:0}[data-tooltip]:focus::after,[data-tooltip]:hover::after{--pico-tooltip-caret-slide-to:translate(-50%, 0rem);transform:translate(-50%,-.25rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=bottom]:focus::after,[data-tooltip][data-placement=bottom]:focus::before,[data-tooltip][data-placement=bottom]:hover::after,[data-tooltip][data-placement=bottom]:hover::before{--pico-tooltip-slide-to:translate(-50%, 0.25rem);transform:translate(-50%,-.75rem);animation-name:tooltip-slide}[data-tooltip][data-placement=bottom]:focus::after,[data-tooltip][data-placement=bottom]:hover::after{--pico-tooltip-caret-slide-to:translate(-50%, -0.3rem);transform:translate(-50%,-.5rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=left]:focus::after,[data-tooltip][data-placement=left]:focus::before,[data-tooltip][data-placement=left]:hover::after,[data-tooltip][data-placement=left]:hover::before{--pico-tooltip-slide-to:translate(-0.25rem, -50%);transform:translate(.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=left]:focus::after,[data-tooltip][data-placement=left]:hover::after{--pico-tooltip-caret-slide-to:translate(0.3rem, -50%);transform:translate(.05rem,-50%);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=right]:focus::after,[data-tooltip][data-placement=right]:focus::before,[data-tooltip][data-placement=right]:hover::after,[data-tooltip][data-placement=right]:hover::before{--pico-tooltip-slide-to:translate(0.25rem, -50%);transform:translate(-.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=right]:focus::after,[data-tooltip][data-placement=right]:hover::after{--pico-tooltip-caret-slide-to:translate(-0.3rem, -50%);transform:translate(-.05rem,-50%);animation-name:tooltip-caret-slide}}@keyframes tooltip-slide{to{transform:var(--pico-tooltip-slide-to);opacity:1}}@keyframes tooltip-caret-slide{50%{opacity:0}to{transform:var(--pico-tooltip-caret-slide-to);opacity:1}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true])::after,:not([aria-busy=true])::before,:not([aria-busy=true]):not(.unreduce-motion){background-attachment:initial!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}/*!
109
+ ){opacity:1}dialog:not([open]),dialog[open=false]{display:none}.modal-is-open{padding-right:var(--pico-scrollbar-width,0);overflow:hidden;pointer-events:none;touch-action:none}.modal-is-open dialog{pointer-events:auto;touch-action:auto}:where(.modal-is-opening,.modal-is-closing) dialog,:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:both}:where(.modal-is-opening,.modal-is-closing) dialog{animation-duration:.8s;animation-name:modal-overlay}:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-delay:.2s;animation-name:modal}.modal-is-closing dialog,.modal-is-closing dialog>article{animation-delay:0s;animation-direction:reverse}@keyframes modal-overlay{from{backdrop-filter:none;background-color:transparent}}@keyframes modal{from{transform:translateY(-100%);opacity:0}}:where(nav li)::before{float:left;content:"​"}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav li{display:inline-block;margin:0;padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal)}nav li :where(a,[role=link]){display:inline-block;margin:calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);border-radius:var(--pico-border-radius)}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li [type=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-right:inherit;margin-bottom:0;margin-left:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical) * -1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal) * -1)}nav[aria-label=breadcrumb] ul li:not(:last-child)::after{display:inline-block;position:absolute;width:calc(var(--pico-nav-link-spacing-horizontal) * 4);margin:0 calc(var(--pico-nav-link-spacing-horizontal) * -1);content:var(--pico-nav-breadcrumb-divider);color:var(--pico-muted-color);text-align:center;text-decoration:none;white-space:nowrap}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){background-color:transparent;color:inherit;text-decoration:none;pointer-events:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical) * .5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child)::after{content:"\\"}progress{display:inline-block;vertical-align:baseline}progress{-webkit-appearance:none;-moz-appearance:none;display:inline-block;appearance:none;width:100%;height:.5rem;margin-bottom:calc(var(--pico-spacing) * .5);overflow:hidden;border:0;border-radius:var(--pico-border-radius);background-color:var(--pico-progress-background-color);color:var(--pico-progress-color)}progress::-webkit-progress-bar{border-radius:var(--pico-border-radius);background:0 0}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat;animation:progress-indeterminate 1s linear infinite}progress:indeterminate[value]::-webkit-progress-value{background-color:transparent}progress:indeterminate::-moz-progress-bar{background-color:transparent}}@media (prefers-reduced-motion:no-preference){[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}100%{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input,[role=button]){border-bottom:1px dotted;text-decoration:none;cursor:help}[data-tooltip]::after,[data-tooltip]::before,[data-tooltip][data-placement=top]::after,[data-tooltip][data-placement=top]::before{display:block;z-index:99;position:absolute;bottom:100%;left:50%;padding:.25rem .5rem;overflow:hidden;transform:translate(-50%,-.25rem);border-radius:var(--pico-border-radius);background:var(--pico-tooltip-background-color);content:attr(data-tooltip);color:var(--pico-tooltip-color);font-style:normal;font-weight:var(--pico-font-weight);font-size:.875rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;opacity:0;pointer-events:none}[data-tooltip]::after,[data-tooltip][data-placement=top]::after{padding:0;transform:translate(-50%,0);border-top:.3rem solid;border-right:.3rem solid transparent;border-left:.3rem solid transparent;border-radius:0;background-color:transparent;content:"";color:var(--pico-tooltip-background-color)}[data-tooltip][data-placement=bottom]::after,[data-tooltip][data-placement=bottom]::before{top:100%;bottom:auto;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{transform:translate(-50%,-.3rem);border:.3rem solid transparent;border-bottom:.3rem solid}[data-tooltip][data-placement=left]::after,[data-tooltip][data-placement=left]::before{top:50%;right:100%;bottom:auto;left:auto;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{transform:translate(.3rem,-50%);border:.3rem solid transparent;border-left:.3rem solid}[data-tooltip][data-placement=right]::after,[data-tooltip][data-placement=right]::before{top:50%;right:auto;bottom:auto;left:100%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{transform:translate(-.3rem,-50%);border:.3rem solid transparent;border-right:.3rem solid}[data-tooltip]:focus::after,[data-tooltip]:focus::before,[data-tooltip]:hover::after,[data-tooltip]:hover::before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus::after,[data-tooltip]:focus::before,[data-tooltip]:hover::after,[data-tooltip]:hover::before{--pico-tooltip-slide-to:translate(-50%, -0.25rem);transform:translate(-50%,.75rem);animation-duration:.2s;animation-fill-mode:forwards;animation-name:tooltip-slide;opacity:0}[data-tooltip]:focus::after,[data-tooltip]:hover::after{--pico-tooltip-caret-slide-to:translate(-50%, 0rem);transform:translate(-50%,-.25rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=bottom]:focus::after,[data-tooltip][data-placement=bottom]:focus::before,[data-tooltip][data-placement=bottom]:hover::after,[data-tooltip][data-placement=bottom]:hover::before{--pico-tooltip-slide-to:translate(-50%, 0.25rem);transform:translate(-50%,-.75rem);animation-name:tooltip-slide}[data-tooltip][data-placement=bottom]:focus::after,[data-tooltip][data-placement=bottom]:hover::after{--pico-tooltip-caret-slide-to:translate(-50%, -0.3rem);transform:translate(-50%,-.5rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=left]:focus::after,[data-tooltip][data-placement=left]:focus::before,[data-tooltip][data-placement=left]:hover::after,[data-tooltip][data-placement=left]:hover::before{--pico-tooltip-slide-to:translate(-0.25rem, -50%);transform:translate(.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=left]:focus::after,[data-tooltip][data-placement=left]:hover::after{--pico-tooltip-caret-slide-to:translate(0.3rem, -50%);transform:translate(.05rem,-50%);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=right]:focus::after,[data-tooltip][data-placement=right]:focus::before,[data-tooltip][data-placement=right]:hover::after,[data-tooltip][data-placement=right]:hover::before{--pico-tooltip-slide-to:translate(0.25rem, -50%);transform:translate(-.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=right]:focus::after,[data-tooltip][data-placement=right]:hover::after{--pico-tooltip-caret-slide-to:translate(-0.3rem, -50%);transform:translate(-.05rem,-50%);animation-name:tooltip-caret-slide}}@keyframes tooltip-slide{to{transform:var(--pico-tooltip-slide-to);opacity:1}}@keyframes tooltip-caret-slide{50%{opacity:0}to{transform:var(--pico-tooltip-caret-slide-to);opacity:1}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true])::after,:not([aria-busy=true])::before,:not([aria-busy=true]):not(.unreduce-motion){background-attachment:initial!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}/*!
110
110
  * Blades CSS standalone kit v3 🥷
111
111
  * Copyright 2026 (https://blades.ninja/css/standalone/)
112
112
  * Licensed under MIT
@@ -29,6 +29,7 @@
29
29
  }
30
30
 
31
31
  /* Layout */
32
+
32
33
  /*
33
34
  \3c !--section:code-->
34
35
  ```css */
@@ -195,7 +196,6 @@ Useful for tables of contents and long lists.
195
196
  bottom: 0;
196
197
  padding-top: 50vh;
197
198
  }
198
-
199
199
  /* Content */
200
200
  /*\3c !--section:docs-->
201
201
 
@@ -459,6 +459,7 @@ code[data-caption]::before {
459
459
  }
460
460
 
461
461
  /* Forms */
462
+
462
463
  /*!
463
464
  * Float Label CSS v2 by Blades CSS 🥷🏷️
464
465
  * Copyright 2016–2026 (https://blades.ninja/css/float-label/)
@@ -559,7 +560,6 @@ The `:has(*:placeholder-shown:not(:focus))` trick allows this input state inform
559
560
  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.
560
561
 
561
562
  */
562
-
563
563
  /* Components */
564
564
  /* Extends https://github.com/picocss/pico/blob/main/scss/content/_link.scss
565
565
  \3c !--section:code-->
@@ -639,7 +639,6 @@ dl.timeline dd, .has-timeline > dl dd {
639
639
  padding: 0.25rem 0 0.75rem 1rem;
640
640
  border-inline-start: 0.25rem solid var(--blades-timeline-border-color);
641
641
  }
642
-
643
642
  /* Utilities */
644
643
  /*\3c !--section:docs-->
645
644
 
@@ -735,7 +734,6 @@ label:has(> span):has(input:not([type="checkbox"], [type="radio"], [type="range"
735
734
  .has-float-label:has(*:placeholder-shown:not(:focus)) label {
736
735
  padding-block: 0.75rem; /* match Pico */
737
736
  }
738
-
739
737
  html {
740
738
  /* Prevent horizontal overflow and scrolling, modern way. */
741
739
  overflow-x: clip;