@phpsoftbox/react-softbox 1.16.0 → 2.0.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 (78) hide show
  1. package/README.md +10 -0
  2. package/dist/components/Alert/Alert.js +8 -0
  3. package/dist/components/Alert/Alert.js.map +1 -1
  4. package/dist/components/Alert/Alert.module.css +65 -33
  5. package/dist/components/Badge/Badge.d.ts +4 -1
  6. package/dist/components/Badge/Badge.js +25 -3
  7. package/dist/components/Badge/Badge.js.map +1 -1
  8. package/dist/components/Badge/Badge.module.css +89 -32
  9. package/dist/components/Button/Button.d.ts +11 -2
  10. package/dist/components/Button/Button.js +20 -1
  11. package/dist/components/Button/Button.js.map +1 -1
  12. package/dist/components/Card/Card.d.ts +3 -1
  13. package/dist/components/Card/Card.js +9 -3
  14. package/dist/components/Card/Card.js.map +1 -1
  15. package/dist/components/Card/Card.module.css +8 -2
  16. package/dist/components/CollapseButton/CollapseButton.module.css +1 -1
  17. package/dist/components/Drawer/Drawer.module.css +1 -0
  18. package/dist/components/FileUploader/FileUploader.module.css +6 -6
  19. package/dist/components/Image/Image.module.css +2 -2
  20. package/dist/components/Input/Checkbox/Checkbox.module.css +2 -2
  21. package/dist/components/Input/ErrorTooltip/ErrorTooltip.module.css +1 -1
  22. package/dist/components/Input/FloatLabel/FloatLabel.module.css +2 -2
  23. package/dist/components/Input/FormField/FormField.module.css +2 -2
  24. package/dist/components/Input/Hint/Hint.module.css +1 -1
  25. package/dist/components/Input/Input.d.ts +12 -2
  26. package/dist/components/Input/Input.js +4 -1
  27. package/dist/components/Input/Input.js.map +1 -1
  28. package/dist/components/Input/Input.module.css +1 -1
  29. package/dist/components/Input/InputGroup.d.ts +14 -3
  30. package/dist/components/Input/InputGroup.js +27 -4
  31. package/dist/components/Input/InputGroup.js.map +1 -1
  32. package/dist/components/Input/InputGroup.module.css +83 -7
  33. package/dist/components/Input/Radio/Radio.js +1 -1
  34. package/dist/components/Input/Radio/Radio.js.map +1 -1
  35. package/dist/components/Input/Radio/Radio.module.css +2 -2
  36. package/dist/components/Input/Select/Select.d.ts +2 -1
  37. package/dist/components/Input/Select/Select.js +2 -2
  38. package/dist/components/Input/Select/Select.js.map +1 -1
  39. package/dist/components/Input/Select/Select.module.css +22 -9
  40. package/dist/components/Input/Switch/Switch.module.css +2 -2
  41. package/dist/components/Input/Textarea/Textarea.module.css +1 -1
  42. package/dist/components/MarkdownEditor/MarkdownEditor.module.css +51 -17
  43. package/dist/components/Menu/Menu.module.css +3 -3
  44. package/dist/components/Modal/Modal.module.css +1 -1
  45. package/dist/components/Notifier/Notifier.js +4 -0
  46. package/dist/components/Notifier/Notifier.js.map +1 -1
  47. package/dist/components/Notifier/Notifier.module.css +38 -16
  48. package/dist/components/Pagination/Pagination.module.css +1 -1
  49. package/dist/components/Progress/Progress.js +4 -0
  50. package/dist/components/Progress/Progress.js.map +1 -1
  51. package/dist/components/Progress/Progress.module.css +24 -8
  52. package/dist/components/Table/Table.js +4 -0
  53. package/dist/components/Table/Table.js.map +1 -1
  54. package/dist/components/Table/Table.module.css +24 -8
  55. package/dist/components/Tooltip/Tooltip.module.css +1 -1
  56. package/dist/components/Typography/Heading.js +4 -0
  57. package/dist/components/Typography/Heading.js.map +1 -1
  58. package/dist/components/Typography/Text.js +4 -0
  59. package/dist/components/Typography/Text.js.map +1 -1
  60. package/dist/components/Typography/Typography.module.css +22 -6
  61. package/dist/components/Wizard/Wizard.d.ts +2 -0
  62. package/dist/components/Wizard/Wizard.js +24 -2
  63. package/dist/components/Wizard/Wizard.js.map +1 -1
  64. package/dist/components/Wizard/Wizard.module.css +54 -40
  65. package/dist/foundations/buttons.css +268 -54
  66. package/dist/foundations/layout.css +2 -2
  67. package/dist/foundations/tabs.css +3 -3
  68. package/dist/foundations/tokens.css +304 -74
  69. package/dist/foundations/utilities.css +738 -0
  70. package/dist/index.d.ts +1 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/types.d.ts +1 -1
  73. package/docs/card.md +2 -1
  74. package/docs/feedback.md +8 -1
  75. package/docs/forms.md +28 -2
  76. package/docs/layout.md +42 -2
  77. package/docs/theme.md +46 -2
  78. package/package.json +1 -1
