relume.ai

Tasarım araçlarıAçık + koyu

Bu tasarımı yapay zekâyla kullanın

AI aracınızı seçin, fikrinizi anlatın ve istemi gönderin.

  • İstemi Claude Code projenizdeki ajanın sohbetine yapıştırıp gönderin.

İndir

Örnek düzen

Açılış sayfası, bu paketten oluşturuldu
Yalnızca bu paketin ölçümlerinden oluşturulmuş genel bir sayfa: sitenin renkleri, yazı tipleri, düğmeleri ve boşluklarıyla örnek metinler.

Renkler

9 renk

Bileşenler

Generate WebsiteDaha fazla bilgiAura Trails
düğme primary
#ff00f4 üzerinde #ffffff metin, r 6px, h 32px, 14px/400
düğme secondary
#ffffffeb üzerinde #101010 metin, r 9999px, h 88px, 14px/400
düğme ghost
#f1f0eee6 üzerinde saydam üzerinde #161616 metin, r 6px, h 25px, 14px/400
kart
#ffffffcc, 1px solid #1b19191a, r 0px
bağlantı
#101010, alt çizgi yok, 400
üst bilgi
56px, relative, 14px boyutunda 8 bağlantı
ana başlık
56px / 400, center hizalı, maks. 640px
rozet
"Design": #ffffff on #161616, 14px/400, 20px tall, radius 4px, padding 4px 12px
rozet
"Book your class": #384123 on #ffffff, 6.094px/400, 22px tall, radius 45.069px, padding 4.958px 15.323px, uppercase
avatar
Avatar 49px, radius 0px, border 0px rgb(22, 22, 22)
formlar
4 forms, 10 inputs. Required markers: 0. Help texts: 0. Submit button is content-width. Label placement: none (3).
ikonlar
Icons: 103 inline SVGs, outline/stroke, sizes 11px/13px/9px/12px, stroke 1.2px/1.05px; icon font classes fa-, icon-, iconify.

Etkileşim ve animasyon

  • button primary "Generate Website": moves down 1px
  • button secondary "Generate": hover değişikliği yok
  • nav link "Pricing": background transparent → #1616160f
  • card "icon-attachmentPublishExportGenerate Web": background #ffffffcc → #ffffff, shadow added (rgba(0, 0, 0, 0.05) 0px 4px 8px -2px, rgba(0, 0, 0, 0.01) 0p)
  • input: hover değişikliği yok
  • focus button primary: outline 1px auto rgb(16, 16, 16)
  • focus input: no visible focus style measured (may rely on :focus-visible with keyboard only)
  • tooltip’ler: No tooltip could be triggered from the first viewport, but the stylesheet defines tooltip rules (.tooltip-icon): width: 1.25rem; height: 1.25rem.
  • menüler: 2 aria-haspopup triggers exist; none opened on hover (click-to-open menus).
  • animasyon: 514 elements carry transitions; typical 0.2s with ease, mostly on opacity, color, transform. 10 running keyframe animations (ra-caret-blink 1.06s infinite; ra-trail-run 5s infinite; logoloop 30s infinite). 9 sizable elements sit at opacity 0 before scrolling: scroll-reveal animations are in use (reveal on enter, fade + rise is the usual recipe).

Tipografi

1 font ailesi
Geist VariableKendi sunucusunda
headline-displayQuick brown fox56px / 400 / lh 67.2px / -1.68px
headline-lgQuick brown fox40px / 400 / lh 48px / -0.8px
headline-mdQuick brown fox18px / 400 / lh 25.2px / -0.36px
body-mdThe quick brown fox jumps over the lazy dog18px / 400 / lh 27px
label-mdThe quick brown fox jumps over the lazy dog12px / 400 / lh 18px
buttonThe quick brown fox jumps over the lazy dog14px / 500 / lh 20.02px
Kullanılan boyutlar

Boşluk

4px birim
4812162024327280
İçerik genişliği
1280px
Kırılma noktaları
479, 700, 767, 768, 991px

Köşe yarıçapı

