Bộ nhận diện website

Mini Toy

Màu, chữ, logo và mẫu giao diện dựng từ logo và banner của shop. Mỗi màu có mã, có vai trò và đã đo tương phản WCAG.

  • 9 màu gốc từ logo
  • 41 vai trò màu
  • 49/49 cặp màu đạt chuẩn
  • 2 giao diện sáng và tối

Màu gốc

Lấy bằng cách phân cụm điểm ảnh của logo và banner (bỏ nền đen). Bấm vào ô màu để chép mã.

  • Hồng kẹoVành tròn của logo, màu nhận diện chính
  • Vàng saoChữ i, chữ T và các ngôi sao
  • Xanh trờiChữ n và bầu trời trên banner
  • Tím oải hươngChữ i tím, chú bạch tuộc
  • Xanh bạc hàChữ y, chú rồng con
  • Cam khủng longChú khủng long, viền ngôi sao
  • Đỏ báo lỗiKhông lấy từ logo; chỉ dùng cho lỗi
  • Nâu socolaNét viền của logo, dùng làm màu chữ
  • Hồng sữaNền bên trong vòng logo, chiếm nhiều diện tích nhất

Thang màu 10 bậc

Sinh từ mỗi màu gốc, giữ nguyên sắc độ. Bậc 50–200 làm nền nhạt, 500–600 làm nút và liên kết, 700–900 làm chữ nhấn và nền tối. Trung tính ngả hồng ở đầu sáng và ngả nâu socola ở đầu tối, để xám không bị lạc tông.

Hồng kẹo --mt-pink-*

Vàng sao --mt-yellow-*

Xanh trời --mt-sky-*

Tím oải hương --mt-lavender-*

Xanh bạc hà --mt-mint-*

Cam khủng long --mt-orange-*

Đỏ báo lỗi --mt-red-*

Trung tính hồng → socola --mt-n-*

Vai trò màu

Component chỉ gọi tên vai trò, không gọi mã màu. Đổi sang giao diện tối là mỗi vai trò tự đổi giá trị.

BiếnSángTốiDùng cho
--surface#FFFDFD#2C1611Nền thẻ, ô nhập, hộp thoại
--surface-page#FCF5F6#1A0A06Nền trang
--surface-sunken#F5EBEC#3C2825Khối lún, thanh lọc, bảng
--surface-brand-soft#FADBE0#550F2BMảng nhấn hồng (hero, khối khuyến mãi)
--surface-sky-soft#E9F8FF#0C3345Mảng nhấn xanh trời
--surface-inverse#1A0A06#FCF5F6Chân trang, khối nền tối
--text#3B1307#FCF5F6Chữ chính, tiêu đề
--text-soft#51403E#E5DADBChữ phụ, mô tả
--text-muted#6B5B5A#CBBEBEChú thích, placeholder
--text-brand#C13B6C#FF9FBCChữ nhấn màu thương hiệu
--text-on-inverse#FCF5F6#3B1307Chữ trên nền tối
--text-on-inverse-soft#CBBEBE#51403EChữ phụ trên nền tối
--link#C13B6C#FF9FBCLiên kết
--border#E5DADB#51403EViền thẻ, đường kẻ
--border-strong#887978#887978Viền ô nhập
--border-brand#FF9FBC#9C2653Viền nhấn hồng
--action#FB6D9B#FB6D9BNút chính kiểu sticker
--action-hover#FF9FBC#FF9FBCNút chính khi rê chuột
--action-text#3B1307#3B1307Chữ trên nút chính
--action-border#3B1307#3B1307Viền và bóng sticker
--action-strong#C13B6C#FF9FBCNút chữ trắng cho form dày, trang quản trị
--action-strong-hover#9C2653#FFC0D4Nút chữ trắng khi rê chuột
--action-strong-text#FFFFFF#3B1307Chữ trên nút chữ trắng
--action-soft#FFDAE6#550F2BNút phụ nền nhạt
--action-soft-text#78193E#FFC0D4Chữ trên nút phụ nền nhạt
--action-secondary#3B1307#FCF5F6Nút viền (outline)
--accent#FBD747#FBD747Nhãn nổi bật: Freeship, Sale
--accent-text#3B1307#3B1307Chữ trên nhãn nổi bật
--focus#4E98BD#98CCE8Viền focus khi dùng bàn phím
--info#337DA0#98CCE8Biểu tượng thông tin
--info-soft#E9F8FF#0C3345Nền hộp thông tin
--info-text#206281#98CCE8Chữ hộp thông tin
--success#1E6B3F#98D4ABBiểu tượng thành công
--success-soft#D6F2DE#0A391FNền hộp thành công
--success-text#1E6B3F#98D4ABChữ hộp thành công
--warn#A66300#EDB87ABiểu tượng cảnh báo
--warn-soft#F5EAC2#482600Nền hộp cảnh báo
--warn-text#854B00#EDB87AChữ hộp cảnh báo
--danger#D22A1D#FF9B89Biểu tượng lỗi
--danger-soft#FFEBE4#5E0402Nền hộp lỗi
--danger-text#AA1209#FF9B89Chữ hộp lỗi

