docs(about-page): lock spec as approved; final photos sole open item
Resolve §9 open questions: hero title "The Collective", Khabran bio as empty-slot placeholder, wwwroot/img hosting, Process placement for "designed not extracted". COPY D approved provisional; typo flags kept.
This commit is contained in:
+55
-59
@@ -1,15 +1,16 @@
|
|||||||
# About Page — DeepDrft public site — Design Spec
|
# About Page — DeepDrft public site — Design Spec
|
||||||
|
|
||||||
Status: **proposed — copy largely settled** (2026-06-17). Author: product-designer. Date: 2026-06-17.
|
Status: **APPROVED for implementation** — structure + copy signed off 2026-06-17 (Phase 12). Author:
|
||||||
Implementer: staff-engineer (when approved). Surface: **public site only** (`DeepDrftPublic` /
|
product-designer. Date: 2026-06-17. Implementer: staff-engineer. Surface: **public site only**
|
||||||
`DeepDrftPublic.Client`).
|
(`DeepDrftPublic` / `DeepDrftPublic.Client`).
|
||||||
|
|
||||||
> **Copy status (2026-06-17 review):** A, B, C, E, D-intro, F, G, H are **APPROVED** — Daniel's
|
> **Approval (2026-06-17):** Daniel signed off the structure and all copy. The spec is
|
||||||
> verbatim words, set. **D (Process card bodies) is a fresh DRAFT** pending Daniel's pass (redrafted
|
> implementation-ready. All COPY blocks (A–H, D-intro) are **APPROVED** — D (Process card bodies) is
|
||||||
> per his "spice it up, no Octave One" direction). **Khabran's bio is still TODO.** Remaining open
|
> approved *provisionally*: Daniel's word was "it's fine for now, we can change that wording later,"
|
||||||
> items (Khabran's bio, final photos, image hosting path, hero title wording, "designed not
|
> so the body copy may still be reworded before or after build. The **only remaining open item is the
|
||||||
> extracted" placement) are being resolved separately. Approved blocks ship as written; the one
|
> final photo files** (§8, item 2) — Daniel is still sorting them; every image slot stays a
|
||||||
> remaining draft (D) does not ship without Daniel's pass.
|
> graceful-degrade placeholder until files land. Khabran's bio is resolved: build the card now with an
|
||||||
|
> empty/placeholder body slot, Daniel drops his text in later.
|
||||||
|
|
||||||
Cross-references: `Pages/Home.razor` + `Pages/Home.razor.css` (the visual language this page mirrors
|
Cross-references: `Pages/Home.razor` + `Pages/Home.razor.css` (the visual language this page mirrors
|
||||||
— inspected, not invented), `Controls/DeepDrftHero.razor` (hero type treatment),
|
— inspected, not invented), `Controls/DeepDrftHero.razor` (hero type treatment),
|
||||||
@@ -77,7 +78,7 @@ structure is legible without a heading that says "Movement One."
|
|||||||
```
|
```
|
||||||
┌─ HERO (split 50/50) ──────────────────────────────────────────┐
|
┌─ HERO (split 50/50) ──────────────────────────────────────────┐
|
||||||
│ left: eyebrow "Charleston, South Carolina" │
|
│ left: eyebrow "Charleston, South Carolina" │
|
||||||
│ title "Deep <em>DRFT</em>" or "Who We <em>Are</em>" │
|
│ title "The <em>Collective</em>" │
|
||||||
│ standfirst (the ethos line, condensed) │
|
│ standfirst (the ethos line, condensed) │
|
||||||
│ right: DUO HERO PORTRAIT [IMG SLOT A — likely hero] │
|
│ right: DUO HERO PORTRAIT [IMG SLOT A — likely hero] │
|
||||||
├─ full-bleed parallax band [IMG SLOT B — duo or gear] ─────────┤
|
├─ full-bleed parallax band [IMG SLOT B — duo or gear] ─────────┤
|
||||||
@@ -131,8 +132,8 @@ Mirror Home's `.hero` split.
|
|||||||
|
|
||||||
- **Left (`md=6`, `.hero-left`):** eyebrow + title + standfirst, using the `.hero-*` classes.
|
- **Left (`md=6`, `.hero-left`):** eyebrow + title + standfirst, using the `.hero-*` classes.
|
||||||
- Eyebrow: `Charleston, South Carolina` (matches Home's hero eyebrow — anchors place immediately).
|
- Eyebrow: `Charleston, South Carolina` (matches Home's hero eyebrow — anchors place immediately).
|
||||||
- Title: a one-or-two-word masthead with the `<em>` device. Candidate: **"Who We <em>Are</em>"**
|
- Title: **"The <em>Collective</em>"** (RESOLVED 2026-06-17). The `<em>` device falls on
|
||||||
or simply **"The <em>Collective</em>"**. (Header — proposed, not copy.)
|
*Collective*. This is a label, not body copy.
|
||||||
- Standfirst: the condensed ethos line — see `[COPY A]` below.
|
- Standfirst: the condensed ethos line — see `[COPY A]` below.
|
||||||
- **Right (`md=6`):** **IMG SLOT A — the duo hero portrait.** This is the **likely hero image**.
|
- **Right (`md=6`):** **IMG SLOT A — the duo hero portrait.** This is the **likely hero image**.
|
||||||
A duo shot reads "two people, a collective" at first paint. Aspect: landscape or square works in
|
A duo shot reads "two people, a collective" at first paint. Aspect: landscape or square works in
|
||||||
@@ -182,13 +183,13 @@ Per card:
|
|||||||
title. Candidate label: *Production · Sound Design · Live* (proposed UI label, not copy).
|
title. Candidate label: *Production · Sound Design · Live* (proposed UI label, not copy).
|
||||||
- **Bio body** — `[BIO SLOT — Daniel supplies per member]`.
|
- **Bio body** — `[BIO SLOT — Daniel supplies per member]`.
|
||||||
|
|
||||||
> **Khabran's bio is an OPEN TODO** — Daniel will add it later (open question §8). Daniel's bio
|
> **Khabran's bio — RESOLVED (2026-06-17):** build the card now with an empty / placeholder body
|
||||||
> material exists in the interview transcript and is drafted below for approval; **Khabran's card
|
> slot; Daniel drops his text in later. This is not a blocker — **the card must compose correctly
|
||||||
> renders its slot empty / with a placeholder until his text arrives.** Design the card so a missing
|
> with the body absent** (portrait + name + role line still render; the body block simply omitted) —
|
||||||
> bio degrades gracefully (portrait + name + role line still compose; the body block simply absent) —
|
> the same null-renders-nothing discipline `ReleaseDescription` uses. Daniel's bio (`[COPY C]`) is
|
||||||
> the same null-renders-nothing discipline `ReleaseDescription` uses.
|
> approved verbatim below.
|
||||||
|
|
||||||
> `[COPY C — APPROVED — Daniel bio, Daniel's words verbatim; Khabran's TBD]`
|
> `[COPY C — APPROVED — Daniel bio, Daniel's words verbatim; Khabran's body slot ships empty until he supplies it]`
|
||||||
> Daniel started on drums at ten and embarked in electronic music at seventeen — synthesizers first.
|
> Daniel started on drums at ten and embarked in electronic music at seventeen — synthesizers first.
|
||||||
> A metalhead at from a young age, he spent ten years as an engineer living near Detroit filling the
|
> A metalhead at from a young age, he spent ten years as an engineer living near Detroit filling the
|
||||||
> nights with synthesized tones and rhythms, shaped most of all by modern underground Detroit techno.
|
> nights with synthesized tones and rhythms, shaped most of all by modern underground Detroit techno.
|
||||||
@@ -196,10 +197,11 @@ Per card:
|
|||||||
> tools behind the tracks are just as important as the finished sound. To him the science and the
|
> tools behind the tracks are just as important as the finished sound. To him the science and the
|
||||||
> math matter as much as the beauty — tension and release, built deliberately.
|
> math matter as much as the beauty — tension and release, built deliberately.
|
||||||
|
|
||||||
> **Typo flags (for Daniel's confirmation — text preserved verbatim above, not auto-corrected):**
|
> **Typo flags (Daniel has chosen to KEEP these verbatim for now — text preserved above, not
|
||||||
> (1) "embarked **in** electronic music" reads as a likely slip for "embarked **on**"; (2) "A
|
> auto-corrected; flag retained so it isn't lost):** (1) "embarked **in** electronic music" reads as
|
||||||
> metalhead **at from** a young age" reads as a likely slip for "A metalhead **from** a young age."
|
> a likely slip for "embarked **on**"; (2) "A metalhead **at from** a young age" reads as a likely
|
||||||
> Both left as Daniel wrote them — his to confirm or keep.
|
> slip for "A metalhead **from** a young age." Both left as Daniel wrote them — his to revisit if he
|
||||||
|
> wants.
|
||||||
|
|
||||||
### 4.2 Optional split — the meeting / origin
|
### 4.2 Optional split — the meeting / origin
|
||||||
|
|
||||||
@@ -228,7 +230,7 @@ with a hand-rolled SVG icon in the existing `.feature-icon` slot:
|
|||||||
4. **Live Rig** — a big spread of hardware played 100% live, DAWless, sometimes fully improvised.
|
4. **Live Rig** — a big spread of hardware played 100% live, DAWless, sometimes fully improvised.
|
||||||
Built for the room / the warehouse.
|
Built for the room / the warehouse.
|
||||||
|
|
||||||
> `[COPY D — FOR APPROVAL — Process card bodies — REDRAFT per Daniel's "spice it up, no Octave One" note]`
|
> `[COPY D — APPROVED (provisional) — Process card bodies — wording may be revised later per Daniel]`
|
||||||
> 1. *Sketch — A loop starts on the Force or the MPC, hands on the pads. The idea has to survive
|
> 1. *Sketch — A loop starts on the Force or the MPC, hands on the pads. The idea has to survive
|
||||||
> first contact before anything else gets built around it.*
|
> first contact before anything else gets built around it.*
|
||||||
> 2. *Arrange — Sometimes into Ableton, sometimes start-to-finish in REAPER. The track gets shaped
|
> 2. *Arrange — Sometimes into Ableton, sometimes start-to-finish in REAPER. The track gets shaped
|
||||||
@@ -244,9 +246,9 @@ with a hand-rolled SVG icon in the existing `.feature-icon` slot:
|
|||||||
> the room. The soul in this music is designed, not extracted; assembled, not distilled.
|
> the room. The soul in this music is designed, not extracted; assembled, not distilled.
|
||||||
|
|
||||||
(The "designed, not extracted / assembled, not distilled / constructed, not grown" line is the
|
(The "designed, not extracted / assembled, not distilled / constructed, not grown" line is the
|
||||||
sharpest statement of the logos register and the soul-is-engineered thesis. Recommend it land here,
|
sharpest statement of the logos register and the soul-is-engineered thesis. **RESOLVED
|
||||||
in the Process movement, rather than the hero — it's the *why behind the method*, and it pays off
|
(2026-06-17): it lands here, in the Process movement** — carried by COPY D-intro above — not the
|
||||||
the dark band. Flag for Daniel: hero standfirst vs. Process — his call.)
|
hero. It is the *why behind the method* and pays off the dark band.)
|
||||||
|
|
||||||
Below the dark band: a **full-bleed parallax** (IMG SLOT D — **hands-on-gear shot**, the literal
|
Below the dark band: a **full-bleed parallax** (IMG SLOT D — **hands-on-gear shot**, the literal
|
||||||
proof-of-effort image). Home's trailing `mixer.jpg` / `mixer-bw.jpg` pair is the precedent.
|
proof-of-effort image). Home's trailing `mixer.jpg` / `mixer-bw.jpg` pair is the precedent.
|
||||||
@@ -326,44 +328,38 @@ If only 4 files arrive, the two safe drops are slot B (the hero column A already
|
|||||||
and slot E (the closing band is decorative). The two bio portraits (C1/C2) and one gear shot (D) are
|
and slot E (the closing band is decorative). The two bio portraits (C1/C2) and one gear shot (D) are
|
||||||
the load-bearing four.
|
the load-bearing four.
|
||||||
|
|
||||||
### Image hosting — OPEN QUESTION for implementation
|
### Image hosting — RESOLVED (2026-06-17)
|
||||||
|
|
||||||
**Where do these images physically live, and by what path are they served?** Two precedents exist in
|
**Static serving under `DeepDrftPublic/wwwroot/img/`, same as the existing Home photos.** The About
|
||||||
the repo and they differ:
|
page is not dynamic — these are marketing chrome with the exact lifecycle of the Home photos
|
||||||
|
(`dd-duo-hero.jpeg`, `mixer.jpg`, etc.), committed static assets referenced as `img/...`. **No image
|
||||||
- **Static `wwwroot/img/`** — every Home page image (`dd-duo-hero.jpeg`, `mixer.jpg`, etc.) is a
|
vault** — that machinery is for *content* (release covers, session hero images tied to releases), and
|
||||||
committed static asset under `DeepDrftPublic/wwwroot/img/`, referenced as `img/...`. Simplest;
|
the About portraits are chrome, not content. Files drop into `wwwroot/img/` and are referenced
|
||||||
these are brand/marketing assets, not catalogue content. **This is the likely right home** for the
|
directly.
|
||||||
About images by direct analogy to Home.
|
|
||||||
- **Image vault / streaming endpoint** — release cover art and session hero images go through the
|
|
||||||
FileDatabase Image vault and the unauthenticated image-streaming endpoint. That machinery is for
|
|
||||||
*content* (covers, hero images tied to releases), not chrome. The About portraits are chrome.
|
|
||||||
|
|
||||||
**Recommendation (flag, do not resolve):** put the About images in `wwwroot/img/` alongside the Home
|
|
||||||
assets — they are marketing chrome with the exact lifecycle of the existing Home photos. Only reach
|
|
||||||
for the vault if Daniel wants these editable from the CMS, which the brief gives no signal of. **This
|
|
||||||
is staff-engineer's call at implementation; named here so it isn't discovered mid-build.**
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 9. Open questions (for Daniel)
|
## 9. Open questions — resolved 2026-06-17
|
||||||
|
|
||||||
1. **Khabran's bio.** Not yet supplied — the card renders its body slot empty/placeholder until it
|
The structure and all copy are signed off (Phase 12). **The only remaining open item is item 2 —
|
||||||
arrives. Daniel's bio is drafted from the transcript (`[COPY C]`); both are his to finalise.
|
final photo files.** Everything else is resolved.
|
||||||
2. **Final photos.** 4–5 files still being sorted; every image slot is a TODO. Spec is laid out so
|
|
||||||
placement is ready when files arrive (§8).
|
1. **Khabran's bio.** **RESOLVED** — build the card now with an empty/placeholder body slot; Daniel
|
||||||
3. **Image hosting path.** `wwwroot/img/` (recommended, Home-analogous) vs. the image vault. Flagged
|
drops his text in later. The card composes with the body absent (§4.1). Daniel's bio (`[COPY C]`)
|
||||||
for staff-engineer; recommendation in §8.
|
is approved verbatim.
|
||||||
4. **CUTS / SESSIONS / MIXES — explained on About?** **RESOLVED (2026-06-17): yes, via the
|
2. **Final photos. — STILL OPEN (the one remaining TODO).** 4–5 files still being sorted; every image
|
||||||
one-line-per-medium `.medium-card` grid (§6.1), per COPY F approval.**
|
slot stays a graceful-degrade placeholder until files land. Spec is laid out so placement is ready
|
||||||
5. **Where does the "designed, not extracted" thesis land** — hero standfirst or the Process
|
when files arrive (§8).
|
||||||
movement? Recommend Process (§5). *(Still open — Daniel resolving separately.)*
|
3. **Image hosting path.** **RESOLVED** — static `DeepDrftPublic/wwwroot/img/`, same as Home photos;
|
||||||
6. **Hero title wording** — "Who We Are" vs. "The Collective" vs. a Deep/DRFT masthead echo. Header
|
no image vault (§8).
|
||||||
is proposed; Daniel's call. *(Still open — Daniel resolving separately.)*
|
4. **CUTS / SESSIONS / MIXES — explained on About?** **RESOLVED** — yes, via the one-line-per-medium
|
||||||
7. **Copy status (2026-06-17 review):** A, B, C, E, D-intro, F, G, H are **APPROVED** (Daniel's
|
`.medium-card` grid (§6.1), per COPY F approval.
|
||||||
verbatim words). **D (Process card bodies) is a fresh DRAFT** pending Daniel's pass. **Khabran's
|
5. **Where does the "designed, not extracted" thesis land?** **RESOLVED** — the Process movement,
|
||||||
bio is still TODO** (item 1). Two suggested typo-fixes in COPY C are flagged inline for Daniel's
|
carried by COPY D-intro (§5).
|
||||||
confirmation; his text is preserved verbatim.
|
6. **Hero title wording.** **RESOLVED** — "The <em>Collective</em>" (§3).
|
||||||
|
7. **Copy status.** **RESOLVED** — all COPY blocks (A–H, D-intro) approved; D (Process card bodies)
|
||||||
|
approved *provisionally* (wording may be reworded later per Daniel). The two suggested typo-fixes
|
||||||
|
in COPY C are flagged inline; Daniel has chosen to keep his text verbatim for now.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user