düğme 6pxgirdi 0pxkart 0pxgörsel 0px

Gölgeler

4

Koyu tema

toggle (Switch to dark theme) ile ulaşılıyor. Açık → koyu:

background#f1f0ee → #101010
surface#ffffff → #2b2319
surface-2#e4e3e1 → #1a1a1a
foreground#101010 → #ffffff
muted-foreground#343434 → #8a8a8a
primary#ff00f4 → #6c0063
on-primary#111111 → #ffffff
secondary#98eafd → #102d66
border#dcdbd9 → #1e1e1e

koyu mod gölgeleri: rgba(255, 255, 255, 0.06) 0px 0px 0px 1px inset; rgba(255, 255, 255, 0.06) 0px -1px 0px 0px inset

Logo ve simgeler

5 referans

Bu kesitler ve ölçüleri BRAND.md içinde. Paketi kullanmadan önce doğru logonun seçildiğini kontrol et.

Bileşen envanteri

87 türden 31 · 66 varyant · 14 durum · 1 overlay

Her satır, sayfada bulunan bir görsel örnektir. Görüntüler, çıkarma sırasında ulaşılan durumları gösterir. Eksik görüntüler ve canlı doğrulanmamış durumlar ayrı işaretlenir. Ayrıntılar COMPONENTS.md ve components.css dosyalarındadır.