@@ -32,16 +32,17 @@
32
32
 
33
33
  .step {
34
34
  display: flex;
35
- align-items: flex-start;
35
+ align-items: center;
36
36
  gap: var(--spacing-2);
37
37
  min-height: 56px;
38
38
  padding: 10px 12px;
39
- border-radius: var(--radius-xs);
40
- border: 1px solid var(--color-line);
41
- background: var(--surface-panel-soft);
42
- color: var(--color-muted);
39
+ border-radius: var(--wizard-step-border-radius, var(--radius-default));
40
+ border: 1px solid var(--wizard-step-border, var(--color-line));
41
+ background: var(--wizard-step-bg, var(--surface-panel-soft));
42
+ color: var(--wizard-step-color, var(--color-muted));
43
43
  font-size: var(--font-size-3);
44
44
  line-height: 1.2;
45
+ text-align: left;
45
46
  }
46
47
 
47
48
  .stepClickable {
@@ -49,32 +50,24 @@
49
50
  }
50
51
 
51
52
  .stepDisabled {
52
- opacity: 0.55;
53
+ color: var(--variant-disabled-text);
54
+ border-color: var(--variant-disabled-border);
55
+ background: var(--variant-disabled-bg);
56
+ opacity: 1;
53
57
  cursor: not-allowed;
54
58
  }
55
59
 
56
60
  .stepDisabled .stepIndex {
57
- background: rgba(30, 51, 85, 0.45);
61
+ background: var(--variant-disabled-border);
62
+ color: var(--variant-disabled-text);
58
63
  }
59
64
 
60
65
  .stepClickable:hover {
61
- border-color: var(--color-teal);
62
- color: var(--color-text);
66
+ filter: brightness(1.08);
63
67
  }
64
68
 
65
69
  .stepActive {
66
- color: var(--color-text);
67
- border-color: var(--color-teal);
68
- box-shadow: var(--shadow-glow);
69
- }
70
-
71
- .stepCompleted {
72
- color: var(--color-mint);
73
- border-color: rgba(79, 230, 163, 0.8);
74
- }
75
-
76
- .stepUpcoming {
77
- color: var(--color-muted);
70
+ box-shadow: 0 0 0 1px var(--wizard-step-shadow, transparent);
78
71
  }
79
72
 
80
73
  .stepIndex {
@@ -83,10 +76,11 @@
83
76
  justify-content: center;
84
77
  width: 22px;
85
78
  height: 22px;
86
- border-radius: 999px;
87
- background: rgba(30, 51, 85, 0.7);
88
- color: inherit;
79
+ border-radius: var(--wizard-step-index-border-radius, var(--radius-circle));
80
+ background: var(--wizard-step-index-bg, var(--variant-neutral-bg));
81
+ color: var(--wizard-step-index-color, var(--variant-neutral-text));
89
82
  font-size: var(--font-size-2);
83
+ font-weight: 700;
90
84
  flex-shrink: 0;
91
85
  }
92
86
 
@@ -105,7 +99,7 @@
105
99
  }
106
100
 
107
101
  .stepDescription {
108
- color: var(--color-muted-2);
102
+ color: color-mix(in srgb, currentColor 72%, var(--color-muted-2));
109
103
  font-size: var(--font-size-2);
110
104
  }
111
105
 
@@ -120,7 +114,7 @@
120
114
  justify-content: center;
121
115
  min-height: 56px;
122
116
  padding: 10px 12px;
123
- border-radius: var(--radius-xs);
117
+ border-radius: var(--wizard-step-border-radius, var(--radius-default));
124
118
  border: 1px dashed var(--color-line);
125
119
  color: var(--color-muted-2);
126
120
  font-size: var(--font-size-2);
@@ -137,7 +131,7 @@
137
131
 
138
132
  .content {
139
133
  border: 1px solid var(--color-line);
140
- border-radius: var(--radius-md);
134
+ border-radius: var(--wizard-content-border-radius, var(--radius-default));
141
135
  padding: var(--spacing-4);
142
136
  background: var(--surface-panel-soft);
143
137
  }
