Files
workbuddy_skills/open-design/design-systems/airbnb/DESIGN-nl.md
T
admin 5afeb6b78a ④段整套同步(六节 + P/S/F/J + 模板)+ open-design 移到技能根
一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
  · 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
    跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
  · 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
  · 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
    横向流程图每步写清页面/功能/操作/完成判据。
  · 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
  · 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
  · 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。

二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
  「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
  同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
  当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。

三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
2026-10-15 21:17:28 +08:00

31 KiB
Raw Blame History

Design System Inspired by Airbnb

Category: E-Commerce & Detailhandel Reismarktplaats. Warm koraalaccent, fotografiegedreven, afgeronde interface.

1. Visueel Thema & Sfeer

Airbnbs ontwerp van 2026 voelt als een reistijdschrift dat toevallig een app is — makeloos witte doeken maken plaats voor volledigscherm fotografie, en de interface zelf verdwijnt zodat de listings kunnen ademen. De kenmerkende Rausch koraalroze (#ff385c) wordt spaarzaam maar onmiskenbaar gebruikt: zoek-CTA, actieve tab-indicator, primaire actieknop, en het occasionele prijslabel of wenslijst-hart. Al het andere is een gedisciplineerde grijsschaal, waarbij #222222 bijna elke tekstregel draagt.

Wat het systeem onmiskenbaar Airbnb maakt, is hoeveel vertrouwen het in content stelt. Foto's van accommodaties worden op heroformaat weergegeven, 4:3 met een rand-aan-rand radiusbehandeling. Categoriewissel verloopt via een tri-tab-kiezer (Woningen / Ervaringen / Diensten) die 3D gerenderde geïllustreerde iconen gebruikt (een puntdakhuis, een heteluchtballon, een servicebel) — fysiek, tactiel, bijna speelgoedachtig — gecombineerd met scherpe Airbnb Cereal VF-labels. Dit is het zeldzame consumentenproduct waarbij 3D renders en puur typografische interface zonder spanning naast elkaar bestaan.

Het nieuwste oppervlak is de Ervaringen-productlijn — hetzelfde chroom, maar rijkere kaartdichtheid, meer fotografie en een centraal verankerd boekingspaneel met een vaste rechterrail voor de prijs. Detailpagina's van listings (zowel kamers als ervaringen) volgen een strak template: volledigscherm hero-afbeeldingsraster → overlappende afgeronde boekingskaart (vastgezet bij scrollen) → voorzieningen → beoordelingen (Gastfavoriet-awards gebruiken een grote gecentreerde 4.81-beoordeling met een laurierkransopzet) → kaart → gastprofielpagina → openbaarmakingen. Het ritme is consistent, of u nu een kamer of een jachttour boekt.

Kernkenmerken:

  • Rausch koraalroze (#ff385c) als enkelvoudige accentmerkkleur, alleen gebruikt voor primaire CTA's en de zoekknop
  • Volledigscherm fotografie in 4:3 / 16:9 met zachte hoekafronding (14–20 px) als primair visueel vocabulaire
  • 3D gerenderde categorieiconen gecombineerd met typografische tabs — de ene plek waar het systeem illustratie toestaat
  • Ronde 50% icoorknoppen (pijl terug, delen, favoriet, carrouselpijlen) verspreid door de interface
  • Airbnb Cereal VF draagt elk label, van de juridische voetnoot van 8 px tot de sectiekopregel van 28 px — een eenfamilie-systeem
  • Productlaag-kleurcodering: Airbnb Plus (magenta #92174d), Airbnb Luxe (dieppaars #460479), Airbnb (Rausch koraal)
  • Gastfavoriet-award-opzet — gecentreerd reusachtig beoordelingsnummer tussen twee laurierkransen, een van de meest herkenbare momenten in het systeem
  • Vastgezet boekingspaneel met een prijs → datums → gasten-stapel, verankerd aan de rechterrail op desktop, getransformeerd naar een onderaan verankerde "Reserveer"-balk op mobiel
  • Vaste onderste mobiele navigatie (Verkennen / Verlanglijsten / Inloggen) met een actieve Rausch-tint

2. Kleurenpalet & Rollen

Primair

  • Rausch (#ff385c): De kenmerkende koraalroze van het merk. CSS-variabele --palette-bg-primary-core. Gebruikt voor: primaire "Reserveer"-knop, zoekknop, actieve tab-onderstreping, wenslijst-hartopvulling, prijsnadruk. De kleur met de hoogste zichtbaarheid op elke pagina.

Secundair & Accent

  • Deep Rausch (#e00b41): Een meer verzadigde variant. CSS-variabele --palette-bg-tertiary-core. Gebruikt voor ingedrukte/actieve knoepstatussen en gradiënteindpunten.
  • Plus Magenta (#92174d): CSS-variabele --palette-bg-primary-plus. De merkkleur voor de Airbnb Plus-productlaag — een hogere gecureerde listingaanbieding.
  • Luxe Purple (#460479): CSS-variabele --palette-bg-primary-luxe. De merkkleur voor de Airbnb Luxe-productlaag — villa/landgoed-verhuur.
  • Info Blue (#428bff): CSS-variabele --palette-text-legal. Gebruikt voor juridische/informatieve links (voorwaarden, privacy, openbaarmakingen) — de enige niet-monochrome linkkleur in het systeem.

Oppervlak & Achtergrond

  • Canvas White (#ffffff): De standaard paginaachtergrond. Elke kaart, elke container, elke detailpagina begint hier.
  • Soft Cloud (#f7f7f7): Subtiele suboppervlaktetint gebruikt op voettekst-achtergronden, kaartweergave-wrappers en "alles-andere"-secties die terug willen treden van het primaire wit.
  • Hairline Gray (#dddddd): Alomtegenwoordige 1-px-randkleur — scheidt kaarten, voorzieningenrijen, beoordelingspanelen, voettekstkolommen. Het werkpaard van het lay-outsysteem.

Neutralen & Tekst

  • Ink Black (#222222): CSS-variabele --palette-text-primary. Het bijna-zwart van het systeem. Elke koptekst, elke alinea, elk navigatielabel, elke prijs. Gebruikt voor ~90% van alle tekst op een pagina.
  • Charcoal (#3f3f3f): CSS-variabele --palette-text-focused. Gebruikt in gefocuste invoertekst en nadrukstekst van één stap lager.
  • Ash Gray (#6a6a6a): CSS-variabele --palette-bg-tertiary-hover. Secundaire labels, "Cottage-verhuur"-ondertitelstijl onder stadsnamen, gedempte voettekstlinks.
  • Mute Gray (#929292): CSS-variabele --palette-text-link-disabled. Uitgeschakelde knoppen en lage-prioriteit metadata.
  • Stone Gray (#c1c1c1): Tertiaire scheidingslijnen, icoonstroeken, plaatshouder-avatars.

Semantisch & Accent

  • Error Red (#c13515): CSS-variabele --palette-text-primary-error. Formuliervalidatiefouten, waarschuwingen voor destructieve acties.
  • Deep Error (#b32505): CSS-variabele --palette-text-secondary-error-hover. Ingedrukte/actieve varianten van foutstatus.
  • Translucent Black (rgba(0, 0, 0, 0.24)): CSS-variabele --palette-text-material-disabled. Uitgeschakelde materiaalstijl-labels.

Gradiëntensysteem

Airbnbs merkgradiënt verschijnt spaarzaam, typisch alleen op het woordmerk en het gebrandmerkte zoekknop-moment:

linear-gradient(90deg, #ff385c 0%, #e00b41 50%, #92174d 100%)

Deze koraal → magenta-sweep is het "gebrandmerkte moment" — nooit gebruikt als volledig oppervlak, alleen als smalle pilvulling of logobehandeling.

3. Typografieregels

Lettertypefamilie

  • Airbnb Cereal VF (primair en enig): Het gepatenteerde variabelgewicht sans-serif dat het hele systeem draagt. Fallbacks (in volgorde): Circular, -apple-system, system-ui, Roboto, Helvetica Neue, sans-serif.

In de geëxtraheerde tokens waargenomen gewichten: 500, 600, 700. Geen 400-regulier — het "broodtekst"-gewicht van het systeem is 500, wat elk tekstblok een subtiele extra dichtheid geeft die als zelfverzekerd en doordacht leest.

OpenType-functies: salt (stilistische alternatieven) wordt gebruikt op de compacte 11-px- en 14-px-600-gewichtslabels — waarschijnlijk voor nauwere cijfers en speciale-tekenvorming. Geen ligatuur- of gebroken-cijfer-functies waargenomen.

Hiërarchie

Rol Grootte Gewicht Regelhoogte Letterafstand Opmerkingen
Sectiekop 28 px / 1,75 rem 700 1,43 0 "Inspiratie voor toekomstige uitstapjes" — koppen op paginaniveau
Subsectiekop 22 px / 1,38 rem 500 1,18 -0,44 px "Wat deze plek biedt", "Maak kennis met de hosts" — inhoudsscheidingen
Kaarttitel 21 px / 1,31 rem 700 1,43 0 Beoordelingspaneel koppen, hoofdtitels van kaarten
Listingtitel 20 px / 1,25 rem 600 1,20 -0,18 px "Kleine Groepsjachttour, Onbeperkte Wijn & Fruit" — listingkoppen op detailpagina's
Ondertitel Vet 16 px / 1,00 rem 600 1,25 0 Hostnaam, stadsnaam
Broodtekst Medium 16 px / 1,00 rem 500 1,25 0 Primaire broodtekst op detailpagina's
Knop Groot 16 px / 1,00 rem 500 1,25 0 "Reserveer", "Word host"
Knop Standaard 14 px / 0,88 rem 500 1,29 0 Standaard knooplabels
Link 14 px / 0,88 rem 500 1,43 0 Navigatielinks, voettekstlinks
Bijschrift Medium 14 px / 0,88 rem 500 1,29 0 Metadata, ondertitelregels ("Cottage-verhuur", "Villa-verhuur")
Bijschrift Vet 14 px / 0,88 rem 600 1,43 0 salt-functie ingeschakeld — numerieke statistieken, kleintekst-nadruk
Bijschrift Klein 13 px / 0,81 rem 400 1,23 0 Beoordelingsdatums, micro-metadata
Micro Standaard 12 px / 0,75 rem 400 1,33 0 Voettekst-disclaimers, juridische micro-kopij
Micro Vet 12 px / 0,75 rem 700 1,33 0 "NIEUW"-pillabels
Badge Hoofdletters 11 px / 0,69 rem 600 1,18 0 salt-functie — compacte categorie-/statusbadges
Superscript 8 px / 0,50 rem 700 1,25 0,32 px Hoofdletters — prijsvoetnoten, decimaalstaarten

Principes

  • Één familie, veel gewichten. Airbnb Cereal VF behandelt alles van juridische tekst van 8 px tot paginakoppen van 28 px — de visuele identiteit komt uit de familie zelf, niet uit lettertype-mengen.
  • 500 is het nieuwe 400. Het "reguliere" gewicht van het systeem is 500, wat elke alinea een iets zelfverzekerder textuur geeft dan de webstandaard.
  • Negatieve tracking alleen bij displaytypen. Koppen van 20 px en groter comprimeren de tracking met -0,18 tot -0,44 px om gebeiteld aan te voelen; broodtekstformaten blijven op 0 tracking voor leesbaarheid.
  • Strakke regelhoogten voor koppen, ruimhartig voor broodtekst. Displaytypen draaien op 1,18–1,25 (strak); broodtekst en bijschriften openen naar 1,43 voor langvorm comfort.
  • Geen hoofdletters behalve op 8 px. De enige hoofdlettertransformatie in het systeem is het 8-px-superscript — overal anders doet zinschrift met subtiele gewichtsverschuivingen het werk.

Opmerking over Lettertype-substituten

Airbnb Cereal VF is gepatenteerd. Het dichtstbijzijnde open-source substituut is Circular Std (nog commercieel) of Inter (gratis, Google Fonts) met letterafstand verminderd met -0,01 em bij displayformaten. Voor strikte merkentrouw rendert de gedocumenteerde fallback-keten (Circular, -apple-system, system-ui) acceptabel op macOS/iOS waar system-ui wordt omgezet naar San Francisco, dat vergelijkbare proporties heeft.

4. Component-opmaak

Knoppen

Primaire CTA ("Reserveer", "Zoeken", "Datums toevoegen")

  • Achtergrond: Rausch #ff385c
  • Tekst: Canvas White #ffffff, Airbnb Cereal 500, 16 px
  • Opvulling: ~14 px verticaal, 24 px horizontaal
  • Radius: 8 px (rechthoekig) of 50% (ronde icovariant)
  • Rand: geen
  • Actief/ingedrukt: transform: scale(0.92) plus een 2-px-#222222-focusring op 0 0 0 2px

Secundaire Knop ("Word host", omrande tertiaire acties)

  • Achtergrond: #ffffff
  • Tekst: Ink Black #222222, Airbnb Cereal 500, 14–16 px
  • Opvulling: 10 px 16 px
  • Radius: 20 px (pil) of 8 px (rechthoekig)
  • Rand: 1 px solid Hairline Gray #dddddd

Alleen-icoon Ronde Knop (pijl terug, delen, favoriet, carrouselbesturingen)

  • Achtergrond: #f2f2f2 (licht gebroken wit) of wit met 1-px transparante zwarte rand
  • Icoon: #222222 contourstreek, 16–20 px
  • Grootte: 32–44 px diameter
  • Radius: 50%
  • Actief/ingedrukt: transform: scale(0.92); subtiele 4-px witte ring 0 0 0 4px rgb(255,255,255) om te scheiden van kleurrijke fotografieachtergronden

Uitgeschakelde Knop

  • Achtergrond: #f2f2f2
  • Tekst: Stone Gray #c1c1c1
  • Doorzichtigheid: 0,5

Piltab-knop (categoriekiezer "Woningen / Ervaringen / Diensten")

  • Achtergrond: transparant
  • Tekst: Ink Black #222222, Airbnb Cereal 500, 16 px
  • Opvulling: 8 px 14 px
  • Actieve staat: 2-px Ink Black-onderstreping onder het label
  • Gecombineerd met een 3D gerenderd geïllustreerd icoon van 36–48 px boven het label

Kaarten & Containers

Listingkaart (beranda-raster, zoekresultaten)

  • Achtergrond: #ffffff
  • Radius: 14 px op de afbeelding, tekst zit direct eronder op transparante achtergrond
  • Afbeelding: 4:3-beeldverhouding, volledig scherm, afgerond met dezelfde 14-px radius
  • Opvulling: geen op de buitenste container; 12 px ruimte tussen afbeelding en metadatarijen
  • Schaduw: geen — scheiding komt van witruimte en de intrinsieke radius van de foto
  • Metadatapatroon: Stad/regio op regel 1 (16 px 600), afstand/duur op regel 2 (14 px 500 Ash Gray), datumbereik op regel 3, prijsregel met "per nacht" onderaan

Detailpagina Boekingspaneel (vaste rechterrail op kamer-/ervaringspagina's)

  • Achtergrond: #ffffff
  • Radius: 14–20 px
  • Rand: 1 px solid Hairline Gray #dddddd
  • Schaduw: rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0 — een gestapelde drielaagse subtiele verhoging
  • Opvulling: 24 px
  • Breedte: ~370 px, vastgezet 120–140 px onder de bovenkant van de viewport
  • Inhoud: prijskop → datumkiezer → gastenkeuzelijst → primaire CTA → voetnoot "U wordt nog niet in rekening gebracht"

Voorzieningenraster-kaart (op listingdetailpagina's)

  • Achtergrond: #ffffff
  • Rand: 1 px solid Hairline Gray #dddddd op rijniveau (niet per item)
  • Opvulling: 16 px verticaal per voorzieningsrij
  • Icoon + label-patroon: 24-px contouricoon links, 16-px-500-gewichtslabel rechts

Beoordelingskaart (individuele beoordeling op detailpagina's)

  • Achtergrond: #ffffff, geen rand
  • Opvulling: 0 (afhankelijk van rasterafstanden)
  • Inhoud: 40-px ronde avatar + 16-px-600-gewichtsnaam + 14-px-400 Ash Gray datum op één rij, dan 14-px-500 broodtekstalinie eronder

Invoer & Formulieren

Zoekbalk (primaire startpagina)

  • Achtergrond: #ffffff
  • Rand: 1 px solid Hairline Gray #dddddd om alle drie segmenten (Waar / Wanneer / Wie)
  • Radius: 32 px (volledige pil)
  • Schaduw: rgba(0, 0, 0, 0.04) 0 2px 6px 0 — subtiel zwevend gevoel
  • Structuur: drie segmenten gescheiden door dunne verticale scheidingslijnen, elk segment heeft een 12-px-500-label boven een 14-px-500-plaatshouder
  • Verzenden: Rausch ronde icoknop aan de rechterrand, 48-px diameter

Tekstinvoer (generieke formulieren)

  • Achtergrond: #ffffff
  • Rand: 1 px solid Hairline Gray #dddddd
  • Radius: 8 px
  • Opvulling: 14 px 16 px
  • Focus: rand schakelt over naar Ink Black, voegt 0 0 0 2px zwarte buitenste ring toe
  • Fout: rand schakelt over naar #c13515 (Error Red), helptekst gebruikt dezelfde kleur

Datumkiezer

  • Kalenderraster: 7-kolomindeling, ronde 50% dagcellen 40–44 px breed
  • Geselecteerd bereik: Ink Black #222222 achtergrond met witte cijfers
  • Start-/eindankers: grotere gevulde cirkels; middendatums gebruiken Soft Cloud #f7f7f7-tint

Navigatie

Bovenste Nav (Desktop)

  • Hoogte: ~80 px
  • Achtergrond: #ffffff
  • Links: Airbnb woordmerk+logo-opzet in Rausch (102×32 px)
  • Midden: tri-tab categoriekiezer (Woningen / Ervaringen / Diensten) met 3D-iconen van 36–48 px gestapeld boven 16-px-500-labels; actieve tab heeft 2-px Ink Black-onderstreping
  • Rechts: "Word host"-tekstlink, dan 32-px ronde bol (taal), dan 36-px hamburgermenu avatar
  • Onderste rand: 1 px solid Hairline Gray #dddddd

Bovenste Nav (Mobiel)

  • Eénregels zoekpil neemt de volledige breedte in: "Begin uw zoekopdracht"-plaatshouder met klein vergrootglas-icoon
  • Eronder: tri-tab categoriekiezer blijft bestaan (Woningen / Ervaringen / Diensten) — geïllustreerde iconen krimpen naar ~28 px
  • Onderaan vaste tabbar: Verkennen (actieve status Rausch) / Verlanglijsten / Inloggen — 24-px-iconen boven 12-px-labels

Listing Detailpagina Secundaire Nav

  • Vaste horizontale scroll van ankerlinks (Foto's · Voorzieningen · Beoordelingen · Locatie · Host) verschijnt bij scrollen voorbij de hero-afbeelding
  • Hoogte: 56 px
  • Onderste rand: 1 px solid Hairline Gray

Afbeeldingsbehandeling

  • Primaire beeldverhoudingen: 4:3 voor listingrasters op de startpagina, 16:9 voor ervaring-herofotografie, 1:1 voor avatars
  • Radius: 14 px op listingraster-afbeeldingen, 20 px op detailpagina-herofotoframes, 50% op avatars
  • Afbeeldingsraster op detailpagina's: vijf-foto-raster met één grote afbeelding links (50% breedte) en vier kleinere foto's in een 2×2-raster rechts, alle gedeeld in de buitenste afgeronde container van 20 px
  • Lazy loading: intensief gebruik van loading="lazy" met vervaagde plaatshoudervoorbeelden
  • Carrousel: ronde 32-px pijlknoppen overlappen de afbeelding, verticaal gecentreerd; puntindicatoren zitten 12 px boven de onderrand

Kenmerkende Componenten

Gastfavoriet-award-opzet (prominent weergegeven op detailpagina's van listings met hoge beoordeling)

  • Gecentreerd beoordelingsnummer weergegeven op 44–56 px met 700-gewicht
  • Twee handgetekende laurierkrans-SVG-illustraties flankeren links en rechts op ~48 px hoogte
  • Eronder: "Gastfavoriet"-label op 12 px 700 hoofdletters met 0,32 px-tracking, en een kort sub-label op 14 px 500 Ash Gray
  • Volledige breedte blok, geen containerrand — zit direct op wit canvas

Tri-Tab Categoriekiezer (verschijnt bovenaan elk bladeroppervlak)

  • Drie tabs: Woningen / Ervaringen / Diensten
  • Elke tab: 3D gerenderd geïllustreerd icoon (~48 px hoog) boven 16-px-500-label
  • Ervaringen en Diensten dragen momenteel een kleine donkerblauwe "NIEUW"-pil (12-px-700 witte tekst op donkerblauwe achtergrond) zwevend rechtsboven het icoon
  • Actieve tab: 2-px Ink Black-onderstreping onder het label

Inspiratiestedenkader (startpagina "Inspiratie voor toekomstige uitstapjes")

  • 6-kolomsraster van bestemmingslinks op desktop, 2 kolommen op mobiel
  • Elke cel: 16-px-600-stadsnaam op regel 1, 14-px-500 Ash Gray-verhuurtype-ondertitel op regel 2 ("Cottage-verhuur", "Villa-verhuur")
  • Geen afbeeldingen — alleen-tekstraster
  • Bovenaan met tabs per categorie (Populair / Kunst & cultuur / Strand / Bergen / Buiten / Activiteiten / Reistips & inspiratie / Airbnb-vriendelijke appartementen) — actieve tab heeft 2-px-onderstreping en gewichtsverschuiving

Vaste Reserveerkaart (listingdetailpagina's)

  • Blijft vast 120 px onder de bovenkant van de viewport op desktop terwijl de gebruiker voorbij de hero scrolt
  • Klapt in tot een volledigbreedte onderbalk op mobiel met een "Vanaf $X / nacht"-label en een Rausch-"Reserveer"-pil
  • Altijd weergegeven: prijskop → datumweergave → gastenkiezer → Rausch CTA → disclaimer "U wordt nog niet in rekening gebracht"

Ervaring Gastenkaart (detailpagina's van ervaringen)

  • Volledigbreedte afgeronde container met een 3:2 omslagfoto bovenaan
  • Gastavatar (rond, 56 px) overlapt de onderrand van de omslag met 50%
  • Onder de overlap: hostnaam op 16 px 700, hostervaring op 14 px 500 Ash Gray, kleine Rausch-"Bericht aan host"-pilknop
  • Gebruikt als overgang tussen beoordelingen en het voorzieningen-/locatieblok

"Wat u moet weten"-strip (listingdetailpagina's)

  • 3-kolomsraster van regel-/beleidsblokken (Huisregels, Veiligheid & eigendom, Annuleringsbeleid)
  • Elke kolom: icoon bovenaan, 16-px-600-kop, 14-px-500 Ash Gray-broodtekst, "Meer weergeven"-link in Ink Black-onderstreping
  • Scheidingslijn: 1-px Hairline Gray boven- en onderrand op de gehele strip

5. Lay-outprincipes

Spatiëringssysteem

  • Basiseenheid: 8 px
  • Geëxtraheerde schaal: 2, 3, 4, 5,5, 6, 8, 10, 11, 12, 15, 16, 18,5, 22, 24, 32 px — fijnkorrelig met een handvol off-raster-waarden voor pixelperfecte icoonautozetting
  • Sectie-opvulling: ~48–64 px boven/onder op desktop, 24–32 px op mobiel
  • Kaart interne opvulling: 24 px op boekingspanelen en grote kaarten, 16 px op voorzieningsrijen, 12 px op listingkaart-metadata
  • Tussenruimte tussen listingkaarten: 24 px desktop, 16 px mobiel
  • Tussen gestapelde tekstrijen: 4–8 px (zeer krap — versterkt het "dichte informatie"-gevoel van reislistings)

Raster & Container

  • Maximale inhoudsbreede: 1760–1920 px op ultrabreed (Airbnb laat het raster verder ademen dan de meeste sites); 1280 px op de meeste detailpagina's
  • Startpagina-listingraster: 6 kolommen bij ≥1760 px, 5 bij ≥1440 px, 4 bij ≥1128 px, 3 bij ≥800 px, 2 bij ≥550 px, 1 eronder
  • Detailpagina: 2-kolomsasymmetrisch — hoofdinhoud ~58%, vaste boekingspaneel ~36% rechts, ~6% tussenruimte
  • Voettekst: 3 kolommen Ondersteuning / Hosting / Airbnb

Witruimtefilosofie

Airbnb is informatief maar nooit benauwd. Witruimte wordt gebruikt om te groeperen — listingkaarten hebben 24 px tussenruimte zodat elke foto als een afzonderlijk object leest, maar de metadata onder elke kaart gebruikt 4–8 px-tussenruimten zodat prijs/stad/datum als één eenheid aanvoelt. Het detailpagina-boekingspaneel heeft 24 px interne opvulling, maar rijen daarbinnen (datumkiezer, gastenkiezer, CTA) zijn gestapeld op 12 px — de grens tussen de kaart en de pagina doet meer scheidingswerk dan de inhoud daarbinnen.

Randradius-schaal

Radius Gebruik
4 px Inline ankertags, tag-chips
8 px Tekstknoppen, keuzelijsten, kleine hulpprogrammaknoppen
14 px Listingkaartfotografie, generieke inhoudscontainers, badges
20 px Primaire afgeronde knoppen (pilvorm), grote afbeeldingen, boekingspaneel
32 px Zoekbalk-pil, extra grote containers
50% Alle ronde icoorknoppen, alle avatars, wenslijst-harten — de kenmerkende ronde geometrie van het systeem

6. Diepte & Verhoging

Niveau Behandeling Gebruik
0 Geen schaduw Listingkaarten, hoofdinhoud, alleen-tekst-secties
1 rgba(0, 0, 0, 0.08) 0 4px 12px Actieve/ingedrukte icoorknoppen (bijv. terug, delen, favoriet) — subtiele lift om interactie aan te geven
2 rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0 Vaste boekingspaneel-kaart, modals, keuzelijstmenu's — de kenmerkende drielaagse verhoging van het systeem
Focusring 0 0 0 2px #222222 Actieve-statussknoppen, gefocuste zoekinvoer
Witte Scheidingsring rgb(255, 255, 255) 0 0 0 4px Ronde knoppen overlapt op foto's — een 4-px witte ring scheidt de knop netjes van kleurrijke afbeeldingsachtergronden

Schaduwfilosofie: Airbnb gebruikt gestapelde gelaagde schaduwen in plaats van één enkele slagschaduw. De drielaagse boekingspaneel-schaduw leest als één samenhangende lift maar bestaat eigenlijk uit drie afzonderlijke schaduwen op verschillende dekking/vervagingswaarden — wat subtiele anti-aliasing creëert aan de omtrek van de schaduw die premium aanvoelt zonder zwaar te zijn.

Decoratieve Diepte

  • Fotografie als diepte: het systeem vertrouwt sterk op volledigschermfotografie om visuele diepte te creëren; schaduwen en gradiënten worden spaarzaam gebruikt zodat de foto's het zware werk doen
  • Laurierkransopzet: de Gastfavoriet-award gebruikt twee SVG-laurierkransillustaties die het anderszins platte beoordelingsnummer een ceremoniële, trofeeachtige aanwezigheid geven
  • 3D gerenderde categorieiconen: de iconen voor Woningen/Ervaringen/Diensten hebben hun eigen zachte interne verlichting en subtiele gegoten schaduwen ingebakken in het artwork — de enige plek waar het merk "dimensionele" illustratie toestaat

7. Wat Wel en Wat Niet

Wat Wel

  • Reserveer Rausch #ff385c voor primaire acties en de actieve tab-indicator — verdun het nooit met decoratief gebruik.
  • Laat fotografie ademen — 4:3-uitsneden met 14–20-px afgeronde hoeken, geen overlappende tekst, geen gradiëntschermen.
  • Gebruik Ink Black #222222 voor elke tekstlaag onder Rausch — dit is het bijna-zwart van het systeem, nooit echt #000000.
  • Combineer de 3D-geïllustreerde iconen van de tri-tab categoriekiezer met platte typografie — meng geen illustratiestijlen binnen één enkel oppervlak.
  • Stapel drie lage-dekking schaduwen (~2%, 4%, 10%) om de kenmerkende boekingspaneel-verhoging te creëren.
  • Gebruik Hairline Gray #dddddd 1-px-randen voor elke kaart-naar-kaart- en rij-naar-rij-scheidingslijn.
  • Behandel het boekingspaneel als vastgezet op desktop, inklappend naar een onderaan verankerde reserveringsbalk op mobiel.
  • Gebruik 4–8-px-afstand binnen metadatagroepen en 24 px tussen kaarten — informatiedichtheid is opzettelijk.

Wat Niet

  • Voer geen secundaire accentkleuren in buiten het Rausch / Plus Magenta / Luxe Purple-productlaagpalet.
  • Plaats geen tekst in foto's — bijschriften zitten altijd onder de afbeelding, nooit overlappend.
  • Gebruik geen hoofdletterlabels behalve de enkele 8-px-superscript-rol.
  • Rond icoorknoppen niet af tot iets anders dan 50% — cirkelvormig is de kenmerkende geometrie van het systeem.
  • Voeg geen slagschaduwen toe aan listingkaarten — ze zitten op wit canvas zonder verhoging.
  • Gebruik geen gradiëntachtergronden — de enige gradiënt in het systeem is een smalle Rausch → magenta sweep op het woordmerk.
  • Gebruik het lettergewicht 400-regulier niet — het broodtekstgewicht van Airbnb Cereal is 500.
  • Vervang Airbnb Cereal VF niet door een ander displaylettertype — het systeem is opzettelijk één familie.

8. Responsief Gedrag

Breekpunten

Airbnb declareert ~60 breekpunten (ontwerptijdartefact van hun componentenbibliotheek), maar de betekenisvolle lay-outverschuivingen vinden plaats bij een veel kleinere set:

Naam Breedte Belangrijkste Wijzigingen
Ultra-breed ≥1760 px 6-kolomslistingraster, 1760–1920 px maximale inhoudsbreede
Desktop XL 1440–1759 px 5-kolomsraster, volledige nav zichtbaar, vaste boekingspaneel op de rechterrail
Desktop 1128–1439 px 4-kolomsraster, vaste boekingspaneel blijft bestaan
Laptop 1024–1127 px 3–4-kolomsraster, categorienavigatie blijft horizontaal
Tablet 800–1023 px 3-kolomsraster, globale zoekopdracht kan inklapten tot een enkele rijpil
Klein tablet 550–799 px 2-kolomsraster, boekingspaneel daalt naar volledigbreedte inline blok
Mobiel 375–549 px 1-koloms gestapelde indeling, onderaan vaste tabbar verschijnt (Verkennen / Verlanglijsten / Inloggen)
Klein mobiel <375 px Randopvulling trekt in naar 16 px; categoriekiezer-iconen krimpen naar ~28 px

Aanraakdoelen

Alle interactieve elementen voldoen aan of overschrijden 44×44 px. De ronde icoorknoopfamilie is specifiek 32–44 px groot met 8–12 px uitgebreide trefgebied-opvulling. De primaire Rausch Reserveer-knop is ~48 px hoog. Het trefgebied van de tri-tab categoriekiezer is het volledige label-plus-icoon rechthoek (typisch ~64×80 px per tab).

Inklapstrategie

  • Nav: Bovenste nav houdt Airbnb-woordmerk + tri-tab kiezer op tablet en groter; op mobiel schuift de kiezer net onder de zoekpil, en de bol-/avataronbesturingen verhuizen naar een onderaan verankerde tabbar.
  • Zoekbalk: Driesegment-pil (Waar / Wanneer / Wie) met een ronde Rausch-verzendknop op desktop; klapt op mobiel in tot een eenregel "Begin uw zoekopdracht"-pil, waarop tikken een volledigscherm zoekblad opent.
  • Boekingspaneel: Vaste rechterrail op ≥1128 px; inline binnen de hoofdinhoudskolom tussen 800–1127 px; onderaan vaste "Reserveer"-pil op <800 px.
  • Listingraster: Doorloopt van 6 → 5 → 4 → 3 → 2 → 1 kolommen over breekpunten.
  • Detailpagina-afbeeldingsraster: Vijf-afbeelding-indeling (1 groot + 4 klein) op desktop; wordt op mobiel een veegbaar volledigscherm carrousel met paginapuntindicatoren.
  • Voettekst: 3-kolomsindeling klapt in naar gestapelde enkele kolom bij <800 px.

Afbeeldingsgedrag

  • loading="lazy" universeel, met vervaagde im_w=-URL-geparametriseerde voorbeeldminiaturen als eerste geserveerd
  • Responsieve afbeeldingen gebruiken Airbnbs muscache.com-CDN met de im_w-queryparameter voor breedtegebaseerde levering (im_w=240, im_w=720, im_w=1200, im_w=2400)
  • Geen art-direction-uitsneden — dezelfde afbeelding wordt op/neer geschaald over breekpunten
  • Carrousels passen de foto-hoogte automatisch aan om een consistente 4:3-verhouding te behouden ongeacht de bronverhouding

9. Agent-promptgids

Snelle Kleurenreferentie

  • Primaire CTA: "Rausch (#ff385c)"
  • Paginaachtergrond: "Canvas White (#ffffff)"
  • Suboppervlak: "Soft Cloud (#f7f7f7)"
  • Kop-/broodtekst: "Ink Black (#222222)"
  • Secundaire tekst: "Ash Gray (#6a6a6a)"
  • Rand/scheidingslijn: "Hairline Gray (#dddddd)"
  • Fout: "Error Red (#c13515)"
  • Info-link: "Info Blue (#428bff)"
  • Luxe-laag accent: "Luxe Purple (#460479)"
  • Plus-laag accent: "Plus Magenta (#92174d)"

Voorbeeld Componentprompts

  • "Maak een primaire Reserveer-knop: Rausch (#ff385c) achtergrond, wit Airbnb Cereal 500-gewicht label op 16 px, 14 px × 24 px opvulling, 8 px border-radius, geen schaduw. Op actief/ingedrukt voeg transform: scale(0.92) toe met een 2-px Ink Black focusring (0 0 0 2px #222222)."
  • "Bouw een listingkaart met een 4:3 volledigscherm foto op 14-px border-radius, geen containerschaduw; onder de afbeelding stapel drie tekstrijen met 4-px-tussenruimten: stadsnaam op 16 px 600 Ink Black, verhuurtype op 14 px 500 Ash Gray (#6a6a6a), en prijsrange in 16 px 500 Ink Black met een 14-px per nacht achtervoegsel."
  • "Ontwerp een vast boekingspaneel: witte achtergrond, 14-px border-radius, 1-px Hairline Gray (#dddddd) rand, 3-laags verhogingsschaduw (rgba(0,0,0,0.02) 0 0 0 1px, rgba(0,0,0,0.04) 0 2px 6px 0, rgba(0,0,0,0.1) 0 4px 8px 0), 24-px opvulling, 370-px breedte, vastgezet 120 px onder de viewport-bovenkant op desktop. Inhoud: prijskop, datumkiezer, gastenkeuzelijst, Rausch primaire CTA, en een 12-px Ash Gray U wordt nog niet in rekening gebracht disclaimer."
  • "Maak een tri-tab categoriekiezer: drie gelijkbrede tabs gelabeld Woningen, Ervaringen, Diensten; elke tab heeft een ~48-px 3D gerenderd geïllustreerd icoon (huis, ballon, bel) boven een 16-px-500 Ink Black label; actieve tab krijgt een 2-px Ink Black onderstreping; voeg een kleine 12-px-700 witte NIEUW pil toe op een donker marineblauwe achtergrond rechtsboven de Ervaringen- en Diensten-iconen."
  • "Render de Gastfavoriet-award-opzet: een gecentreerd beoordelingsnummer op 52-px 700-gewicht Ink Black, geflankeerd links en rechts door handgetekende SVG-laurierkransen op ~48 px hoog; eronder een 12-px-700 hoofdletters GASTFAVORIET-label met 0,32-px tracking; sub-label op 14 px 500 Ash Gray; volledigbreedte blok direct op wit canvas zonder containerrand."

Iteratiegids

Bij het verfijnen van bestaande schermen gegenereerd met dit ontwerpsysteem:

  1. Richt u op ÉÉN component tegelijk.
  2. Verwijs naar specifieke kleurnamen en hexcodes uit dit document (bijv. "Ink Black #222222", niet "donkergrijs").
  3. Gebruik beschrijvingen in natuurlijke taal naast metingen ("subtiele drielaagse verhoging" in plaats van een lange schaduwstring).
  4. Beschrijf het gewenste "gevoel" ("tijdschriftachtig, fotografie-eerst" vs. "dichte hulpprogramma").
  5. Standaard altijd Airbnb Cereal VF 500-gewicht voor broodtekst en 600–700 voor nadruk — nooit 400.
  6. Houd Rausch-roze schaars — als er meer dan één Rausch-gekleurd element per viewport verschijnt, overweeg of één geneutraliseerd moet worden.

Bekende Lacunes

  • Startpagina-listingrasterkaarten: het primaire vastgoedkaartenraster (het primaire visuele oppervlak van airbnb.com) werd niet volledig vastgelegd in de geëxtraheerde startpagina-schermafbeeldingen — inhoud laadde slechts gedeeltelijk. De bovenstaande Listingkaart-specificaties zijn afgeleid van de Inspiratierasterstructuur en de bredere conventies van Airbnb; bevestig exacte beeldverhoudingen en metadatahiërarchie met de live site voor productiegebruik.
  • Ervaringen-categorieiconen: de 3D geïllustreerde iconen voor Woningen / Ervaringen / Diensten worden geserveerd als raster-assets; hun exacte bronbestandsspecificaties (SVG vs PNG, gerenderde pixelafmetingen) zijn hier niet gedocumenteerd.
  • Animatie- en overgangstimings: niet vastgelegd — statische extractiebereik.
  • Donkere modus: Airbnb levert geen native donkere modus in de geëxtraheerde productoppervlakken; dit document beschrijft alleen het enkele lichte-modus-thema.