@keenmate/pure-css 1.0.0-rc01

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 ADDED
@@ -0,0 +1,49 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@keenmate/pure-css` are documented here. Format based on
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5
+
6
+ ## [1.0.0-rc01] — 2026-08-04
7
+
8
+ Initial extraction of the CSS foundation out of `@keenmate/pure-admin-core`.
9
+
10
+ ### Fixed
11
+
12
+ - **Border/rounded utilities now resolve (were inert).** `.border` / `.border-{top,right,bottom,left}`
13
+ and `.rounded` / `.rounded-{lg,top,…}` referenced bare `--border-color` / `--border-radius`
14
+ variables the framework never emits — so they fell back to a `currentColor` border and no radius
15
+ (a latent bug inherited from pure-admin-core). Repointed them at the emitted `--pa-border-color` /
16
+ `--pa-border-radius(-lg)` (themed from `--base-*`). Now `base.css` + `utilities.css` are
17
+ **self-sufficient** — the border/radius utilities work standalone, no host shim.
18
+ - **`--pa-border-color` is now a live reference** — emitted as `var(--base-border-color, <literal>)`
19
+ instead of a baked literal (it's a pure pass-through, no derivation lost). So it — and the `.border`
20
+ utilities that read it — follow a **runtime** `--base-border-color` override (a theme or dark-mode
21
+ class toggling it at `:root`/`.pa-mode-dark`), not just build-time themes.
22
+
23
+ ### Added
24
+
25
+ - **`--base-*` theming contract** — `src/scss/variables/*` (the `$base-*` source of truth plus the
26
+ derived typography/spacing/colors/layout/system/components modules) and
27
+ `_base-css-variables.scss` (the mixin emitting `--base-*` and derived `--pa-*` custom properties).
28
+ - **Native flexbox grid** — `_pa-grid.scss` (`.pa-row` / `.pa-col`: percentage columns in 5%
29
+ increments, intuitive fractions, container-query responsive variants, offsets, visibility helpers),
30
+ relocated from pure-admin-core's `core-components/_grid.scss`. Replaces the legacy PureCSS
31
+ `.pure-g` / `.pure-u-*` grid, which pure-admin had already stopped using — so pure-css ships the
32
+ grid consumers actually use, not the deprecated one.
33
+ - **Utilities** — `utilities.scss` (spacing / flex / display / width-height classes) plus the generic
34
+ `.font-family-system/-sans/-serif/-mono` classes from `_fonts.scss` (core keeps `_fonts.scss`
35
+ standalone; here it `@use`s into utilities so all foundation utilities ship together). Adds
36
+ `.gap-*` / `.gap-x-*` / `.gap-y-*` (flex/grid gap, same `$spacers` scale) — the one spacing family
37
+ core lacked, needed to express flex layouts with utilities.
38
+ - **Build entries & artifacts** — `pure-css.scss` (full bundle), `base.scss` (variables only),
39
+ `grid.scss` (grid only), and the existing `utilities.scss`, compiled to
40
+ `dist/css/{pure-css,base,grid,utilities}.css`. `dist/` is committed for toolchain-free vendoring.
41
+ - Package tooling: `package.json` (`@keenmate/pure-css`, `exports` for `.`/`./base`/`./grid`/
42
+ `./utilities`/`./scss`), `Makefile`, `README`, this changelog.
43
+
44
+ ### Notes
45
+
46
+ - **pure-admin-core consumes this package** as its single source for the foundation (thin
47
+ `@import`/`@forward` shims for the variables, `--base-*`/`--pa-*` emit mixins, utilities, and the
48
+ grid). The two no longer carry duplicate copies, so compiled `--base-*` values and grid output
49
+ match core's `dist/css/main.css` exactly.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Pure Admin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,138 @@
1
+ # @keenmate/pure-css
2
+
3
+ The KeenMate CSS **foundation** — the `--base-*` theming contract, the flexbox grid (`.pa-row` / `.pa-col`), and the
4
+ utility classes — extracted from [`@keenmate/pure-admin-core`](https://github.com/KeenMate/pure-admin)
5
+ so it can be consumed on its own.
6
+
7
+ ## What's New in 1.0.0-rc01
8
+
9
+ - **The KeenMate CSS foundation, now standalone.** The `--base-*` theming
10
+ contract, the PureCSS grid, and the utility classes — extracted from
11
+ `@keenmate/pure-admin-core` so a docs site, marketing page, or component host
12
+ can use the foundation without the 40+ admin components.
13
+ - **One theming layer everyone shares.** `--base-*` is the single source of
14
+ truth; `pure-admin-core`, its `--pa-*` component variables, and every KeenMate
15
+ web/Svelte component derive from it via fallback chains — so one block of
16
+ `--base-*` overrides re-themes all of them at once.
17
+ - **Four link targets.** `pure-css.css` (everything) or cherry-pick `base.css`
18
+ (variables only), `grid.css`, `utilities.css`.
19
+ - **The native `.pa-row` / `.pa-col` grid** — flexbox columns in 5% percentage
20
+ increments plus intuitive fractions (`.pa-col-1-3`, `.pa-col-2-3`, …), with
21
+ container-query responsive variants (`.pa-col-md-*`) and RTL-aware gutters.
22
+ (This replaces the legacy PureCSS `.pure-g` / `.pure-u-*` grid, which
23
+ pure-admin had already stopped using.)
24
+ - **New `.gap-*` / `.gap-x-*` / `.gap-y-*` utilities** on the same spacing scale
25
+ as the margin/padding helpers — the one spacing family core lacked.
26
+ - **Self-sufficient border/rounded utilities.** `.border` / `.rounded` consume
27
+ the emitted `--pa-border-*` variables, so `base.css` + `utilities.css` render
28
+ correct borders and radii standalone — no host stylesheet required.
29
+ - **`dist/` is committed** — vendor the built CSS with no Sass toolchain.
30
+
31
+ ## Why
32
+
33
+ Any surface that isn't a full admin app — a docs site, a marketing page, a standalone widget host —
34
+ wants the *foundation* (variables + grid + utilities) without pure-admin-core's 40+ components. And
35
+ every KeenMate web component (`<web-multiselect>`, …) and Svelte component already reads its colors
36
+ from the `--base-*` custom properties. Shipping those from one small package means one theming layer
37
+ that the components, the admin framework, and everything else all agree on.
38
+
39
+ ```
40
+ @keenmate/pure-css @keenmate/pure-admin-core
41
+ ├─ --base-* variables ◀──── imports pure-css, adds
42
+ ├─ .pa-row / .pa-col grid the component library
43
+ └─ utility classes
44
+
45
+ └── docs sites, portals, component hosts consume the built CSS directly
46
+ ```
47
+
48
+ ## Installation
49
+
50
+ ```bash
51
+ npm install @keenmate/pure-css
52
+ ```
53
+
54
+ ## Quick Start
55
+
56
+ **Prebuilt CSS (simplest):**
57
+
58
+ ```html
59
+ <link rel="stylesheet" href="node_modules/@keenmate/pure-css/dist/css/pure-css.css">
60
+ ```
61
+
62
+ or cherry-pick:
63
+
64
+ ```html
65
+ <link rel="stylesheet" href="…/pure-css/dist/css/base.css"> <!-- variables only -->
66
+ <link rel="stylesheet" href="…/pure-css/dist/css/grid.css"> <!-- + grid -->
67
+ ```
68
+
69
+ **SCSS (customize before compiling):**
70
+
71
+ ```scss
72
+ // Override the source of truth; everything re-derives.
73
+ $base-accent-color: #4f46e5;
74
+ $base-page-bg: #0b1020;
75
+
76
+ @use '@keenmate/pure-css/scss/pure-css';
77
+ ```
78
+
79
+ ## What's in it
80
+
81
+ | Artifact | Contents | When to link |
82
+ | --- | --- | --- |
83
+ | `dist/css/pure-css.css` | everything below, in one file | the common case |
84
+ | `dist/css/base.css` | only `:root { --base-*; --pa-*; }` | you just need the theming contract (e.g. to theme embedded web components) or a base for a theme override |
85
+ | `dist/css/grid.css` | `.pa-row` / `.pa-col-*` (percentage + fraction columns, container-query responsive) | layout only |
86
+ | `dist/css/utilities.css` | spacing / flex / display / width-height utilities (`.m-4`, `.d-flex`, `.w-50`, …) | utilities only |
87
+
88
+ ### The `--base-*` contract
89
+
90
+ `--base-*` is the **single source of truth for theming**. Framework colors, component variables
91
+ (`--pa-*`) and web/svelte components all derive from it via fallback chains
92
+ (`--ms-accent-color: var(--base-accent-color, #3b82f6)`). Categories: accent, text, background,
93
+ border, input, dropdown, tooltip, contextual (success/danger/warning/info), interactive states,
94
+ typography, border-radius. The full list is `src/scss/variables/_base.scss`.
95
+
96
+ ## Theming
97
+
98
+ A **theme** is nothing but a set of `--base-*` values. The lightest possible theme is a stylesheet
99
+ that redeclares them, loaded *after* `base.css`:
100
+
101
+ ```css
102
+ :root {
103
+ --base-accent-color: #4f46e5;
104
+ --base-page-bg: #f6f8fb;
105
+ --base-text-color-1: #1a2233;
106
+ }
107
+ ```
108
+
109
+ Because pure-admin-core, the components and any consumer all read the same variables, that one block
110
+ re-themes all of them at once. This is the same model as
111
+ [`@keenmate/pure-admin-themes`](https://github.com/KeenMate/pure-admin-themes), so the same CLI and
112
+ publishing infrastructure applies.
113
+
114
+ ## Build
115
+
116
+ ```bash
117
+ make install # sass
118
+ make build # src/scss -> dist/css (bundle + base + grid + utilities)
119
+ make sizes # show artifact sizes
120
+ ```
121
+
122
+ `dist/` is committed so consumers can vendor the built CSS without a Sass toolchain.
123
+
124
+ ## Provenance
125
+
126
+ The SCSS is the foundation extracted from `pure-admin-core`'s `src/scss` — the `variables/` modules,
127
+ `_base-css-variables.scss`, `utilities.scss`, `_fonts.scss`, and the native grid (`_pa-grid.scss`,
128
+ formerly core's `core-components/_grid.scss`). **pure-admin-core now consumes this package** as its
129
+ single source for the foundation (thin `@import`/`@forward` shims), so the two no longer drift —
130
+ core's compiled `--base-*` values and grid output match pure-css exactly.
131
+
132
+ One intentional difference: `utilities.scss` here `@use`s `_fonts.scss` so the generic
133
+ `.font-family-*` classes ship with the other utilities, whereas core keeps `_fonts.scss` standalone.
134
+ `_rtl-helpers.scss` and the component layer stay in core.
135
+
136
+ ## License
137
+
138
+ MIT © KeenMate. The grid is derived from [Pure](https://purecss.io/) (Yahoo!, BSD).
@@ -0,0 +1,304 @@
1
+ :root,
2
+ .pa-mode-light,
3
+ .pa-mode-dark {
4
+ --pa-text-strong: color-mix(in srgb, var(--pa-text-color-1) 85%, transparent);
5
+ --pa-text-secondary: color-mix(in srgb, var(--pa-text-color-1) 70%, transparent);
6
+ --pa-text-tertiary: color-mix(in srgb, var(--pa-text-color-1) 55%, transparent);
7
+ --pa-surface-hover: color-mix(in srgb, var(--pa-text-color-1) 4%, transparent);
8
+ --pa-surface-track: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent);
9
+ }
10
+
11
+ :root {
12
+ --base-accent-color: #007bff;
13
+ --base-accent-color-hover: rgb(20%, 58.5882352941%, 100%);
14
+ --base-accent-color-active: rgb(40%, 68.9411764706%, 100%);
15
+ --base-accent-color-light: rgba(0, 123, 255, 0.05);
16
+ --base-accent-color-light-hover: rgba(0, 123, 255, 0.12);
17
+ --base-text-color-1: #2c3e50;
18
+ --base-text-color-2: #6c757d;
19
+ --base-text-color-3: #7a8a99;
20
+ --base-text-color-4: #a3b1bf;
21
+ --base-text-color-on-accent: #ffffff;
22
+ --base-main-bg: #ffffff;
23
+ --base-page-bg: #f8f9fa;
24
+ --base-subtle-bg: #e9ecef;
25
+ --base-inverse-bg: #2c3e50;
26
+ --base-overlay-bg: rgba(0, 0, 0, 0.5);
27
+ --base-shadow-color: rgba(0, 0, 0, 0.15);
28
+ --base-hover-bg: #e9ecef;
29
+ --base-active-bg: rgb(85.5830753354%, 87.5490196078%, 89.5149638803%);
30
+ --base-disabled-bg: #e9ecef;
31
+ --base-elevated-bg: #f5f5f5;
32
+ --base-border-color: #e1e5e9;
33
+ --base-border: 1px solid #e1e5e9;
34
+ --base-input-bg: #ffffff;
35
+ --base-input-color: #495057;
36
+ --base-input-border: 1px solid #ced4da;
37
+ --base-input-border-hover: 1px solid #b8bfc6;
38
+ --base-input-border-focus: 1px solid #007bff;
39
+ --base-input-placeholder-color: #a3b1bf;
40
+ --base-input-bg-disabled: rgba(255, 255, 255, 0.5);
41
+ --base-input-size-xs-height: 3.1;
42
+ --base-input-size-sm-height: 3.3;
43
+ --base-input-size-md-height: 3.5;
44
+ --base-input-size-lg-height: 3.8;
45
+ --base-input-size-xl-height: 4.1;
46
+ --base-dropdown-bg: #ffffff;
47
+ --base-dropdown-border: 1px solid #e1e5e9;
48
+ --base-dropdown-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
49
+ --base-tooltip-bg: #2c3e50;
50
+ --base-tooltip-text-color: #ffffff;
51
+ --base-success-color: #22c55e;
52
+ --base-success-color-hover: rgb(10.3896103896%, 60.1986249045%, 28.7242169595%);
53
+ --base-success-bg-light: rgba(34, 197, 94, 0.1);
54
+ --base-success-bg-subtle: rgba(34, 197, 94, 0.08);
55
+ --base-success-border: rgba(34, 197, 94, 0.2);
56
+ --base-success-text: #155724;
57
+ --base-success-text-light: #d4edda;
58
+ --base-text-on-success: #ffffff;
59
+ --base-danger-color: #ef4444;
60
+ --base-danger-color-hover: rgb(92.1491355163%, 8.2430213465%, 8.2430213465%);
61
+ --base-danger-bg-light: rgba(239, 68, 68, 0.1);
62
+ --base-danger-bg-subtle: rgba(239, 68, 68, 0.08);
63
+ --base-danger-border: rgba(239, 68, 68, 0.2);
64
+ --base-danger-text: #721c24;
65
+ --base-danger-text-light: #f8d7da;
66
+ --base-text-on-danger: #ffffff;
67
+ --base-warning-color: #f97316;
68
+ --base-warning-color-hover: rgb(84.1086225285%, 35.7371400443%, 2.1658872754%);
69
+ --base-warning-bg-light: rgba(249, 115, 22, 0.1);
70
+ --base-warning-bg-subtle: rgba(249, 115, 22, 0.08);
71
+ --base-warning-border: rgba(249, 115, 22, 0.2);
72
+ --base-warning-text: #856404;
73
+ --base-warning-text-light: #fff3cd;
74
+ --base-text-on-warning: #212529;
75
+ --base-info-color: #17a2b8;
76
+ --base-info-color-hover: rgb(6.7973856209%, 47.8772378517%, 54.3790849673%);
77
+ --base-info-bg-light: rgba(23, 162, 184, 0.1);
78
+ --base-info-bg-subtle: rgba(23, 162, 184, 0.08);
79
+ --base-info-border: rgba(23, 162, 184, 0.2);
80
+ --base-info-text: #0c5460;
81
+ --base-info-text-light: #d1ecf1;
82
+ --base-text-on-info: #ffffff;
83
+ --base-hover-overlay: rgba(0, 0, 0, 0.04);
84
+ --base-active-overlay: rgba(0, 0, 0, 0.08);
85
+ --base-focus-ring-color: #007bff;
86
+ --base-focus-ring-width: 3px;
87
+ --base-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
88
+ --base-font-family-mono: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
89
+ --base-font-size-2xs: 1;
90
+ --base-font-size-xs: 1.2;
91
+ --base-font-size-sm: 1.4;
92
+ --base-font-size-base: 1.6;
93
+ --base-font-size-lg: 1.8;
94
+ --base-font-size-xl: 2;
95
+ --base-font-size-2xl: 2.4;
96
+ --base-font-weight-normal: 400;
97
+ --base-font-weight-medium: 500;
98
+ --base-font-weight-semibold: 600;
99
+ --base-font-weight-bold: 700;
100
+ --base-line-height-tight: 1.25;
101
+ --base-line-height-normal: 1.5;
102
+ --base-line-height-relaxed: 1.75;
103
+ --base-border-radius-sm: 0.4;
104
+ --base-border-radius-md: 0.6;
105
+ --base-border-radius-lg: 0.8;
106
+ color-scheme: light;
107
+ --pa-main-bg: #f8f9fa;
108
+ --pa-page-bg: #f8f9fa;
109
+ --pa-subtle-bg: #ffffff;
110
+ --pa-text-color-1: #2c3e50;
111
+ --pa-text-color-2: #6c757d;
112
+ --pa-accent: #007bff;
113
+ --pa-accent-hover: rgba(0, 123, 255, 0.12);
114
+ --pa-accent-light: color-mix(in srgb, var(--pa-accent) 5%, transparent);
115
+ --pa-link-color: var(--pa-accent);
116
+ --pa-link-color-hover: color-mix(in srgb, var(--pa-link-color), currentColor 50%);
117
+ --pa-link-color-visited: var(--pa-link-color);
118
+ --pa-border-color: var(--base-border-color, #e1e5e9);
119
+ --pa-success: #22c55e;
120
+ --pa-warning: #f97316;
121
+ --pa-danger: #ef4444;
122
+ --pa-info: #17a2b8;
123
+ --pa-very-positive: #16a34a;
124
+ --pa-positive: var(--pa-success);
125
+ --pa-neutral: #9ca3af;
126
+ --pa-negative: var(--pa-danger);
127
+ --pa-very-negative: #dc2626;
128
+ --pa-chart-trendline-height: 3rem;
129
+ --pa-chart-trendline-stroke: 2.1;
130
+ --pa-detail-bg: rgba(15, 17, 21, 0.97);
131
+ --pa-detail-text: #ffffff;
132
+ --pa-detail-row-label: rgba(255, 255, 255, 0.75);
133
+ --pa-detail-title: rgba(255, 255, 255, 0.55);
134
+ --pa-detail-shadow: 0 1.4rem 3.6rem rgba(0, 0, 0, 0.55);
135
+ --pa-header-bg: #ffffff;
136
+ --pa-header-border-color: #e1e5e9;
137
+ --pa-header-text: #2c3e50;
138
+ --pa-header-text-secondary: #6c757d;
139
+ --pa-header-profile-name-color: #2c3e50;
140
+ --pa-sidebar-bg: #f8f9fa;
141
+ --pa-sidebar-text: #2c3e50;
142
+ --pa-sidebar-text-secondary: #6c757d;
143
+ --pa-sidebar-submenu-bg: #e9ecef;
144
+ --pa-sidebar-submenu-hover-bg: rgb(85.5830753354%, 87.5490196078%, 89.5149638803%);
145
+ --pa-sidebar-submenu-active-bg: rgb(79.7936016512%, 82.5490196078%, 85.3044375645%);
146
+ --pa-sidebar-submenu-active-text: #2c3e50;
147
+ --pa-footer-bg: #ffffff;
148
+ --pa-footer-border-color: #e1e5e9;
149
+ --pa-btn-primary-bg: #007bff;
150
+ --pa-btn-primary-bg-hover: rgb(20%, 58.5882352941%, 100%);
151
+ --pa-btn-primary-bg-light: color-mix(in srgb, var(--pa-btn-primary-bg) 5%, transparent);
152
+ --pa-btn-primary-text: #ffffff;
153
+ --pa-btn-secondary-bg: #6c757d;
154
+ --pa-btn-secondary-bg-hover: #545b62;
155
+ --pa-btn-secondary-text: #ffffff;
156
+ --pa-btn-secondary-outline-color: var(--pa-btn-secondary-bg);
157
+ --pa-btn-success-bg: var(--pa-success);
158
+ --pa-btn-success-bg-hover: rgb(10.3896103896%, 60.1986249045%, 28.7242169595%);
159
+ --pa-btn-success-text: #ffffff;
160
+ --pa-btn-danger-bg: var(--pa-danger);
161
+ --pa-btn-danger-bg-hover: rgb(92.1491355163%, 8.2430213465%, 8.2430213465%);
162
+ --pa-btn-danger-text: #ffffff;
163
+ --pa-btn-warning-bg: var(--pa-warning);
164
+ --pa-btn-warning-bg-hover: rgb(84.1086225285%, 35.7371400443%, 2.1658872754%);
165
+ --pa-btn-warning-text: #212529;
166
+ --pa-btn-info-bg: var(--pa-info);
167
+ --pa-btn-info-bg-hover: rgb(6.7973856209%, 47.8772378517%, 54.3790849673%);
168
+ --pa-btn-info-text: #ffffff;
169
+ --pa-btn-light-bg: #f8f9fa;
170
+ --pa-btn-light-bg-hover: #e9ecef;
171
+ --pa-btn-light-text: #2c3e50;
172
+ --pa-btn-dark-bg: #343a40;
173
+ --pa-btn-dark-bg-hover: #1d2124;
174
+ --pa-btn-dark-text: #ffffff;
175
+ --pa-success-bg: var(--pa-success);
176
+ --pa-success-bg-hover: rgb(10.3896103896%, 60.1986249045%, 28.7242169595%);
177
+ --pa-success-bg-light: color-mix(in srgb, var(--pa-success) 10%, transparent);
178
+ --pa-success-bg-subtle: color-mix(in srgb, var(--pa-success) 8%, transparent);
179
+ --pa-success-border: color-mix(in srgb, var(--pa-success) 20%, transparent);
180
+ --pa-success-text: #155724;
181
+ --pa-success-text-light: #d4edda;
182
+ --pa-danger-bg: var(--pa-danger);
183
+ --pa-danger-bg-hover: rgb(92.1491355163%, 8.2430213465%, 8.2430213465%);
184
+ --pa-danger-bg-light: color-mix(in srgb, var(--pa-danger) 10%, transparent);
185
+ --pa-danger-bg-subtle: color-mix(in srgb, var(--pa-danger) 8%, transparent);
186
+ --pa-danger-border: color-mix(in srgb, var(--pa-danger) 20%, transparent);
187
+ --pa-danger-text: #721c24;
188
+ --pa-danger-text-light: #f8d7da;
189
+ --pa-warning-bg: var(--pa-warning);
190
+ --pa-warning-bg-hover: rgb(84.1086225285%, 35.7371400443%, 2.1658872754%);
191
+ --pa-warning-bg-light: color-mix(in srgb, var(--pa-warning) 10%, transparent);
192
+ --pa-warning-bg-subtle: color-mix(in srgb, var(--pa-warning) 8%, transparent);
193
+ --pa-warning-border: color-mix(in srgb, var(--pa-warning) 20%, transparent);
194
+ --pa-warning-text: #856404;
195
+ --pa-warning-text-light: #fff3cd;
196
+ --pa-info-bg: var(--pa-info);
197
+ --pa-info-bg-hover: rgb(6.7973856209%, 47.8772378517%, 54.3790849673%);
198
+ --pa-info-bg-light: color-mix(in srgb, var(--pa-info) 10%, transparent);
199
+ --pa-info-bg-subtle: color-mix(in srgb, var(--pa-info) 8%, transparent);
200
+ --pa-info-border: color-mix(in srgb, var(--pa-info) 20%, transparent);
201
+ --pa-info-text: #0c5460;
202
+ --pa-info-text-light: #d1ecf1;
203
+ --pa-card-bg: #ffffff;
204
+ --pa-card-header-bg: #f8f9fa;
205
+ --pa-card-footer-bg: #ffffff;
206
+ --pa-card-tabs-bg: #f8f9fa;
207
+ --pa-input-bg: #ffffff;
208
+ --pa-input-border: #ced4da;
209
+ --pa-input-text: #495057;
210
+ --pa-input-focus-border-color: #007bff;
211
+ --pa-select-focus-border-color: #007bff;
212
+ --pa-textarea-focus-border-color: #007bff;
213
+ --pa-checkbox-border-color: #e1e5e9;
214
+ --pa-checkbox-border-color-hover: #007bff;
215
+ --pa-checkbox-border-color-checked: #007bff;
216
+ --pa-checkbox-bg: #ffffff;
217
+ --pa-checkbox-bg-checked: #007bff;
218
+ --pa-checkbox-bg-indeterminate: #007bff;
219
+ --pa-checkbox-checkmark-color: white;
220
+ --pa-checkbox-focus-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
221
+ --pa-input-group-prepend-bg: #6c757d;
222
+ --pa-input-group-prepend-text: #6c757d;
223
+ --pa-input-group-append-bg: #6c757d;
224
+ --pa-input-group-append-text: #6c757d;
225
+ --pa-table-bg: #ffffff;
226
+ --pa-table-header-bg: #f8f9fa;
227
+ --pa-table-stripe: #f8f9fa;
228
+ --pa-table-hover-bg: #f8f9fa;
229
+ --pa-table-hover-accent-color: #007bff;
230
+ --pa-modal-overlay-bg: rgba(0, 0, 0, 0.5);
231
+ --pa-modal-content-bg: #ffffff;
232
+ --pa-badge-success-bg: #d4edda;
233
+ --pa-badge-success-text: #155724;
234
+ --pa-badge-warning-bg: #fff3cd;
235
+ --pa-badge-warning-text: #856404;
236
+ --pa-badge-info-bg: #d1ecf1;
237
+ --pa-badge-info-text: #0c5460;
238
+ --pa-badge-danger-bg: #f8d7da;
239
+ --pa-badge-danger-text: #721c24;
240
+ --pa-composite-badge-icon-bg: #6c757d;
241
+ --pa-composite-badge-label-bg: #e9ecef;
242
+ --pa-composite-badge-label-text: #2c3e50;
243
+ --pa-composite-badge-label-hover-bg: #e9ecef;
244
+ --pa-tooltip-bg: #2c3e50;
245
+ --pa-tooltip-text: #ffffff;
246
+ --pa-popover-content-bg: #ffffff;
247
+ --pa-popover-text-light: #ffffff;
248
+ --pa-popover-text-dark: #000000;
249
+ --pa-loader-overlay-bg: rgba(255, 255, 255, 0.8);
250
+ --pa-profile-overlay-bg: rgba(0, 0, 0, 0.3);
251
+ --pa-detail-panel-overlay-bg: rgba(0, 0, 0, 0.3);
252
+ --pa-detail-panel-selected-bg: rgba(0, 123, 255, 0.08);
253
+ --pa-detail-panel-z-index: 4500;
254
+ --pa-command-palette-backdrop-bg: rgba(0, 0, 0, 0.5);
255
+ --pa-command-palette-item-hover-bg: rgba(0, 123, 255, 0.05);
256
+ --pa-command-palette-item-active-bg: rgba(0, 123, 255, 0.1);
257
+ --pa-command-palette-highlight-bg: rgba(0, 123, 255, 0.2);
258
+ --pa-command-palette-highlight-text: #007bff;
259
+ --pa-command-palette-key-bg: #ffffff;
260
+ --pa-command-palette-key-text: #2c3e50;
261
+ --pa-command-palette-key-font-size: 1.2rem;
262
+ --pa-command-palette-key-font-weight: 600;
263
+ --pa-multiselect-dropdown-bg: #ffffff;
264
+ --pa-multiselect-dropdown-border: #e1e5e9;
265
+ --pa-multiselect-dropdown-text: #2c3e50;
266
+ --pa-multiselect-hint-bg: #f8f9fa;
267
+ --pa-multiselect-hint-border: #e1e5e9;
268
+ --pa-multiselect-option-hover-bg: #f8f9fa;
269
+ --pa-multiselect-pill-bg: rgba(0, 123, 255, 0.05);
270
+ --pa-multiselect-pill-border: #007bff;
271
+ --pa-color-1: transparent;
272
+ --pa-color-2: transparent;
273
+ --pa-color-3: transparent;
274
+ --pa-color-4: transparent;
275
+ --pa-color-5: transparent;
276
+ --pa-color-6: transparent;
277
+ --pa-color-7: transparent;
278
+ --pa-color-8: transparent;
279
+ --pa-color-9: transparent;
280
+ --pa-color-1-text: #ffffff;
281
+ --pa-color-2-text: #ffffff;
282
+ --pa-color-3-text: #ffffff;
283
+ --pa-color-4-text: #ffffff;
284
+ --pa-color-5-text: #ffffff;
285
+ --pa-color-6-text: #ffffff;
286
+ --pa-color-7-text: #ffffff;
287
+ --pa-color-8-text: #ffffff;
288
+ --pa-color-9-text: #ffffff;
289
+ --pa-border-radius-sm: 2px;
290
+ --pa-border-radius: 4px;
291
+ --pa-border-radius-lg: 8px;
292
+ --pa-alert-success-text: color-mix(in srgb, var(--pa-success-bg) 60%, black);
293
+ --pa-alert-success-bg: color-mix(in srgb, var(--pa-success-bg) 15%, transparent);
294
+ --pa-alert-success-border: color-mix(in srgb, var(--pa-success-bg) 30%, transparent);
295
+ --pa-alert-danger-text: color-mix(in srgb, var(--pa-danger-bg) 60%, black);
296
+ --pa-alert-danger-bg: color-mix(in srgb, var(--pa-danger-bg) 15%, transparent);
297
+ --pa-alert-danger-border: color-mix(in srgb, var(--pa-danger-bg) 30%, transparent);
298
+ --pa-alert-warning-text: color-mix(in srgb, var(--pa-warning-bg) 60%, black);
299
+ --pa-alert-warning-bg: color-mix(in srgb, var(--pa-warning-bg) 15%, transparent);
300
+ --pa-alert-warning-border: color-mix(in srgb, var(--pa-warning-bg) 30%, transparent);
301
+ --pa-alert-info-text: color-mix(in srgb, var(--pa-info-bg) 60%, black);
302
+ --pa-alert-info-bg: color-mix(in srgb, var(--pa-info-bg) 15%, transparent);
303
+ --pa-alert-info-border: color-mix(in srgb, var(--pa-info-bg) 30%, transparent);
304
+ }