Button, ghostsayfada 12#161616 text on transparent, radius 0px, h 32px, padding 0px 0px 0px 0px, 14px/500
disabled: değişiklik yok
Button, ghost-with-iconsayfada 11, örn. "Typography"#161616 text on transparent, radius 0px, h 33px, padding 8px 8px 8px 12px, 14px/400, shadow rgba(27, 25, 25, 0.1) 0px -1px 0px 0px inset, icon left 13px
hover, focus (keyboard), disabled: canlı doğrulanmadı
Button, ghost-with-icon (sm)sayfada 4, örn. "Replace component"#161616 text on transparent, radius 6px, h 25px, padding 0px 12px 0px 12px, 14px/400, shadow rgba(27, 25, 25, 0.1) 0px 0px 0px 1px inset, icon left 13px
hover, focus (keyboard), active (pressed), disabled: canlı doğrulanmadı
Button, primarysayfada 3, örn. "Generate Website"#ffffff text on #ff00f4, radius 6px, h 32px, padding 6px 12px 6px 12px, 14px/400
hover, focus (keyboard), active (pressed), disabled: canlı doğrulanmadı
Button, ghost (lg)sayfada 3#161616 text on transparent, radius 6px, h 79px, padding 0px 0px 0px 0px, 14px/400
focus (keyboard), disabled: canlı doğrulanmadı
Button, ghost · headersayfada 2#161616 text on transparent, radius 0px, h 34px, padding 0px 0px 0px 0px, 14px/500
hover: canlı doğrulanmadı
Button, ghost-with-icon (sm) · mainsayfada 1, örn. "Home"#161616 text on transparent, radius 8px, h 25px, padding 0px 8px 0px 8px, 14px/500, shadow rgba(27, 25, 25, 0.1) 0px 0px 0px 1px inset, icon left 11px
focus (keyboard), disabled: canlı doğrulanmadı
Button, ghost-with-icon (lg)sayfada 1, örn. "BrandLogos, colors and fonts"#161616 text on transparent, radius 8px, h 44px, padding 8px 8px 8px 12px, 14px/400, shadow rgba(27, 25, 25, 0.1) 0px 0px 0px 1px inset
hover, focus (keyboard), disabled: canlı doğrulanmadı
Icon button, ghostsayfada 4#161616 text on transparent, radius 6px, h 20px, padding 0px 0px 0px 0px, 14px/400, icon only 11px
focus (keyboard): canlı doğrulanmadıhover, active (pressed), disabled: değişiklik yok
Icon button, ghost · mainsayfada 3#161616 text on transparent, radius 6px, h 25px, padding 0px 0px 0px 0px, 14px/400, shadow rgba(27, 25, 25, 0.1) 0px 0px 0px 1px inset, icon only 13px
hover, focus (keyboard), active (pressed), disabled: canlı doğrulanmadı
Icon button, secondarysayfada 1#101010 text on rgba(255, 255, 255, 0.92), radius 999px, h 88px, padding 0px 0px 0px 0px, 14px/400, shadow rgba(0, 0, 0, 0.24) 0px 8px 32px 0px, icon only 30px
hover, focus (keyboard), disabled: canlı doğrulanmadı
Icon button, secondary · mainsayfada 1#161616 text on rgba(22, 22, 22, 0.06), radius 6px, h 79px, padding 0px 0px 0px 0px, 14px/400, icon only 11px
hover, focus (keyboard), disabled: canlı doğrulanmadı
Toggle / segmented control, ghostsayfada 5, örn. "Agents" · covered by div.choose-path_tagline-wrapper#161616 text on transparent, radius 0px, h 38px, padding 0px 0px 0px 0px, 14px/400, icon right 13px
rest: önizleme kullanılamıyorhover, focus (keyboard): canlı doğrulanmadı
Toggle / segmented control, ghost · mainsayfada 2#161616 text on transparent, radius 6px, h 25px, padding 0px 0px 0px 0px, 14px/400, icon only 13px
hover, focus (keyboard): canlı doğrulanmadı
Text link, underlinedsayfada 3, örn. "Andy McKay"#101010, underline #ff00f4, offset 13%, 12px/500
active (pressed): değişiklik yok
Text link, plainsayfada 1, örn. "@jordanphughes"#101010, no underline, 14px/500
hover: canlı doğrulanmadı
Text link, plain · mainsayfada 1, örn. "Co-founder, Untitled UI"#5c5c5c, no underline, 12px/500
hover: canlı doğrulanmadı
Text link, underlined · mainsayfada 1, örn. "Try an example"#343434, underline #ff00f4, offset 13%, 14px/500
hover, focus (keyboard): canlı doğrulanmadı
Textarea, outlinedsayfada 2 · partially outside the capture viewporth 106px, bg transparent, border none, radius 0px, padding 20px 20px 20px 20px, 16px text #101010, placeholder #5c5c5c
rest: önizleme kullanılamıyorfocus (keyboard), placeholder, disabled: canlı doğrulanmadı
Textarea, outlined · formsayfada 1h 48px, bg transparent, border none, radius 0px, padding 12px 8px 12px 12px, 16px text #101010, placeholder #5c5c5c
focus (keyboard), placeholder, disabled: canlı doğrulanmadı
Combobox / custom select, filled (sm)sayfada 3, örn. "Standard"h 25px, bg rgba(22, 22, 22, 0.06), border none, radius 6px, padding 0px 12px 0px 8px, 14px text #161616
focus (keyboard): canlı doğrulanmadıhover, open: değişiklik yok
Radio, nativesayfada 3, örn. "1"native, accent auto, size 61x20
focus (keyboard): canlı doğrulanmadıhover, checked / on: değişiklik yok
Radio, native · mainsayfada 3, örn. "2"native, accent auto, size 61x20
hover, focus (keyboard), disabled: canlı doğrulanmadı
Field label, defaultsayfada 6, örn. "Style"12px/400 #5c5c5c, above the field, margin-bottom 4px
Header / navbarsayfada 1, örn. "Products PublishTake your pr"h 56px, relative, bg transparent, 8 links, inner 1280px, logo left
rest: önizleme kullanılamıyor
Navigation link, plainsayfada 4, örn. "Pricing"#101010, no underline, 14px/400
Navigation link, underlinedsayfada 1, örn. "Try an example"#343434, underline #ff00f4, offset 13%, 14px/500
hover, focus (keyboard): canlı doğrulanmadı
Menu / dropdown trigger, ghostsayfada 1, örn. "Products"#101010 text on transparent, radius 6px, h 28px, padding 4px 8px 4px 8px, 14px/400, icon right 12px
Tabs, plainsayfada 5, örn. "PublishExport" · partially outside the capture viewport2 tabs, horizontal, tab #343434 14px/400, padding 4px 6px 4px 4px, selected #101010/400, gap normal 2px
rest: önizleme kullanılamıyor
Tabs, pillsayfada 2, örn. "BriefSitemapWireframeDesign"4 tabs, horizontal, tab #5c5c5c 14px/400, padding 4px 12px 4px 8px, selected #161616/400 on #ffffff, indicator filled tab #ffffff
yalnızca durağan
Footersayfada 1, örn. "Dan AnisseCo-Founder & CEOic"h 477px, bg transparent, 0 link columns, 69 links, headings: Cookie Settings, Cookie Settings, Manage Preferences, social links
rest: önizleme kullanılamıyor
Footer link, plainsayfada 27, örn. "Relume PublishNew"#101010, no underline, 14px/400
Social icon linkssayfada 35 icons at 16px, #101010, gap 0px 12px
Theme togglesayfada 1#161616 text on transparent, radius 0px, h 34px, padding 0px 0px 0px 0px, 14px/500
Badge / pill / tag, neutral-squaresayfada 8, örn. "Explore Publish"#101010 on transparent, border 1px solid rgba(27, 25, 25, 0.1), radius 6px, h 34px, padding 6px 12px 6px 12px, 14px/400
Badge / pill / tag, brand-squaresayfada 5, örn. "Start for free"#ffffff on #ff00f4, radius 6px, h 32px, padding 6px 12px 6px 12px, 14px/400
hover: canlı doğrulanmadı
Badge / pill / tag, neutral-square · mainsayfada 3, örn. "Scheme 2"#161616 on transparent, border 1px solid rgba(27, 25, 25, 0.1), radius 0px, h 20px, padding 2px 8px 2px 8px, 14px/400
yalnızca durağan
Badge / pill / tag, subtle-squaresayfada 1, örn. "Hero / Primary Orientation"#161616 on rgba(22, 22, 22, 0.06), radius 6px, h 25px, padding 0px 8px 0px 8px, 14px/400
yalnızca durağan
Badge / pill / tag, inverse-squaresayfada 1, örn. "Share"#161616 on transparent, radius 6px, h 25px, padding 0px 12px 0px 12px, 14px/400
hover: canlı doğrulanmadı
Badge / pill / tag, success-pillsayfada 1, örn. "Book your class"#ffffff on #384123, radius 45.139px, h 14px, padding 2.708px 9.028px 2.708px 9.028px, 5.078px/500, uppercase, tracking 0.1016px
yalnızca durağan
Badge / pill / tag, neutral-pillsayfada 1, örn. "View residences"#384123 on transparent, border 1px solid #384123, radius 45.069px, h 24px, padding 4.958px 15.323px 5.859px 15.323px, 6.094px/500, uppercase, tracking 0.4875px
yalnızca durağan
Badge / pill / tag, success-squaresayfada 1, örn. "New"#101010 on #d5f89d, radius 4px, h 18px, padding 0px 6px 0px 6px, 14px/400
yalnızca durağan
Chip (removable / selectable tag), inverse-squaresayfada 2, örn. "Hero / Primary Orientation"#161616 on transparent, radius 0px, h 33px, padding 8px 8px 8px 12px, 14px/400, removable
hover, open: değişiklik yok
Counter / notification dot, warning-filledsayfada 1#361d02 on #361d02, radius 999px, h 2px, padding 0px 0px 0px 0px, 14px/400
Card, elevatedsayfada 5 · covered by pathbg transparent, border none, radius 16px, padding 0px 0px 0px 0px, shadow rgba(27, 25, 25, 0.1) 0px 0px 0px 1px inset, about 624×707px, 2 per row
rest: önizleme kullanılamıyor
Card, elevated · mainsayfada 4, örn. "LayoutStyleStandardDirection"bg transparent, border none, radius 0px, padding 8px 12px 12px 12px, shadow rgba(27, 25, 25, 0.1) 0px -1px 0px 0px inset, about 213×196px, body 14px #161616, 1 per row
yalnızca durağan
Card, elevated-with-mediasayfada 3, örn. "NameHero / Primary Orientati"bg transparent, border none, radius 0px, padding 12px 12px 12px 12px, shadow rgba(27, 25, 25, 0.1) 0px -1px 0px 0px inset, about 213×257px, media inside 176×102, radius 4px, body 12px #161616, 1 per row
yalnızca durağan
Card, filled-with-mediasayfada 1, örn. "HomeWorksArtistsThe TrailVis"bg #f1f0ee, border none, radius 12px, padding 0px 0px 0px 0px, no shadow, about 909×605px, media inside 13×13, radius 0px, body 16.54px #361d02, 1 per row
yalnızca durağan
Card, filled-with-media · mainsayfada 1, örn. "WorksArtistsThe TrailVisitBo"bg #f4c490, border none, radius 4.443px, padding 0px 0px 0px 0px, no shadow, about 429×496px, media inside 195×198, radius 0px, body 16.54px #361d02, 1 per row
yalnızca durağan
Card, elevated-with-media · mainsayfada 1, örn. "Hero / Primary OrientationNa"bg rgba(241, 240, 238, 0.9), border none, radius 0px, padding 0px 0px 0px 0px, shadow rgba(27, 25, 25, 0.1) -1px 0px 0px 0px, about 213×567px, media inside 176×102, radius 4px, body 14px #161616, 1 per row
yalnızca durağan
Accordion / disclosure, detailssayfada 9, örn. "What is an AI website builde"trigger 14px/400 #101010, padding 20px 0px 20px 0px, 13px icon on the right, divider 1px rgba(127, 127, 127, 0.25), closed by default
hover: değişiklik yok
Avatar, 16px-roundedsayfada 316px, radius 0px
yalnızca durağan
Avatar, 19px-roundedsayfada 119px, radius 4px
yalnızca durağan
Avatar, 57px-roundedsayfada 157px, radius 0px
yalnızca durağan
Avatar stacksayfada 249px, radius 0px, overlap 4px
yalnızca durağan
Image / figure, aspect-2.5sayfada 8140×56px, aspect 2.5, radius 0px, object-fit fill
yalnızca durağan
Image / figure, aspect-1.71-roundedsayfada 8349×204px, aspect 1.71, radius 4.839px, object-fit cover
yalnızca durağan
Image / figure, aspect-1.71sayfada 7440×256px, aspect 1.71, radius 0px, object-fit cover
yalnızca durağan
Video / media embedsayfada 11280×720px, radius 0px, no controls
yalnızca durağan
Icon, outline-55pxsayfada 655×1px, outline, stroke 1px none
yalnızca durağan
Icon, outline-9pxsayfada 39×9px, outline, stroke 1px none
yalnızca durağan
Icon, outline-48pxsayfada 348×25px, outline, stroke 1px none
yalnızca durağan
Tooltip 1link "Andy McKay" tarafından pointerdown ile açılır, Escape ile kapanır384×225px, below, 8px from the trigger, bg rgba(255, 255, 255, 0.8), text #101010 14px, radius 12px, padding 20px 20px 20px 20px, shadow rgba(0, 0, 0, 0.1) 0px 10px 20px -6px, border 1px solid rgba(27, 25, 25, 0.1), 1 items 32px tall, transition opacity, transform 0.37s, 0.37s, closes on Escape

