Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,12 @@ unchanged. The build is a static export deployed to GitHub Pages.
(`work.html`, `assets/css/style.css`, `favicon.svg`) so the site works under both
the GitHub Pages subpath and the apex domain. `base` stays `/`; do not switch to
root-absolute asset paths.
- **House voice uses em dashes** and all-caps letter-spaced labels. Match the existing
editorial tone; do not strip em dashes in this repo (content or code).
- **Never use em dashes in copy** — not in page content, titles, metadata, alt text,
UI strings, or anything else that ships. Restructure the sentence instead: a comma,
colon, or period in prose, a pipe in titles. `tools/validate_site.py` fails CI on
any em dash (or `—` entity) in the built output. The house voice keeps the
all-caps letter-spaced labels and the editorial tone; it just makes its cuts with
other punctuation.
- Keep metadata honest and present-day. No Wix boilerplate ("Mysite", "Cordan", lorem
ipsum) — CI fails on it.

Expand Down Expand Up @@ -149,7 +153,8 @@ Two dependency-free validators guard the repo; they read the build output. Run
(`.github/workflows/ci.yml`) builds then runs both on every push and PR:

- `python3 tools/validate_site.py [dir]` — internal links and anchors resolve, gallery
keys match their JSON, no template junk. Reports unfilled `assets/img/` slots as INFO.
keys match their JSON, no template junk, and no em dashes (literal or entity) in any
shipped text file. Reports unfilled `assets/img/` slots as INFO.
- `python3 tools/seo_check.py [dir]` — the SEO invariants (one `<title>`, meta
description, canonical, required `og:*`/`name` meta, `og:image` resolves, favicon /
manifest / stylesheet links, one `<h1>`, `alt` on every `<img>`, valid JSON-LD keyed
Expand Down Expand Up @@ -294,8 +299,9 @@ for unattended growth, not targets to fill:
unattended run: open a PR describing the proposal instead, and say why, so a human
decides.
- On-brand and professional only; honor the personal-site / no-employer and
no-confidential-work rules above, and keep the house voice (em dashes, editorial
tone). No private individuals without clear professional context.
no-confidential-work rules above, and keep the house voice (editorial tone, all-caps
labels, and no em dashes — restructure the sentence instead). No private individuals
without clear professional context.
- Idempotent via the ledger. Prefer skipping when unsure — a weekly cadence makes a
miss harmless, and a skipped post can still be incorporated by a later run if it
keeps mattering.
Expand All @@ -309,7 +315,8 @@ for unattended growth, not targets to fill:
ship to the browser.)
- Do not switch internal links/assets to root-absolute paths; keep them relative so
the subpath and apex domain both work.
- Do not strip em dashes; they are the house voice here.
- Do not use em dashes in copy or in anything that ships to `dist/`; restructure the
sentence instead. CI (`tools/validate_site.py`) fails on them.
- Do not hand-write or desync the `<head>`, JSON-LD, or sitemap when adding pages; the
head is generated by `BaseLayout` and keyed to the canonical origin.
- Do not present Quentin as speaking for an employer in metadata or structured data,
Expand Down
24 changes: 12 additions & 12 deletions content/about.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
seo:
title: "About Quentin Fears | From actor to fashion creative leader"
description: "How Quentin Fears went from actor to celebrity stylist to a creative leader in enterprise fashion a method rooted in story and character."
ogTitle: "About Quentin Fears"
ogDescription: "From actor to fashion creative leader a method rooted in story and character."
title: "About | Quentin Fears | From actor to fashion creative leader"
description: "How Quentin Fears went from actor to celebrity stylist to a creative leader in enterprise fashion, with a method rooted in story and character."
ogTitle: "About | Quentin Fears"
ogDescription: "From actor to fashion creative leader, with a method rooted in story and character."
ogType: "profile"
hero:
eyebrow: "About"
heading: "I've mastered the execution.<br>Now I lead the vision."
intro: "I didn't set out to be a stylist. I trained as an actor which is exactly why my work has always been about story before surface."
intro: "I didn't set out to be a stylist. I trained as an actor, which is exactly why my work has always been about story before surface."
portrait:
src: "assets/img/about-portrait.jpg"
alt: "Portrait of Quentin Fears"
tag: "Portrait"
label: "Quentin Fears"
prose: |
<p><span class="drop">I</span> earned a BFA in acting before I ever pulled a rack of clothes. When I fell into fashion, I fell hard and I brought the actor's toolkit with me. I still work a shoot the way I'd work a role, asking three questions: <strong>what story am I telling, who is the person wearing the clothes, and how do the clothes change them?</strong> An editorial isn't an outfit. It's a mini-play.</p>
<p>That instinct got noticed early. Nikki Fowler, editor-in-chief of Glitter Magazine, was the first to believe in me as an editorial stylist she let me style the spreads, art direct, and produce the shoots. I joined the developmental creative team at <strong>Ladygunn</strong>, sharpened my styling and my art direction, and became <strong>fashion editor at Sheen Magazine</strong> and host of <em>The Journey</em> on Sheen Talk Live.</p>
<p><span class="drop">I</span> earned a BFA in acting before I ever pulled a rack of clothes. When I fell into fashion, I fell hard, and I brought the actor's toolkit with me. I still work a shoot the way I'd work a role, asking three questions: <strong>what story am I telling, who is the person wearing the clothes, and how do the clothes change them?</strong> An editorial isn't an outfit. It's a mini-play.</p>
<p>That instinct got noticed early. Nikki Fowler, editor-in-chief of Glitter Magazine, was the first to believe in me as an editorial stylist: she let me style the spreads, art direct, and produce the shoots. I joined the developmental creative team at <strong>Ladygunn</strong>, sharpened my styling and my art direction, and became <strong>fashion editor at Sheen Magazine</strong> and host of <em>The Journey</em> on Sheen Talk Live.</p>
<p>Then came the work most people know me for: <strong>celebrity and red-carpet styling</strong> for Macy Gray, Skai Jackson, Norman Reedus, Keesha Sharp, EJ Johnson, and Garcelle Beauvais; editorial and commercial campaigns; and commentary in <strong>TIME</strong> and <strong>Glamour</strong> on how clothes shape the way we're read.</p>
<p>These days I work upstream. I lead <strong>visual merchandising and styling in enterprise fashion at Walmart</strong> the largest retailer in the world. I develop the central concept, set the point of view, turn business goals into a visual language, and direct the teams that execute it at national scale. I didn't leave styling behind. I built on top of it. The years of sourcing, fitting, and producing are exactly what make my direction credible: I know what it takes to turn an idea into clothes, sets, people, stores, and campaigns.</p>
<p>The through-line hasn't changed since the acting classroom. <strong>Style is how people and brands tell the world who they are and who they intend to become.</strong> My job is to help them tell it well.</p>
<p>These days I work upstream. I lead <strong>visual merchandising and styling in enterprise fashion at Walmart</strong>, the largest retailer in the world. I develop the central concept, set the point of view, turn business goals into a visual language, and direct the teams that execute it at national scale. I didn't leave styling behind. I built on top of it. The years of sourcing, fitting, and producing are exactly what make my direction credible: I know what it takes to turn an idea into clothes, sets, people, stores, and campaigns.</p>
<p>The through-line hasn't changed since the acting classroom. <strong>Style is how people and brands tell the world who they are, and who they intend to become.</strong> My job is to help them tell it well.</p>
arc:
eyebrow: "The arc"
heading: "Executor to leader."
items:
- year: "Start"
title: "Trained as an actor"
body: "BFA in acting the origin of a story-first method."
body: "BFA in acting: the origin of a story-first method."
- year: "Editorial"
title: "Glitter Magazine"
body: "First championed as an editorial stylist, art director, and producer by EIC Nikki Fowler."
Expand All @@ -34,13 +34,13 @@ arc:
body: "Honed styling and art direction on the developmental creative team."
- year: "Voice"
title: "Sheen Magazine & Sheen Talk Live"
body: "Fashion editor, and host of <em>The Journey</em> building the on-camera voice."
body: "Fashion editor and host of <em>The Journey</em>, building the on-camera voice."
- year: "Profile"
title: "Celebrity styling · TIME · Glamour"
body: "Red-carpet and editorial work, plus national commentary on style and perception."
- year: "Now"
title: "Enterprise fashion leadership"
body: "I lead visual merchandising and styling at Walmart creative direction at national retail scale."
body: "I lead visual merchandising and styling at Walmart: creative direction at national retail scale."
cta:
heading: "Work with me."
body: "Creative direction, visual strategy, speaking, hosting, or personal styling."
Expand Down
6 changes: 3 additions & 3 deletions content/contact.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
seo:
title: "Contact & Book Quentin Fears"
title: "Contact & Book | Quentin Fears"
description: "Contact Quentin Fears for corporate creative direction, speaking, media and hosting, or personal styling. One form, routed to the right conversation."
ogTitle: "Contact & Book Quentin Fears"
ogTitle: "Contact & Book | Quentin Fears"
ogDescription: "Corporate creative direction, speaking, media, or personal styling."
ogType: "website"
hero:
eyebrow: "Contact & book"
heading: "Tell me what you have in mind."
intro: "Shaping a brand, programming an event, casting a host, or investing in how you show up — whatever it is, tell me about it and I'll come back to you."
intro: "Shaping a brand, programming an event, casting a host, or investing in how you show up. Whatever it is, tell me about it and I'll come back to you."
inquiries:
- asideTitle: "Corporate & enterprise"
asideBody: "Creative direction, visual strategy, and campaign consulting."
Expand Down
20 changes: 10 additions & 10 deletions content/home.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
seo:
title: "Quentin Fears Fashion Creative Leader & Visual Strategist"
description: "Quentin Fears is a fashion creative leader, visual strategist, speaker, and host helping brands and people communicate who they are through style."
ogTitle: "Quentin Fears Fashion Creative Leader & Visual Strategist"
ogDescription: "Helping brands and people communicate who they areand who they're becoming through style."
title: "Quentin Fears | Fashion Creative Leader & Visual Strategist"
description: "Quentin Fears is a fashion creative leader, visual strategist, speaker, and host, helping brands and people communicate who they are through style."
ogTitle: "Quentin Fears | Fashion Creative Leader & Visual Strategist"
ogDescription: "Helping brands and people communicate who they are, and who they're becoming, through style."
ogType: "website"
hero:
eyebrow: "Fashion creative leadership & visual strategy"
role: "Fashion creative leader, visual strategist, speaker & host."
philosophy: "I help brands and people use style to say who they are and who they're becoming. I've spent a decade proving it look by look. Now I direct the vision."
philosophy: "I help brands and people use style to say who they are, and who they're becoming. I've spent a decade proving it look by look. Now I direct the vision."
buttons:
- label: "Start a project"
href: "contact.html"
Expand All @@ -25,11 +25,11 @@ hero:
src: "assets/img/hero-portrait.jpg"
alt: "Quentin Fears"
tag: "Portrait"
label: "Quentin Fears directing on set"
label: "Quentin Fears directing on set"
proof:
- num: "01"
title: "I lead at scale"
body: "I direct visual merchandising and styling in enterprise fashion at Walmart the largest retailer in the world."
body: "I direct visual merchandising and styling in enterprise fashion at Walmart, the largest retailer in the world."
- num: "02"
title: "I'm quoted on it"
body: "TIME and Glamour have come to me on how what you wear changes the way you're read at work."
Expand All @@ -47,15 +47,15 @@ selectedWork:
cards:
- tag: "Enterprise"
title: "Making an everyday brand feel intentional"
body: "I turn business goals into a visual language across campaigns, store floors, and the teams who build them."
body: "I turn business goals into a visual language across campaigns, store floors, and the teams who build them."
href: "work.html"
- tag: "Point of view"
title: "The office dress code, after it broke"
body: "When offices reopened, the old rules were dead. I said so in TIME, and people still repeat it back to me."
href: "ideas.html"
- tag: "Editorial"
title: "Styling as a mini-play"
body: "I treat a shoot like a role story, character, and what the clothes do to the person wearing them."
body: "I treat a shoot like a role: story, character, and what the clothes do to the person wearing them."
href: "work.html"
moreLabel: "See the full body of work"
moreHref: "work.html"
Expand All @@ -77,7 +77,7 @@ testimonials:
- quote: "He listens first, then translates exactly what you're trying to say into something you can see and wear."
name: "Santana Dempsey"
role: "Actor & client"
- quote: "Reliable on set and a real collaborator on the design — he understands what it takes to actually produce the work."
- quote: "Reliable on set and a real collaborator on the design. He understands what it takes to actually produce the work."
name: "Brian S."
role: "Photographer & collaborator"
- quote: "He stepped into a mentor role and taught me a whole language of how to dress."
Expand Down
32 changes: 16 additions & 16 deletions content/ideas.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
seo:
title: "Ideas Quentin Fears | Style, identity & perception"
description: "Quentin Fears on style as strategy: how clothing shapes identity, perception, and possibility with his TIME commentary and closet-cleanse thesis."
ogTitle: "Ideas Quentin Fears"
title: "Ideas | Quentin Fears | Style, identity & perception"
description: "Quentin Fears on style as strategy: how clothing shapes identity, perception, and possibility, with his TIME commentary and closet-cleanse thesis."
ogTitle: "Ideas | Quentin Fears"
ogDescription: "Style as strategy: identity, perception, and possibility."
ogType: "website"
hero:
Expand All @@ -14,11 +14,11 @@ timeFeature:
alt: "Quentin Fears in TIME"
tag: "TIME"
label: "Featured in TIME Magazine"
eyebrow: "Featured TIME"
eyebrow: "Featured in TIME"
heading: "New rules for office dressing"
pullquote: "Before, there was a stuffy sort of, \"we all need to dress this one way\" as part of what it means to be a professional. You would assume someone wearing a suit has a lot of money. Now that's been flipped on its head the guy in the hoodie makes just as much, or maybe more."
attribution: "Quentin Fears TIME, \"The Return to the Workplace Means New Rules for Office Dressing\""
lead: "The real subject isn't hemlines. It's how dress, identity, race, and perception tangle together. Clothing is never neutral. It gets read and it gets read differently depending on who's wearing it. That's the territory I speak and write about."
pullquote: "Before, there was a stuffy sort of, \"we all need to dress this one way\" as part of what it means to be a professional. You would assume someone wearing a suit has a lot of money. Now that's been flipped on its head: the guy in the hoodie makes just as much, or maybe more."
attribution: "Quentin Fears in TIME, \"The Return to the Workplace Means New Rules for Office Dressing\""
lead: "The real subject isn't hemlines. It's how dress, identity, race, and perception tangle together. Clothing is never neutral. It gets read, and it gets read differently depending on who's wearing it. That's the territory I speak and write about."
thesis:
eyebrow: "A recurring thesis"
quote: "Making room in your closet is making room in your <span class=\"accent\">life</span>."
Expand All @@ -34,31 +34,31 @@ notes:
- title: "Aspiration without intimidation"
body: "Good style work makes people reach higher without making them feel shut out. Accessible and aspirational are not opposites."
- title: "Confidence is a skill"
body: "How you walk into a room can be practiced. Clothing is the fastest lever I know and it works before you say a word."
body: "How you walk into a room can be practiced. Clothing is the fastest lever I know, and it works before you say a word."
reels:
eyebrow: "In motion"
heading: "Short reels, same throughline."
intro: "Quick style ideas from the feed — tap to play."
intro: "Quick style ideas from the feed. Tap to play."
items:
- poster:
src: "assets/img/reel-possibilities.jpg"
alt: "Quentin Fears reel style is about possibilities"
alt: "Quentin Fears reel: style is about possibilities"
tag: "Reel"
label: "Instagram reel"
caption: "Style isn't about outfits — it's about possibilities. Every piece has more than one life."
caption: "Style isn't about outfits. It's about possibilities. Every piece has more than one life."
permalink: "https://www.instagram.com/p/DaiPc-DhCht/"
videoSrc: "assets/video/reel-possibilities.mp4"
- poster:
src: "assets/img/reel-character.jpg"
alt: "Quentin Fears reel character development, not outfit changes"
alt: "Quentin Fears reel: character development, not outfit changes"
tag: "Reel"
label: "Instagram reel"
caption: "Not outfit changes — character development. Same person, different edit."
caption: "Not outfit changes. Character development. Same person, different edit."
permalink: "https://www.instagram.com/p/DZ5BlpcRzZv/"
videoSrc: "assets/video/reel-character.mp4"
- poster:
src: "assets/img/reel-closet.jpg"
alt: "Quentin Fears reel a closet cleanse can be a soul cleanse"
alt: "Quentin Fears reel: a closet cleanse can be a soul cleanse"
tag: "Reel"
label: "Instagram reel"
caption: "Sometimes making room in your closet is the first step to making room in your life."
Expand All @@ -67,7 +67,7 @@ reels:
formats:
eyebrow: "Signature formats"
heading: "Three series I keep coming back to."
intro: "The recurring formats that carry these ideas across social, speaking, and eventually a book."
intro: "The recurring formats that carry these ideas across social, speaking, and eventually a book."
items:
- tag: "Series 01"
title: "Dress With Intent"
Expand All @@ -77,7 +77,7 @@ formats:
body: "I take a finished piece of work apart: the problem, the story, the constraints, the calls I made."
- tag: "Series 03"
title: "The Come-Up"
body: "Letters to people starting out in fashion and the working notebook for a book I'm going to write."
body: "Letters to people starting out in fashion, and the working notebook for a book I'm going to write."
cta:
heading: "I bring these ideas to stages, panels, and classrooms."
body: "Keynotes, panels, and workshops built from this point of view."
Expand Down
Loading
Loading