Pattern catalog · 6 of 6 loaded
v1.0Spring 2026Internal reference
Web Build Templates
Pattern Reference

Services library

6 services patterns
v1.0 · Spring 2026
Live

Six ways to present services — from the typographic list to the decision tree. Skip the three-icon-grid cliché.

How to use this: The services page is where buyers self-qualify. Match the structure to how customers actually shop: linear (process), comparative (vs. usual), exploratory (decision tree), specific (menu).

For studios and agencies, "through cases" usually outperforms feature lists. For service businesses with confused prospects, the decision tree converts better than any other pattern in this library.

01

Typographic List

Typographic

Services as a numbered list with serif type. No icons, no cards. The classic three-icon-grid replaced with something readable. For studios, consultants.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;1,9..144,400&family=Inter:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#f4efe6;color:#1a1814;line-height:1.5}
.s{padding:64px 48px;max-width:1100px;margin:0 auto}
.hd{margin-bottom:48px;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;border-bottom:1px solid rgba(26,24,20,.2);padding-bottom:24px}
.k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#a4341e;font-weight:600;margin-bottom:12px}
.h{font-family:'Fraunces',serif;font-weight:400;font-size:60px;letter-spacing:-.025em;line-height:1.0}
.h em{font-style:italic;color:#a4341e}
.sb{font-size:15px;color:#5a5040;line-height:1.55;padding-bottom:8px;max-width:38ch}
.lst{display:flex;flex-direction:column}
.it{display:grid;grid-template-columns:80px 1fr 200px;gap:36px;padding:28px 0;border-bottom:1px solid rgba(26,24,20,.15);align-items:start}
.it:last-child{border-bottom:none}
.n{font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:48px;color:#a4341e;letter-spacing:-.02em;line-height:1}
.bd .nm{font-family:'Fraunces',serif;font-weight:600;font-size:32px;letter-spacing:-.015em;line-height:1.1;margin-bottom:8px}
.bd .nm em{font-style:italic;color:#a4341e;font-weight:400}
.bd p{font-size:15px;color:#3a352e;line-height:1.6;margin-bottom:10px;max-width:48ch}
.bd .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.bd .tag{padding:3px 10px;background:#fff;color:#5a5040;border:1px solid #d8cdb6;border-radius:999px;font-size:11px;letter-spacing:.04em;font-family:'Inter',sans-serif}
.meta{padding-top:6px;text-align:right;font-family:'Inter',sans-serif;font-size:13px;color:#5a5040}
.meta b{display:block;font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:#1a1814;letter-spacing:-.015em;margin-bottom:4px;text-align:right}
.meta b em{color:#a4341e;font-style:italic;font-weight:400}
.meta span{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#9b8e7c;margin-top:2px}
.f{margin-top:24px;padding:18px 0;border-top:1px solid rgba(26,24,20,.2);display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#5a5040}
.f a{color:#1a1814;text-decoration:none;border-bottom:2px solid #a4341e;padding-bottom:1px}
@media(max-width:880px){.s{padding:36px 24px}.hd{grid-template-columns:1fr}.h{font-size:36px}.it{grid-template-columns:1fr;gap:8px}.meta{text-align:left}.meta b{text-align:left}.n{font-size:32px}}</style></head><body><section class="s">
<header class="hd"><div><div class="k">— What we do</div><h1 class="h">Three things, <em>done well</em>.</h1></div>
<p class="sb">Most studios offer twelve services and master none. We do three. Take all three or just one.</p></header>
<div class="lst">
<div class="it"><div class="n">01</div><div class="bd"><div class="nm">Identity <em>&amp; positioning</em></div><p>Naming, marks, type system, color, voice. The kind of brand work that stays useful for ten years. Starts with strategy, ends with documentation your team will actually use.</p><div class="tags"><span class="tag">Naming</span><span class="tag">Logo + system</span><span class="tag">Type + color</span><span class="tag">Voice</span></div></div><div class="meta"><b>From <em>$24,000</em></b><span>4–6 weeks · fixed price</span></div></div>
<div class="it"><div class="n">02</div><div class="bd"><div class="nm">Web design <em>&amp; build</em></div><p>Marketing site, design system, custom build. We don't use Squarespace or Webflow boilerplate. Includes 90 days of post-launch refinements at no charge.</p><div class="tags"><span class="tag">Design</span><span class="tag">Build</span><span class="tag">CMS</span><span class="tag">Hosting setup</span></div></div><div class="meta"><b>From <em>$48,000</em></b><span>8–12 weeks · fixed price</span></div></div>
<div class="it"><div class="n">03</div><div class="bd"><div class="nm">Studio month <em>retainer</em></div><p>A senior pair of designers on call, half-time, for ongoing work. Quarterly minimum, paused anytime after. The way most of our long-term clients work with us.</p><div class="tags"><span class="tag">Half-time pair</span><span class="tag">Weekly sessions</span><span class="tag">Pause anytime</span></div></div><div class="meta"><b>$18,000<em>/mo</em></b><span>quarterly · retainer</span></div></div>
</div>
<div class="f"><div>Currently booking Q3 2026 · Two openings remaining</div><div><a href="#">Start a project →</a></div></div>
</section></body></html>
02

Vs. the Usual

Comparison

Services framed against "how it usually works." Two-column split. Disarming, opinionated. For services going against industry conventions.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,600&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#fff;color:#0a0a0a;line-height:1.5}
.s{padding:48px 36px;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:32px}
.hd{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:end;border-bottom:1px solid #e5e5e5;padding-bottom:24px}
.k{font-family:'Fraunces',serif;font-style:italic;font-size:13px;color:#a4341e;margin-bottom:14px}
.h{font-family:'Fraunces',serif;font-weight:400;font-size:56px;letter-spacing:-.025em;line-height:1.05}
.h em{font-style:italic;color:#a4341e}
.sb{font-size:15px;color:#555;line-height:1.55;max-width:38ch;padding-bottom:8px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#f5f1ec;border-radius:14px;overflow:hidden;border:1px solid #e8e1d4}
.col{padding:28px;display:flex;flex-direction:column;gap:18px}
.col.x{border-right:1px solid #e8e1d4}
.col.y{background:#0a0a0a;color:#fff}
.col-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,.15)}
.col.y .col-head{border-color:rgba(255,255,255,.15)}
.col-tag{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#999;font-weight:600;font-family:'Inter',sans-serif}
.col.y .col-tag{color:#aaa}
.col-h{font-family:'Fraunces',serif;font-weight:400;font-size:24px;letter-spacing:-.015em;line-height:1.1;margin-top:6px;font-style:italic}
.col.y .col-h{color:#fff}
.col-h em{font-style:italic}
.col.x .col-h{color:#666}
.lst{list-style:none;display:flex;flex-direction:column;gap:14px;font-size:14px;line-height:1.55}
.lst li{display:flex;gap:10px;align-items:start}
.lst li::before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:8px}
.col.x .lst li::before{background:#bbb}
.col.y .lst li::before{background:#a4341e}
.col.x .lst li{color:#666}
.col.x .lst li b{color:#0a0a0a;font-weight:500}
.col.y .lst li b{color:#fff;font-weight:500}
.svc{margin-top:14px}
.svc-row{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:18px 0;border-bottom:1px solid #e5e5e5;font-size:15px}
.svc-row:last-child{border-bottom:none}
.svc-row b{font-family:'Fraunces',serif;font-weight:600;font-size:21px;letter-spacing:-.01em;line-height:1}
.svc-row .desc{color:#555;line-height:1.5;font-size:14px}
.svc-row .price{font-family:'Fraunces',serif;font-style:italic;font-size:18px;color:#a4341e;text-align:right;font-weight:400}
.svc-row .price small{display:block;font-style:normal;font-family:'Inter',sans-serif;font-size:11px;color:#999;letter-spacing:.04em;text-transform:uppercase;margin-top:2px}
.f{padding-top:18px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#666;border-top:1px solid #e5e5e5}
.btn{padding:13px 28px;background:#0a0a0a;color:#fff;border:none;font-family:inherit;font-weight:600;font-size:14px;border-radius:999px;cursor:pointer}
.btn:hover{background:#a4341e}
@media(max-width:880px){.hd{grid-template-columns:1fr;gap:18px}.row{grid-template-columns:1fr}.col.x{border-right:none;border-bottom:1px solid #e8e1d4}.h{font-size:36px}.svc-row{grid-template-columns:1fr;gap:8px}.svc-row .price{text-align:left}}</style></head><body><section class="s">
<header class="hd"><div><div class="k">Our services, & how we differ</div><h1 class="h">We work <em>differently</em>, on purpose.</h1></div>
<p class="sb">Most TC services charge per-month subscriptions and hand you off to whoever's free. We don't.</p></header>
<div class="row">
<div class="col x"><div class="col-head"><span class="col-tag">— How it usually goes</span></div><div><div class="col-h">The typical TC service</div><ul class="lst"><li><b>Monthly subscriptions</b> whether or not you close anything.</li><li><b>You get the next available coordinator</b> on the rotation, every time.</li><li><b>The TC and your client never speak.</b> Everything routes through you.</li><li><b>Files closed, but inconsistently;</b> the documentation is whatever it needs to be.</li></ul></div></div>
<div class="col y"><div class="col-head"><span class="col-tag">— How we do it</span></div><div><div class="col-h">Bay Area TC</div><ul class="lst"><li><b>Pay only at closing.</b> $495 flat per closed transaction. Nothing if it doesn't close.</li><li><b>The same TC every time</b> for the agents we work with regularly. They learn your style.</li><li><b>Your client gets our direct line</b> and a "what to expect" packet on day one. They feel held.</li><li><b>Every file closes the same way.</b> Same checklist, same timeline format, same audit-ready documentation.</li></ul></div></div>
</div>
<div class="svc">
<div class="svc-row"><b>Contract-to-close</b><div class="desc">Full transaction management from acceptance to recording. Daily updates, calendar, escrow coordination.</div><div class="price">$495<small>/transaction · at closing</small></div></div>
<div class="svc-row"><b>Listing coordination</b><div class="desc">Listing input, photography scheduling, MLS, brochures, open house support, status updates.</div><div class="price">$295<small>/listing · at acceptance</small></div></div>
<div class="svc-row"><b>Buyer-side <em>only</em></b><div class="desc">Smaller scope — coordination, contingency tracking, lender follow-up. For agents who self-manage paperwork.</div><div class="price">$295<small>/transaction · at closing</small></div></div>
</div>
<footer class="f"><div>Pinellas, Hillsborough, Pasco, Manatee · Mon–Fri 9–5 ET</div><button class="btn">Send a contract →</button></footer>
</section></body></html>
03

Process Steps

Sequential

Services as a step-by-step process the client moves through. For project-based services where the journey IS the differentiator. Agencies, consultancies.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,800&family=Geist+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Bricolage Grotesque',sans-serif;background:#ebe8e1;color:#1a1a1a;line-height:1.5}
.s{padding:48px 36px;max-width:1200px;margin:0 auto}
.hd{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid rgba(26,26,26,.2)}
.k{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#ff6b35;margin-bottom:14px}
.h{font-size:56px;font-weight:800;letter-spacing:-.025em;line-height:1.0}
.h em{font-style:italic;color:#ff6b35;font-weight:600}
.sb{font-size:15px;color:#5a5346;line-height:1.55;max-width:38ch;padding-bottom:6px}
.tk{position:relative;display:flex;flex-direction:column;gap:0}
.tk::before{content:"";position:absolute;top:32px;bottom:32px;left:31px;width:2px;background:linear-gradient(180deg,#ff6b35 0%,#ff6b35 80%,transparent 100%);z-index:0}
.st{display:grid;grid-template-columns:64px 1fr;gap:32px;padding:14px 0 32px;position:relative;z-index:1}
.bb{width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid #1a1a1a;display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.02em;flex-shrink:0;color:#1a1a1a}
.st.cur .bb{background:#ff6b35;color:#fff;border-color:#ff6b35}
.st.done .bb{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
.bd{padding-top:14px}
.bd .tt{font-size:24px;font-weight:700;letter-spacing:-.015em;line-height:1.15;margin-bottom:6px}
.bd .tt em{font-style:italic;color:#ff6b35;font-weight:600}
.bd .when{font-family:'Geist Mono',monospace;font-size:11px;color:#ff6b35;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;font-weight:500}
.bd p{font-size:14px;line-height:1.6;color:#5a5346;margin-bottom:12px;max-width:54ch}
.bd p b{color:#1a1a1a;font-weight:600}
.deliv{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.deliv span{padding:5px 12px;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:999px;font-family:'Geist Mono',monospace;font-size:11px;color:#5a5346;letter-spacing:.04em}
.f{padding:18px 28px;background:#fff;border-radius:14px;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;font-size:14px;color:#5a5346}
.f b{font-family:'Geist Mono',monospace;font-size:11px;color:#1a1a1a;letter-spacing:.06em;text-transform:uppercase}
.btn{padding:13px 24px;background:#1a1a1a;color:#fff;border:none;font-family:inherit;font-weight:600;font-size:14px;border-radius:999px;cursor:pointer}
.btn:hover{background:#ff6b35}
@media(max-width:880px){.s{padding:32px 18px}.hd{grid-template-columns:1fr;gap:14px}.h{font-size:36px}.tk::before{left:23px}.st{grid-template-columns:48px 1fr;gap:18px}.bb{width:48px;height:48px;font-size:18px}.f{grid-template-columns:1fr}}</style></head><body><section class="s">
<header class="hd"><div><div class="k">— A typical engagement, in five steps</div><h1 class="h">How a project <em>actually goes</em>.</h1></div>
<p class="sb">Five phases, twelve to sixteen weeks total. You can step out after any phase — most clients take all five.</p></header>
<div class="tk">
<div class="st done"><div class="bb">01</div><div class="bd"><div class="tt">First call — <em>20 minutes</em></div><div class="when">Week 0 · No charge</div><p>You tell us what you're working on. We tell you whether what we do fits. <b>No NDAs, no decks, no proposals.</b> If we're right for each other we book a working session for the next week.</p></div></div>
<div class="st done"><div class="bb">02</div><div class="bd"><div class="tt">Discovery <em>&amp; strategy</em></div><div class="when">Weeks 1–2 · $12,000</div><p>A two-day working session, ten customer interviews, competitive review. Output is a 40-page strategic positioning document. <b>Cheapest part to do, hardest to skip.</b></p><div class="deliv"><span>Customer interviews</span><span>Positioning doc</span><span>Working session</span></div></div></div>
<div class="st cur"><div class="bb">03</div><div class="bd"><div class="tt">Identity <em>build</em></div><div class="when">Weeks 3–6 · Fixed scope</div><p>Wordmark, logo system, type, color, voice principles. Two design directions, one chosen, refined over three rounds. <b>Output is a polished brand book and asset library.</b></p><div class="deliv"><span>Logo + system</span><span>Type + color</span><span>Voice guidelines</span><span>Brand book (60pp)</span></div></div></div>
<div class="st"><div class="bb">04</div><div class="bd"><div class="tt">Site <em>design &amp; build</em></div><div class="when">Weeks 5–12 · Overlapping</div><p>Marketing site, design system, CMS, custom build. Wireframes by week 6, design by week 8, build complete by week 11. Soft launch by week 12.</p><div class="deliv"><span>8–12 page site</span><span>Design system</span><span>CMS configured</span><span>Soft launch</span></div></div></div>
<div class="st"><div class="bb">05</div><div class="bd"><div class="tt">Stewardship</div><div class="when">Weeks 13+ · Optional</div><p>A senior pair on call, half-time, for the first quarter after launch. <b>Refinements, additional pages, course corrections</b> — the work that always shows up after launch and never gets budgeted.</p><div class="deliv"><span>Half-time pair</span><span>Weekly check-in</span><span>Pause anytime</span></div></div></div>
</div>
<div class="f"><b>Currently booking<br>Q3 — two slots</b><div>Engagements typically start 4–6 weeks after the first call. Bigger projects book further out. <b>Q4 has three slots remaining.</b></div><button class="btn">Book a first call →</button></div>
</section></body></html>
04

Through Cases

Visual

Each service shown via a real example — case study mini-card per service. For agencies, studios, anywhere portfolio matters more than features.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Geist',sans-serif;background:#fafafa;color:#0a0a0a;line-height:1.5}
.s{padding:48px 36px;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:36px}
.hd{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;border-bottom:1px solid #e5e5e5;padding-bottom:24px}
.k{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#666;margin-bottom:14px}
.h{font-size:56px;font-weight:600;letter-spacing:-.025em;line-height:1.05}
.h em{font-style:italic;font-weight:500}
.sb{font-size:15px;color:#666;line-height:1.55;max-width:38ch;padding-bottom:8px}
.cs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.c{background:#fff;border:1px solid #e5e5e5;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.c:hover{transform:translateY(-3px);box-shadow:0 18px 32px -16px rgba(0,0,0,.15)}
.cv{aspect-ratio:5/3;background:linear-gradient(135deg,#7e3aff,#ff3a8c);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:18px;color:#fff;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.c.b .cv{background:linear-gradient(135deg,#5d6b3f,#1a1612)}
.c.c .cv{background:linear-gradient(135deg,#ff6b35,#ffaa3a)}
.cv::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='n'><feTurbulence baseFrequency='0.85'/></filter><rect width='400' height='400' filter='url(%23n)' opacity='0.4'/></svg>");mix-blend-mode:overlay;opacity:.3}
.cv span{position:relative;z-index:2}
.cb{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.svc{font-family:'Geist Mono',monospace;font-size:11px;color:#666;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.svc b{color:#0a0a0a;font-weight:600}
.cn{font-size:21px;font-weight:600;letter-spacing:-.015em;line-height:1.2}
.cn em{font-style:italic;font-weight:500}
.cd{font-size:14px;color:#444;line-height:1.55;flex:1}
.cd b{color:#0a0a0a;font-weight:500}
.rs{display:flex;gap:14px;flex-wrap:wrap;margin-top:auto;padding-top:14px;border-top:1px solid #f0f0f0;font-size:12px;color:#666}
.rs div{flex:1;min-width:90px}
.rs b{display:block;font-size:18px;font-weight:600;color:#0a0a0a;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.f{padding:24px 28px;background:#fff;border:1px solid #e5e5e5;border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;font-size:14px;color:#444;line-height:1.55}
.f b{color:#0a0a0a;font-weight:600}
.btn{padding:13px 24px;background:#0a0a0a;color:#fff;border:none;font-family:inherit;font-weight:600;font-size:14px;border-radius:999px;cursor:pointer}
@media(max-width:880px){.cs{grid-template-columns:1fr}.hd{grid-template-columns:1fr;gap:14px}.h{font-size:36px}.f{grid-template-columns:1fr}}</style></head><body><section class="s">
<header class="hd"><div><div class="k">— Three services, told through three projects</div><h1 class="h">What we do, <em>shown not said</em>.</h1></div>
<p class="sb">Skip the bullet-point services list. Here's what we actually built last year.</p></header>
<div class="cs">
<div class="c"><div class="cv"><span>2025 · 6 weeks</span></div><div class="cb"><div class="svc"><b>01.</b> Identity &amp; positioning</div><div class="cn">Renaming a 30-year-old <em>marina</em>.</div><p class="cd">"Joe's Marina" became <b>Salt &amp; Tide</b>. New mark, color, voice, signage. Same family, three generations, finally proud of the way the place looks.</p><div class="rs"><div><b>+38%</b>bookings YoY</div><div><b>62 / 80</b>slips, full Sat</div></div></div></div>
<div class="c b"><div class="cv"><span>2025 · 12 weeks</span></div><div class="cb"><div class="svc"><b>02.</b> Web design &amp; build</div><div class="cn">A <em>quiet site</em> for a noisy industry.</div><p class="cd">Nine pages. No carousels, no testimonials wall, no parallax. Just the work, told well. <b>For an indie law firm in Boston.</b></p><div class="rs"><div><b>4.2x</b>contact rate</div><div><b>1:48</b>avg time on page</div></div></div></div>
<div class="c c"><div class="cv"><span>2024 · ongoing</span></div><div class="cb"><div class="svc"><b>03.</b> Studio retainer</div><div class="cn">Three <em>years and counting</em>.</div><p class="cd">Senior pair, half-time, for a Series A health-tech client. <b>Quarterly engagements, no contract gymnastics.</b> We've now shipped 14 product surfaces with them.</p><div class="rs"><div><b>14</b>surfaces shipped</div><div><b>3 yrs</b>retained</div></div></div></div>
</div>
<div class="f"><div><b>Want the full story?</b> Each project has a longer write-up in our journal — usually 1,500–2,500 words about what we tried, what didn't work, and what we'd do differently. <b>No NDAs needed.</b></div><button class="btn">Read the cases →</button></div>
</section></body></html>
05

Decision Tree

Functional

Visitor self-selects the right service via a flowchart-style decision tree. Active rather than passive. For services where the right starting point isn't obvious.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'JetBrains Mono',monospace;background:#fafaf7;color:#000;font-size:13px;line-height:1.5}
.s{padding:36px 32px;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.bar{display:grid;grid-template-columns:repeat(12,1fr);border:2px solid #000}
.bar > *{padding:14px 16px;border-right:1px solid #000;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.bar > *:last-child{border-right:none}
.b1{grid-column:span 3;font-weight:700}.b2{grid-column:span 6;color:#666}.b3{grid-column:span 3;text-align:right}
.tit{padding:32px 28px;border:2px solid #000;border-top:none;background:#fff}
.tit h1{font-size:42px;font-weight:700;letter-spacing:-.025em;line-height:1.0;text-transform:uppercase;font-family:'JetBrains Mono',monospace}
.tit h1 .ac{background:#e6ff3c;padding:0 8px}
.tit p{margin-top:14px;font-size:14px;color:#555;max-width:60ch}
.tree{display:grid;grid-template-columns:1fr;gap:14px}
.q{border:2px solid #000;background:#fff;display:grid;grid-template-columns:140px 1fr;gap:0}
.q .ql{background:#000;color:#fff;padding:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.q .ql b{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1}
.q .ql span{font-size:10px;letter-spacing:.1em;margin-top:4px;color:#aaa}
.q .qr{padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.qq{font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.2}
.qq em{font-style:italic;color:#a4341e}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opts.three{grid-template-columns:1fr 1fr 1fr}
.opt{padding:14px 16px;background:#fafaf7;border:1.5px solid #000;cursor:pointer;display:flex;flex-direction:column;gap:4px;text-align:left;font-family:inherit;color:#000}
.opt:hover{background:#e6ff3c}
.opt.sel{background:#e6ff3c;font-weight:700}
.opt b{font-size:13px;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.opt b::after{content:"→";opacity:.5}
.opt span{font-size:11px;color:#555;letter-spacing:.04em}
.opt.sel span{color:#000}
.r{padding:24px;border:2px solid #000;background:#000;color:#fafaf7;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center}
.r .lbl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#e6ff3c}
.r .lbl b{display:block;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:24px;color:#fafaf7;text-transform:none;letter-spacing:-.02em;margin-top:4px}
.r p{font-size:13px;color:#aaa;line-height:1.55;max-width:50ch}
.r p b{color:#fafaf7;font-weight:500}
.btn{padding:14px 22px;background:#e6ff3c;color:#000;border:2px solid #e6ff3c;font-family:inherit;font-weight:700;font-size:12px;cursor:pointer;text-transform:uppercase;letter-spacing:.06em}
.btn:hover{background:#000;color:#e6ff3c}
@media(max-width:780px){.q{grid-template-columns:1fr}.opts,.opts.three{grid-template-columns:1fr}.r{grid-template-columns:1fr}.tit h1{font-size:28px}}</style></head><body><section class="s">
<div class="bar"><div class="b1">SERVICES://FIND</div><div class="b2">Self-select your starting point — three quick questions</div><div class="b3">v0.4.2</div></div>
<div class="tit"><h1>Which thing<br>do you <span class="ac">need</span> first?</h1><p>Most projects start with the wrong question. These three questions are usually enough to figure out where to actually begin — and which of our services to start with.</p></div>
<div class="tree">
<div class="q"><div class="ql"><b>Q1</b><span>WHAT YOU HAVE</span></div><div class="qr"><div class="qq">Do you have a <em>brand</em> already?</div><div class="opts"><button class="opt"><b>Yes — I'm happy with it</b><span>logo, type, voice all set</span></button><button class="opt sel"><b>Sort of — but it's tired</b><span>needs a refresh, not a rebuild</span></button><button class="opt"><b>No — starting from zero</b><span>name &amp; identity not yet set</span></button></div></div></div>
<div class="q"><div class="ql"><b>Q2</b><span>WHAT YOU NEED</span></div><div class="qr"><div class="qq">Do you have a <em>website</em> that works?</div><div class="opts three"><button class="opt"><b>Yes, fine for now</b><span>not the bottleneck</span></button><button class="opt sel"><b>Yes, but it's holding me back</b><span>looks dated, doesn't convert</span></button><button class="opt"><b>No site at all</b><span>or it's a placeholder</span></button></div></div></div>
<div class="q"><div class="ql"><b>Q3</b><span>WHAT YOU WANT</span></div><div class="qr"><div class="qq">Are you looking for <em>one project</em> or an <em>ongoing partner</em>?</div><div class="opts"><button class="opt sel"><b>One fixed project</b><span>scope, price, done</span></button><button class="opt"><b>Ongoing partnership</b><span>quarterly retainer, ad-hoc</span></button></div></div></div>
</div>
<div class="r"><div class="lbl">Recommended<b>WEB BUILD</b></div><p>Based on your answers, the <b>Web build</b> service is your starting point. Identity refresh can roll into Phase 2 if needed. About <b>10 weeks</b>, fixed scope, $48,000.</p><button class="btn">Start scoping →</button></div>
</section></body></html>
06

Service Menu

Tabular

Services like a restaurant menu — categorized, priced, with elegant typography. For service providers wanting transparency and considered presentation.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,500;1,300&family=Inter:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#1a1612;color:#f5f1e8;line-height:1.5}
.s{padding:48px 0;max-width:780px;margin:0 auto;padding-left:48px;padding-right:48px}
.hd{text-align:center;margin-bottom:48px;padding-bottom:36px;border-bottom:1px solid #c48d4f;display:flex;flex-direction:column;gap:14px;align-items:center}
.k{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#c48d4f;display:flex;align-items:center;gap:14px}
.k::before,.k::after{content:"";width:32px;height:1px;background:#c48d4f}
.h{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:64px;letter-spacing:-.01em;line-height:1.0;color:#f5f1e8}
.h em{font-style:italic;color:#c48d4f}
.dt{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;color:#a89c87;max-width:48ch;margin:0 auto;line-height:1.5}
.sec{margin-bottom:36px}
.sl{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;color:#c48d4f;margin-bottom:18px;display:flex;align-items:center;gap:14px}
.sl::after{content:"";flex:1;height:1px;background:rgba(196,141,79,.3)}
.it{display:grid;grid-template-columns:1fr auto;gap:24px;padding:14px 0;align-items:baseline}
.it .ln{display:flex;align-items:baseline;gap:14px;min-width:0}
.it .nm{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:24px;letter-spacing:-.005em;color:#f5f1e8;flex-shrink:0}
.it .nm em{font-style:italic;color:#c48d4f;font-weight:300}
.it .dots{flex:1;border-bottom:1px dotted rgba(196,141,79,.4);transform:translateY(-4px);min-width:30px}
.it .ds{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:#a89c87;line-height:1.5;margin-top:4px;max-width:48ch}
.it .pr{font-family:'Cormorant Garamond',serif;font-size:24px;color:#c48d4f;font-style:italic;font-weight:300;text-align:right;flex-shrink:0;letter-spacing:-.01em}
.it .pr small{display:block;font-size:11px;color:#7a7060;font-style:normal;font-family:'Inter',sans-serif;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.note{padding:18px 24px;background:rgba(196,141,79,.08);border-left:2px solid #c48d4f;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;color:#cbc1aa;line-height:1.5;margin-bottom:36px}
.f{text-align:center;padding-top:24px;border-top:1px solid rgba(196,141,79,.3)}
.f p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;color:#a89c87;margin-bottom:18px}
.btn{padding:14px 32px;background:transparent;color:#c48d4f;border:1px solid #c48d4f;font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.3em;text-transform:uppercase;cursor:pointer}
.btn:hover{background:#c48d4f;color:#1a1612}
@media(max-width:780px){.s{padding:32px 24px}.h{font-size:36px}.it{grid-template-columns:1fr}.it .pr{text-align:left;margin-top:8px}}</style></head><body><section class="s">
<header class="hd"><div class="k">Spring 2026 — Selections</div><h1 class="h">A small <em>menu</em> of what we offer.</h1><p class="dt">Updated quarterly. All prices fixed. All engagements include hand-finishing, polishing, and final review by a senior partner.</p></header>
<div class="sec"><div class="sl">Identity work</div>
<div class="it"><div><div class="ln"><span class="nm">Naming <em>&amp; verbal</em></span><span class="dots"></span></div><div class="ds">Naming, tagline, brand voice principles. Also good as a stand-alone for established brands resetting their language.</div></div><div class="pr">$14,000<small>3 weeks · fixed</small></div></div>
<div class="it"><div><div class="ln"><span class="nm">Mark &amp; system</span><span class="dots"></span></div><div class="ds">Wordmark, logo system, type, color, application across primary touchpoints. Final brand book at delivery.</div></div><div class="pr">$22,000<small>5 weeks · fixed</small></div></div>
<div class="it"><div><div class="ln"><span class="nm"><em>Full</em> identity</span><span class="dots"></span></div><div class="ds">Naming, mark, system, voice, packaging, signage system. The works. Most ambitious package; built to last 10+ years.</div></div><div class="pr">$48,000<small>10 weeks · fixed</small></div></div></div>
<div class="sec"><div class="sl">Web work</div>
<div class="it"><div><div class="ln"><span class="nm">Marketing site</span><span class="dots"></span></div><div class="ds">8–12 page custom marketing site, design system, CMS, hosting setup. 90 days of post-launch refinements included.</div></div><div class="pr">$48,000<small>10 weeks · fixed</small></div></div>
<div class="it"><div><div class="ln"><span class="nm">Single page</span><span class="dots"></span></div><div class="ds">High-craft single landing page or campaign page. Often used for product launches, fundraising, or events.</div></div><div class="pr">$14,000<small>3 weeks · fixed</small></div></div></div>
<p class="note">"All engagements include strategy, design, build, and senior review. We don't subcontract. The team you meet is the team that makes the work."</p>
<footer class="f"><p>Currently booking Q3 — two openings remaining.</p><button class="btn">Reserve a slot →</button></footer>
</section></body></html>
Copied