sakana-element 2.2.0 → 2.4.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 (155) hide show
  1. package/README.md +98 -25
  2. package/dist/es/{Alert-C76ZWSVk.js → Alert-DfLsJvQD.js} +2 -2
  3. package/dist/es/Avatar-Ci4OKsv7.js +9 -0
  4. package/dist/es/{Badge-CoFWwBwv.js → Badge-B4wEToK6.js} +2 -2
  5. package/dist/es/{Breadcrumb-BtrwTVKW.js → Breadcrumb-BFzww8jd.js} +2 -2
  6. package/dist/es/{Button-S_31-UWJ.js → Button-DbFviVWb.js} +3 -3
  7. package/dist/es/{Card-DcW6nHYD.js → Card-ClRqKkc_.js} +2 -2
  8. package/dist/es/ChatBubble-DFEV_lVI.js +9 -0
  9. package/dist/es/Checkbox-l86YI3Fr.js +51 -0
  10. package/dist/es/{Collapse-DsS7M-m3.js → Collapse-B67v6RSE.js} +4 -4
  11. package/dist/es/{ConfigProvider-BgIewHXP.js → ConfigProvider-BCoGbcS5.js} +2 -2
  12. package/dist/es/Diff-BLiniLom.js +64 -0
  13. package/dist/es/Divider-DDSOHv8G.js +9 -0
  14. package/dist/es/Drawer-apeXw6EO.js +40 -0
  15. package/dist/es/Dropdown-By9qIErf.js +104 -0
  16. package/dist/es/{FileInput-BQ59woas.js → FileInput-CZ5jTfB_.js} +3 -3
  17. package/dist/es/Filter-B_1zU4Dq.js +40 -0
  18. package/dist/es/Form-B_XDnSjK.js +123 -0
  19. package/dist/es/{Icon-DpJyuj7c.js → Icon-D6qRB3pq.js} +1 -1
  20. package/dist/es/Indicator-C6Ip4dpP.js +9 -0
  21. package/dist/es/{Input-CiE4bPJN.js → Input-bThwBbNZ.js} +7 -7
  22. package/dist/es/Kbd-DXNjs7at.js +13 -0
  23. package/dist/es/{Link-B9B2APZq.js → Link-08Ee61Fv.js} +1 -1
  24. package/dist/es/{Loading-BW99pE5N.js → Loading-ByI9mjss.js} +13 -13
  25. package/dist/es/Message-CGG-lV5I.js +152 -0
  26. package/dist/es/Notification-B4clKY5h.js +69 -0
  27. package/dist/es/{Overlay-BRDSWspM.js → Overlay-6iPenJB1.js} +1 -1
  28. package/dist/es/Pixelate-A8J7jxDW.js +39 -0
  29. package/dist/es/Popconfirm-gcHGcOTz.js +23 -0
  30. package/dist/es/Progress-DFUBJQ4X.js +12 -0
  31. package/dist/es/Radio-CLBa1XIM.js +33 -0
  32. package/dist/es/Resizable-BWrFr2oj.js +151 -0
  33. package/dist/es/{Select-Dwqv8isB.js → Select-BtLqds1d.js} +20 -20
  34. package/dist/es/Skeleton-CGUQv3nQ.js +15 -0
  35. package/dist/es/{Switch-B1Gnv1tB.js → Switch-CZJ-S77_.js} +3 -3
  36. package/dist/es/Table-lHbxiyGq.js +10 -0
  37. package/dist/es/Tooltip-CdPqNYdn.js +74 -0
  38. package/dist/es/Validator-7ZT_nXDZ.js +40 -0
  39. package/dist/es/hooks-pU4JmsO3.js +171 -0
  40. package/dist/es/index.js +107 -70
  41. package/dist/es/utils-BXICIEsD.js +139 -0
  42. package/dist/es/{vendor-DXmGx29U.js → vendor-DrBJKLFW.js} +254 -210
  43. package/dist/index.css +1 -1
  44. package/dist/theme/Avatar.css +13 -43
  45. package/dist/theme/Badge.css +151 -151
  46. package/dist/theme/Breadcrumb.css +46 -4
  47. package/dist/theme/Button.css +72 -8
  48. package/dist/theme/Card.css +177 -93
  49. package/dist/theme/ChatBubble.css +218 -0
  50. package/dist/theme/Checkbox.css +604 -0
  51. package/dist/theme/Collapse.css +96 -96
  52. package/dist/theme/Diff.css +110 -0
  53. package/dist/theme/Divider.css +150 -0
  54. package/dist/theme/Drawer.css +206 -0
  55. package/dist/theme/Dropdown.css +359 -75
  56. package/dist/theme/FileInput.css +32 -0
  57. package/dist/theme/Filter.css +598 -0
  58. package/dist/theme/Indicator.css +159 -0
  59. package/dist/theme/Input.css +414 -406
  60. package/dist/theme/Kbd.css +104 -0
  61. package/dist/theme/Link.css +22 -3
  62. package/dist/theme/Loading.css +50 -12
  63. package/dist/theme/Message.css +250 -41
  64. package/dist/theme/Notification.css +232 -42
  65. package/dist/theme/Popconfirm.css +23 -7
  66. package/dist/theme/Progress.css +278 -0
  67. package/dist/theme/Radio.css +492 -0
  68. package/dist/theme/Resizable.css +95 -0
  69. package/dist/theme/Select.css +198 -88
  70. package/dist/theme/Skeleton.css +192 -0
  71. package/dist/theme/Switch.css +22 -3
  72. package/dist/theme/Table.css +680 -0
  73. package/dist/theme/Tooltip.css +150 -26
  74. package/dist/theme/Validator.css +25 -0
  75. package/dist/types/components/Avatar/types.d.ts +0 -2
  76. package/dist/types/components/ChatBubble/constants.d.ts +2 -0
  77. package/dist/types/components/ChatBubble/index.d.ts +27 -0
  78. package/dist/types/components/ChatBubble/types.d.ts +10 -0
  79. package/dist/types/components/Checkbox/constants.d.ts +5 -0
  80. package/dist/types/components/Checkbox/index.d.ts +94 -0
  81. package/dist/types/components/Checkbox/types.d.ts +46 -0
  82. package/dist/types/components/Collapse/index.d.ts +5 -5
  83. package/dist/types/components/Diff/constants.d.ts +4 -0
  84. package/dist/types/components/Diff/index.d.ts +67 -0
  85. package/dist/types/components/Diff/types.d.ts +29 -0
  86. package/dist/types/components/Divider/index.d.ts +30 -0
  87. package/dist/types/components/Divider/types.d.ts +10 -0
  88. package/dist/types/components/Drawer/constants.d.ts +1 -0
  89. package/dist/types/components/Drawer/index.d.ts +72 -0
  90. package/dist/types/components/Drawer/types.d.ts +20 -0
  91. package/dist/types/components/Dropdown/index.d.ts +13 -3
  92. package/dist/types/components/Dropdown/types.d.ts +3 -0
  93. package/dist/types/components/Dropdown/useDropdownKeyboard.d.ts +8 -0
  94. package/dist/types/components/FileInput/index.d.ts +5 -5
  95. package/dist/types/components/Filter/constants.d.ts +5 -0
  96. package/dist/types/components/Filter/index.d.ts +59 -0
  97. package/dist/types/components/Filter/types.d.ts +38 -0
  98. package/dist/types/components/Indicator/constants.d.ts +2 -0
  99. package/dist/types/components/Indicator/index.d.ts +28 -0
  100. package/dist/types/components/Indicator/types.d.ts +10 -0
  101. package/dist/types/components/Input/index.d.ts +10 -10
  102. package/dist/types/components/Kbd/constants.d.ts +3 -0
  103. package/dist/types/components/Kbd/index.d.ts +24 -0
  104. package/dist/types/components/Kbd/types.d.ts +10 -0
  105. package/dist/types/components/Message/methods.d.ts +2 -0
  106. package/dist/types/components/Message/types.d.ts +7 -1
  107. package/dist/types/components/MessageBox/types.d.ts +14 -2
  108. package/dist/types/components/Notification/methods.d.ts +3 -0
  109. package/dist/types/components/Notification/types.d.ts +8 -2
  110. package/dist/types/components/Pixelate/constants.d.ts +2 -0
  111. package/dist/types/components/Pixelate/index.d.ts +71 -0
  112. package/dist/types/components/Pixelate/types.d.ts +23 -0
  113. package/dist/types/components/Popconfirm/index.d.ts +18 -9
  114. package/dist/types/components/Popconfirm/types.d.ts +2 -1
  115. package/dist/types/components/Progress/constants.d.ts +2 -0
  116. package/dist/types/components/Progress/index.d.ts +50 -0
  117. package/dist/types/components/Progress/types.d.ts +22 -0
  118. package/dist/types/components/Radio/constants.d.ts +5 -0
  119. package/dist/types/components/Radio/index.d.ts +88 -0
  120. package/dist/types/components/Radio/types.d.ts +43 -0
  121. package/dist/types/components/Resizable/constants.d.ts +3 -0
  122. package/dist/types/components/Resizable/index.d.ts +135 -0
  123. package/dist/types/components/Resizable/types.d.ts +52 -0
  124. package/dist/types/components/Select/index.d.ts +32 -23
  125. package/dist/types/components/Skeleton/index.d.ts +36 -0
  126. package/dist/types/components/Skeleton/types.d.ts +12 -0
  127. package/dist/types/components/Switch/index.d.ts +5 -5
  128. package/dist/types/components/Table/index.d.ts +27 -0
  129. package/dist/types/components/Table/types.d.ts +20 -0
  130. package/dist/types/components/Tooltip/index.d.ts +9 -3
  131. package/dist/types/components/Tooltip/types.d.ts +7 -0
  132. package/dist/types/components/Validator/index.d.ts +52 -0
  133. package/dist/types/components/Validator/types.d.ts +13 -0
  134. package/dist/types/components/index.d.ts +15 -0
  135. package/dist/types/hooks/index.d.ts +3 -1
  136. package/dist/types/hooks/useDraggable.d.ts +7 -0
  137. package/dist/types/hooks/useFocusTrap.d.ts +5 -0
  138. package/dist/types/utils/index.d.ts +2 -0
  139. package/dist/types/utils/instance-management.d.ts +40 -0
  140. package/dist/types/utils/pixelate.d.ts +10 -0
  141. package/dist/types/utils/style.d.ts +1 -0
  142. package/dist/umd/index.css +1 -1
  143. package/dist/umd/index.css.gz +0 -0
  144. package/dist/umd/index.umd.cjs +4 -4
  145. package/dist/umd/index.umd.cjs.gz +0 -0
  146. package/package.json +59 -59
  147. package/dist/es/Avatar-CxsRW-wl.js +0 -9
  148. package/dist/es/Dropdown-GcomGMAI.js +0 -40
  149. package/dist/es/Form-j90EzLXU.js +0 -122
  150. package/dist/es/Message-DCNnTUje.js +0 -123
  151. package/dist/es/Notification-CBzY5904.js +0 -58
  152. package/dist/es/Popconfirm-DF6d2ORS.js +0 -23
  153. package/dist/es/Tooltip-k6gKnMyt.js +0 -74
  154. package/dist/es/hooks-BaG7l8K5.js +0 -116
  155. package/dist/es/utils-bsCscZfS.js +0 -84
