@anyblades/blades 3.0.0-alpha.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CODE_OF_CONDUCT.md +92 -0
- package/README.md +15 -13
- package/css/blades.css +9 -11
- package/css/blades.min.css +1 -1
- package/css/blades.standalone.css +5 -7
- package/css/blades.standalone.min.css +1 -1
- package/css/pico.conditional.css +3 -2
- package/css/pico.css +3 -2
- package/package.json +1 -1
- package/src/standalone/layout/_breakout.css +2 -2
|
@@ -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,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<!--section:summary-->
|
|
6
6
|
|
|
7
|
-
<h1><
|
|
7
|
+
<h1><b class="mark-brand">Minimal CSS Framework</b> <small>for</small> Semantic HTML</h1>
|
|
8
8
|
|
|
9
9
|
<big>Fully compatible and actively maintained successor to [Pico CSS](//blades.ninja/css/pico/).</big>
|
|
10
10
|
|
|
@@ -56,7 +56,7 @@ Full list of CSS files available on CDN: https://cdn.jsdelivr.net/npm/@anyblades
|
|
|
56
56
|
npm install @anyblades/blades
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Then, `@import`
|
|
59
|
+
Then, `@import` sources into your CSS file:
|
|
60
60
|
|
|
61
61
|
```css
|
|
62
62
|
@import "@anyblades/blades";
|
|
@@ -74,11 +74,10 @@ Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://g
|
|
|
74
74
|
|
|
75
75
|
### <mark>D.</mark> Official starters
|
|
76
76
|
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
-
|
|
80
|
-
|
|
81
|
-
& [Devtools plugin](//github.com/getgrav/grav-plugin-devtools#theme-scaffolding:~:text=blades))
|
|
77
|
+
- https://github.com/buildawesome-one/starter
|
|
78
|
+
- https://github.com/buildawesome-one/examples
|
|
79
|
+
- https://github.com/getgrav/grav-theme-quark2
|
|
80
|
+
- https://github.com/getgrav/grav-plugin-devtools
|
|
82
81
|
|
|
83
82
|
---
|
|
84
83
|
|
|
@@ -104,7 +103,7 @@ Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://g
|
|
|
104
103
|
|
|
105
104
|
### Dynamic templates
|
|
106
105
|
|
|
107
|
-
[Available for Nunjucks,
|
|
106
|
+
[Available for Nunjucks, Liquid and Twig ↗](https://blades.ninja/tpl/)<!--{role=button .outline}-->
|
|
108
107
|
|
|
109
108
|
<!--section:gh-only-->
|
|
110
109
|
|
|
@@ -189,23 +188,26 @@ Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://g
|
|
|
189
188
|
|
|
190
189
|
---
|
|
191
190
|
|
|
192
|
-
## <sup style>Trusted by</sup
|
|
191
|
+
## <sup style>Trusted by</sup>
|
|
193
192
|
|
|
194
|
-
-
|
|
193
|
+
- 🐍 [Flask & Jinja](https://palletsprojects.com/) community website
|
|
194
|
+
- 🪐 [Grav CMS v2](https://getgrav.org/migrate-to-2#:~:text=blades) default theme
|
|
195
195
|
|
|
196
196
|
<!--section:info-->
|
|
197
197
|
|
|
198
|
-
## <sup style>Featured by</sup>
|
|
198
|
+
## <sup style>Featured by</sup> <!-- Z-A after 11ty -->
|
|
199
199
|
|
|
200
200
|
- [getgrav.org](https://getgrav.org/migrate-to-2#:~:text=blades)
|
|
201
201
|
- [@11ty/buildawesome](https://bsky.app/profile/11ty.dev/post/3mp75r53ccv2b) [↗](https://mastodon.social/@11ty@neighborhood.11ty.dev/116816881367741413)
|
|
202
|
-
- [
|
|
202
|
+
- [<i class="fa-brands fa-build-awesome mark-brand"></i> buildawesome.one](https://buildawesome.one/#:~:text=blades)
|
|
203
203
|
- [libhunt.com](https://www.libhunt.com/r/blades)
|
|
204
204
|
- [context7.com](https://context7.com/anyblades/blades)
|
|
205
205
|
- [awesome-css](https://github.com/uhub/awesome-css)
|
|
206
206
|
- [awesome-css-frameworks](https://github.com/gabrielizalo/awesome-css-frameworks-and-ui-libraries/tree/master/Lightweight)
|
|
207
207
|
- [@pauleveritt](https://fosstodon.org/@pauleveritt/116387278969347700)
|
|
208
|
+
- [@daviding](https://www.reddit.com/r/Wordpress/comments/1vnfhkr/comment/p3k9z1c/#:~:text=blades)
|
|
208
209
|
- [@cantdutchthis](https://news.ycombinator.com/item?id=48729467)
|
|
210
|
+
- [@adamdjbrett](https://github.com/adamdjbrett/11ty-wisp#features:~:text=blades)
|
|
209
211
|
|
|
210
212
|
<!--{.markerless .columns}-->
|
|
211
213
|
<!--[hostfurl.com, @johnheenan]-->
|
|
@@ -213,6 +215,6 @@ Live example using <i class="fa-brands fa-tailwind-css"></i> Tailwind: https://g
|
|
|
213
215
|
## <sup style>Credits</sup>
|
|
214
216
|
|
|
215
217
|
- https://picocss.com/ for [inspiration](//blades.ninja/css/pico/)
|
|
216
|
-
- https://11ty.dev/ for site generation
|
|
218
|
+
- https://11ty.dev/ for [site generation](//buildawesome.one/)
|
|
217
219
|
|
|
218
220
|
<!--{.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
|
|
@@ -1417,6 +1416,7 @@ template {
|
|
|
1417
1416
|
canvas {
|
|
1418
1417
|
display: inline-block;
|
|
1419
1418
|
}
|
|
1419
|
+
|
|
1420
1420
|
/**
|
|
1421
1421
|
* Basics form elements
|
|
1422
1422
|
*/
|
|
@@ -3220,6 +3220,7 @@ textarea,
|
|
|
3220
3220
|
}
|
|
3221
3221
|
|
|
3222
3222
|
/* Layout */
|
|
3223
|
+
|
|
3223
3224
|
/*
|
|
3224
3225
|
\3c !--section:code-->
|
|
3225
3226
|
```css */
|
|
@@ -3296,17 +3297,17 @@ textarea,
|
|
|
3296
3297
|
|
|
3297
3298
|
/* @TODO: add to tricks-wiki why `*` works here, but `&` fails */
|
|
3298
3299
|
|
|
3299
|
-
.breakout-all > *:is(h2, h3, h4, h5, h6):not([class]):where(hr + *)::before {
|
|
3300
|
+
.breakout-all > *:is(h2, h3, h4, h5, h6):not([class]):where(hr:not([class]) + *)::before {
|
|
3300
3301
|
display: none !important;
|
|
3301
3302
|
}
|
|
3302
3303
|
|
|
3303
|
-
.breakout-all > *:is(hr) {
|
|
3304
|
+
.breakout-all > *:is(hr):not([class]) {
|
|
3304
3305
|
height: 0.5rem;
|
|
3305
3306
|
overflow: visible;
|
|
3306
3307
|
border: none;
|
|
3307
3308
|
}
|
|
3308
3309
|
|
|
3309
|
-
.breakout-all > *:is(hr)::before {
|
|
3310
|
+
.breakout-all > *:is(hr):not([class])::before {
|
|
3310
3311
|
left: 50%;
|
|
3311
3312
|
width: 100dvw;
|
|
3312
3313
|
height: 100%;
|
|
@@ -3386,7 +3387,6 @@ Useful for tables of contents and long lists.
|
|
|
3386
3387
|
bottom: 0;
|
|
3387
3388
|
padding-top: 50vh;
|
|
3388
3389
|
}
|
|
3389
|
-
|
|
3390
3390
|
/* Content */
|
|
3391
3391
|
/*\3c !--section:docs-->
|
|
3392
3392
|
|
|
@@ -3650,6 +3650,7 @@ code[data-caption]::before {
|
|
|
3650
3650
|
}
|
|
3651
3651
|
|
|
3652
3652
|
/* Forms */
|
|
3653
|
+
|
|
3653
3654
|
/*!
|
|
3654
3655
|
* Float Label CSS v2 by Blades CSS 🥷🏷️
|
|
3655
3656
|
* Copyright 2016–2026 (https://blades.ninja/css/float-label/)
|
|
@@ -3750,7 +3751,6 @@ The `:has(*:placeholder-shown:not(:focus))` trick allows this input state inform
|
|
|
3750
3751
|
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
3752
|
|
|
3752
3753
|
*/
|
|
3753
|
-
|
|
3754
3754
|
/* Components */
|
|
3755
3755
|
/* Extends https://github.com/picocss/pico/blob/main/scss/content/_link.scss
|
|
3756
3756
|
\3c !--section:code-->
|
|
@@ -3830,7 +3830,6 @@ dl.timeline dd, .has-timeline > dl dd {
|
|
|
3830
3830
|
padding: 0.25rem 0 0.75rem 1rem;
|
|
3831
3831
|
border-inline-start: 0.25rem solid var(--blades-timeline-border-color);
|
|
3832
3832
|
}
|
|
3833
|
-
|
|
3834
3833
|
/* Utilities */
|
|
3835
3834
|
/*\3c !--section:docs-->
|
|
3836
3835
|
|
|
@@ -3926,7 +3925,6 @@ label:has(> span):has(input:not([type="checkbox"], [type="radio"], [type="range"
|
|
|
3926
3925
|
.has-float-label:has(*:placeholder-shown:not(:focus)) label {
|
|
3927
3926
|
padding-block: 0.75rem; /* match Pico */
|
|
3928
3927
|
}
|
|
3929
|
-
|
|
3930
3928
|
html {
|
|
3931
3929
|
/* Prevent horizontal overflow and scrolling, modern way. */
|
|
3932
3930
|
overflow-x: clip;
|
package/css/blades.min.css
CHANGED
|
@@ -118,7 +118,7 @@ button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus
|
|
|
118
118
|
table,pre,figure,video,iframe,canvas,img,picture,.breakout-item,.breakout-item-max
|
|
119
119
|
),.breakout>:is(
|
|
120
120
|
table,pre,figure,video,iframe,canvas,img,picture,.breakout-item,.breakout-item-max
|
|
121
|
-
){width:-moz-fit-content;width:fit-content;min-width:100%;max-width:min(125%,100dvw);margin-left:50%;transform:translateX(-50%)}.breakout-all>:is(img,picture):not(.does-not-exist),.breakout>:is(img,picture):not(.does-not-exist){min-width:auto}.breakout-all>.breakout-item-max,.breakout>.breakout-item-max{width:min(125%,100dvw)!important}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class]){position:relative}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class])::before{display:block;position:absolute;background:gray;content:"";opacity:12.5%}.breakout-all>:is(h2,h3,h4,h5,h6):not([class])::before{top:50%;right:100%;width:10em;height:.25em;margin-right:.8ch;transform:translateY(-50%);background:linear-gradient(to left,gray,transparent)}.breakout-all>:is(h2,h3,h4,h5,h6):not([class]):where(hr + *)::before{display:none!important}.breakout-all>:is(hr){height:.5rem;overflow:visible;border:none}.breakout-all>:is(hr)::before{left:50%;width:100dvw;height:100%;transform:translateX(-50%)}.columns{-moz-columns:25ch auto;columns:25ch auto}.columns>*{-moz-column-break-inside:avoid;break-inside:avoid}[href="#top"]{position:fixed;right:0;bottom:0;padding-top:50vh}h1,h2,h3,h4,h5,h6{position:relative}h1 a[aria-hidden=true],h2 a[aria-hidden=true],h3 a[aria-hidden=true],h4 a[aria-hidden=true],h5 a[aria-hidden=true],h6 a[aria-hidden=true]{visibility:hidden;position:absolute;top:50%;right:100%;padding-right:.2ch;transform:translateY(-50%);color:silver;text-decoration:none}@media (hover:hover){h1:hover a[aria-hidden=true],h2:hover a[aria-hidden=true],h3:hover a[aria-hidden=true],h4:hover a[aria-hidden=true],h5:hover a[aria-hidden=true],h6:hover a[aria-hidden=true]{visibility:visible}}ol[style*="--list-marker:"],ul[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol[style*="--list-marker:"]>li,ul[style*="--list-marker:"]>li{list-style-type:inherit}ol li[style*="--list-marker:"],ul li[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol li[data-marker]::marker,ul li[data-marker]::marker{content:attr(data-marker) " "}ol.markerless,ul.markerless{padding-inline-start:1.25rem}ol.markerless li,ul.markerless li{list-style:none}.unlist-all ol,.unlist-all ul,ol.unlist,ol.unlist-all,ul.unlist,ul.unlist-all{padding-inline-start:0}.unlist-all ol>li,.unlist-all ul>li,ol.unlist-all>li,ol.unlist>li,ul.unlist-all>li,ul.unlist>li{list-style:none}th hr{visibility:hidden;width:12ch;height:0;margin:0}th hr.lg{width:18ch}th hr.x2{width:24ch}table.borderless td,table.borderless th{border:none}.breakout-all>table:not(.does-not-exist),.breakout>table:not(.does-not-exist),table.responsive{display:block;width:-moz-max-content;width:max-content;min-width:auto;max-width:100dvw;margin-left:50%;padding-inline:7.5%;overflow-x:auto;transform:translateX(-50%);-webkit-overflow-scrolling:touch}.breakout-all>table:not(.does-not-exist) td,.breakout-all>table:not(.does-not-exist) th,.breakout>table:not(.does-not-exist) td,.breakout>table:not(.does-not-exist) th,table.responsive td,table.responsive th{padding-inline-start:0}@media (width < 768px){pre{border-radius:0}}code[data-caption]::before{display:block;margin-bottom:1rem;content:attr(data-caption);font-style:italic;opacity:50%}/*!
|
|
121
|
+
){width:-moz-fit-content;width:fit-content;min-width:100%;max-width:min(125%,100dvw);margin-left:50%;transform:translateX(-50%)}.breakout-all>:is(img,picture):not(.does-not-exist),.breakout>:is(img,picture):not(.does-not-exist){min-width:auto}.breakout-all>.breakout-item-max,.breakout>.breakout-item-max{width:min(125%,100dvw)!important}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class]){position:relative}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class])::before{display:block;position:absolute;background:gray;content:"";opacity:12.5%}.breakout-all>:is(h2,h3,h4,h5,h6):not([class])::before{top:50%;right:100%;width:10em;height:.25em;margin-right:.8ch;transform:translateY(-50%);background:linear-gradient(to left,gray,transparent)}.breakout-all>:is(h2,h3,h4,h5,h6):not([class]):where(hr:not([class]) + *)::before{display:none!important}.breakout-all>:is(hr):not([class]){height:.5rem;overflow:visible;border:none}.breakout-all>:is(hr):not([class])::before{left:50%;width:100dvw;height:100%;transform:translateX(-50%)}.columns{-moz-columns:25ch auto;columns:25ch auto}.columns>*{-moz-column-break-inside:avoid;break-inside:avoid}[href="#top"]{position:fixed;right:0;bottom:0;padding-top:50vh}h1,h2,h3,h4,h5,h6{position:relative}h1 a[aria-hidden=true],h2 a[aria-hidden=true],h3 a[aria-hidden=true],h4 a[aria-hidden=true],h5 a[aria-hidden=true],h6 a[aria-hidden=true]{visibility:hidden;position:absolute;top:50%;right:100%;padding-right:.2ch;transform:translateY(-50%);color:silver;text-decoration:none}@media (hover:hover){h1:hover a[aria-hidden=true],h2:hover a[aria-hidden=true],h3:hover a[aria-hidden=true],h4:hover a[aria-hidden=true],h5:hover a[aria-hidden=true],h6:hover a[aria-hidden=true]{visibility:visible}}ol[style*="--list-marker:"],ul[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol[style*="--list-marker:"]>li,ul[style*="--list-marker:"]>li{list-style-type:inherit}ol li[style*="--list-marker:"],ul li[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol li[data-marker]::marker,ul li[data-marker]::marker{content:attr(data-marker) " "}ol.markerless,ul.markerless{padding-inline-start:1.25rem}ol.markerless li,ul.markerless li{list-style:none}.unlist-all ol,.unlist-all ul,ol.unlist,ol.unlist-all,ul.unlist,ul.unlist-all{padding-inline-start:0}.unlist-all ol>li,.unlist-all ul>li,ol.unlist-all>li,ol.unlist>li,ul.unlist-all>li,ul.unlist>li{list-style:none}th hr{visibility:hidden;width:12ch;height:0;margin:0}th hr.lg{width:18ch}th hr.x2{width:24ch}table.borderless td,table.borderless th{border:none}.breakout-all>table:not(.does-not-exist),.breakout>table:not(.does-not-exist),table.responsive{display:block;width:-moz-max-content;width:max-content;min-width:auto;max-width:100dvw;margin-left:50%;padding-inline:7.5%;overflow-x:auto;transform:translateX(-50%);-webkit-overflow-scrolling:touch}.breakout-all>table:not(.does-not-exist) td,.breakout-all>table:not(.does-not-exist) th,.breakout>table:not(.does-not-exist) td,.breakout>table:not(.does-not-exist) th,table.responsive td,table.responsive th{padding-inline-start:0}@media (width < 768px){pre{border-radius:0}}code[data-caption]::before{display:block;margin-bottom:1rem;content:attr(data-caption);font-style:italic;opacity:50%}/*!
|
|
122
122
|
* Float Label CSS v2 by Blades CSS 🥷🏷️
|
|
123
123
|
* Copyright 2016–2026 (https://blades.ninja/css/float-label/)
|
|
124
124
|
* 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 */
|
|
@@ -105,17 +106,17 @@
|
|
|
105
106
|
|
|
106
107
|
/* @TODO: add to tricks-wiki why `*` works here, but `&` fails */
|
|
107
108
|
|
|
108
|
-
.breakout-all > *:is(h2, h3, h4, h5, h6):not([class]):where(hr + *)::before {
|
|
109
|
+
.breakout-all > *:is(h2, h3, h4, h5, h6):not([class]):where(hr:not([class]) + *)::before {
|
|
109
110
|
display: none !important;
|
|
110
111
|
}
|
|
111
112
|
|
|
112
|
-
.breakout-all > *:is(hr) {
|
|
113
|
+
.breakout-all > *:is(hr):not([class]) {
|
|
113
114
|
height: 0.5rem;
|
|
114
115
|
overflow: visible;
|
|
115
116
|
border: none;
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
.breakout-all > *:is(hr)::before {
|
|
119
|
+
.breakout-all > *:is(hr):not([class])::before {
|
|
119
120
|
left: 50%;
|
|
120
121
|
width: 100dvw;
|
|
121
122
|
height: 100%;
|
|
@@ -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;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
table,pre,figure,video,iframe,canvas,img,picture,.breakout-item,.breakout-item-max
|
|
11
11
|
),.breakout>:is(
|
|
12
12
|
table,pre,figure,video,iframe,canvas,img,picture,.breakout-item,.breakout-item-max
|
|
13
|
-
){width:-moz-fit-content;width:fit-content;min-width:100%;max-width:min(125%,100dvw);margin-left:50%;transform:translateX(-50%)}.breakout-all>:is(img,picture):not(.does-not-exist),.breakout>:is(img,picture):not(.does-not-exist){min-width:auto}.breakout-all>.breakout-item-max,.breakout>.breakout-item-max{width:min(125%,100dvw)!important}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class]){position:relative}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class])::before{display:block;position:absolute;background:gray;content:"";opacity:12.5%}.breakout-all>:is(h2,h3,h4,h5,h6):not([class])::before{top:50%;right:100%;width:10em;height:.25em;margin-right:.8ch;transform:translateY(-50%);background:linear-gradient(to left,gray,transparent)}.breakout-all>:is(h2,h3,h4,h5,h6):not([class]):where(hr + *)::before{display:none!important}.breakout-all>:is(hr){height:.5rem;overflow:visible;border:none}.breakout-all>:is(hr)::before{left:50%;width:100dvw;height:100%;transform:translateX(-50%)}.columns{-moz-columns:25ch auto;columns:25ch auto}.columns>*{-moz-column-break-inside:avoid;break-inside:avoid}[href="#top"]{position:fixed;right:0;bottom:0;padding-top:50vh}h1,h2,h3,h4,h5,h6{position:relative}h1 a[aria-hidden=true],h2 a[aria-hidden=true],h3 a[aria-hidden=true],h4 a[aria-hidden=true],h5 a[aria-hidden=true],h6 a[aria-hidden=true]{visibility:hidden;position:absolute;top:50%;right:100%;padding-right:.2ch;transform:translateY(-50%);color:silver;text-decoration:none}@media (hover:hover){h1:hover a[aria-hidden=true],h2:hover a[aria-hidden=true],h3:hover a[aria-hidden=true],h4:hover a[aria-hidden=true],h5:hover a[aria-hidden=true],h6:hover a[aria-hidden=true]{visibility:visible}}ol[style*="--list-marker:"],ul[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol[style*="--list-marker:"]>li,ul[style*="--list-marker:"]>li{list-style-type:inherit}ol li[style*="--list-marker:"],ul li[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol li[data-marker]::marker,ul li[data-marker]::marker{content:attr(data-marker) " "}ol.markerless,ul.markerless{padding-inline-start:1.25rem}ol.markerless li,ul.markerless li{list-style:none}.unlist-all ol,.unlist-all ul,ol.unlist,ol.unlist-all,ul.unlist,ul.unlist-all{padding-inline-start:0}.unlist-all ol>li,.unlist-all ul>li,ol.unlist-all>li,ol.unlist>li,ul.unlist-all>li,ul.unlist>li{list-style:none}th hr{visibility:hidden;width:12ch;height:0;margin:0}th hr.lg{width:18ch}th hr.x2{width:24ch}table.borderless td,table.borderless th{border:none}.breakout-all>table:not(.does-not-exist),.breakout>table:not(.does-not-exist),table.responsive{display:block;width:-moz-max-content;width:max-content;min-width:auto;max-width:100dvw;margin-left:50%;padding-inline:7.5%;overflow-x:auto;transform:translateX(-50%);-webkit-overflow-scrolling:touch}.breakout-all>table:not(.does-not-exist) td,.breakout-all>table:not(.does-not-exist) th,.breakout>table:not(.does-not-exist) td,.breakout>table:not(.does-not-exist) th,table.responsive td,table.responsive th{padding-inline-start:0}@media (width < 768px){pre{border-radius:0}}code[data-caption]::before{display:block;margin-bottom:1rem;content:attr(data-caption);font-style:italic;opacity:50%}/*!
|
|
13
|
+
){width:-moz-fit-content;width:fit-content;min-width:100%;max-width:min(125%,100dvw);margin-left:50%;transform:translateX(-50%)}.breakout-all>:is(img,picture):not(.does-not-exist),.breakout>:is(img,picture):not(.does-not-exist){min-width:auto}.breakout-all>.breakout-item-max,.breakout>.breakout-item-max{width:min(125%,100dvw)!important}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class]){position:relative}.breakout-all>:is(h2,h3,h4,h5,h6,hr):not([class])::before{display:block;position:absolute;background:gray;content:"";opacity:12.5%}.breakout-all>:is(h2,h3,h4,h5,h6):not([class])::before{top:50%;right:100%;width:10em;height:.25em;margin-right:.8ch;transform:translateY(-50%);background:linear-gradient(to left,gray,transparent)}.breakout-all>:is(h2,h3,h4,h5,h6):not([class]):where(hr:not([class]) + *)::before{display:none!important}.breakout-all>:is(hr):not([class]){height:.5rem;overflow:visible;border:none}.breakout-all>:is(hr):not([class])::before{left:50%;width:100dvw;height:100%;transform:translateX(-50%)}.columns{-moz-columns:25ch auto;columns:25ch auto}.columns>*{-moz-column-break-inside:avoid;break-inside:avoid}[href="#top"]{position:fixed;right:0;bottom:0;padding-top:50vh}h1,h2,h3,h4,h5,h6{position:relative}h1 a[aria-hidden=true],h2 a[aria-hidden=true],h3 a[aria-hidden=true],h4 a[aria-hidden=true],h5 a[aria-hidden=true],h6 a[aria-hidden=true]{visibility:hidden;position:absolute;top:50%;right:100%;padding-right:.2ch;transform:translateY(-50%);color:silver;text-decoration:none}@media (hover:hover){h1:hover a[aria-hidden=true],h2:hover a[aria-hidden=true],h3:hover a[aria-hidden=true],h4:hover a[aria-hidden=true],h5:hover a[aria-hidden=true],h6:hover a[aria-hidden=true]{visibility:visible}}ol[style*="--list-marker:"],ul[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol[style*="--list-marker:"]>li,ul[style*="--list-marker:"]>li{list-style-type:inherit}ol li[style*="--list-marker:"],ul li[style*="--list-marker:"]{list-style-type:var(--list-marker)}ol li[data-marker]::marker,ul li[data-marker]::marker{content:attr(data-marker) " "}ol.markerless,ul.markerless{padding-inline-start:1.25rem}ol.markerless li,ul.markerless li{list-style:none}.unlist-all ol,.unlist-all ul,ol.unlist,ol.unlist-all,ul.unlist,ul.unlist-all{padding-inline-start:0}.unlist-all ol>li,.unlist-all ul>li,ol.unlist-all>li,ol.unlist>li,ul.unlist-all>li,ul.unlist>li{list-style:none}th hr{visibility:hidden;width:12ch;height:0;margin:0}th hr.lg{width:18ch}th hr.x2{width:24ch}table.borderless td,table.borderless th{border:none}.breakout-all>table:not(.does-not-exist),.breakout>table:not(.does-not-exist),table.responsive{display:block;width:-moz-max-content;width:max-content;min-width:auto;max-width:100dvw;margin-left:50%;padding-inline:7.5%;overflow-x:auto;transform:translateX(-50%);-webkit-overflow-scrolling:touch}.breakout-all>table:not(.does-not-exist) td,.breakout-all>table:not(.does-not-exist) th,.breakout>table:not(.does-not-exist) td,.breakout>table:not(.does-not-exist) th,table.responsive td,table.responsive th{padding-inline-start:0}@media (width < 768px){pre{border-radius:0}}code[data-caption]::before{display:block;margin-bottom:1rem;content:attr(data-caption);font-style:italic;opacity:50%}/*!
|
|
14
14
|
* Float Label CSS v2 by Blades CSS 🥷🏷️
|
|
15
15
|
* Copyright 2016–2026 (https://blades.ninja/css/float-label/)
|
|
16
16
|
* Licensed under MIT
|
package/css/pico.conditional.css
CHANGED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
* Copyright 2019-2025 (https://picocss.com)
|
|
5
5
|
* Copyright 2026 (https://blades.ninja/css/pico/)
|
|
6
6
|
* Licensed under MIT
|
|
7
|
-
|
|
8
|
-
/**
|
|
7
|
+
*//**
|
|
9
8
|
* Variables
|
|
10
9
|
*/
|
|
11
10
|
:scope,
|
|
@@ -676,6 +675,7 @@ progress,
|
|
|
676
675
|
[type="range"] {
|
|
677
676
|
accent-color: var(--pico-primary);
|
|
678
677
|
}
|
|
678
|
+
|
|
679
679
|
/**
|
|
680
680
|
* Document
|
|
681
681
|
* Content-box & Responsive typography
|
|
@@ -1413,6 +1413,7 @@ template {
|
|
|
1413
1413
|
canvas {
|
|
1414
1414
|
display: inline-block;
|
|
1415
1415
|
}
|
|
1416
|
+
|
|
1416
1417
|
/**
|
|
1417
1418
|
* Basics form elements
|
|
1418
1419
|
*/
|
package/css/pico.css
CHANGED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* Copyright 2019-2025 (https://picocss.com)
|
|
4
4
|
* Copyright 2026 (https://blades.ninja/css/pico/)
|
|
5
5
|
* Licensed under MIT
|
|
6
|
-
|
|
7
|
-
/**
|
|
6
|
+
*//**
|
|
8
7
|
* Variables
|
|
9
8
|
*/
|
|
10
9
|
:scope,
|
|
@@ -675,6 +674,7 @@ progress,
|
|
|
675
674
|
[type="range"] {
|
|
676
675
|
accent-color: var(--pico-primary);
|
|
677
676
|
}
|
|
677
|
+
|
|
678
678
|
/**
|
|
679
679
|
* Document
|
|
680
680
|
* Content-box & Responsive typography
|
|
@@ -1412,6 +1412,7 @@ template {
|
|
|
1412
1412
|
canvas {
|
|
1413
1413
|
display: inline-block;
|
|
1414
1414
|
}
|
|
1415
|
+
|
|
1415
1416
|
/**
|
|
1416
1417
|
* Basics form elements
|
|
1417
1418
|
*/
|
package/package.json
CHANGED
|
@@ -67,13 +67,13 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/* @TODO: add to tricks-wiki why `*` works here, but `&` fails */
|
|
70
|
-
&:where(hr + *) {
|
|
70
|
+
&:where(hr:not([class]) + *) {
|
|
71
71
|
&::before {
|
|
72
72
|
display: none !important;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
&:is(hr) {
|
|
76
|
+
&:is(hr):not([class]) {
|
|
77
77
|
height: 0.5rem;
|
|
78
78
|
border: none;
|
|
79
79
|
overflow: visible;
|