@anyblades/blades 3.1.0-beta.7 → 3.1.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.
Files changed (74) hide show
  1. package/README.md +173 -140
  2. package/css/blades.css +6 -6
  3. package/css/blades.min.css +6 -6
  4. package/css/blades.ninja.css +6 -6
  5. package/css/blades.ninja.min.css +6 -6
  6. package/css/float-label.css +1 -1
  7. package/css/float-label.min.css +1 -1
  8. package/css/layered/README.md +164 -0
  9. package/css/layered/_compact.css +30 -0
  10. package/css/layered/_utilities.css +23 -0
  11. package/css/layered/_variables-blades.css +8 -0
  12. package/css/layered/_variables.css +258 -0
  13. package/css/layered/blades.layered.css +6 -6
  14. package/css/layered/blades.layered.min.css +6 -6
  15. package/css/layered/components/_accordion.css +93 -0
  16. package/css/layered/components/_card.css +37 -0
  17. package/css/layered/components/_dropdown-popover.css +89 -0
  18. package/css/layered/components/_dropdown.css +188 -0
  19. package/css/layered/components/_group.css +89 -0
  20. package/css/layered/components/_index.css +950 -0
  21. package/css/layered/components/_loading.css +51 -0
  22. package/css/layered/components/_modal-modern.css +17 -0
  23. package/css/layered/components/_modal.css +144 -0
  24. package/css/layered/components/_nav.css +114 -0
  25. package/css/layered/components/_progress.css +68 -0
  26. package/css/layered/components/_timeline.css +7 -0
  27. package/css/layered/components/_tooltip.css +158 -0
  28. package/css/layered/content/_button.css +125 -0
  29. package/css/layered/content/_code-block.css +17 -0
  30. package/css/layered/content/_code.css +46 -0
  31. package/css/layered/content/_embedded-content.css +33 -0
  32. package/css/layered/content/_figure.css +10 -0
  33. package/css/layered/content/_icon.css +30 -0
  34. package/css/layered/content/_index.css +456 -0
  35. package/css/layered/content/_link.css +59 -0
  36. package/css/layered/content/_misc.css +15 -0
  37. package/css/layered/content/_table.css +24 -0
  38. package/css/layered/content/_typography.css +137 -0
  39. package/css/layered/forms/_basics.css +257 -0
  40. package/css/layered/forms/_checkbox-radio-switch.css +132 -0
  41. package/css/layered/forms/_index.css +617 -0
  42. package/css/layered/forms/_input-color.css +17 -0
  43. package/css/layered/forms/_input-datetime.css +37 -0
  44. package/css/layered/forms/_input-file.css +25 -0
  45. package/css/layered/forms/_input-range.css +111 -0
  46. package/css/layered/forms/_input-search.css +32 -0
  47. package/css/layered/forms/float-label/_core.css +28 -0
  48. package/css/layered/forms/float-label/_index.css +54 -0
  49. package/css/layered/forms/float-label/_theme.css +25 -0
  50. package/css/layered/forms/float-label/core.css +1 -1
  51. package/css/layered/forms/float-label.css +1 -1
  52. package/css/layered/layout/_columns.css +7 -0
  53. package/css/layered/layout/_container.css +39 -0
  54. package/css/layered/layout/_document.css +37 -0
  55. package/css/layered/layout/_grid.css +17 -0
  56. package/css/layered/layout/_index.css +103 -0
  57. package/css/layered/layout/_landmarks.css +3 -0
  58. package/css/layered/layout/_overflow-auto.css +3 -0
  59. package/css/layered/layout/_section.css +3 -0
  60. package/css/pico.canonical.css +2512 -0
  61. package/css/pico.canonical.min.css +1 -0
  62. package/css/pico.canonical.unmin.css +2512 -0
  63. package/css/pico.canonical.unmin.min.css +1 -0
  64. package/css/pico.conditional.css +2 -2
  65. package/css/pico.conditional.min.css +2 -2
  66. package/css/pico.css +2 -2
  67. package/css/pico.min.css +2 -2
  68. package/css/pico.unmin.css +2365 -0
  69. package/css/pico.unmin.min.css +7 -0
  70. package/package.json +12 -9
  71. package/src/blades/_index.css +1 -1
  72. package/src/blades/forms/float-label/_core.css +1 -1
  73. package/src/blades.css +2 -2
  74. package/src/pico/_index.css +2 -2