@@ -0,0 +1,192 @@
1
+ /* ─── Skeleton Variables ─── */
2
+ .px-skeleton {
3
+ --px-skeleton-bg-color: var(--px-fill-color-darker, #e0e0e0);
4
+ --px-skeleton-shimmer-color: var(--px-fill-color-light, #f5f5f5);
5
+ --px-skeleton-border-color: var(--px-border-color, #c0c0c0);
6
+ --px-skeleton-shadow-color: var(--px-shadow-color, rgba(0, 0, 0, 0.15));
7
+
8
+ /* Inset bevels (sunken look — opposite of Button's raised look) */
9
+ --px-skeleton-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.3);
10
+ --px-skeleton-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.12);
11
+
12
+ /* Dither overlay color */
13
+ --px-skeleton-dither-color: rgba(255, 255, 255, 0.15);
14
+ }
15
+ /* ─── Base bone / row — positioned container ─── */
16
+ .px-skeleton__bone,
17
+ .px-skeleton__row {
18
+ display: block;
19
+ position: relative;
20
+ background: transparent;
21
+
22
+ /* Pixel drop-shadow traces the pseudo-element shapes */
23
+ filter: drop-shadow(2px 2px 0 var(--px-skeleton-shadow-color));
24
+ }
25
+ /* Border layer */
26
+ .px-skeleton__bone::before, .px-skeleton__row::before {
27
+ content: '';
28
+ position: absolute;
29
+ inset: 0;
30
+ background: var(--px-skeleton-border-color);
31
+ z-index: -1;
32
+ }
33
+ /* Fill layer — inset by border width */
34
+ .px-skeleton__bone::after, .px-skeleton__row::after {
35
+ content: '';
36
+ position: absolute;
37
+ inset: 2px;
38
+ background: var(--px-skeleton-bg-color);
39
+ box-shadow:
40
+ var(--px-skeleton-inset-highlight),
41
+ var(--px-skeleton-inset-shadow);
42
+ z-index: -1;
43
+ }
44
+ .px-skeleton__bone {
45
+ width: 100%;
46
+ height: 16px;
47
+ }
48
+ /* ─── Clip-paths per variant ─── */
49
+ /* Rectangular / Text — 2px chamfered pixel corners */
50
+ .px-skeleton--rectangular .px-skeleton__bone::before,
51
+ .px-skeleton--rectangular .px-skeleton__bone::after,
52
+ .px-skeleton--rectangular .px-skeleton__row::before,
53
+ .px-skeleton--rectangular .px-skeleton__row::after,
54
+ .px-skeleton--text .px-skeleton__bone::before,
55
+ .px-skeleton--text .px-skeleton__bone::after,
56
+ .px-skeleton--text .px-skeleton__row::before,
57
+ .px-skeleton--text .px-skeleton__row::after {
58
+ clip-path: polygon(
59
+ 0 2px, 2px 2px, 2px 0,
60
+ calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px,
61
+ 100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%,
62
+ 2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px)
63
+ );
64
+ }
65
+ /* Rounded — 4px staircase corners */
66
+ .px-skeleton--rounded .px-skeleton__bone::before,
67
+ .px-skeleton--rounded .px-skeleton__bone::after {
68
+ clip-path: polygon(
69
+ 0 4px, 2px 4px, 2px 2px, 4px 2px, 4px 0,
70
+ calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 4px, 100% 4px,
71
+ 100% calc(100% - 4px), calc(100% - 2px) calc(100% - 4px), calc(100% - 2px) calc(100% - 2px), calc(100% - 4px) calc(100% - 2px), calc(100% - 4px) 100%,
72
+ 4px 100%, 4px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 4px), 0 calc(100% - 4px)
73
+ );
74
+ }
75
+ /* Circular — 4-step staircase pixel circle (matching Avatar/Button) */
76
+ .px-skeleton--circular .px-skeleton__bone::before,
77
+ .px-skeleton--circular .px-skeleton__bone::after {
78
+ clip-path: polygon(
79
+ 0 10px, 2px 10px, 2px 6px, 4px 6px, 4px 4px, 6px 4px, 6px 2px, 10px 2px, 10px 0,
80
+ calc(100% - 10px) 0, calc(100% - 10px) 2px, calc(100% - 6px) 2px, calc(100% - 6px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 6px, calc(100% - 2px) 6px, calc(100% - 2px) 10px, 100% 10px,
81
+ 100% calc(100% - 10px), calc(100% - 2px) calc(100% - 10px), calc(100% - 2px) calc(100% - 6px), calc(100% - 4px) calc(100% - 6px), calc(100% - 4px) calc(100% - 4px), calc(100% - 6px) calc(100% - 4px), calc(100% - 6px) calc(100% - 2px), calc(100% - 10px) calc(100% - 2px), calc(100% - 10px) 100%,
82
+ 10px 100%, 10px calc(100% - 2px), 6px calc(100% - 2px), 6px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 6px), 2px calc(100% - 6px), 2px calc(100% - 10px), 0 calc(100% - 10px)
83
+ );
84
+ }
85
+ /* ─── Animation: Shimmer — Scanline sweep ─── */
86
+ @keyframes px-skeleton-shimmer {
87
+ 0% { background-position: -30% 0, 0 0;
88
+ }
89
+ 100% { background-position: 130% 0, 0 0;
90
+ }
91
+ }
92
+ .px-skeleton.is-animated.is-animation-shimmer .px-skeleton__bone::after,
93
+ .px-skeleton.is-animated.is-animation-shimmer .px-skeleton__row::after {
94
+ background:
95
+ /* Narrow hard-edged highlight band — scanline-like */
96
+ linear-gradient(
97
+ 90deg,
98
+ transparent 0%,
99
+ transparent 40%,
100
+ var(--px-skeleton-shimmer-color) 45%,
101
+ var(--px-skeleton-shimmer-color) 55%,
102
+ transparent 60%,
103
+ transparent 100%
104
+ ),
105
+ var(--px-skeleton-bg-color);
106
+ background-size: 200% 100%, 100% 100%;
107
+ animation: px-skeleton-shimmer 1.5s steps(12, jump-none) infinite;
108
+ }
109
+ /* ─── Animation: Pulse — Two-frame blink ─── */
110
+ @keyframes px-skeleton-pulse {
111
+ 0%, 100% { opacity: 1;
112
+ }
113
+ 50% { opacity: 0.5;
114
+ }
115
+ }
116
+ .px-skeleton.is-animated.is-animation-pulse .px-skeleton__bone::after,
117
+ .px-skeleton.is-animated.is-animation-pulse .px-skeleton__row::after {
118
+ animation: px-skeleton-pulse 1.2s steps(2, jump-none) infinite;
119
+ }
120
+ /* ─── Animation: Dither — Checkerboard dissolve ─── */
121
+ @keyframes px-skeleton-dither {
122
+ 0% { background-position: 0 0, 0 0;
123
+ }
124
+ 25% { background-position: 2px 0, 0 0;
125
+ }
126
+ 50% { background-position: 2px 2px, 0 0;
127
+ }
128
+ 75% { background-position: 0 2px, 0 0;
129
+ }
130
+ 100% { background-position: 0 0, 0 0;
131
+ }
132
+ }
133
+ .px-skeleton.is-animated.is-animation-dither .px-skeleton__bone::after,
134
+ .px-skeleton.is-animated.is-animation-dither .px-skeleton__row::after {
135
+ background:
136
+ /* 2×2 pixel checkerboard dither pattern */
137
+ repeating-conic-gradient(
138
+ var(--px-skeleton-dither-color) 0% 25%,
139
+ transparent 0% 50%
140
+ ) 0 0 / 4px 4px,
141
+ var(--px-skeleton-bg-color);
142
+ animation: px-skeleton-dither 1.6s steps(4, jump-none) infinite;
143
+ }
144
+ /* ─── Text variant — thin horizontal bars ─── */
145
+ .px-skeleton--text .px-skeleton__bone {
146
+ height: 12px;
147
+ }
148
+ .px-skeleton--text .px-skeleton__row {
149
+ height: 12px;
150
+ margin-bottom: 8px;
151
+ }
152
+ .px-skeleton--text .px-skeleton__row:last-child {
153
+ margin-bottom: 0;
154
+ }
155
+ /* ─── Circular variant ─── */
156
+ .px-skeleton--circular .px-skeleton__bone {
157
+ width: 40px;
158
+ height: 40px;
159
+ }
160
+ /* ─── Size: Large ─── */
161
+ .px-skeleton--large .px-skeleton__bone {
162
+ height: 24px;
163
+ }
164
+ .px-skeleton--large .px-skeleton__row {
165
+ height: 18px;
166
+ }
167
+ .px-skeleton--large.px-skeleton--circular .px-skeleton__bone {
168
+ width: 56px;
169
+ height: 56px;
170
+ }
171
+ /* ─── Size: Small ─── */
172
+ .px-skeleton--small .px-skeleton__bone {
173
+ height: 12px;
174
+ }
175
+ .px-skeleton--small .px-skeleton__row {
176
+ height: 10px;
177
+ margin-bottom: 6px;
178
+ }
179
+ .px-skeleton--small.px-skeleton--circular .px-skeleton__bone {
180
+ width: 28px;
181
+ height: 28px;
182
+ }
183
+ /* ─── Dark mode ─── */
184
+ .px-dark .px-skeleton {
185
+ --px-skeleton-bg-color: var(--px-fill-color-darker, #3a3a3a);
186
+ --px-skeleton-shimmer-color: var(--px-fill-color, #4a4a4a);
187
+ --px-skeleton-border-color: var(--px-border-color, #555);
188
+ --px-skeleton-shadow-color: rgba(0, 0, 0, 0.3);
189
+ --px-skeleton-inset-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.08);
190
+ --px-skeleton-inset-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
191
+ --px-skeleton-dither-color: rgba(255, 255, 255, 0.08);
192
+ }
@@ -6,6 +6,14 @@
6
6
  --px-switch-off-border-color: var(--px-border-color);
7
7
  --px-switch-shadow-color: var(--px-shadow-color);
8
8
  --px-switch-handle-color: var(--px-color-white);
9
+
10
+ /* Track groove (sunken bevel) */
11
+ --px-switch-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.12);
12
+ --px-switch-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.1);
13
+
14
+ /* Handle (raised bevel) */
15
+ --px-switch-handle-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.3);
16
+ --px-switch-handle-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.12);
9
17
  }