@@ -156,7 +150,7 @@
156
150
 
157
151
  .summary {
158
152
  border: 1px solid var(--color-line);
159
- border-radius: var(--radius-sm);
153
+ border-radius: var(--wizard-summary-border-radius, var(--radius-default));
160
154
  background: var(--surface-panel-soft);
161
155
  padding: var(--spacing-3);
162
156
  color: var(--color-text);
@@ -195,31 +189,51 @@
195
189
  }
196
190
 
197
191
  .summaryDefault {
198
- border-color: rgba(30, 51, 85, 0.6);
199
- box-shadow: 0 0 0 1px rgba(30, 51, 85, 0.2);
192
+ border-color: var(--variant-neutral-border);
193
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-neutral-bg) 20%, transparent);
200
194
  }
201
195
 
202
196
  .summaryPrimary {
203
- border-color: rgba(20, 201, 214, 0.5);
204
- box-shadow: 0 0 0 1px rgba(20, 201, 214, 0.2);
197
+ border-color: var(--variant-primary-border);
198
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-primary-bg) 20%, transparent);
199
+ }
200
+
201
+ .summarySecondary {
202
+ border-color: var(--variant-secondary-border);
203
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-secondary-bg) 20%, transparent);
205
204
  }
206
205
 
207
206
  .summaryInfo {
208
- border-color: rgba(30, 99, 233, 0.4);
209
- box-shadow: 0 0 0 1px rgba(30, 99, 233, 0.2);
207
+ border-color: var(--variant-info-border);
208
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-info-bg) 20%, transparent);
210
209
  }
211
210
 
212
211
  .summarySuccess {
213
- border-color: rgba(79, 230, 163, 0.5);
214
- box-shadow: 0 0 0 1px rgba(79, 230, 163, 0.2);
212
+ border-color: var(--variant-success-border);
213
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-success-bg) 20%, transparent);
215
214
  }
216
215
 
217
216
  .summaryWarning {
218
- border-color: rgba(246, 200, 106, 0.5);
219
- box-shadow: 0 0 0 1px rgba(246, 200, 106, 0.2);
217
+ border-color: var(--variant-warning-border);
218
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-warning-bg) 20%, transparent);
220
219
  }
221
220
 
222
221
  .summaryDanger {
223
- border-color: rgba(255, 107, 107, 0.5);
224
- box-shadow: 0 0 0 1px rgba(255, 107, 107, 0.2);
222
+ border-color: var(--variant-danger-border);
223
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-danger-bg) 20%, transparent);
224
+ }
225
+
226
+ .summaryDark {
227
+ border-color: var(--variant-dark-border);
228
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-dark-bg) 20%, transparent);
229
+ }
230
+
231
+ .summaryLight {
232
+ border-color: var(--variant-light-border);
233
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-light-bg) 30%, transparent);
234
+ }
235
+
236
+ .summaryNeutral {
237
+ border-color: var(--variant-neutral-border);
238
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--variant-neutral-bg) 20%, transparent);
225
239
  }
@@ -9,7 +9,7 @@
9
9
  font-family: inherit;
10
10
  line-height: 1;
11
11
  padding: 12px 18px;
12
- border-radius: var(--radius-sm);
12
+ border-radius: var(--btn-border-radius, var(--radius-default));
13
13
  font-size: var(--font-size-3);
14
14
  background: var(--btn-bg, rgba(15, 30, 51, 0.9));
15
15
  color: var(--btn-color, var(--color-text));
@@ -33,20 +33,42 @@
33
33
 
34
34
  .btn:hover:not(.btn-disabled):not(:disabled) {
35
35
  background: var(--btn-bg-hover, var(--btn-bg));
36
+ border-color: var(--btn-border-hover, var(--btn-border, rgba(30, 51, 85, 0.6)));
36
37
  box-shadow: var(--btn-shadow-hover, var(--btn-shadow, none));
37
38
  }
38
39
 
39
40
  .btn:active:not(.btn-disabled):not(:disabled) {
41
+ background: var(--btn-bg-active, var(--btn-bg-hover, var(--btn-bg)));
42
+ border-color: var(--btn-border-active, var(--btn-border-hover, var(--btn-border, rgba(30, 51, 85, 0.6))));
40
43
  transform: translateY(1px);
41
44
  }
42
45
 
43
46
  .btn:disabled,
44
47
  .btn.btn-disabled {
45
- opacity: 0.6;
48
+ background: var(--btn-bg-disabled, var(--variant-disabled-bg));
49
+ border-color: var(--btn-border-disabled, var(--variant-disabled-border));
50
+ color: var(--btn-color-disabled, var(--variant-disabled-text));
51
+ box-shadow: none;
52
+ transform: none;
53
+ opacity: 1;
46
54
  cursor: not-allowed;
47
55
  pointer-events: none;
48
56
  }
