Craft beautiful landing pages with 1thay

Áp dụng Helsinki Design System principles — accessibility-first, semantic tokens, responsive grid. Mọi yếu tố dưới đây đều dùng token từ 1thay design system.

Khám phá bảng màu Xem components

🎨 Bảng màu — Helsinki-style tokens

Mỗi màu có semantic role rõ ràng. Tỉ lệ tương phản đạt WCAG AA.

Brand 50
#f0f4ff
Brand 100
#dbe4ff
Brand 200
#bac8ff
Brand 300
#91a7ff
Brand 400
#748ffc
Brand 600
#4c6ef5
Brand 700
#4263eb
Brand 900
#364fc7

🔤 Typography — Hanken Grotesk + Inter

Heading dùng Hanken Grotesk, body dùng Inter, code dùng JetBrains Mono.

LevelFontSizeWeightPreview
H1Hanken Grotesk36–48pxBold 700Tiêu đề chính
H2Hanken Grotesk24–30pxSemibold 600Tiêu đề phụ
H3Hanken Grotesk18–24pxSemibold 600Tiêu đề nhỏ
BodyInter16pxRegular 400Văn bản chính — dễ đọc, thoáng
CaptionInter12pxMedium 500CHÚ THÍCH NHỎ
CodeJetBrains Mono14pxRegular 400const theme = '1thay';

🔘 Buttons — 4 variants, 3 sizes

Mỗi button có role rõ ràng. Một primary CTA mỗi section — nguyên tắc từ Helsinki DS.

Variants

Sizes

Trạng thái

Focus Hover Loading

🃏 Cards — Content containers

Card grid responsive, mỗi card chứa một ý tưởng — theo Helsinki DS principle.

🎯 Tập trung một nhiệm vụ

Mỗi card chỉ nên truyền tải một thông điệp hoặc một hành động. Giữ nội dung ngắn gọn, có thứ bậc rõ ràng.

♿ Accessibility-first

Tất cả nội dung trong card phải đạt contrast WCAG AA. Màu nền và chữ được kiểm tra tự động.

📱 Responsive

Grid tự động co giãn từ 1 cột (mobile) đến 3 cột (desktop). Touch target tối thiểu 44px.


📝 Form Elements

Input fields với label, helper text, validation — theo chuẩn Helsinki DS.

Vui lòng nhập email hợp lệ

🏷 Tags & Badges

Semantic tags cho trạng thái và phân loại.

Thông tin Thành công Cảnh báo Lỗi 1thay DS brandk1t

🇫🇮 Helsinki Design System Principles

Các nguyên tắc cốt lõi được áp dụng vào 1thay design system.

Nguyên tắcMô tảÁp dụng trong 1thay
♿ Accessibility-firstMọi component đều đạt WCAG AA trước khi shipTỉ lệ tương phản màu ≥ 4.5:1, focus ring 3px, touch target ≥ 44px
🎨 Semantic tokensToken đặt tên theo mục đích, không theo giá trị--color-text-primary thay vì --color-gray-900
📐 Consistent spacingSpacing dựa trên lưới 4pxToken spacing: 4, 8, 12, 16, 20, 24, 32, 48, 64px
📱 Mobile-firstThiết kế từ mobile lên desktopGrid 1 cột → 2 cột → 3 cột, padding 16px → 24px → 40px
🧩 ComposabilityComponent nhỏ kết hợp thành pattern lớnButton + Card + Form = Settings Page pattern
📝 Clear documentationMỗi component đều có hướng dẫn sử dụngAnatomy, variants, states, do/don't, code example