@nightshadeui/stylesheets 2.6.1 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +57 -0
- package/index.css +1 -0
- package/modules/kbd/kbd.css +1 -1
- package/package.json +1 -1
- package/variables/base.css +9 -28
- package/variables/font.css +7 -7
- package/variables/input-sizes.css +95 -0
- package/variables/ui.css +1 -1
package/AGENTS.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# AGENTS Guide: @nightshadeui/stylesheets
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
`@nightshadeui/stylesheets` defines Nightshade’s CSS foundation: variables, semantic mappings, base element styles, utility classes, and optional modules.
|
|
6
|
+
|
|
7
|
+
## Shared Repository Guidelines (Required)
|
|
8
|
+
|
|
9
|
+
All edits in this package must follow the shared repository guidelines in `docs/GUIDELINES.md`.
|
|
10
|
+
|
|
11
|
+
## Existing Architecture
|
|
12
|
+
|
|
13
|
+
- Entry: `index.css` imports all core variable and utility files.
|
|
14
|
+
- Layering: imports use `layer(nightshade)` and should stay consistent.
|
|
15
|
+
- Modules: more opinionated extras not included in core, those are exported separately and must be imported explicitly by the users.
|
|
16
|
+
- Package exports:
|
|
17
|
+
- `.` -> `index.css`
|
|
18
|
+
- `./dynamic-palette`
|
|
19
|
+
- `./kbd`
|
|
20
|
+
- `./transitions`
|
|
21
|
+
|
|
22
|
+
## Variable System Conventions
|
|
23
|
+
|
|
24
|
+
- Variables are layered and delegated, not flat.
|
|
25
|
+
- Main naming families:
|
|
26
|
+
- `--color-<token>-<scale>` for color ramps (`base`, `primary`, etc.; scales like `0..950`).
|
|
27
|
+
- `--ui-<token>-*` for semantic UI assignments (`surface`, `border`, `focus`, etc.).
|
|
28
|
+
- `--input-*` for sizing/radius/input rhythm.
|
|
29
|
+
- `--sp*` for spacing scale.
|
|
30
|
+
- UI classes map semantic token sets into generic active vars:
|
|
31
|
+
- `.ui-base`, `.ui-primary`, etc. provide `--ui-*` values.
|
|
32
|
+
- Size classes map input metrics:
|
|
33
|
+
- `.input-size-xs|s|m|l|xl`.
|
|
34
|
+
|
|
35
|
+
## Utility/Module Conventions
|
|
36
|
+
|
|
37
|
+
- `commons.css`: global reset/base semantics.
|
|
38
|
+
- `util.css`: small, single-purpose utility classes.
|
|
39
|
+
- `modules/*`: opt-in extras with dedicated entrypoints and index files.
|
|
40
|
+
|
|
41
|
+
## Dynamic Palette Conventions
|
|
42
|
+
|
|
43
|
+
- Dynamic palette uses OKLCH for generating color ramps using a few input variables.
|
|
44
|
+
- Those are generated at runtime, thus Browser must support OKLCH. Because of this it's not included by default.
|
|
45
|
+
- A recommended approach for most users is to use a static palette generator.
|
|
46
|
+
|
|
47
|
+
## Editing Rules
|
|
48
|
+
|
|
49
|
+
- Use existing variable naming schema.
|
|
50
|
+
- Use existing token vocabulary.
|
|
51
|
+
- Preserve existing naming and token vocabulary; avoid parallel alias systems.
|
|
52
|
+
- If adding a new module, export it in `package.json` and include an `index.css` entry for that module.
|
|
53
|
+
- Keep classes composable and low-specificity.
|
|
54
|
+
|
|
55
|
+
## Useful Commands
|
|
56
|
+
|
|
57
|
+
- Build is consumed via workspace build: `npm run build`
|
package/index.css
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
@import './variables/font.css' layer(nightshade);
|
|
5
5
|
@import './variables/ui.css' layer(nightshade);
|
|
6
6
|
@import './variables/colors.css' layer(nightshade);
|
|
7
|
+
@import './variables/input-sizes.css' layer(nightshade);
|
|
7
8
|
|
|
8
9
|
@import './commons.css' layer(nightshade);
|
|
9
10
|
@import './util.css' layer(nightshade);
|
package/modules/kbd/kbd.css
CHANGED
package/package.json
CHANGED
package/variables/base.css
CHANGED
|
@@ -1,42 +1,23 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
|
|
3
|
+
/* Main colors */
|
|
4
|
+
|
|
3
5
|
--base-color: var(--ui-base-surface-color);
|
|
4
6
|
--text-color: var(--ui-base-text-color);
|
|
5
7
|
--text-color-subtle: var(--color-base-600);
|
|
6
8
|
--text-color-sublime: var(--color-base-500);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
--border-radius: var(--border-radius-s);
|
|
11
|
-
|
|
12
|
-
--border-radius-none: 0;
|
|
13
|
-
--border-radius-xxs: 1px;
|
|
14
|
-
--border-radius-xs: 2px;
|
|
15
|
-
--border-radius-s: 4px;
|
|
16
|
-
--border-radius-m: 8px;
|
|
17
|
-
--border-radius-l: 16px;
|
|
18
|
-
--border-radius-xl: 32px;
|
|
19
|
-
--border-radius-xxl: 64px;
|
|
20
|
-
|
|
9
|
+
--overlay-surface: light-dark(rgba(0,0,0,.1), rgba(0,0,0,.2));
|
|
10
|
+
|
|
21
11
|
/* Shadows */
|
|
22
|
-
|
|
12
|
+
|
|
23
13
|
--shadow-color-light: light-dark(rgba(0,0,0,.1), rgba(0,0,0,.2));
|
|
24
14
|
--shadow-color-medium: light-dark(rgba(0,0,0,.2), rgba(0,0,0,.4));
|
|
25
15
|
--shadow-color-heavy: light-dark(rgba(0,0,0,.3), rgba(0,0,0,.6));
|
|
26
|
-
|
|
16
|
+
|
|
27
17
|
/* Inputs */
|
|
28
|
-
|
|
29
|
-
--
|
|
30
|
-
--input-
|
|
31
|
-
--input-size-s: var(--sp3);
|
|
32
|
-
--input-size-m: var(--sp4);
|
|
33
|
-
--input-size-l: var(--sp5);
|
|
34
|
-
--input-size-xl: var(--sp6);
|
|
35
|
-
|
|
36
|
-
--input-radius: var(--border-radius-s);
|
|
37
|
-
--input-radius-round: var(--border-radius-l);
|
|
38
|
-
--input-radius-full: var(--border-radius-xl);
|
|
39
|
-
|
|
18
|
+
|
|
19
|
+
--border-radius: 4px;
|
|
20
|
+
--input-radius: var(--border-radius);
|
|
40
21
|
--input-border-size: 1px;
|
|
41
22
|
--input-outline-size: 2px;
|
|
42
23
|
--input-outline-offset: 0;
|
package/variables/font.css
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
--font-monospace: monospace;
|
|
5
5
|
|
|
6
6
|
--font-size: var(--font-size-m);
|
|
7
|
-
--font-size-xxs:
|
|
8
|
-
--font-size-xs:
|
|
9
|
-
--font-size-s:
|
|
7
|
+
--font-size-xxs: calc(var(--font-size-m) - 6px);
|
|
8
|
+
--font-size-xs: calc(var(--font-size-m) - 4px);
|
|
9
|
+
--font-size-s: calc(var(--font-size-m) - 2px);
|
|
10
10
|
--font-size-m: 16px;
|
|
11
|
-
--font-size-l:
|
|
12
|
-
--font-size-xl:
|
|
13
|
-
--font-size-xxl:
|
|
14
|
-
--font-size-xxxl:
|
|
11
|
+
--font-size-l: calc(var(--font-size-m) * 1.25);
|
|
12
|
+
--font-size-xl: calc(var(--font-size-m) * 1.5);
|
|
13
|
+
--font-size-xxl: calc(var(--font-size-m) * 1.875);
|
|
14
|
+
--font-size-xxxl: calc(var(--font-size-m) * 2.25);
|
|
15
15
|
|
|
16
16
|
--font-weight: var(--font-weight-normal);
|
|
17
17
|
--font-weight-thin: 200;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
|
|
3
|
+
/* Default size */
|
|
4
|
+
|
|
5
|
+
--input-height: var(--input-size-m-height);
|
|
6
|
+
--input-font-size: var(--font-size-m);
|
|
7
|
+
--input-padding-md: var(--sp1-5);
|
|
8
|
+
--input-padding-sm: var(--sp1);
|
|
9
|
+
--input-gap: var(--sp1);
|
|
10
|
+
|
|
11
|
+
--input-radius-round: var(--border-radius-l);
|
|
12
|
+
|
|
13
|
+
/* Sizes */
|
|
14
|
+
|
|
15
|
+
--input-size-xs-height: var(--sp2-5);
|
|
16
|
+
--input-size-xs-font-size: var(--font-size-xs);
|
|
17
|
+
--input-size-xs-padding-md: var(--sp1);
|
|
18
|
+
--input-size-xs-padding-sm: var(--sp0-25);
|
|
19
|
+
--input-size-xs-gap: var(--sp0-25);
|
|
20
|
+
--input-size-xs-radius-round: var(--sp1-5);
|
|
21
|
+
|
|
22
|
+
--input-size-s-height: var(--sp3);
|
|
23
|
+
--input-size-s-font-size: var(--font-size-s);
|
|
24
|
+
--input-size-s-padding-md: var(--sp1);
|
|
25
|
+
--input-size-s-padding-sm: var(--sp0-5);
|
|
26
|
+
--input-size-s-gap: var(--sp0-5);
|
|
27
|
+
--input-size-s-radius-round: var(--sp1-5);
|
|
28
|
+
|
|
29
|
+
--input-size-m-height: var(--sp4);
|
|
30
|
+
--input-size-m-font-size: var(--font-size-m);
|
|
31
|
+
--input-size-m-padding-md: var(--sp1-5);
|
|
32
|
+
--input-size-m-padding-sm: var(--sp1);
|
|
33
|
+
--input-size-m-gap: var(--sp1);
|
|
34
|
+
--input-size-m-radius-round: var(--sp2);
|
|
35
|
+
|
|
36
|
+
--input-size-l-height: var(--sp5);
|
|
37
|
+
--input-size-l-font-size: var(--font-size-m);
|
|
38
|
+
--input-size-l-padding-md: var(--sp2);
|
|
39
|
+
--input-size-l-padding-sm: var(--sp1);
|
|
40
|
+
--input-size-l-gap: var(--sp1);
|
|
41
|
+
--input-size-l-radius-round: var(--sp2-5);
|
|
42
|
+
|
|
43
|
+
--input-size-xl-height: var(--sp6);
|
|
44
|
+
--input-size-xl-font-size: var(--font-size-l);
|
|
45
|
+
--input-size-xl-padding-md: var(--sp2-5);
|
|
46
|
+
--input-size-xl-padding-sm: var(--sp1-5);
|
|
47
|
+
--input-size-xl-gap: var(--sp1-5);
|
|
48
|
+
--input-size-xl-radius-round: var(--sp3);
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.input-size-xs {
|
|
53
|
+
--input-height: var(--input-size-xs-height);
|
|
54
|
+
--input-font-size: var(--input-size-xs-font-size);
|
|
55
|
+
--input-padding-md: var(--input-size-xs-padding-md);
|
|
56
|
+
--input-padding-sm: var(--input-size-xs-padding-sm);
|
|
57
|
+
--input-gap: var(--input-size-xs-gap);
|
|
58
|
+
--input-radius-round: var(--input-size-xs-radius-round);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.input-size-s, .input-size-small {
|
|
62
|
+
--input-height: var(--input-size-s-height);
|
|
63
|
+
--input-font-size: var(--input-size-s-font-size);
|
|
64
|
+
--input-padding-md: var(--input-size-s-padding-md);
|
|
65
|
+
--input-padding-sm: var(--input-size-s-padding-sm);
|
|
66
|
+
--input-gap: var(--input-size-s-gap);
|
|
67
|
+
--input-radius-round: var(--input-size-s-radius-round);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.input-size-m, .input-size-medium, .input-size-normal {
|
|
71
|
+
--input-height: var(--input-size-m-height);
|
|
72
|
+
--input-font-size: var(--input-size-m-font-size);
|
|
73
|
+
--input-padding-md: var(--input-size-m-padding-md);
|
|
74
|
+
--input-padding-sm: var(--input-size-m-padding-sm);
|
|
75
|
+
--input-gap: var(--input-size-m-gap);
|
|
76
|
+
--input-radius-round: var(--input-size-m-radius-round);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.input-size-l, .input-size-large {
|
|
80
|
+
--input-height: var(--input-size-l-height);
|
|
81
|
+
--input-font-size: var(--input-size-l-font-size);
|
|
82
|
+
--input-padding-md: var(--input-size-l-padding-md);
|
|
83
|
+
--input-padding-sm: var(--input-size-l-padding-sm);
|
|
84
|
+
--input-gap: var(--input-size-l-gap);
|
|
85
|
+
--input-radius-round: var(--input-size-l-radius-round);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.input-size-xl {
|
|
89
|
+
--input-height: var(--input-size-xl-height);
|
|
90
|
+
--input-font-size: var(--input-size-xl-font-size);
|
|
91
|
+
--input-padding-md: var(--input-size-xl-padding-md);
|
|
92
|
+
--input-padding-sm: var(--input-size-xl-padding-sm);
|
|
93
|
+
--input-gap: var(--input-size-xl-gap);
|
|
94
|
+
--input-radius-round: var(--input-size-xl-radius-round);
|
|
95
|
+
}
|
package/variables/ui.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
--ui-base-surface-top-color: light-dark(var(--color-base-0), var(--color-base-200));
|
|
6
6
|
--ui-base-surface-bottom-color: light-dark(var(--color-base-200), var(--color-base-0));
|
|
7
7
|
--ui-base-surface-text-color: var(--color-base-text);
|
|
8
|
-
--ui-base-surface-text-shadow-color: var(--color-base-
|
|
8
|
+
--ui-base-surface-text-shadow-color: var(--color-base-50);
|
|
9
9
|
--ui-base-border-color: var(--color-base-400);
|
|
10
10
|
--ui-base-shadow-color: var(--shadow-color-medium);
|
|
11
11
|
--ui-base-focus-light-color: light-dark(var(--color-secondary-300), var(--color-secondary-700));
|