Design system
web
v1.0.0
90/100

Shopify

@dante · E-commerce & Retail

A two-canvas commerce system: cinematic black hero pages with thin 330-weight Neue Haas Grotesk display type, flipped against cream-mint transactional surfaces, unified by a single black-and-mint pill button vocabulary.

HTML/CSS
#ecommerce
#retail
#shopify
Shopify
Downloads0
Download package
DESIGN.mdSKILL.md

Overview

Shopify

Visual Theme

A cinematic commerce platform that runs two parallel design tracks sharing typographic DNA but diverging sharply in canvas polarity — and that choice is the brand. The marketing and product-narrative pages live on pure-black canvases (#000000) with full-bleed merchant photography, giant Neue Haas Grotesk Display headlines set at a thin weight of 330, and a single white-stroked black pill CTA. The transactional pages — pricing, signup, dashboards — flip to a cream-mint canvas (#ffffff / #fbfbf5) with pastel aloe and pistachio greens, the same pill vocabulary in inverse polarity, and Inter for UI body. Whitespace is the most valuable asset on the cinematic track and tightens on the transactional one.

Color Principles

Two canvases, never blended: Canvas Night (#000000) with elevated #0a0a0a cards and a teal-shifted #1e2c31 for the rare dark surface with depth; Canvas Light (#ffffff) and the barely-warm Canvas Cream (#fbfbf5) for transactional surfaces. Aloe (#c1fbd4) and pistachio (#d4f9e0) greens are reserved for the light track — they signal commerce and growth and never appear behind type or on black pages. A neutral shade ladder (#d4d4d8 to #3f3f46) drives text hierarchy, and cool muted tones (#9dabad, #9797a2, #bdbdca, #99b3ad) quiet the tertiary footer links on dark surfaces.

Typography

Three families across a strict split. Neue Haas Grotesk Display at thin weights 330-500 handles every display, headline, and editorial moment — the thin cut is the brand, so display sizes never bump above 330. Inter Variable at 420-550 carries all UI body, button labels, captions, and form fields. ui-monospace appears only in code. The OpenType ss03 stylistic set is enabled across every role as a character-level unifier. Tracking lifts to +2.4px on the 96px hero; below 70px it returns to 0. Body runs at 1.5-1.56 line-height; display tightens to 1.0-1.16.

Layout

An 8px base with dense 2/4/8 sub-units. Cinematic sections breathe at 128-192px of vertical air with edge-bleeding photography in a ~1440-1600px container; transactional bands tighten to ~48-64px because users are scanning and acting. Body content centers in a ~720-840px reading column. Radius climbs 4 -> 8 -> 12 -> 20px, but buttons and tags are always the 9999px pill — rounded rectangles do not exist for buttons. Depth on dark comes from subtle inset top-edge highlights; on light, from a stack of four tiny drop shadows that produce a soft paper halo around pricing cards.

Components

One pill button vocabulary spans both tracks: black filled primary, white-stroked outline for dark heroes, black-stroked outline for light, and an aloe-mint pill for the featured pricing tier. Pricing cards use white fill with the stacked-shadow halo; the featured tier is signaled by an aloe fill rather than a colored border. Photography is full-bleed and edge-to-edge on the cinematic track, never inset in cards. Nav and footer inherit their page's canvas polarity. Inputs, badges, and tags live only on the light track.

Derived view rendered server-side from package tokens and components — no authored copy.

Colors (22)

primary
#000000
ink
#000000
onPrimary
#ffffff
onDark
#ffffff
canvasNight
#000000
canvasNightElevated
#0a0a0a
canvasLight
#ffffff
canvasCream
#fbfbf5
surfaceElevatedDark
#1e2c31
shade30
#d4d4d8
shade40
#a1a1aa
shade50
#71717a
shade60
#52525b
shade70
#3f3f46
hairlineLight
#e4e4e7
hairlineDark
#1e2c31
aloe10
#c1fbd4
pistachio10
#d4f9e0
linkCool1
#9dabad
linkCool2
#9797a2
linkCool3
#bdbdca
linkMint
#99b3ad

Typography (7)

display
"NeueHaasGrotesk Display", Helvetica, Arial, sans-serif
  • 48pxThe quick brown fox jumps over the lazy dog 1234
  • 32pxThe quick brown fox jumps over the lazy dog 1234
  • 24pxThe quick brown fox jumps over the lazy dog 1234
  • 18pxThe quick brown fox jumps over the lazy dog 1234
  • 14pxThe quick brown fox jumps over the lazy dog 1234
  • 12pxThe quick brown fox jumps over the lazy dog 1234
heading
"NeueHaasGrotesk Display", Helvetica, Arial, sans-serif
  • 48pxThe quick brown fox jumps over the lazy dog 1234
  • 32pxThe quick brown fox jumps over the lazy dog 1234
  • 24pxThe quick brown fox jumps over the lazy dog 1234
  • 18pxThe quick brown fox jumps over the lazy dog 1234
  • 14pxThe quick brown fox jumps over the lazy dog 1234
  • 12pxThe quick brown fox jumps over the lazy dog 1234
body
"Inter Variable", Inter, Helvetica, Arial, sans-serif
  • 48pxThe quick brown fox jumps over the lazy dog 1234
  • 32pxThe quick brown fox jumps over the lazy dog 1234
  • 24pxThe quick brown fox jumps over the lazy dog 1234
  • 18pxThe quick brown fox jumps over the lazy dog 1234
  • 14pxThe quick brown fox jumps over the lazy dog 1234
  • 12pxThe quick brown fox jumps over the lazy dog 1234
ui
"Inter Variable", Inter, Helvetica, Arial, sans-serif
  • 48pxThe quick brown fox jumps over the lazy dog 1234
  • 32pxThe quick brown fox jumps over the lazy dog 1234
  • 24pxThe quick brown fox jumps over the lazy dog 1234
  • 18pxThe quick brown fox jumps over the lazy dog 1234
  • 14pxThe quick brown fox jumps over the lazy dog 1234
  • 12pxThe quick brown fox jumps over the lazy dog 1234
mono
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace
  • 48pxThe quick brown fox jumps over the lazy dog 1234
  • 32pxThe quick brown fox jumps over the lazy dog 1234
  • 24pxThe quick brown fox jumps over the lazy dog 1234
  • 18pxThe quick brown fox jumps over the lazy dog 1234
  • 14pxThe quick brown fox jumps over the lazy dog 1234
  • 12pxThe quick brown fox jumps over the lazy dog 1234
featureSettings
"ss03"
  • 48pxThe quick brown fox jumps over the lazy dog 1234
  • 32pxThe quick brown fox jumps over the lazy dog 1234
  • 24pxThe quick brown fox jumps over the lazy dog 1234
  • 18pxThe quick brown fox jumps over the lazy dog 1234
  • 14pxThe quick brown fox jumps over the lazy dog 1234
  • 12pxThe quick brown fox jumps over the lazy dog 1234
scale
unparsed
{
  "displayXxl": "96px/1.0",
  "displayXl": "70px/1.0",
  "displayLg": "55px/1.16",
  "displayMd": "48px/1.14",
  "headingXl": "28px/1.28",
  "headingLg": "24px/1.14",
  "headingMd": "20px/1.4",
  "headingSm": "18px/1.25",
  "bodyLg": "18px/1.56",
  "bodyMd": "16px/1.5",
  "bodyStrong": "16px/1.5",
  "caption": "14px/1.49",
  "micro": "13px/1.5",
  "eyebrowCap": "12px/1.2",
  "code": "16px/1.5"
}

Components (14)

Button

The pill is the only button shape in the system. Black filled primary, white-stroked outline for cinematic dark heroes, black-stroked outline for light, and an aloe-mint pill for the featured pricing CTA.

html
Hand-tuned CSS, no framework
2 props · 5 states · 10 tags · 2 sources
Missing states: loading

Input

Text field on light surfaces: white fill, black ink, 8px radius, 1px hairline border, Inter body at weight 420. Focus lifts the border to solid black.

html
Hand-tuned CSS, no framework
2 props · 5 states · 8 tags · 2 sources

Card

Standard pricing tier card on the light track: white fill, 12px radius, hairline border, and the signature stacked-tiny-shadow halo for a soft paper depth.

html
Hand-tuned CSS, no framework
1 props · 2 states · 7 tags · 2 sources
Missing states: focus-visible, disabled

Badge

Small pill tag on light surfaces. Aloe-mint signals a feature category; neutral shade-30 for plain markers. Uses the all-caps eyebrow type.

html
Hand-tuned CSS, no framework
1 props · 1 states · 5 tags · 2 sources
Missing states: hover, focus-visible, disabled

Heading

Neue Haas Grotesk Display hierarchy. Display tiers render at thin weight 330 — the brand's loudest, quietest signature — with tracking lifting only on the 96px hero.

html
Hand-tuned CSS, no framework
1 props · 1 states · 7 tags · 2 sources
Missing states: hover, focus-visible, disabled

Link

Inline link on cinematic pages: white, no underline by default, contextual. Tertiary footer links shift to a cool muted tone with a persistent underline.

html
Hand-tuned CSS, no framework
1 props · 3 states · 4 tags · 2 sources
Missing states: disabled

Hero

Cinematic hero on pure black — 96px thin display headline, negative space instead of a scrim, and a single white-stroked outline pill. Photography does the heavy lifting.

html
Hand-tuned CSS, no framework
1 props · 1 states · 6 tags · 2 sources
Missing states: hover, focus-visible, disabled

Nav

Top nav that inherits its canvas polarity — black on cinematic pages, white on transactional. Wordmark left, links center, two pill buttons right.

html
Hand-tuned CSS, no framework
1 props · 3 states · 7 tags · 2 sources
Missing states: disabled

Footer

Full-width footer on the cinematic black track — columns of cool-toned muted links below a thin display wordmark, with a small legal row and a shade-30 hairline.

html
Hand-tuned CSS, no framework
1 props · 2 states · 8 tags · 2 sources
Missing states: focus-visible, disabled

Stat

Big thin-display figure with an Inter caption label — a magazine-style metric on the light track with top-border-only dividers.

html
Hand-tuned CSS, no framework
1 props · 1 states · 5 tags · 2 sources
Missing states: hover, focus-visible, disabled

Quote

Cinematic pull-quote on black — a thin 55px display statement from a merchant, with a muted cool-tone attribution. The editorial voice of the marketing track.

html
Hand-tuned CSS, no framework
0 props · 1 states · 4 tags · 2 sources
Missing states: hover, focus-visible, disabled

Tag

Mint or neutral pill chip signaling a feature category on light surfaces. All-caps eyebrow type inside a full pill.

html
Hand-tuned CSS, no framework
1 props · 2 states · 6 tags · 2 sources
Missing states: focus-visible, disabled

Avatar

Round merchant avatar with a subtle hairline ring. In customer strips, wordmarks read as uniform-height greyscale marks aligned in one row.

html
Hand-tuned CSS, no framework
1 props · 1 states · 8 tags · 2 sources
Missing states: hover, focus-visible, disabled

Tab

Pill tab list inside a shade-30 container on the light track — for switching between Online, Retail, and Wholesale surfaces. The active pill fills white.

html
Hand-tuned CSS, no framework
1 props · 4 states · 4 tags · 2 sources
Missing states: disabled

DESIGN.md

Shopify

Visual Theme

A cinematic commerce platform that runs two parallel design tracks sharing typographic DNA but diverging sharply in canvas polarity — and that choice is the brand. The marketing and product-narrative pages live on pure-black canvases (#000000) with full-bleed merchant photography, giant Neue Haas Grotesk Display headlines set at a thin weight of 330, and a single white-stroked black pill CTA. The transactional pages — pricing, signup, dashboards — flip to a cream-mint canvas (#ffffff / #fbfbf5) with pastel aloe and pistachio greens, the same pill vocabulary in inverse polarity, and Inter for UI body. Whitespace is the most valuable asset on the cinematic track and tightens on the transactional one.

Color Principles

Two canvases, never blended: Canvas Night (#000000) with elevated #0a0a0a cards and a teal-shifted #1e2c31 for the rare dark surface with depth; Canvas Light (#ffffff) and the barely-warm Canvas Cream (#fbfbf5) for transactional surfaces. Aloe (#c1fbd4) and pistachio (#d4f9e0) greens are reserved for the light track — they signal commerce and growth and never appear behind type or on black pages. A neutral shade ladder (#d4d4d8 to #3f3f46) drives text hierarchy, and cool muted tones (#9dabad, #9797a2, #bdbdca, #99b3ad) quiet the tertiary footer links on dark surfaces.

Typography

Three families across a strict split. Neue Haas Grotesk Display at thin weights 330-500 handles every display, headline, and editorial moment — the thin cut is the brand, so display sizes never bump above 330. Inter Variable at 420-550 carries all UI body, button labels, captions, and form fields. ui-monospace appears only in code. The OpenType ss03 stylistic set is enabled across every role as a character-level unifier. Tracking lifts to +2.4px on the 96px hero; below 70px it returns to 0. Body runs at 1.5-1.56 line-height; display tightens to 1.0-1.16.

Layout

An 8px base with dense 2/4/8 sub-units. Cinematic sections breathe at 128-192px of vertical air with edge-bleeding photography in a ~1440-1600px container; transactional bands tighten to ~48-64px because users are scanning and acting. Body content centers in a ~720-840px reading column. Radius climbs 4 -> 8 -> 12 -> 20px, but buttons and tags are always the 9999px pill — rounded rectangles do not exist for buttons. Depth on dark comes from subtle inset top-edge highlights; on light, from a stack of four tiny drop shadows that produce a soft paper halo around pricing cards.

Components

One pill button vocabulary spans both tracks: black filled primary, white-stroked outline for dark heroes, black-stroked outline for light, and an aloe-mint pill for the featured pricing tier. Pricing cards use white fill with the stacked-shadow halo; the featured tier is signaled by an aloe fill rather than a colored border. Photography is full-bleed and edge-to-edge on the cinematic track, never inset in cards. Nav and footer inherit their page's canvas polarity. Inputs, badges, and tags live only on the light track.

Adapters (3)

All files (8)

  • DESIGN.mdtext/markdown
  • SKILL.mdtext/markdown
  • tokens/colors.jsonapplication/json
  • tokens/typography.jsonapplication/json
  • tokens/components.jsonapplication/json
  • adapters/tokens.csstext/css
  • adapters/html/index.htmltext/html
  • adapters/html/styles.csstext/css

Versions