@@ -0,0 +1,51 @@
1
+ :where(:scope), :host {
2
+ --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");
3
+ }
4
+
5
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
6
+ --pico-loading-spinner-opacity: .5;
7
+ }
8
+
9
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])) {
10
+ white-space: nowrap;
11
+ }
12
+
13
+ [aria-busy="true"]:not(input, select, textarea, html, form):before {
14
+ background-image: var(--pico-icon-loading);
15
+ content: "";
16
+ vertical-align: -.125em;
17
+ background-repeat: no-repeat;
18
+ background-size: 1em;
19
+ width: 1em;
20
+ height: 1em;
21
+ display: inline-block;
22
+ }
23
+
24
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty):before {
25
+ margin-inline-end: calc(var(--pico-spacing) * .5);
26
+ }
27
+
28
+ [aria-busy="true"]:not(input, select, textarea, html, form):empty {
29
+ text-align: center;
30
+ }
31
+
32
+ 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"] {
33
+ pointer-events: none;
34
+ }
35
+
36
+ button, [type="submit"], [type="button"], [type="reset"], [role="button"] {
37
+ &[aria-busy="true"]:not(:empty) {
38
+ color: #0000;
39
+ position: relative;
40
+
41
+ & > * {
42
+ opacity: 0;
43
+ }
44
+
45
+ &:before {
46
+ margin: auto;
47
+ position: absolute;
48
+ inset: 0;
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,17 @@
1
+ dialog:modal {
2
+ transition: opacity var(--pico-transition);
3
+
4
+ & > article {
5
+ transition: transform var(--pico-transition);
6
+ }
7
+ }
8
+
9
+ @starting-style {
10
+ dialog:modal {
11
+ opacity: 0;
12
+
13
+ & > article {
14
+ transform: scale(.96);
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,144 @@
1
+ :where(:scope), :host {
2
+ --pico-modal-overlay-backdrop-filter: blur(.375rem);
3
+ --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");
4
+ }
5
+
6
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
7
+ --pico-modal-overlay-background-color: light-dark(#e8eaedbf, #08090abf);
8
+ }
9
+
10
+ :scope, :host {
11
+ --pico-scrollbar-width: 0px;
12
+ }
13
+
14
+ dialog {
15
+ z-index: 999;
16
+ width: inherit;
17
+ min-width: 100%;
18
+ height: inherit;
19
+ min-height: 100%;
20
+ backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
21
+ background-color: var(--pico-modal-overlay-background-color);
22
+ color: var(--pico-color);
23
+ border: 0;
24
+ justify-content: center;
25
+ align-items: center;
26
+ padding: 0;
27
+ display: flex;
28
+ position: fixed;
29
+ inset: 0;
30
+ }
31
+
32
+ dialog > article {
33
+ width: 100%;
34
+ max-height: calc(100vh - var(--pico-spacing) * 2);
35
+ margin: var(--pico-spacing);
36
+ overflow: auto;
37
+ }
38
+
39
+ @media (width >= 576px) {
40
+ dialog > article {
41
+ max-width: 510px;
42
+ }
43
+ }
44
+
45
+ @media (width >= 768px) {
46
+ dialog > article {
47
+ max-width: 700px;
48
+ }
49
+ }
50
+
51
+ dialog > article > header > * {
52
+ margin-bottom: 0;
53
+ }
54
+
55
+ dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
56
+ margin: 0;
57
+ margin-left: var(--pico-spacing);
58
+ float: right;
59
+ padding: 0;
60
+ }
61
+
62
+ dialog > article > footer {
63
+ text-align: end;
64
+ }
65
+
66
+ dialog > article > footer button, dialog > article > footer [role="button"] {
67
+ margin-bottom: 0;
68
+ }
69
+
70
+ dialog > article > footer button:not(:first-of-type), dialog > article > footer [role="button"]:not(:first-of-type) {
71
+ margin-left: calc(var(--pico-spacing) * .5);
72
+ }
73
+
74
+ dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
75
+ width: 1rem;
76
+ height: 1rem;
77
+ margin-top: calc(var(--pico-spacing) * -1);
78
+ margin-bottom: var(--pico-spacing);
79
+ background-image: var(--pico-icon-close);
80
+ opacity: .5;
81
+ transition: opacity var(--pico-transition);
82
+ background-color: #0000;
83
+ background-position: center;
84
+ background-repeat: no-repeat;
85
+ background-size: auto 1rem;
86
+ border: none;
87
+ margin-left: auto;
88
+ display: block;
89
+ }
90
+
91
+ 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) {
92
+ opacity: 1;
93
+ }
94
+
95
+ dialog:not([open]), dialog[open="false"] {
96
+ display: none;
97
+ }
98
+
99
+ .modal-is-open {
100
+ padding-right: var(--pico-scrollbar-width, 0px);
101
+ pointer-events: none;
102
+ touch-action: none;
103
+ overflow: hidden;
104
+ }
105
+
106
+ .modal-is-open dialog {
107
+ pointer-events: auto;
108
+ touch-action: auto;
109
+ }
110
+
111
+ :where(.modal-is-opening, .modal-is-closing) dialog, :where(.modal-is-opening, .modal-is-closing) dialog > article {
112
+ animation-duration: .2s;
113
+ animation-timing-function: ease-in-out;
114
+ animation-fill-mode: both;
115
+ }
116
+
117
+ :where(.modal-is-opening, .modal-is-closing) dialog {
118
+ animation-name: modal-overlay;
119
+ animation-duration: .8s;
120
+ }
121
+
122
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
123
+ animation-name: modal;
124
+ animation-delay: .2s;
125
+ }
126
+
127
+ .modal-is-closing dialog, .modal-is-closing dialog > article {
128
+ animation-direction: reverse;
129
+ animation-delay: 0s;
130
+ }
131
+
132
+ @keyframes modal-overlay {
133
+ from {
134
+ backdrop-filter: none;
135
+ background-color: #0000;
136
+ }
137
+ }
138
+
139
+ @keyframes modal {
140
+ from {
141
+ opacity: 0;
142
+ transform: translateY(-100%);
143
+ }
144
+ }
@@ -0,0 +1,114 @@
1
+ :where(:scope), :host {
2
+ --pico-nav-element-spacing-horizontal: .5rem;
3
+ --pico-nav-breadcrumb-divider: ">";
4
+ }
5
+
6
+ :where(nav li):before {
7
+ float: left;
8
+ content: "​";
9
+ }
10
+
11
+ nav, nav ul {
12
+ display: flex;
13
+ }
14
+
15
+ nav {
16
+ justify-content: space-between;
17
+ overflow: visible;
18
+ }
19
+
20
+ nav ol, nav ul {
21
+ align-items: center;
22
+ margin-bottom: 0;
23
+ padding: 0;
24
+ list-style: none;
25
+ }
26
+
27
+ nav ol:first-of-type, nav ul:first-of-type {
28
+ margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
29
+ }
30
+
31
+ nav ol:last-of-type, nav ul:last-of-type {
32
+ margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
33
+ }
34
+
35
+ nav li {
36
+ padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);
37
+ margin: 0;
38
+ display: inline-block;
39
+ }
40
+
41
+ nav li :where(a, [role="link"]) {
42
+ margin: calc(var(--pico-nav-link-spacing-vertical) * -1)
43
+ calc(var(--pico-nav-link-spacing-horizontal) * -1);
44
+ padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);
45
+ border-radius: var(--pico-border-radius);
46
+ display: inline-block;
47
+ }
48
+
49
+ nav li :where(a, [role="link"]):not(:hover) {
50
+ text-decoration: none;
51
+ }
52
+
53
+ 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 {
54
+ height: auto;
55
+ margin-right: inherit;
56
+ margin-bottom: 0;
57
+ margin-left: inherit;
58
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
59
+ var(--pico-nav-link-spacing-horizontal);
60
+ }
61
+
62
+ nav[aria-label="breadcrumb"] {
63
+ justify-content: start;
64
+ align-items: center;
65
+ }
66
+
67
+ nav[aria-label="breadcrumb"] ul li:not(:first-child) {
68
+ margin-inline-start: var(--pico-nav-link-spacing-horizontal);
69
+ }
70
+
71
+ nav[aria-label="breadcrumb"] ul li a {
72
+ margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0;
73
+ margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1);
74
+ }
75
+
76
+ nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
77
+ width: calc(var(--pico-nav-link-spacing-horizontal) * 4);
78
+ margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1);
79
+ content: var(--pico-nav-breadcrumb-divider);
80
+ color: var(--pico-muted-color);
81
+ text-align: center;
82
+ white-space: nowrap;
83
+ text-decoration: none;
84
+ display: inline-block;
85
+ position: absolute;
86
+ }
87
+
88
+ nav[aria-label="breadcrumb"] a[aria-current]:not([aria-current="false"]) {
89
+ color: inherit;
90
+ pointer-events: none;
91
+ background-color: #0000;
92
+ text-decoration: none;
93
+ }
94
+
95
+ aside nav, aside ol, aside ul, aside li {
96
+ display: block;
97
+ }
98
+
99
+ aside li {
100
+ padding: calc(var(--pico-nav-element-spacing-vertical) * .5)
101
+ var(--pico-nav-element-spacing-horizontal);
102
+ }
103
+
104
+ aside li a {
105
+ display: block;
106
+ }
107
+
108
+ aside li [role="button"] {
109
+ margin: inherit;
110
+ }
111
+
112
+ [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
113
+ content: "\\";
114
+ }
@@ -0,0 +1,68 @@
1
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2
+ --pico-progress-background-color: light-dark(#dfe3eb, #202632);
3
+ --pico-progress-color: var(--pico-primary-background);
4
+ }
5
+
6
+ progress {
7
+ vertical-align: baseline;
8
+ -webkit-appearance: none;
9
+ -moz-appearance: none;
10
+ appearance: none;
11
+ width: 100%;
12
+ height: .5rem;
13
+ margin-bottom: calc(var(--pico-spacing) * .5);
14
+ border-radius: var(--pico-border-radius);
15
+ background-color: var(--pico-progress-background-color);
16
+ color: var(--pico-progress-color);
17
+ border: 0;
18
+ display: inline-block;
19
+ overflow: hidden;
20
+ }
21
+
22
+ progress::-webkit-progress-bar {
23
+ border-radius: var(--pico-border-radius);
24
+ background: none;
25
+ }
26
+
27
+ progress[value]::-webkit-progress-value {
28
+ background-color: var(--pico-progress-color);
29
+ -webkit-transition: inline-size var(--pico-transition);
30
+ transition: inline-size var(--pico-transition);
31
+ }
32
+
33
+ progress::-moz-progress-bar {
34
+ background-color: var(--pico-progress-color);
35
+ }
36
+
37
+ @media (prefers-reduced-motion: no-preference) {
38
+ progress:indeterminate {
39
+ background: var(--pico-progress-background-color)
40
+ linear-gradient(to right,
41
+ var(--pico-progress-color) 30%,
42
+ var(--pico-progress-background-color) 30%)
43
+ top left/150% 150% no-repeat;
44
+ animation: 1s linear infinite progress-indeterminate;
45
+ }
46
+
47
+ progress:indeterminate[value]::-webkit-progress-value {
48
+ background-color: #0000;
49
+ }
50
+
51
+ progress:indeterminate::-moz-progress-bar {
52
+ background-color: #0000;
53
+ }
54
+
55
+ [dir="rtl"] progress:indeterminate {
56
+ animation-direction: reverse;
57
+ }
58
+ }
59
+
60
+ @keyframes progress-indeterminate {
61
+ 0% {
62
+ background-position: 200% 0;
63
+ }
64
+
65
+ 100% {
66
+ background-position: -200% 0;
67
+ }
68
+ }
@@ -0,0 +1,7 @@
1
+ dl.timeline, .has-timeline > dl {
2
+ & dd {
3
+ border-inline-start: .25rem solid var(--blades-timeline-border-color);
4
+ margin-block: 0;
5
+ padding: .25rem 0 .75rem 1rem;
6
+ }
7
+ }
@@ -0,0 +1,158 @@
1
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2
+ --pico-tooltip-background-color: var(--pico-contrast-background);
3
+ --pico-tooltip-color: var(--pico-contrast-inverse);
4
+ }
5
+
6
+ [data-tooltip] {
7
+ position: relative;
8
+ }
9
+
10
+ [data-tooltip]:not(a, button, input, [role="button"]) {
11
+ cursor: help;
12
+ border-bottom: 1px dotted;
13
+ text-decoration: none;
14
+ }
15
+
16
+ [data-tooltip][data-placement="top"]:before, [data-tooltip][data-placement="top"]:after, [data-tooltip]:before, [data-tooltip]:after {
17
+ z-index: 99;
18
+ border-radius: var(--pico-border-radius);
19
+ background: var(--pico-tooltip-background-color);
20
+ content: attr(data-tooltip);
21
+ color: var(--pico-tooltip-color);
22
+ font-style: normal;
23
+ font-weight: var(--pico-font-weight);
24
+ text-overflow: ellipsis;
25
+ white-space: nowrap;
26
+ opacity: 0;
27
+ pointer-events: none;
28
+ padding: .25rem .5rem;
29
+ font-size: .875rem;
30
+ text-decoration: none;
31
+ display: block;
32
+ position: absolute;
33
+ bottom: 100%;
34
+ left: 50%;
35
+ overflow: hidden;
36
+ transform: translate(-50%, -.25rem);
37
+ }
38
+
39
+ [data-tooltip][data-placement="top"]:after, [data-tooltip]:after {
40
+ content: "";
41
+ color: var(--pico-tooltip-background-color);
42
+ background-color: #0000;
43
+ border-top: .3rem solid;
44
+ border-left: .3rem solid #0000;
45
+ border-right: .3rem solid #0000;
46
+ border-radius: 0;
47
+ padding: 0;
48
+ transform: translate(-50%);
49
+ }
50
+
51
+ [data-tooltip][data-placement="bottom"]:before, [data-tooltip][data-placement="bottom"]:after {
52
+ top: 100%;
53
+ bottom: auto;
54
+ transform: translate(-50%, .25rem);
55
+ }
56
+
57
+ [data-tooltip][data-placement="bottom"]:after {
58
+ border: .3rem solid #0000;
59
+ border-bottom-color: currentColor;
60
+ transform: translate(-50%, -.3rem);
61
+ }
62
+
63
+ [data-tooltip][data-placement="left"]:before, [data-tooltip][data-placement="left"]:after {
64
+ inset: 50% 100% auto auto;
65
+ transform: translate(-.25rem, -50%);
66
+ }
67
+
68
+ [data-tooltip][data-placement="left"]:after {
69
+ border: .3rem solid #0000;
70
+ border-left-color: currentColor;
71
+ transform: translate(.3rem, -50%);
72
+ }
73
+
74
+ [data-tooltip][data-placement="right"]:before, [data-tooltip][data-placement="right"]:after {
75
+ inset: 50% auto auto 100%;
76
+ transform: translate(.25rem, -50%);
77
+ }
78
+
79
+ [data-tooltip][data-placement="right"]:after {
80
+ border: .3rem solid #0000;
81
+ border-right-color: currentColor;
82
+ transform: translate(-.3rem, -50%);
83
+ }
84
+
85
+ [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
86
+ opacity: 1;
87
+ }
88
+
89
+ @media (hover: hover) and (pointer: fine) {
90
+ [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
91
+ --pico-tooltip-slide-to: translate(-50%, -.25rem);
92
+ opacity: 0;
93
+ animation-name: tooltip-slide;
94
+ animation-duration: .2s;
95
+ animation-fill-mode: forwards;
96
+ transform: translate(-50%, .75rem);
97
+ }
98
+
99
+ [data-tooltip]:focus:after, [data-tooltip]:hover:after {
100
+ --pico-tooltip-caret-slide-to: translate(-50%, 0rem);
101
+ animation-name: tooltip-caret-slide;
102
+ transform: translate(-50%, -.25rem);
103
+ }
104
+
105
+ [data-tooltip][data-placement="bottom"]:focus:before, [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:before, [data-tooltip][data-placement="bottom"]:hover:after {
106
+ --pico-tooltip-slide-to: translate(-50%, .25rem);
107
+ animation-name: tooltip-slide;
108
+ transform: translate(-50%, -.75rem);
109
+ }
110
+
111
+ [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:after {
112
+ --pico-tooltip-caret-slide-to: translate(-50%, -.3rem);
113
+ animation-name: tooltip-caret-slide;
114
+ transform: translate(-50%, -.5rem);
115
+ }
116
+
117
+ [data-tooltip][data-placement="left"]:focus:before, [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:before, [data-tooltip][data-placement="left"]:hover:after {
118
+ --pico-tooltip-slide-to: translate(-.25rem, -50%);
119
+ animation-name: tooltip-slide;
120
+ transform: translate(.75rem, -50%);
121
+ }
122
+
123
+ [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:after {
124
+ --pico-tooltip-caret-slide-to: translate(.3rem, -50%);
125
+ animation-name: tooltip-caret-slide;
126
+ transform: translate(.05rem, -50%);
127
+ }
128
+
129
+ [data-tooltip][data-placement="right"]:focus:before, [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:before, [data-tooltip][data-placement="right"]:hover:after {
130
+ --pico-tooltip-slide-to: translate(.25rem, -50%);
131
+ animation-name: tooltip-slide;
132
+ transform: translate(-.75rem, -50%);
133
+ }
134
+
135
+ [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:after {
136
+ --pico-tooltip-caret-slide-to: translate(-.3rem, -50%);
137
+ animation-name: tooltip-caret-slide;
138
+ transform: translate(-.05rem, -50%);
139
+ }
140
+ }
141
+
142
+ @keyframes tooltip-slide {
143
+ to {
144
+ transform: var(--pico-tooltip-slide-to);
145
+ opacity: 1;
146
+ }
147
+ }
148
+
149
+ @keyframes tooltip-caret-slide {
150
+ 50% {
151
+ opacity: 0;
152
+ }
153
+
154
+ to {
155
+ transform: var(--pico-tooltip-caret-slide-to);
156
+ opacity: 1;
157
+ }
158
+ }
@@ -0,0 +1,125 @@
1
+ button {
2
+ text-transform: none;
3
+ margin: 0;
4
+ font-family: inherit;
5
+ overflow: visible;
6
+ }
7
+
8
+ button, [type="submit"], [type="reset"], [type="button"] {
9
+ -webkit-appearance: button;
10
+ }
11
+
12
+ button, [type="submit"], [type="reset"], [type="button"], [type="file"]::file-selector-button, [role="button"] {
13
+ --pico-background-color: var(--pico-primary-background);
14
+ --pico-border-color: var(--pico-primary-border);
15
+ --pico-color: var(--pico-primary-inverse);
16
+ --pico-box-shadow: var(--pico-button-box-shadow, 0 0 0 #0000);
17
+ padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
18
+ border: var(--pico-border-width) solid var(--pico-border-color);
19
+ border-radius: var(--pico-border-radius);
20
+ background-color: var(--pico-background-color);
21
+ box-shadow: var(--pico-box-shadow);
22
+ color: var(--pico-color);
23
+ font-weight: var(--pico-button-font-weight, var(--pico-font-weight));
24
+ font-size: 1rem;
25
+ line-height: var(--pico-line-height);
26
+ text-align: center;
27
+ cursor: pointer;
28
+ -webkit-user-select: none;
29
+ -moz-user-select: none;
30
+ user-select: none;
31
+ transition: background-color var(--pico-transition),
32
+ border-color var(--pico-transition),
33
+ color var(--pico-transition),
34
+ box-shadow var(--pico-transition);
35
+ outline: none;
36
+ text-decoration: none;
37
+ }
38
+
39
+ button[aria-current]:not([aria-current="false"]), button:is(:hover, :active, :focus), [type="submit"][aria-current]:not([aria-current="false"]), [type="submit"]:is(:hover, :active, :focus), [type="reset"][aria-current]:not([aria-current="false"]), [type="reset"]:is(:hover, :active, :focus), [type="button"][aria-current]:not([aria-current="false"]), [type="button"]:is(:hover, :active, :focus), [type="file"]::file-selector-button:is(), [type="file"]::file-selector-button:is(:hover, :active, :focus), [role="button"][aria-current]:not([aria-current="false"]), [role="button"]:is(:hover, :active, :focus) {
40
+ --pico-background-color: var(--pico-primary-hover-background);
41
+ --pico-border-color: var(--pico-primary-hover-border);
42
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000);
43
+ --pico-color: var(--pico-primary-inverse);
44
+ }
45
+
46
+ button:focus, button[aria-current]:not([aria-current="false"]):focus, [type="submit"]:focus, [type="submit"][aria-current]:not([aria-current="false"]):focus, [type="reset"]:focus, [type="reset"][aria-current]:not([aria-current="false"]):focus, [type="button"]:focus, [type="button"][aria-current]:not([aria-current="false"]):focus, [type="file"]::file-selector-button:focus, [type="file"]::file-selector-button:is():focus, [role="button"]:focus, [role="button"][aria-current]:not([aria-current="false"]):focus {
47
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
48
+ 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
49
+ }
50
+
51
+ [type="submit"], [type="reset"], [type="button"] {
52
+ margin-bottom: var(--pico-spacing);
53
+ }
54
+
55
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary, [type="reset"], [type="file"]::file-selector-button {
56
+ --pico-background-color: var(--pico-secondary-background);
57
+ --pico-border-color: var(--pico-secondary-border);
58
+ --pico-color: var(--pico-secondary-inverse);
59
+ cursor: pointer;
60
+ }
61
+
62
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="file"]::file-selector-button:is(:hover, :active, :focus) {
63
+ --pico-background-color: var(--pico-secondary-hover-background);
64
+ --pico-border-color: var(--pico-secondary-hover-border);
65
+ --pico-color: var(--pico-secondary-inverse);
66
+ }
67
+
68
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:focus, :is(button, [type="submit"], [type="button"], [role="button"]).secondary[aria-current]:not([aria-current="false"]):focus, [type="reset"]:focus, [type="reset"][aria-current]:not([aria-current="false"]):focus, [type="file"]::file-selector-button:focus, [type="file"]::file-selector-button:is():focus {
69
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
70
+ 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
71
+ }
72
+
73
+ :is(button, [type="submit"], [type="button"], [role="button"]).contrast {
74
+ --pico-background-color: var(--pico-contrast-background);
75
+ --pico-border-color: var(--pico-contrast-border);
76
+ --pico-color: var(--pico-contrast-inverse);
77
+ }
78
+
79
+ :is(button, [type="submit"], [type="button"], [role="button"]).contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
80
+ --pico-background-color: var(--pico-contrast-hover-background);
81
+ --pico-border-color: var(--pico-contrast-hover-border);
82
+ --pico-color: var(--pico-contrast-inverse);
83
+ }
84
+
85
+ :is(button, [type="submit"], [type="button"], [role="button"]).contrast:focus, :is(button, [type="submit"], [type="button"], [role="button"]).contrast[aria-current]:not([aria-current="false"]):focus {
86
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
87
+ 0 0 0 var(--pico-outline-width) var(--pico-contrast-focus);
88
+ }
89
+
90
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline, [type="reset"].outline {
91
+ --pico-background-color: transparent;
92
+ --pico-color: var(--pico-primary);
93
+ --pico-border-color: var(--pico-primary);
94
+ }
95
+
96
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
97
+ --pico-background-color: transparent;
98
+ --pico-color: var(--pico-primary-hover);
99
+ --pico-border-color: var(--pico-primary-hover);
100
+ }
101
+
102
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary, [type="reset"].outline {
103
+ --pico-color: var(--pico-secondary);
104
+ --pico-border-color: var(--pico-secondary);
105
+ }
106
+
107
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
108
+ --pico-color: var(--pico-secondary-hover);
109
+ --pico-border-color: var(--pico-secondary-hover);
110
+ }
111
+
112
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.contrast {
113
+ --pico-color: var(--pico-contrast);
114
+ --pico-border-color: var(--pico-contrast);
115
+ }
116
+
117
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
118
+ --pico-color: var(--pico-contrast-hover);
119
+ --pico-border-color: var(--pico-contrast-hover);
120
+ }
121
+
122
+ :where(button, [type="submit"], [type="reset"], [type="button"], [role="button"])[disabled], :where(fieldset[disabled]) :is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]) {
123
+ opacity: .5;
124
+ pointer-events: none;
125
+ }