@rackbops/styles 0.1.0 → 0.1.2
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/all.css +5 -0
- package/amber-ember/base.css +61 -0
- package/amber-ember/components/alert.css +30 -0
- package/amber-ember/components/badge.css +32 -0
- package/amber-ember/components/button.css +90 -0
- package/amber-ember/components/card.css +24 -0
- package/amber-ember/components/dialog.css +33 -0
- package/amber-ember/components/form.css +72 -0
- package/amber-ember/components/link.css +47 -0
- package/amber-ember/components/log.css +19 -0
- package/amber-ember/components/muted.css +7 -0
- package/amber-ember/components/nav-rail.css +14 -0
- package/amber-ember/components/pre.css +13 -0
- package/amber-ember/components/progress.css +42 -0
- package/amber-ember/components/stepper.css +87 -0
- package/amber-ember/components/table.css +50 -0
- package/amber-ember/components/tabs.css +46 -0
- package/amber-ember/design.md +78 -0
- package/amber-ember/index.css +18 -0
- package/amber-ember/tokens.css +72 -0
- package/amber-hearth/base.css +61 -0
- package/amber-hearth/components/alert.css +30 -0
- package/amber-hearth/components/badge.css +32 -0
- package/amber-hearth/components/button.css +90 -0
- package/amber-hearth/components/card.css +24 -0
- package/amber-hearth/components/dialog.css +33 -0
- package/amber-hearth/components/form.css +72 -0
- package/amber-hearth/components/link.css +47 -0
- package/amber-hearth/components/log.css +19 -0
- package/amber-hearth/components/muted.css +7 -0
- package/amber-hearth/components/nav-rail.css +14 -0
- package/amber-hearth/components/pre.css +13 -0
- package/amber-hearth/components/progress.css +42 -0
- package/amber-hearth/components/stepper.css +87 -0
- package/amber-hearth/components/table.css +50 -0
- package/amber-hearth/components/tabs.css +46 -0
- package/amber-hearth/design.md +146 -0
- package/amber-hearth/index.css +18 -0
- package/amber-hearth/tokens.css +77 -0
- package/arcane-obsidian/base.css +20 -0
- package/arcane-obsidian/components/button.css +15 -0
- package/arcane-obsidian/components/log.css +19 -0
- package/arcane-obsidian/components/muted.css +7 -0
- package/arcane-obsidian/components/nav-rail.css +14 -0
- package/arcane-obsidian/components/pre.css +13 -0
- package/arcane-obsidian/components/stepper.css +87 -0
- package/arcane-obsidian/components/table.css +14 -0
- package/arcane-obsidian/design.md +30 -2
- package/arcane-obsidian/index.css +5 -0
- package/arcane-parchment/base.css +20 -0
- package/arcane-parchment/components/button.css +15 -0
- package/arcane-parchment/components/log.css +19 -0
- package/arcane-parchment/components/muted.css +7 -0
- package/arcane-parchment/components/nav-rail.css +14 -0
- package/arcane-parchment/components/pre.css +13 -0
- package/arcane-parchment/components/stepper.css +87 -0
- package/arcane-parchment/components/table.css +14 -0
- package/arcane-parchment/design.md +10 -6
- package/arcane-parchment/index.css +5 -0
- package/concrete-signal/base.css +57 -0
- package/concrete-signal/components/alert.css +44 -0
- package/concrete-signal/components/badge.css +38 -0
- package/concrete-signal/components/button.css +98 -0
- package/concrete-signal/components/card.css +21 -0
- package/concrete-signal/components/dialog.css +33 -0
- package/concrete-signal/components/form.css +138 -0
- package/concrete-signal/components/link.css +44 -0
- package/concrete-signal/components/log.css +19 -0
- package/concrete-signal/components/muted.css +7 -0
- package/concrete-signal/components/nav-rail.css +15 -0
- package/concrete-signal/components/pre.css +14 -0
- package/concrete-signal/components/progress.css +44 -0
- package/concrete-signal/components/stepper.css +83 -0
- package/concrete-signal/components/table.css +48 -0
- package/concrete-signal/components/tabs.css +49 -0
- package/concrete-signal/design.md +171 -0
- package/concrete-signal/index.css +18 -0
- package/concrete-signal/tokens.css +75 -0
- package/concrete-signal-light/base.css +57 -0
- package/concrete-signal-light/components/alert.css +44 -0
- package/concrete-signal-light/components/badge.css +38 -0
- package/concrete-signal-light/components/button.css +98 -0
- package/concrete-signal-light/components/card.css +21 -0
- package/concrete-signal-light/components/dialog.css +33 -0
- package/concrete-signal-light/components/form.css +138 -0
- package/concrete-signal-light/components/link.css +44 -0
- package/concrete-signal-light/components/log.css +19 -0
- package/concrete-signal-light/components/muted.css +7 -0
- package/concrete-signal-light/components/nav-rail.css +15 -0
- package/concrete-signal-light/components/pre.css +14 -0
- package/concrete-signal-light/components/progress.css +44 -0
- package/concrete-signal-light/components/stepper.css +84 -0
- package/concrete-signal-light/components/table.css +48 -0
- package/concrete-signal-light/components/tabs.css +49 -0
- package/concrete-signal-light/design.md +82 -0
- package/concrete-signal-light/index.css +18 -0
- package/concrete-signal-light/tokens.css +75 -0
- package/css-side-effect.d.ts +5 -0
- package/luminous-precision/base.css +12 -0
- package/luminous-precision/components/button.css +25 -0
- package/luminous-precision/components/link.css +8 -0
- package/luminous-precision/components/log.css +19 -0
- package/luminous-precision/components/muted.css +7 -0
- package/luminous-precision/components/nav-rail.css +17 -0
- package/luminous-precision/components/pre.css +14 -0
- package/luminous-precision/components/progress.css +14 -5
- package/luminous-precision/components/stepper.css +89 -0
- package/luminous-precision/components/table.css +17 -0
- package/luminous-precision/design.md +44 -9
- package/luminous-precision/index.css +5 -0
- package/manifest.json +20 -0
- package/mono-field/base.css +59 -0
- package/mono-field/components/alert.css +35 -0
- package/mono-field/components/badge.css +34 -0
- package/mono-field/components/button.css +101 -0
- package/mono-field/components/card.css +20 -0
- package/mono-field/components/dialog.css +34 -0
- package/mono-field/components/form.css +91 -0
- package/mono-field/components/link.css +47 -0
- package/mono-field/components/log.css +19 -0
- package/mono-field/components/muted.css +7 -0
- package/mono-field/components/nav-rail.css +14 -0
- package/mono-field/components/pre.css +13 -0
- package/mono-field/components/progress.css +42 -0
- package/mono-field/components/stepper.css +86 -0
- package/mono-field/components/table.css +47 -0
- package/mono-field/components/tabs.css +48 -0
- package/mono-field/design.md +151 -0
- package/mono-field/index.css +18 -0
- package/mono-field/tokens.css +76 -0
- package/neon-butterfly/base.css +18 -0
- package/neon-butterfly/components/button.css +26 -0
- package/neon-butterfly/components/link.css +10 -0
- package/neon-butterfly/components/log.css +19 -0
- package/neon-butterfly/components/muted.css +7 -0
- package/neon-butterfly/components/nav-rail.css +17 -0
- package/neon-butterfly/components/pre.css +13 -0
- package/neon-butterfly/components/progress.css +14 -5
- package/neon-butterfly/components/stepper.css +89 -0
- package/neon-butterfly/components/table.css +15 -0
- package/neon-butterfly/design.md +40 -4
- package/neon-butterfly/index.css +5 -0
- package/package.json +61 -32
- package/rackbops-noir/base.css +11 -2
- package/rackbops-noir/components/button.css +16 -0
- package/rackbops-noir/components/card.css +9 -0
- package/rackbops-noir/components/log.css +19 -0
- package/rackbops-noir/components/muted.css +7 -0
- package/rackbops-noir/components/nav-rail.css +14 -0
- package/rackbops-noir/components/pre.css +13 -0
- package/rackbops-noir/components/principle.css +1 -0
- package/rackbops-noir/components/stepper.css +87 -0
- package/rackbops-noir/components/table.css +18 -0
- package/rackbops-noir/design.md +6 -3
- package/rackbops-noir/index.css +5 -0
- package/rackbops-studio/base.css +11 -2
- package/rackbops-studio/components/button.css +16 -0
- package/rackbops-studio/components/card.css +9 -0
- package/rackbops-studio/components/log.css +19 -0
- package/rackbops-studio/components/muted.css +7 -0
- package/rackbops-studio/components/nav-rail.css +14 -0
- package/rackbops-studio/components/pre.css +13 -0
- package/rackbops-studio/components/principle.css +1 -0
- package/rackbops-studio/components/stepper.css +87 -0
- package/rackbops-studio/components/table.css +18 -0
- package/rackbops-studio/design.md +29 -2
- package/rackbops-studio/index.css +5 -0
- package/summer-cloud/base.css +13 -1
- package/summer-cloud/components/button.css +17 -0
- package/summer-cloud/components/log.css +19 -0
- package/summer-cloud/components/muted.css +8 -0
- package/summer-cloud/components/nav-rail.css +17 -0
- package/summer-cloud/components/pre.css +16 -0
- package/summer-cloud/components/progress.css +14 -8
- package/summer-cloud/components/stepper.css +90 -0
- package/summer-cloud/components/table.css +11 -0
- package/summer-cloud/design.md +41 -3
- package/summer-cloud/index.css +5 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* summer-cloud — muted / empty-state text
|
|
2
|
+
* Faint secondary text — captions, meta, "No results yet." style empty
|
|
3
|
+
* states. Italic gives it a friendly, soft touch consistent with the
|
|
4
|
+
* theme's airy, optimistic voice. */
|
|
5
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-muted {
|
|
6
|
+
color: var(--rb-text-faint);
|
|
7
|
+
font-style: italic;
|
|
8
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* summer-cloud — nav rail (vertical sidebar container)
|
|
2
|
+
* Flush edge chrome, not a floating card: fixed-width flex column, the same
|
|
3
|
+
* glass panel + blur as .rb-card, a hairline right edge. Composes with
|
|
4
|
+
* .rb-link for items -- active/hover are entirely that component's own
|
|
5
|
+
* tokens, nothing new here. */
|
|
6
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-nav-rail {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
gap: var(--rb-space-1);
|
|
11
|
+
width: 14rem;
|
|
12
|
+
padding: var(--rb-space-3);
|
|
13
|
+
background: var(--rb-surface-glass);
|
|
14
|
+
border-right: 1px solid var(--rb-border);
|
|
15
|
+
backdrop-filter: blur(var(--rb-blur));
|
|
16
|
+
-webkit-backdrop-filter: blur(var(--rb-blur));
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* summer-cloud — command / log block
|
|
2
|
+
* Styled <pre> for shell commands or short log output: sunken well, small
|
|
3
|
+
* mono, scrolls horizontally instead of wrapping. Uses --rb-outline, not
|
|
4
|
+
* --rb-border — border here is a glass-only token (translucent white) and
|
|
5
|
+
* would be invisible on this opaque surface; outline is this theme's own
|
|
6
|
+
* "hairline on opaque surfaces" token (see table.css for the same choice). */
|
|
7
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-pre {
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: var(--rb-space-3) var(--rb-space-4);
|
|
10
|
+
background: var(--rb-surface-sunken);
|
|
11
|
+
border: 1px solid var(--rb-outline);
|
|
12
|
+
border-radius: var(--rb-radius);
|
|
13
|
+
font-family: var(--rb-font-mono);
|
|
14
|
+
font-size: var(--rb-text-sm);
|
|
15
|
+
overflow-x: auto;
|
|
16
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* summer-cloud — progress bar & spinner: glowing violet indicators */
|
|
2
2
|
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress {
|
|
3
|
+
appearance: none;
|
|
3
4
|
display: block;
|
|
4
5
|
width: 100%;
|
|
5
6
|
height: 0.5rem;
|
|
@@ -7,14 +8,22 @@
|
|
|
7
8
|
border-radius: var(--rb-radius-pill);
|
|
8
9
|
overflow: hidden;
|
|
9
10
|
}
|
|
10
|
-
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-
|
|
11
|
-
|
|
11
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress::-webkit-progress-bar {
|
|
12
|
+
background: var(--rb-bg-blend);
|
|
13
|
+
}
|
|
14
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress::-webkit-progress-value {
|
|
15
|
+
background: var(--rb-accent);
|
|
16
|
+
box-shadow: 0 0 10px rgba(69, 0, 217, 0.5);
|
|
17
|
+
}
|
|
18
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress::-moz-progress-bar {
|
|
12
19
|
background: var(--rb-accent);
|
|
13
|
-
border-radius: var(--rb-radius-pill);
|
|
14
20
|
box-shadow: 0 0 10px rgba(69, 0, 217, 0.5);
|
|
15
|
-
transition: width var(--rb-transition);
|
|
16
21
|
}
|
|
17
|
-
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-
|
|
22
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress--accent::-webkit-progress-value {
|
|
23
|
+
background: var(--rb-accent-2);
|
|
24
|
+
box-shadow: 0 0 10px rgba(12, 179, 255, 0.5);
|
|
25
|
+
}
|
|
26
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress--accent::-moz-progress-bar {
|
|
18
27
|
background: var(--rb-accent-2);
|
|
19
28
|
box-shadow: 0 0 10px rgba(12, 179, 255, 0.5);
|
|
20
29
|
}
|
|
@@ -37,7 +46,4 @@
|
|
|
37
46
|
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-spinner {
|
|
38
47
|
animation-duration: 2s;
|
|
39
48
|
}
|
|
40
|
-
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-progress__bar {
|
|
41
|
-
transition: none;
|
|
42
|
-
}
|
|
43
49
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/* summer-cloud — stepper (delivery / milestone tracker)
|
|
2
|
+
* <ol class="rb-stepper"> with one
|
|
3
|
+
* <li class="rb-stepper__step rb-stepper--complete|current|upcoming"> per
|
|
4
|
+
* milestone: a .rb-stepper__node icon/number circle + .rb-stepper__label.
|
|
5
|
+
* Each non-first step draws its OWN connector segment back to the previous
|
|
6
|
+
* step's node (right: 50%; width: 100% of that step's own flex slice, self-
|
|
7
|
+
* aligning to node centers regardless of item count or label width -- a
|
|
8
|
+
* single full-width rail can't do this without knowing how many steps there
|
|
9
|
+
* are, since node centers sit inset within their own slice). isolation:
|
|
10
|
+
* isolate keeps every segment's negative z-index scoped to this stepper, so
|
|
11
|
+
* it paints behind every node without needing per-node z-index of its own.
|
|
12
|
+
* A segment fills once its OWN step is reached (complete or current) -- the
|
|
13
|
+
* same state class already on the <li>, not a second progress mechanism.
|
|
14
|
+
* Unfilled track is --rb-bg-blend (the same token .rb-progress already uses
|
|
15
|
+
* for its trough); a filled segment glows with --rb-accent-glow at the same
|
|
16
|
+
* 10px blur .rb-progress's value fill uses. The current node's lift is
|
|
17
|
+
* --rb-shadow-raised -- "nothing sits flat on the page". */
|
|
18
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper {
|
|
19
|
+
display: flex;
|
|
20
|
+
isolation: isolate;
|
|
21
|
+
list-style: none;
|
|
22
|
+
margin: 0;
|
|
23
|
+
padding: 0;
|
|
24
|
+
}
|
|
25
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__step {
|
|
26
|
+
position: relative;
|
|
27
|
+
flex: 1;
|
|
28
|
+
min-width: 0;
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
align-items: center;
|
|
32
|
+
gap: var(--rb-space-2);
|
|
33
|
+
text-align: center;
|
|
34
|
+
}
|
|
35
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__step:not(:first-child)::before {
|
|
36
|
+
content: "";
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 1rem;
|
|
39
|
+
right: 50%;
|
|
40
|
+
width: 100%;
|
|
41
|
+
height: 2px;
|
|
42
|
+
background: var(--rb-bg-blend);
|
|
43
|
+
z-index: -1;
|
|
44
|
+
transition: background-color var(--rb-transition), box-shadow var(--rb-transition);
|
|
45
|
+
}
|
|
46
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__step:not(:first-child).rb-stepper--complete::before,
|
|
47
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__step:not(:first-child).rb-stepper--current::before {
|
|
48
|
+
background: var(--rb-accent);
|
|
49
|
+
box-shadow: 0 0 10px var(--rb-accent-glow);
|
|
50
|
+
}
|
|
51
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__node {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
width: 2rem;
|
|
56
|
+
height: 2rem;
|
|
57
|
+
border: 2px solid transparent;
|
|
58
|
+
border-radius: var(--rb-radius-pill);
|
|
59
|
+
background: var(--rb-surface-2);
|
|
60
|
+
color: var(--rb-text-faint);
|
|
61
|
+
font-size: var(--rb-text-sm);
|
|
62
|
+
font-weight: var(--rb-font-weight-medium);
|
|
63
|
+
}
|
|
64
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__label {
|
|
65
|
+
font-size: var(--rb-text-sm);
|
|
66
|
+
color: var(--rb-text-faint);
|
|
67
|
+
}
|
|
68
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper--complete .rb-stepper__node {
|
|
69
|
+
background: var(--rb-accent);
|
|
70
|
+
color: var(--rb-accent-fg);
|
|
71
|
+
}
|
|
72
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper--complete .rb-stepper__label {
|
|
73
|
+
color: var(--rb-text);
|
|
74
|
+
}
|
|
75
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper--current .rb-stepper__node {
|
|
76
|
+
background: var(--rb-surface);
|
|
77
|
+
border-color: var(--rb-accent);
|
|
78
|
+
color: var(--rb-accent);
|
|
79
|
+
box-shadow: var(--rb-shadow-raised);
|
|
80
|
+
}
|
|
81
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper--current .rb-stepper__label {
|
|
82
|
+
color: var(--rb-accent);
|
|
83
|
+
font-weight: var(--rb-font-weight-medium);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@media (prefers-reduced-motion: reduce) {
|
|
87
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-stepper__step:not(:first-child)::before {
|
|
88
|
+
transition: none;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -26,6 +26,17 @@
|
|
|
26
26
|
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-table tbody tr:hover {
|
|
27
27
|
background: var(--rb-sky-tint);
|
|
28
28
|
}
|
|
29
|
+
/* --interactive: clickable rows (a tabindex tr, or a row-wrapping button/link) —
|
|
30
|
+
* pointer cursor plus a keyboard-equivalent of the sky-tint hover and a focus ring. */
|
|
31
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-table--interactive tbody tr {
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
}
|
|
34
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-table--interactive tbody tr:focus-visible,
|
|
35
|
+
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-table--interactive tbody tr:has(:focus-visible) {
|
|
36
|
+
outline: 2px solid var(--rb-accent);
|
|
37
|
+
outline-offset: -2px;
|
|
38
|
+
background: var(--rb-sky-tint);
|
|
39
|
+
}
|
|
29
40
|
/* Numeric cells take the mono voice — prices and data read as utility-grade. */
|
|
30
41
|
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-table td.rb-num,
|
|
31
42
|
:where([data-rb-style="summer-cloud"], [data-rb-style="summer-cloud"] *).rb-table th.rb-num {
|
package/summer-cloud/design.md
CHANGED
|
@@ -82,6 +82,11 @@ Three voices, per the project's design system:
|
|
|
82
82
|
Interactive text (buttons, links, tabs) is Plus Jakarta Sans 600 at 14px,
|
|
83
83
|
sentence case. Uppercase never appears outside the mono voice.
|
|
84
84
|
|
|
85
|
+
Bare (unclassed) `h1`-`h6` carry the display voice directly — Plus Jakarta
|
|
86
|
+
Sans 700, `--rb-heading-tracking`, `--rb-space-3` margin below. Bare `p`
|
|
87
|
+
shares that margin; bare `ul`/`ol` add it too, with `--rb-space-4` marker
|
|
88
|
+
indent (real disc/decimal markers, not stripped).
|
|
89
|
+
|
|
85
90
|
The three webfonts are declared in `styles/manifest.json` (`summer-cloud.fonts`);
|
|
86
91
|
consumers load that stylesheet or self-host. Every stack falls back to a system
|
|
87
92
|
family.
|
|
@@ -112,8 +117,15 @@ theme-agnostic). Variants use BEM-ish modifiers (`rb-btn--primary`).
|
|
|
112
117
|
- **Card** `.rb-card` — glass panel; `--floating` adds the Level 2 hover lift.
|
|
113
118
|
- **NavLink** `.rb-link` — pill, sky-tint wash, `→` slides 4px on hover;
|
|
114
119
|
`--active` / `[aria-current=page]` becomes the violet underline rule.
|
|
120
|
+
- **Nav rail** `.rb-nav-rail` — the sidebar container: 14rem fixed-width flex
|
|
121
|
+
column, the same glass panel + blur as `.rb-card`, a hairline right edge.
|
|
122
|
+
Composes with `.rb-link` for items; introduces no active-state convention
|
|
123
|
+
of its own.
|
|
115
124
|
- **Button** `.rb-btn` — glass by default; `--primary` (solid violet CTA, one
|
|
116
|
-
per view), `--accent` (sky-edged glass), `--ghost`, `--danger`.
|
|
125
|
+
per view), `--accent` (sky-edged glass), `--ghost`, `--danger`. `--sm` is a
|
|
126
|
+
compact size for inline and table-row actions — the pill shape is kept.
|
|
127
|
+
`.rb-icon-btn` is a square icon-only hit target (>=2rem), paired with
|
|
128
|
+
`.rb-btn` — the pill radius reads as a circle on the square box.
|
|
117
129
|
- **Form** `.rb-input`, `.rb-textarea`, `.rb-select`, `.rb-label`, `.rb-field`,
|
|
118
130
|
`.rb-checkbox`, `.rb-radio`, `.rb-switch`, `.rb-choice` — sunken fields, no
|
|
119
131
|
resting border, sky-blue ring on focus. The switch is the oversized
|
|
@@ -126,11 +138,37 @@ theme-agnostic). Variants use BEM-ish modifiers (`rb-btn--primary`).
|
|
|
126
138
|
- **Tabs** `.rb-tabs`/`.rb-tab`/`.rb-tabpanel` — violet underline when active.
|
|
127
139
|
- **Table** `.rb-table` — mono uppercase headers, sky-tint row hover; add
|
|
128
140
|
`.rb-num` to numeric cells for the mono/right-aligned treatment.
|
|
141
|
+
`--interactive` marks clickable rows: pointer cursor, plus a focus-visible
|
|
142
|
+
ring (and the same sky-tint wash) for a `tabindex` row or a row-wrapping
|
|
143
|
+
button/link.
|
|
129
144
|
- **Progress** `.rb-progress`, **Spinner** `.rb-spinner` — glowing violet.
|
|
145
|
+
- **Stepper** `.rb-stepper` (+ `__step` / `__node` / `__label`, `--complete` /
|
|
146
|
+
`--current` / `--upcoming`) — a milestone rail: complete nodes solid accent
|
|
147
|
+
with a checkmark, current a white-on-accent-border ring lifted with
|
|
148
|
+
`--rb-shadow-raised` ("nothing sits flat on the page"), upcoming faint
|
|
149
|
+
surface-2. Rail track is `--rb-bg-blend` (the same token `.rb-progress`
|
|
150
|
+
itself uses); each connector segment glows with `--rb-accent-glow` at the
|
|
151
|
+
same 10px blur `.rb-progress`'s value fill uses once its own step is reached
|
|
152
|
+
(complete or current) -- no separate progress value to keep in sync with
|
|
153
|
+
the step states.
|
|
154
|
+
- **Muted text** `.rb-muted` — faint secondary/empty-state text;
|
|
155
|
+
`color: var(--rb-text-faint)`, italic — a friendly, soft touch consistent
|
|
156
|
+
with the theme's airy, optimistic voice.
|
|
157
|
+
- **Pre / log block** `.rb-pre` — command/log `<pre>`; sunken background,
|
|
158
|
+
`--rb-outline` hairline (not `--rb-border`, which is the glass-only token
|
|
159
|
+
and would be invisible on this opaque surface — same choice `.rb-table`
|
|
160
|
+
makes), radius, small mono, horizontal scroll. Pair with `.rb-log`
|
|
161
|
+
(`<pre class="rb-pre rb-log">`) for multi-line streaming output: a capped
|
|
162
|
+
16rem height with vertical scroll, wrapped lines instead of horizontal
|
|
163
|
+
scroll, and roomier line-height for dense text.
|
|
130
164
|
|
|
131
165
|
This port carries nazuraki's original component set (plus its `.rb-chip` and
|
|
132
|
-
`.rb-card--floating` extras); the rackbops-specific `eyebrow`, `tabstrip`,
|
|
133
|
-
`wordmark
|
|
166
|
+
`.rb-card--floating` extras); the rackbops-specific `eyebrow`, `tabstrip`, and
|
|
167
|
+
`wordmark` surfaces are not part of it. `.rb-card--raised` is also absent:
|
|
168
|
+
nazuraki's own second elevation tier is `--floating` ("Level 2," documented
|
|
169
|
+
above), already carried over into this port under that name, so `--raised`
|
|
170
|
+
would just be a near-duplicate of it — the port doesn't add one. `Card raised` is a documented no-op here (see `contract.test.mjs`'s
|
|
171
|
+
allowlist).
|
|
134
172
|
|
|
135
173
|
## Deviations from the Stitch source
|
|
136
174
|
|
package/summer-cloud/index.css
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
@import "./base.css";
|
|
4
4
|
@import "./components/card.css";
|
|
5
5
|
@import "./components/link.css";
|
|
6
|
+
@import "./components/nav-rail.css";
|
|
6
7
|
@import "./components/button.css";
|
|
7
8
|
@import "./components/form.css";
|
|
8
9
|
@import "./components/badge.css";
|
|
@@ -11,3 +12,7 @@
|
|
|
11
12
|
@import "./components/tabs.css";
|
|
12
13
|
@import "./components/table.css";
|
|
13
14
|
@import "./components/progress.css";
|
|
15
|
+
@import "./components/stepper.css";
|
|
16
|
+
@import "./components/muted.css";
|
|
17
|
+
@import "./components/pre.css";
|
|
18
|
+
@import "./components/log.css";
|