Bu sayfada yok: Button group, Floating action button, Close / dismiss button, Text input, Search field, Select (native), Checkbox, Switch / toggle, Range slider, File input / dropzone, Date / time input, Input with attached button or addon, Help / hint text, Validation error text, Fieldset / form section, Breadcrumb, Pagination, Stepper / progress steps, Sidebar navigation, Skip link, Back to top, Language / region switch, Popover, Dropdown menu, Dialog / modal, Drawer / sheet / off-canvas, Toast / snackbar, Banner / announcement bar, Cookie / consent notice, Lightbox / media viewer, Alert / callout, Progress bar, Spinner / loader, Skeleton / shimmer, Empty state, Rating / stars, Pricing card / plan, Feature item (icon + title + text), Testimonial / quote card, Stat / metric, Styled list, List row / menu row, Table, Table row, Divider, Code block / inline code, Keyboard key, Blockquote, Carousel / slider, Logo strip, Eyebrow / kicker, FAQ block, Call-to-action band, Newsletter / signup form, Search results / listing row, Sticky bar.

Responsive

1440 / 1024 / 768 / 390 px
ViewportİçerikKenar boşluğuGövdeBaşlıkÜst bilgiHeroIzgaralarDüğmeler
desktop 14401280px432px14px56px, 2 lines, center56px, 4 linkstext only2→1 col; 2→2 col; 2→1 colcontent-width
laptop 1024922px192px14px56px, 2 lines, center56px, 4 linkstext only2→1 col; 2→1 col; 2→1 colcontent-width
tablet 768691px64px14px52px, 2 lines, center56px, hamburger (Open menu), 1 CTAtext only2→1 col; 2→1 col; 2→1 colcontent-width
phone 390351px20px14px40px, 3 lines, center56px, hamburger (Open menu), 1 CTAtext only2→1 col; 2→1 col; 2→1 colcontent-width
  • H1 goes 56px → 40px (71%), 2 → 3 lines.
  • Nav collapses to a hamburger by 390px (first seen at 768px); header 56px → 56px.
  • Card grids: 3 columns → 1 column on phones (gap 62.26px → 77.84px).
  • Body text is 14px at the sampled desktop and phone widths.
  • Phone side gutter 20px.