Tương phản đã đo

Chữ thường cần ít nhất 4,5:1; viền ô nhập, viền focus và nút cần 3:1. Dòng "tham chiếu" cho thấy vì sao không đặt chữ trắng lên hồng gốc.

MẫuCặp màuTỉ lệKết quả
AaChữ thông báo thành công trên nền nhạt5,45:1AA
AaChữ cảnh báo trên nền nhạt5,80:1AA
AaChữ lỗi trên nền nhạt6,52:1AA
AaChữ thông tin trên nền nhạt6,19:1AA
AaChữ ink trên nhãn sticker (hover pink-300) - nút đậm tối8,53:1AAA
AaChữ chính (ink) trên nền trắng16,16:1AAA
AaChữ chính (ink) trên nền trang15,23:1AAA
AaChữ chính (ink) trên nền hồng nhạt logo12,69:1AAA
AaChữ mềm trên nền trang9,07:1AAA
AaChữ mờ trên nền trang5,97:1AA
AaChữ mờ trên nền lún5,50:1AA
AaChữ nhấn hồng trên trắng5,04:1AA
AaLink hồng trên nền trang4,75:1AA
AaChữ ink trên nút chính (hồng gốc logo)6,05:1AA
AaChữ ink trên nút chính (hover, pink-300)8,53:1AAA
AaViền sticker ink quanh nút trên nền trang15,23:1Đạt 3:1
AaChữ trắng trên nút đậm (action-strong)5,11:1AA
AaChữ trắng trên nút đậm (hover)7,46:1AAA
AaChữ hồng đậm trên nút hồng nhạt8,18:1AAA
AaChữ ink trên nhãn vàng (accent)11,63:1AAA
AaViền focus xanh trên trắng3,16:1Đạt 3:1
AaViền input (border-strong) trên trắng4,10:1Đạt 3:1
AaChữ lỗi đỏ trên trắng5,07:1AA
AaChữ thành công trên trắng6,41:1AA
AaChữ cảnh báo trên trắng4,70:1AA
AaChữ sáng trên nền đảo (footer)17,92:1AAA
AaChữ mềm trên nền đảo10,69:1AAA
AaNhãn kẹo pink: chữ 700 trên nền 1005,83:1AA
AaNhãn kẹo yellow: chữ 700 trên nền 1005,61:1AA
AaNhãn kẹo sky: chữ 700 trên nền 1005,60:1AA
AaNhãn kẹo lavender: chữ 700 trên nền 1005,99:1AA
AaNhãn kẹo mint: chữ 700 trên nền 1005,45:1AA
AaNhãn kẹo orange: chữ 700 trên nền 1005,76:1AA
Aa(tham chiếu) Chữ trắng trên hồng gốc logo2,71:1Không đạt
Aa(tham chiếu) Chữ ink trên hồng gốc logo6,05:1AA
Aa[tối] Chữ chính trên nền trang17,92:1AAA
Aa[tối] Chữ chính trên thẻ15,88:1AAA
Aa[tối] Chữ mờ trên thẻ9,47:1AAA
Aa[tối] Chữ hồng nhấn trên thẻ8,89:1AAA
Aa[tối] Chữ ink trên nút chính (hồng gốc)6,05:1AA
Aa[tối] Nút chính trên nền trang (nhận diện nút)7,12:1Đạt 3:1
Aa[tối] Viền input trên thẻ4,11:1Đạt 3:1
Aa[tối] Viền focus trên nền trang11,14:1Đạt 3:1
Aa[tối] Chữ lỗi trên thẻ8,38:1AAA
Aa[tối] Chữ thành công trên thẻ10,03:1AAA
Aa[tối] Chữ cảnh báo trên thẻ9,54:1AAA
Aa[tối] Chữ thông báo thành công trên nền nhạt7,63:1AAA
Aa[tối] Chữ cảnh báo trên nền nhạt7,56:1AAA
Aa[tối] Chữ lỗi trên nền nhạt6,89:1AA
Aa[tối] Chữ thông tin trên nền nhạt7,71:1AAA
Aa[tối] Chữ hồng nhạt trên nút hồng đậm (action-soft)9,23:1AAA

