Services Grid
A three-column grid of services, each an icon, a title and a line of copy.
6 frameworksBeginner
The top of a single service page - kicker, title, summary, dual CTA and a meta row.
<!--
The top of a single service's page, so the heading is an <h1> - not the <h2>
the listing sections use. One page, one h1, and this is it.
The meta row is a <dl>: "Duration / 2-3 weeks" is a term and its value, and
marking it up as one is what lets a screen reader read the pair rather than
six loose strings. The separators are drawn with CSS borders, never typed as
"·" characters, which would be read aloud one by one.
-->
<section class="svc-hero">
<p class="svc-hero__kicker">Discovery sprint</p>
<h1 class="svc-hero__title">Know what to build before you staff it</h1>
<p class="svc-hero__summary">
Three weeks of interviews, analytics and prototypes that end in a scoped, costed plan
your board can sign off - or a recommendation not to build at all.
</p>
<div class="svc-hero__actions">
<a class="svc-hero__cta" href="/contact">Book a call</a>
<a class="svc-hero__cta svc-hero__cta--secondary" href="/work">See the work</a>
</div>
<dl class="svc-hero__meta">
<div class="svc-hero__meta-item">
<dt>Duration</dt>
<dd>2-3 weeks</dd>
</div>
<div class="svc-hero__meta-item">
<dt>Team</dt>
<dd>2 strategists, 1 engineer</dd>
</div>
<div class="svc-hero__meta-item">
<dt>Starting at</dt>
<dd>£18,000</dd>
</div>
</dl>
</section>| Prop | Type | Default | Description |
|---|---|---|---|
kicker | string | - | Small label shown above the title. |
titlerequired | string | - | Heading text for the card. |
copy | string | - | Body text shown under the title. |
meta | ServiceMeta[] | - | Short supporting facts shown beneath the heading. |
ctaLabel | string | 'Book a call' | Call-to-action button text. |
ctaHref | string | '#' | Destination for the call-to-action link. |
secondaryLabel | string | - | The secondary action's visible text. |
secondaryHref | string | - | Where the secondary action links to. |
className | string | - | Additional classes merged onto the root element. |
The heading is an `<h1>`, not the `<h2>` the listing sections use: this is one service's own page and this is its title. The meta row is a `<dl>` because "Duration / 2-3 weeks" is a term and its value - marked up as one, a screen reader reads the pair; marked up as divs with a middot between them, it reads six loose strings and a punctuation mark. Draw any separators with CSS borders, never as typed "·" characters. The secondary CTA is bordered rather than a bare link: two actions of different weights read as a recommendation, whereas a filled pair reads as a fork with no advice.