Skip to content

Commit aaf50d5

Browse files
authored
Merge pull request #43 from btravstack/feat/add-di
feat(website): add @btravstack/di to the stack
2 parents 4897ebc + 269f297 commit aaf50d5

6 files changed

Lines changed: 106 additions & 13 deletions

File tree

.changeset/di-accent-token.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@btravstack/theme": minor
3+
---
4+
5+
Add `--pkg-di`, blue `#3E7FD4`, for `@btravstack/di`.
6+
7+
Blue is plumbing — the connections behind the wall that everything visible runs
8+
on, which is what a wiring container is. The hex is the logo's own lighter blue
9+
(the barrel rim, the plunger, the needle hub), so chrome and artwork stay one
10+
color.
11+
12+
di's docs site currently sets `--accent: #2A62B8`, the logo's *deep* blue. That
13+
hex scores 3.22 against `--card` on the dark scheme, below the 5.00–7.25 band
14+
the other four package accents occupy, so the landing takes the lighter blue
15+
instead: 4.72 on the dark card, 7.10 as darkened text on white (AA). Repointing
16+
di's docs to match is btravstack/di's half.

apps/website/.vitepress/theme/Landing.vue

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ interface Project {
4444
docs: string;
4545
}
4646
47-
// Ordered as the stack reads — errors, the domain built on them, then the
48-
// transports that carry it. unthrown leads: the other three build on it.
47+
// Ordered as the stack reads — errors, the domain built on them, the wiring
48+
// that assembles it, then the transports that carry it. unthrown leads: the
49+
// other four build on it.
4950
const projects: Project[] = [
5051
{
5152
key: "unthrown", tag: "Errors", name: "unthrown", pkg: "unthrown", npm: "unthrown",
@@ -63,6 +64,14 @@ const projects: Project[] = [
6364
install: "pnpm add @btravstack/entity",
6465
repo: "https://github.com/btravstack/entity", docs: "https://btravstack.github.io/entity/",
6566
},
67+
{
68+
key: "di", tag: "Wiring", name: "di", pkg: "@btravstack/di", npm: "@btravstack/di",
69+
logo: "/logos/di", repoFull: "btravstack/di", stars0: 1,
70+
blurb: "A module-based container. Ports are the vocabulary your application defines, providers bind them at one edge, and modules declare what they import and export — so internals stay private in a graph that is one flat map at runtime.",
71+
points: ["Ports named by the domain, not the adapter", "Unmet dependencies are compile errors", "Scoped resources release themselves"],
72+
install: "pnpm add @btravstack/di unthrown",
73+
repo: "https://github.com/btravstack/di", docs: "https://btravstack.github.io/di/",
74+
},
6675
{
6776
key: "amqp", tag: "Messaging", name: "amqp-contract", pkg: "@amqp-contract/contract", npm: "@amqp-contract/contract",
6877
logo: "/logos/amqp-contract", repoFull: "btravstack/amqp-contract", stars0: 18,
@@ -186,8 +195,8 @@ onMounted(() => {
186195

187196
<!-- The stack — each package in its own color -->
188197
<section id="packages" class="btv-section">
189-
<h2 class="btv-h2">Four libraries, one stack.</h2>
190-
<p class="btv-section-lead">Errors, domain, messaging and workflows — four focused packages that compose into one coherent backend.</p>
198+
<h2 class="btv-h2">Five libraries, one stack.</h2>
199+
<p class="btv-section-lead">Errors, domain, wiring, messaging and workflows — five focused packages that compose into one coherent backend.</p>
191200
<div class="btv-panels">
192201
<article v-for="p in projects" :key="p.name" class="btv-panel" :style="{ '--pkg': `var(--pkg-${p.key})` }">
193202
<div class="btv-panel-top">
@@ -263,7 +272,7 @@ onMounted(() => {
263272
<a href="https://github.com/btravstack" target="_blank" rel="noopener" class="btv-cta btv-cta--big">View on GitHub <span aria-hidden="true">↗</span></a>
264273
</section>
265274

266-
<!-- Ft3 · index footer (genuine hub for the four docs sites) -->
275+
<!-- Ft3 · index footer (genuine hub for the five docs sites) -->
267276
<footer class="btv-foot">
268277
<div class="btv-foot-grid">
269278
<div class="btv-foot-brandcol">
@@ -298,7 +307,7 @@ onMounted(() => {
298307
/* Hallmark · genre: atmospheric (studied) · macrostructure: Ecosystem Index · design-system: design.md · designed-as-app
299308
* theme: studied-DNA (source: https://tanstack.com/) · studied: yes · DNA-source: url + screenshot
300309
* observed-DNA: neutral-black canvas · per-library accents · heavy grotesque display · real-stats hero · elevated panels
301-
* nav: N1b three-section · footer: Ft3 index (genuine hub for 4 docs sites) · hero: wordmark-led + T4 stat strip (real numbers only)
310+
* nav: N1b three-section · footer: Ft3 index (genuine hub for 5 docs sites) · hero: wordmark-led + T4 stat strip (real numbers only)
302311
* enrichment: H9 original gradient mascot (Tier-B, kept) — the one character moment
303312
* contrast: pass (40–41) · honest: pass (46 — stars live from GitHub, downloads live from npm or "—") · chrome: pass (47)
304313
* tokens: pass (48) · responsive: pass (49)
Lines changed: 30 additions & 0 deletions
Loading
Lines changed: 34 additions & 0 deletions
Loading

design.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# Design — btravstack · "Beetroot Stack" (studied DNA)
22

33
A locked design system for the btravstack org (landing + `@btravstack/theme` +
4-
the four docs sites). Every page redesign reads this file before emitting code.
4+
the five docs sites). Every page redesign reads this file before emitting code.
55
Do not regenerate per page — extend or amend this file when the system needs to
66
grow.
77

88
**The idea.** Studied from the user's stated inspiration. The org is a
99
*colorful stack of distinct tools* on a near-neutral black canvas: the
1010
beetroot pink is the ORG accent (wordmark, links, CTAs, mascot), while each
1111
package glows in **its own accent** — amqp orange, temporal indigo, unthrown
12-
teal, entity amber. Weight-contrast typography (one grotesque at 400 vs
13-
800), elevation through surface lightness, real numbers in the hero, and the
14-
gradient beetroot mascot as the one character moment.
12+
teal, entity amber, di blue. Weight-contrast typography (one grotesque at
13+
400 vs 800), elevation through surface lightness, real numbers in the hero,
14+
and the gradient beetroot mascot as the one character moment.
1515

1616
## Provenance
1717

@@ -37,7 +37,7 @@ atmospheric (studied register — dark, quiet, confident; no blooms).
3737
tokens — floating hero mark with a subtle halo, elevated feature cards,
3838
the site's own package accent everywhere via the one-knob override.
3939
- Nav: **N1b three-section** — wordmark · centered links · toggle + GitHub.
40-
- Footer: **Ft3 index** — justified: the landing is a genuine hub for four
40+
- Footer: **Ft3 index** — justified: the landing is a genuine hub for five
4141
docs sites. Brand column + Docs column + GitHub column + MIT line. No
4242
social row, no Legal filler.
4343

@@ -56,6 +56,7 @@ atmospheric (studied register — dark, quiet, confident; no blooms).
5656
| `--pkg-temporal` | `#6B76F2` | darken 30% at point of use |
5757
| `--pkg-unthrown` | `#3FB0A5` | darken 30% at point of use |
5858
| `--pkg-entity` | `#C8871F` | darken 30% at point of use |
59+
| `--pkg-di` | `#3E7FD4` | darken 30% at point of use |
5960

6061
**The multi-accent rule (the studied signature).** The canvas and chrome are
6162
near-neutral; color belongs to the *products*. Package names, category dots
@@ -106,8 +107,9 @@ color glow on package-panel hover only.
106107
## Logos
107108

108109
The original soft gradient marks stay — mascot, rabbit, hourglass, no-throw,
109-
shield, and the start liftoff beet. They read perfectly on the near-black
110-
canvas and each sits inside its package-colored panel context. A package's
110+
shield, the di syringe, and the start liftoff beet. They read perfectly on
111+
the near-black canvas and each sits inside its package-colored panel context.
112+
A package's
111113
product mark is not a "character moment" — it's the logo of that panel, the
112114
same way each docs site carries its own.
113115

@@ -151,6 +153,7 @@ The canonical export lives at `packages/theme/src/tokens.css` (published as
151153
--pkg-temporal: #6B76F2;
152154
--pkg-unthrown: #3FB0A5;
153155
--pkg-entity: #C8871F;
156+
--pkg-di: #3E7FD4;
154157
--font-display: "Geist", sans-serif; /* 800 for display */
155158
--font-body: "Geist", sans-serif;
156159
--font-mono: "JetBrains Mono", monospace;

packages/theme/src/tokens.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
--pkg-temporal: #6B76F2; /* Temporal's indigo */
4545
--pkg-unthrown: #3FB0A5; /* outside the signal register: not a signal, a value */
4646
--pkg-entity: #C8871F; /* amber encases and preserves: sealed, immutable */
47+
--pkg-di: #3E7FD4; /* blue is plumbing: the connections behind the wall */
4748

4849
/* ── Surfaces (DARK scheme — canonical: near-neutral black) ──── */
4950
--bg: oklch(13% 0.006 310); /* ≈ #080709 — the canvas */

0 commit comments

Comments
 (0)