@vuecs/theme-bootstrap 4.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.
- package/LICENSE +201 -0
- package/README.md +18 -0
- package/assets/index.css +472 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +1276 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +65 -0
package/assets/index.css
ADDED
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @vuecs/theme-bootstrap — Design-token bridge
|
|
3
|
+
*
|
|
4
|
+
* Wires Bootstrap 5.3+'s CSS variables onto vuecs design-system tokens
|
|
5
|
+
* (`--vc-color-*`). Importing this file alongside Bootstrap and
|
|
6
|
+
* `@vuecs/design/index.css` makes Bootstrap's buttons, alerts, badges,
|
|
7
|
+
* background utilities, etc. respond to `setColorPalette()` / `.dark` just
|
|
8
|
+
* like the Tailwind theme.
|
|
9
|
+
*
|
|
10
|
+
* Import order:
|
|
11
|
+
* 1. Bootstrap CSS (provides the default --bs-* values).
|
|
12
|
+
* 2. @vuecs/design/index.css (provides --vc-color-*).
|
|
13
|
+
* 3. This bridge (overrides --bs-* to reference --vc-color-*).
|
|
14
|
+
*
|
|
15
|
+
* What this covers:
|
|
16
|
+
* - The global `--bs-primary` / `-secondary` / `-success` / `-warning`
|
|
17
|
+
* / `-danger` / `-info` tokens — read directly by some utilities
|
|
18
|
+
* and by anything you reference via `var(--bs-primary)` yourself.
|
|
19
|
+
* - The per-variant button vars (`.btn-primary { --bs-btn-bg: … }`)
|
|
20
|
+
* for default / hover / active / disabled states. Bootstrap 5.3+
|
|
21
|
+
* hardcodes hex values in each `.btn-<variant>` block, so just
|
|
22
|
+
* overriding `--bs-primary` doesn't reach buttons; we have to
|
|
23
|
+
* redeclare the per-variant chain here.
|
|
24
|
+
* - The `.bg-<variant>` / `.text-<variant>` / `.border-<variant>`
|
|
25
|
+
* utility classes — each gets its `background-color` / `color` /
|
|
26
|
+
* `border-color` rebound to the matching `--vc-color-*`.
|
|
27
|
+
* - The `.badge.text-bg-<variant>` background for chip-style badges.
|
|
28
|
+
*
|
|
29
|
+
* Limitations:
|
|
30
|
+
* - `--bs-<color>-rgb` triplets are NOT bridged (CSS has no
|
|
31
|
+
* hex→rgb-triplet conversion). Bootstrap features that rely on
|
|
32
|
+
* `rgba(var(--bs-primary-rgb), α)` — focus-ring translucency,
|
|
33
|
+
* soft hovers — keep their original Bootstrap palette. The
|
|
34
|
+
* workaround is a JS hook that writes the triplet at palette
|
|
35
|
+
* change; not provided by this bridge.
|
|
36
|
+
* - Bootstrap's `[data-bs-theme="dark"]` palette is not touched;
|
|
37
|
+
* this bridge uses the `.dark` class (same toggle as the rest of
|
|
38
|
+
* the vuecs design-system). Pick one source of truth.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
:root {
|
|
42
|
+
--bs-primary: var(--vc-color-primary-500);
|
|
43
|
+
--bs-secondary: var(--vc-color-neutral-500);
|
|
44
|
+
--bs-success: var(--vc-color-success-500);
|
|
45
|
+
--bs-info: var(--vc-color-info-500);
|
|
46
|
+
--bs-warning: var(--vc-color-warning-500);
|
|
47
|
+
--bs-danger: var(--vc-color-error-500);
|
|
48
|
+
|
|
49
|
+
--bs-body-bg: var(--vc-color-bg);
|
|
50
|
+
--bs-body-color: var(--vc-color-fg);
|
|
51
|
+
--bs-border-color: var(--vc-color-border);
|
|
52
|
+
--bs-link-color: var(--vc-color-primary-600);
|
|
53
|
+
--bs-link-hover-color: var(--vc-color-primary-700);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.dark {
|
|
57
|
+
/* Bootstrap expects a slightly brighter primary on dark bg — use the
|
|
58
|
+
400 shade, matching the design-system's own `--vc-color-ring`
|
|
59
|
+
dark-mode flip. */
|
|
60
|
+
--bs-primary: var(--vc-color-primary-400);
|
|
61
|
+
--bs-secondary: var(--vc-color-neutral-400);
|
|
62
|
+
--bs-success: var(--vc-color-success-400);
|
|
63
|
+
--bs-info: var(--vc-color-info-400);
|
|
64
|
+
--bs-warning: var(--vc-color-warning-400);
|
|
65
|
+
--bs-danger: var(--vc-color-error-400);
|
|
66
|
+
|
|
67
|
+
--bs-body-bg: var(--vc-color-bg);
|
|
68
|
+
--bs-body-color: var(--vc-color-fg);
|
|
69
|
+
--bs-border-color: var(--vc-color-border);
|
|
70
|
+
--bs-link-color: var(--vc-color-primary-400);
|
|
71
|
+
--bs-link-hover-color: var(--vc-color-primary-300);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
75
|
+
* Per-variant button vars (Bootstrap 5.3+).
|
|
76
|
+
* Bootstrap hardcodes hex values in each `.btn-<variant>` block, so we
|
|
77
|
+
* need to redeclare the per-variant token chain — overriding
|
|
78
|
+
* `--bs-primary` alone doesn't reach `.btn-primary`'s bg.
|
|
79
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
80
|
+
|
|
81
|
+
.btn-primary {
|
|
82
|
+
--bs-btn-bg: var(--vc-color-primary-600);
|
|
83
|
+
--bs-btn-border-color: var(--vc-color-primary-600);
|
|
84
|
+
--bs-btn-hover-bg: var(--vc-color-primary-700);
|
|
85
|
+
--bs-btn-hover-border-color: var(--vc-color-primary-700);
|
|
86
|
+
--bs-btn-active-bg: var(--vc-color-primary-700);
|
|
87
|
+
--bs-btn-active-border-color: var(--vc-color-primary-700);
|
|
88
|
+
--bs-btn-disabled-bg: var(--vc-color-primary-400);
|
|
89
|
+
--bs-btn-disabled-border-color: var(--vc-color-primary-400);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.btn-secondary {
|
|
93
|
+
--bs-btn-bg: var(--vc-color-neutral-600);
|
|
94
|
+
--bs-btn-border-color: var(--vc-color-neutral-600);
|
|
95
|
+
--bs-btn-hover-bg: var(--vc-color-neutral-700);
|
|
96
|
+
--bs-btn-hover-border-color: var(--vc-color-neutral-700);
|
|
97
|
+
--bs-btn-active-bg: var(--vc-color-neutral-700);
|
|
98
|
+
--bs-btn-active-border-color: var(--vc-color-neutral-700);
|
|
99
|
+
--bs-btn-disabled-bg: var(--vc-color-neutral-400);
|
|
100
|
+
--bs-btn-disabled-border-color: var(--vc-color-neutral-400);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.btn-success {
|
|
104
|
+
--bs-btn-bg: var(--vc-color-success-600);
|
|
105
|
+
--bs-btn-border-color: var(--vc-color-success-600);
|
|
106
|
+
--bs-btn-hover-bg: var(--vc-color-success-700);
|
|
107
|
+
--bs-btn-hover-border-color: var(--vc-color-success-700);
|
|
108
|
+
--bs-btn-active-bg: var(--vc-color-success-700);
|
|
109
|
+
--bs-btn-active-border-color: var(--vc-color-success-700);
|
|
110
|
+
--bs-btn-disabled-bg: var(--vc-color-success-400);
|
|
111
|
+
--bs-btn-disabled-border-color: var(--vc-color-success-400);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.btn-warning {
|
|
115
|
+
--bs-btn-bg: var(--vc-color-warning-600);
|
|
116
|
+
--bs-btn-border-color: var(--vc-color-warning-600);
|
|
117
|
+
--bs-btn-hover-bg: var(--vc-color-warning-700);
|
|
118
|
+
--bs-btn-hover-border-color: var(--vc-color-warning-700);
|
|
119
|
+
--bs-btn-active-bg: var(--vc-color-warning-700);
|
|
120
|
+
--bs-btn-active-border-color: var(--vc-color-warning-700);
|
|
121
|
+
--bs-btn-disabled-bg: var(--vc-color-warning-400);
|
|
122
|
+
--bs-btn-disabled-border-color: var(--vc-color-warning-400);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.btn-danger {
|
|
126
|
+
--bs-btn-bg: var(--vc-color-error-600);
|
|
127
|
+
--bs-btn-border-color: var(--vc-color-error-600);
|
|
128
|
+
--bs-btn-hover-bg: var(--vc-color-error-700);
|
|
129
|
+
--bs-btn-hover-border-color: var(--vc-color-error-700);
|
|
130
|
+
--bs-btn-active-bg: var(--vc-color-error-700);
|
|
131
|
+
--bs-btn-active-border-color: var(--vc-color-error-700);
|
|
132
|
+
--bs-btn-disabled-bg: var(--vc-color-error-400);
|
|
133
|
+
--bs-btn-disabled-border-color: var(--vc-color-error-400);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.btn-info {
|
|
137
|
+
--bs-btn-bg: var(--vc-color-info-600);
|
|
138
|
+
--bs-btn-border-color: var(--vc-color-info-600);
|
|
139
|
+
--bs-btn-hover-bg: var(--vc-color-info-700);
|
|
140
|
+
--bs-btn-hover-border-color: var(--vc-color-info-700);
|
|
141
|
+
--bs-btn-active-bg: var(--vc-color-info-700);
|
|
142
|
+
--bs-btn-active-border-color: var(--vc-color-info-700);
|
|
143
|
+
--bs-btn-disabled-bg: var(--vc-color-info-400);
|
|
144
|
+
--bs-btn-disabled-border-color: var(--vc-color-info-400);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* `btn-outline-*` — inverse: transparent bg, colored text + border, then
|
|
148
|
+
solid colored bg on hover. */
|
|
149
|
+
.btn-outline-primary {
|
|
150
|
+
--bs-btn-color: var(--vc-color-primary-600);
|
|
151
|
+
--bs-btn-border-color: var(--vc-color-primary-600);
|
|
152
|
+
--bs-btn-hover-bg: var(--vc-color-primary-600);
|
|
153
|
+
--bs-btn-hover-border-color: var(--vc-color-primary-600);
|
|
154
|
+
--bs-btn-active-bg: var(--vc-color-primary-700);
|
|
155
|
+
--bs-btn-active-border-color: var(--vc-color-primary-700);
|
|
156
|
+
--bs-btn-disabled-color: var(--vc-color-primary-400);
|
|
157
|
+
--bs-btn-disabled-border-color: var(--vc-color-primary-400);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.btn-outline-secondary {
|
|
161
|
+
--bs-btn-color: var(--vc-color-neutral-600);
|
|
162
|
+
--bs-btn-border-color: var(--vc-color-neutral-600);
|
|
163
|
+
--bs-btn-hover-bg: var(--vc-color-neutral-600);
|
|
164
|
+
--bs-btn-hover-border-color: var(--vc-color-neutral-600);
|
|
165
|
+
--bs-btn-active-bg: var(--vc-color-neutral-700);
|
|
166
|
+
--bs-btn-active-border-color: var(--vc-color-neutral-700);
|
|
167
|
+
--bs-btn-disabled-color: var(--vc-color-neutral-400);
|
|
168
|
+
--bs-btn-disabled-border-color: var(--vc-color-neutral-400);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.btn-outline-success {
|
|
172
|
+
--bs-btn-color: var(--vc-color-success-600);
|
|
173
|
+
--bs-btn-border-color: var(--vc-color-success-600);
|
|
174
|
+
--bs-btn-hover-bg: var(--vc-color-success-600);
|
|
175
|
+
--bs-btn-hover-border-color: var(--vc-color-success-600);
|
|
176
|
+
--bs-btn-active-bg: var(--vc-color-success-700);
|
|
177
|
+
--bs-btn-active-border-color: var(--vc-color-success-700);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.btn-outline-warning {
|
|
181
|
+
--bs-btn-color: var(--vc-color-warning-600);
|
|
182
|
+
--bs-btn-border-color: var(--vc-color-warning-600);
|
|
183
|
+
--bs-btn-hover-bg: var(--vc-color-warning-600);
|
|
184
|
+
--bs-btn-hover-border-color: var(--vc-color-warning-600);
|
|
185
|
+
--bs-btn-active-bg: var(--vc-color-warning-700);
|
|
186
|
+
--bs-btn-active-border-color: var(--vc-color-warning-700);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.btn-outline-danger {
|
|
190
|
+
--bs-btn-color: var(--vc-color-error-600);
|
|
191
|
+
--bs-btn-border-color: var(--vc-color-error-600);
|
|
192
|
+
--bs-btn-hover-bg: var(--vc-color-error-600);
|
|
193
|
+
--bs-btn-hover-border-color: var(--vc-color-error-600);
|
|
194
|
+
--bs-btn-active-bg: var(--vc-color-error-700);
|
|
195
|
+
--bs-btn-active-border-color: var(--vc-color-error-700);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.btn-outline-info {
|
|
199
|
+
--bs-btn-color: var(--vc-color-info-600);
|
|
200
|
+
--bs-btn-border-color: var(--vc-color-info-600);
|
|
201
|
+
--bs-btn-hover-bg: var(--vc-color-info-600);
|
|
202
|
+
--bs-btn-hover-border-color: var(--vc-color-info-600);
|
|
203
|
+
--bs-btn-active-bg: var(--vc-color-info-700);
|
|
204
|
+
--bs-btn-active-border-color: var(--vc-color-info-700);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
208
|
+
* Background / text / border utility classes.
|
|
209
|
+
* Bootstrap's `.bg-primary`, `.text-primary`, `.border-primary` etc.
|
|
210
|
+
* resolve through `var(--bs-primary-rgb)` (which we can't bridge in
|
|
211
|
+
* pure CSS) — so override the final color directly.
|
|
212
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
213
|
+
|
|
214
|
+
.bg-primary { background-color: var(--vc-color-primary-600) !important; }
|
|
215
|
+
.bg-secondary { background-color: var(--vc-color-neutral-600) !important; }
|
|
216
|
+
.bg-success { background-color: var(--vc-color-success-600) !important; }
|
|
217
|
+
.bg-warning { background-color: var(--vc-color-warning-600) !important; }
|
|
218
|
+
.bg-danger { background-color: var(--vc-color-error-600) !important; }
|
|
219
|
+
.bg-info { background-color: var(--vc-color-info-600) !important; }
|
|
220
|
+
|
|
221
|
+
.text-primary { color: var(--vc-color-primary-600) !important; }
|
|
222
|
+
.text-secondary { color: var(--vc-color-neutral-600) !important; }
|
|
223
|
+
.text-success { color: var(--vc-color-success-600) !important; }
|
|
224
|
+
.text-warning { color: var(--vc-color-warning-600) !important; }
|
|
225
|
+
.text-danger { color: var(--vc-color-error-600) !important; }
|
|
226
|
+
.text-info { color: var(--vc-color-info-600) !important; }
|
|
227
|
+
|
|
228
|
+
.border-primary { border-color: var(--vc-color-primary-600) !important; }
|
|
229
|
+
.border-secondary { border-color: var(--vc-color-neutral-600) !important; }
|
|
230
|
+
.border-success { border-color: var(--vc-color-success-600) !important; }
|
|
231
|
+
.border-warning { border-color: var(--vc-color-warning-600) !important; }
|
|
232
|
+
.border-danger { border-color: var(--vc-color-error-600) !important; }
|
|
233
|
+
.border-info { border-color: var(--vc-color-info-600) !important; }
|
|
234
|
+
|
|
235
|
+
/* `text-bg-*` is the chip-style combined utility used on badges. */
|
|
236
|
+
.text-bg-primary { background-color: var(--vc-color-primary-600) !important; color: var(--vc-color-on-primary) !important; }
|
|
237
|
+
.text-bg-secondary { background-color: var(--vc-color-neutral-600) !important; color: var(--vc-color-on-neutral) !important; }
|
|
238
|
+
.text-bg-success { background-color: var(--vc-color-success-600) !important; color: var(--vc-color-on-success) !important; }
|
|
239
|
+
.text-bg-warning { background-color: var(--vc-color-warning-600) !important; color: var(--vc-color-on-warning) !important; }
|
|
240
|
+
.text-bg-danger { background-color: var(--vc-color-error-600) !important; color: var(--vc-color-on-error) !important; }
|
|
241
|
+
.text-bg-info { background-color: var(--vc-color-info-600) !important; color: var(--vc-color-on-info) !important; }
|
|
242
|
+
|
|
243
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
244
|
+
* Subtle / tinted variants (Bootstrap 5.3+).
|
|
245
|
+
* Used by soft-button styles, slider track backgrounds, alert tints, etc.
|
|
246
|
+
* Bootstrap defines these with hardcoded hex values per variant; mirror
|
|
247
|
+
* them to the `-100` / `-200` design-system shades.
|
|
248
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
249
|
+
|
|
250
|
+
.bg-primary-subtle { background-color: var(--vc-color-primary-100) !important; }
|
|
251
|
+
.bg-secondary-subtle { background-color: var(--vc-color-neutral-100) !important; }
|
|
252
|
+
.bg-success-subtle { background-color: var(--vc-color-success-100) !important; }
|
|
253
|
+
.bg-warning-subtle { background-color: var(--vc-color-warning-100) !important; }
|
|
254
|
+
.bg-danger-subtle { background-color: var(--vc-color-error-100) !important; }
|
|
255
|
+
.bg-info-subtle { background-color: var(--vc-color-info-100) !important; }
|
|
256
|
+
.bg-light { background-color: var(--vc-color-bg-muted) !important; }
|
|
257
|
+
.bg-light-subtle { background-color: var(--vc-color-bg) !important; }
|
|
258
|
+
|
|
259
|
+
.border-primary-subtle { border-color: var(--vc-color-primary-200) !important; }
|
|
260
|
+
.border-secondary-subtle { border-color: var(--vc-color-neutral-200) !important; }
|
|
261
|
+
.border-success-subtle { border-color: var(--vc-color-success-200) !important; }
|
|
262
|
+
.border-warning-subtle { border-color: var(--vc-color-warning-200) !important; }
|
|
263
|
+
.border-danger-subtle { border-color: var(--vc-color-error-200) !important; }
|
|
264
|
+
.border-info-subtle { border-color: var(--vc-color-info-200) !important; }
|
|
265
|
+
|
|
266
|
+
.text-primary-emphasis { color: var(--vc-color-primary-700) !important; }
|
|
267
|
+
.text-secondary-emphasis { color: var(--vc-color-neutral-700) !important; }
|
|
268
|
+
.text-success-emphasis { color: var(--vc-color-success-700) !important; }
|
|
269
|
+
.text-warning-emphasis { color: var(--vc-color-warning-700) !important; }
|
|
270
|
+
.text-danger-emphasis { color: var(--vc-color-error-700) !important; }
|
|
271
|
+
.text-info-emphasis { color: var(--vc-color-info-700) !important; }
|
|
272
|
+
|
|
273
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
274
|
+
* Alert variants — same chain as buttons. Bootstrap hardcodes the alert
|
|
275
|
+
* colors per variant block; redeclare against design tokens.
|
|
276
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
277
|
+
|
|
278
|
+
.alert-primary {
|
|
279
|
+
--bs-alert-color: var(--vc-color-primary-700);
|
|
280
|
+
--bs-alert-bg: var(--vc-color-primary-100);
|
|
281
|
+
--bs-alert-border-color: var(--vc-color-primary-200);
|
|
282
|
+
--bs-alert-link-color: var(--vc-color-primary-800);
|
|
283
|
+
}
|
|
284
|
+
.alert-secondary {
|
|
285
|
+
--bs-alert-color: var(--vc-color-neutral-700);
|
|
286
|
+
--bs-alert-bg: var(--vc-color-neutral-100);
|
|
287
|
+
--bs-alert-border-color: var(--vc-color-neutral-200);
|
|
288
|
+
--bs-alert-link-color: var(--vc-color-neutral-800);
|
|
289
|
+
}
|
|
290
|
+
.alert-success {
|
|
291
|
+
--bs-alert-color: var(--vc-color-success-700);
|
|
292
|
+
--bs-alert-bg: var(--vc-color-success-100);
|
|
293
|
+
--bs-alert-border-color: var(--vc-color-success-200);
|
|
294
|
+
--bs-alert-link-color: var(--vc-color-success-800);
|
|
295
|
+
}
|
|
296
|
+
.alert-warning {
|
|
297
|
+
--bs-alert-color: var(--vc-color-warning-700);
|
|
298
|
+
--bs-alert-bg: var(--vc-color-warning-100);
|
|
299
|
+
--bs-alert-border-color: var(--vc-color-warning-200);
|
|
300
|
+
--bs-alert-link-color: var(--vc-color-warning-800);
|
|
301
|
+
}
|
|
302
|
+
.alert-danger {
|
|
303
|
+
--bs-alert-color: var(--vc-color-error-700);
|
|
304
|
+
--bs-alert-bg: var(--vc-color-error-100);
|
|
305
|
+
--bs-alert-border-color: var(--vc-color-error-200);
|
|
306
|
+
--bs-alert-link-color: var(--vc-color-error-800);
|
|
307
|
+
}
|
|
308
|
+
.alert-info {
|
|
309
|
+
--bs-alert-color: var(--vc-color-info-700);
|
|
310
|
+
--bs-alert-bg: var(--vc-color-info-100);
|
|
311
|
+
--bs-alert-border-color: var(--vc-color-info-200);
|
|
312
|
+
--bs-alert-link-color: var(--vc-color-info-800);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
316
|
+
* Form controls — `.form-control`, `.form-select`, `.form-check-input`.
|
|
317
|
+
* Bootstrap reads `--bs-border-color` (already bridged at :root) for the
|
|
318
|
+
* default border. Focus states use `--bs-primary` (bridged) but the
|
|
319
|
+
* focus-ring shadow uses `--bs-primary-rgb` which can't be bridged in
|
|
320
|
+
* pure CSS — focus-ring color stays bootstrap-default. The `accent-color`
|
|
321
|
+
* for native checkbox/radio respects `--bs-form-check-bg-image-checked`
|
|
322
|
+
* which encodes the SVG fill as a hardcoded data URI, so native checked
|
|
323
|
+
* indicators stay bootstrap-blue without a JS hook.
|
|
324
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
325
|
+
|
|
326
|
+
.form-control:focus,
|
|
327
|
+
.form-select:focus,
|
|
328
|
+
.form-check-input:focus {
|
|
329
|
+
border-color: var(--vc-color-primary-500);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.form-check-input:checked {
|
|
333
|
+
background-color: var(--vc-color-primary-600);
|
|
334
|
+
border-color: var(--vc-color-primary-600);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
338
|
+
* Pagination, list-group, nav-pills active states — common cases that
|
|
339
|
+
* read `--bs-primary` directly.
|
|
340
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
341
|
+
|
|
342
|
+
.page-link {
|
|
343
|
+
--bs-pagination-color: var(--vc-color-primary-600);
|
|
344
|
+
--bs-pagination-hover-color: var(--vc-color-primary-700);
|
|
345
|
+
--bs-pagination-focus-color: var(--vc-color-primary-700);
|
|
346
|
+
--bs-pagination-active-bg: var(--vc-color-primary-600);
|
|
347
|
+
--bs-pagination-active-border-color: var(--vc-color-primary-600);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.list-group {
|
|
351
|
+
--bs-list-group-active-color: var(--vc-color-on-primary);
|
|
352
|
+
--bs-list-group-active-bg: var(--vc-color-primary-600);
|
|
353
|
+
--bs-list-group-active-border-color: var(--vc-color-primary-600);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.nav-pills {
|
|
357
|
+
--bs-nav-pills-link-active-bg: var(--vc-color-primary-600);
|
|
358
|
+
--bs-nav-link-color: var(--vc-color-primary-600);
|
|
359
|
+
--bs-nav-link-hover-color: var(--vc-color-primary-700);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
363
|
+
* Progress bars — `--bs-progress-bar-bg` defaults to `--bs-primary`-derived.
|
|
364
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
365
|
+
|
|
366
|
+
.progress, .progress-stacked {
|
|
367
|
+
--bs-progress-bar-bg: var(--vc-color-primary-600);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
371
|
+
* @vuecs/list shorthand-mode wrappers — `<VCList>` always emits
|
|
372
|
+
* `<VCListHeader>` / `<VCListBody>` / `<VCListFooter>` in shorthand mode
|
|
373
|
+
* (per Q10), even when the consumer only supplied a subset of slots.
|
|
374
|
+
* Hide empty wrappers so the layout doesn't sprout extra rows. The
|
|
375
|
+
* Tailwind theme uses `empty:hidden` for the same effect.
|
|
376
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
377
|
+
|
|
378
|
+
.vc-list-header:empty,
|
|
379
|
+
.vc-list-body:empty,
|
|
380
|
+
.vc-list-footer:empty {
|
|
381
|
+
display: none;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
385
|
+
* @vuecs/overlays Modal — Bootstrap's `.modal-sm` / `.modal-lg` /
|
|
386
|
+
* `.modal-xl` sizing relies on a `.modal-dialog` wrapper to read
|
|
387
|
+
* `--bs-modal-width` and apply `max-width`. Reka's DialogContent renders
|
|
388
|
+
* a single positioned element (no `.modal-dialog`), so applying the size
|
|
389
|
+
* class on `.modal-content` was previously a no-op. Re-implement the
|
|
390
|
+
* width contract here so the Bootstrap theme's size variants take
|
|
391
|
+
* effect on our compound shape. Defaults match Bootstrap 5 (sm=300,
|
|
392
|
+
* lg=800, xl=1140); md keeps the unsized default which centers via
|
|
393
|
+
* the theme's `position-fixed top-50 start-50 translate-middle`.
|
|
394
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
395
|
+
|
|
396
|
+
.vc-modal-content.modal-sm { max-width: 300px; width: calc(100% - 1rem); }
|
|
397
|
+
.vc-modal-content.modal-lg { max-width: 800px; width: calc(100% - 1rem); }
|
|
398
|
+
.vc-modal-content.modal-xl { max-width: 1140px; width: calc(100% - 1rem); }
|
|
399
|
+
|
|
400
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
401
|
+
* @vuecs/navigation Stepper — Bootstrap utility classes can't carry
|
|
402
|
+
* `[data-state=…]` attribute selectors, so the theme entry's `bg-light`
|
|
403
|
+
* / `border-secondary-subtle` / `text-muted` apply uniformly. Add CSS
|
|
404
|
+
* here to differentiate active + completed steps. Both states use the
|
|
405
|
+
* primary color so the trail of progress reads as one continuous run
|
|
406
|
+
* (matches the Tailwind theme).
|
|
407
|
+
*
|
|
408
|
+
* `!important` is required because Bootstrap's `.bg-*` / `.border-*` /
|
|
409
|
+
* `.text-*` utility classes ship with `!important` themselves — without
|
|
410
|
+
* matching that, the higher-specificity attribute selector still loses
|
|
411
|
+
* to the `!important` on the utility.
|
|
412
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
413
|
+
|
|
414
|
+
.vc-stepper-item[data-state="active"] .vc-stepper-indicator,
|
|
415
|
+
.vc-stepper-item[data-state="completed"] .vc-stepper-indicator {
|
|
416
|
+
background-color: var(--vc-color-primary-600) !important;
|
|
417
|
+
border-color: var(--vc-color-primary-600) !important;
|
|
418
|
+
color: var(--vc-color-on-primary) !important;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.vc-stepper-item[data-state="active"] .vc-stepper-title,
|
|
422
|
+
.vc-stepper-item[data-state="completed"] .vc-stepper-title {
|
|
423
|
+
color: var(--vc-color-fg) !important;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/* Bootstrap renders the separator via `border-top` (1px-tall element +
|
|
427
|
+
border-top edge), so colorize via `border-top-color` not `background`. */
|
|
428
|
+
.vc-stepper-separator[data-state="completed"] {
|
|
429
|
+
border-top-color: var(--vc-color-primary-600) !important;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
433
|
+
* @vuecs/table — gap-fill helpers for features Bootstrap doesn't natively
|
|
434
|
+
* cover. Bootstrap's theme strings can't carry `[aria-sort=…]` attribute
|
|
435
|
+
* selectors, so sort-indicator state lives in dedicated `vc-table-sort-{asc,desc}`
|
|
436
|
+
* helpers. Same approach as the overlay animation helpers.
|
|
437
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
438
|
+
|
|
439
|
+
.vc-table-sort-asc,
|
|
440
|
+
.vc-table-sort-desc {
|
|
441
|
+
color: var(--vc-color-fg);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
.vc-table-sticky-header thead th {
|
|
445
|
+
position: sticky;
|
|
446
|
+
top: 0;
|
|
447
|
+
background: var(--vc-color-bg);
|
|
448
|
+
z-index: 10;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
.vc-table-sticky-column {
|
|
452
|
+
background: var(--vc-color-bg);
|
|
453
|
+
z-index: 1;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
.vc-table-row-focused {
|
|
457
|
+
outline: 2px solid var(--vc-color-primary-500);
|
|
458
|
+
outline-offset: -2px;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
/* ────────────────────────────────────────────────────────────────────────────
|
|
463
|
+
* @vuecs/elements Alert — `outline` variant gap-fill. Bootstrap's
|
|
464
|
+
* `.alert-<color>` ships tinted background + border + text in one
|
|
465
|
+
* package; the `outline` variant flattens the background to transparent
|
|
466
|
+
* while keeping the border and color. Used together: e.g.
|
|
467
|
+
* `vc-alert-outline alert-danger`.
|
|
468
|
+
* ──────────────────────────────────────────────────────────────────────── */
|
|
469
|
+
|
|
470
|
+
.vc-alert-outline {
|
|
471
|
+
background-color: transparent !important;
|
|
472
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,cAAc,IAAI,KAAK,CAi+B9C"}
|