10
18
  /* Base Switch Styles - Pixel Toggle */
11
19
  .px-switch {
@@ -40,6 +48,8 @@
40
48
  }
41
49
  .px-switch.is-checked .px-switch__core::after {
42
50
  background: var(--px-switch-on-color);
51
+ box-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.06),
52
+ inset -2px -2px 0 0 rgba(255, 255, 255, 0.15);
43
53
  }
44
54
  .px-switch.is-checked .px-switch__core {
45
55
 
@@ -141,7 +151,7 @@
141
151
  );
142
152
  z-index: 0;
143
153
  }
144
- /* Fill layer — pixel shape */
154
+ /* Fill layer — pixel shape with sunken groove bevel */
145
155
  .px-switch__core::after {
146
156
  content: "";
147
157
  position: absolute;
@@ -169,6 +179,7 @@
169
179
  2px calc(100% - 4px),
170
180
  0 calc(100% - 4px)
171
181
  );
182
+ box-shadow: var(--px-switch-inset-shadow), var(--px-switch-inset-highlight);
172
183
  z-index: 0;
173
184
  }
174
185
  /* The toggle handle - pixel square */
@@ -178,7 +189,7 @@
178
189
  width: 18px;
179
190
  height: 18px;
180
191
  background: transparent;
181
- transition: none;
192
+ transition: left 0.15s steps(3);
182
193
  z-index: 2;