Paketteki dosyalar

97 dosya

48 kB rehber metinle başla. Paketteki tüm metin 1,1 MB; ayrıntılı dosyaları gerektikçe aç. Görseller ayrıdır.

START_HERE.md95 satır
# Start here: relume.ai

Observed 2026-10-28T00:45:20.671Z; default light theme. This is a compact handoff, not the full evidence archive: everything you need to start is here, the detailed files are one step away.

## How to use this pack

1. Read `START_HERE.md` and `tokens.css` first: the priority values. Keep observed values; a value marked inferred or fallback is a suggestion to resolve against the screenshots.
2. Open `screenshots/desktop-1440-fold.png` and `screenshots/phone-390-fold.png` and match the composition, density, whitespace and image treatment; the values do not carry those. Treat the inside of an image or canvas as a visual inference, not measured DOM.
3. Read `FONTS.md` and load `fonts.css` before `tokens.css`. Keep exact weights and variable-font settings and verify the fonts that actually render. If a font is unavailable, name the substitute and compare its width and apparent weight before touching the type scale.
4. Before drawing any logo or icon, read `BRAND.md` and open `screenshots/brand-logo.png`, `screenshots/brand-icon-1.png`, `screenshots/brand-icon-2.png`: for a new product, create an original mark with the observed proportions and treatment; never guess a shape from a label.
5. Before building any control, read `COMPONENTS.md` (every variant and measured state, with a crop of each), use `components.css` for the CSS and `demos/` for a live copy of each component. A component listed as not found does not exist on the site; do not invent it.
6. Read `REGIONS.md` and inspect its context, detail and icon crops: reconstruct outer and inner surfaces, per-layer gradients and shadows and group spacing (`regions.css` has the recipes), then check the whole page again.
7. Read `BEHAVIOR.md` for hover, focus, tooltips, menus, motion, scrolling, tables, forms, text and each breakpoint, and reproduce the behaviour, not only the colours. Build both themes; `DESIGN.md` pairs the colours.
8. `layout.html` is a generic page composed only from this pack's measured values, with placeholder copy (`layout-alt.html` in the other theme): open it to see the colours, type, recipes and spacing working together and to check your own wiring of the fonts and tokens against it. It is not the site's composition; the screenshots are.
9. `DESIGN.md` has the whole system when a value is missing above. `evidence.json` is diagnostic data: never in the first read.
10. When done, render at desktop, 390px and 320px, compare with the screenshots, fix the biggest visible mismatch first (usually type size, whitespace or image treatment), recheck keyboard focus, overflow, navigation and forms, and repeat.
11. For another site's design, run `npx stylepack-cli <host>` in the project (it downloads that pack and records it the same way), or fetch https://stylepack.ai/packs/<host>/pack.zip; one question at a time is at https://stylepack.ai/packs/<host>/fonts, /colors and /buttons.

