design: add stoke brand system + landing page (Figma) with generated assets
Adds a design record under docs/ and generated media under assets/ — no CLI
changes. Brand identity ("ember on anthracite") and a full desktop + mobile
landing page were built in Figma, grounded in the actual command surface:
auth, repo, issue, pr, branch, org/team, user.
- docs/DESIGN.md — Figma link, palette, type, page structure, asset inventory
- assets/ — hero/operator/texture stills + 5s ember loop (Artlist), logo mark
(SVG), and full-page preview renders
Figma: https://www.figma.com/design/q6bYh7pRChTbg0diKAVrcS/stoke-Brand-Landing
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
92a6741e4d
commit
0f220d7542
8 changed files with 120 additions and 0 deletions
BIN
assets/ember-loop.mp4
Normal file
BIN
assets/ember-loop.mp4
Normal file
Binary file not shown.
BIN
assets/ember-texture.png
Normal file
BIN
assets/ember-texture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 MiB |
BIN
assets/hero-forge.png
Normal file
BIN
assets/hero-forge.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 MiB |
28
assets/logo-mark.svg
Normal file
28
assets/logo-mark.svg
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
<svg preserveAspectRatio="none" overflow="visible" style="display: block;" width="120" height="120" viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Mark">
|
||||
<g clip-path="url(#clip0_0_4)">
|
||||
<rect width="120" height="120" rx="28" fill="#0C0A09"/>
|
||||
<g id="Ellipse" filter="url(#filter0_f_0_4)">
|
||||
<circle cx="60" cy="85" r="75" fill="#FF6A2C" fill-opacity="0.35"/>
|
||||
</g>
|
||||
<path id="spark" d="M60 22L68.061 51.939L98 60L68.061 68.061L60 98L51.939 68.061L22 60L51.939 51.939L60 22Z" fill="url(#paint0_linear_0_4)"/>
|
||||
<path id="Star" d="M89 20L91.489 28.511L100 31L91.489 33.489L89 42L86.511 33.489L78 31L86.511 28.511L89 20Z" fill="#FFB347"/>
|
||||
</g>
|
||||
<rect x="0.5" y="0.5" width="119" height="119" rx="27.5" stroke="#3A2A1E"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_f_0_4" x="-55" y="-30" width="230" height="230" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<feGaussianBlur stdDeviation="20" result="effect1_foregroundBlur_0_4"/>
|
||||
</filter>
|
||||
<linearGradient id="paint0_linear_0_4" x1="60" y1="22" x2="60" y2="98" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFB347"/>
|
||||
<stop offset="0.5" stop-color="#FF6A2C"/>
|
||||
<stop offset="1" stop-color="#E2452B"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_0_4">
|
||||
<rect width="120" height="120" rx="28" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/operator-hand.png
Normal file
BIN
assets/operator-hand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 MiB |
BIN
assets/preview-brand.png
Normal file
BIN
assets/preview-brand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 181 KiB |
BIN
assets/preview-landing.png
Normal file
BIN
assets/preview-landing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 MiB |
92
docs/DESIGN.md
Normal file
92
docs/DESIGN.md
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# stoke — Brand & Landing Design
|
||||
|
||||
> _The operator's hand on the forge._
|
||||
|
||||
A complete brand identity and marketing landing page for **stoke**, the CLI for the
|
||||
Heavy Duty Forgejo forge. Designed from the codebase itself — every command group,
|
||||
install path, and principle on the page maps to something the tool actually does.
|
||||
|
||||
## 🔗 Figma
|
||||
|
||||
**[stoke — Brand & Landing (Figma)](https://www.figma.com/design/q6bYh7pRChTbg0diKAVrcS/stoke-Brand-Landing)**
|
||||
|
||||
The file has four pages:
|
||||
|
||||
| Page | Contents |
|
||||
| --- | --- |
|
||||
| `01 · Brand System` | Logo lockup + ember spark mark, 14-token color palette, type scale, voice & principles |
|
||||
| `02 · Landing — Desktop` | Full 1440px landing: nav, hero, ecosystem strip, command showcase, philosophy split, install, CTA, footer |
|
||||
| `03 · Landing — Mobile` | 390px responsive landing |
|
||||
| `04 · Assets & Components` | Command-group icon set (24px line) + generated-asset gallery |
|
||||
|
||||

|
||||
|
||||
## Concept
|
||||
|
||||
`stoke` is named after the act of feeding and tending a fire. The identity takes that
|
||||
literally: a working **forge** — controlled heat, hot steel, precision — rendered as
|
||||
hot ember on near-black anthracite. Industrial craft meets modern dev tool. The product
|
||||
principle from the README ("every real operation performed against Forgejo becomes a new
|
||||
CLI command") is the spine of the page.
|
||||
|
||||
### Color — ember on anthracite
|
||||
|
||||
| Token | Hex | Use |
|
||||
| --- | --- | --- |
|
||||
| `bg/base` | `#0C0A09` | Anthracite canvas |
|
||||
| `bg/raised` | `#1A1614` | Raised surfaces |
|
||||
| `bg/inset` | `#14100E` | Wells / code blocks |
|
||||
| `border/subtle` | `#2A2320` | Hairlines |
|
||||
| `border/ember` | `#3A2A1E` | Warm edges |
|
||||
| `ember/red` | `#E2452B` | Deep heat |
|
||||
| `ember/orange` | `#FF6A2C` | **Primary** · CTAs |
|
||||
| `ember/amber` | `#FFB347` | Bright heat · command text |
|
||||
| `hot/white` | `#FFF3E6` | White-hot highlight |
|
||||
| `steel/blue` | `#3B6EA5` | Quench accent · links / URLs |
|
||||
| `text/primary` | `#F5EDE6` | Primary text |
|
||||
| `text/secondary` | `#A89A8E` | Secondary text |
|
||||
| `text/muted` | `#6B5F56` | Meta / muted |
|
||||
| `text/onEmber` | `#1A0E06` | Text on ember fills |
|
||||
|
||||
### Type
|
||||
|
||||
- **Archivo** (Black / SemiBold) — geometric-industrial display & headings, tight tracking
|
||||
- **Inter** (Regular / Medium) — body copy
|
||||
- **JetBrains Mono** — everything command-flavored (it's a CLI): prompts, flags, install snippets
|
||||
|
||||
### Logo
|
||||
|
||||
An **ember spark** mark — a four-point spark that reads as both a flame and a striker
|
||||
feeding the forge — set over a warm glow, locked up with a heavy lowercase `stoke`
|
||||
wordmark. Vector source in [`assets/logo-mark.svg`](../assets/logo-mark.svg).
|
||||
|
||||
## Page structure (desktop)
|
||||
|
||||
1. **Nav** — logo, section links, `Get started`
|
||||
2. **Hero** — forge backdrop, `Every operation becomes a command.`, copy-able `apt-get install stoke`, CTAs
|
||||
3. **Ecosystem strip** — the six repos the forge manages: `box · rig · cast · infra · handbook · incubator`
|
||||
4. **Command showcase** — a live, syntax-colored `stoke` terminal session + cards for all 7 command groups (auth, repo, pr, issue, branch, org, user) with real example commands and command counts
|
||||
5. **Philosophy split** — "Built for the hand on the forge" with the operator image + feature checklist (apt-native, 0600 tokens, batch import, dogfooded)
|
||||
6. **Install** — apt (recommended) and from-source code cards, with the Node ≥ 22.12 note
|
||||
7. **CTA band** — `Feed the forge.` over ember texture
|
||||
8. **Footer** — logo, link columns, forge URL, version
|
||||
|
||||
## Assets
|
||||
|
||||
All imagery generated with **Artlist** (Seedream 5.0 Pro for stills, Kling 1.6 for the
|
||||
ambient loop) and embedded in the Figma file.
|
||||
|
||||
| File | What |
|
||||
| --- | --- |
|
||||
| `assets/hero-forge.png` | 2048×878 · 21:9 hero backdrop — glowing coals, hot steel, sparks |
|
||||
| `assets/operator-hand.png` | 3:2 — a hand stoking coals (philosophy section) |
|
||||
| `assets/ember-texture.png` | 21:9 — molten ember bed (CTA / section backdrops) |
|
||||
| `assets/ember-loop.mp4` | 5s ambient ember loop (bonus motion asset) |
|
||||
| `assets/logo-mark.svg` | Ember spark logo mark (vector) |
|
||||
| `assets/preview-landing.png` | Full desktop landing render |
|
||||
| `assets/preview-brand.png` | Brand system page render |
|
||||
|
||||
## Notes
|
||||
|
||||
- This PR was opened with `stoke pr create` — the tool designing its own storefront.
|
||||
- Nothing here changes the CLI; it adds a `docs/` design record + `assets/`.
|
||||
Loading…
Reference in a new issue