183
194
  display: flex;
184
195
  align-items: center;
@@ -205,7 +216,7 @@
205
216
  0 calc(100% - 2px)
206
217
  );
207
218
  }
208
- /* Handle fill layer */
219
+ /* Handle fill layer — raised bevel like a game D-pad button */
209
220
  .px-switch__core .px-switch__core-action::after {
210
221
  content: "";
211
222
  position: absolute;
@@ -225,6 +236,7 @@
225
236
  2px calc(100% - 2px),
226
237
  0 calc(100% - 2px)
227
238
  );
239
+ box-shadow: var(--px-switch-handle-highlight), var(--px-switch-handle-shadow);
228
240
  }
229
241
  /* Icon inside thumb */
230
242
  .px-switch__core .px-switch__core-action .px-switch__icon {
@@ -302,3 +314,10 @@
302
314
  var(--px-shadow-offset-x) var(--px-shadow-offset-y) 0px var(--px-color-danger-dark)
303
315
  );
304
316
  }
317
+ /* Dark mode bevel adjustments */
318
+ html.dark .px-switch {
319
+ --px-switch-inset-shadow: inset 2px 2px 0 0 rgba(0, 0, 0, 0.25);
320
+ --px-switch-inset-highlight: inset -2px -2px 0 0 rgba(255, 255, 255, 0.05);
321
+ --px-switch-handle-highlight: inset 2px 2px 0 0 rgba(255, 255, 255, 0.15);
322
+ --px-switch-handle-shadow: inset -2px -2px 0 0 rgba(0, 0, 0, 0.2);
323
+ }