## Priority values and evidence

Values labeled fallback were not observed for that role; inferred-role means a visible heading was mapped to a display role. Keep observed values, but treat fallbacks as suggestions.
Keep measured sizes, tracking, radii and colors unless the new content requires an explicit adaptation. Do not enlarge the headline simply to fill a different line length.
Content width: 1280px. Inferred spacing base: 4px; sampled scale: 4, 8, 12, 16, 20, 24, 32, 72, 80px. Observed CSS breakpoints: 479, 700, 767, 768, 991px.
Colors: background=#f1f0ee; surface=#ffffff; surface-2=#e4e3e1; foreground=#101010; muted-foreground=#343434; primary=#ff00f4; on-primary=#111111; secondary=#98eafd; border=#dcdbd9.
- primary: Selected from measured button, link, text, painted-area and theme colors. It is not proof of a filled primary button; follow the observed component recipes.
Radii: button 6px, card 0px, input 0px, image 0px.
Shadows: rgba(27, 25, 25, 0.1) 0px 0px 0px 1px inset; rgba(27, 25, 25, 0.1) 0px -1px 0px 0px inset; rgb(27, 25, 25) 0px 0px 0px 1.25px inset.

## Typography

Load fonts.css before applying tokens.css. FONTS.md contains the observed face/weight inventory and rendered-font checks. A CSS family name alone does not load a font.
Copy the supplied @font-face sources verbatim; do not replace a captured face with Google Fonts merely because its name looks similar. Keep fonts.css linked (or inline it verbatim for a single HTML deliverable). It includes measured semantic font defaults; tokens.css supplies scale and spacing. Use each role as a complete recipe: family, exact numeric weight, size, line height, tracking, font-feature-settings (including cv/ss stylistic sets), optical sizing and variable-font settings. A font shorthand resets feature settings; reapply the supplied longhands after it. Do not round 510 to 500/600, or turn a measured light style into a bold heading.
Use the captured family first. Self-hosted is a hosting location, not an availability verdict. An unverified probe is not evidence of failure; do not choose the optional fallback merely because it is familiar. Substitute only after an actual failed destination request or missing licensed source; record that reason and the replacement. A transient network error merits a retry before redesigning the typography.
Fallback roles are unmeasured suggestions. If a role is absent, start from the nearest observed text treatment; do not assume headings must be bold.
- Geist Variable: observed weights 400, 500; source loading recipe in fonts.css.
- Geist Variable delivery by face: confirmed 100 900 normal; failed none; unverified none. Confirmation is from one isolated-origin check, not every deployment. Keep confirmed faces; attempt unverified faces. A failed unused face does not invalidate a working regular/bold face.
After loading, inspect the browser's Rendered Fonts for the headline, body and button. Computed font-family/font-weight and document.fonts.check() alone do not prove which face drew the glyphs.

