SuunnittelujÀrjestelmÀ

Neutraaleja harmaita, hiusviivoja, harvennettua pientekstiÀ, yksi pinkki sÀvy ja liike, joka ei tule tielle. Jokainen alla oleva arvo luetaan sivuston tyylitiedostoista kÀÀnnösvaiheessa, ja jokainen komponentti on se oikea, joten sivu ei voi erkaantua sivustosta.

01

VĂ€ri

Kaksi neutraalia palettia ilman sÀvytystÀ. Korostus syntyy kontrastista eikÀ sÀvystÀ: --accent on korostustekstin vÀri, ja valinta kÀÀntÀÀ tekstin vÀrit. Tumma on oletus; .theme-dark kiinnittÀÀ sen alipuuhun, joten hakudialogi pysyy tummana vaaleassakin teemassa.

Tumma, oletus
  • --bg-primary #0a0a0a
  • --bg-secondary #161616
  • --bg-tertiary #222
  • --text-primary #ededed 16.9:1
  • --text-secondary #a3a3a3 7.8:1
  • --text-tertiary #818181 5.1:1
  • --text-highlight #fff 19.8:1
  • --border-primary #262626
  • --border-secondary #4d4d4d
  • --surface-hover #ffffff14
Paperi
  • --bg-primary #f5f5f5
  • --bg-secondary #e7e7e7
  • --bg-tertiary #dcdcdc
  • --text-primary #111 17.3:1
  • --text-secondary #555 6.8:1
  • --text-tertiary #666 5.3:1
  • --text-highlight #000 19.3:1
  • --border-primary #d9d9d9
  • --border-secondary #a5a5a5
  • --surface-hover #00000010

Suhteet: kukin tekstivÀri oman --bg-primary-pohjansa pÀÀllÀ (WCAG 2).

02

Pinkki ja sininen

KÀyttöliittymÀn ainoa sÀvy: 6 px:n pinkki nÀyte ylÀotsikon vieressÀ, tÀssÀ suurennettuna ja oikeassa koossa. Sininen on sen rinnalla vain kolofonissa. Ei koskaan leipÀtekstinÀ, ei pintana, ei toisena palettina.

Uusin

  • Fluoresoiva pinkki --ink #ff48b0
  • Sininen --ink-offset #0078bf
03

Typografia

Kolme perhettÀ, itse isÀnnöitynÀ Astron fonttiputken kautta, ja vain luetellut leikkaukset ladataan. Otsikot ovat groteskia; antiikva on editoriaalinen aksentti.

  • PP Neue Montreal --ff-base 350 · 400 · 400 italic · 500 · 600 · 700 Kaikki: teksti, otsikot, nimiöt ja napit.
  • Instrument Serif --ff-serif 400 · 400 italic Editoriaalinen aksentti: töiden nimet ja lainaukset.
  • Geist Mono --ff-mono 400 · 500 Pienteksti: erittelyt, kuvatekstit ja numerot.

Lihavuudet

  • Aa Book 350 --font-weight-book PitkĂ€ teksti
  • Aa Regular 400 --font-weight-regular LeipĂ€teksti (oletus) ja etusivun otsikko
  • Aa Italic 400 --font-weight-regular Korostus leipĂ€tekstissĂ€
  • Aa Medium 500 --font-weight-medium Nimiöt ja ylĂ€otsikot
  • Aa SemiBold 600 --font-weight-semibold Korttien otsikot, vahva korostus
  • Aa Bold 700 --font-weight-bold Otsikot (--font-weight-heading)

