ui-style-kit-css 2.0.2 → 2.0.4
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 +40 -0
- package/README.md +61 -14
- package/STYLE-MAP.md +9 -1
- package/dist/ui-style-kit.css +311 -15
- package/dist/ui-style-kit.min.css +6 -1
- package/dist/ui-style-kit.with-bridge.css +311 -15
- package/dist/ui-style-kit.with-bridge.min.css +6 -1
- package/docs/ECOSYSTEM.md +58 -0
- package/docs/PUBLISHING.md +10 -3
- package/package.json +9 -4
- package/styles/bauhaus.css +1 -0
- package/styles/bento.css +1 -0
- package/styles/brutalism.css +6 -5
- package/styles/content-overflow.css +292 -0
- package/styles/cyberpunk.css +3 -2
- package/styles/maximalist.css +1 -0
- package/styles/minimal-saas.css +1 -0
- package/styles/native-elements.css +3 -2
- package/styles/neumorphism.css +1 -0
- package/styles/retro-glass.css +3 -2
- package/styles/retrofuturism.css +1 -0
- package/styles/tactile.css +1 -0
- package/styles/y2k.css +3 -2
- package/demo/assets/README.md +0 -23
- package/demo/assets/android-chrome-192x192.png +0 -0
- package/demo/assets/android-chrome-512x512.png +0 -0
- package/demo/assets/apple-touch-icon.png +0 -0
- package/demo/assets/browserconfig.xml +0 -9
- package/demo/assets/favicon-128x128.png +0 -0
- package/demo/assets/favicon-16x16.png +0 -0
- package/demo/assets/favicon-256x256.png +0 -0
- package/demo/assets/favicon-32x32.png +0 -0
- package/demo/assets/favicon-384x384.png +0 -0
- package/demo/assets/favicon-48x48.png +0 -0
- package/demo/assets/favicon-64x64.png +0 -0
- package/demo/assets/favicon-96x96.png +0 -0
- package/demo/assets/favicon-head-snippet.html +0 -11
- package/demo/assets/favicon-master-1024.png +0 -0
- package/demo/assets/favicon.ico +0 -0
- package/demo/assets/favicon.svg +0 -26
- package/demo/assets/mstile-150x150.png +0 -0
- package/demo/assets/safari-pinned-tab.svg +0 -3
- package/demo/assets/site.webmanifest +0 -25
- package/demo/index.html +0 -1135
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **UI Style Kit CSS** will be documented here.
|
|
4
4
|
|
|
5
|
+
## [2.0.4] - 2026-07-20
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Restored the exported `content-overflow.css` shared layer for standalone style imports.
|
|
10
|
+
- Added rendered regression coverage for long text containment and responsive orientation checks across mobile, tablet, desktop, portrait, and landscape viewports.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Replaced the regex minifier with exactly pinned Lightning CSS parsing while preserving generated bundle banners and entry points.
|
|
15
|
+
- Aligned package metadata, generated bundle banners, demo structured data, and release documentation to `2.0.4`.
|
|
16
|
+
- Reconnected every standalone UI preset to the shared content-overflow layer so long words, URLs, and token strings stay inside layout wrappers.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- Preserved descendant combinators and required whitespace around binary operators in generated `calc()` values.
|
|
21
|
+
- Moved `::file-selector-button` and `::backdrop` outside `:where()` arguments so Chromium accepts and applies the native rules.
|
|
22
|
+
- Routed Brutalism, Cyberpunk, Y2K, and Retro Glass status foregrounds through their documented `on-success`, `on-warning`, and `on-danger` tokens.
|
|
23
|
+
|
|
24
|
+
## [2.0.3] - 2026-07-11
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- Added an active theme and mode token workbench to the demo for editing concrete `--usk-*-rgb` values live and copying drop-in theme override CSS.
|
|
29
|
+
- Added copy buttons with clipboard icons and tooltips to demo code blocks.
|
|
30
|
+
- Added README Mermaid diagrams for the three-library ecosystem and the shared token flow.
|
|
31
|
+
- Added demo resource links for GitHub, GitHub Wiki, npm, Interactive Surface CSS, and Layout Style CSS.
|
|
32
|
+
- Added search, social sharing, web manifest, sitemap, and structured-data metadata for the published demo.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Aligned package metadata for `2.0.3` after the manual `2.0.2` npm release.
|
|
37
|
+
- Split duplicated demo CSS and JavaScript into shared `demo/demo.css` and `demo/demo.js` entrypoint assets.
|
|
38
|
+
- Expanded stylelint coverage to include extracted demo CSS.
|
|
39
|
+
- Updated the demo HTML with static fallback content so crawlers and no-JavaScript users can read the core library description before JavaScript renders the interactive showcase.
|
|
40
|
+
|
|
41
|
+
### Removed
|
|
42
|
+
|
|
43
|
+
- Removed unused tracked image assets and stale local release/test artifacts from the repo.
|
|
44
|
+
|
|
5
45
|
## [2.0.2] - 2026-07-08
|
|
6
46
|
|
|
7
47
|
### Added
|
package/README.md
CHANGED
|
@@ -9,17 +9,62 @@ It is separate from, but complementary to, **Interactive Surface CSS**. Use **UI
|
|
|
9
9
|
|
|
10
10
|
## Current Release
|
|
11
11
|
|
|
12
|
-
`v2.0.
|
|
12
|
+
`v2.0.4` is the current v2 correctness patch. It adds parser-based minification, restores valid native file-button and modal-backdrop styling, routes status foregrounds through semantic `on-*` tokens, and retains the shared content-overflow and responsive coverage work without changing the CSS API.
|
|
13
13
|
|
|
14
14
|
[Showcase website](https://foscat.github.io/ui-style-kit-css/)
|
|
15
15
|
|
|
16
|
+
## How the library fits together
|
|
17
|
+
|
|
18
|
+
UI Style Kit CSS owns visual identity: themes, component paint, native HTML styling, and the prefixed class API. It can be used alone, or paired with the sibling libraries when a project needs structural layout primitives or richer interaction-state behavior.
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart LR
|
|
22
|
+
App["Application markup"] --> Attrs["data-ui + data-theme + data-mode"]
|
|
23
|
+
Attrs --> USK["ui-style-kit-css"]
|
|
24
|
+
USK --> Themes["Shared --usk-* theme roles"]
|
|
25
|
+
USK --> Components["Prefixed component classes"]
|
|
26
|
+
USK --> Native["Scoped native HTML fallback"]
|
|
27
|
+
Layout["layout-style-css"] --> App
|
|
28
|
+
Surface["interactive-surface-css"] --> Bridge["Optional bridge bundle"]
|
|
29
|
+
Bridge --> USK
|
|
30
|
+
Components --> UI["Branded UI surface"]
|
|
31
|
+
Native --> UI
|
|
32
|
+
Themes --> UI
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```mermaid
|
|
36
|
+
flowchart TB
|
|
37
|
+
Theme["styles/theme-colors.css"] --> Rgb["Concrete --usk-*-rgb channels"]
|
|
38
|
+
Rgb --> Modes["Light, dark, and contrast modes"]
|
|
39
|
+
Modes --> Prefixes["Per-style prefixed aliases"]
|
|
40
|
+
Prefixes --> Rules["Component, utility, and native rules"]
|
|
41
|
+
Demo["Demo token workbench"] --> Overrides["Copyable :where([data-ui][data-theme][data-mode]) override block"]
|
|
42
|
+
Overrides --> Rgb
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The demo page documents this flow directly: it shows computed RGB color tokens for the active theme and mode, lets developers edit them live, and copies the exact override block to drop into an app stylesheet.
|
|
46
|
+
|
|
47
|
+
## Ecosystem compatibility
|
|
48
|
+
|
|
49
|
+
These libraries stay standalone, but the current aligned set is:
|
|
50
|
+
|
|
51
|
+
| Library | Aligned version | Owns |
|
|
52
|
+
|---|---:|---|
|
|
53
|
+
| `ui-style-kit-css@2.0.4` | source release target | visual identity, color themes, UI paint, native HTML styling, content wrapping, and bridge tokens |
|
|
54
|
+
| `interactive-surface-css@1.3.0` | latest published sibling | interaction-state primitives, surface behavior, state layers, and input affordances |
|
|
55
|
+
| `layout-style-css@1.1.2` | latest published sibling | structural wrappers, grids, sections, app shells, and layout recipes |
|
|
56
|
+
|
|
57
|
+
Use one, two, or all three depending on the project. UI Style Kit does not require the sibling libraries, and the optional bridge only maps shared `--usk-*` roles into Interactive Surface tokens when consumers import it.
|
|
58
|
+
|
|
59
|
+
For import order, ownership boundaries, and adoption paths, see the [Ecosystem guide](docs/ECOSYSTEM.md).
|
|
60
|
+
|
|
16
61
|
## Features
|
|
17
62
|
|
|
18
63
|
- 11 UI style systems
|
|
19
64
|
- 10 shared color schemes
|
|
20
65
|
- `light`, `dark`, and `contrast` modes
|
|
21
66
|
- Combined CSS bundle and per-style production imports
|
|
22
|
-
- Shared `theme-colors.css`
|
|
67
|
+
- Shared `theme-colors.css`, `native-elements.css`, and `content-overflow.css` layers for all UI systems
|
|
23
68
|
- Scoped native HTML element coverage, including semantic containers and inline text elements
|
|
24
69
|
- Visible `:focus-visible` defaults
|
|
25
70
|
- Skip-link and visually-hidden helpers per style prefix
|
|
@@ -46,11 +91,12 @@ Use a single style import for production apps that use one visual system:
|
|
|
46
91
|
import "ui-style-kit-css/minimal-saas.css";
|
|
47
92
|
```
|
|
48
93
|
|
|
49
|
-
In `v2.0.
|
|
94
|
+
In `v2.0.4`, standalone style files import the shared color-scheme layer from `styles/theme-colors.css`, the shared native-element fallback layer from `styles/native-elements.css`, and the shared content-overflow layer from `styles/content-overflow.css`. Bundlers that understand CSS `@import` will resolve them automatically. If your build pipeline does not resolve CSS imports, import the shared dependencies before the style file:
|
|
50
95
|
|
|
51
96
|
```js
|
|
52
97
|
import "ui-style-kit-css/theme-colors.css";
|
|
53
98
|
import "ui-style-kit-css/native-elements.css";
|
|
99
|
+
import "ui-style-kit-css/content-overflow.css";
|
|
54
100
|
import "ui-style-kit-css/minimal-saas.css";
|
|
55
101
|
```
|
|
56
102
|
|
|
@@ -88,24 +134,25 @@ When the bridge is attached, add `.interactive-surface` to interactable elements
|
|
|
88
134
|
|
|
89
135
|
| Import | Raw | Gzip | Best for |
|
|
90
136
|
|---|---:|---:|---|
|
|
91
|
-
| `ui-style-kit-css/dist/ui-style-kit.min.css` | ~
|
|
92
|
-
| `ui-style-kit-css/with-bridge.css` | ~
|
|
137
|
+
| `ui-style-kit-css/dist/ui-style-kit.min.css` | ~271 KB | ~35 KB | Runtime UI-system switchers and demos |
|
|
138
|
+
| `ui-style-kit-css/with-bridge.css` | ~339 KB | ~40 KB | Runtime switchers plus Interactive Surface bridge |
|
|
93
139
|
| `ui-style-kit-css/theme-colors.css` | ~25 KB | ~3 KB | Shared color schemes for standalone style imports |
|
|
94
140
|
| `ui-style-kit-css/native-elements.css` | ~13 KB | ~2 KB | Shared native HTML fallback styling |
|
|
141
|
+
| `ui-style-kit-css/content-overflow.css` | ~7 KB | ~1 KB | Shared long-text containment for standalone style imports |
|
|
95
142
|
| Single style imports | ~26-28 KB | ~5-6 KB | Production apps with one visual system |
|
|
96
143
|
|
|
97
144
|
## CDN usage
|
|
98
145
|
|
|
99
|
-
|
|
146
|
+
Use the latest published NPM package:
|
|
100
147
|
|
|
101
148
|
```html
|
|
102
149
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@latest/dist/ui-style-kit.min.css" />
|
|
103
150
|
```
|
|
104
151
|
|
|
105
|
-
For production, pin
|
|
152
|
+
For production today, pin the latest published patch. Update this pin to `2.0.4` after that release is published:
|
|
106
153
|
|
|
107
154
|
```html
|
|
108
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.0.
|
|
155
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.0.3/dist/ui-style-kit.min.css" />
|
|
109
156
|
```
|
|
110
157
|
|
|
111
158
|
## Basic usage
|
|
@@ -178,6 +225,8 @@ contrast
|
|
|
178
225
|
|
|
179
226
|
`styles/native-elements.css` owns the shared native selectors under `[data-ui][data-theme][data-mode]`. Each style system maps those selectors to its visual identity through `--usk-native-*` tokens, so native controls keep the same coverage while inheriting each preset's radius, shadows, borders, typography, and color surfaces.
|
|
180
227
|
|
|
228
|
+
`styles/content-overflow.css` owns the shared text containment contract under `[data-ui][data-theme][data-mode]`. It keeps headings, paragraphs, links, table cells, controls, badges, nav links, and common UI wrappers from widening their parent wrapper when content contains long words, hashes, URLs, or copyable tokens.
|
|
229
|
+
|
|
181
230
|
The shared native layer covers common native elements, including:
|
|
182
231
|
|
|
183
232
|
- semantic containers: `main`, `section`, `header`, `footer`, `nav`, `article`, `aside`, `address`
|
|
@@ -277,6 +326,7 @@ ui-style-kit-css/
|
|
|
277
326
|
styles/
|
|
278
327
|
theme-colors.css
|
|
279
328
|
native-elements.css
|
|
329
|
+
content-overflow.css
|
|
280
330
|
minimal-saas.css
|
|
281
331
|
bento.css
|
|
282
332
|
maximalist.css
|
|
@@ -293,13 +343,10 @@ ui-style-kit-css/
|
|
|
293
343
|
TOKENS.md
|
|
294
344
|
STYLE-GUIDE.md
|
|
295
345
|
PUBLISHING.md
|
|
296
|
-
demo/
|
|
297
|
-
index.html
|
|
298
|
-
assets/
|
|
299
|
-
favicon.svg
|
|
300
|
-
site.webmanifest
|
|
301
346
|
```
|
|
302
347
|
|
|
348
|
+
The checked-in demo, favicon pack, and social preview image stay in the repository for GitHub Pages, but they are intentionally excluded from the npm tarball so installs only receive the CSS library, docs, and metadata.
|
|
349
|
+
|
|
303
350
|
## Development checks
|
|
304
351
|
|
|
305
352
|
```bash
|
|
@@ -315,7 +362,7 @@ The `v2.0.1` release line removes duplicated per-UI color-scheme blocks. Color s
|
|
|
315
362
|
|
|
316
363
|
- Use `--usk-*-rgb` when defining or overriding a color scheme.
|
|
317
364
|
- Continue using prefixed functional tokens such as `--saas-primary`, `--neo-card-bg`, and `--rg-on-primary` inside components.
|
|
318
|
-
- Import `ui-style-kit-css/theme-colors.css` and `ui-style-kit-css/
|
|
365
|
+
- Import `ui-style-kit-css/theme-colors.css`, `ui-style-kit-css/native-elements.css`, and `ui-style-kit-css/content-overflow.css` before standalone style files if your bundler does not follow CSS `@import`.
|
|
319
366
|
- Keep using `ui-style-kit-css/interactive-surface-bridge` or `ui-style-kit-css/with-bridge.css` for the opt-in bridge. The bridge now inherits shared `--usk-*` roles and exposes three `data-surface-level` visual states while the default bundle remains bridge-free.
|
|
320
367
|
|
|
321
368
|
## License
|
package/STYLE-MAP.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## UI systems
|
|
4
4
|
|
|
5
|
-
Color schemes are defined once in `styles/theme-colors.css`. Native HTML fallback selectors are defined once in `styles/native-elements.css`. Each UI system file imports
|
|
5
|
+
Color schemes are defined once in `styles/theme-colors.css`. Native HTML fallback selectors are defined once in `styles/native-elements.css`. Long-text containment rules are defined once in `styles/content-overflow.css`. Each UI system file imports all shared layers, aliases `--usk-*` RGB roles back to its prefix, and maps `--usk-native-*` tokens into the preset's visual identity.
|
|
6
6
|
|
|
7
7
|
| UI style | `data-ui` | Prefix | File |
|
|
8
8
|
|---|---:|---:|---|
|
|
@@ -32,6 +32,14 @@ Color schemes are defined once in `styles/theme-colors.css`. Native HTML fallbac
|
|
|
32
32
|
|
|
33
33
|
Native selectors stay generic under `[data-ui][data-theme][data-mode]`. Presets only provide token mappings such as `--usk-native-surface`, `--usk-native-radius`, and `--usk-native-shadow`, which avoids repeating the same fieldset, table, dialog, details, form, and semantic-element rules in every UI file.
|
|
34
34
|
|
|
35
|
+
## Shared overflow layer
|
|
36
|
+
|
|
37
|
+
| Purpose | Import |
|
|
38
|
+
|---|---|
|
|
39
|
+
| Shared long-text containment for UI wrappers and controls | `styles/content-overflow.css` |
|
|
40
|
+
|
|
41
|
+
The overflow layer keeps headings, paragraphs, links, table cells, controls, badges, nav links, and common layout wrappers from widening the page when content includes long tokens or URLs.
|
|
42
|
+
|
|
35
43
|
## Bridge bundle
|
|
36
44
|
|
|
37
45
|
| Purpose | Import |
|
package/dist/ui-style-kit.css
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* UI Style Kit CSS v2.0.
|
|
2
|
+
* UI Style Kit CSS v2.0.4
|
|
3
3
|
* CSS theme and UI style preset library.
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
@layer ui-style-kit.theme_colors, ui-style-kit.native_elements, ui-style-kit.minimal_saas, ui-style-kit.bento, ui-style-kit.maximalist, ui-style-kit.bauhaus, ui-style-kit.tactile, ui-style-kit.neumorphism, ui-style-kit.retrofuturism, ui-style-kit.brutalism, ui-style-kit.cyberpunk, ui-style-kit.y2k, ui-style-kit.retro_glass;
|
|
7
|
+
@layer ui-style-kit.theme_colors, ui-style-kit.native_elements, ui-style-kit.content_overflow, ui-style-kit.minimal_saas, ui-style-kit.bento, ui-style-kit.maximalist, ui-style-kit.bauhaus, ui-style-kit.tactile, ui-style-kit.neumorphism, ui-style-kit.retrofuturism, ui-style-kit.brutalism, ui-style-kit.cyberpunk, ui-style-kit.y2k, ui-style-kit.retro_glass;
|
|
8
8
|
|
|
9
9
|
/* styles/theme-colors.css */
|
|
10
10
|
/* =========================================================
|
|
@@ -1038,7 +1038,8 @@
|
|
|
1038
1038
|
|
|
1039
1039
|
[data-ui][data-theme][data-mode] :where(input[type="file"]) { color: var(--usk-native-text-muted); }
|
|
1040
1040
|
|
|
1041
|
-
|
|
1041
|
+
/* Keep pseudo-elements outside :where() because engines reject them inside selector-list arguments. */
|
|
1042
|
+
[data-ui][data-theme][data-mode] :where(input[type="file"])::file-selector-button {
|
|
1042
1043
|
margin-inline-end: .75rem;
|
|
1043
1044
|
padding: .55rem .8rem;
|
|
1044
1045
|
color: var(--usk-native-on-primary);
|
|
@@ -1113,7 +1114,7 @@
|
|
|
1113
1114
|
box-shadow: var(--usk-native-shadow-md), 0 30px 80px rgb(0 0 0 / .42);
|
|
1114
1115
|
}
|
|
1115
1116
|
|
|
1116
|
-
[data-ui][data-theme][data-mode] :where(dialog::backdrop
|
|
1117
|
+
[data-ui][data-theme][data-mode] :where(dialog)::backdrop { background: rgb(0 0 0 / .62); }
|
|
1117
1118
|
|
|
1118
1119
|
[data-ui][data-theme][data-mode] :where(progress, meter) {
|
|
1119
1120
|
width: 100%;
|
|
@@ -1173,6 +1174,301 @@
|
|
|
1173
1174
|
}
|
|
1174
1175
|
|
|
1175
1176
|
|
|
1177
|
+
/* styles/content-overflow.css */
|
|
1178
|
+
/* =========================================================
|
|
1179
|
+
UI Style Kit CSS - Shared Content Overflow Contract
|
|
1180
|
+
|
|
1181
|
+
Text-bearing layout wrappers and controls must shrink within
|
|
1182
|
+
their parent wrapper instead of widening the page.
|
|
1183
|
+
========================================================= */
|
|
1184
|
+
|
|
1185
|
+
@layer ui-style-kit.content_overflow {
|
|
1186
|
+
[data-ui][data-theme][data-mode] :where(
|
|
1187
|
+
h1,
|
|
1188
|
+
h2,
|
|
1189
|
+
h3,
|
|
1190
|
+
h4,
|
|
1191
|
+
h5,
|
|
1192
|
+
h6,
|
|
1193
|
+
p,
|
|
1194
|
+
a,
|
|
1195
|
+
li,
|
|
1196
|
+
dt,
|
|
1197
|
+
dd,
|
|
1198
|
+
figcaption,
|
|
1199
|
+
blockquote,
|
|
1200
|
+
label,
|
|
1201
|
+
legend,
|
|
1202
|
+
summary,
|
|
1203
|
+
code,
|
|
1204
|
+
kbd,
|
|
1205
|
+
samp,
|
|
1206
|
+
pre,
|
|
1207
|
+
th,
|
|
1208
|
+
td
|
|
1209
|
+
) {
|
|
1210
|
+
max-inline-size: 100%;
|
|
1211
|
+
min-inline-size: 0;
|
|
1212
|
+
overflow-wrap: anywhere;
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
[data-ui][data-theme][data-mode] :where(
|
|
1216
|
+
[class~="saas-page"],
|
|
1217
|
+
[class~="saas-container"],
|
|
1218
|
+
[class~="saas-section"],
|
|
1219
|
+
[class~="saas-stack"],
|
|
1220
|
+
[class~="saas-cluster"],
|
|
1221
|
+
[class~="saas-grid"],
|
|
1222
|
+
[class~="saas-split"],
|
|
1223
|
+
[class~="saas-surface"],
|
|
1224
|
+
[class~="saas-surface-sm"],
|
|
1225
|
+
[class~="saas-surface-lg"],
|
|
1226
|
+
[class~="saas-card"],
|
|
1227
|
+
[class~="saas-panel"],
|
|
1228
|
+
[class~="saas-toolbar"],
|
|
1229
|
+
[class~="saas-well"],
|
|
1230
|
+
[class~="saas-inset"],
|
|
1231
|
+
[class~="saas-field"],
|
|
1232
|
+
[class~="saas-alert"],
|
|
1233
|
+
[class~="saas-table-wrap"],
|
|
1234
|
+
[class~="saas-nav"],
|
|
1235
|
+
[class~="bento-page"],
|
|
1236
|
+
[class~="bento-container"],
|
|
1237
|
+
[class~="bento-section"],
|
|
1238
|
+
[class~="bento-stack"],
|
|
1239
|
+
[class~="bento-cluster"],
|
|
1240
|
+
[class~="bento-grid"],
|
|
1241
|
+
[class~="bento-split"],
|
|
1242
|
+
[class~="bento-surface"],
|
|
1243
|
+
[class~="bento-surface-sm"],
|
|
1244
|
+
[class~="bento-surface-lg"],
|
|
1245
|
+
[class~="bento-card"],
|
|
1246
|
+
[class~="bento-panel"],
|
|
1247
|
+
[class~="bento-toolbar"],
|
|
1248
|
+
[class~="bento-well"],
|
|
1249
|
+
[class~="bento-inset"],
|
|
1250
|
+
[class~="bento-field"],
|
|
1251
|
+
[class~="bento-alert"],
|
|
1252
|
+
[class~="bento-table-wrap"],
|
|
1253
|
+
[class~="bento-nav"],
|
|
1254
|
+
[class~="max-page"],
|
|
1255
|
+
[class~="max-container"],
|
|
1256
|
+
[class~="max-section"],
|
|
1257
|
+
[class~="max-stack"],
|
|
1258
|
+
[class~="max-cluster"],
|
|
1259
|
+
[class~="max-grid"],
|
|
1260
|
+
[class~="max-split"],
|
|
1261
|
+
[class~="max-surface"],
|
|
1262
|
+
[class~="max-surface-sm"],
|
|
1263
|
+
[class~="max-surface-lg"],
|
|
1264
|
+
[class~="max-card"],
|
|
1265
|
+
[class~="max-panel"],
|
|
1266
|
+
[class~="max-toolbar"],
|
|
1267
|
+
[class~="max-well"],
|
|
1268
|
+
[class~="max-inset"],
|
|
1269
|
+
[class~="max-field"],
|
|
1270
|
+
[class~="max-alert"],
|
|
1271
|
+
[class~="max-table-wrap"],
|
|
1272
|
+
[class~="max-nav"],
|
|
1273
|
+
[class~="bau-page"],
|
|
1274
|
+
[class~="bau-container"],
|
|
1275
|
+
[class~="bau-section"],
|
|
1276
|
+
[class~="bau-stack"],
|
|
1277
|
+
[class~="bau-cluster"],
|
|
1278
|
+
[class~="bau-grid"],
|
|
1279
|
+
[class~="bau-split"],
|
|
1280
|
+
[class~="bau-surface"],
|
|
1281
|
+
[class~="bau-surface-sm"],
|
|
1282
|
+
[class~="bau-surface-lg"],
|
|
1283
|
+
[class~="bau-card"],
|
|
1284
|
+
[class~="bau-panel"],
|
|
1285
|
+
[class~="bau-toolbar"],
|
|
1286
|
+
[class~="bau-well"],
|
|
1287
|
+
[class~="bau-inset"],
|
|
1288
|
+
[class~="bau-field"],
|
|
1289
|
+
[class~="bau-alert"],
|
|
1290
|
+
[class~="bau-table-wrap"],
|
|
1291
|
+
[class~="bau-nav"],
|
|
1292
|
+
[class~="tactile-page"],
|
|
1293
|
+
[class~="tactile-container"],
|
|
1294
|
+
[class~="tactile-section"],
|
|
1295
|
+
[class~="tactile-stack"],
|
|
1296
|
+
[class~="tactile-cluster"],
|
|
1297
|
+
[class~="tactile-grid"],
|
|
1298
|
+
[class~="tactile-split"],
|
|
1299
|
+
[class~="tactile-surface"],
|
|
1300
|
+
[class~="tactile-surface-sm"],
|
|
1301
|
+
[class~="tactile-surface-lg"],
|
|
1302
|
+
[class~="tactile-card"],
|
|
1303
|
+
[class~="tactile-panel"],
|
|
1304
|
+
[class~="tactile-toolbar"],
|
|
1305
|
+
[class~="tactile-well"],
|
|
1306
|
+
[class~="tactile-inset"],
|
|
1307
|
+
[class~="tactile-field"],
|
|
1308
|
+
[class~="tactile-alert"],
|
|
1309
|
+
[class~="tactile-table-wrap"],
|
|
1310
|
+
[class~="tactile-nav"],
|
|
1311
|
+
[class~="neo-page"],
|
|
1312
|
+
[class~="neo-container"],
|
|
1313
|
+
[class~="neo-section"],
|
|
1314
|
+
[class~="neo-stack"],
|
|
1315
|
+
[class~="neo-cluster"],
|
|
1316
|
+
[class~="neo-grid"],
|
|
1317
|
+
[class~="neo-split"],
|
|
1318
|
+
[class~="neo-surface"],
|
|
1319
|
+
[class~="neo-surface-sm"],
|
|
1320
|
+
[class~="neo-surface-lg"],
|
|
1321
|
+
[class~="neo-card"],
|
|
1322
|
+
[class~="neo-panel"],
|
|
1323
|
+
[class~="neo-toolbar"],
|
|
1324
|
+
[class~="neo-well"],
|
|
1325
|
+
[class~="neo-inset"],
|
|
1326
|
+
[class~="neo-field"],
|
|
1327
|
+
[class~="neo-alert"],
|
|
1328
|
+
[class~="neo-table-wrap"],
|
|
1329
|
+
[class~="neo-nav"],
|
|
1330
|
+
[class~="retro-page"],
|
|
1331
|
+
[class~="retro-container"],
|
|
1332
|
+
[class~="retro-section"],
|
|
1333
|
+
[class~="retro-stack"],
|
|
1334
|
+
[class~="retro-cluster"],
|
|
1335
|
+
[class~="retro-grid"],
|
|
1336
|
+
[class~="retro-split"],
|
|
1337
|
+
[class~="retro-surface"],
|
|
1338
|
+
[class~="retro-surface-sm"],
|
|
1339
|
+
[class~="retro-surface-lg"],
|
|
1340
|
+
[class~="retro-card"],
|
|
1341
|
+
[class~="retro-panel"],
|
|
1342
|
+
[class~="retro-toolbar"],
|
|
1343
|
+
[class~="retro-well"],
|
|
1344
|
+
[class~="retro-inset"],
|
|
1345
|
+
[class~="retro-field"],
|
|
1346
|
+
[class~="retro-alert"],
|
|
1347
|
+
[class~="retro-table-wrap"],
|
|
1348
|
+
[class~="retro-nav"],
|
|
1349
|
+
[class~="brutal-page"],
|
|
1350
|
+
[class~="brutal-container"],
|
|
1351
|
+
[class~="brutal-section"],
|
|
1352
|
+
[class~="brutal-stack"],
|
|
1353
|
+
[class~="brutal-cluster"],
|
|
1354
|
+
[class~="brutal-grid"],
|
|
1355
|
+
[class~="brutal-surface"],
|
|
1356
|
+
[class~="brutal-card"],
|
|
1357
|
+
[class~="brutal-panel"],
|
|
1358
|
+
[class~="brutal-toolbar"],
|
|
1359
|
+
[class~="brutal-well"],
|
|
1360
|
+
[class~="brutal-inset"],
|
|
1361
|
+
[class~="brutal-field"],
|
|
1362
|
+
[class~="brutal-alert"],
|
|
1363
|
+
[class~="brutal-table-wrap"],
|
|
1364
|
+
[class~="brutal-nav"],
|
|
1365
|
+
[class~="cyber-page"],
|
|
1366
|
+
[class~="cyber-container"],
|
|
1367
|
+
[class~="cyber-section"],
|
|
1368
|
+
[class~="cyber-stack"],
|
|
1369
|
+
[class~="cyber-cluster"],
|
|
1370
|
+
[class~="cyber-grid"],
|
|
1371
|
+
[class~="cyber-surface"],
|
|
1372
|
+
[class~="cyber-card"],
|
|
1373
|
+
[class~="cyber-panel"],
|
|
1374
|
+
[class~="cyber-toolbar"],
|
|
1375
|
+
[class~="cyber-well"],
|
|
1376
|
+
[class~="cyber-inset"],
|
|
1377
|
+
[class~="cyber-field"],
|
|
1378
|
+
[class~="cyber-alert"],
|
|
1379
|
+
[class~="cyber-table-wrap"],
|
|
1380
|
+
[class~="cyber-nav"],
|
|
1381
|
+
[class~="y2k-page"],
|
|
1382
|
+
[class~="y2k-container"],
|
|
1383
|
+
[class~="y2k-section"],
|
|
1384
|
+
[class~="y2k-stack"],
|
|
1385
|
+
[class~="y2k-cluster"],
|
|
1386
|
+
[class~="y2k-grid"],
|
|
1387
|
+
[class~="y2k-surface"],
|
|
1388
|
+
[class~="y2k-card"],
|
|
1389
|
+
[class~="y2k-panel"],
|
|
1390
|
+
[class~="y2k-toolbar"],
|
|
1391
|
+
[class~="y2k-well"],
|
|
1392
|
+
[class~="y2k-inset"],
|
|
1393
|
+
[class~="y2k-field"],
|
|
1394
|
+
[class~="y2k-alert"],
|
|
1395
|
+
[class~="y2k-table-wrap"],
|
|
1396
|
+
[class~="y2k-nav"],
|
|
1397
|
+
[class~="rg-page"],
|
|
1398
|
+
[class~="rg-container"],
|
|
1399
|
+
[class~="rg-section"],
|
|
1400
|
+
[class~="rg-stack"],
|
|
1401
|
+
[class~="rg-cluster"],
|
|
1402
|
+
[class~="rg-grid"],
|
|
1403
|
+
[class~="rg-surface"],
|
|
1404
|
+
[class~="rg-card"],
|
|
1405
|
+
[class~="rg-panel"],
|
|
1406
|
+
[class~="rg-toolbar"],
|
|
1407
|
+
[class~="rg-well"],
|
|
1408
|
+
[class~="rg-inset"],
|
|
1409
|
+
[class~="rg-field"],
|
|
1410
|
+
[class~="rg-alert"],
|
|
1411
|
+
[class~="rg-table-wrap"],
|
|
1412
|
+
[class~="rg-nav"]
|
|
1413
|
+
) {
|
|
1414
|
+
max-inline-size: 100%;
|
|
1415
|
+
min-inline-size: 0;
|
|
1416
|
+
overflow-wrap: anywhere;
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
[data-ui][data-theme][data-mode] :where(
|
|
1420
|
+
[class~="saas-button"],
|
|
1421
|
+
[class~="saas-icon-button"],
|
|
1422
|
+
[class~="saas-badge"],
|
|
1423
|
+
[class~="saas-nav-link"],
|
|
1424
|
+
[class~="bento-button"],
|
|
1425
|
+
[class~="bento-icon-button"],
|
|
1426
|
+
[class~="bento-badge"],
|
|
1427
|
+
[class~="bento-nav-link"],
|
|
1428
|
+
[class~="max-button"],
|
|
1429
|
+
[class~="max-icon-button"],
|
|
1430
|
+
[class~="max-badge"],
|
|
1431
|
+
[class~="max-nav-link"],
|
|
1432
|
+
[class~="bau-button"],
|
|
1433
|
+
[class~="bau-icon-button"],
|
|
1434
|
+
[class~="bau-badge"],
|
|
1435
|
+
[class~="bau-nav-link"],
|
|
1436
|
+
[class~="tactile-button"],
|
|
1437
|
+
[class~="tactile-icon-button"],
|
|
1438
|
+
[class~="tactile-badge"],
|
|
1439
|
+
[class~="tactile-nav-link"],
|
|
1440
|
+
[class~="neo-button"],
|
|
1441
|
+
[class~="neo-icon-button"],
|
|
1442
|
+
[class~="neo-badge"],
|
|
1443
|
+
[class~="neo-nav-link"],
|
|
1444
|
+
[class~="retro-button"],
|
|
1445
|
+
[class~="retro-icon-button"],
|
|
1446
|
+
[class~="retro-badge"],
|
|
1447
|
+
[class~="retro-nav-link"],
|
|
1448
|
+
[class~="brutal-button"],
|
|
1449
|
+
[class~="brutal-icon-button"],
|
|
1450
|
+
[class~="brutal-badge"],
|
|
1451
|
+
[class~="brutal-nav-link"],
|
|
1452
|
+
[class~="cyber-button"],
|
|
1453
|
+
[class~="cyber-icon-button"],
|
|
1454
|
+
[class~="cyber-badge"],
|
|
1455
|
+
[class~="cyber-nav-link"],
|
|
1456
|
+
[class~="y2k-button"],
|
|
1457
|
+
[class~="y2k-icon-button"],
|
|
1458
|
+
[class~="y2k-badge"],
|
|
1459
|
+
[class~="y2k-nav-link"],
|
|
1460
|
+
[class~="rg-button"],
|
|
1461
|
+
[class~="rg-icon-button"],
|
|
1462
|
+
[class~="rg-badge"],
|
|
1463
|
+
[class~="rg-nav-link"]
|
|
1464
|
+
) {
|
|
1465
|
+
max-inline-size: 100%;
|
|
1466
|
+
min-inline-size: 0;
|
|
1467
|
+
white-space: normal;
|
|
1468
|
+
}
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
|
|
1176
1472
|
/* styles/minimal-saas.css */
|
|
1177
1473
|
/* =========================================================
|
|
1178
1474
|
UI Style Kit CSS — Minimal SaaS Theme System
|
|
@@ -4546,7 +4842,7 @@
|
|
|
4546
4842
|
.brutal-button-primary:hover { background: var(--brutal-primary-hover); }
|
|
4547
4843
|
.brutal-button-secondary { background: var(--brutal-secondary); color: var(--brutal-on-secondary); box-shadow: 6px 6px 0 var(--brutal-primary); }
|
|
4548
4844
|
.brutal-button-secondary:hover { background: var(--brutal-secondary-hover); }
|
|
4549
|
-
.brutal-button-danger { background: var(--brutal-danger); color:
|
|
4845
|
+
.brutal-button-danger { background: var(--brutal-danger); color: var(--brutal-on-danger); }
|
|
4550
4846
|
.brutal-icon-button { width: 2.85rem; padding: 0; }
|
|
4551
4847
|
.brutal-button:disabled, .brutal-icon-button:disabled, .brutal-disabled { opacity: 0.55; cursor: not-allowed; transform: none; }
|
|
4552
4848
|
|
|
@@ -4567,9 +4863,9 @@
|
|
|
4567
4863
|
.brutal-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: 0.35rem 0.75rem; background: var(--brutal-surface-strong); color: var(--brutal-text); border: 3px solid var(--brutal-border); box-shadow: 4px 4px 0 var(--brutal-accent); font-size: 0.8rem; font-weight: 900; }
|
|
4568
4864
|
.brutal-badge-primary { background: var(--brutal-primary); color: var(--brutal-on-primary); }
|
|
4569
4865
|
.brutal-badge-secondary { background: var(--brutal-secondary); color: var(--brutal-on-secondary); }
|
|
4570
|
-
.brutal-badge-success { background: var(--brutal-success); color:
|
|
4571
|
-
.brutal-badge-warning { background: var(--brutal-warning); color:
|
|
4572
|
-
.brutal-badge-danger { background: var(--brutal-danger); color:
|
|
4866
|
+
.brutal-badge-success { background: var(--brutal-success); color: var(--brutal-on-success); }
|
|
4867
|
+
.brutal-badge-warning { background: var(--brutal-warning); color: var(--brutal-on-warning); }
|
|
4868
|
+
.brutal-badge-danger { background: var(--brutal-danger); color: var(--brutal-on-danger); }
|
|
4573
4869
|
|
|
4574
4870
|
.brutal-nav { display: flex; flex-wrap: wrap; gap: var(--brutal-space-2); padding: var(--brutal-space-2); background: var(--brutal-surface-strong); border: 3px solid var(--brutal-border); box-shadow: 8px 8px 0 var(--brutal-primary); }
|
|
4575
4871
|
.brutal-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: 0.65rem 1rem; color: var(--brutal-text); border: 3px solid transparent; font-weight: 900; text-decoration: none; }
|
|
@@ -4579,7 +4875,7 @@
|
|
|
4579
4875
|
/* Tooltips use compact contrast surfaces that stay readable across theme modes. */
|
|
4580
4876
|
.brutal-tooltip, [data-ui="brutalism"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) {
|
|
4581
4877
|
display: inline-flex; align-items: center; gap: .45rem; max-inline-size: 16rem; padding: .58rem .78rem;
|
|
4582
|
-
background: var(--brutal-warning); color:
|
|
4878
|
+
background: var(--brutal-warning); color: var(--brutal-on-warning); border: 3px solid var(--brutal-border); border-radius: 0; box-shadow: .28rem .28rem 0 var(--brutal-primary);
|
|
4583
4879
|
font-size: .82rem; font-weight: 950; line-height: 1.2; text-transform: uppercase; letter-spacing: .04em;
|
|
4584
4880
|
}
|
|
4585
4881
|
.brutal-tooltip-arrow { inline-size: .6rem; block-size: .6rem; flex: 0 0 auto; background: var(--brutal-danger); border: 3px solid var(--brutal-border); transform: rotate(45deg); }
|
|
@@ -4909,14 +5205,14 @@
|
|
|
4909
5205
|
|
|
4910
5206
|
.cyber-button, .cyber-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--cyber-space-2); min-height: 2.85rem; padding: 0.75rem 1.1rem; background: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / 0.22), rgb(var(--cyber-accent-rgb) / 0.1)), var(--cyber-surface); color: var(--cyber-text); border: 1px solid rgb(var(--cyber-primary-rgb) / 0.7); border-radius: var(--cyber-radius-xs); box-shadow: var(--cyber-shadow-sm), 0 0 18px var(--cyber-glow-primary); font: inherit; font-family: var(--cyber-font-display); font-weight: 900; letter-spacing: 0.09em; cursor: pointer; text-decoration: none; clip-path: polygon(0 0, calc(100% - .75rem) 0, 100% .75rem, 100% 100%, .75rem 100%, 0 calc(100% - .75rem)); transition: transform var(--cyber-transition-fast), box-shadow var(--cyber-transition-fast), background var(--cyber-transition-fast); }
|
|
4911
5207
|
.cyber-button:hover, .cyber-icon-button:hover { transform: translateY(-1px); box-shadow: var(--cyber-shadow-md), 0 0 26px var(--cyber-glow-primary); } .cyber-button:active, .cyber-icon-button:active, .cyber-button.is-active, .cyber-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 0 18px rgb(0 0 0 / 0.22), 0 0 18px var(--cyber-glow-primary); }
|
|
4912
|
-
.cyber-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-button-primary:hover { background: var(--cyber-primary-hover); } .cyber-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-secondary); color: var(--cyber-on-secondary); border-color: rgb(var(--cyber-secondary-rgb) / 0.7); } .cyber-button-secondary:hover { background: var(--cyber-secondary-hover); } .cyber-button-danger { background: var(--cyber-danger); color:
|
|
5208
|
+
.cyber-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-button-primary:hover { background: var(--cyber-primary-hover); } .cyber-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-secondary); color: var(--cyber-on-secondary); border-color: rgb(var(--cyber-secondary-rgb) / 0.7); } .cyber-button-secondary:hover { background: var(--cyber-secondary-hover); } .cyber-button-danger { background: var(--cyber-danger); color: var(--cyber-on-danger); } .cyber-icon-button { width: 2.85rem; padding: 0; }
|
|
4913
5209
|
|
|
4914
5210
|
.cyber-field { display: flex; flex-direction: column; gap: var(--cyber-space-2); } .cyber-label { font-family: var(--cyber-font-heading); text-transform: uppercase; letter-spacing: 0.14em; font-weight: 800; font-size: 0.8rem; }
|
|
4915
5211
|
.cyber-input, .cyber-textarea, .cyber-select { width: 100%; min-height: 2.9rem; padding: 0.8rem 1rem; background: var(--cyber-surface-soft); color: var(--cyber-text); border: 1px solid rgb(var(--cyber-border-rgb) / 0.58); border-radius: var(--cyber-radius-xs); box-shadow: inset 0 0 18px rgb(0 0 0 / 0.2); font: inherit; outline: none; } .cyber-textarea { min-height: 8rem; resize: vertical; }
|
|
4916
5212
|
.cyber-input:focus, .cyber-textarea:focus, .cyber-select:focus { border-color: var(--cyber-focus); box-shadow: 0 0 0 2px rgb(var(--cyber-focus-rgb) / 0.24), 0 0 24px rgb(var(--cyber-focus-rgb) / 0.24), inset 0 0 18px rgb(0 0 0 / 0.2); } .cyber-help-text { color: var(--cyber-text-muted); font-size: 0.9rem; }
|
|
4917
5213
|
|
|
4918
5214
|
.cyber-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: 0.35rem 0.75rem; background: var(--cyber-surface); color: var(--cyber-text); border: 1px solid rgb(var(--cyber-primary-rgb) / 0.7); box-shadow: 0 0 16px var(--cyber-glow-primary); font-size: 0.78rem; font-weight: 900; letter-spacing: 0.1em; clip-path: polygon(.5rem 0, 100% 0, calc(100% - .5rem) 100%, 0 100%); }
|
|
4919
|
-
.cyber-badge-primary { background: var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-badge-secondary { background: var(--cyber-secondary); color: var(--cyber-on-secondary); } .cyber-badge-success { background: var(--cyber-success); color:
|
|
5215
|
+
.cyber-badge-primary { background: var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-badge-secondary { background: var(--cyber-secondary); color: var(--cyber-on-secondary); } .cyber-badge-success { background: var(--cyber-success); color: var(--cyber-on-success); } .cyber-badge-warning { background: var(--cyber-warning); color: var(--cyber-on-warning); } .cyber-badge-danger { background: var(--cyber-danger); color: var(--cyber-on-danger); }
|
|
4920
5216
|
|
|
4921
5217
|
.cyber-nav { display: flex; flex-wrap: wrap; gap: var(--cyber-space-2); padding: var(--cyber-space-2); background: var(--cyber-surface); border: 1px solid var(--cyber-border); border-radius: var(--cyber-radius-md); box-shadow: var(--cyber-shadow-md), 0 0 22px var(--cyber-glow-primary); } .cyber-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: 0.65rem 1rem; color: var(--cyber-text-muted); border: 1px solid transparent; border-radius: var(--cyber-radius-xs); text-decoration: none; font-weight: 900; letter-spacing: 0.08em; } .cyber-nav-link:hover { color: var(--cyber-text); border-color: rgb(var(--cyber-primary-rgb) / 0.48); } .cyber-nav-link.is-active, .cyber-nav-link[aria-current="page"] { background: var(--cyber-primary); color: var(--cyber-on-primary); border-color: var(--cyber-primary); box-shadow: 0 0 18px var(--cyber-glow-primary); }
|
|
4922
5218
|
/* Tooltips use compact contrast surfaces that stay readable across theme modes. */
|
|
@@ -5260,11 +5556,11 @@
|
|
|
5260
5556
|
|
|
5261
5557
|
.y2k-button, .y2k-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--y2k-space-2); min-height: 2.85rem; padding: .75rem 1.15rem; background: linear-gradient(180deg, rgb(255 255 255 / .42), rgb(255 255 255 / .08)), var(--y2k-surface-strong); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .42); border-radius: var(--y2k-radius-pill); box-shadow: var(--y2k-shadow-sm), inset 0 1px 0 rgb(255 255 255 / .5); font: inherit; font-family: var(--y2k-font-display); font-weight: 900; letter-spacing: .02em; cursor: pointer; text-decoration: none; transition: transform var(--y2k-transition-fast), box-shadow var(--y2k-transition-fast), background var(--y2k-transition-fast); }
|
|
5262
5558
|
.y2k-button:hover, .y2k-icon-button:hover { transform: translateY(-2px); box-shadow: var(--y2k-shadow-md), 0 0 26px var(--y2k-glow-accent); } .y2k-button:active, .y2k-icon-button:active, .y2k-button.is-active, .y2k-button[aria-pressed="true"] { transform: translateY(1px) scale(.99); box-shadow: inset 0 8px 16px rgb(0 0 0 / .14); }
|
|
5263
|
-
.y2k-button-primary { background: linear-gradient(180deg, rgb(255 255 255 / .46), rgb(255 255 255 / .08)), var(--y2k-primary); color: var(--y2k-on-primary); } .y2k-button-primary:hover { background: linear-gradient(180deg, rgb(255 255 255 / .5), rgb(255 255 255 / .1)), var(--y2k-primary-hover); } .y2k-button-secondary { background: linear-gradient(180deg, rgb(255 255 255 / .46), rgb(255 255 255 / .08)), var(--y2k-secondary); color: var(--y2k-on-secondary); } .y2k-button-secondary:hover { background: var(--y2k-secondary-hover); } .y2k-button-danger { background: var(--y2k-danger); color:
|
|
5559
|
+
.y2k-button-primary { background: linear-gradient(180deg, rgb(255 255 255 / .46), rgb(255 255 255 / .08)), var(--y2k-primary); color: var(--y2k-on-primary); } .y2k-button-primary:hover { background: linear-gradient(180deg, rgb(255 255 255 / .5), rgb(255 255 255 / .1)), var(--y2k-primary-hover); } .y2k-button-secondary { background: linear-gradient(180deg, rgb(255 255 255 / .46), rgb(255 255 255 / .08)), var(--y2k-secondary); color: var(--y2k-on-secondary); } .y2k-button-secondary:hover { background: var(--y2k-secondary-hover); } .y2k-button-danger { background: var(--y2k-danger); color: var(--y2k-on-danger); } .y2k-icon-button { width: 2.85rem; padding: 0; }
|
|
5264
5560
|
|
|
5265
5561
|
.y2k-field { display: flex; flex-direction: column; gap: var(--y2k-space-2); } .y2k-label { font-weight: 900; letter-spacing: .04em; } .y2k-input, .y2k-textarea, .y2k-select { width: 100%; min-height: 2.9rem; padding: .8rem 1rem; background: linear-gradient(180deg, rgb(255 255 255 / .22), rgb(0 0 0 / .05)), var(--y2k-surface-soft); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .38); border-radius: var(--y2k-radius-lg); box-shadow: inset 0 6px 14px rgb(0 0 0 / .12); font: inherit; outline: none; } .y2k-textarea { min-height: 8rem; resize: vertical; } .y2k-input:focus, .y2k-textarea:focus, .y2k-select:focus { border-color: var(--y2k-focus); box-shadow: inset 0 6px 14px rgb(0 0 0 / .12), 0 0 0 3px rgb(var(--y2k-focus-rgb) / .25), 0 0 24px rgb(var(--y2k-focus-rgb) / .22); } .y2k-help-text { color: var(--y2k-text-muted); font-size: .9rem; }
|
|
5266
5562
|
|
|
5267
|
-
.y2k-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .8rem; background: linear-gradient(180deg, rgb(255 255 255 / .4), rgb(255 255 255 / .08)), var(--y2k-surface-strong); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .42); border-radius: var(--y2k-radius-pill); box-shadow: var(--y2k-shadow-sm); font-size: .78rem; font-weight: 900; } .y2k-badge-primary { background: var(--y2k-primary); color: var(--y2k-on-primary); } .y2k-badge-secondary { background: var(--y2k-secondary); color: var(--y2k-on-secondary); } .y2k-badge-success { background: var(--y2k-success); color:
|
|
5563
|
+
.y2k-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .8rem; background: linear-gradient(180deg, rgb(255 255 255 / .4), rgb(255 255 255 / .08)), var(--y2k-surface-strong); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .42); border-radius: var(--y2k-radius-pill); box-shadow: var(--y2k-shadow-sm); font-size: .78rem; font-weight: 900; } .y2k-badge-primary { background: var(--y2k-primary); color: var(--y2k-on-primary); } .y2k-badge-secondary { background: var(--y2k-secondary); color: var(--y2k-on-secondary); } .y2k-badge-success { background: var(--y2k-success); color: var(--y2k-on-success); } .y2k-badge-warning { background: var(--y2k-warning); color: var(--y2k-on-warning); } .y2k-badge-danger { background: var(--y2k-danger); color: var(--y2k-on-danger); }
|
|
5268
5564
|
.y2k-nav { display: flex; flex-wrap: wrap; gap: var(--y2k-space-2); padding: var(--y2k-space-2); background: linear-gradient(180deg, rgb(255 255 255 / .38), rgb(255 255 255 / .08)), var(--y2k-surface); border: 1px solid rgb(255 255 255 / .42); border-radius: var(--y2k-radius-pill); box-shadow: var(--y2k-shadow-md); } .y2k-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: .65rem 1rem; color: var(--y2k-text-muted); border-radius: var(--y2k-radius-pill); text-decoration: none; font-weight: 900; } .y2k-nav-link:hover { color: var(--y2k-text); background: rgb(255 255 255 / .16); } .y2k-nav-link.is-active, .y2k-nav-link[aria-current="page"] { background: var(--y2k-primary); color: var(--y2k-on-primary); box-shadow: 0 0 20px var(--y2k-glow-primary); }
|
|
5269
5565
|
/* Tooltips use compact contrast surfaces that stay readable across theme modes. */
|
|
5270
5566
|
.y2k-tooltip, [data-ui="y2k"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { display: inline-flex; align-items: center; gap: .45rem; max-inline-size: 16rem; padding: .62rem .9rem; background: radial-gradient(circle at 28% 18%, rgb(255 255 255 / .76), transparent 26%), linear-gradient(135deg, var(--y2k-primary), var(--y2k-secondary)); color: var(--y2k-on-primary); border: 1px solid rgb(255 255 255 / .54); border-radius: var(--y2k-radius-pill); box-shadow: var(--y2k-shadow-md), 0 0 1.1rem var(--y2k-glow-primary); font-size: .82rem; font-weight: 900; line-height: 1.3; }
|
|
@@ -5607,11 +5903,11 @@
|
|
|
5607
5903
|
.rg-inset, .rg-well { background: linear-gradient(180deg, rgb(0 0 0 / .08), rgb(255 255 255 / .04)), var(--rg-surface-soft); border: 1px solid rgb(var(--rg-border-rgb) / .36); border-radius: var(--rg-radius-lg); box-shadow: inset 0 8px 22px rgb(0 0 0 / .16); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); } .rg-well { padding: var(--rg-space-5); }
|
|
5608
5904
|
|
|
5609
5905
|
.rg-button, .rg-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--rg-space-2); min-height: 2.85rem; padding: .75rem 1.1rem; background: linear-gradient(135deg, rgb(255 255 255 / .24), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .56); border-top-color: rgb(255 255 255 / .32); border-radius: var(--rg-radius-md); box-shadow: var(--rg-shadow-sm); -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); font: inherit; font-family: var(--rg-font-display); font-weight: 900; letter-spacing: .08em; cursor: pointer; text-decoration: none; transition: transform var(--rg-transition-fast), box-shadow var(--rg-transition-fast), background var(--rg-transition-fast), border-color var(--rg-transition-fast); }
|
|
5610
|
-
.rg-button:hover, .rg-icon-button:hover { transform: translateY(-2px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); } .rg-button:active, .rg-icon-button:active, .rg-button.is-active, .rg-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 8px 18px rgb(0 0 0 / .18), 0 0 18px var(--rg-glow-primary); } .rg-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-primary); color: var(--rg-on-primary); border-color: rgb(var(--rg-primary-rgb) / .72); } .rg-button-primary:hover { background: var(--rg-primary-hover); } .rg-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-secondary); color: var(--rg-on-secondary); border-color: rgb(var(--rg-secondary-rgb) / .72); } .rg-button-secondary:hover { background: var(--rg-secondary-hover); } .rg-button-danger { background: var(--rg-danger); color:
|
|
5906
|
+
.rg-button:hover, .rg-icon-button:hover { transform: translateY(-2px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); } .rg-button:active, .rg-icon-button:active, .rg-button.is-active, .rg-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 8px 18px rgb(0 0 0 / .18), 0 0 18px var(--rg-glow-primary); } .rg-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-primary); color: var(--rg-on-primary); border-color: rgb(var(--rg-primary-rgb) / .72); } .rg-button-primary:hover { background: var(--rg-primary-hover); } .rg-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-secondary); color: var(--rg-on-secondary); border-color: rgb(var(--rg-secondary-rgb) / .72); } .rg-button-secondary:hover { background: var(--rg-secondary-hover); } .rg-button-danger { background: var(--rg-danger); color: var(--rg-on-danger); } .rg-icon-button { width: 2.85rem; padding: 0; }
|
|
5611
5907
|
|
|
5612
5908
|
.rg-field { display: flex; flex-direction: column; gap: var(--rg-space-2); } .rg-label { font-family: var(--rg-font-heading); text-transform: uppercase; letter-spacing: .12em; font-weight: 900; font-size: .8rem; } .rg-input, .rg-textarea, .rg-select { width: 100%; min-height: 2.9rem; padding: .8rem 1rem; background: linear-gradient(180deg, rgb(255 255 255 / .06), rgb(0 0 0 / .08)), var(--rg-surface-soft); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .44); border-radius: var(--rg-radius-md); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14); font: inherit; outline: none; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); } .rg-textarea { min-height: 8rem; resize: vertical; } .rg-input:focus, .rg-textarea:focus, .rg-select:focus { border-color: var(--rg-focus); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14), 0 0 0 3px rgb(var(--rg-focus-rgb) / .24), 0 0 26px rgb(var(--rg-focus-rgb) / .22); } .rg-help-text { color: var(--rg-text-muted); font-size: .9rem; }
|
|
5613
5909
|
|
|
5614
|
-
.rg-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .75rem; background: linear-gradient(135deg, rgb(255 255 255 / .2), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .5); border-radius: var(--rg-radius-pill); box-shadow: var(--rg-shadow-sm); font-size: .78rem; font-weight: 900; letter-spacing: .08em; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .rg-badge-primary { background: var(--rg-primary); color: var(--rg-on-primary); } .rg-badge-secondary { background: var(--rg-secondary); color: var(--rg-on-secondary); } .rg-badge-success { background: var(--rg-success); color:
|
|
5910
|
+
.rg-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .75rem; background: linear-gradient(135deg, rgb(255 255 255 / .2), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .5); border-radius: var(--rg-radius-pill); box-shadow: var(--rg-shadow-sm); font-size: .78rem; font-weight: 900; letter-spacing: .08em; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .rg-badge-primary { background: var(--rg-primary); color: var(--rg-on-primary); } .rg-badge-secondary { background: var(--rg-secondary); color: var(--rg-on-secondary); } .rg-badge-success { background: var(--rg-success); color: var(--rg-on-success); } .rg-badge-warning { background: var(--rg-warning); color: var(--rg-on-warning); } .rg-badge-danger { background: var(--rg-danger); color: var(--rg-on-danger); }
|
|
5615
5911
|
.rg-nav { display: flex; flex-wrap: wrap; gap: var(--rg-space-2); padding: var(--rg-space-2); background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); } .rg-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: .65rem 1rem; color: var(--rg-text-muted); border: 1px solid transparent; border-radius: var(--rg-radius-pill); text-decoration: none; font-weight: 900; letter-spacing: .08em; } .rg-nav-link:hover { color: var(--rg-text); background: rgb(255 255 255 / .1); border-color: rgb(var(--rg-primary-rgb) / .36); } .rg-nav-link.is-active, .rg-nav-link[aria-current="page"] { background: var(--rg-primary); color: var(--rg-on-primary); box-shadow: 0 0 22px var(--rg-glow-primary); }
|
|
5616
5912
|
/* Tooltips use compact contrast surfaces that stay readable across theme modes. */
|
|
5617
5913
|
.rg-tooltip, [data-ui="retro-glass"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { display: inline-flex; align-items: center; gap: .45rem; max-inline-size: 16rem; padding: .62rem .88rem; background: linear-gradient(135deg, rgb(255 255 255 / .28), rgb(255 255 255 / .06)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(255 255 255 / .34); border-radius: 38% 62% 48% 52% / 52% 42% 58% 48%; box-shadow: var(--rg-shadow-md), 0 0 1.25rem var(--rg-glow-primary); -webkit-backdrop-filter: blur(14px) saturate(145%); backdrop-filter: blur(14px) saturate(145%); font-size: .82rem; font-weight: 900; line-height: 1.3; letter-spacing: .04em; }
|