- headline-display: Geist Variable; 56px/67.2px; weight 400; tracking -1.68px; observed, source h1.
- headline-lg: Geist Variable; 40px/48px; weight 400; tracking -0.8px; observed, source h2.
- headline-md: Geist Variable; 18px/25.2px; weight 400; tracking -0.36px; observed, source h3.
- body-md: Geist Variable; 18px/27px; weight 400; tracking normal; observed, source body.
- label-md: Geist Variable; 12px/18px; weight 400; tracking normal; observed, source label.
- button: Geist Variable; 14px/20.02px; weight 500; tracking normal; observed, source button.
- Font Geist Variable: self-hosted; use its captured loader first. Self-hosted does not imply unavailable or licensed for reuse; substitution is conditional, not a second design choice.

## Regional composition

Read REGIONS.md and open the referenced context, detail and icon crops before drawing complex previews. Build outer shell, inset content panel and internal groups as distinct layers where observed. Preserve which surface owns each gradient, border and shadow; do not apply one generic card treatment to every layer.
For images, canvas, video and external SVG, use the rendered crops to infer visible internal groupings. Keep those inferences separate from measured DOM facts. Do not treat an illustration as a functional app or paste the screenshot as the finished UI. Return to the whole-page screenshots to match scale and placement.
- r1: 909×605px at page (392, 1833); 24 measured layers, 12 icon samples, 3 opaque media layers. screenshots/region-r1-context.jpg, screenshots/region-r1-detail.png
- r2: 1280×868.3px at page (80, 3325.3); 24 measured layers, 4 icon samples, 8 opaque media layers. screenshots/region-r2-context.jpg, screenshots/region-r2-detail.png, screenshots/region-r2-icons.png
- r3: 1280×833.6px at page (80, 5774.5); 22 measured layers, 12 icon samples, 3 opaque media layers. screenshots/region-r3-context.jpg, screenshots/region-r3-detail.png, screenshots/region-r3-icons.png