Asteikko

  • --fs-xs clamp(0.72rem, 0.1vi + 0.68rem, 0.76rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-sm clamp(0.9375rem, 0.25vi + 0.74rem, 0.96rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-base clamp(1.125rem, 0.45vi + 0.89rem, 1.25rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-md clamp(1.25rem, 0.76vi + 1.06rem, 1.67rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-lg clamp(1.56rem, 1.2vi + 1.26rem, 2.22rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-xl clamp(1.56rem, 0.9rem + 2.2vi, 2.75rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-prose clamp(1.25rem, 0.875rem + 1.5vi, 1.5rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.
  • --fs-prose-lg clamp(1.1875rem, 1rem + 0.8vi, 1.625rem) Suunnittelen brĂ€ndi-ilmeitĂ€, kuvituksia ja verkkosivuja, jotka on helppo ymmĂ€rtÀÀ, joissa ei ole turhaa ja jotka kestĂ€vĂ€t aikaa.

Joustavat koot, joilla on alaraja: pienteksti ei koskaan alle 11,5 px, pieni teksti ei alle 15 px. Oikea sarake nÀyttÀÀ koon tÀssÀ nÀkymÀssÀ.

--font-weight-heading
700
--line-height-heading
1.1
--letter-spacing-heading
-0.02em
--line-height-base
calc(2ex + 6px)
04

Tila ja asettelu

KiinteÀ askelasteikko komponenttien sisÀllÀ, joustava sivun rytmiin. Sivumarginaali ei koskaan jÀÀ nÀytön loven alle.

Askeleet

  • --space-4xs 0.125rem · 2px
  • --space-3xs 0.25rem · 4px
  • --space-2xs 0.375rem · 6px
  • --space-xs 0.5rem · 8px
  • --space-s 0.75rem · 12px
  • --space-m 1rem · 16px
  • --space-l 1.5rem · 24px
  • --space-xl 2rem · 32px
  • --space-2xl 3rem · 48px

Joustavat

  • --space-fluid-2xs clamp(0.375rem, 0.3182rem + 0.2424vi, 0.5rem)
  • --space-fluid-s clamp(0.75rem, 0.6364rem + 0.4848vi, 1rem)
  • --space-fluid-l clamp(1.5rem, 1.2727rem + 0.9697vi, 2rem)
  • --space-fluid-2xl clamp(3rem, 2.3182rem + 2.9091vi, 4.5rem)

Asettelu

--gutter
max(clamp(1.25rem, 3vw, 2.5rem), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px))
--page-width
2048px
--dock-clearance
6.75rem
05

Pyöristys ja viivat

Kaksi pyöristystÀ ja pilleri. Painike on askeleen korttiaan pienempi, joten pari pysyy samankeskisenÀ.

  • --radius-sm 6px
  • --radius-md 0.5rem
  • --radius-pill 9999px
  • 6 + 2 = 8 Samankeskinen --radius-card · --space-4xs
--radius-card
var(--radius-md)
--button-radius
var(--radius-sm)

Reunat

  • --border-width-hairline 1px
  • --border-width-strong 2px
06

Liike

Lyhyet, tavalliset siirtymÀt kÀyttöliittymÀÀn; muotoillut kÀyrÀt vain, kun jokin liikkuu matkan. Toista-painike ajaa kaikki rivit kerralla. Kun liikettÀ on vÀhennetty, mikÀÀn ei liiku.

Kestot

  • --duration-instant 100ms
  • --duration-fast 150ms
  • --duration-base 200ms
  • --duration-moderate 250ms
  • --duration-slow 300ms
  • --duration-slower 400ms
  • --duration-slowest 500ms

KÀyrÀt

  • --ease-default ease
  • --ease-in ease-in
  • --ease-out ease-out
  • --ease-in-out ease-in-out
  • --ease-standard cubic-bezier(0.4, 0, 0.2, 1)
  • --ease-accelerate cubic-bezier(0.4, 0, 1, 1)
  • --ease-out-quad cubic-bezier(0.25, 0.46, 0.45, 0.94)
  • --ease-out-quint cubic-bezier(0.22, 1, 0.36, 1)
  • --ease-out-expo cubic-bezier(0.16, 1, 0.3, 1)
  • --ease-out-back cubic-bezier(0.175, 0.885, 0.32, 1.275)
  • --ease-sheet cubic-bezier(0.32, 0.72, 0, 1)
  • --ease-in-out-strong cubic-bezier(0.8, 0.01, 0.11, 0.98)

Lyhenteet

--transition-fast
var(--duration-fast) var(--ease-default)
--transition-base
var(--duration-base) var(--ease-default)
--lift-distance
-10px
07

Kerrokset

KiinteÀt elementit takaa eteen. Puhelimessa alahÀivytys on telakan alla ja ylÀhÀivytys sen pÀÀllÀ; leveÀmmÀllÀ nÀytöllÀ niiden paikan vie ylÀpalkki. Valikko on kaikkien ylÀpuolella. Ohituslinkki, teemanvaihdon kuva ja kursori voittavat aina.

  1. 10000 --z-cursor
  2. 9999 --z-theme-transition
  3. 2000 --z-skip-link
  4. 1002 --z-menu-toggle
  5. 1001 --z-menu
  6. 1000 --z-fade-top
  7. 999 --z-masthead
  8. 999 --z-dock
  9. 900 --z-fade-bottom
08

Kosketusalueet

24 px on alaraja kaikkialla ja --tap-target-size karkealla osoittimella. Osuma-alue kasvaa; piirretty muoto ja rivivÀlit eivÀt liiku.

Ruudukko
  • Tekstinappi yltÀÀ 24 px:iin tĂ€ytteellĂ€, joka ei liikuta riviĂ€; kosketuksella nĂ€kymĂ€tön ::after kasvattaa osuma-alueen 44 px:iin.
  • Somelinkit kĂ€yttĂ€vĂ€t samaa kaistaa ::before-elementtinĂ€, ja 28 px:n videopainike kasvaa 44 px:iin.
  • Pienet erilliset linkit saavat 4 px tĂ€ytettĂ€ ja −4 px marginaalia: isompi kohde, sama asettelu.
09

Komponentit

Toimivina, sivuston omilla komponenteilla ja luokilla.

Hakemisto

Töiden linssit tekstirivinÀ, kunkin lukumÀÀrÀ Geist Monolla versaalikorkeudella. Valittu nÀkyy korostusvÀrillÀ ja alleviivattuna; ruudukon ja luettelon vaihto kÀyttÀÀ samoja tekstinappeja pienessÀ koossa.

Somelinkit

Hillityt versaalit ja ↗ ulkoisille linkeille. SĂ€hköpostiosoite on ensimmĂ€isenĂ€ ja kokonaan nĂ€kyvissĂ€; napsautus kopioi sen ja kertoo siitĂ€.

Pienteksti

YlÀotsikot, erittelyt ja kuvatekstit kokoa --fs-xs vÀrillÀ --text-tertiary, harvennettuina versaaleina tai Geist Monolla.

Valikoidut

Kirjaimet
PP Neue Montreal, Instrument Serif, Geist Mono
KorostusvÀrit
Fluoresoiva pinkki ja sininen

Kuva 1 Astro (sivut) + Contentful (sisÀllönhallinta)

Video

MykÀt silmukat latautuvat lÀhellÀ nÀkymÀÀ. Yksi painike pysÀyttÀÀ kaikki sivuston silmukat ja muistaa valinnan; kun liikettÀ on vÀhennetty, julistekuva jÀÀ.

Haku

Natiivi dialogi, joka on tumma molemmissa teemoissa ja kelluu tumman verhon pÀÀllĂ€. ⌘ K avaa sen mistĂ€ tahansa.

⌘ K

Kursorilinssi

Tarkalla osoittimella on oma kursori. ”Katso”- ja ”Lue”-kohdissa se muuttuu himmeĂ€ksi linssiksi, sivuston ainoaksi lasipinnaksi.

Osoita tÀhÀn

Telakka

Puhelimessa kelluva palkki jokaisen sivun alareunassa. LeveÀmmÀssÀ ikkunassa sen linkit nousevat ylÀpalkkiin ja yhteystiedot siirtyvÀt sivun loppuun. --dock-clearance pitÀÀ sisÀllön ja nÀppÀimistöfokuksen palkin ylÀpuolella.

--z-dock
999
--dock-clearance
6.75rem
10

SÀÀnnöt

Vuorovaikutus

  • NĂ€ppĂ€imistö ensin: TĂ€ysi WAI-ARIA-tuki. NĂ€kyvĂ€t fokuskehykset ovat pakollisia.
  • Kosketusalueet: VĂ€hintÀÀn 24 px, kosketuksella 44 px.
  • Palaute: Tilaviestit luetaan kohteliaasti. Lataustila sĂ€ilyttÀÀ tekstinsĂ€.

Typografia ja asettelu

  • Optinen tasaus: SÀÀdĂ€ ±1 px, kun havainto voittaa geometrian.
  • Tekstiliima: KĂ€ytĂ€ sitovia vĂ€lilyöntejĂ€ termeissĂ€, kuten 10 MB ja ⌘ K.
  • RivivĂ€li: Otsikot 1.1; leipĂ€teksti calc(2ex + 6px), joka seuraa x-korkeutta.

Saavutettavuus

  • Kontrasti: TĂ€ytĂ€ APCA-kontrastivaatimus ja vahvista kontrastia hoverissa ja fokuksessa.
  • Liike: Kunnioita prefers-reduced-motion-asetusta. Animoi vain transformia ja opacityĂ€.
  • Semantiikka: KĂ€ytĂ€ natiivielementtejĂ€ (`button`, `a`, `dialog`) ennen ARIAa.