@anyblades/blades 3.1.0-beta.5 → 3.1.0-beta.6

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 (77) hide show
  1. package/.prettierrc.json +0 -7
  2. package/README.md +4 -3
  3. package/_includes/.prettierrc.json +12 -0
  4. package/_includes/package.json +10 -0
  5. package/css/blades.css +941 -1804
  6. package/css/blades.min.css +11 -1
  7. package/css/blades.ninja.css +1123 -2264
  8. package/css/blades.ninja.min.css +16 -1
  9. package/css/float-label.css +34 -187
  10. package/css/float-label.min.css +1 -1
  11. package/css/layered/blades.layered.css +941 -1804
  12. package/css/layered/blades.layered.min.css +11 -1
  13. package/css/layered/compact.css +10 -31
  14. package/css/layered/components/accordion.css +32 -21
  15. package/css/layered/components/card.css +8 -16
  16. package/css/layered/components/dropdown-popover.css +44 -59
  17. package/css/layered/components/dropdown.css +61 -61
  18. package/css/layered/components/group.css +40 -156
  19. package/css/layered/components/loading.css +28 -35
  20. package/css/layered/components/modal-modern.css +7 -15
  21. package/css/layered/components/modal.css +54 -65
  22. package/css/layered/components/nav.css +36 -36
  23. package/css/layered/components/progress.css +18 -23
  24. package/css/layered/components/timeline.css +5 -19
  25. package/css/layered/components/tooltip.css +88 -103
  26. package/css/layered/components.css +371 -517
  27. package/css/layered/content/button.css +37 -117
  28. package/css/layered/content/code-block.css +11 -23
  29. package/css/layered/content/code.css +11 -26
  30. package/css/layered/content/embedded-content.css +5 -10
  31. package/css/layered/content/figure.css +3 -5
  32. package/css/layered/content/icon.css +20 -47
  33. package/css/layered/content/link.css +18 -40
  34. package/css/layered/content/misc.css +1 -5
  35. package/css/layered/content/table.css +4 -10
  36. package/css/layered/content/typography.css +22 -41
  37. package/css/layered/content.css +102 -254
  38. package/css/layered/forms/basics.css +64 -142
  39. package/css/layered/forms/checkbox-radio-switch.css +46 -75
  40. package/css/layered/forms/float-label/core.css +13 -85
  41. package/css/layered/forms/float-label/theme.css +22 -104
  42. package/css/layered/forms/float-label.css +34 -187
  43. package/css/layered/forms/input-color.css +5 -5
  44. package/css/layered/forms/input-datetime.css +9 -26
  45. package/css/layered/forms/input-file.css +7 -8
  46. package/css/layered/forms/input-range.css +43 -50
  47. package/css/layered/forms/input-search.css +16 -47
  48. package/css/layered/forms.css +197 -355
  49. package/css/layered/layout/columns.css +4 -24
  50. package/css/layered/layout/container.css +13 -13
  51. package/css/layered/layout/document.css +4 -12
  52. package/css/layered/layout/grid.css +6 -8
  53. package/css/layered/layout/landmarks.css +1 -7
  54. package/css/layered/layout/overflow-auto.css +0 -3
  55. package/css/layered/layout/section.css +0 -3
  56. package/css/layered/layout.css +26 -39
  57. package/css/layered/utilities.css +6 -15
  58. package/css/layered/variables-blades.css +4 -16
  59. package/css/layered/variables.css +77 -181
  60. package/css/pico.conditional.css +785 -1368
  61. package/css/pico.conditional.min.css +1 -1
  62. package/css/pico.css +785 -1368
  63. package/css/pico.min.css +1 -1
  64. package/package.json +12 -25
  65. package/src/blades/_index.css +9 -9
  66. package/src/blades/forms/float-label/_index.css +2 -2
  67. package/src/blades.css +2 -2
  68. package/src/blades.ninja.css +3 -3
  69. package/src/float-label.css +1 -1
  70. package/src/ninja/_index.css +7 -8
  71. package/src/pico/_index.css +6 -6
  72. package/src/pico/components/_index.css +9 -9
  73. package/src/pico/content/_index.css +8 -8
  74. package/src/pico/forms/_index.css +7 -7
  75. package/src/pico/layout/_index.css +5 -5
  76. package/src/pico.css +2 -2
  77. package/src/ninja/_scroll-to.css +0 -10