## Component recipes

- primary button: bg #ff00f4; text #ffffff; border none; radius 6px; height 32px; padding 6px 12px; type 14px/400; shadow none.
- secondary button: bg #ffffffeb; text #101010; border none; radius 9999px; height 88px; padding 0px 0px; type 14px/400; shadow rgba(0, 0, 0, 0.24) 0px 8px 32px 0px.
- ghost button: bg transparent; text #161616; border none; radius 6px; height 25px; padding 0px 8px; type 14px/400; shadow none.
- Card: {"bg":"#ffffffcc","border":"1px solid #1b19191a","radius":"16px","padding":"0px","shadow":"none","w":640,"h":174}.

## Responsive and interaction evidence

- desktop 1440px: content 1280px, gutter 432px, H1 56px, 2 lines, center, header 56px, 4 links, grids 2→1 col; 2→2 col; 2→1 col.
- laptop 1024px: content 922px, gutter 192px, H1 56px, 2 lines, center, header 56px, 4 links, grids 2→1 col; 2→1 col; 2→1 col.
- tablet 768px: content 691px, gutter 64px, H1 52px, 2 lines, center, header 56px, hamburger (Open menu), 1 CTA, grids 2→1 col; 2→1 col; 2→1 col.
- phone 390px: content 351px, gutter 20px, H1 40px, 3 lines, center, header 56px, hamburger (Open menu), 1 CTA, grids 2→1 col; 2→1 col; 2→1 col.
H1 goes 56px → 40px (71%), 2 → 3 lines.
Nav collapses to a hamburger by 390px (first seen at 768px); header 56px → 56px.
Card grids: 3 columns → 1 column on phones (gap 62.26px → 77.84px).
Body text is 14px at the sampled desktop and phone widths.
- Hover button-primary: moves down 1px.
- Hover button-secondary: no visible change.
- Hover nav-link: background transparent → #1616160f.
- Focus button-primary: outline 1px auto rgb(16, 16, 16).
- Focus input: no visible focus style measured (may rely on :focus-visible with keyboard only).
514 elements carry transitions; typical 0.2s with ease, mostly on opacity, color, transform. 10 running keyframe animations (ra-caret-blink 1.06s infinite; ra-trail-run 5s infinite; logoloop 30s infinite).
Alternate dark theme observed; use DESIGN.md for paired colors.

## Logo and icons

Logo lockup: 87×23px, external image or text; inspect crop. See BRAND.md and its crops for shape evidence.
Icon: 12×12px; filled; stroke none observed, caps not applicable.
Icon: 30×30px; filled; stroke none observed, caps not applicable.

## First images to open

- screenshots/desktop-1440-fold.png: Desktop 1440, above the fold
- screenshots/brand-logo.png: primary logo lockup
- screenshots/phone-390-fold.png: Phone 390, above the fold

## Verify the build

Render at desktop, 390px and 320px. Inspect the result, compare against the supplied references, fix the largest visible mismatch, and recheck keyboard focus, overflow, navigation and form behavior. Match the visual language while following the requested product content.
Page background comes from body; large surface colors remain in the palette.