sakana-element 2.3.0 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/es/{Alert-BwTsp4X3.js → Alert-DRIDwear.js} +2 -2
- package/dist/es/{Avatar-CJu6JYV3.js → Avatar-Dkvvhw_D.js} +1 -1
- package/dist/es/{Badge-BmxZXX8k.js → Badge-CLNacHVq.js} +2 -2
- package/dist/es/{Breadcrumb-BP8MSklj.js → Breadcrumb-CfJA9NZz.js} +2 -2
- package/dist/es/{Button-BJHtN7gh.js → Button-Dj1DIvXh.js} +3 -3
- package/dist/es/{Card-DJHkCmsz.js → Card-meh7F1e2.js} +1 -1
- package/dist/es/ChatBubble-Ccr3wzoK.js +9 -0
- package/dist/es/{Checkbox-DX8L3fyp.js → Checkbox-vOcwl1OX.js} +3 -3
- package/dist/es/{Collapse-Ir3V9CuO.js → Collapse-BG58s0uJ.js} +4 -4
- package/dist/es/{ConfigProvider-CsbSqwwi.js → ConfigProvider-Cr8Hpzf2.js} +2 -2
- package/dist/es/Diff-KQ44cDcY.js +64 -0
- package/dist/es/{Divider-C7PtODSK.js → Divider-CYYeUqYc.js} +1 -1
- package/dist/es/{Drawer-C2eVmvUp.js → Drawer-CDXFDfrf.js} +2 -2
- package/dist/es/{Dropdown-CVg_c2fB.js → Dropdown-CPZtzHPx.js} +9 -9
- package/dist/es/{FileInput-BE26BmXm.js → FileInput-Ram4-wy2.js} +3 -3
- package/dist/es/Filter-CLLkrn-W.js +40 -0
- package/dist/es/{Form-7lZt5ehf.js → Form-po3aIrSN.js} +62 -61
- package/dist/es/{Icon-BLDDdSU-.js → Icon-XJfGGAMY.js} +1 -1
- package/dist/es/{Indicator-B-en-MgG.js → Indicator-vsSp5r5K.js} +1 -1
- package/dist/es/{Input-C5HuVehE.js → Input-KrNqNZMe.js} +5 -5
- package/dist/es/Kbd-CtCGx7_s.js +13 -0
- package/dist/es/{Link-Av9RdcFv.js → Link-Bbwdgs74.js} +1 -1
- package/dist/es/{Loading-CBNDUWQd.js → Loading-DiyIiKxO.js} +3 -3
- package/dist/es/{Message-DgnyyuXn.js → Message-BoNCtMo7.js} +14 -14
- package/dist/es/{Notification-LYRXnVAf.js → Notification-CFY-yvRf.js} +13 -13
- package/dist/es/{Overlay-CpvMhnuU.js → Overlay-DoFA2lgP.js} +1 -1
- package/dist/es/Pixelate-dqwHc6nX.js +39 -0
- package/dist/es/{Popconfirm-DvxFdLrw.js → Popconfirm-DPOujyiA.js} +12 -12
- package/dist/es/{Progress-Bc5INMhJ.js → Progress-B0oYE8Z3.js} +1 -1
- package/dist/es/{Radio-263_rtRl.js → Radio-C-Ot7pLA.js} +3 -3
- package/dist/es/Resizable-G5KVHayx.js +151 -0
- package/dist/es/{Select-7ZxUCS8z.js → Select-DqxPeAKK.js} +14 -14
- package/dist/es/Skeleton-4SeKRKn9.js +15 -0
- package/dist/es/{Switch-DiCsMJT3.js → Switch-C_tBxZtT.js} +3 -3
- package/dist/es/{Table-BvA_xzDe.js → Table-Cr6HFL4_.js} +1 -1
- package/dist/es/{Tooltip-J3ji6weH.js → Tooltip-rak4BryQ.js} +3 -3
- package/dist/es/Validator-DKVfknvI.js +40 -0
- package/dist/es/{hooks-BqobYUzS.js → hooks-pTjI-j9o.js} +51 -53
- package/dist/es/index.js +119 -90
- package/dist/es/utils-DzOow9K9.js +155 -0
- package/dist/es/{vendor-DXmGx29U.js → vendor-DrBJKLFW.js} +254 -210
- package/dist/index.css +1 -1
- package/dist/{es/theme → theme}/Badge.css +151 -151
- package/dist/{es/theme → theme}/Button.css +92 -8
- package/dist/theme/ChatBubble.css +218 -0
- package/dist/{es/theme → theme}/Checkbox.css +138 -18
- package/dist/{es/theme → theme}/Collapse.css +96 -96
- package/dist/theme/Diff.css +110 -0
- package/dist/{es/theme → theme}/Divider.css +42 -3
- package/dist/{es/theme → theme}/Dropdown.css +2 -2
- package/dist/{es/theme → theme}/FileInput.css +32 -0
- package/dist/theme/Filter.css +598 -0
- package/dist/{es/theme → theme}/Input.css +414 -407
- package/dist/theme/Kbd.css +104 -0
- package/dist/{es/theme → theme}/Message.css +1 -1
- package/dist/{es/theme → theme}/Notification.css +44 -44
- package/dist/{es/theme → theme}/Radio.css +114 -48
- package/dist/theme/Resizable.css +95 -0
- package/dist/{es/theme → theme}/Select.css +198 -88
- package/dist/theme/Skeleton.css +192 -0
- package/dist/{es/theme → theme}/Switch.css +22 -3
- package/dist/theme/Validator.css +25 -0
- package/dist/types/components/ChatBubble/constants.d.ts +2 -0
- package/dist/types/components/ChatBubble/index.d.ts +27 -0
- package/dist/types/components/ChatBubble/types.d.ts +10 -0
- package/dist/types/components/Diff/constants.d.ts +4 -0
- package/dist/types/components/Diff/index.d.ts +67 -0
- package/dist/types/components/Diff/types.d.ts +29 -0
- package/dist/types/components/Dropdown/index.d.ts +3 -3
- package/dist/types/components/Filter/constants.d.ts +5 -0
- package/dist/types/components/Filter/index.d.ts +59 -0
- package/dist/types/components/Filter/types.d.ts +38 -0
- package/dist/types/components/Icon/index.d.ts +1 -0
- package/dist/types/components/Kbd/constants.d.ts +3 -0
- package/dist/types/components/Kbd/index.d.ts +24 -0
- package/dist/types/components/Kbd/types.d.ts +10 -0
- package/dist/types/components/Pixelate/index.d.ts +3 -3
- package/dist/types/components/Popconfirm/index.d.ts +3 -3
- package/dist/types/components/Resizable/constants.d.ts +3 -0
- package/dist/types/components/Resizable/index.d.ts +135 -0
- package/dist/types/components/Resizable/types.d.ts +52 -0
- package/dist/types/components/Select/index.d.ts +3 -3
- package/dist/types/components/Skeleton/index.d.ts +36 -0
- package/dist/types/components/Skeleton/types.d.ts +12 -0
- package/dist/types/components/Tooltip/index.d.ts +3 -3
- package/dist/types/components/Validator/index.d.ts +52 -0
- package/dist/types/components/Validator/types.d.ts +13 -0
- package/dist/types/components/index.d.ts +8 -1
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useFocusController.d.ts +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/pixelate.d.ts +10 -0
- package/dist/types/utils/style.d.ts +1 -0
- package/dist/umd/index.css +1 -1
- package/dist/umd/index.css.gz +0 -0
- package/dist/umd/index.umd.cjs +3 -3
- package/dist/umd/index.umd.cjs.gz +0 -0
- package/package.json +4 -4
- package/dist/es/Pixelate-BPypBgJU.js +0 -67
- package/dist/es/utils-BS5vsvlM.js +0 -101
- /package/dist/{es/theme → theme}/Alert.css +0 -0
- /package/dist/{es/theme → theme}/Avatar.css +0 -0
- /package/dist/{es/theme → theme}/Breadcrumb.css +0 -0
- /package/dist/{es/theme → theme}/Card.css +0 -0
- /package/dist/{es/theme → theme}/Drawer.css +0 -0
- /package/dist/{es/theme → theme}/Form.css +0 -0
- /package/dist/{es/theme → theme}/Icon.css +0 -0
- /package/dist/{es/theme → theme}/Indicator.css +0 -0
- /package/dist/{es/theme → theme}/Link.css +0 -0
- /package/dist/{es/theme → theme}/Loading.css +0 -0
- /package/dist/{es/theme → theme}/Overlay.css +0 -0
- /package/dist/{es/theme → theme}/Popconfirm.css +0 -0
- /package/dist/{es/theme → theme}/Progress.css +0 -0
- /package/dist/{es/theme → theme}/Table.css +0 -0
- /package/dist/{es/theme → theme}/Tooltip.css +0 -0
- /package/dist/{es/theme → theme}/fonts/zpix.woff2 +0 -0
- /package/dist/{es/theme → theme}/index.css +0 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/* ChatBubble Variables */
|
|
2
|
+
.px-chat[data-v-c022026d] {
|
|
3
|
+
--px-chat-bubble-bg-color: var(--px-fill-color-light);
|
|
4
|
+
--px-chat-bubble-text-color: var(--px-text-color-primary);
|
|
5
|
+
--px-chat-bubble-border-color: var(--px-border-color);
|
|
6
|
+
--px-chat-bubble-shadow-color: var(--px-shadow-color);
|
|
7
|
+
--px-chat-header-color: var(--px-text-color-secondary);
|
|
8
|
+
--px-chat-footer-color: var(--px-text-color-placeholder);
|
|
9
|
+
|
|
10
|
+
/* Beveled inset for 3D raised-bubble depth */
|
|
11
|
+
--px-chat-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.2);
|
|
12
|
+
--px-chat-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.06);
|
|
13
|
+
}
|
|
14
|
+
/* Base ChatBubble Styles - Pixel Game Aesthetic */
|
|
15
|
+
.px-chat[data-v-c022026d] {
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: flex-start;
|
|
18
|
+
gap: 8px;
|
|
19
|
+
font-family: var(--px-font-family);
|
|
20
|
+
font-size: var(--px-font-size-base);
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
transition: none;
|
|
23
|
+
}
|
|
24
|
+
/* Placement variants */
|
|
25
|
+
.px-chat--start[data-v-c022026d] {
|
|
26
|
+
flex-direction: row;
|
|
27
|
+
}
|
|
28
|
+
.px-chat--start .px-chat__header[data-v-c022026d] {
|
|
29
|
+
text-align: left;
|
|
30
|
+
}
|
|
31
|
+
.px-chat--start .px-chat__footer[data-v-c022026d] {
|
|
32
|
+
text-align: left;
|
|
33
|
+
}
|
|
34
|
+
/* Tail pointing left — positioned inside bubble */
|
|
35
|
+
.px-chat--start .px-chat__tail[data-v-c022026d] {
|
|
36
|
+
left: -6px;
|
|
37
|
+
|
|
38
|
+
/* Border layer: 4-step staircase pointing left */
|
|
39
|
+
background: var(--px-chat-bubble-border-color);
|
|
40
|
+
clip-path: polygon(
|
|
41
|
+
6px 0, 8px 0,
|
|
42
|
+
8px 8px,
|
|
43
|
+
0 8px, 0 6px,
|
|
44
|
+
2px 6px, 2px 4px,
|
|
45
|
+
4px 4px, 4px 2px,
|
|
46
|
+
6px 2px
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
/* Fill layer */
|
|
50
|
+
.px-chat--start .px-chat__tail[data-v-c022026d]::after {
|
|
51
|
+
content: '';
|
|
52
|
+
position: absolute;
|
|
53
|
+
inset: 0;
|
|
54
|
+
background: var(--px-chat-bubble-bg-color);
|
|
55
|
+
clip-path: polygon(
|
|
56
|
+
6px 2px, 8px 2px,
|
|
57
|
+
8px 6px,
|
|
58
|
+
4px 6px, 4px 4px,
|
|
59
|
+
6px 4px
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
.px-chat--end[data-v-c022026d] {
|
|
63
|
+
flex-direction: row-reverse;
|
|
64
|
+
}
|
|
65
|
+
.px-chat--end .px-chat__header[data-v-c022026d] {
|
|
66
|
+
text-align: right;
|
|
67
|
+
}
|
|
68
|
+
.px-chat--end .px-chat__footer[data-v-c022026d] {
|
|
69
|
+
text-align: right;
|
|
70
|
+
}
|
|
71
|
+
/* Tail pointing right — mirror of left */
|
|
72
|
+
.px-chat--end .px-chat__tail[data-v-c022026d] {
|
|
73
|
+
right: -6px;
|
|
74
|
+
left: auto;
|
|
75
|
+
|
|
76
|
+
/* Border layer: 4-step staircase pointing right */
|
|
77
|
+
background: var(--px-chat-bubble-border-color);
|
|
78
|
+
clip-path: polygon(
|
|
79
|
+
0 0, 2px 0,
|
|
80
|
+
2px 2px, 4px 2px,
|
|
81
|
+
4px 4px, 6px 4px,
|
|
82
|
+
6px 6px, 8px 6px,
|
|
83
|
+
8px 8px, 0 8px
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
/* Fill layer */
|
|
87
|
+
.px-chat--end .px-chat__tail[data-v-c022026d]::after {
|
|
88
|
+
content: '';
|
|
89
|
+
position: absolute;
|
|
90
|
+
inset: 0;
|
|
91
|
+
background: var(--px-chat-bubble-bg-color);
|
|
92
|
+
clip-path: polygon(
|
|
93
|
+
0 2px, 2px 2px,
|
|
94
|
+
2px 4px, 4px 4px,
|
|
95
|
+
4px 6px, 0 6px
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
/* Avatar */
|
|
99
|
+
.px-chat__avatar[data-v-c022026d] {
|
|
100
|
+
flex-shrink: 0;
|
|
101
|
+
}
|
|
102
|
+
/* Content wrapper */
|
|
103
|
+
.px-chat__content[data-v-c022026d] {
|
|
104
|
+
position: relative;
|
|
105
|
+
display: flex;
|
|
106
|
+
flex-direction: column;
|
|
107
|
+
gap: 4px;
|
|
108
|
+
max-width: 80%;
|
|
109
|
+
}
|
|
110
|
+
/* Header */
|
|
111
|
+
.px-chat__header[data-v-c022026d] {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
gap: 8px;
|
|
115
|
+
font-size: var(--px-font-size-small);
|
|
116
|
+
color: var(--px-chat-header-color);
|
|
117
|
+
line-height: 1.2;
|
|
118
|
+
}
|
|
119
|
+
.px-chat__name[data-v-c022026d] {
|
|
120
|
+
font-weight: 600;
|
|
121
|
+
}
|
|
122
|
+
.px-chat__time[data-v-c022026d] {
|
|
123
|
+
font-size: var(--px-font-size-extra-small);
|
|
124
|
+
opacity: 0.7;
|
|
125
|
+
}
|
|
126
|
+
/* Tail — positioned inside bubble (which is position:relative) */
|
|
127
|
+
.px-chat__tail[data-v-c022026d] {
|
|
128
|
+
position: absolute;
|
|
129
|
+
top: 8px;
|
|
130
|
+
width: 8px;
|
|
131
|
+
height: 8px;
|
|
132
|
+
z-index: 1;
|
|
133
|
+
}
|
|
134
|
+
/* Bubble — pixel border via pseudo-elements */
|
|
135
|
+
.px-chat__bubble[data-v-c022026d] {
|
|
136
|
+
position: relative;
|
|
137
|
+
padding: 8px 12px;
|
|
138
|
+
color: var(--px-chat-bubble-text-color);
|
|
139
|
+
background: transparent;
|
|
140
|
+
border: none;
|
|
141
|
+
line-height: 1.5;
|
|
142
|
+
word-break: break-word;
|
|
143
|
+
|
|
144
|
+
filter: drop-shadow(2px 2px 0px var(--px-chat-bubble-shadow-color));
|
|
145
|
+
}
|
|
146
|
+
/* Border layer */
|
|
147
|
+
.px-chat__bubble[data-v-c022026d]::before {
|
|
148
|
+
content: '';
|
|
149
|
+
position: absolute;
|
|
150
|
+
inset: 0;
|
|
151
|
+
background: var(--px-chat-bubble-border-color);
|
|
152
|
+
clip-path: polygon(
|
|
153
|
+
0 2px, 2px 2px, 2px 0,
|
|
154
|
+
calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
|
|
155
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
|
|
156
|
+
2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
157
|
+
);
|
|
158
|
+
z-index: -1;
|
|
159
|
+
}
|
|
160
|
+
/* Fill layer */
|
|
161
|
+
.px-chat__bubble[data-v-c022026d]::after {
|
|
162
|
+
content: '';
|
|
163
|
+
position: absolute;
|
|
164
|
+
inset: 2px;
|
|
165
|
+
background: var(--px-chat-bubble-bg-color);
|
|
166
|
+
clip-path: polygon(
|
|
167
|
+
0 2px, 2px 2px, 2px 0,
|
|
168
|
+
calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
|
|
169
|
+
100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
|
|
170
|
+
2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
|
|
171
|
+
);
|
|
172
|
+
box-shadow: var(--px-chat-inset-highlight), var(--px-chat-inset-shadow);
|
|
173
|
+
z-index: -1;
|
|
174
|
+
}
|
|
175
|
+
/* Footer */
|
|
176
|
+
.px-chat__footer[data-v-c022026d] {
|
|
177
|
+
font-size: var(--px-font-size-extra-small);
|
|
178
|
+
color: var(--px-chat-footer-color);
|
|
179
|
+
line-height: 1.2;
|
|
180
|
+
}
|
|
181
|
+
/* Type variants */
|
|
182
|
+
.px-chat--primary[data-v-c022026d] {
|
|
183
|
+
--px-chat-bubble-text-color: var(--px-color-white);
|
|
184
|
+
--px-chat-bubble-bg-color: var(--px-color-primary);
|
|
185
|
+
--px-chat-bubble-border-color: var(--px-color-primary-dark);
|
|
186
|
+
--px-chat-bubble-shadow-color: var(--px-color-primary-dark);
|
|
187
|
+
}
|
|
188
|
+
.px-chat--success[data-v-c022026d] {
|
|
189
|
+
--px-chat-bubble-text-color: var(--px-color-white);
|
|
190
|
+
--px-chat-bubble-bg-color: var(--px-color-success);
|
|
191
|
+
--px-chat-bubble-border-color: var(--px-color-success-dark);
|
|
192
|
+
--px-chat-bubble-shadow-color: var(--px-color-success-dark);
|
|
193
|
+
}
|
|
194
|
+
.px-chat--info[data-v-c022026d] {
|
|
195
|
+
--px-chat-bubble-text-color: var(--px-color-white);
|
|
196
|
+
--px-chat-bubble-bg-color: var(--px-color-info);
|
|
197
|
+
--px-chat-bubble-border-color: var(--px-color-info-dark);
|
|
198
|
+
--px-chat-bubble-shadow-color: var(--px-color-info-dark);
|
|
199
|
+
}
|
|
200
|
+
.px-chat--warning[data-v-c022026d] {
|
|
201
|
+
--px-chat-bubble-text-color: var(--px-color-white);
|
|
202
|
+
--px-chat-bubble-bg-color: var(--px-color-warning);
|
|
203
|
+
--px-chat-bubble-border-color: var(--px-color-warning-dark);
|
|
204
|
+
--px-chat-bubble-shadow-color: var(--px-color-warning-dark);
|
|
205
|
+
}
|
|
206
|
+
.px-chat--danger[data-v-c022026d] {
|
|
207
|
+
--px-chat-bubble-text-color: var(--px-color-white);
|
|
208
|
+
--px-chat-bubble-bg-color: var(--px-color-danger);
|
|
209
|
+
--px-chat-bubble-border-color: var(--px-color-danger-dark);
|
|
210
|
+
--px-chat-bubble-shadow-color: var(--px-color-danger-dark);
|
|
211
|
+
}
|
|
212
|
+
/* Dark mode */
|
|
213
|
+
html.dark .px-chat[data-v-c022026d],
|
|
214
|
+
.px-dark .px-chat[data-v-c022026d] {
|
|
215
|
+
--px-chat-bubble-bg-color: var(--px-fill-color-light);
|
|
216
|
+
--px-chat-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
|
|
217
|
+
--px-chat-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.15);
|
|
218
|
+
}
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
--px-checkbox-border-color: var(--px-border-color);
|
|
7
7
|
--px-checkbox-bg-color: var(--px-fill-color-blank);
|
|
8
8
|
--px-checkbox-shadow-color: var(--px-shadow-color);
|
|
9
|
+
|
|
10
|
+
/* 3D bevel — sunken look (unchecked) */
|
|
11
|
+
--px-checkbox-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
|
|
12
|
+
--px-checkbox-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.1);
|
|
9
13
|
}
|
|
10
14
|
/* Base Checkbox Styles */
|
|
11
15
|
.px-checkbox {
|
|
@@ -36,12 +40,25 @@
|
|
|
36
40
|
.px-checkbox.is-checked .px-checkbox__inner .px-checkbox__tick, .px-checkbox.is-indeterminate .px-checkbox__inner .px-checkbox__tick {
|
|
37
41
|
opacity: 1;
|
|
38
42
|
}
|
|
39
|
-
/* Checked state */
|
|
43
|
+
/* Checked state — raised bevel */
|
|
44
|
+
.px-checkbox.is-checked {
|
|
45
|
+
--px-checkbox-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.2);
|
|
46
|
+
--px-checkbox-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.1);
|
|
47
|
+
}
|
|
40
48
|
.px-checkbox.is-checked .px-checkbox__input {
|
|
41
49
|
filter: drop-shadow(
|
|
42
50
|
var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-checkbox-checked-border-color)
|
|
43
51
|
);
|
|
44
52
|
}
|
|
53
|
+
/* Hover feedback */
|
|
54
|
+
.px-checkbox:hover:not(.is-disabled) .px-checkbox__inner::after {
|
|
55
|
+
--px-checkbox-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.35);
|
|
56
|
+
}
|
|
57
|
+
/* Active/pressed feedback */
|
|
58
|
+
.px-checkbox:active:not(.is-disabled) .px-checkbox__inner::after {
|
|
59
|
+
--px-checkbox-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
|
|
60
|
+
--px-checkbox-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.15);
|
|
61
|
+
}
|
|
45
62
|
/* Indeterminate state */
|
|
46
63
|
.px-checkbox.is-indeterminate .px-checkbox__inner .px-checkbox__tick {
|
|
47
64
|
/* Override checkmark with a pixel-art horizontal dash */
|
|
@@ -152,13 +169,16 @@
|
|
|
152
169
|
clip-path: var(--px-checkbox-pixel-corners);
|
|
153
170
|
z-index: 0;
|
|
154
171
|
}
|
|
155
|
-
/* Fill layer - pixel shape */
|
|
172
|
+
/* Fill layer - pixel shape with 3D bevel */
|
|
156
173
|
.px-checkbox__inner::after {
|
|
157
174
|
content: "";
|
|
158
175
|
position: absolute;
|
|
159
176
|
inset: 2px;
|
|
160
177
|
background: var(--px-checkbox-bg-color);
|
|
161
178
|
clip-path: var(--px-checkbox-pixel-corners);
|
|
179
|
+
box-shadow:
|
|
180
|
+
var(--px-checkbox-inset-highlight),
|
|
181
|
+
var(--px-checkbox-inset-shadow);
|
|
162
182
|
z-index: 0;
|
|
163
183
|
}
|
|
164
184
|
/* Pixel checkmark */
|
|
@@ -168,14 +188,45 @@
|
|
|
168
188
|
width: 10px;
|
|
169
189
|
height: 10px;
|
|
170
190
|
opacity: 0;
|
|
171
|
-
/* Pixel
|
|
191
|
+
/* Pixel staircase checkmark (✓) — stepped 2px increments */
|
|
172
192
|
clip-path: polygon(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
193
|
+
/* Left arm descending */
|
|
194
|
+
10% 40%,
|
|
195
|
+
10% 60%,
|
|
196
|
+
20% 60%,
|
|
197
|
+
20% 70%,
|
|
198
|
+
30% 70%,
|
|
199
|
+
30% 80%,
|
|
200
|
+
/* Bottom vertex */
|
|
201
|
+
40% 80%,
|
|
202
|
+
40% 90%,
|
|
203
|
+
50% 90%,
|
|
204
|
+
50% 80%,
|
|
205
|
+
/* Right arm ascending */
|
|
206
|
+
60% 80%,
|
|
207
|
+
60% 70%,
|
|
208
|
+
70% 70%,
|
|
209
|
+
70% 60%,
|
|
210
|
+
80% 60%,
|
|
211
|
+
80% 50%,
|
|
212
|
+
90% 50%,
|
|
213
|
+
90% 30%,
|
|
214
|
+
/* Top of right arm */
|
|
215
|
+
80% 30%,
|
|
216
|
+
80% 40%,
|
|
217
|
+
70% 40%,
|
|
218
|
+
70% 50%,
|
|
219
|
+
60% 50%,
|
|
220
|
+
60% 60%,
|
|
221
|
+
50% 60%,
|
|
222
|
+
50% 70%,
|
|
223
|
+
/* Return along inner edge */
|
|
224
|
+
40% 70%,
|
|
225
|
+
40% 60%,
|
|
226
|
+
30% 60%,
|
|
227
|
+
30% 50%,
|
|
228
|
+
20% 50%,
|
|
229
|
+
20% 40%
|
|
179
230
|
);
|
|
180
231
|
background: var(--px-fill-color-blank);
|
|
181
232
|
}
|
|
@@ -233,6 +284,15 @@
|
|
|
233
284
|
var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark)
|
|
234
285
|
);
|
|
235
286
|
}
|
|
287
|
+
/* Dark mode bevel adjustment */
|
|
288
|
+
html.dark .px-checkbox {
|
|
289
|
+
--px-checkbox-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.08);
|
|
290
|
+
--px-checkbox-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.2);
|
|
291
|
+
}
|
|
292
|
+
html.dark .px-checkbox.is-checked {
|
|
293
|
+
--px-checkbox-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
|
|
294
|
+
--px-checkbox-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
|
|
295
|
+
}
|
|
236
296
|
/* Checkbox Group */
|
|
237
297
|
.px-checkbox-group {
|
|
238
298
|
display: inline-flex;
|
|
@@ -248,6 +308,10 @@
|
|
|
248
308
|
--px-checkbox-border-color: var(--px-border-color);
|
|
249
309
|
--px-checkbox-bg-color: var(--px-fill-color-blank);
|
|
250
310
|
--px-checkbox-shadow-color: var(--px-shadow-color);
|
|
311
|
+
|
|
312
|
+
/* 3D bevel — sunken look (unchecked) */
|
|
313
|
+
--px-checkbox-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
|
|
314
|
+
--px-checkbox-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.1);
|
|
251
315
|
}
|
|
252
316
|
/* Base Checkbox Styles */
|
|
253
317
|
.px-checkbox {
|
|
@@ -278,12 +342,25 @@
|
|
|
278
342
|
.px-checkbox.is-checked .px-checkbox__inner .px-checkbox__tick, .px-checkbox.is-indeterminate .px-checkbox__inner .px-checkbox__tick {
|
|
279
343
|
opacity: 1;
|
|
280
344
|
}
|
|
281
|
-
/* Checked state */
|
|
345
|
+
/* Checked state — raised bevel */
|
|
346
|
+
.px-checkbox.is-checked {
|
|
347
|
+
--px-checkbox-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.2);
|
|
348
|
+
--px-checkbox-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.1);
|
|
349
|
+
}
|
|
282
350
|
.px-checkbox.is-checked .px-checkbox__input {
|
|
283
351
|
filter: drop-shadow(
|
|
284
352
|
var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-checkbox-checked-border-color)
|
|
285
353
|
);
|
|
286
354
|
}
|
|
355
|
+
/* Hover feedback */
|
|
356
|
+
.px-checkbox:hover:not(.is-disabled) .px-checkbox__inner::after {
|
|
357
|
+
--px-checkbox-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.35);
|
|
358
|
+
}
|
|
359
|
+
/* Active/pressed feedback */
|
|
360
|
+
.px-checkbox:active:not(.is-disabled) .px-checkbox__inner::after {
|
|
361
|
+
--px-checkbox-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.2);
|
|
362
|
+
--px-checkbox-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.15);
|
|
363
|
+
}
|
|
287
364
|
/* Indeterminate state */
|
|
288
365
|
.px-checkbox.is-indeterminate .px-checkbox__inner .px-checkbox__tick {
|
|
289
366
|
/* Override checkmark with a pixel-art horizontal dash */
|
|
@@ -394,13 +471,16 @@
|
|
|
394
471
|
clip-path: var(--px-checkbox-pixel-corners);
|
|
395
472
|
z-index: 0;
|
|
396
473
|
}
|
|
397
|
-
/* Fill layer - pixel shape */
|
|
474
|
+
/* Fill layer - pixel shape with 3D bevel */
|
|
398
475
|
.px-checkbox__inner::after {
|
|
399
476
|
content: "";
|
|
400
477
|
position: absolute;
|
|
401
478
|
inset: 2px;
|
|
402
479
|
background: var(--px-checkbox-bg-color);
|
|
403
480
|
clip-path: var(--px-checkbox-pixel-corners);
|
|
481
|
+
box-shadow:
|
|
482
|
+
var(--px-checkbox-inset-highlight),
|
|
483
|
+
var(--px-checkbox-inset-shadow);
|
|
404
484
|
z-index: 0;
|
|
405
485
|
}
|
|
406
486
|
/* Pixel checkmark */
|
|
@@ -410,14 +490,45 @@
|
|
|
410
490
|
width: 10px;
|
|
411
491
|
height: 10px;
|
|
412
492
|
opacity: 0;
|
|
413
|
-
/* Pixel
|
|
493
|
+
/* Pixel staircase checkmark (✓) — stepped 2px increments */
|
|
414
494
|
clip-path: polygon(
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
495
|
+
/* Left arm descending */
|
|
496
|
+
10% 40%,
|
|
497
|
+
10% 60%,
|
|
498
|
+
20% 60%,
|
|
499
|
+
20% 70%,
|
|
500
|
+
30% 70%,
|
|
501
|
+
30% 80%,
|
|
502
|
+
/* Bottom vertex */
|
|
503
|
+
40% 80%,
|
|
504
|
+
40% 90%,
|
|
505
|
+
50% 90%,
|
|
506
|
+
50% 80%,
|
|
507
|
+
/* Right arm ascending */
|
|
508
|
+
60% 80%,
|
|
509
|
+
60% 70%,
|
|
510
|
+
70% 70%,
|
|
511
|
+
70% 60%,
|
|
512
|
+
80% 60%,
|
|
513
|
+
80% 50%,
|
|
514
|
+
90% 50%,
|
|
515
|
+
90% 30%,
|
|
516
|
+
/* Top of right arm */
|
|
517
|
+
80% 30%,
|
|
518
|
+
80% 40%,
|
|
519
|
+
70% 40%,
|
|
520
|
+
70% 50%,
|
|
521
|
+
60% 50%,
|
|
522
|
+
60% 60%,
|
|
523
|
+
50% 60%,
|
|
524
|
+
50% 70%,
|
|
525
|
+
/* Return along inner edge */
|
|
526
|
+
40% 70%,
|
|
527
|
+
40% 60%,
|
|
528
|
+
30% 60%,
|
|
529
|
+
30% 50%,
|
|
530
|
+
20% 50%,
|
|
531
|
+
20% 40%
|
|
421
532
|
);
|
|
422
533
|
background: var(--px-fill-color-blank);
|
|
423
534
|
}
|
|
@@ -475,6 +586,15 @@
|
|
|
475
586
|
var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark)
|
|
476
587
|
);
|
|
477
588
|
}
|
|
589
|
+
/* Dark mode bevel adjustment */
|
|
590
|
+
html.dark .px-checkbox {
|
|
591
|
+
--px-checkbox-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.08);
|
|
592
|
+
--px-checkbox-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.2);
|
|
593
|
+
}
|
|
594
|
+
html.dark .px-checkbox.is-checked {
|
|
595
|
+
--px-checkbox-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
|
|
596
|
+
--px-checkbox-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
|
|
597
|
+
}
|
|
478
598
|
/* Checkbox Group */
|
|
479
599
|
.px-checkbox-group {
|
|
480
600
|
display: inline-flex;
|