49
57
 
58
+ .btn-outline:disabled,
59
+ .btn-outline.btn-disabled {
60
+ background: transparent;
61
+ border-color: var(--btn-border-disabled, var(--variant-disabled-border));
62
+ color: var(--btn-color-disabled, var(--variant-disabled-text));
63
+ }
64
+
65
+ .btn-ghost:disabled,
66
+ .btn-ghost.btn-disabled {
67
+ background: transparent;
68
+ border-color: transparent;
69
+ color: var(--btn-color-disabled, var(--variant-disabled-text));
70
+ }
71
+
50
72
  .btn-solid {
51
73
  transform: translateY(0);
52
74
  }
@@ -58,19 +80,19 @@
58
80
  .btn-sm {
59
81
  padding: 8px 14px;
60
82
  font-size: var(--font-size-2);
61
- border-radius: var(--radius-xs);
83
+ border-radius: var(--btn-border-radius, var(--radius-default));
62
84
  }
63
85
 
64
86
  .btn-md {
65
87
  padding: 12px 18px;
66
88
  font-size: var(--font-size-3);
67
- border-radius: var(--radius-sm);
89
+ border-radius: var(--btn-border-radius, var(--radius-default));
68
90
  }
69
91
 
70
92
  .btn-lg {
71
93
  padding: 14px 22px;
72
94
  font-size: var(--font-size-4);
73
- border-radius: var(--radius-md);
95
+ border-radius: var(--btn-border-radius, var(--radius-default));
74
96
  }
75
97
 
76
98
  .btn-outline,
@@ -88,74 +110,266 @@
88
110
  }
89
111
 
90
112
  .btn-outline:hover:not(.btn-disabled):not(:disabled),
