ภาษาการออกแบบ · HomeOffice
ระบบออกแบบ
โทนเดียวทั้งระบบ — ขาวสะอาด · เส้นบาง · แบน · ไม่ฟุ้ง ดูเป็น SaaS ที่กล้าเอาไปจัดการเงินจริง · ทุกองค์ประกอบใช้ token เดียวกัน เปลี่ยนสีแบรนด์ได้ทั้งระบบจากที่เดียว
สี (Color tokens)
พื้นขาวเสมอ · accent ใช้น้อยมาก (active/ลิงก์/โฟกัส) · เก็บเป็น channel "R G B" เพื่อให้ alpha ทำงานทั่วระบบ
ink
26 32 50
ตัวอักษร/เส้นหลัก
muted
92 100 120
รอง
faint
150 156 172
ตติยภูมิ
accent
37 99 235
เน้นเส้นเดียว
surface
249 250 252
พื้นหน้า
card
255 255 255
พื้นการ์ด
สีเชิงความหมาย (semantic — ใช้กับสถานะเท่านั้น ไม่ใช่ตกแต่ง)
safe / good
เขียว · ปลอดภัย/สำเร็จ
warn / caution
เหลือง · ระวัง
bad / danger
แดง · เกินกำหนด/เสี่ยง
info / free
น้ำเงิน · ข้อมูล
ชุดโทนแบรนด์ (เปลี่ยนได้ต่อบริษัท — พื้นขาวเหมือนเดิม เปลี่ยนแค่ ink + accent)
กดปุ่ม "เปลี่ยนโทนสี" ที่ sidebar เพื่อดูทั้งระบบเปลี่ยนสีสด ๆ
ตัวอักษร (Typography)
2 ฟอนต์ (Cadson Demak รองรับไทยเต็ม) — Bai Jamjuree หัวเรื่อง · Anuphan เนื้อหา · ตัวเลขใช้ tabular เสมอ
ระยะ · มุม · เงา
มุมโค้งนุ่ม · เงาบางมาก (ความลึกมาจาก hairline ไม่ใช่เงาหนัก) · ไม่มีขอบดำเข้ม
มุมโค้ง (radius)
.4 · .7 · 1rem · full
เงา (elevation)
shadow-sm · shadow-md
เส้น hairline
line / 0.10 · 0.18
ระยะห่าง
8·16·24·40 (4pt grid)
การ์ด & สถิติ
การ์ดพื้นขาว ขอบ hairline · การ์ดสถิติมีแถบสีบาง ๆ ด้านบนบอกสถานะ
การ์ดเนื้อหา (cf-card)
hover แล้วเงาเข้มขึ้นนิด + ขอบชัดขึ้น — feedback ละมุน ไม่กระโดด
ป้าย & สถานะ
pill บอกสถานะ · tier บอกชั้นอนุมัติ · ไฟจราจรบอกสุขภาพ
กล่องแจ้งเตือน (Callouts)
ฟอร์ม & ช่องสั่งงาน
โฟกัสมีวงแหวน accent บาง ๆ · ช่องสั่งงาน (composer) คือพระเอกของทั้งแอป
บับเบิลแชต (Chief of Staff)
ตาราง (Table)
| ลูกค้า | ยอด | สถานะ |
|---|---|---|
| Lumi Brand | ฿80,000 | ชำระแล้ว |
| ABC Media | ฿120,000 | รอชำระ |
| Premiere | ฿150,000 | เกินกำหนด |
ไอคอน (Iconography)
ใช้ Lucide เส้น stroke 2 · ขนาด 14–22px · ห้ามใช้ emoji เป็น UI (ใช้ในข้อความได้)
Motion
เคลื่อนไหวเพื่อ "นำสายตา" ไม่ใช่โชว์ · ทุกอย่างเคารพ prefers-reduced-motion
เปิดหน้า
เนื้อหาไล่ขึ้นทีละชิ้น (stagger ~0.06s) — รีเฟรชหน้านี้เห็นได้
Hover
การ์ด/ปุ่ม เงา+ขอบเปลี่ยนใน .15–.2s ละมุน
Toast
เลื่อนขึ้นจางเข้า แทน native alert
หลักการ (ลีน · ไม่ slop)
ทำ
- • พื้นขาว เส้น hairline ความลึกบาง
- • 1 CTA หลักต่อหน้า (สีเข้มทึบ)
- • ใช้ semantic token เปลี่ยนแบรนด์ที่เดียว
- • ภาษาคน อ่านง่าย เลี่ยงศัพท์เทคนิค
- • ตัวเลขเงิน tabular + ฿ เสมอ
ห้าม
- • gradient/glow/neon บนปุ่ม
- • emoji เป็นไอคอน UI
- • native alert/confirm (ใช้ toast/modal)
- • หลายฟอนต์ · serif ฟุ้ง
- • เงาหนา/ขอบดำเข้ม/สีจัดเกินจำเป็น