@keenmate/pure-css 1.0.0-rc03 → 1.0.0-rc05
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/CHANGELOG.md +195 -0
- package/README.md +69 -23
- package/dist/css/base.css +48 -204
- package/dist/css/grid.css +364 -364
- package/dist/css/pure-css.css +1726 -612
- package/dist/css/reboot.css +5 -5
- package/dist/css/scrollbars.css +9 -9
- package/dist/css/utilities.css +78 -30
- package/package.json +18 -3
- package/src/js/container-breakpoint.js +308 -0
- package/src/js/fit.js +890 -0
- package/src/js/navbar-dropdown.js +164 -0
- package/src/js/pure-css.js +305 -0
- package/src/js/sidebar-resize.js +210 -0
- package/src/scss/_base-css-variables.scss +360 -385
- package/src/scss/_fit-flyout.scss +76 -0
- package/src/scss/_fonts.scss +36 -36
- package/src/scss/_layout-container.scss +168 -0
- package/src/scss/_layout-responsive.scss +181 -0
- package/src/scss/_navbar-elements.scss +419 -0
- package/src/scss/_navbar.scss +120 -0
- package/src/scss/_pa-grid.scss +43 -43
- package/src/scss/_resize-handle.scss +76 -0
- package/src/scss/_sidebar-states.scss +243 -0
- package/src/scss/_sidebar.scss +420 -0
- package/src/scss/base.scss +2 -3
- package/src/scss/grid.scss +1 -1
- package/src/scss/pure-css.scss +20 -5
- package/src/scss/reboot.scss +5 -5
- package/src/scss/scrollbars.scss +10 -10
- package/src/scss/utilities.scss +791 -758
- package/src/scss/variables/_base.scss +232 -232
- package/src/scss/variables/_components.scss +840 -835
- package/src/scss/variables/_layout.scss +62 -62
- package/src/scss/variables/_system.scss +1 -1
- package/src/scss/variables/_typography.scss +37 -37
|
@@ -146,80 +146,21 @@
|
|
|
146
146
|
--base-border-radius-lg: #{$base-border-radius-lg};
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
// ============================================================================
|
|
150
|
-
// ALERT COLOR DERIVATION MIXINS
|
|
151
|
-
// ============================================================================
|
|
152
|
-
// These mixins use color-mix() to automatically derive alert colors from
|
|
153
|
-
// semantic base colors (--pa-success-bg, --pa-danger-bg, etc.)
|
|
154
|
-
//
|
|
155
|
-
// Light mode: dark text on subtle backgrounds
|
|
156
|
-
// Dark mode: light text on tinted backgrounds
|
|
157
|
-
//
|
|
158
|
-
// Themes call the appropriate mixin instead of hardcoding 12+ CSS variables.
|
|
159
|
-
// Override specific variables after the mixin call if needed.
|
|
160
|
-
// ============================================================================
|
|
161
|
-
|
|
162
|
-
// Light mode: dark text on subtle backgrounds
|
|
163
|
-
@mixin output-pa-alert-variables-light {
|
|
164
|
-
// Success
|
|
165
|
-
--pa-alert-success-text: color-mix(in srgb, var(--pa-success-bg) #{$alert-text-mix-light}, black);
|
|
166
|
-
--pa-alert-success-bg: color-mix(in srgb, var(--pa-success-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
167
|
-
--pa-alert-success-border: color-mix(in srgb, var(--pa-success-bg) #{$alert-border-opacity-light}%, transparent);
|
|
168
|
-
|
|
169
|
-
// Danger
|
|
170
|
-
--pa-alert-danger-text: color-mix(in srgb, var(--pa-danger-bg) #{$alert-text-mix-light}, black);
|
|
171
|
-
--pa-alert-danger-bg: color-mix(in srgb, var(--pa-danger-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
172
|
-
--pa-alert-danger-border: color-mix(in srgb, var(--pa-danger-bg) #{$alert-border-opacity-light}%, transparent);
|
|
173
|
-
|
|
174
|
-
// Warning
|
|
175
|
-
--pa-alert-warning-text: color-mix(in srgb, var(--pa-warning-bg) #{$alert-text-mix-light}, black);
|
|
176
|
-
--pa-alert-warning-bg: color-mix(in srgb, var(--pa-warning-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
177
|
-
--pa-alert-warning-border: color-mix(in srgb, var(--pa-warning-bg) #{$alert-border-opacity-light}%, transparent);
|
|
178
|
-
|
|
179
|
-
// Info
|
|
180
|
-
--pa-alert-info-text: color-mix(in srgb, var(--pa-info-bg) #{$alert-text-mix-light}, black);
|
|
181
|
-
--pa-alert-info-bg: color-mix(in srgb, var(--pa-info-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
182
|
-
--pa-alert-info-border: color-mix(in srgb, var(--pa-info-bg) #{$alert-border-opacity-light}%, transparent);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Dark mode: white text on tinted backgrounds (white text is always readable)
|
|
186
|
-
@mixin output-pa-alert-variables-dark {
|
|
187
|
-
// Success
|
|
188
|
-
--pa-alert-success-text: #ffffff;
|
|
189
|
-
--pa-alert-success-bg: color-mix(in srgb, var(--pa-success-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
190
|
-
--pa-alert-success-border: color-mix(in srgb, var(--pa-success-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
191
|
-
|
|
192
|
-
// Danger
|
|
193
|
-
--pa-alert-danger-text: #ffffff;
|
|
194
|
-
--pa-alert-danger-bg: color-mix(in srgb, var(--pa-danger-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
195
|
-
--pa-alert-danger-border: color-mix(in srgb, var(--pa-danger-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
196
|
-
|
|
197
|
-
// Warning
|
|
198
|
-
--pa-alert-warning-text: #ffffff;
|
|
199
|
-
--pa-alert-warning-bg: color-mix(in srgb, var(--pa-warning-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
200
|
-
--pa-alert-warning-border: color-mix(in srgb, var(--pa-warning-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
201
|
-
|
|
202
|
-
// Info
|
|
203
|
-
--pa-alert-info-text: #ffffff;
|
|
204
|
-
--pa-alert-info-bg: color-mix(in srgb, var(--pa-info-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
205
|
-
--pa-alert-info-border: color-mix(in srgb, var(--pa-info-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
149
|
// ============================================================================
|
|
209
150
|
// DERIVED TOKENS — TEXT CONTRAST TIERS + SURFACE TINTS
|
|
210
151
|
// ============================================================================
|
|
211
|
-
// These tokens use `color-mix(... var(--
|
|
152
|
+
// These tokens use `color-mix(... var(--pc-text-color-1) ...)` to derive
|
|
212
153
|
// theme-aware contrast levels. They MUST be emitted at every selector that
|
|
213
|
-
// could carry an override of --
|
|
154
|
+
// could carry an override of --pc-text-color-1, because CSS custom property
|
|
214
155
|
// substitution bakes nested var() references at the *defining element*, not
|
|
215
|
-
// the using element. If we only defined these at `:root, .
|
|
156
|
+
// the using element. If we only defined these at `:root, .pc-mode-light`,
|
|
216
157
|
// the light-mode text colour would be frozen into the value, and elements
|
|
217
|
-
// inside `.
|
|
158
|
+
// inside `.pc-mode-dark` (which overrides --pc-text-color-1 at body) would
|
|
218
159
|
// inherit the light-mode-baked tier values → low contrast on dark surfaces.
|
|
219
160
|
//
|
|
220
161
|
// Emitting at all three selectors causes each scope to recompute the tiers
|
|
221
|
-
// against its own --
|
|
222
|
-
// .
|
|
162
|
+
// against its own --pc-text-color-1. The selector list `:root, .pc-mode-light,
|
|
163
|
+
// .pc-mode-dark` covers html, body in light mode, and body in dark mode —
|
|
223
164
|
// regardless of which class layout each theme uses for mode switching.
|
|
224
165
|
//
|
|
225
166
|
// This is a TOP-LEVEL rule (not inside the mixin) because themes only call
|
|
@@ -228,421 +169,455 @@
|
|
|
228
169
|
// dark-mode tiers without changing any theme code.
|
|
229
170
|
//
|
|
230
171
|
// Override these per-theme by redefining them in the same scope you
|
|
231
|
-
// override --
|
|
172
|
+
// override --pc-text-color-1.
|
|
232
173
|
// ============================================================================
|
|
233
174
|
|
|
234
175
|
:root,
|
|
235
|
-
.
|
|
236
|
-
.
|
|
237
|
-
--
|
|
238
|
-
--
|
|
239
|
-
--
|
|
240
|
-
--
|
|
241
|
-
--
|
|
176
|
+
.pc-mode-light,
|
|
177
|
+
.pc-mode-dark {
|
|
178
|
+
--pc-text-strong: color-mix(in srgb, var(--pc-text-color-1) 85%, transparent);
|
|
179
|
+
--pc-text-secondary: color-mix(in srgb, var(--pc-text-color-1) 70%, transparent);
|
|
180
|
+
--pc-text-tertiary: color-mix(in srgb, var(--pc-text-color-1) 55%, transparent);
|
|
181
|
+
--pc-surface-hover: color-mix(in srgb, var(--pc-text-color-1) 4%, transparent);
|
|
182
|
+
--pc-surface-track: color-mix(in srgb, var(--pc-text-color-1) 12%, transparent);
|
|
242
183
|
}
|
|
243
184
|
|
|
244
185
|
// ============================================================================
|
|
245
|
-
// PURE
|
|
186
|
+
// PURE-CSS FOUNDATION TOKENS — the base runtime custom-property contract
|
|
246
187
|
// ============================================================================
|
|
247
|
-
//
|
|
248
|
-
//
|
|
188
|
+
// pure-css is a *foundation*: it ships only the BASE token contract — the
|
|
189
|
+
// tokens its own CSS (grid / utilities / reboot / scrollbars) consumes, plus
|
|
190
|
+
// the universal theming primitives (surfaces, text, accent, links, border,
|
|
191
|
+
// the semantic role identities + their utility text colours, the theme
|
|
192
|
+
// palette slots, and the border-radius scale).
|
|
249
193
|
//
|
|
250
|
-
//
|
|
251
|
-
//
|
|
252
|
-
//
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
//
|
|
256
|
-
//
|
|
194
|
+
// COMPONENT tokens (buttons, cards, tables, modals, badges, tooltips, panels,
|
|
195
|
+
// command palette, multiselect, sentiment scale, form spacing, the derived
|
|
196
|
+
// contextual/alert surfaces, admin layout chrome, …) are NOT emitted here —
|
|
197
|
+
// they are pure-admin's contract, emitted by pure-admin's
|
|
198
|
+
// `output-pc-component-variables` + `output-pc-alert-variables-{light,dark}`.
|
|
199
|
+
// Those mixins read the same shared $-variable vocabulary defined in
|
|
200
|
+
// `variables/*`, so themes still override one place; only the *emission* of
|
|
201
|
+
// component custom properties lives with the components that use them.
|
|
257
202
|
// ============================================================================
|
|
258
203
|
|
|
259
|
-
@mixin output-
|
|
260
|
-
// =========================================================================
|
|
261
|
-
// COLOR SCHEME SIGNAL
|
|
204
|
+
@mixin output-pc-css-variables {
|
|
262
205
|
// Tells the browser whether this scope is light or dark so native UA
|
|
263
|
-
// elements (scrollbars, form controls) and `light-dark()` resolve
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
//
|
|
267
|
-
// themes leave default `light` here and add `color-scheme: dark;` to
|
|
268
|
-
// the `.pa-mode-dark` block.
|
|
269
|
-
// =========================================================================
|
|
206
|
+
// elements (scrollbars, form controls) and `light-dark()` resolve correctly.
|
|
207
|
+
// Override $theme-color-scheme before importing variables for always-dark
|
|
208
|
+
// themes; for dual-mode themes leave `light` and add `color-scheme: dark;`
|
|
209
|
+
// to the `.pc-mode-dark` block.
|
|
270
210
|
color-scheme: #{$theme-color-scheme};
|
|
271
211
|
|
|
272
|
-
//
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
// Background colors
|
|
277
|
-
--pa-main-bg: #{$main-bg};
|
|
278
|
-
--pa-page-bg: #{$page-bg};
|
|
279
|
-
--pa-subtle-bg: #{$subtle-bg};
|
|
212
|
+
// Surfaces
|
|
213
|
+
--pc-main-bg: #{$main-bg};
|
|
214
|
+
--pc-page-bg: #{$page-bg};
|
|
215
|
+
--pc-subtle-bg: #{$subtle-bg};
|
|
280
216
|
|
|
281
|
-
// Text
|
|
282
|
-
--
|
|
283
|
-
--
|
|
217
|
+
// Text
|
|
218
|
+
--pc-text-color-1: #{$text-color-1};
|
|
219
|
+
--pc-text-color-2: #{$text-color-2};
|
|
284
220
|
|
|
285
|
-
// Accent
|
|
286
|
-
--
|
|
287
|
-
--
|
|
288
|
-
|
|
289
|
-
// SCSS-only consumers still get $accent-light from variables/_base.scss via the !default chain.
|
|
290
|
-
--pa-accent-light: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
221
|
+
// Accent — -light derives from --pc-accent at runtime so theme overrides cascade.
|
|
222
|
+
--pc-accent: #{$accent-color};
|
|
223
|
+
--pc-accent-hover: #{$accent-hover};
|
|
224
|
+
--pc-accent-light: color-mix(in srgb, var(--pc-accent) 5%, transparent);
|
|
291
225
|
|
|
292
226
|
// Links — derive from accent so theme overrides cascade automatically.
|
|
293
|
-
// Hover mixes
|
|
294
|
-
// so it auto-darkens on light themes and auto-lightens on dark themes
|
|
295
|
-
|
|
296
|
-
--
|
|
297
|
-
--
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
//
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
//
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
//
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
--
|
|
321
|
-
--
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
--
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
--
|
|
341
|
-
--
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
//
|
|
367
|
-
//
|
|
368
|
-
//
|
|
369
|
-
//
|
|
370
|
-
|
|
371
|
-
--
|
|
372
|
-
--
|
|
373
|
-
--
|
|
374
|
-
--
|
|
375
|
-
--
|
|
227
|
+
// Hover mixes 50% toward currentColor (inherited text colour at the use site),
|
|
228
|
+
// so it auto-darkens on light themes and auto-lightens on dark themes.
|
|
229
|
+
--pc-link-color: var(--pc-accent);
|
|
230
|
+
--pc-link-color-hover: color-mix(in srgb, var(--pc-link-color), currentColor 50%);
|
|
231
|
+
--pc-link-color-visited: var(--pc-link-color);
|
|
232
|
+
|
|
233
|
+
// Border — a live reference to --base-border-color (so a runtime --base-*
|
|
234
|
+
// override cascades), with the build-time value as the literal fallback.
|
|
235
|
+
--pc-border-color: var(--base-border-color, #{$border-color});
|
|
236
|
+
|
|
237
|
+
// Semantic role identities — the single source for the four roles. Component
|
|
238
|
+
// surfaces (--pc-*-bg, alerts, buttons) derive from these via var() in
|
|
239
|
+
// pure-admin, so retuning a role here cascades everywhere.
|
|
240
|
+
--pc-success: #{$base-success-color};
|
|
241
|
+
--pc-warning: #{$base-warning-color};
|
|
242
|
+
--pc-danger: #{$base-danger-color};
|
|
243
|
+
--pc-info: #{$base-info-color};
|
|
244
|
+
|
|
245
|
+
// Role text colours — consumed by the .text-{success,danger,warning,info}
|
|
246
|
+
// utilities (utilities.scss). Kept in the base contract for that reason.
|
|
247
|
+
--pc-success-text: #{$success-text};
|
|
248
|
+
--pc-danger-text: #{$danger-text};
|
|
249
|
+
--pc-warning-text: #{$warning-text};
|
|
250
|
+
--pc-info-text: #{$info-text};
|
|
251
|
+
|
|
252
|
+
// Theme palette slots (1–9) + paired contrast text. Consumed by the
|
|
253
|
+
// .text-color-* utilities; themes override $color-N for branded palettes.
|
|
254
|
+
--pc-color-1: #{$color-1};
|
|
255
|
+
--pc-color-2: #{$color-2};
|
|
256
|
+
--pc-color-3: #{$color-3};
|
|
257
|
+
--pc-color-4: #{$color-4};
|
|
258
|
+
--pc-color-5: #{$color-5};
|
|
259
|
+
--pc-color-6: #{$color-6};
|
|
260
|
+
--pc-color-7: #{$color-7};
|
|
261
|
+
--pc-color-8: #{$color-8};
|
|
262
|
+
--pc-color-9: #{$color-9};
|
|
263
|
+
--pc-color-1-text: #{$color-1-text};
|
|
264
|
+
--pc-color-2-text: #{$color-2-text};
|
|
265
|
+
--pc-color-3-text: #{$color-3-text};
|
|
266
|
+
--pc-color-4-text: #{$color-4-text};
|
|
267
|
+
--pc-color-5-text: #{$color-5-text};
|
|
268
|
+
--pc-color-6-text: #{$color-6-text};
|
|
269
|
+
--pc-color-7-text: #{$color-7-text};
|
|
270
|
+
--pc-color-8-text: #{$color-8-text};
|
|
271
|
+
--pc-color-9-text: #{$color-9-text};
|
|
272
|
+
|
|
273
|
+
// Border-radius scale
|
|
274
|
+
--pc-border-radius-sm: #{$border-radius-sm};
|
|
275
|
+
--pc-border-radius: #{$border-radius};
|
|
276
|
+
--pc-border-radius-lg: #{$border-radius-lg};
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// ============================================================================
|
|
280
|
+
// COMPONENT CSS VARIABLES — pure-admin's contract (DEFINED here, EMITTED there)
|
|
281
|
+
// ============================================================================
|
|
282
|
+
// These emit the component-scoped --pc-* tokens (buttons, cards, tables,
|
|
283
|
+
// panels, badges, tooltips, command palette, multiselect, sentiment scale,
|
|
284
|
+
// form spacing, the derived contextual/alert surfaces, admin layout chrome).
|
|
285
|
+
//
|
|
286
|
+
// They are DEFINED in pure-css only because they read the shared $-variable
|
|
287
|
+
// vocabulary that lives in `variables/*` (in scope here via `@use variables/
|
|
288
|
+
// index as *`); a Sass mixin resolves those globals from its definition site,
|
|
289
|
+
// so it must be authored where the vocabulary is visible.
|
|
290
|
+
//
|
|
291
|
+
// They are NOT part of pure-css's shipped output: base.scss / pure-css.scss do
|
|
292
|
+
// NOT call them, so the foundation bundle emits base tokens only. Consumers
|
|
293
|
+
// that ship the components (pure-admin core, themes) opt in by calling
|
|
294
|
+
// output-pc-component-variables + output-pc-alert-variables-{light,dark}
|
|
295
|
+
// alongside output-pc-css-variables. This keeps the EMISSION with the
|
|
296
|
+
// components while the shared token vocabulary stays single-sourced.
|
|
297
|
+
// ============================================================================
|
|
298
|
+
|
|
299
|
+
@mixin output-pc-component-variables {
|
|
300
|
+
// =========================================================================
|
|
301
|
+
// SENTIMENT SCALE — 5-step direction-of-change (KPI / data-display).
|
|
302
|
+
// Middle three alias the role colours so retuning --pc-success / --pc-danger
|
|
303
|
+
// retunes the matching sentiment positions; outliers are explicit shades.
|
|
304
|
+
// =========================================================================
|
|
305
|
+
--pc-very-positive: #{$base-very-positive};
|
|
306
|
+
--pc-positive: var(--pc-success);
|
|
307
|
+
--pc-neutral: #{$base-neutral};
|
|
308
|
+
--pc-negative: var(--pc-danger);
|
|
309
|
+
--pc-very-negative: #{$base-very-negative};
|
|
310
|
+
|
|
311
|
+
// =========================================================================
|
|
312
|
+
// CHART / SPARKLINE — shared trendline sizing.
|
|
313
|
+
// =========================================================================
|
|
314
|
+
--pc-chart-trendline-height: 3rem;
|
|
315
|
+
--pc-chart-trendline-stroke: 2.1; // SVG user-space units (viewBox-relative)
|
|
316
|
+
|
|
317
|
+
// =========================================================================
|
|
318
|
+
// DETAIL POPOVER — Bloomberg-dark by default regardless of host theme.
|
|
319
|
+
// Override the five tokens to adopt a theme-aware popover instead.
|
|
320
|
+
// =========================================================================
|
|
321
|
+
--pc-detail-bg: rgba(15, 17, 21, 0.97);
|
|
322
|
+
--pc-detail-text: #ffffff;
|
|
323
|
+
--pc-detail-row-label: rgba(255, 255, 255, 0.75);
|
|
324
|
+
--pc-detail-title: rgba(255, 255, 255, 0.55);
|
|
325
|
+
--pc-detail-shadow: 0 1.4rem 3.6rem rgba(0, 0, 0, 0.55);
|
|
376
326
|
|
|
377
327
|
// =========================================================================
|
|
378
328
|
// LAYOUT COLORS
|
|
379
329
|
// =========================================================================
|
|
380
330
|
|
|
381
331
|
// Navbar
|
|
382
|
-
--
|
|
383
|
-
--
|
|
384
|
-
--
|
|
385
|
-
--
|
|
386
|
-
--
|
|
332
|
+
--pc-navbar-bg: #{$navbar-bg};
|
|
333
|
+
--pc-navbar-border-color: #{$navbar-border-color};
|
|
334
|
+
--pc-navbar-text: #{$navbar-text};
|
|
335
|
+
--pc-navbar-text-secondary: #{$navbar-text-secondary};
|
|
336
|
+
--pc-navbar-profile-name-color: #{$navbar-profile-name-color};
|
|
387
337
|
|
|
388
338
|
// Sidebar
|
|
389
|
-
--
|
|
390
|
-
--
|
|
391
|
-
--
|
|
392
|
-
--
|
|
393
|
-
--
|
|
394
|
-
--
|
|
395
|
-
--
|
|
339
|
+
--pc-sidebar-bg: #{$sidebar-bg};
|
|
340
|
+
--pc-sidebar-text: #{$sidebar-text};
|
|
341
|
+
--pc-sidebar-text-secondary: #{$sidebar-text-secondary};
|
|
342
|
+
--pc-sidebar-submenu-bg: #{$sidebar-submenu-bg};
|
|
343
|
+
--pc-sidebar-submenu-hover-bg: #{$sidebar-submenu-hover-bg};
|
|
344
|
+
--pc-sidebar-submenu-active-bg: #{$sidebar-submenu-active-bg};
|
|
345
|
+
--pc-sidebar-submenu-active-text: #{$sidebar-submenu-active-text};
|
|
396
346
|
|
|
397
347
|
// Footer
|
|
398
|
-
--
|
|
399
|
-
--
|
|
348
|
+
--pc-footer-bg: #{$footer-bg};
|
|
349
|
+
--pc-footer-border-color: #{$footer-border-color};
|
|
400
350
|
|
|
401
351
|
// =========================================================================
|
|
402
352
|
// BUTTON COLORS
|
|
403
353
|
// =========================================================================
|
|
404
354
|
|
|
405
355
|
// Primary (uses accent color)
|
|
406
|
-
--
|
|
407
|
-
--
|
|
408
|
-
|
|
409
|
-
--
|
|
410
|
-
--pa-btn-primary-text: #{$btn-primary-text};
|
|
356
|
+
--pc-btn-primary-bg: #{$btn-primary-bg};
|
|
357
|
+
--pc-btn-primary-bg-hover: #{$btn-primary-bg-hover};
|
|
358
|
+
--pc-btn-primary-bg-light: color-mix(in srgb, var(--pc-btn-primary-bg) 5%, transparent);
|
|
359
|
+
--pc-btn-primary-text: #{$btn-primary-text};
|
|
411
360
|
|
|
412
361
|
// Secondary
|
|
413
|
-
--
|
|
414
|
-
--
|
|
415
|
-
--
|
|
416
|
-
|
|
417
|
-
// so the resting outline matches the colour the hover fill animates to.
|
|
418
|
-
// Was previously $btn-secondary-text (#ffffff) which rendered invisible on
|
|
419
|
-
// any light theme — pre-existing bug, not a 2.7.0 regression.
|
|
420
|
-
--pa-btn-secondary-outline-color: var(--pa-btn-secondary-bg);
|
|
362
|
+
--pc-btn-secondary-bg: #{$btn-secondary-bg};
|
|
363
|
+
--pc-btn-secondary-bg-hover: #{$btn-secondary-bg-hover};
|
|
364
|
+
--pc-btn-secondary-text: #{$btn-secondary-text};
|
|
365
|
+
--pc-btn-secondary-outline-color: var(--pc-btn-secondary-bg);
|
|
421
366
|
|
|
422
367
|
// Success — bg references role colour for runtime cascade
|
|
423
|
-
--
|
|
424
|
-
--
|
|
425
|
-
--
|
|
368
|
+
--pc-btn-success-bg: var(--pc-success);
|
|
369
|
+
--pc-btn-success-bg-hover: #{$btn-success-bg-hover};
|
|
370
|
+
--pc-btn-success-text: #{$btn-success-text};
|
|
426
371
|
|
|
427
372
|
// Danger — bg references role colour for runtime cascade
|
|
428
|
-
--
|
|
429
|
-
--
|
|
430
|
-
--
|
|
373
|
+
--pc-btn-danger-bg: var(--pc-danger);
|
|
374
|
+
--pc-btn-danger-bg-hover: #{$btn-danger-bg-hover};
|
|
375
|
+
--pc-btn-danger-text: #{$btn-danger-text};
|
|
431
376
|
|
|
432
377
|
// Warning — bg references role colour for runtime cascade
|
|
433
|
-
--
|
|
434
|
-
--
|
|
435
|
-
--
|
|
378
|
+
--pc-btn-warning-bg: var(--pc-warning);
|
|
379
|
+
--pc-btn-warning-bg-hover: #{$btn-warning-bg-hover};
|
|
380
|
+
--pc-btn-warning-text: #{$btn-warning-text};
|
|
436
381
|
|
|
437
382
|
// Info — bg references role colour for runtime cascade
|
|
438
|
-
--
|
|
439
|
-
--
|
|
440
|
-
--
|
|
383
|
+
--pc-btn-info-bg: var(--pc-info);
|
|
384
|
+
--pc-btn-info-bg-hover: #{$btn-info-bg-hover};
|
|
385
|
+
--pc-btn-info-text: #{$btn-info-text};
|
|
441
386
|
|
|
442
387
|
// Light
|
|
443
|
-
--
|
|
444
|
-
--
|
|
445
|
-
--
|
|
388
|
+
--pc-btn-light-bg: #{$btn-light-bg};
|
|
389
|
+
--pc-btn-light-bg-hover: #{$btn-light-bg-hover};
|
|
390
|
+
--pc-btn-light-text: #{$btn-light-text};
|
|
446
391
|
|
|
447
392
|
// Dark
|
|
448
|
-
--
|
|
449
|
-
--
|
|
450
|
-
--
|
|
451
|
-
|
|
452
|
-
// =========================================================================
|
|
453
|
-
// CONTEXTUAL/SEMANTIC
|
|
454
|
-
//
|
|
455
|
-
|
|
456
|
-
//
|
|
457
|
-
//
|
|
458
|
-
|
|
459
|
-
--
|
|
460
|
-
--
|
|
461
|
-
--
|
|
462
|
-
--
|
|
463
|
-
--
|
|
464
|
-
|
|
465
|
-
--
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
--
|
|
469
|
-
--
|
|
470
|
-
--
|
|
471
|
-
|
|
472
|
-
--
|
|
473
|
-
--
|
|
474
|
-
--
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
--
|
|
478
|
-
|
|
479
|
-
--
|
|
480
|
-
--
|
|
481
|
-
--
|
|
482
|
-
--
|
|
483
|
-
--
|
|
484
|
-
|
|
485
|
-
// Info — bg references role colour for runtime cascade.
|
|
486
|
-
--pa-info-bg: var(--pa-info);
|
|
487
|
-
--pa-info-bg-hover: #{$info-bg-hover};
|
|
488
|
-
--pa-info-bg-light: color-mix(in srgb, var(--pa-info) 10%, transparent);
|
|
489
|
-
--pa-info-bg-subtle: color-mix(in srgb, var(--pa-info) 8%, transparent);
|
|
490
|
-
--pa-info-border: color-mix(in srgb, var(--pa-info) 20%, transparent);
|
|
491
|
-
--pa-info-text: #{$info-text};
|
|
492
|
-
--pa-info-text-light: #{$info-text-light};
|
|
393
|
+
--pc-btn-dark-bg: #{$btn-dark-bg};
|
|
394
|
+
--pc-btn-dark-bg-hover: #{$btn-dark-bg-hover};
|
|
395
|
+
--pc-btn-dark-text: #{$btn-dark-text};
|
|
396
|
+
|
|
397
|
+
// =========================================================================
|
|
398
|
+
// CONTEXTUAL/SEMANTIC SURFACES — derive from the base role identities.
|
|
399
|
+
// -bg/-light/-subtle/-border derive at runtime so theme overrides cascade;
|
|
400
|
+
// -bg-hover / -text-light stay compile-time. (The role text colours
|
|
401
|
+
// --pc-{success,danger,warning,info}-text live in the base contract.)
|
|
402
|
+
// =========================================================================
|
|
403
|
+
--pc-success-bg: var(--pc-success);
|
|
404
|
+
--pc-success-bg-hover: #{$success-bg-hover};
|
|
405
|
+
--pc-success-bg-light: color-mix(in srgb, var(--pc-success) 10%, transparent);
|
|
406
|
+
--pc-success-bg-subtle: color-mix(in srgb, var(--pc-success) 8%, transparent);
|
|
407
|
+
--pc-success-border: color-mix(in srgb, var(--pc-success) 20%, transparent);
|
|
408
|
+
--pc-success-text-light: #{$success-text-light};
|
|
409
|
+
|
|
410
|
+
--pc-danger-bg: var(--pc-danger);
|
|
411
|
+
--pc-danger-bg-hover: #{$danger-bg-hover};
|
|
412
|
+
--pc-danger-bg-light: color-mix(in srgb, var(--pc-danger) 10%, transparent);
|
|
413
|
+
--pc-danger-bg-subtle: color-mix(in srgb, var(--pc-danger) 8%, transparent);
|
|
414
|
+
--pc-danger-border: color-mix(in srgb, var(--pc-danger) 20%, transparent);
|
|
415
|
+
--pc-danger-text-light: #{$danger-text-light};
|
|
416
|
+
|
|
417
|
+
--pc-warning-bg: var(--pc-warning);
|
|
418
|
+
--pc-warning-bg-hover: #{$warning-bg-hover};
|
|
419
|
+
--pc-warning-bg-light: color-mix(in srgb, var(--pc-warning) 10%, transparent);
|
|
420
|
+
--pc-warning-bg-subtle: color-mix(in srgb, var(--pc-warning) 8%, transparent);
|
|
421
|
+
--pc-warning-border: color-mix(in srgb, var(--pc-warning) 20%, transparent);
|
|
422
|
+
--pc-warning-text-light: #{$warning-text-light};
|
|
423
|
+
|
|
424
|
+
--pc-info-bg: var(--pc-info);
|
|
425
|
+
--pc-info-bg-hover: #{$info-bg-hover};
|
|
426
|
+
--pc-info-bg-light: color-mix(in srgb, var(--pc-info) 10%, transparent);
|
|
427
|
+
--pc-info-bg-subtle: color-mix(in srgb, var(--pc-info) 8%, transparent);
|
|
428
|
+
--pc-info-border: color-mix(in srgb, var(--pc-info) 20%, transparent);
|
|
429
|
+
--pc-info-text-light: #{$info-text-light};
|
|
493
430
|
|
|
494
431
|
// =========================================================================
|
|
495
432
|
// CARD COLORS
|
|
496
433
|
// =========================================================================
|
|
497
|
-
--
|
|
498
|
-
--
|
|
499
|
-
--
|
|
500
|
-
--
|
|
434
|
+
--pc-card-bg: #{$card-bg};
|
|
435
|
+
--pc-card-header-bg: #{$card-header-bg};
|
|
436
|
+
--pc-card-footer-bg: #{$card-footer-bg};
|
|
437
|
+
--pc-card-tabs-bg: #{$card-tabs-bg};
|
|
501
438
|
|
|
502
439
|
// =========================================================================
|
|
503
440
|
// INPUT/FORM COLORS
|
|
504
441
|
// =========================================================================
|
|
505
|
-
--
|
|
506
|
-
--
|
|
507
|
-
--
|
|
508
|
-
--
|
|
509
|
-
--
|
|
510
|
-
--
|
|
442
|
+
--pc-input-bg: #{$input-bg};
|
|
443
|
+
--pc-input-border: #{$input-border};
|
|
444
|
+
--pc-input-text: #{$input-text};
|
|
445
|
+
--pc-input-focus-border-color: #{$input-focus-border-color};
|
|
446
|
+
--pc-select-focus-border-color: #{$select-focus-border-color};
|
|
447
|
+
--pc-textarea-focus-border-color: #{$textarea-focus-border-color};
|
|
511
448
|
|
|
512
449
|
// Checkbox
|
|
513
|
-
--
|
|
514
|
-
--
|
|
515
|
-
--
|
|
516
|
-
--
|
|
517
|
-
--
|
|
518
|
-
--
|
|
519
|
-
--
|
|
520
|
-
--
|
|
450
|
+
--pc-checkbox-border-color: #{$checkbox-border-color};
|
|
451
|
+
--pc-checkbox-border-color-hover: #{$checkbox-border-color-hover};
|
|
452
|
+
--pc-checkbox-border-color-checked: #{$checkbox-border-color-checked};
|
|
453
|
+
--pc-checkbox-bg: #{$checkbox-bg};
|
|
454
|
+
--pc-checkbox-bg-checked: #{$checkbox-bg-checked};
|
|
455
|
+
--pc-checkbox-bg-indeterminate: #{$checkbox-bg-indeterminate};
|
|
456
|
+
--pc-checkbox-checkmark-color: #{$checkbox-checkmark-color};
|
|
457
|
+
--pc-checkbox-focus-shadow: #{$checkbox-focus-shadow};
|
|
521
458
|
|
|
522
459
|
// Input group
|
|
523
|
-
--
|
|
524
|
-
--
|
|
525
|
-
--
|
|
526
|
-
--
|
|
460
|
+
--pc-input-group-prepend-bg: #{$input-group-prepend-bg};
|
|
461
|
+
--pc-input-group-prepend-text: #{$input-group-prepend-text};
|
|
462
|
+
--pc-input-group-append-bg: #{$input-group-append-bg};
|
|
463
|
+
--pc-input-group-append-text: #{$input-group-append-text};
|
|
527
464
|
|
|
528
465
|
// =========================================================================
|
|
529
466
|
// TABLE COLORS
|
|
530
467
|
// =========================================================================
|
|
531
|
-
--
|
|
532
|
-
--
|
|
533
|
-
--
|
|
534
|
-
--
|
|
535
|
-
--
|
|
468
|
+
--pc-table-bg: #{$table-bg};
|
|
469
|
+
--pc-table-header-bg: #{$table-header-bg};
|
|
470
|
+
--pc-table-stripe: #{$table-stripe};
|
|
471
|
+
--pc-table-hover-bg: #{$table-hover-bg};
|
|
472
|
+
--pc-table-hover-accent-color: #{$table-hover-accent-color};
|
|
536
473
|
|
|
537
474
|
// =========================================================================
|
|
538
475
|
// MODAL COLORS
|
|
539
476
|
// =========================================================================
|
|
540
|
-
--
|
|
541
|
-
--
|
|
542
|
-
|
|
543
|
-
// =========================================================================
|
|
544
|
-
// ALERT COLORS - Now derived via output-pa-alert-variables-light/dark mixins
|
|
545
|
-
// Themes must call the appropriate mixin after output-pa-css-variables
|
|
546
|
-
// =========================================================================
|
|
477
|
+
--pc-modal-overlay-bg: #{$modal-overlay-bg};
|
|
478
|
+
--pc-modal-content-bg: #{$modal-content-bg};
|
|
547
479
|
|
|
548
480
|
// =========================================================================
|
|
549
481
|
// BADGE COLORS
|
|
550
482
|
// =========================================================================
|
|
551
|
-
--
|
|
552
|
-
--
|
|
553
|
-
--
|
|
554
|
-
--
|
|
555
|
-
--
|
|
556
|
-
--
|
|
557
|
-
--
|
|
558
|
-
--
|
|
483
|
+
--pc-badge-success-bg: #{$badge-success-bg};
|
|
484
|
+
--pc-badge-success-text: #{$badge-success-text};
|
|
485
|
+
--pc-badge-warning-bg: #{$badge-warning-bg};
|
|
486
|
+
--pc-badge-warning-text: #{$badge-warning-text};
|
|
487
|
+
--pc-badge-info-bg: #{$badge-info-bg};
|
|
488
|
+
--pc-badge-info-text: #{$badge-info-text};
|
|
489
|
+
--pc-badge-danger-bg: #{$badge-danger-bg};
|
|
490
|
+
--pc-badge-danger-text: #{$badge-danger-text};
|
|
559
491
|
|
|
560
492
|
// Composite badge
|
|
561
|
-
--
|
|
562
|
-
--
|
|
563
|
-
--
|
|
564
|
-
--
|
|
493
|
+
--pc-composite-badge-icon-bg: #{$composite-badge-icon-bg};
|
|
494
|
+
--pc-composite-badge-label-bg: #{$composite-badge-label-bg};
|
|
495
|
+
--pc-composite-badge-label-text: #{$composite-badge-label-text};
|
|
496
|
+
--pc-composite-badge-label-hover-bg: #{$composite-badge-label-hover-bg};
|
|
565
497
|
|
|
566
498
|
// =========================================================================
|
|
567
499
|
// TOOLTIP & POPOVER COLORS
|
|
568
500
|
// =========================================================================
|
|
569
|
-
--
|
|
570
|
-
--
|
|
571
|
-
--
|
|
572
|
-
--
|
|
573
|
-
--
|
|
501
|
+
--pc-tooltip-bg: #{$tooltip-bg};
|
|
502
|
+
--pc-tooltip-text: #{$tooltip-text};
|
|
503
|
+
--pc-popover-content-bg: #{$popover-content-bg};
|
|
504
|
+
--pc-popover-text-light: #{$popover-text-light};
|
|
505
|
+
--pc-popover-text-dark: #{$popover-text-dark};
|
|
574
506
|
|
|
575
507
|
// =========================================================================
|
|
576
508
|
// LOADER COLORS
|
|
577
509
|
// =========================================================================
|
|
578
|
-
--
|
|
510
|
+
--pc-loader-overlay-bg: #{$loader-overlay-bg};
|
|
579
511
|
|
|
580
512
|
// =========================================================================
|
|
581
513
|
// PROFILE PANEL COLORS
|
|
582
514
|
// =========================================================================
|
|
583
|
-
--
|
|
515
|
+
--pc-profile-overlay-bg: #{$profile-overlay-bg};
|
|
584
516
|
|
|
585
517
|
// =========================================================================
|
|
586
518
|
// DETAIL PANEL COLORS
|
|
587
519
|
// =========================================================================
|
|
588
|
-
--
|
|
589
|
-
--
|
|
590
|
-
--
|
|
520
|
+
--pc-detail-panel-overlay-bg: #{$detail-panel-overlay-bg};
|
|
521
|
+
--pc-detail-panel-selected-bg: #{$detail-panel-selected-bg};
|
|
522
|
+
--pc-detail-panel-z-index: #{$detail-panel-z-index};
|
|
591
523
|
|
|
592
524
|
// =========================================================================
|
|
593
525
|
// COMMAND PALETTE COLORS
|
|
594
526
|
// =========================================================================
|
|
595
|
-
--
|
|
596
|
-
--
|
|
597
|
-
--
|
|
598
|
-
--
|
|
599
|
-
--
|
|
600
|
-
--
|
|
601
|
-
--
|
|
602
|
-
--
|
|
603
|
-
--
|
|
527
|
+
--pc-command-palette-backdrop-bg: #{$command-palette-backdrop-bg};
|
|
528
|
+
--pc-command-palette-item-hover-bg: #{$command-palette-item-hover-bg};
|
|
529
|
+
--pc-command-palette-item-active-bg: #{$command-palette-item-active-bg};
|
|
530
|
+
--pc-command-palette-highlight-bg: #{$command-palette-highlight-bg};
|
|
531
|
+
--pc-command-palette-highlight-text: #{$command-palette-highlight-text};
|
|
532
|
+
--pc-command-palette-key-bg: #{$subtle-bg};
|
|
533
|
+
--pc-command-palette-key-text: #{$text-color-1};
|
|
534
|
+
--pc-command-palette-key-font-size: #{$font-size-xs};
|
|
535
|
+
--pc-command-palette-key-font-weight: #{$font-weight-semibold};
|
|
604
536
|
|
|
605
537
|
// =========================================================================
|
|
606
538
|
// MULTISELECT COLORS
|
|
607
539
|
// =========================================================================
|
|
608
|
-
--
|
|
609
|
-
--
|
|
610
|
-
--
|
|
611
|
-
--
|
|
612
|
-
--
|
|
613
|
-
--
|
|
614
|
-
--
|
|
615
|
-
--
|
|
616
|
-
|
|
617
|
-
// =========================================================================
|
|
618
|
-
//
|
|
619
|
-
//
|
|
620
|
-
//
|
|
621
|
-
--
|
|
622
|
-
|
|
623
|
-
--
|
|
624
|
-
--
|
|
625
|
-
--
|
|
626
|
-
|
|
627
|
-
--
|
|
628
|
-
--
|
|
629
|
-
--
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
--
|
|
633
|
-
--
|
|
634
|
-
--
|
|
635
|
-
--
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
540
|
+
--pc-multiselect-dropdown-bg: #{$multiselect-dropdown-bg};
|
|
541
|
+
--pc-multiselect-dropdown-border: #{$multiselect-dropdown-border};
|
|
542
|
+
--pc-multiselect-dropdown-text: #{$multiselect-dropdown-text};
|
|
543
|
+
--pc-multiselect-hint-bg: #{$multiselect-hint-bg};
|
|
544
|
+
--pc-multiselect-hint-border: #{$multiselect-hint-border};
|
|
545
|
+
--pc-multiselect-option-hover-bg: #{$multiselect-option-hover-bg};
|
|
546
|
+
--pc-multiselect-pill-bg: #{$multiselect-pill-bg};
|
|
547
|
+
--pc-multiselect-pill-border: #{$multiselect-pill-border};
|
|
548
|
+
|
|
549
|
+
// =========================================================================
|
|
550
|
+
// FORM SPACING — the complete anatomy of a form's spacing. Runtime-tunable;
|
|
551
|
+
// the inline "gap" family chains to --pc-form-gap so one knob moves them all.
|
|
552
|
+
// VERTICAL RHYTHM: --pc-label-gap (label→control), --pc-help-gap
|
|
553
|
+
// (control→help), --pc-field-gap (field→field), --pc-form-actions-offset
|
|
554
|
+
// (last field→actions row).
|
|
555
|
+
// INLINE: --pc-form-gap (shared + label↔icon), --pc-choice-gap (between
|
|
556
|
+
// options), --pc-choice-inner-gap (control↔label), --pc-form-actions-gap
|
|
557
|
+
// (between buttons), --pc-field-horizontal-gap (label col↔input col).
|
|
558
|
+
// =========================================================================
|
|
559
|
+
--pc-form-gap: #{$form-gap};
|
|
560
|
+
--pc-choice-gap: var(--pc-form-gap);
|
|
561
|
+
--pc-choice-inner-gap: #{$spacing-sm};
|
|
562
|
+
--pc-form-actions-gap: var(--pc-form-gap);
|
|
563
|
+
--pc-field-horizontal-gap: #{$spacing-base};
|
|
564
|
+
--pc-label-gap: #{$form-label-margin-bottom};
|
|
565
|
+
--pc-help-gap: #{$form-help-margin-top};
|
|
566
|
+
--pc-field-gap: #{$form-group-margin-bottom};
|
|
567
|
+
--pc-form-actions-offset: #{$spacing-base};
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
// ============================================================================
|
|
571
|
+
// ALERT COLOR DERIVATION MIXINS — also pure-admin's contract (see above).
|
|
572
|
+
// ============================================================================
|
|
573
|
+
// Derive alert colours from the semantic role surfaces (--pc-success-bg, etc.)
|
|
574
|
+
// via color-mix(). Consumers call the light or dark variant after
|
|
575
|
+
// output-pc-component-variables. Light: dark text on subtle backgrounds.
|
|
576
|
+
// Dark: white text on tinted backgrounds. Not emitted by pure-css's own bundle.
|
|
577
|
+
// ============================================================================
|
|
578
|
+
|
|
579
|
+
// Light mode: dark text on subtle backgrounds
|
|
580
|
+
@mixin output-pc-alert-variables-light {
|
|
581
|
+
// Success
|
|
582
|
+
--pc-alert-success-text: color-mix(in srgb, var(--pc-success-bg) #{$alert-text-mix-light}, black);
|
|
583
|
+
--pc-alert-success-bg: color-mix(in srgb, var(--pc-success-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
584
|
+
--pc-alert-success-border: color-mix(in srgb, var(--pc-success-bg) #{$alert-border-opacity-light}%, transparent);
|
|
585
|
+
|
|
586
|
+
// Danger
|
|
587
|
+
--pc-alert-danger-text: color-mix(in srgb, var(--pc-danger-bg) #{$alert-text-mix-light}, black);
|
|
588
|
+
--pc-alert-danger-bg: color-mix(in srgb, var(--pc-danger-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
589
|
+
--pc-alert-danger-border: color-mix(in srgb, var(--pc-danger-bg) #{$alert-border-opacity-light}%, transparent);
|
|
590
|
+
|
|
591
|
+
// Warning
|
|
592
|
+
--pc-alert-warning-text: color-mix(in srgb, var(--pc-warning-bg) #{$alert-text-mix-light}, black);
|
|
593
|
+
--pc-alert-warning-bg: color-mix(in srgb, var(--pc-warning-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
594
|
+
--pc-alert-warning-border: color-mix(in srgb, var(--pc-warning-bg) #{$alert-border-opacity-light}%, transparent);
|
|
595
|
+
|
|
596
|
+
// Info
|
|
597
|
+
--pc-alert-info-text: color-mix(in srgb, var(--pc-info-bg) #{$alert-text-mix-light}, black);
|
|
598
|
+
--pc-alert-info-bg: color-mix(in srgb, var(--pc-info-bg) #{$alert-bg-opacity-light}%, transparent);
|
|
599
|
+
--pc-alert-info-border: color-mix(in srgb, var(--pc-info-bg) #{$alert-border-opacity-light}%, transparent);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
// Dark mode: white text on tinted backgrounds (white text is always readable)
|
|
603
|
+
@mixin output-pc-alert-variables-dark {
|
|
604
|
+
// Success
|
|
605
|
+
--pc-alert-success-text: #ffffff;
|
|
606
|
+
--pc-alert-success-bg: color-mix(in srgb, var(--pc-success-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
607
|
+
--pc-alert-success-border: color-mix(in srgb, var(--pc-success-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
608
|
+
|
|
609
|
+
// Danger
|
|
610
|
+
--pc-alert-danger-text: #ffffff;
|
|
611
|
+
--pc-alert-danger-bg: color-mix(in srgb, var(--pc-danger-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
612
|
+
--pc-alert-danger-border: color-mix(in srgb, var(--pc-danger-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
613
|
+
|
|
614
|
+
// Warning
|
|
615
|
+
--pc-alert-warning-text: #ffffff;
|
|
616
|
+
--pc-alert-warning-bg: color-mix(in srgb, var(--pc-warning-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
617
|
+
--pc-alert-warning-border: color-mix(in srgb, var(--pc-warning-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
618
|
+
|
|
619
|
+
// Info
|
|
620
|
+
--pc-alert-info-text: #ffffff;
|
|
621
|
+
--pc-alert-info-bg: color-mix(in srgb, var(--pc-info-bg) #{$alert-bg-opacity-dark}%, transparent);
|
|
622
|
+
--pc-alert-info-border: color-mix(in srgb, var(--pc-info-bg) #{$alert-border-opacity-dark}%, transparent);
|
|
648
623
|
}
|