Skip to content

Commit 9a3d60a

Browse files
committed
feat(website): add @btravstack/entity to the stack
entity is published (0.3.0) with its docs live, so it joins the landing as the fourth panel. It sits second, after unthrown and before the two contract packages: the row now reads as the stack does — errors, the domain built on them, then the transports that carry it. Its mark is entity's own docs logo, copied under logos/entity-{light,dark}.svg, which is the same convention the other three follow (verified: the unthrown pair is byte-identical to unthrown/docs/public/logo-*.svg). New --pkg-entity token, amber #C8871F: amber encases and preserves — a thing suspended intact, permanently — which is sealed construction and immutable data. 6.32 on the dark card, 5.61 as darkened text on white (AA). It replaces --bt-pink-soft, the org accent, which entity's docs were borrowing; btravstack/entity#47 moves that half. The hero count and the footer link lists derive from the array, so only the section heading and lead needed the three-to-four edit.
1 parent 335b615 commit 9a3d60a

6 files changed

Lines changed: 32 additions & 11 deletions

File tree

.changeset/entity-accent-token.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
"@btravstack/theme": minor
3+
---
4+
5+
Add `--pkg-entity`, amber `#C8871F`, for `@btravstack/entity`.
6+
7+
Amber encases and preserves — a thing suspended intact, permanently — which is
8+
sealed construction and immutable data. entity's docs previously used
9+
`--bt-pink-soft`, the org accent, which the multi-accent rule reserves for org
10+
chrome.

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ interface Project {
4444
docs: string;
4545
}
4646
47-
// unthrown leads: it's the base the two contract packages build on, and the
48-
// most versatile of the three.
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.
4949
const projects: Project[] = [
5050
{
5151
key: "unthrown", tag: "Errors", name: "unthrown", pkg: "unthrown", npm: "unthrown",
@@ -55,6 +55,14 @@ const projects: Project[] = [
5555
install: "pnpm add unthrown",
5656
repo: "https://github.com/btravstack/unthrown", docs: "https://btravstack.github.io/unthrown/",
5757
},
58+
{
59+
key: "entity", tag: "Domain", name: "entity", pkg: "@btravstack/entity", npm: "@btravstack/entity",
60+
logo: "/logos/entity", repoFull: "btravstack/entity", stars0: 3,
61+
blurb: "Domain entities declared once. One field map gives you a type, four request/response schemas, behaviour, and a class that is itself a zod schema — so entities nest inside each other without losing what makes them entities.",
62+
points: ["Branded fields and immutable data", "Sealed construction, enforced invariants", "Result instead of throws"],
63+
install: "pnpm add @btravstack/entity",
64+
repo: "https://github.com/btravstack/entity", docs: "https://btravstack.github.io/entity/",
65+
},
5866
{
5967
key: "amqp", tag: "Messaging", name: "amqp-contract", pkg: "@amqp-contract/contract", npm: "@amqp-contract/contract",
6068
logo: "/logos/amqp-contract", repoFull: "btravstack/amqp-contract", stars0: 18,
@@ -73,7 +81,7 @@ const projects: Project[] = [
7381
},
7482
];
7583
76-
/** Every repo shown on the page — the three published packages. */
84+
/** Every repo shown on the page — the published packages. */
7785
const allRepos = projects;
7886
7987
const stars = reactive<Record<string, number>>(
@@ -178,8 +186,8 @@ onMounted(() => {
178186

179187
<!-- The stack — each package in its own color -->
180188
<section id="packages" class="btv-section">
181-
<h2 class="btv-h2">Three libraries, one stack.</h2>
182-
<p class="btv-section-lead">Errors, messaging and workflows — three focused packages that compose into one coherent backend.</p>
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>
183191
<div class="btv-panels">
184192
<article v-for="p in projects" :key="p.name" class="btv-panel" :style="{ '--pkg': `var(--pkg-${p.key})` }">
185193
<div class="btv-panel-top">

apps/website/public/logos/entity-dark.svg

Lines changed: 2 additions & 2 deletions
Loading

apps/website/public/logos/entity-light.svg

Lines changed: 2 additions & 2 deletions
Loading

design.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ grow.
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. Weight-contrast typography (one grotesque at 400 vs
12+
teal, entity amber. Weight-contrast typography (one grotesque at 400 vs
1313
800), elevation through surface lightness, real numbers in the hero, and the
1414
gradient beetroot mascot as the one character moment.
1515

@@ -55,6 +55,7 @@ atmospheric (studied register — dark, quiet, confident; no blooms).
5555
| `--pkg-amqp` | `#FF6600` | darken 30% at point of use |
5656
| `--pkg-temporal` | `#6B76F2` | darken 30% at point of use |
5757
| `--pkg-unthrown` | `#3FB0A5` | darken 30% at point of use |
58+
| `--pkg-entity` | `#C8871F` | darken 30% at point of use |
5859

5960
**The multi-accent rule (the studied signature).** The canvas and chrome are
6061
near-neutral; color belongs to the *products*. Package names, category dots
@@ -149,6 +150,7 @@ The canonical export lives at `packages/theme/src/tokens.css` (published as
149150
--pkg-amqp: #FF6600;
150151
--pkg-temporal: #6B76F2;
151152
--pkg-unthrown: #3FB0A5;
153+
--pkg-entity: #C8871F;
152154
--font-display: "Geist", sans-serif; /* 800 for display */
153155
--font-body: "Geist", sans-serif;
154156
--font-mono: "JetBrains Mono", monospace;

packages/theme/src/tokens.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* glows in ITS OWN accent — the org reads as a colorful stack of distinct
1515
* tools, not a monochrome brand. The beetroot pink is the ORG accent
1616
* (wordmark, links, org CTAs); the per-package accents (amqp orange,
17-
* temporal indigo, unthrown teal) carry the packages.
17+
* temporal indigo, unthrown teal, entity amber) carry the packages.
1818
* Elevation through lightness, weight-contrast typography, real numbers.
1919
*
2020
* DARK is the canonical default. The light scheme overrides the semantic
@@ -43,6 +43,7 @@
4343
--pkg-amqp: #FF6600; /* RabbitMQ's orange */
4444
--pkg-temporal: #6B76F2; /* Temporal's indigo */
4545
--pkg-unthrown: #3FB0A5; /* outside the signal register: not a signal, a value */
46+
--pkg-entity: #C8871F; /* amber encases and preserves: sealed, immutable */
4647

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

0 commit comments

Comments
 (0)