Example#
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
Usage#
Every page has exactly one PageHero, at the top: what the page is, in display type, with the next step. It is a Section rendered as a header.
- The title is one or two lines; the second is the accent line, printed in the line's ink (
line) or the link ink. It is the page's display moment and carries the second ink at rest (D-D6). - Around it.
eyebrowandstatusabove,subunder it (18 px, 36 em at most), thenactions(one action key and one secondary) andspecs, a strip of short facts. - Art.
asidetakes an<Art>beside the words from lg;asideOnPhonehides it by default.volume="up"steps the hero one volume louder than the page (D-B2). - Never centred in a full screen. The words start at the top so the first screen shows content, not a void.
Anatomy#
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
- Eyebrow
data-mk-part="eyebrow" - Meta
data-mk-part="meta" - Title
data-mk-part="title" - Sub
data-mk-part="sub" - SpecsShort facts as a SpecStrip.
.mk-page-hero-specs
Volume#
The words never move. From Press the hero's art and the second ink grow louder; at Quiet the title loses a little weight and the art stays still.
Quiet
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
Studio
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
Press
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
Rave
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
Content#
- Title: what the page offers, in under ten words. A joke is fine when the sub says plainly what the page is (D-I2).
- Sub: one sentence that a stranger would understand.
- Actions: the page's main verb on the action key, a lower-stakes alternative beside it.
- Specs: three or four facts a buyer checks, such as timeline, quote and warranty.
Do and don't#
Do
Websites that win customers.
Hand-coded pages for trades and studios like Fernlight.
- Timeline
- 2 to 6 weeks
- Quote
- Fixed
- Warranty
- 2 months
Don't
Two PageHeros on one page: a hero, then another hero halfway down.
Accessibility#
- The title is the page's only
h1; the accent line is part of it, so it reads as one sentence. - The aside is art: hidden below lg by default and never under the title.
- The hero is never centred in 100svh, so the first screen shows the words, not empty paper.
Props#
| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | ReactNode | none | |
status | StatusChipProps | none | |
title required | string | readonly [string, string] | none | One line, or two: the second is the accent line. |
line | "custom-apps" | "growth" | "maxos" | "software" | "websites" | none | The accent line prints in this line's text ink (else `--mk-link`). |
sub | ReactNode | none | |
specs | readonly SpecStripItem[] | none | |
actions | ReactNode | none | One `action` key and one `secondary`. |
aside | ReactElement<unknown, string | React.JSXElementConstructor<any>> | none | An `<Art>` shown from lg. |
asideOnPhone | "above" | "below" | "hide" | none | Below lg the aside hides (default), or goes above or below. |
volume | "inherit" | "up" | none | |
stock | "bone" | "newsprint" | "night" | "pulp" | "white" | none |
Tokens#
System tokens (10)
Changelog#
Arrived in 0.1.0.
Sectionwith its plate andArtslot,Plate,VolumeScope,PageHero,SectionHead,Eyebrow,Card,LineCard,InfoPanel,Stack,Cluster,Grid,Container,Main,Ruleand theFittedLineclient fitter;Navbarwith theNavDisclosuremega panels,Footer,FooterMap,BuildStamp,SkipLink,ActionDockandVisitorControls; theTableparts,ComparisonTablewith the one-tier switcher,SpecStrip,Numeral,Stat,StatGroup,StatusChip,BadgeandScoreDial;ProsewithmdxComponents,Quote,CodeBlockwithCopyButton,Figure,ScreenshotFrameandPhoneFrame; and the brand: the three evolved 2 × 2 options inmarkGeometry(a Overprint by default, b Paper seam, c Key block) with the pixel-snappedpxmode and the one-ink seam variant,logoGeometrywith the 1x clear-space frame,Mark,Wordmark,Logo,MaxosMarkandLineBadge. Read the whole entry- React: the label role (14 px, now 600) prints in
--mk-textin Eyebrow, the Card and PageHero eyebrows, SpecStrip labels, the stacked table's cell headers, the Navbar panel's meta and the NavSheet group titles, because no secondary ink reaches the label's floor; placeholders, input start and end text and the select's empty choice print in the new--mk-on-control-2;Art interactivemarks no layer, so the 3D stage's own art and plate layers decide (its caption and keys never sit inside an art layer). Read the whole entry