Chữ

Tiêu đề dùng Baloo 2: nét tròn và mập, gần với chữ trong logo. Nội dung dùng Be Vietnam Pro, dấu tiếng Việt chuẩn và dễ đọc ở cỡ nhỏ.

Quà tặng siêu dễ thương

Móc khoá khắc tên theo yêu cầu

Chọn thú, chọn màu, gõ tên và nhận hàng sau 2–3 ngày

Mỗi món đồ chơi được in 3D từ nhựa PLA an toàn, phối tối đa bốn màu. Bạn có thể tự thiết kế ngay trên web hoặc gửi ảnh thú cưng để chúng mình làm phiên bản chibi riêng.

Chú thích · Cỡ 13–14px · dùng --text-muted

Tiêu đề: Baloo 2 · 700–800Nội dung: Be Vietnam Pro · 400–700Cỡ: 56 / 32 / 19 / 16 / 13 px

Thành phần giao diện

Nút chính lấy đúng kiểu chữ trong logo: màu kẹo, viền nâu socola, bóng đổ như sticker. Các mẫu dưới đây đổi theo giao diện sáng hoặc tối.

Nút

Nhãn

Móc khoáMới vềQuà sinh nhậtCó khắc tênThú cưngBán chạy

Ô nhập

Tối đa 12 ký tự, có dấu tiếng Việt5/12

Thông báo

Đã thêm "Móc khoá rồng con" vào giỏ.

Nét chữ mảnh hơn 0,8 mm có thể in không rõ.

Chưa có tên in. Nhập ít nhất 1 ký tự để tiếp tục.

Thời gian in khoảng 2–3 ngày làm việc.

Dải cam kết (theo banner)

  • Freeshiptoàn quốc
  • Bảo hành1 đổi 1
  • Quà tặngsiêu dễ thương
  • Tư vấnnhanh chóng

Thẻ sản phẩm

Có khắc tên

Móc khoá rồng con

79.000₫

Bán chạy

Móc khoá khủng long

85.000₫

Mới về

Móc khoá gấu trúc

79.000₫

Ví dụ minh hoạ: ảnh cắt từ banner, tên và giá chỉ để xem bố cục.

Áp vào đầu trang chủ

Mini Toy

Biến ý tưởng thành đồ chơi mini

Chọn thú, phối màu, khắc tên. Hoặc gửi một tấm ảnh để AI làm phiên bản chibi của riêng bạn.

Quy tắc dùng màu

Bốn điều giữ cho trang vừa vui mắt vừa dễ đọc.

Nút chính

NênHồng gốc, chữ và viền nâu: 6,05:1
Không nênChữ trắng trên hồng gốc: 2,71:1

Màu kẹo

NênMới vềNền nhạt, chữ đậm cùng màu
Không nênMới vềChữ vàng trên nền trắng gần như vô hình

Báo lỗi

Nên

Thiếu tên in

Đỏ cam riêng, kèm icon và chữ
Không nên

Thiếu tên in

Lỗi bằng hồng thương hiệu dễ nhầm với khuyến mãi

Tỉ lệ 70 / 20 / 10

70% nền trung tính, 20% mảng nhạt (hồng sữa, xanh trời nhạt), 10% màu đậm cho nút, giá, nhãn nổi bật. Nhiều màu kẹo cùng lúc chỉ dùng cho minh hoạ và banner.

Dùng trong code

File nguồn là brand/tokens.css. Với Next.js và Tailwind v4, import thêm brand/tailwind-theme.css để có class như bg-action, text-brand.

/* app/globals.css */
@import "tailwindcss";
@import "../brand/tokens.css";
@import "../brand/tailwind-theme.css";

/* Nút chính kiểu sticker */
.btn-primary {
  background: var(--action);
  color: var(--action-text);
  border: 2.5px solid var(--action-border);
  box-shadow: var(--shadow-pop);
  border-radius: var(--radius-pill);
}