91
- .btn-ghost:hover:not(.btn-disabled):not(:disabled) {
113
+ .btn-outline:active:not(.btn-disabled):not(:disabled) {
92
114
  background: var(--btn-accent-soft, rgba(20, 201, 214, 0.12));
93
115
  }
94
116
 
117
+ .btn-ghost:hover:not(.btn-disabled):not(:disabled),
118
+ .btn-ghost:active:not(.btn-disabled):not(:disabled) {
119
+ background: transparent;
120
+ border-color: transparent;
121
+ box-shadow: none;
122
+ }
123
+
124
+ .btn-group {
125
+ display: inline-flex;
126
+ align-items: stretch;
127
+ gap: 0;
128
+ max-width: 100%;
129
+ vertical-align: middle;
130
+ isolation: isolate;
131
+ }
132
+
133
+ .btn-group-stretch {
134
+ display: flex;
135
+ width: 100%;
136
+ }
137
+
138
+ .btn-group > * {
139
+ position: relative;
140
+ }
141
+
142
+ .btn-group > :where(.btn),
143
+ .btn-group > * > :where(.btn) {
144
+ border-radius: 0;
145
+ box-shadow: none;
146
+ }
147
+
148
+ .btn-group > :where(.btn):focus-visible,
149
+ .btn-group > *:focus-within,
150
+ .btn-group > :where(.btn):hover,
151
+ .btn-group > *:hover {
152
+ z-index: 2;
153
+ }
154
+
155
+ .btn-group-horizontal {
156
+ flex-direction: row;
157
+ }
158
+
159
+ .btn-group-horizontal > * + * {
160
+ margin-left: -1px;
161
+ }
162
+
163
+ .btn-group-horizontal > :where(.btn):first-child,
164
+ .btn-group-horizontal > :first-child > :where(.btn) {
165
+ border-top-left-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
166
+ border-bottom-left-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
167
+ }
168
+
169
+ .btn-group-horizontal > :where(.btn):last-child,
170
+ .btn-group-horizontal > :last-child > :where(.btn) {
171
+ border-top-right-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
172
+ border-bottom-right-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
173
+ }
174
+
175
+ .btn-group-vertical {
176
+ flex-direction: column;
177
+ }
178
+
179
+ .btn-group-vertical > * + * {
180
+ margin-top: -1px;
181
+ }
182
+
183
+ .btn-group-vertical > :where(.btn):first-child,
184
+ .btn-group-vertical > :first-child > :where(.btn) {
185
+ border-top-left-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
186
+ border-top-right-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
187
+ }
188
+
189
+ .btn-group-vertical > :where(.btn):last-child,
190
+ .btn-group-vertical > :last-child > :where(.btn) {
191
+ border-bottom-right-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
192
+ border-bottom-left-radius: var(--btn-group-border-radius, var(--btn-border-radius, var(--radius-default)));
193
+ }
194
+
195
+ .btn-group-stretch > * {
196
+ flex: 1 1 0;
197
+ min-width: 0;
198
+ }
199
+
200
+ .btn-group-stretch > :where(.btn),
201
+ .btn-group-stretch > * > :where(.btn) {
202
+ width: 100%;
203
+ }
204
+
95
205
  .btn-default {
96
- --btn-accent: var(--btn-default-accent, rgba(158, 178, 204, 0.9));
97
- --btn-accent-soft: var(--btn-default-soft, rgba(30, 51, 85, 0.35));
98
- --btn-bg: linear-gradient(135deg, var(--btn-default-start, #2a3750), var(--btn-default-end, #1b263c));
99
- --btn-bg-hover: linear-gradient(135deg, var(--btn-default-start-hover, #31415c), var(--btn-default-end-hover, #212d44));
100
- --btn-border: var(--btn-default-border, rgba(30, 51, 85, 0.6));
101
- --btn-color: var(--color-on-solid, var(--color-text));
102
- --btn-shadow: 0 10px 24px rgba(10, 20, 35, 0.2);
103
- --btn-shadow-hover: 0 14px 30px rgba(10, 20, 35, 0.28);
206
+ --btn-accent: var(--variant-default-accent);
207
+ --btn-accent-soft: var(--variant-default-soft);
208
+ --btn-bg: var(--variant-default-bg);
209
+ --btn-bg-hover: var(--variant-default-hover);
210
+ --btn-bg-active: var(--variant-default-active);
211
+ --btn-border: var(--variant-default-border);
212
+ --btn-border-hover: var(--variant-default-border);
213
+ --btn-border-active: var(--variant-default-border);
214
+ --btn-color: var(--variant-default-text);
215
+ --btn-bg-disabled: var(--variant-default-disabled-bg);
216
+ --btn-border-disabled: var(--variant-default-disabled-border);
217
+ --btn-color-disabled: var(--variant-default-disabled-text);
218
+ --btn-shadow: 0 10px 24px rgba(10, 20, 35, 0.18);
219
+ --btn-shadow-hover: 0 14px 30px rgba(10, 20, 35, 0.24);
220
+ }
221
+
222
+ .btn-neutral {
223
+ --btn-accent: var(--variant-neutral-accent);
224
+ --btn-accent-soft: var(--variant-neutral-soft);
225
+ --btn-bg: var(--variant-neutral-bg);
226
+ --btn-bg-hover: var(--variant-neutral-hover);
227
+ --btn-bg-active: var(--variant-neutral-active);
228
+ --btn-border: var(--variant-neutral-border);
229
+ --btn-border-hover: var(--variant-neutral-border);
230
+ --btn-border-active: var(--variant-neutral-border);
231
+ --btn-color: var(--variant-neutral-text);
232
+ --btn-bg-disabled: var(--variant-neutral-disabled-bg);
233
+ --btn-border-disabled: var(--variant-neutral-disabled-border);
234
+ --btn-color-disabled: var(--variant-neutral-disabled-text);
235
+ --btn-shadow: 0 10px 24px rgba(10, 20, 35, 0.18);
236
+ --btn-shadow-hover: 0 14px 30px rgba(10, 20, 35, 0.24);
104
237
  }
105
238
 
106
239
  .btn-primary {
107
- --btn-accent: var(--btn-primary-accent, rgba(20, 201, 214, 0.9));
108
- --btn-accent-soft: var(--btn-primary-soft, rgba(20, 201, 214, 0.18));
109
- --btn-bg: linear-gradient(135deg, var(--btn-primary-start, #14c9d6), var(--btn-primary-end, #1e63e9));
110
- --btn-bg-hover: linear-gradient(135deg, var(--btn-primary-start-hover, #18d1de), var(--btn-primary-end-hover, #2a74ff));
111
- --btn-border: var(--btn-primary-accent, rgba(20, 201, 214, 0.5));
112
- --btn-color: var(--color-on-solid, #06201c);
113
- --btn-shadow: 0 12px 30px rgba(20, 201, 214, 0.3);
114
- --btn-shadow-hover: 0 16px 36px rgba(20, 201, 214, 0.4);
240
+ --btn-accent: var(--variant-primary-accent);
241
+ --btn-accent-soft: var(--variant-primary-soft);
242
+ --btn-bg: var(--variant-primary-bg);
243
+ --btn-bg-hover: var(--variant-primary-hover);
244
+ --btn-bg-active: var(--variant-primary-active);
245
+ --btn-border: var(--variant-primary-border);
246
+ --btn-border-hover: var(--variant-primary-border);
247
+ --btn-border-active: var(--variant-primary-border);
248
+ --btn-color: var(--variant-primary-text);
249
+ --btn-bg-disabled: var(--variant-primary-disabled-bg);
250
+ --btn-border-disabled: var(--variant-primary-disabled-border);
251
+ --btn-color-disabled: var(--variant-primary-disabled-text);
252
+ --btn-shadow: 0 12px 30px color-mix(in srgb, var(--variant-primary-bg) 30%, transparent);
253
+ --btn-shadow-hover: 0 16px 36px color-mix(in srgb, var(--variant-primary-bg) 38%, transparent);
254
+ }
255
+
256
+ .btn-secondary {
257
+ --btn-accent: var(--variant-secondary-accent);
258
+ --btn-accent-soft: var(--variant-secondary-soft);
259
+ --btn-bg: var(--variant-secondary-bg);
260
+ --btn-bg-hover: var(--variant-secondary-hover);
261
+ --btn-bg-active: var(--variant-secondary-active);
262
+ --btn-border: var(--variant-secondary-border);
263
+ --btn-border-hover: var(--variant-secondary-border);
264
+ --btn-border-active: var(--variant-secondary-border);
265
+ --btn-color: var(--variant-secondary-text);
266
+ --btn-bg-disabled: var(--variant-secondary-disabled-bg);
267
+ --btn-border-disabled: var(--variant-secondary-disabled-border);
268
+ --btn-color-disabled: var(--variant-secondary-disabled-text);
269
+ --btn-shadow: 0 12px 30px color-mix(in srgb, var(--variant-secondary-bg) 26%, transparent);
270
+ --btn-shadow-hover: 0 16px 36px color-mix(in srgb, var(--variant-secondary-bg) 34%, transparent);
115
271
  }
116
272
 
117
273
  .btn-info {
118
- --btn-accent: var(--btn-info-accent, rgba(30, 99, 233, 0.9));
119
- --btn-accent-soft: var(--btn-info-soft, rgba(30, 99, 233, 0.18));
120
- --btn-bg: linear-gradient(135deg, var(--btn-info-start, #4f7bff), var(--btn-info-end, #2e5be6));
121
- --btn-bg-hover: linear-gradient(135deg, var(--btn-info-start-hover, #5b86ff), var(--btn-info-end-hover, #3263f0));
122
- --btn-border: var(--btn-info-accent, rgba(30, 99, 233, 0.5));
123
- --btn-color: var(--color-on-solid, #f0f6ff);
124
- --btn-shadow: 0 12px 30px rgba(30, 99, 233, 0.3);
125
- --btn-shadow-hover: 0 16px 36px rgba(30, 99, 233, 0.4);
274
+ --btn-accent: var(--variant-info-accent);
275
+ --btn-accent-soft: var(--variant-info-soft);
276
+ --btn-bg: var(--variant-info-bg);
277
+ --btn-bg-hover: var(--variant-info-hover);
278
+ --btn-bg-active: var(--variant-info-active);
279
+ --btn-border: var(--variant-info-border);
280
+ --btn-border-hover: var(--variant-info-border);
281
+ --btn-border-active: var(--variant-info-border);
282
+ --btn-color: var(--variant-info-text);
283
+ --btn-bg-disabled: var(--variant-info-disabled-bg);
284
+ --btn-border-disabled: var(--variant-info-disabled-border);
285
+ --btn-color-disabled: var(--variant-info-disabled-text);
286
+ --btn-shadow: 0 12px 30px color-mix(in srgb, var(--variant-info-bg) 28%, transparent);
287
+ --btn-shadow-hover: 0 16px 36px color-mix(in srgb, var(--variant-info-bg) 36%, transparent);
126
288
  }
127
289
 
128
290
  .btn-success {
129
- --btn-accent: var(--btn-success-accent, rgba(79, 230, 163, 0.9));
130
- --btn-accent-soft: var(--btn-success-soft, rgba(79, 230, 163, 0.16));
131
- --btn-bg: linear-gradient(135deg, var(--btn-success-start, #35d092), var(--btn-success-end, #1faf75));
132
- --btn-bg-hover: linear-gradient(135deg, var(--btn-success-start-hover, #3bd99b), var(--btn-success-end-hover, #21b87d));
133
- --btn-border: var(--btn-success-accent, rgba(79, 230, 163, 0.5));
134
- --btn-color: var(--color-on-solid, #06201c);
135
- --btn-shadow: 0 12px 30px rgba(79, 230, 163, 0.28);
136
- --btn-shadow-hover: 0 16px 36px rgba(79, 230, 163, 0.36);
291
+ --btn-accent: var(--variant-success-accent);
292
+ --btn-accent-soft: var(--variant-success-soft);
293
+ --btn-bg: var(--variant-success-bg);
294
+ --btn-bg-hover: var(--variant-success-hover);
295
+ --btn-bg-active: var(--variant-success-active);
296
+ --btn-border: var(--variant-success-border);
297
+ --btn-border-hover: var(--variant-success-border);
298
+ --btn-border-active: var(--variant-success-border);
299
+ --btn-color: var(--variant-success-text);
300
+ --btn-bg-disabled: var(--variant-success-disabled-bg);
301
+ --btn-border-disabled: var(--variant-success-disabled-border);
302
+ --btn-color-disabled: var(--variant-success-disabled-text);
303
+ --btn-shadow: 0 12px 30px color-mix(in srgb, var(--variant-success-bg) 28%, transparent);
304
+ --btn-shadow-hover: 0 16px 36px color-mix(in srgb, var(--variant-success-bg) 36%, transparent);
137
305
  }
138
306
 
139
307
  .btn-warning {
140
- --btn-accent: var(--btn-warning-accent, rgba(246, 200, 106, 0.95));
141
- --btn-accent-soft: var(--btn-warning-soft, rgba(246, 200, 106, 0.2));
142
- --btn-bg: linear-gradient(135deg, var(--btn-warning-start, #ffd166), var(--btn-warning-end, #f4a62a));
143
- --btn-bg-hover: linear-gradient(135deg, var(--btn-warning-start-hover, #ffd87d), var(--btn-warning-end-hover, #f7b13f));
144
- --btn-border: var(--btn-warning-accent, rgba(246, 200, 106, 0.6));
145
- --btn-color: var(--color-on-solid, #2b1b00);
146
- --btn-shadow: 0 12px 30px rgba(246, 200, 106, 0.28);
147
- --btn-shadow-hover: 0 16px 36px rgba(246, 200, 106, 0.36);
308
+ --btn-accent: var(--variant-warning-accent);
309
+ --btn-accent-soft: var(--variant-warning-soft);
310
+ --btn-bg: var(--variant-warning-bg);
311
+ --btn-bg-hover: var(--variant-warning-hover);
312
+ --btn-bg-active: var(--variant-warning-active);
313
+ --btn-border: var(--variant-warning-border);
314
+ --btn-border-hover: var(--variant-warning-border);
315
+ --btn-border-active: var(--variant-warning-border);
316
+ --btn-color: var(--variant-warning-text);
317
+ --btn-bg-disabled: var(--variant-warning-disabled-bg);
318
+ --btn-border-disabled: var(--variant-warning-disabled-border);
319
+ --btn-color-disabled: var(--variant-warning-disabled-text);
320
+ --btn-shadow: 0 12px 30px color-mix(in srgb, var(--variant-warning-bg) 28%, transparent);
321
+ --btn-shadow-hover: 0 16px 36px color-mix(in srgb, var(--variant-warning-bg) 36%, transparent);
148
322
  }
149
323
 
150
324
  .btn-danger {
151
- --btn-accent: var(--btn-danger-accent, rgba(255, 107, 107, 0.95));
152
- --btn-accent-soft: var(--btn-danger-soft, rgba(255, 107, 107, 0.2));
153
- --btn-bg: linear-gradient(135deg, var(--btn-danger-start, #ff8f8f), var(--btn-danger-end, #ff5b5b));
154
- --btn-bg-hover: linear-gradient(135deg, var(--btn-danger-start-hover, #ff9a9a), var(--btn-danger-end-hover, #ff6868));
155
- --btn-border: var(--btn-danger-accent, rgba(255, 107, 107, 0.6));
156
- --btn-color: var(--color-on-solid, #2b0b0b);
157
- --btn-shadow: 0 12px 30px rgba(255, 107, 107, 0.28);
158
- --btn-shadow-hover: 0 16px 36px rgba(255, 107, 107, 0.36);
325
+ --btn-accent: var(--variant-danger-accent);
326
+ --btn-accent-soft: var(--variant-danger-soft);
327
+ --btn-bg: var(--variant-danger-bg);
328
+ --btn-bg-hover: var(--variant-danger-hover);
329
+ --btn-bg-active: var(--variant-danger-active);
330
+ --btn-border: var(--variant-danger-border);
331
+ --btn-border-hover: var(--variant-danger-border);
332
+ --btn-border-active: var(--variant-danger-border);
333
+ --btn-color: var(--variant-danger-text);
334
+ --btn-bg-disabled: var(--variant-danger-disabled-bg);
335
+ --btn-border-disabled: var(--variant-danger-disabled-border);
336
+ --btn-color-disabled: var(--variant-danger-disabled-text);
337
+ --btn-shadow: 0 12px 30px color-mix(in srgb, var(--variant-danger-bg) 28%, transparent);
338
+ --btn-shadow-hover: 0 16px 36px color-mix(in srgb, var(--variant-danger-bg) 36%, transparent);
339
+ }
340
+
341
+ .btn-dark {
342
+ --btn-accent: var(--variant-dark-accent);
343
+ --btn-accent-soft: var(--variant-dark-soft);
344
+ --btn-bg: var(--variant-dark-bg);
345
+ --btn-bg-hover: var(--variant-dark-hover);
346
+ --btn-bg-active: var(--variant-dark-active);
347
+ --btn-border: var(--variant-dark-border);
348
+ --btn-border-hover: var(--variant-dark-border);
349
+ --btn-border-active: var(--variant-dark-border);
350
+ --btn-color: var(--variant-dark-text);
351
+ --btn-bg-disabled: var(--variant-dark-disabled-bg);
352
+ --btn-border-disabled: var(--variant-dark-disabled-border);
353
+ --btn-color-disabled: var(--variant-dark-disabled-text);
354
+ --btn-shadow: 0 12px 30px rgba(5, 12, 22, 0.24);
355
+ --btn-shadow-hover: 0 16px 36px rgba(5, 12, 22, 0.32);
356
+ }
357
+
358
+ .btn-light {
359
+ --btn-accent: var(--variant-light-accent);
360
+ --btn-accent-soft: var(--variant-light-soft);
361
+ --btn-bg: var(--variant-light-bg);
362
+ --btn-bg-hover: var(--variant-light-hover);
363
+ --btn-bg-active: var(--variant-light-active);
364
+ --btn-border: var(--variant-light-border);
365
+ --btn-border-hover: var(--variant-light-border);
366
+ --btn-border-active: var(--variant-light-border);
367
+ --btn-color: var(--variant-light-text);
368
+ --btn-bg-disabled: var(--variant-light-disabled-bg);
369
+ --btn-border-disabled: var(--variant-light-disabled-border);
370
+ --btn-color-disabled: var(--variant-light-disabled-text);
371
+ --btn-shadow: 0 10px 24px rgba(10, 20, 35, 0.16);
372
+ --btn-shadow-hover: 0 14px 30px rgba(10, 20, 35, 0.22);
159
373
  }
160
374
 
161
375
  @media (prefers-reduced-motion: reduce) {
@@ -42,7 +42,7 @@
42
42
 
43
43
  .pill {
44
44
  padding: 6px 12px;
45
- border-radius: 999px;
45
+ border-radius: var(--radius-pill);
46
46
  background: rgba(79, 230, 163, 0.14);
47
47
  color: var(--color-mint);
48
48
  font-size: 12px;
@@ -53,7 +53,7 @@
53
53
  .card {
54
54
  background: linear-gradient(135deg, rgba(20, 41, 70, 0.92), rgba(12, 24, 42, 0.96));
55
55
  border: 1px solid var(--color-line);
56
- border-radius: var(--radius-lg);
56
+ border-radius: var(--card-border-radius, var(--radius-default));
57
57
  padding: var(--spacing-7);
58
58
  box-shadow: var(--shadow-soft);
59
59
  }
@@ -28,7 +28,7 @@
28
28
  background: var(--surface-control);
29
29
  color: var(--color-text);
30
30
  padding: 10px 14px;
31
- border-radius: 12px;
31
+ border-radius: var(--tab-border-radius, var(--radius-default));
32
32
  cursor: pointer;
33
33
  font-weight: 600;
34
34
  font-size: 14px;
@@ -75,14 +75,14 @@
75
75
  justify-content: center;
76
76
  min-width: 22px;
77
77
  padding: 2px 8px;
78
- border-radius: 999px;
78
+ border-radius: var(--tab-badge-border-radius, var(--radius-pill));
79
79
  font-size: 12px;
80
80
  color: var(--color-text);
81
81
  }
82
82
 
83
83
  .tabs-panel {
84
84
  border: 1px solid var(--color-line);
85
- border-radius: var(--radius-md);
85
+ border-radius: var(--tab-panel-border-radius, var(--radius-default));
86
86
  padding: var(--spacing-5);
87
87
  background: var(--surface-panel-soft);
88
88
  }