@@ -1,61 +1,54 @@
1
1
  @layer blades {
2
- /**
3
- * Loading ([aria-busy=true])
4
- */
5
- :where(:scope),
6
- :host {
2
+ :where(:scope), :host {
7
3
  --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");
8
4
  }
9
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
10
- :host {
11
- --pico-loading-spinner-opacity: 0.5;
5
+
6
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
7
+ --pico-loading-spinner-opacity: .5;
12
8
  }
13
9
 
14
- [aria-busy="true"]:not(input, select, textarea, html, form):not(
15
- :where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])
16
- ) {
17
- /* :where() zeroes the specificity of the button list inside :not(), so this rule stays
18
- * low-specificity and doesn't override the more specific button rules below */
10
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])) {
19
11
  white-space: nowrap;
20
12
  }
21
- [aria-busy="true"]:not(input, select, textarea, html, form)::before {
22
- display: inline-block;
23
- width: 1em;
24
- height: 1em;
13
+
14
+ [aria-busy="true"]:not(input, select, textarea, html, form):before {
25
15
  background-image: var(--pico-icon-loading);
26
- background-size: 1em auto;
27
- background-repeat: no-repeat;
28
16
  content: "";
29
- vertical-align: -0.125em;
17
+ vertical-align: -.125em;
18
+ background-repeat: no-repeat;
19
+ background-size: 1em;
20
+ width: 1em;
21
+ height: 1em;
22
+ display: inline-block;
30
23
  }
31
- [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty)::before {
32
- margin-inline-end: calc(var(--pico-spacing) * 0.5);
24
+
25
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty):before {
26
+ margin-inline-end: calc(var(--pico-spacing) * .5);
33
27
  }
28
+
34
29
  [aria-busy="true"]:not(input, select, textarea, html, form):empty {
35
30
  text-align: center;
36
31
  }
37
32
 
38
- button[aria-busy="true"],
39
- [type="submit"][aria-busy="true"],
40
- [type="button"][aria-busy="true"],
41
- [type="reset"][aria-busy="true"],
42
- [role="button"][aria-busy="true"],
43
- a[aria-busy="true"] {
33
+ button[aria-busy="true"], [type="submit"][aria-busy="true"], [type="button"][aria-busy="true"], [type="reset"][aria-busy="true"], [role="button"][aria-busy="true"], a[aria-busy="true"] {
44
34
  pointer-events: none;
45
35
  }
46
36
 
47
- /* Buttons keep their size: the label stays in place but hidden, the spinner sits on top */
48
- button[aria-busy="true"]:not(:empty), [type="submit"][aria-busy="true"]:not(:empty), [type="button"][aria-busy="true"]:not(:empty), [type="reset"][aria-busy="true"]:not(:empty), [role="button"][aria-busy="true"]:not(:empty) {
37
+ button, [type="submit"], [type="button"], [type="reset"], [role="button"] {
38
+ &[aria-busy="true"]:not(:empty) {
39
+ color: #0000;
49
40
  position: relative;
50
- color: transparent;
51
- }
52
- button[aria-busy="true"]:not(:empty) > *, [type="submit"][aria-busy="true"]:not(:empty) > *, [type="button"][aria-busy="true"]:not(:empty) > *, [type="reset"][aria-busy="true"]:not(:empty) > *, [role="button"][aria-busy="true"]:not(:empty) > * {
41
+
42
+ & > * {
53
43
  opacity: 0;
54
44
  }
55
- button[aria-busy="true"]:not(:empty)::before, [type="submit"][aria-busy="true"]:not(:empty)::before, [type="button"][aria-busy="true"]:not(:empty)::before, [type="reset"][aria-busy="true"]:not(:empty)::before, [role="button"][aria-busy="true"]:not(:empty)::before {
56
- position: absolute;
45
+
46
+ &:before {
57
47
  margin: auto;
48
+ position: absolute;
58
49
  inset: 0;
59
50
  }
51
+ }
52
+ }
60
53
 
61
54
  }
@@ -1,28 +1,20 @@
1
1
  @layer blades {
2
- /*\3c !--section:docs-->
3
-
4
- A `<dialog>` opened with `dialog.showModal()` fades in and its `<article>` zooms in, without JS classes.
5
- Pico's modal JS (`.modal-is-open`, `.modal-is-opening`, `.modal-is-closing`) still works on top of it.
6
-
7
- - `dialog.close()` closes it at once, as before.
8
- - `<dialog open>` in markup and non-modal `dialog.show()` aren't animated.
9
- - Browsers without `@starting-style`, and reduced motion, open it at once.
10
-
11
- \3c !--section:code-->```css */
12
2
  dialog:modal {
13
3
  transition: opacity var(--pico-transition);
14
- }
15
- dialog:modal > article {
4
+
5
+ & > article {
16
6
  transition: transform var(--pico-transition);
17
7
  }
8
+ }
9
+
18
10
  @starting-style {
19
11
  dialog:modal {
20
12
  opacity: 0;
21
- }
22
13
 
23
- dialog:modal > article {
24
- transform: scale(0.96);
14
+ & > article {
15
+ transform: scale(.96);
25
16
  }
17
+ }
26
18
  }
27
19
 
28
20
  }
@@ -1,157 +1,146 @@
1
1
  @layer blades {
2
- /**
3
- * Modal (<dialog>)
4
- */
5
- :where(:scope),
6
- :host {
7
- --pico-modal-overlay-backdrop-filter: blur(0.375rem);
2
+ :where(:scope), :host {
3
+ --pico-modal-overlay-backdrop-filter: blur(.375rem);
8
4
  --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");
9
5
  }
10
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
11
- :host {
12
- --pico-modal-overlay-background-color: light-dark(
13
- rgba(232, 234, 237, 0.75),
14
- rgba(7.5, 8.5, 10, 0.75)
15
- );
6
+
7
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
8
+ --pico-modal-overlay-background-color: light-dark(#e8eaedbf, #08090abf);
16
9
  }
17
10
 
18
- :scope,
19
- :host {
11
+ :scope, :host {
20
12
  --pico-scrollbar-width: 0px;
21
13
  }
22
14
 
23
15
  dialog {
24
- display: flex;
25
16
  z-index: 999;
26
- position: fixed;
27
- top: 0;
28
- right: 0;
29
- bottom: 0;
30
- left: 0;
31
- align-items: center;
32
- justify-content: center;
33
17
  width: inherit;
34
18
  min-width: 100%;
35
19
  height: inherit;
36
20
  min-height: 100%;
37
- padding: 0;
38
- border: 0;
39
21
  backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
40
22
  background-color: var(--pico-modal-overlay-background-color);
41
23
  color: var(--pico-color);
24
+ border: 0;
25
+ justify-content: center;
26
+ align-items: center;
27
+ padding: 0;
28
+ display: flex;
29
+ position: fixed;
30
+ inset: 0;
42
31
  }
32
+
43
33
  dialog > article {
44
34
  width: 100%;
45
35
  max-height: calc(100vh - var(--pico-spacing) * 2);
46
36
  margin: var(--pico-spacing);
47
37
  overflow: auto;
48
38
  }
49
- @media (min-width: 576px) {
39
+
40
+ @media (width >= 576px) {
50
41
  dialog > article {
51
42
  max-width: 510px;
52
43
  }
53
44
  }
54
- @media (min-width: 768px) {
45
+
46
+ @media (width >= 768px) {
55
47
  dialog > article {
56
48
  max-width: 700px;
57
49
  }
58
50
  }
51
+
59
52
  dialog > article > header > * {
60
53
  margin-bottom: 0;
61
54
  }
62
- dialog > article > header .close,
63
- dialog > article > header :is(a, button)[rel="prev"] {
55
+
56
+ dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
64
57
  margin: 0;
65
58
  margin-left: var(--pico-spacing);
66
- padding: 0;
67
59
  float: right;
60
+ padding: 0;
68
61
  }
62
+
69
63
  dialog > article > footer {
70
64
  text-align: end;
71
65
  }
72
- dialog > article > footer button,
73
- dialog > article > footer [role="button"] {
66
+
67
+ dialog > article > footer button, dialog > article > footer [role="button"] {
74
68
  margin-bottom: 0;
75
69
  }
76
- dialog > article > footer button:not(:first-of-type),
77
- dialog > article > footer [role="button"]:not(:first-of-type) {
78
- margin-left: calc(var(--pico-spacing) * 0.5);
70
+
71
+ dialog > article > footer button:not(:first-of-type), dialog > article > footer [role="button"]:not(:first-of-type) {
72
+ margin-left: calc(var(--pico-spacing) * .5);
79
73
  }
80
- dialog > article .close,
81
- dialog > article :is(a, button)[rel="prev"] {
82
- display: block;
74
+
75
+ dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
83
76
  width: 1rem;
84
77
  height: 1rem;
85
78
  margin-top: calc(var(--pico-spacing) * -1);
86
79
  margin-bottom: var(--pico-spacing);
87
- margin-left: auto;
88
- border: none;
89
80
  background-image: var(--pico-icon-close);
81
+ opacity: .5;
82
+ transition: opacity var(--pico-transition);
83
+ background-color: #0000;
90
84
  background-position: center;
91
- background-size: auto 1rem;
92
85
  background-repeat: no-repeat;
93
- background-color: transparent;
94
- opacity: 0.5;
95
- transition: opacity var(--pico-transition);
86
+ background-size: auto 1rem;
87
+ border: none;
88
+ margin-left: auto;
89
+ display: block;
96
90
  }
97
- dialog > article .close:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus),
98
- dialog
99
- > article
100
- :is(a, button)[rel="prev"]:is(
101
- [aria-current]:not([aria-current="false"]),
102
- :hover,
103
- :active,
104
- :focus
105
- ) {
91
+
92
+ dialog > article .close:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), dialog > article :is(a, button)[rel="prev"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
106
93
  opacity: 1;
107
94
  }
108
- dialog:not([open]),
109
- dialog[open="false"] {
95
+
96
+ dialog:not([open]), dialog[open="false"] {
110
97
  display: none;
111
98
  }
112
99
 
113
100
  .modal-is-open {
114
101
  padding-right: var(--pico-scrollbar-width, 0px);
115
- overflow: hidden;
116
102
  pointer-events: none;
117
103
  touch-action: none;
104
+ overflow: hidden;
118
105
  }
106
+
119
107
  .modal-is-open dialog {
120
108
  pointer-events: auto;
121
109
  touch-action: auto;
122
110
  }
123
111
 
124
- :where(.modal-is-opening, .modal-is-closing) dialog,
125
- :where(.modal-is-opening, .modal-is-closing) dialog > article {
126
- animation-duration: 0.2s;
112
+ :where(.modal-is-opening, .modal-is-closing) dialog, :where(.modal-is-opening, .modal-is-closing) dialog > article {
113
+ animation-duration: .2s;
127
114
  animation-timing-function: ease-in-out;
128
115
  animation-fill-mode: both;
129
116
  }
117
+
130
118
  :where(.modal-is-opening, .modal-is-closing) dialog {
131
- animation-duration: 0.8s;
132
119
  animation-name: modal-overlay;
120
+ animation-duration: .8s;
133
121
  }
122
+
134
123
  :where(.modal-is-opening, .modal-is-closing) dialog > article {
135
- animation-delay: 0.2s;
136
124
  animation-name: modal;
125
+ animation-delay: .2s;
137
126
  }
138
127
 
139
- .modal-is-closing dialog,
140
- .modal-is-closing dialog > article {
141
- animation-delay: 0s;
128
+ .modal-is-closing dialog, .modal-is-closing dialog > article {
142
129
  animation-direction: reverse;
130
+ animation-delay: 0s;
143
131
  }
144
132
 
145
133
  @keyframes modal-overlay {
146
134
  from {
147
135
  backdrop-filter: none;
148
- background-color: transparent;
136
+ background-color: #0000;
149
137
  }
150
138
  }
139
+
151
140
  @keyframes modal {
152
141
  from {
153
- transform: translateY(-100%);
154
142
  opacity: 0;
143
+ transform: translateY(-100%);
155
144
  }
156
145
  }
157
146
 
@@ -1,20 +1,15 @@
1
1
  @layer blades {
2
- /**
3
- * Nav
4
- */
5
- :where(:scope),
6
- :host {
7
- --pico-nav-element-spacing-horizontal: 0.5rem;
2
+ :where(:scope), :host {
3
+ --pico-nav-element-spacing-horizontal: .5rem;
8
4
  --pico-nav-breadcrumb-divider: ">";
9
5
  }
10
6
 
11
- :where(nav li)::before {
7
+ :where(nav li):before {
12
8
  float: left;
13
9
  content: "​";
14
10
  }
15
11
 
16
- nav,
17
- nav ul {
12
+ nav, nav ul {
18
13
  display: flex;
19
14
  }
20
15
 
@@ -22,41 +17,41 @@ nav {
22
17
  justify-content: space-between;
23
18
  overflow: visible;
24
19
  }
25
- nav ol,
26
- nav ul {
20
+
21
+ nav ol, nav ul {
27
22
  align-items: center;
28
23
  margin-bottom: 0;
29
24
  padding: 0;
30
25
  list-style: none;
31
26
  }
32
- nav ol:first-of-type,
33
- nav ul:first-of-type {
27
+
28
+ nav ol:first-of-type, nav ul:first-of-type {
34
29
  margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
35
30
  }
36
- nav ol:last-of-type,
37
- nav ul:last-of-type {
31
+
32
+ nav ol:last-of-type, nav ul:last-of-type {
38
33
  margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
39
34
  }
35
+
40
36
  nav li {
41
- display: inline-block;
42
- margin: 0;
43
37
  padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);
38
+ margin: 0;
39
+ display: inline-block;
44
40
  }
41
+
45
42
  nav li :where(a, [role="link"]) {
46
- display: inline-block;
47
43
  margin: calc(var(--pico-nav-link-spacing-vertical) * -1)
48
44
  calc(var(--pico-nav-link-spacing-horizontal) * -1);
49
45
  padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);
50
46
  border-radius: var(--pico-border-radius);
47
+ display: inline-block;
51
48
  }
49
+
52
50
  nav li :where(a, [role="link"]):not(:hover) {
53
51
  text-decoration: none;
54
52
  }
55
- nav li button,
56
- nav li [role="button"],
57
- nav li [type="button"],
58
- nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]),
59
- nav li select {
53
+
54
+ nav li button, nav li [role="button"], nav li [type="button"], nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), nav li select {
60
55
  height: auto;
61
56
  margin-right: inherit;
62
57
  margin-bottom: 0;
@@ -64,53 +59,58 @@ nav li select {
64
59
  padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
65
60
  var(--pico-nav-link-spacing-horizontal);
66
61
  }
62
+
67
63
  nav[aria-label="breadcrumb"] {
68
- align-items: center;
69
64
  justify-content: start;
65
+ align-items: center;
70
66
  }
67
+
71
68
  nav[aria-label="breadcrumb"] ul li:not(:first-child) {
72
69
  margin-inline-start: var(--pico-nav-link-spacing-horizontal);
73
70
  }
71
+
74
72
  nav[aria-label="breadcrumb"] ul li a {
75
73
  margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0;
76
74
  margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1);
77
75
  }
78
- nav[aria-label="breadcrumb"] ul li:not(:last-child)::after {
79
- display: inline-block;
80
- position: absolute;
76
+
77
+ nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
81
78
  width: calc(var(--pico-nav-link-spacing-horizontal) * 4);
82
79
  margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1);
83
80
  content: var(--pico-nav-breadcrumb-divider);
84
81
  color: var(--pico-muted-color);
85
82
  text-align: center;
86
- text-decoration: none;
87
83
  white-space: nowrap;
84
+ text-decoration: none;
85
+ display: inline-block;
86
+ position: absolute;
88
87
  }
88
+
89
89
  nav[aria-label="breadcrumb"] a[aria-current]:not([aria-current="false"]) {
90
- background-color: transparent;
91
90
  color: inherit;
92
- text-decoration: none;
93
91
  pointer-events: none;
92
+ background-color: #0000;
93
+ text-decoration: none;
94
94
  }
95
95
 
96
- aside nav,
97
- aside ol,
98
- aside ul,
99
- aside li {
96
+ aside nav, aside ol, aside ul, aside li {
100
97
  display: block;
101
98
  }
99
+
102
100
  aside li {
103
- padding: calc(var(--pico-nav-element-spacing-vertical) * 0.5)
101
+ padding: calc(var(--pico-nav-element-spacing-vertical) * .5)
104
102
  var(--pico-nav-element-spacing-horizontal);
105
103
  }
104
+
106
105
  aside li a {
107
106
  display: block;
108
107
  }
108
+
109
109
  aside li [role="button"] {
110
110
  margin: inherit;
111
111
  }
112
112
 
113
- [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child)::after {
113
+ [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
114
114
  content: "\\";
115
115
  }
116
116
 
@@ -1,64 +1,58 @@
1
1
  @layer blades {
2
- /**
3
- * Progress
4
- */
5
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
6
- :host {
2
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
7
3
  --pico-progress-background-color: light-dark(#dfe3eb, #202632);
8
4
  --pico-progress-color: var(--pico-primary-background);
9
5
  }
10
6
 
11
7
  progress {
12
- display: inline-block;
13
8
  vertical-align: baseline;
14
- }
15
-
16
- progress {
17
9
  -webkit-appearance: none;
18
10
  -moz-appearance: none;
19
- display: inline-block;
20
11
  appearance: none;
21
12
  width: 100%;
22
- height: 0.5rem;
23
- margin-bottom: calc(var(--pico-spacing) * 0.5);
24
- overflow: hidden;
25
- border: 0;
13
+ height: .5rem;
14
+ margin-bottom: calc(var(--pico-spacing) * .5);
26
15
  border-radius: var(--pico-border-radius);
27
16
  background-color: var(--pico-progress-background-color);
28
17
  color: var(--pico-progress-color);
18
+ border: 0;
19
+ display: inline-block;
20
+ overflow: hidden;
29
21
  }
22
+
30
23
  progress::-webkit-progress-bar {
31
24
  border-radius: var(--pico-border-radius);
32
25
  background: none;
33
26
  }
27
+
34
28
  progress[value]::-webkit-progress-value {
35
29
  background-color: var(--pico-progress-color);
36
30
  -webkit-transition: inline-size var(--pico-transition);
37
31
  transition: inline-size var(--pico-transition);
38
32
  }
33
+
39
34
  progress::-moz-progress-bar {
40
35
  background-color: var(--pico-progress-color);
41
36
  }
37
+
42
38
  @media (prefers-reduced-motion: no-preference) {
43
39
  progress:indeterminate {
44
40
  background: var(--pico-progress-background-color)
45
- linear-gradient(
46
- to right,
41
+ linear-gradient(to right,
47
42
  var(--pico-progress-color) 30%,
48
- var(--pico-progress-background-color) 30%
49
- )
43
+ var(--pico-progress-background-color) 30%)
50
44
  top left/150% 150% no-repeat;
51
- animation: progress-indeterminate 1s linear infinite;
45
+ animation: 1s linear infinite progress-indeterminate;
52
46
  }
47
+
53
48
  progress:indeterminate[value]::-webkit-progress-value {
54
- background-color: transparent;
49
+ background-color: #0000;
55
50
  }
51
+
56
52
  progress:indeterminate::-moz-progress-bar {
57
- background-color: transparent;
53
+ background-color: #0000;
58
54
  }
59
- }
60
55
 
61
- @media (prefers-reduced-motion: no-preference) {
62
56
  [dir="rtl"] progress:indeterminate {
63
57
  animation-direction: reverse;
64
58
  }
@@ -68,6 +62,7 @@ progress::-moz-progress-bar {
68
62
  0% {
69
63
  background-position: 200% 0;
70
64
  }
65
+
71
66
  100% {
72
67
  background-position: -200% 0;
73
68
  }
@@ -1,24 +1,10 @@
1
1
  @layer blades {
2
- /*\3c !--section:docs-->
3
-
4
- Use `dl.timeline` or wrap a `<dl>` with `.has-timeline` to style it as a
5
- vertical timeline — each `<dd>` gets a left border strip acting as the track:
6
-
7
- <article class="has-timeline">
8
-
9
- May 11, 2026
10
- : First Blades CSS stable release (v2.2.0).
11
-
12
- Mar 15, 2025
13
- : Last Pico CSS update (v2.1.1).
14
-
15
- </article>
16
-
17
- \3c !--section:code-->```css */
18
- dl.timeline dd, .has-timeline > dl dd {
2
+ dl.timeline, .has-timeline > dl {
3
+ & dd {
4
+ border-inline-start: .25rem solid var(--blades-timeline-border-color);
19
5
  margin-block: 0;
20
- padding: 0.25rem 0 0.75rem 1rem;
21
- border-inline-start: 0.25rem solid var(--blades-timeline-border-color);
6
+ padding: .25rem 0 .75rem 1rem;
22
7
  }
8
+ }
23
9
 
24
10
  }