@anyblades/blades 3.0.0 → 3.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +79 -12
  2. package/css/blades.css +219 -419
  3. package/css/blades.min.css +41 -30
  4. package/css/pico.conditional.css +219 -419
  5. package/css/pico.conditional.min.css +41 -30
  6. package/css/pico.css +219 -419
  7. package/css/pico.layered.css +2990 -0
  8. package/css/pico.layered.min.css +118 -0
  9. package/css/pico.min.css +41 -30
  10. package/package.json +27 -7
  11. package/src/pico/_index.css +4 -4
  12. package/src/pico/_utilities.css +0 -21
  13. package/src/pico/_variables.css +76 -386
  14. package/src/pico/components/_accordion.css +82 -0
  15. package/src/pico/components/_card.css +45 -0
  16. package/src/pico/components/_dropdown.css +188 -0
  17. package/src/pico/components/_group.css +205 -0
  18. package/src/pico/components/_index.css +9 -0
  19. package/src/pico/components/_loading.css +40 -0
  20. package/src/pico/components/_modal.css +157 -0
  21. package/src/pico/components/_nav.css +114 -0
  22. package/src/pico/components/_progress.css +73 -0
  23. package/src/pico/components/_tooltip.css +173 -0
  24. package/src/pico/content/_button.css +205 -0
  25. package/src/pico/content/_code.css +61 -0
  26. package/src/pico/content/_embedded-content.css +37 -0
  27. package/src/pico/content/_figure.css +12 -0
  28. package/src/pico/content/_index.css +8 -0
  29. package/src/pico/content/_link.css +81 -0
  30. package/src/pico/content/_misc.css +19 -0
  31. package/src/pico/content/_table.css +30 -0
  32. package/src/pico/content/_typography.css +156 -0
  33. package/src/pico/forms/_basics.css +335 -0
  34. package/src/pico/forms/_checkbox-radio-switch.css +161 -0
  35. package/src/pico/forms/_index.css +7 -0
  36. package/src/pico/forms/_input-color.css +17 -0
  37. package/src/pico/forms/_input-datetime.css +54 -0
  38. package/src/pico/forms/_input-file.css +26 -0
  39. package/src/pico/forms/_input-range.css +118 -0
  40. package/src/pico/forms/_input-search.css +63 -0
  41. package/src/pico/layout/_container.css +39 -0
  42. package/src/pico/layout/_document.css +36 -0
  43. package/src/pico/layout/_grid.css +19 -0
  44. package/src/pico/layout/_index.css +6 -0
  45. package/src/pico/layout/_landmarks.css +17 -0
  46. package/src/pico/layout/_overflow-auto.css +6 -0
  47. package/src/pico/layout/_section.css +6 -0
  48. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -25
  49. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  50. package/CODE_OF_CONDUCT.md +0 -92
  51. package/context7.json +0 -4
  52. package/css/postcss.config.js +0 -23
  53. package/index.html +0 -63
  54. package/src/pico/_components.css +0 -974
  55. package/src/pico/_content.css +0 -608
  56. package/src/pico/_forms.css +0 -747
  57. package/src/pico/_layout.css +0 -128
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Dropdown (details.dropdown)
3
+ */
4
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
5
+ :host {
6
+ --pico-dropdown-background-color: light-dark(#fff, #181c25);
7
+ --pico-dropdown-border-color: light-dark(#eff1f4, #202632);
8
+ --pico-dropdown-box-shadow: var(--pico-box-shadow);
9
+ --pico-dropdown-color: var(--pico-color);
10
+ --pico-dropdown-hover-background-color: light-dark(#eff1f4, #202632);
11
+ }
12
+
13
+ details.dropdown {
14
+ position: relative;
15
+ border-bottom: none;
16
+ }
17
+ details.dropdown > summary::after,
18
+ details.dropdown > button::after,
19
+ details.dropdown > a::after {
20
+ display: block;
21
+ width: 1rem;
22
+ height: calc(1rem * var(--pico-line-height, 1.5));
23
+ margin-inline-start: 0.25rem;
24
+ float: right;
25
+ transform: rotate(0deg) translateX(0.2rem);
26
+ background-image: var(--pico-icon-chevron);
27
+ background-position: right center;
28
+ background-size: 1rem auto;
29
+ background-repeat: no-repeat;
30
+ content: "";
31
+ }
32
+
33
+ nav details.dropdown {
34
+ margin-bottom: 0;
35
+ }
36
+
37
+ details.dropdown > summary:not([role]) {
38
+ height: calc(
39
+ 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
40
+ var(--pico-border-width) * 2
41
+ );
42
+ padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
43
+ border: var(--pico-border-width) solid var(--pico-form-element-border-color);
44
+ border-radius: var(--pico-border-radius);
45
+ background-color: var(--pico-form-element-background-color);
46
+ color: var(--pico-form-element-placeholder-color);
47
+ line-height: inherit;
48
+ cursor: pointer;
49
+ -webkit-user-select: none;
50
+ -moz-user-select: none;
51
+ user-select: none;
52
+ transition:
53
+ background-color var(--pico-transition),
54
+ border-color var(--pico-transition),
55
+ color var(--pico-transition),
56
+ box-shadow var(--pico-transition);
57
+ }
58
+ details.dropdown > summary:not([role]):active,
59
+ details.dropdown > summary:not([role]):focus {
60
+ border-color: var(--pico-form-element-active-border-color);
61
+ background-color: var(--pico-form-element-active-background-color);
62
+ }
63
+ details.dropdown > summary:not([role]):focus {
64
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
65
+ }
66
+ details.dropdown > summary:not([role]):focus-visible {
67
+ outline: none;
68
+ }
69
+ details.dropdown > summary:not([role])[aria-invalid="false"] {
70
+ --pico-form-element-border-color: var(--pico-form-element-valid-border-color);
71
+ --pico-form-element-active-border-color: var(--pico-form-element-valid-focus-color);
72
+ --pico-form-element-focus-color: var(--pico-form-element-valid-focus-color);
73
+ }
74
+ details.dropdown > summary:not([role])[aria-invalid="true"] {
75
+ --pico-form-element-border-color: var(--pico-form-element-invalid-border-color);
76
+ --pico-form-element-active-border-color: var(--pico-form-element-invalid-focus-color);
77
+ --pico-form-element-focus-color: var(--pico-form-element-invalid-focus-color);
78
+ }
79
+
80
+ nav details.dropdown {
81
+ display: inline-block;
82
+ margin: calc(var(--pico-nav-element-spacing-vertical) * -1) 0;
83
+ }
84
+ nav details.dropdown > summary::after {
85
+ transform: rotate(0deg) translateX(0rem);
86
+ }
87
+ nav details.dropdown > summary:not([role]) {
88
+ height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);
89
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
90
+ var(--pico-nav-link-spacing-horizontal);
91
+ }
92
+ nav details.dropdown > summary:not([role]):focus-visible {
93
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
94
+ }
95
+
96
+ details.dropdown > summary + ul {
97
+ display: flex;
98
+ z-index: 99;
99
+ position: absolute;
100
+ left: 0;
101
+ flex-direction: column;
102
+ width: 100%;
103
+ min-width: -moz-fit-content;
104
+ min-width: fit-content;
105
+ margin: 0;
106
+ margin-top: var(--pico-outline-width);
107
+ padding: 0;
108
+ border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
109
+ border-radius: var(--pico-border-radius);
110
+ background-color: var(--pico-dropdown-background-color);
111
+ box-shadow: var(--pico-dropdown-box-shadow);
112
+ color: var(--pico-dropdown-color);
113
+ white-space: nowrap;
114
+ opacity: 0;
115
+ transition:
116
+ opacity var(--pico-transition),
117
+ transform 0s ease-in-out 1s;
118
+ }
119
+ details.dropdown > summary + ul[dir="rtl"] {
120
+ right: 0;
121
+ left: auto;
122
+ }
123
+ details.dropdown > summary + ul li {
124
+ width: 100%;
125
+ margin-bottom: 0;
126
+ padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
127
+ var(--pico-form-element-spacing-horizontal);
128
+ list-style: none;
129
+ }
130
+ details.dropdown > summary + ul li:first-of-type {
131
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * 0.5);
132
+ }
133
+ details.dropdown > summary + ul li:last-of-type {
134
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * 0.5);
135
+ }
136
+ details.dropdown > summary + ul li a {
137
+ display: block;
138
+ margin: calc(var(--pico-form-element-spacing-vertical) * -0.5)
139
+ calc(var(--pico-form-element-spacing-horizontal) * -1);
140
+ padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
141
+ var(--pico-form-element-spacing-horizontal);
142
+ overflow: hidden;
143
+ border-radius: 0;
144
+ color: var(--pico-dropdown-color);
145
+ text-decoration: none;
146
+ text-overflow: ellipsis;
147
+ }
148
+ details.dropdown > summary + ul li a:hover,
149
+ details.dropdown > summary + ul li a:focus,
150
+ details.dropdown > summary + ul li a:active,
151
+ details.dropdown > summary + ul li a:focus-visible,
152
+ details.dropdown > summary + ul li a[aria-current]:not([aria-current="false"]) {
153
+ background-color: var(--pico-dropdown-hover-background-color);
154
+ }
155
+ details.dropdown > summary + ul li label {
156
+ width: 100%;
157
+ }
158
+ details.dropdown > summary + ul li:has(label):hover {
159
+ background-color: var(--pico-dropdown-hover-background-color);
160
+ }
161
+
162
+ details.dropdown[open] > summary {
163
+ margin-bottom: 0;
164
+ }
165
+
166
+ details.dropdown[open] > summary + ul {
167
+ transform: scaleY(1);
168
+ opacity: 1;
169
+ transition:
170
+ opacity var(--pico-transition),
171
+ transform 0s ease-in-out 0s;
172
+ }
173
+
174
+ details.dropdown[open] > summary::before {
175
+ display: block;
176
+ z-index: 1;
177
+ position: fixed;
178
+ width: 100vw;
179
+ height: 100vh;
180
+ inset: 0;
181
+ background: none;
182
+ content: "";
183
+ cursor: default;
184
+ }
185
+
186
+ label > details.dropdown {
187
+ margin-top: calc(var(--pico-spacing) * 0.25);
188
+ }
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Group ([role="group"], [role="search"])
3
+ */
4
+ :where(:scope),
5
+ :host {
6
+ --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
7
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
8
+ var(--pico-primary-focus);
9
+ --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
10
+ }
11
+ [role="search"]:has(
12
+ button.secondary:focus,
13
+ [type="submit"].secondary:focus,
14
+ [type="button"].secondary:focus,
15
+ [role="button"].secondary:focus
16
+ ),
17
+ [role="group"]:has(
18
+ button.secondary:focus,
19
+ [type="submit"].secondary:focus,
20
+ [type="button"].secondary:focus,
21
+ [role="button"].secondary:focus
22
+ ) {
23
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
24
+ var(--pico-secondary-focus);
25
+ }
26
+ [role="search"]:has(
27
+ button.contrast:focus,
28
+ [type="submit"].contrast:focus,
29
+ [type="button"].contrast:focus,
30
+ [role="button"].contrast:focus
31
+ ),
32
+ [role="group"]:has(
33
+ button.contrast:focus,
34
+ [type="submit"].contrast:focus,
35
+ [type="button"].contrast:focus,
36
+ [role="button"].contrast:focus
37
+ ) {
38
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
39
+ var(--pico-contrast-focus);
40
+ }
41
+
42
+ [role="search"],
43
+ [role="group"] {
44
+ display: inline-flex;
45
+ position: relative;
46
+ width: 100%;
47
+ margin-bottom: var(--pico-spacing);
48
+ border-radius: var(--pico-border-radius);
49
+ box-shadow: var(--pico-group-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
50
+ vertical-align: middle;
51
+ transition: box-shadow var(--pico-transition);
52
+ }
53
+ [role="search"] > *,
54
+ [role="search"] input:not([type="checkbox"], [type="radio"]),
55
+ [role="search"] select,
56
+ [role="group"] > *,
57
+ [role="group"] input:not([type="checkbox"], [type="radio"]),
58
+ [role="group"] select {
59
+ position: relative;
60
+ flex: 1 1 auto;
61
+ margin-bottom: 0;
62
+ }
63
+ [role="search"] > *:not(:first-child),
64
+ [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
65
+ [role="search"] select:not(:first-child),
66
+ [role="group"] > *:not(:first-child),
67
+ [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
68
+ [role="group"] select:not(:first-child) {
69
+ margin-left: 0;
70
+ border-top-left-radius: 0;
71
+ border-bottom-left-radius: 0;
72
+ }
73
+ [role="search"] > *:not(:last-child),
74
+ [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child),
75
+ [role="search"] select:not(:last-child),
76
+ [role="group"] > *:not(:last-child),
77
+ [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child),
78
+ [role="group"] select:not(:last-child) {
79
+ border-top-right-radius: 0;
80
+ border-bottom-right-radius: 0;
81
+ }
82
+ [role="search"] > *:focus,
83
+ [role="search"] input:not([type="checkbox"], [type="radio"]):focus,
84
+ [role="search"] select:focus,
85
+ [role="group"] > *:focus,
86
+ [role="group"] input:not([type="checkbox"], [type="radio"]):focus,
87
+ [role="group"] select:focus {
88
+ z-index: 2;
89
+ }
90
+ [role="search"] button:not(:first-child),
91
+ [role="search"] [type="submit"]:not(:first-child),
92
+ [role="search"] [type="reset"]:not(:first-child),
93
+ [role="search"] [type="button"]:not(:first-child),
94
+ [role="search"] [role="button"]:not(:first-child),
95
+ [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
96
+ [role="search"] select:not(:first-child),
97
+ [role="group"] button:not(:first-child),
98
+ [role="group"] [type="submit"]:not(:first-child),
99
+ [role="group"] [type="reset"]:not(:first-child),
100
+ [role="group"] [type="button"]:not(:first-child),
101
+ [role="group"] [role="button"]:not(:first-child),
102
+ [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
103
+ [role="group"] select:not(:first-child) {
104
+ margin-left: calc(var(--pico-border-width) * -1);
105
+ }
106
+ [role="search"] button,
107
+ [role="search"] [type="submit"],
108
+ [role="search"] [type="reset"],
109
+ [role="search"] [type="button"],
110
+ [role="search"] [role="button"],
111
+ [role="group"] button,
112
+ [role="group"] [type="submit"],
113
+ [role="group"] [type="reset"],
114
+ [role="group"] [type="button"],
115
+ [role="group"] [role="button"] {
116
+ width: auto;
117
+ }
118
+ @supports selector(:has(*)) {
119
+ [role="search"]:has(
120
+ button:focus,
121
+ [type="submit"]:focus,
122
+ [type="button"]:focus,
123
+ [role="button"]:focus
124
+ ),
125
+ [role="group"]:has(
126
+ button:focus,
127
+ [type="submit"]:focus,
128
+ [type="button"]:focus,
129
+ [role="button"]:focus
130
+ ) {
131
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button);
132
+ }
133
+ [role="search"]:has(
134
+ button:focus,
135
+ [type="submit"]:focus,
136
+ [type="button"]:focus,
137
+ [role="button"]:focus
138
+ )
139
+ input:not([type="checkbox"], [type="radio"]),
140
+ [role="search"]:has(
141
+ button:focus,
142
+ [type="submit"]:focus,
143
+ [type="button"]:focus,
144
+ [role="button"]:focus
145
+ )
146
+ select,
147
+ [role="group"]:has(
148
+ button:focus,
149
+ [type="submit"]:focus,
150
+ [type="button"]:focus,
151
+ [role="button"]:focus
152
+ )
153
+ input:not([type="checkbox"], [type="radio"]),
154
+ [role="group"]:has(
155
+ button:focus,
156
+ [type="submit"]:focus,
157
+ [type="button"]:focus,
158
+ [role="button"]:focus
159
+ )
160
+ select {
161
+ border-color: transparent;
162
+ }
163
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus),
164
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
165
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input);
166
+ }
167
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button,
168
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
169
+ [type="submit"],
170
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
171
+ [type="button"],
172
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
173
+ [role="button"],
174
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button,
175
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
176
+ [type="submit"],
177
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
178
+ [type="button"],
179
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
180
+ [role="button"] {
181
+ --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border);
182
+ --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border);
183
+ }
184
+ [role="search"] button:focus,
185
+ [role="search"] [type="submit"]:focus,
186
+ [role="search"] [type="reset"]:focus,
187
+ [role="search"] [type="button"]:focus,
188
+ [role="search"] [role="button"]:focus,
189
+ [role="group"] button:focus,
190
+ [role="group"] [type="submit"]:focus,
191
+ [role="group"] [type="reset"]:focus,
192
+ [role="group"] [type="button"]:focus,
193
+ [role="group"] [role="button"]:focus {
194
+ box-shadow: none;
195
+ }
196
+ }
197
+
198
+ [role="search"] > *:first-child {
199
+ border-top-left-radius: 5rem;
200
+ border-bottom-left-radius: 5rem;
201
+ }
202
+ [role="search"] > *:last-child {
203
+ border-top-right-radius: 5rem;
204
+ border-bottom-right-radius: 5rem;
205
+ }
@@ -0,0 +1,9 @@
1
+ @import "./_accordion";
2
+ @import "./_card";
3
+ @import "./_dropdown";
4
+ @import "./_group";
5
+ @import "./_loading";
6
+ @import "./_modal";
7
+ @import "./_nav";
8
+ @import "./_progress";
9
+ @import "./_tooltip";
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Loading ([aria-busy=true])
3
+ */
4
+ :where(:scope),
5
+ :host {
6
+ --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");
7
+ }
8
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
9
+ :host {
10
+ --pico-loading-spinner-opacity: 0.5;
11
+ }
12
+
13
+ [aria-busy="true"]:not(input, select, textarea, html, form) {
14
+ white-space: nowrap;
15
+ }
16
+ [aria-busy="true"]:not(input, select, textarea, html, form)::before {
17
+ display: inline-block;
18
+ width: 1em;
19
+ height: 1em;
20
+ background-image: var(--pico-icon-loading);
21
+ background-size: 1em auto;
22
+ background-repeat: no-repeat;
23
+ content: "";
24
+ vertical-align: -0.125em;
25
+ }
26
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty)::before {
27
+ margin-inline-end: calc(var(--pico-spacing) * 0.5);
28
+ }
29
+ [aria-busy="true"]:not(input, select, textarea, html, form):empty {
30
+ text-align: center;
31
+ }
32
+
33
+ button[aria-busy="true"],
34
+ [type="submit"][aria-busy="true"],
35
+ [type="button"][aria-busy="true"],
36
+ [type="reset"][aria-busy="true"],
37
+ [role="button"][aria-busy="true"],
38
+ a[aria-busy="true"] {
39
+ pointer-events: none;
40
+ }
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Modal (<dialog>)
3
+ */
4
+ :where(:scope),
5
+ :host {
6
+ --pico-modal-overlay-backdrop-filter: blur(0.375rem);
7
+ --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");
8
+ }
9
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
10
+ :host {
11
+ --pico-modal-overlay-background-color: light-dark(
12
+ rgba(232, 234, 237, 0.75),
13
+ rgba(7.5, 8.5, 10, 0.75)
14
+ );
15
+ }
16
+
17
+ :scope,
18
+ :host {
19
+ --pico-scrollbar-width: 0px;
20
+ }
21
+
22
+ dialog {
23
+ display: flex;
24
+ z-index: 999;
25
+ position: fixed;
26
+ top: 0;
27
+ right: 0;
28
+ bottom: 0;
29
+ left: 0;
30
+ align-items: center;
31
+ justify-content: center;
32
+ width: inherit;
33
+ min-width: 100%;
34
+ height: inherit;
35
+ min-height: 100%;
36
+ padding: 0;
37
+ border: 0;
38
+ -webkit-backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
39
+ backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
40
+ background-color: var(--pico-modal-overlay-background-color);
41
+ color: var(--pico-color);
42
+ }
43
+ dialog > article {
44
+ width: 100%;
45
+ max-height: calc(100vh - var(--pico-spacing) * 2);
46
+ margin: var(--pico-spacing);
47
+ overflow: auto;
48
+ }
49
+ @media (min-width: 576px) {
50
+ dialog > article {
51
+ max-width: 510px;
52
+ }
53
+ }
54
+ @media (min-width: 768px) {
55
+ dialog > article {
56
+ max-width: 700px;
57
+ }
58
+ }
59
+ dialog > article > header > * {
60
+ margin-bottom: 0;
61
+ }
62
+ dialog > article > header .close,
63
+ dialog > article > header :is(a, button)[rel="prev"] {
64
+ margin: 0;
65
+ margin-left: var(--pico-spacing);
66
+ padding: 0;
67
+ float: right;
68
+ }
69
+ dialog > article > footer {
70
+ text-align: end;
71
+ }
72
+ dialog > article > footer button,
73
+ dialog > article > footer [role="button"] {
74
+ margin-bottom: 0;
75
+ }
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);
79
+ }
80
+ dialog > article .close,
81
+ dialog > article :is(a, button)[rel="prev"] {
82
+ display: block;
83
+ width: 1rem;
84
+ height: 1rem;
85
+ margin-top: calc(var(--pico-spacing) * -1);
86
+ margin-bottom: var(--pico-spacing);
87
+ margin-left: auto;
88
+ border: none;
89
+ background-image: var(--pico-icon-close);
90
+ background-position: center;
91
+ background-size: auto 1rem;
92
+ background-repeat: no-repeat;
93
+ background-color: transparent;
94
+ opacity: 0.5;
95
+ transition: opacity var(--pico-transition);
96
+ }
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
+ ) {
106
+ opacity: 1;
107
+ }
108
+ dialog:not([open]),
109
+ dialog[open="false"] {
110
+ display: none;
111
+ }
112
+
113
+ .modal-is-open {
114
+ padding-right: var(--pico-scrollbar-width, 0px);
115
+ overflow: hidden;
116
+ pointer-events: none;
117
+ touch-action: none;
118
+ }
119
+ .modal-is-open dialog {
120
+ pointer-events: auto;
121
+ touch-action: auto;
122
+ }
123
+
124
+ :where(.modal-is-opening, .modal-is-closing) dialog,
125
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
126
+ animation-duration: 0.2s;
127
+ animation-timing-function: ease-in-out;
128
+ animation-fill-mode: both;
129
+ }
130
+ :where(.modal-is-opening, .modal-is-closing) dialog {
131
+ animation-duration: 0.8s;
132
+ animation-name: modal-overlay;
133
+ }
134
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
135
+ animation-delay: 0.2s;
136
+ animation-name: modal;
137
+ }
138
+
139
+ .modal-is-closing dialog,
140
+ .modal-is-closing dialog > article {
141
+ animation-delay: 0s;
142
+ animation-direction: reverse;
143
+ }
144
+
145
+ @keyframes modal-overlay {
146
+ from {
147
+ -webkit-backdrop-filter: none;
148
+ backdrop-filter: none;
149
+ background-color: transparent;
150
+ }
151
+ }
152
+ @keyframes modal {
153
+ from {
154
+ transform: translateY(-100%);
155
+ opacity: 0;
156
+ }
157
+ }