@keenmate/pure-css 1.0.0-rc07 → 1.0.0-rc09
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 +513 -411
- package/README.md +40 -11
- package/dist/css/base.css +133 -67
- package/dist/css/component-reset.css +27 -0
- package/dist/css/pure-css.css +157 -79
- package/package.json +83 -81
- package/src/js/fit.js +5 -2
- package/src/scss/_base-css-variables.scss +429 -655
- package/src/scss/_fit-flyout.scss +1 -1
- package/src/scss/_layout-container.scss +168 -168
- package/src/scss/_navbar-elements.scss +11 -2
- package/src/scss/_resize-handle.scss +1 -1
- package/src/scss/_sidebar-states.scss +2 -2
- package/src/scss/_sidebar.scss +21 -6
- package/src/scss/component-reset.scss +65 -0
- package/src/scss/reboot.scss +134 -134
- package/src/scss/scrollbars.scss +48 -48
- package/src/scss/variables/_base.scss +150 -38
- package/src/scss/variables/_colors.scss +208 -237
- package/src/scss/variables/_index.scss +27 -23
- package/src/scss/variables/_system.scss +19 -23
- package/src/scss/variables/_components.scss +0 -840
package/README.md
CHANGED
|
@@ -4,19 +4,19 @@ The KeenMate CSS **foundation** — the `--base-*` theming contract, the flexbox
|
|
|
4
4
|
utility classes — extracted from [`@keenmate/pure-admin-core`](https://github.com/KeenMate/pure-admin)
|
|
5
5
|
so it can be consumed on its own.
|
|
6
6
|
|
|
7
|
-
## What's New in 1.0.0-
|
|
7
|
+
## What's New in 1.0.0-rc09
|
|
8
8
|
|
|
9
|
-
- **
|
|
10
|
-
- **App shell — navbar/sidebar/footer surfaces stay a distinct brand colour, deliberately not `--base-*`-derived** — the shell's surface + text tokens (`--pc-navbar-*`, `--pc-sidebar-*`, `--pc-footer-*`) are emitted as plain `#{$…}` literals, *not* `var(--base-main-bg, …)`. A theme sets the shell's brand (e.g. a yellow navbar) independently of the `--base-*` card/page palette, and since `--base-main-bg` is always emitted, deriving the navbar from it would let the base palette win and erase the brand. Standalone (`base.css`-only) rendering still works because the shell CSS resolves `var(--pc-navbar-bg, var(--base-main-bg))` — the `--base-*` floor applies only when no `--pc-*` is emitted (the rc06 contract), never as a runtime override of it.
|
|
11
|
-
- **Theming — gap `--base-*` tokens the web components read but pure-css never emitted** — several `--base-*` vars the components already consumed were falling through to hardcoded component defaults because pure-css didn't emit them, so they couldn't be themed. rc07 emits them: `--base-text-inverted`, `--base-checkbox-border-color`, `--base-input-border-color` (+ the `--base-input-border` shorthand), `--base-input-clear-color` / `--base-input-clear-bg-hover`, the solid role fills `--base-success-bg` / `--base-danger-bg` / `--base-warning-bg`, and `--base-rem`.
|
|
12
|
-
- **Surfaces — `--pc-main-bg` / `--pc-subtle-bg` naming realigned with the `--base-*` model** — `--pc-main-bg` is now the **white surface** and `--pc-subtle-bg` the **muted grey**, matching `--base-main-bg` / `--base-subtle-bg`; previously the two were inverted (`--pc-main-bg` *was* the grey canvas). pure-css's own canvas usages (reboot `body`, `.pc-layout`, scrollbars) were repointed `--pc-main-bg` → `--pc-page-bg` so the page canvas stays grey. **Downstream code reading `--pc-main-bg` / `--pc-subtle-bg` must re-check intent** — see pure-admin-core rc19.
|
|
13
|
-
- **Fixed — input borders finally track the theme** — `$input-border` was a hardcoded `#ced4da` (its own comment wrongly claimed it came from base); it's reconnected to `$base-input-border-color`. Also a semantic surface reconciliation so pure-admin and the web components resolve the *same* base token per surface (card/table headers + striped rows → `--base-elevated-bg`, dropdown/popover → `--base-dropdown-bg`, hover → `--base-hover-bg`).
|
|
14
|
-
- **Fixed — sidebar search box alignment + collapsed-rail gating** — the search input's inline padding was rebalanced (`0 $spacing-base 0 $spacing-sm`) so its magnifier lines up with the nav-row icons below it, and the collapsed-rail rules that strip the search down to the submit icon were re-scoped from `.pc-layout__sidebar--icon-collapse` to `.sidebar-hidden .pc-layout__sidebar--icon-collapse` — the mode class stays on the element while the rail is expanded, so the unscoped rules were stripping the search frame in the expanded state too.
|
|
9
|
+
- **Namespace hygiene — the app shell no longer reaches into pure-admin's token namespace** — the KeenMate ecosystem is aligning its custom-property prefixes with its class prefixes: `--pc-*` / `.pc-*` belong to the pure-css foundation + app shell, `--pa-*` / `.pa-*` belong to pure-admin components. As part of that rename, pure-css's shell had a handful of incidental references to *component* tokens — `var(--pc-card-bg, …)` in the fit-flyout / navbar dropdown / resize-handle, `var(--pc-input-bg, …)` in the sidebar search, and `var(--pc-icon-chevron, …)` on the sidebar/navbar chevrons. Since those tokens are moving to `--pa-*` (pure-admin's namespace) and the foundation must not depend on pure-admin, each now reads its `--base-*` foundation value directly. Rendered output is byte-for-byte unchanged — every dropped tier already resolved to the same `--base-*` fallback.
|
|
15
10
|
|
|
16
|
-
## What's New in 1.0.0-
|
|
11
|
+
## What's New in 1.0.0-rc08
|
|
17
12
|
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
13
|
+
- **Foundation-only — the `--pc-*` component layer moved to `@keenmate/pure-admin-core` (breaking)** — pure-css no longer ships `variables/_components.scss` or the component emit mixins (`output-pc-component-variables`, `output-pc-component-mode-variables`, `output-pc-alert-variables-{light,dark}`) — the whole buttons / cards / tables / modals / alerts / badges / command-palette / multiselect vocabulary. pure-css is now a true foundation: the `--base-*` bridge plus the base `--pc-*` tokens (surfaces, text, accent, links, border, role identities, palette slots, radius). SCSS consumers that `@include`d the component mixins must take them from pure-admin-core ≥ 2.9.0-rc20; consumers of the compiled `dist/css/*` are unaffected.
|
|
14
|
+
- **Icons — a shared, themeable `--base-icon-*` contract (13 tokens)** — `chevron`, `caret-down`/`-up`, `close`, `clear`, `remove`, `expand`, `collapse`, `add`, `edit`, `delete`, `search` (Lucide defaults), emitted as percent-encoded SVG data-URIs painted via `mask` + `background: currentColor`. One override re-skins the shell, pure-admin components, and the web components together; the shell's sidebar/navbar chevrons are now SVG masks instead of a `›` text glyph. Two disclosure models are documented — chevron *rotates one glyph*, expand/collapse *swaps two*.
|
|
15
|
+
- **Contract — a coherent, fully-named `--base-*` token API (WS7)** — added `--base-border-width`, the `--base-primary-*` accent aliases, `--base-secondary-*`, the `--base-text-on-<role>` set, `--base-info-bg` for role symmetry, the `--base-color-1..9` (+`-text`) brand palette aliased by `--pc-color-N`, and the non-colour scales `--base-space-*`, `--base-shadow-{sm,md,lg}`, `--base-duration-*` + `--base-ease-*`, and `--base-z-*`. `--base-disabled-bg` got its own value (`#f1f3f5`) instead of colliding with the hover surface.
|
|
16
|
+
- **Surfaces — hover/active split off the recessed surface** — new `--pc-hover-bg` / `--pc-active-bg` base tokens let component hover/active states read a dedicated interaction-state axis rather than borrowing the recessed `--base-subtle-bg`, which read as *raised* in several dark themes.
|
|
17
|
+
- **Theme — default palette rebased onto pure-admin Corporate** — `$base-*` defaults now track Corporate (accent `#0ea5e9`, slate text/surfaces, emerald/red/amber/cyan roles), with the palette sourced from `$base-color-1..9`. This changes pure-css's *un-themed* default look; themed apps are unaffected since every theme sets its own `--base-*`.
|
|
18
|
+
- **Shadow DOM — a new `component-reset` entry** — `./component-reset` (`dist/css/component-reset.css`) is the counterpart to `reboot` for web components: a `:host` box-sizing + inherited-typography reset pinned to `--base-*` so a host page can't bleed into a component's shadow root. No `rem` base — pair it with `base`. Brings the build to 7 artifacts.
|
|
19
|
+
- **Internal — `@keenmate/base-css-variables` is now the canonical `--base-*` parent** — pure-css mirrors its token list into `$base-*` SCSS, and `scripts/check-base-parity.mjs` fails the build if the emitted names drift from the contract. New tokens are authored in base-css-variables first, then mirrored here.
|
|
20
20
|
|
|
21
21
|
## Why
|
|
22
22
|
|
|
@@ -72,6 +72,7 @@ $base-page-bg: #0b1020;
|
|
|
72
72
|
| --- | --- | --- |
|
|
73
73
|
| `dist/css/pure-css.css` | everything below, in one file | the common case |
|
|
74
74
|
| `dist/css/base.css` | only `:root { --base-*; --pc-*; }` | you just need the theming contract (e.g. to theme embedded web components) or a base for a theme override |
|
|
75
|
+
| `dist/css/component-reset.css` | a `:host` reset (box-sizing + inherited typography pinned to `--base-*`) — the Shadow-DOM counterpart to reboot | building a web component: adopt it into the shadow root (e.g. `import '@keenmate/pure-css/component-reset?inline'`) so the host page can't bleed styles in; pair with `base` |
|
|
75
76
|
| `dist/css/grid.css` | `.pc-row` / `.pc-col-*` (percentage + fraction columns, container-query responsive) | layout only |
|
|
76
77
|
| `dist/css/utilities.css` | spacing / flex / display / width-height utilities (`.m-4`, `.d-flex`, `.w-50`, …) | utilities only |
|
|
77
78
|
|
|
@@ -103,7 +104,35 @@ the styling stands on its own and the JS only adds the interactive behaviour.
|
|
|
103
104
|
(`--pc-*`) and web/svelte components all derive from it via fallback chains
|
|
104
105
|
(`--ms-accent-color: var(--base-accent-color, #3b82f6)`). Categories: accent, text, background,
|
|
105
106
|
border, input, dropdown, tooltip, contextual (success/danger/warning/info), interactive states,
|
|
106
|
-
typography, border-radius. The full list is
|
|
107
|
+
typography, border-radius, spacing/shadow/motion/z-index scales, and icons. The full list is
|
|
108
|
+
`src/scss/variables/_base.scss`.
|
|
109
|
+
|
|
110
|
+
#### Icons
|
|
111
|
+
|
|
112
|
+
`--base-icon-*` are mask-friendly SVG glyphs (Lucide defaults) for the shared UI affordances, so the
|
|
113
|
+
pure-css shell, pure-admin components, and the web/svelte components render the **same** marks and a
|
|
114
|
+
theme re-skins them in one place. Each is consumed via `mask: var(--base-icon-x); background:
|
|
115
|
+
currentColor`, so the glyph inherits text colour — override a token with any mask-friendly `url()` to
|
|
116
|
+
swap the icon set.
|
|
117
|
+
|
|
118
|
+
| Token | Glyph | Use |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| `--base-icon-chevron` | stroked angle `›` | expanders / nav — **rotate-one-glyph** disclosure (points right, rotate 90° when open) |
|
|
121
|
+
| `--base-icon-caret-down` / `--base-icon-caret-up` | solid triangles `▾` / `▴` | static dropdown / `<select>` affordance (down) and sort-direction / upward-dropdown counterpart (up) — a caret never rotates |
|
|
122
|
+
| `--base-icon-close` | `✕` | dismiss a transient **surface** (dialog, panel, popover, toast) |
|
|
123
|
+
| `--base-icon-clear` | `✕` | clear a **field** — distinct purpose, same glyph; **follows** `--base-icon-close`, override alone to diverge |
|
|
124
|
+
| `--base-icon-remove` | `✕` | take an **item** out of a collection (chip / tag / row) — non-destructive; follows `--base-icon-close` |
|
|
125
|
+
| `--base-icon-expand` / `--base-icon-collapse` | `+` / `−` | **swap-two-glyphs** disclosure (tree nodes, accordions): show `+` when collapsed, `−` when open |
|
|
126
|
+
| `--base-icon-add` / `--base-icon-edit` / `--base-icon-delete` | `+` / pencil / trash | **CRUD action** verbs — create / modify / **destroy** (delete is a trash can, *not* an ✕, so it reads as destructive) |
|
|
127
|
+
| `--base-icon-search` | magnifying glass | search inputs, filter fields, command palette |
|
|
128
|
+
|
|
129
|
+
Two intentional distinctions:
|
|
130
|
+
|
|
131
|
+
- **Disclosure models:** **chevron rotates one glyph** (sidebar, multiselect), while **expand/collapse swaps
|
|
132
|
+
two glyphs** (trees, accordions) — a component never rotates a `+` into a `−`.
|
|
133
|
+
- **✕ vs trash:** `close` / `clear` / `remove` are three *dismiss* purposes that share the ✕ glyph (and
|
|
134
|
+
cascade off `--base-icon-close`), while `delete` is a separate *destructive* action drawn as a trash can.
|
|
135
|
+
`add` shares the `+` shape with `expand` but is an independent knob (create ≠ disclosure).
|
|
107
136
|
|
|
108
137
|
## Theming
|
|
109
138
|
|
package/dist/css/base.css
CHANGED
|
@@ -9,16 +9,25 @@
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
:root {
|
|
12
|
-
--base-accent-color: #
|
|
13
|
-
--base-accent-color-hover:
|
|
14
|
-
--base-accent-color-active:
|
|
15
|
-
--base-accent-color-light: rgba(
|
|
16
|
-
--base-accent-color-light-hover: rgba(
|
|
17
|
-
--base-
|
|
18
|
-
--base-
|
|
19
|
-
--base-
|
|
20
|
-
--base-
|
|
12
|
+
--base-accent-color: #0ea5e9;
|
|
13
|
+
--base-accent-color-hover: #0284c7;
|
|
14
|
+
--base-accent-color-active: #0369a1;
|
|
15
|
+
--base-accent-color-light: rgba(14, 165, 233, 0.05);
|
|
16
|
+
--base-accent-color-light-hover: rgba(14, 165, 233, 0.08);
|
|
17
|
+
--base-primary-color: var(--base-accent-color, #0ea5e9);
|
|
18
|
+
--base-primary-color-hover: var(--base-accent-color-hover, #0284c7);
|
|
19
|
+
--base-primary-color-active: var(--base-accent-color-active, #0369a1);
|
|
20
|
+
--base-primary-color-light: var(--base-accent-color-light, rgba(14, 165, 233, 0.05));
|
|
21
|
+
--base-primary-color-light-hover: var(--base-accent-color-light-hover, rgba(14, 165, 233, 0.08));
|
|
22
|
+
--base-secondary-color: #6c757d;
|
|
23
|
+
--base-secondary-color-hover: #545b62;
|
|
24
|
+
--base-text-color-1: #334155;
|
|
25
|
+
--base-text-color-2: #64748b;
|
|
26
|
+
--base-text-color-3: #94a3b8;
|
|
27
|
+
--base-text-color-4: #cbd5e1;
|
|
21
28
|
--base-text-color-on-accent: #ffffff;
|
|
29
|
+
--base-text-on-primary: var(--base-text-color-on-accent, #ffffff);
|
|
30
|
+
--base-text-on-secondary: #ffffff;
|
|
22
31
|
--base-main-bg: #ffffff;
|
|
23
32
|
--base-page-bg: #f8f9fa;
|
|
24
33
|
--base-subtle-bg: #e9ecef;
|
|
@@ -27,21 +36,22 @@
|
|
|
27
36
|
--base-shadow-color: rgba(0, 0, 0, 0.15);
|
|
28
37
|
--base-hover-bg: #e9ecef;
|
|
29
38
|
--base-active-bg: rgb(85.5830753354%, 87.5490196078%, 89.5149638803%);
|
|
30
|
-
--base-disabled-bg: #
|
|
39
|
+
--base-disabled-bg: #f1f3f5;
|
|
31
40
|
--base-elevated-bg: #f8f9fa;
|
|
32
41
|
--base-text-inverted: #ffffff;
|
|
33
|
-
--base-border-
|
|
34
|
-
--base-border:
|
|
35
|
-
--base-
|
|
42
|
+
--base-border-width: 1px;
|
|
43
|
+
--base-border-color: #e2e8f0;
|
|
44
|
+
--base-border: 1px solid #e2e8f0;
|
|
45
|
+
--base-checkbox-border-color: #e2e8f0;
|
|
36
46
|
--base-input-bg: #ffffff;
|
|
37
|
-
--base-input-color: #
|
|
38
|
-
--base-input-border: 1px solid #
|
|
39
|
-
--base-input-border-color: #
|
|
40
|
-
--base-input-border-hover: 1px solid #
|
|
41
|
-
--base-input-border-focus: 1px solid #
|
|
42
|
-
--base-input-placeholder-color: #
|
|
47
|
+
--base-input-color: #334155;
|
|
48
|
+
--base-input-border: 1px solid #e2e8f0;
|
|
49
|
+
--base-input-border-color: #e2e8f0;
|
|
50
|
+
--base-input-border-hover: 1px solid #0ea5e9;
|
|
51
|
+
--base-input-border-focus: 1px solid #0ea5e9;
|
|
52
|
+
--base-input-placeholder-color: #cbd5e1;
|
|
43
53
|
--base-input-bg-disabled: rgba(255, 255, 255, 0.5);
|
|
44
|
-
--base-input-clear-color: #
|
|
54
|
+
--base-input-clear-color: #94a3b8;
|
|
45
55
|
--base-input-clear-bg-hover: #e9ecef;
|
|
46
56
|
--base-input-size-xs-height: 3.1;
|
|
47
57
|
--base-input-size-sm-height: 3.3;
|
|
@@ -49,49 +59,50 @@
|
|
|
49
59
|
--base-input-size-lg-height: 3.8;
|
|
50
60
|
--base-input-size-xl-height: 4.1;
|
|
51
61
|
--base-dropdown-bg: #ffffff;
|
|
52
|
-
--base-dropdown-border: 1px solid #
|
|
62
|
+
--base-dropdown-border: 1px solid #e2e8f0;
|
|
53
63
|
--base-dropdown-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
|
|
54
64
|
--base-tooltip-bg: #2c3e50;
|
|
55
65
|
--base-tooltip-text-color: #ffffff;
|
|
56
66
|
--base-tooltip-color: #ffffff;
|
|
57
|
-
--base-success-color: #
|
|
58
|
-
--base-success-bg: #
|
|
59
|
-
--base-success-color-hover:
|
|
60
|
-
--base-success-bg-light: rgba(
|
|
61
|
-
--base-success-bg-subtle: rgba(
|
|
62
|
-
--base-success-border: rgba(
|
|
67
|
+
--base-success-color: #10b981;
|
|
68
|
+
--base-success-bg: #10b981;
|
|
69
|
+
--base-success-color-hover: #059669;
|
|
70
|
+
--base-success-bg-light: rgba(16, 185, 129, 0.1);
|
|
71
|
+
--base-success-bg-subtle: rgba(16, 185, 129, 0.08);
|
|
72
|
+
--base-success-border: rgba(16, 185, 129, 0.2);
|
|
63
73
|
--base-success-text: #155724;
|
|
64
74
|
--base-success-text-light: #d4edda;
|
|
65
75
|
--base-text-on-success: #ffffff;
|
|
66
76
|
--base-danger-color: #ef4444;
|
|
67
77
|
--base-danger-bg: #ef4444;
|
|
68
|
-
--base-danger-color-hover:
|
|
78
|
+
--base-danger-color-hover: #dc2626;
|
|
69
79
|
--base-danger-bg-light: rgba(239, 68, 68, 0.1);
|
|
70
80
|
--base-danger-bg-subtle: rgba(239, 68, 68, 0.08);
|
|
71
81
|
--base-danger-border: rgba(239, 68, 68, 0.2);
|
|
72
82
|
--base-danger-text: #721c24;
|
|
73
83
|
--base-danger-text-light: #f8d7da;
|
|
74
84
|
--base-text-on-danger: #ffffff;
|
|
75
|
-
--base-warning-color: #
|
|
76
|
-
--base-warning-bg: #
|
|
77
|
-
--base-warning-color-hover:
|
|
78
|
-
--base-warning-bg-light: rgba(
|
|
79
|
-
--base-warning-bg-subtle: rgba(
|
|
80
|
-
--base-warning-border: rgba(
|
|
85
|
+
--base-warning-color: #f59e0b;
|
|
86
|
+
--base-warning-bg: #f59e0b;
|
|
87
|
+
--base-warning-color-hover: #d97706;
|
|
88
|
+
--base-warning-bg-light: rgba(245, 158, 11, 0.1);
|
|
89
|
+
--base-warning-bg-subtle: rgba(245, 158, 11, 0.08);
|
|
90
|
+
--base-warning-border: rgba(245, 158, 11, 0.2);
|
|
81
91
|
--base-warning-text: #856404;
|
|
82
92
|
--base-warning-text-light: #fff3cd;
|
|
83
|
-
--base-text-on-warning: #
|
|
84
|
-
--base-info-color: #
|
|
85
|
-
--base-info-
|
|
86
|
-
--base-info-
|
|
87
|
-
--base-info-bg-
|
|
88
|
-
--base-info-
|
|
93
|
+
--base-text-on-warning: #ffffff;
|
|
94
|
+
--base-info-color: #06b6d4;
|
|
95
|
+
--base-info-bg: #06b6d4;
|
|
96
|
+
--base-info-color-hover: #0891b2;
|
|
97
|
+
--base-info-bg-light: rgba(6, 182, 212, 0.1);
|
|
98
|
+
--base-info-bg-subtle: rgba(6, 182, 212, 0.08);
|
|
99
|
+
--base-info-border: rgba(6, 182, 212, 0.2);
|
|
89
100
|
--base-info-text: #0c5460;
|
|
90
101
|
--base-info-text-light: #d1ecf1;
|
|
91
102
|
--base-text-on-info: #ffffff;
|
|
92
103
|
--base-hover-overlay: rgba(0, 0, 0, 0.04);
|
|
93
104
|
--base-active-overlay: rgba(0, 0, 0, 0.08);
|
|
94
|
-
--base-focus-ring-color: #
|
|
105
|
+
--base-focus-ring-color: #0ea5e9;
|
|
95
106
|
--base-focus-ring-width: 3px;
|
|
96
107
|
--base-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
|
|
97
108
|
--base-font-family-mono: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
|
|
@@ -113,45 +124,100 @@
|
|
|
113
124
|
--base-border-radius-md: 0.6;
|
|
114
125
|
--base-border-radius-lg: 0.8;
|
|
115
126
|
--base-rem: 1rem;
|
|
127
|
+
--base-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m9 18 6-6-6-6%22/%3E%3C/svg%3E");
|
|
128
|
+
--base-icon-caret-down: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath fill=%22%23000%22 d=%22M12 15 6 9h12z%22/%3E%3C/svg%3E");
|
|
129
|
+
--base-icon-caret-up: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath fill=%22%23000%22 d=%22M12 9 6 15h12z%22/%3E%3C/svg%3E");
|
|
130
|
+
--base-icon-close: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M18 6 6 18%22/%3E%3Cpath d=%22m6 6 12 12%22/%3E%3C/svg%3E");
|
|
131
|
+
--base-icon-clear: var(--base-icon-close, url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M18 6 6 18%22/%3E%3Cpath d=%22m6 6 12 12%22/%3E%3C/svg%3E"));
|
|
132
|
+
--base-icon-remove: var(--base-icon-close, url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M18 6 6 18%22/%3E%3Cpath d=%22m6 6 12 12%22/%3E%3C/svg%3E"));
|
|
133
|
+
--base-icon-expand: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22M12 5v14%22/%3E%3C/svg%3E");
|
|
134
|
+
--base-icon-collapse: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3C/svg%3E");
|
|
135
|
+
--base-icon-add: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22M12 5v14%22/%3E%3C/svg%3E");
|
|
136
|
+
--base-icon-edit: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z%22/%3E%3C/svg%3E");
|
|
137
|
+
--base-icon-delete: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 6h18%22/%3E%3Cpath d=%22M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2%22/%3E%3Cpath d=%22M10 11v6%22/%3E%3Cpath d=%22M14 11v6%22/%3E%3C/svg%3E");
|
|
138
|
+
--base-icon-search: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2211%22 cy=%2211%22 r=%228%22/%3E%3Cpath d=%22m21 21-4.3-4.3%22/%3E%3C/svg%3E");
|
|
139
|
+
--base-color-1: #f59e0b;
|
|
140
|
+
--base-color-2: #ec4899;
|
|
141
|
+
--base-color-3: #10b981;
|
|
142
|
+
--base-color-4: #0ea5e9;
|
|
143
|
+
--base-color-5: #8b5cf6;
|
|
144
|
+
--base-color-6: #6366f1;
|
|
145
|
+
--base-color-7: #64748b;
|
|
146
|
+
--base-color-8: #0284c7;
|
|
147
|
+
--base-color-9: #334155;
|
|
148
|
+
--base-color-1-text: #1a1a1a;
|
|
149
|
+
--base-color-2-text: #ffffff;
|
|
150
|
+
--base-color-3-text: #ffffff;
|
|
151
|
+
--base-color-4-text: #ffffff;
|
|
152
|
+
--base-color-5-text: #ffffff;
|
|
153
|
+
--base-color-6-text: #ffffff;
|
|
154
|
+
--base-color-7-text: #ffffff;
|
|
155
|
+
--base-color-8-text: #ffffff;
|
|
156
|
+
--base-color-9-text: #ffffff;
|
|
157
|
+
--base-space-xs: 0.4;
|
|
158
|
+
--base-space-sm: 0.8;
|
|
159
|
+
--base-space-md: 1.2;
|
|
160
|
+
--base-space-base: 1.6;
|
|
161
|
+
--base-space-lg: 2.4;
|
|
162
|
+
--base-space-xl: 3.2;
|
|
163
|
+
--base-space-2xl: 4.8;
|
|
164
|
+
--base-shadow-sm: 0 1px 3px var(--base-shadow-color);
|
|
165
|
+
--base-shadow-md: 0 2px 8px var(--base-shadow-color);
|
|
166
|
+
--base-shadow-lg: 0 4px 12px var(--base-shadow-color);
|
|
167
|
+
--base-duration-fast: 0.1s;
|
|
168
|
+
--base-duration-normal: 0.15s;
|
|
169
|
+
--base-duration-medium: 0.25s;
|
|
170
|
+
--base-duration-slow: 0.3s;
|
|
171
|
+
--base-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
|
|
172
|
+
--base-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
173
|
+
--base-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
174
|
+
--base-z-dropdown: 7500;
|
|
175
|
+
--base-z-modal-backdrop: 6000;
|
|
176
|
+
--base-z-modal: 7000;
|
|
177
|
+
--base-z-popover: 7600;
|
|
178
|
+
--base-z-toast: 8000;
|
|
179
|
+
--base-z-tooltip: 9000;
|
|
116
180
|
color-scheme: light;
|
|
117
181
|
--pc-main-bg: #ffffff;
|
|
118
182
|
--pc-page-bg: var(--base-page-bg, #f8f9fa);
|
|
119
183
|
--pc-subtle-bg: #e9ecef;
|
|
120
|
-
--pc-
|
|
121
|
-
--pc-
|
|
122
|
-
--pc-
|
|
123
|
-
--pc-
|
|
184
|
+
--pc-hover-bg: var(--base-hover-bg, #e9ecef);
|
|
185
|
+
--pc-active-bg: var(--base-active-bg, rgb(85.5830753354%, 87.5490196078%, 89.5149638803%));
|
|
186
|
+
--pc-text-color-1: var(--base-text-color-1, #334155);
|
|
187
|
+
--pc-text-color-2: var(--base-text-color-2, #64748b);
|
|
188
|
+
--pc-accent: var(--base-accent-color, #0ea5e9);
|
|
189
|
+
--pc-accent-hover: rgba(14, 165, 233, 0.08);
|
|
124
190
|
--pc-accent-light: color-mix(in srgb, var(--pc-accent) 5%, transparent);
|
|
125
191
|
--pc-link-color: var(--pc-accent);
|
|
126
192
|
--pc-link-color-hover: color-mix(in srgb, var(--pc-link-color), currentColor 50%);
|
|
127
193
|
--pc-link-color-visited: var(--pc-link-color);
|
|
128
|
-
--pc-border-color: var(--base-border-color, #
|
|
129
|
-
--pc-success: #
|
|
130
|
-
--pc-warning: #
|
|
194
|
+
--pc-border-color: var(--base-border-color, #e2e8f0);
|
|
195
|
+
--pc-success: #10b981;
|
|
196
|
+
--pc-warning: #f59e0b;
|
|
131
197
|
--pc-danger: #ef4444;
|
|
132
|
-
--pc-info: #
|
|
198
|
+
--pc-info: #06b6d4;
|
|
133
199
|
--pc-success-text: #155724;
|
|
134
200
|
--pc-danger-text: #721c24;
|
|
135
201
|
--pc-warning-text: #856404;
|
|
136
202
|
--pc-info-text: #0c5460;
|
|
137
|
-
--pc-color-1:
|
|
138
|
-
--pc-color-2:
|
|
139
|
-
--pc-color-3:
|
|
140
|
-
--pc-color-4:
|
|
141
|
-
--pc-color-5:
|
|
142
|
-
--pc-color-6:
|
|
143
|
-
--pc-color-7:
|
|
144
|
-
--pc-color-8:
|
|
145
|
-
--pc-color-9:
|
|
146
|
-
--pc-color-1-text: #
|
|
147
|
-
--pc-color-2-text: #ffffff;
|
|
148
|
-
--pc-color-3-text: #ffffff;
|
|
149
|
-
--pc-color-4-text: #ffffff;
|
|
150
|
-
--pc-color-5-text: #ffffff;
|
|
151
|
-
--pc-color-6-text: #ffffff;
|
|
152
|
-
--pc-color-7-text: #ffffff;
|
|
153
|
-
--pc-color-8-text: #ffffff;
|
|
154
|
-
--pc-color-9-text: #ffffff;
|
|
203
|
+
--pc-color-1: var(--base-color-1, #f59e0b);
|
|
204
|
+
--pc-color-2: var(--base-color-2, #ec4899);
|
|
205
|
+
--pc-color-3: var(--base-color-3, #10b981);
|
|
206
|
+
--pc-color-4: var(--base-color-4, #0ea5e9);
|
|
207
|
+
--pc-color-5: var(--base-color-5, #8b5cf6);
|
|
208
|
+
--pc-color-6: var(--base-color-6, #6366f1);
|
|
209
|
+
--pc-color-7: var(--base-color-7, #64748b);
|
|
210
|
+
--pc-color-8: var(--base-color-8, #0284c7);
|
|
211
|
+
--pc-color-9: var(--base-color-9, #334155);
|
|
212
|
+
--pc-color-1-text: var(--base-color-1-text, #1a1a1a);
|
|
213
|
+
--pc-color-2-text: var(--base-color-2-text, #ffffff);
|
|
214
|
+
--pc-color-3-text: var(--base-color-3-text, #ffffff);
|
|
215
|
+
--pc-color-4-text: var(--base-color-4-text, #ffffff);
|
|
216
|
+
--pc-color-5-text: var(--base-color-5-text, #ffffff);
|
|
217
|
+
--pc-color-6-text: var(--base-color-6-text, #ffffff);
|
|
218
|
+
--pc-color-7-text: var(--base-color-7-text, #ffffff);
|
|
219
|
+
--pc-color-8-text: var(--base-color-8-text, #ffffff);
|
|
220
|
+
--pc-color-9-text: var(--base-color-9-text, #ffffff);
|
|
155
221
|
--pc-border-radius-sm: calc(var(--base-border-radius-sm, 0.4) * 1rem);
|
|
156
222
|
--pc-border-radius: calc(var(--base-border-radius-md, 0.6) * 1rem);
|
|
157
223
|
--pc-border-radius-lg: calc(var(--base-border-radius-lg, 0.8) * 1rem);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
box-sizing: border-box;
|
|
3
|
+
color: var(--base-text-color-1);
|
|
4
|
+
font-family: var(--base-font-family);
|
|
5
|
+
font-size: medium;
|
|
6
|
+
font-style: normal;
|
|
7
|
+
font-weight: normal;
|
|
8
|
+
font-variant: normal;
|
|
9
|
+
line-height: 1.5;
|
|
10
|
+
letter-spacing: normal;
|
|
11
|
+
word-spacing: normal;
|
|
12
|
+
text-align: start;
|
|
13
|
+
text-indent: 0;
|
|
14
|
+
text-transform: none;
|
|
15
|
+
text-shadow: none;
|
|
16
|
+
white-space: normal;
|
|
17
|
+
word-break: normal;
|
|
18
|
+
overflow-wrap: normal;
|
|
19
|
+
writing-mode: horizontal-tb;
|
|
20
|
+
accent-color: auto;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
*,
|
|
24
|
+
*::before,
|
|
25
|
+
*::after {
|
|
26
|
+
box-sizing: inherit;
|
|
27
|
+
}
|