@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.
Files changed (178) hide show
  1. package/all.css +5 -0
  2. package/amber-ember/base.css +61 -0
  3. package/amber-ember/components/alert.css +30 -0
  4. package/amber-ember/components/badge.css +32 -0
  5. package/amber-ember/components/button.css +90 -0
  6. package/amber-ember/components/card.css +24 -0
  7. package/amber-ember/components/dialog.css +33 -0
  8. package/amber-ember/components/form.css +72 -0
  9. package/amber-ember/components/link.css +47 -0
  10. package/amber-ember/components/log.css +19 -0
  11. package/amber-ember/components/muted.css +7 -0
  12. package/amber-ember/components/nav-rail.css +14 -0
  13. package/amber-ember/components/pre.css +13 -0
  14. package/amber-ember/components/progress.css +42 -0
  15. package/amber-ember/components/stepper.css +87 -0
  16. package/amber-ember/components/table.css +50 -0
  17. package/amber-ember/components/tabs.css +46 -0
  18. package/amber-ember/design.md +78 -0
  19. package/amber-ember/index.css +18 -0
  20. package/amber-ember/tokens.css +72 -0
  21. package/amber-hearth/base.css +61 -0
  22. package/amber-hearth/components/alert.css +30 -0
  23. package/amber-hearth/components/badge.css +32 -0
  24. package/amber-hearth/components/button.css +90 -0
  25. package/amber-hearth/components/card.css +24 -0
  26. package/amber-hearth/components/dialog.css +33 -0
  27. package/amber-hearth/components/form.css +72 -0
  28. package/amber-hearth/components/link.css +47 -0
  29. package/amber-hearth/components/log.css +19 -0
  30. package/amber-hearth/components/muted.css +7 -0
  31. package/amber-hearth/components/nav-rail.css +14 -0
  32. package/amber-hearth/components/pre.css +13 -0
  33. package/amber-hearth/components/progress.css +42 -0
  34. package/amber-hearth/components/stepper.css +87 -0
  35. package/amber-hearth/components/table.css +50 -0
  36. package/amber-hearth/components/tabs.css +46 -0
  37. package/amber-hearth/design.md +146 -0
  38. package/amber-hearth/index.css +18 -0
  39. package/amber-hearth/tokens.css +77 -0
  40. package/arcane-obsidian/base.css +20 -0
  41. package/arcane-obsidian/components/button.css +15 -0
  42. package/arcane-obsidian/components/log.css +19 -0
  43. package/arcane-obsidian/components/muted.css +7 -0
  44. package/arcane-obsidian/components/nav-rail.css +14 -0
  45. package/arcane-obsidian/components/pre.css +13 -0
  46. package/arcane-obsidian/components/stepper.css +87 -0
  47. package/arcane-obsidian/components/table.css +14 -0
  48. package/arcane-obsidian/design.md +30 -2
  49. package/arcane-obsidian/index.css +5 -0
  50. package/arcane-parchment/base.css +20 -0
  51. package/arcane-parchment/components/button.css +15 -0
  52. package/arcane-parchment/components/log.css +19 -0
  53. package/arcane-parchment/components/muted.css +7 -0
  54. package/arcane-parchment/components/nav-rail.css +14 -0
  55. package/arcane-parchment/components/pre.css +13 -0
  56. package/arcane-parchment/components/stepper.css +87 -0
  57. package/arcane-parchment/components/table.css +14 -0
  58. package/arcane-parchment/design.md +10 -6
  59. package/arcane-parchment/index.css +5 -0
  60. package/concrete-signal/base.css +57 -0
  61. package/concrete-signal/components/alert.css +44 -0
  62. package/concrete-signal/components/badge.css +38 -0
  63. package/concrete-signal/components/button.css +98 -0
  64. package/concrete-signal/components/card.css +21 -0
  65. package/concrete-signal/components/dialog.css +33 -0
  66. package/concrete-signal/components/form.css +138 -0
  67. package/concrete-signal/components/link.css +44 -0
  68. package/concrete-signal/components/log.css +19 -0
  69. package/concrete-signal/components/muted.css +7 -0
  70. package/concrete-signal/components/nav-rail.css +15 -0
  71. package/concrete-signal/components/pre.css +14 -0
  72. package/concrete-signal/components/progress.css +44 -0
  73. package/concrete-signal/components/stepper.css +83 -0
  74. package/concrete-signal/components/table.css +48 -0
  75. package/concrete-signal/components/tabs.css +49 -0
  76. package/concrete-signal/design.md +171 -0
  77. package/concrete-signal/index.css +18 -0
  78. package/concrete-signal/tokens.css +75 -0
  79. package/concrete-signal-light/base.css +57 -0
  80. package/concrete-signal-light/components/alert.css +44 -0
  81. package/concrete-signal-light/components/badge.css +38 -0
  82. package/concrete-signal-light/components/button.css +98 -0
  83. package/concrete-signal-light/components/card.css +21 -0
  84. package/concrete-signal-light/components/dialog.css +33 -0
  85. package/concrete-signal-light/components/form.css +138 -0
  86. package/concrete-signal-light/components/link.css +44 -0
  87. package/concrete-signal-light/components/log.css +19 -0
  88. package/concrete-signal-light/components/muted.css +7 -0
  89. package/concrete-signal-light/components/nav-rail.css +15 -0
  90. package/concrete-signal-light/components/pre.css +14 -0
  91. package/concrete-signal-light/components/progress.css +44 -0
  92. package/concrete-signal-light/components/stepper.css +84 -0
  93. package/concrete-signal-light/components/table.css +48 -0
  94. package/concrete-signal-light/components/tabs.css +49 -0
  95. package/concrete-signal-light/design.md +82 -0
  96. package/concrete-signal-light/index.css +18 -0
  97. package/concrete-signal-light/tokens.css +75 -0
  98. package/css-side-effect.d.ts +5 -0
  99. package/luminous-precision/base.css +12 -0
  100. package/luminous-precision/components/button.css +25 -0
  101. package/luminous-precision/components/link.css +8 -0
  102. package/luminous-precision/components/log.css +19 -0
  103. package/luminous-precision/components/muted.css +7 -0
  104. package/luminous-precision/components/nav-rail.css +17 -0
  105. package/luminous-precision/components/pre.css +14 -0
  106. package/luminous-precision/components/progress.css +14 -5
  107. package/luminous-precision/components/stepper.css +89 -0
  108. package/luminous-precision/components/table.css +17 -0
  109. package/luminous-precision/design.md +44 -9
  110. package/luminous-precision/index.css +5 -0
  111. package/manifest.json +20 -0
  112. package/mono-field/base.css +59 -0
  113. package/mono-field/components/alert.css +35 -0
  114. package/mono-field/components/badge.css +34 -0
  115. package/mono-field/components/button.css +101 -0
  116. package/mono-field/components/card.css +20 -0
  117. package/mono-field/components/dialog.css +34 -0
  118. package/mono-field/components/form.css +91 -0
  119. package/mono-field/components/link.css +47 -0
  120. package/mono-field/components/log.css +19 -0
  121. package/mono-field/components/muted.css +7 -0
  122. package/mono-field/components/nav-rail.css +14 -0
  123. package/mono-field/components/pre.css +13 -0
  124. package/mono-field/components/progress.css +42 -0
  125. package/mono-field/components/stepper.css +86 -0
  126. package/mono-field/components/table.css +47 -0
  127. package/mono-field/components/tabs.css +48 -0
  128. package/mono-field/design.md +151 -0
  129. package/mono-field/index.css +18 -0
  130. package/mono-field/tokens.css +76 -0
  131. package/neon-butterfly/base.css +18 -0
  132. package/neon-butterfly/components/button.css +26 -0
  133. package/neon-butterfly/components/link.css +10 -0
  134. package/neon-butterfly/components/log.css +19 -0
  135. package/neon-butterfly/components/muted.css +7 -0
  136. package/neon-butterfly/components/nav-rail.css +17 -0
  137. package/neon-butterfly/components/pre.css +13 -0
  138. package/neon-butterfly/components/progress.css +14 -5
  139. package/neon-butterfly/components/stepper.css +89 -0
  140. package/neon-butterfly/components/table.css +15 -0
  141. package/neon-butterfly/design.md +40 -4
  142. package/neon-butterfly/index.css +5 -0
  143. package/package.json +61 -32
  144. package/rackbops-noir/base.css +11 -2
  145. package/rackbops-noir/components/button.css +16 -0
  146. package/rackbops-noir/components/card.css +9 -0
  147. package/rackbops-noir/components/log.css +19 -0
  148. package/rackbops-noir/components/muted.css +7 -0
  149. package/rackbops-noir/components/nav-rail.css +14 -0
  150. package/rackbops-noir/components/pre.css +13 -0
  151. package/rackbops-noir/components/principle.css +1 -0
  152. package/rackbops-noir/components/stepper.css +87 -0
  153. package/rackbops-noir/components/table.css +18 -0
  154. package/rackbops-noir/design.md +6 -3
  155. package/rackbops-noir/index.css +5 -0
  156. package/rackbops-studio/base.css +11 -2
  157. package/rackbops-studio/components/button.css +16 -0
  158. package/rackbops-studio/components/card.css +9 -0
  159. package/rackbops-studio/components/log.css +19 -0
  160. package/rackbops-studio/components/muted.css +7 -0
  161. package/rackbops-studio/components/nav-rail.css +14 -0
  162. package/rackbops-studio/components/pre.css +13 -0
  163. package/rackbops-studio/components/principle.css +1 -0
  164. package/rackbops-studio/components/stepper.css +87 -0
  165. package/rackbops-studio/components/table.css +18 -0
  166. package/rackbops-studio/design.md +29 -2
  167. package/rackbops-studio/index.css +5 -0
  168. package/summer-cloud/base.css +13 -1
  169. package/summer-cloud/components/button.css +17 -0
  170. package/summer-cloud/components/log.css +19 -0
  171. package/summer-cloud/components/muted.css +8 -0
  172. package/summer-cloud/components/nav-rail.css +17 -0
  173. package/summer-cloud/components/pre.css +16 -0
  174. package/summer-cloud/components/progress.css +14 -8
  175. package/summer-cloud/components/stepper.css +90 -0
  176. package/summer-cloud/components/table.css +11 -0
  177. package/summer-cloud/design.md +41 -3
  178. 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-progress__bar {
11
- height: 100%;
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-progress__bar--accent {
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 {
@@ -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`, and `card--raised` surfaces are not part of it.
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
 
@@ -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";