GraniteBolt Studio demo — Basalt. Sample data; everything shown is fictional. Back to granitebolt.com/work/basalt

Basalt v1.4 · tokens 2026-09

exports: css vars · figma variables · storybook

Colour tokens defined once, mapped to both themes

paper
#F4F0E8
surface
#EAE4D8
ink
#191713
ink-muted
#5A544A
brand
#3B424C
accent
#A4441A
band
#23262B
rule
#D8D0C1

Type scale optical sizes matched across scripts

display-1Rock solid.
display-2Sections that hold.
display-arعناوين تصمد بالعربية.
ledeA lede that stays readable at length.
bodyBody text, 16px at full size, 1.6 line height.
eyebrowMono micro-label · 02
hero / lightAA 7.2:1
Signature offer

One hero, every theme, both directions.

Components read their colours from tokens, so a campaign page can never drift off-palette. Dark and RTL are build targets, not retrofits.

Primary actionSecondary
Pricing row · card componentFROM $4,500
hero / darkAA 8.1:1
Signature offer

One hero, every theme, both directions.

Same tokens, dark mapping. Nothing is recoloured by hand; the theme is a variable set, so it cannot quietly break.

Primary actionSecondary
Pricing row · card component$4,500
hero / rtl · bandNaskh + Plex Arabic
العرض الرئيسي

واجهة واحدة، بكل سمة، وبالاتجاهين.

المكوّنات مبنية من اليمين إلى اليسار أولًا: الشبكة والأسهم والهوامش كلها خصائص منطقية، فلا تنكسر النسخة العربية عند أول تعديل.

الإجراء الأساسيثانوي
form / lightfocus ring · 2px accent
name@company.com
A storefront in English and Arabic|

Focus is always visible; error text never relies on colour alone.