เอกสาร
DESIGN.md คืออะไร
DESIGN.md คือไฟล์ข้อความล้วนที่อธิบายระบบดีไซน์สำหรับเอเจนต์ AI ส่วน YAML front matter ด้านบนเก็บดีไซน์โทเค็นที่แน่นอน ได้แก่ สี ตัวอักษร ระยะห่าง มุมโค้ง และคอมโพเนนต์ ส่วนเนื้อหา Markdown ด้านล่างอธิบายว่าควรใช้อย่างไรและเพราะอะไร ทั้งคนและเอเจนต์อ่าน แก้ไข และบังคับใช้ได้
README.md อธิบายว่าโปรเจกต์คืออะไร AGENTS.md บอกเอเจนต์เขียนโค้ดว่าจะสร้างโปรเจกต์อย่างไร DESIGN.md บอกว่าโปรเจกต์ควรมีหน้าตาและความรู้สึกอย่างไร หน้าจอที่เอเจนต์สร้างจึงใช้พาเลตต์สี สเกลตัวอักษร และภาษาของคอมโพเนนต์ชุดเดียวกัน แทนที่จะค่อย ๆ แตกต่างกันไป
DESIGN.md มาจากไหน
Google เปิดตัว DESIGN.md พร้อมกับ Google Stitch เครื่องมือออกแบบด้วย AI ของ Google ในฐานะคู่หูฝั่งดีไซน์ของ AGENTS.md Google Labs เผยแพร่รูปแบบนี้เป็นสเปกแบบเปิดใน repository google-labs-code/design.md ภายใต้สัญญาอนุญาต Apache 2.0 สเปก DESIGN.mdระบุสถานะเป็น alpha จึงคาดว่ารูปแบบจะเปลี่ยนแปลงไปตามการพัฒนา
repository เดียวกันมีแพ็กเกจ npm ชื่อ @google/design.md ซึ่งมีคำสั่ง lint สำหรับตรวจโครงสร้าง การอ้างอิงโทเค็นที่เสีย และคอนทราสต์ตาม WCAG และคำสั่ง diff สำหรับเปรียบเทียบสองเวอร์ชันของไฟล์ทีละโทเค็น
โครงสร้างของไฟล์ DESIGN.md
ไฟล์ DESIGN.md ทุกไฟล์มีสองชั้น YAML front matter มีดีไซน์โทเค็นที่เครื่องอ่านได้ เช่น ค่าสีที่แน่นอน คุณสมบัติของฟอนต์ สเกลระยะห่าง และการอ้างอิงโทเค็นของคอมโพเนนต์ ส่วนเนื้อหา Markdown ให้เหตุผลด้านดีไซน์ที่คนอ่านเข้าใจได้
สเปกถือว่าโทเค็นเป็นค่าที่ต้องปฏิบัติตาม (normative) และข้อความอธิบายเป็นบริบทสำหรับการนำไปใช้ โทเค็นให้ค่าที่แม่นยำแก่เอเจนต์ ส่วนข้อความอธิบายบอกว่าค่าเหล่านั้นมีไว้เพราะอะไร และจะใช้ให้สม่ำเสมอในทุกหน้าจอได้อย่างไร
---
name: DevFocus Dark
colors:
primary: "#2665fd"
secondary: "#475569"
surface: "#0b1326"
on-surface: "#dae2fd"
error: "#ffb4ab"
typography:
body-md:
fontFamily: Inter
fontSize: 16px
fontWeight: 400
rounded:
md: 8px
---
# Design System
## Overview
A focused, minimal dark interface for a developer productivity tool.
Clean lines, low visual noise, high information density.
## Colors
- **Primary** (#2665fd): CTAs, active states, key interactive elements
- **Secondary** (#475569): Supporting UI, chips, secondary actions
- **Surface** (#0b1326): Page backgrounds
- **On-surface** (#dae2fd): Primary text on dark backgrounds
- **Error** (#ffb4ab): Validation errors, destructive actions
## Typography
- **Headlines**: Inter, semi-bold
- **Body**: Inter, regular, 14-16px
- **Labels**: Inter, medium, 12px, uppercase for section headers
## Components
- **Buttons**: Rounded (8px), primary uses brand blue fill
- **Inputs**: 1px border, subtle surface-variant background
- **Cards**: No elevation, relies on border and background contrast
## Do's and Don'ts
- Do use the primary color sparingly, only for the most important action
- Don't mix rounded and sharp corners in the same view
- Do maintain 4:1 contrast ratio for all textแปดส่วนมาตรฐาน
เนื้อหา Markdown ใช้หัวข้อ ## ส่วนที่ไม่เกี่ยวข้องตัดออกได้ แต่ส่วนที่มีอยู่ควรเรียงตามลำดับนี้ หัวข้อที่ซ้ำสองครั้งทำให้ไฟล์ไม่ถูกต้อง ส่วนที่ไม่รู้จักจะถูกเก็บไว้
- Overview (หรือ Brand & Style) หน้าตาและความรู้สึกในไม่กี่ประโยค ได้แก่ อารมณ์ ความหนาแน่น และบุคลิก
- Colors โทเค็นสีแต่ละตัวและบทบาทของสี เช่น ปุ่มการกระทำหลักหรือพื้นผิวของหน้า
- Typography ฟอนต์และสเกลตัวอักษร ตั้งแต่พาดหัวขนาดใหญ่ไปจนถึงป้ายกำกับขนาดเล็ก
- Layout (หรือ Layout & Spacing) สเกลระยะห่าง กริด ความกว้างของเนื้อหา และระยะขอบ
- Elevation & Depth (หรือ Elevation) วิธีแยกพื้นผิวออกจากกัน ได้แก่ เงา เส้นขอบ และสีอ่อน
- Shapes ความโค้งมุมและกฎด้านรูปทรงอื่น ๆ
- Components ปุ่ม ช่องกรอกข้อมูล การ์ด และองค์ประกอบพื้นฐานอื่น ๆ พร้อมโทเค็นและสถานะ
- Do's and Don'ts กฎที่เอเจนต์ไม่ควรละเมิด
ตัวอย่างเนื้อหา Markdown แบบกระชับที่มีทุกส่วนมาตรฐานตามลำดับ ปรับเนื้อหาให้เข้ากับผลิตภัณฑ์ของคุณ โดยคงหัวข้อและลำดับไว้
## Overview
A minimal dark interface for a developer productivity tool.
Clean lines, low visual noise, high information density.
## Colors
- Primary (#2665fd): CTAs and active states
- Surface (#0b1326): Page backgrounds
- On-surface (#dae2fd): Text on dark backgrounds
## Typography
- Headlines: Inter, semibold
- Body: Inter, regular, 14-16px
- Labels: Inter, medium, 12px, uppercase
## Layout
- 8px base spacing unit, scale: 4 / 8 / 16 / 24 / 32 / 48
- Max content width 720px with 24px gutters on mobile
## Elevation & Depth
- Surfaces rely on background contrast instead of shadow
- Overlays use an 8 percent white tint on dark surfaces
## Shapes
- Rounded 8px for controls, 16px for cards
- Avoid mixing sharp and rounded corners in one view
## Components
- Buttons: 8px rounded, primary filled with brand blue
- Inputs: 1px border, subtle surface-variant background
- Cards: no elevation, rely on border and background contrast
## Do's and Don'ts
- Do use the primary color sparingly, for the most important action
- Don't mix rounded and sharp corners in one view
- Do maintain at least a 4:1 contrast ratio for all textดีไซน์โทเค็นและ schema
DESIGN.md ฝังดีไซน์โทเค็นเป็น YAML front matter ที่ต้นไฟล์ บล็อก front matter เริ่มด้วยบรรทัดที่มีเพียง --- และจบด้วยตัวคั่นเดียวกัน
version: <string>
name: <string>
description: <string>
colors:
<token-name>: <Color>
typography:
<token-name>: <Typography>
rounded:
<scale-level>: <Dimension>
spacing:
<scale-level>: <Dimension | number>
components:
<component-name>:
<token-name>: <string | token reference>ชื่อสเกลที่ใช้บ่อย ได้แก่ xs, sm, md, lg, xl และ full แต่ใช้คีย์ที่สื่อความหมายใดก็ได้ โทเค็นระยะห่างอยู่ใน YAML ภายใต้ spacing: และอธิบายไว้ในส่วน Layout ของเนื้อหา Markdown
ประเภทโทเค็น
- Color
- สตริงสี CSS ที่ถูกต้องใดก็ได้ แนะนำให้ใช้ hex ในรูปแบบ
#RRGGBBเป็นค่าเริ่มต้น เช่น"#1A1C1E" - Dimension
- ตัวเลขพร้อมหน่วย px, em หรือ rem ตัวอย่าง:
48px,-0.02em - Token Reference
- อยู่ในวงเล็บปีกกาและชี้ไปยังค่าใน YAML tree ตัวอย่าง:
{colors.primary} - Typography
- อ็อบเจกต์ประกอบที่มีคุณสมบัติของฟอนต์ เช่น family, size, weight, line height และ letter spacing ดูคุณสมบัติของตัวอักษร
คุณสมบัติของตัวอักษร
- fontFamily
- ชื่อฟอนต์
- fontSize
- ขนาดฟอนต์ในรูปแบบ dimension
- fontWeight
- น้ำหนักแบบตัวเลข เช่น 400 หรือ 700
- lineHeight
- dimension หรือตัวคูณที่ไม่มีหน่วย แนะนำให้ใช้ค่าที่ไม่มีหน่วย
- letterSpacing
- การปรับระยะห่างระหว่างตัวอักษรในรูปแบบ dimension
- fontFeature
- กำหนดค่า font-feature-settings
- fontVariation
- กำหนดค่า font-variation-settings
การอ้างอิงโทเค็น
การอ้างอิงโทเค็นอยู่ในวงเล็บปีกกาและมี object path ที่ชี้ไปยังค่าอื่นใน YAML tree สำหรับกลุ่มโทเค็นส่วนใหญ่ การอ้างอิงควรชี้ไปยังค่าพื้นฐาน (primitive) ไม่ใช่กลุ่ม ภายในส่วน components อนุญาตให้อ้างอิงค่าประกอบ เช่น ระดับตัวอักษรได้
components:
button-primary:
backgroundColor: "{colors.primary-60}"
textColor: "{colors.primary-20}"
rounded: "{rounded.md}"
button-primary-hover:
backgroundColor: "{colors.primary-70}"คอมโพเนนต์
ส่วน components เก็บแนวทางสไตล์ขององค์ประกอบพื้นฐาน เช่น ปุ่ม ชิป รายการ ช่องกรอกข้อมูล checkbox, radio button และ tooltip ระบบดีไซน์สามารถกำหนดคอมโพเนนต์เพิ่มเติมที่สำคัญต่อโดเมนของผลิตภัณฑ์ได้
รูปแบบย่อยสำหรับสถานะ hover, active หรือ pressed กำหนดเป็นรายการคอมโพเนนต์แยกกันด้วยชื่อคีย์ที่เกี่ยวข้อง เช่น button-primary-hover
- backgroundColor
- Color
- textColor
- Color
- typography
- Typography
- rounded
- Dimension
- padding
- Dimension
- size
- Dimension
- height
- Dimension
- width
- Dimension
ชื่อโทเค็นที่แนะนำ
ชื่อเหล่านี้เป็นแนวทาง ไม่ใช่ข้อบังคับ ช่วยให้มีค่าเริ่มต้นที่สอดคล้องกันในทุกระบบ
Colors: primary, secondary, tertiary, neutral, surface, on-surface, error
Typography: headline-display, headline-lg, headline-md, body-lg, body-md, body-sm, label-lg, label-md, label-sm
Rounded: none, sm, md, lg, xl, full
เอเจนต์ AI ใช้ DESIGN.md อย่างไร
วาง DESIGN.md ไว้ที่ root ของ repository ข้าง README.md และ AGENTS.md เอเจนต์ทุกตัวที่เข้าถึงไฟล์ได้จะอ่านได้ แต่ส่วนใหญ่จะไม่โหลดไฟล์นี้เอง ให้อ้างถึงไฟล์นี้จากคำสั่งที่เอเจนต์อ่านอยู่แล้ว หรือระบุชื่อไฟล์ในพรอมต์เมื่อสั่งงานด้าน UI แค่ข้อความสั้น ๆ ก็พอ:
## Design
Follow DESIGN.md for every UI change: use its color, typography,
spacing and component tokens instead of inventing new values.- Claude Code
- อ่านไฟล์ใน repo ของคุณและโหลด CLAUDE.md ตอนเริ่มต้น เพิ่มบรรทัดที่ชี้ไปยัง DESIGN.md ในไฟล์นั้น หรือระบุไฟล์ในพรอมต์
- Cursor
- เพิ่ม DESIGN.md ลงในบริบทของแชต หรืออ้างถึงจาก project rule เพื่อให้ใช้กับทุกคำขอด้าน UI
- GitHub Copilot
- ชี้ไปยัง DESIGN.md จากไฟล์คำสั่ง Copilot ของ repository หรือแนบไฟล์ในแชตเมื่อสั่งงานด้าน UI
- Google Stitch
- จุดเริ่มต้นของรูปแบบนี้ Stitch ใช้ DESIGN.md เพื่อให้หน้าจอที่สร้างขึ้นใช้พาเลตต์สี สเกลตัวอักษร และภาษาของคอมโพเนนต์ชุดเดียวกัน
จากนั้นเอเจนต์จะนำค่าที่แน่นอนจากโทเค็น (ค่า hex ของปุ่ม primary ขนาดของป้ายกำกับ body-md) และใช้ข้อความอธิบายตัดสินว่าค่าเหล่านั้นควรอยู่ตรงไหน
DESIGN.md เทียบกับ AGENTS.md และ README.md
ทั้งสามไฟล์อยู่คู่กันและตอบคำถามต่างกัน DESIGN.md ไม่ได้มาแทนที่ AGENTS.md แต่ทั้งสองไฟล์ทำงานร่วมกัน
| ไฟล์ | เขียนสำหรับ | ตอบคำถาม |
|---|---|---|
README.md | คนที่ใช้หรือร่วมพัฒนาโปรเจกต์ | นี่คืออะไร และจะรันอย่างไร |
AGENTS.md | เอเจนต์เขียนโค้ด | จะ build, test และแก้โค้ดนี้อย่างไร |
DESIGN.md | เอเจนต์เขียนโค้ดและเอเจนต์ออกแบบ | อินเทอร์เฟซควรมีหน้าตาและความรู้สึกอย่างไร |
ตัวอย่าง DESIGN.md จริง
วิธีที่เร็วที่สุดในการเข้าใจรูปแบบนี้คืออ่านไฟล์จริงสักสองสามไฟล์ หน้าแกลเลอรีเหล่านี้แต่ละหน้าแสดง DESIGN.md ที่ดึงจากเว็บไซต์สาธารณะของแบรนด์ พร้อมพาเลตต์สีและตัวอย่างตัวอักษร ไฟล์เหล่านี้ไม่ใช่แนวทางแบรนด์อย่างเป็นทางการ
จะได้ DESIGN.md มาอย่างไร
- เขียนเอง เริ่มจากสเปกและตัวอย่างด้านบน แล้วตรวจสอบไฟล์ด้วยตัวตรวจสอบ DESIGN.mdฟรี หรือคำสั่ง
lintของ Google - เริ่มจากตัวอย่าง คัดลอกไฟล์จากแกลเลอรี แล้วแก้ไขโทเค็นและข้อความให้ตรงกับผลิตภัณฑ์ของคุณ
- สร้างจากเว็บไซต์จริง วาง URL สาธารณะลงใน Design Extractor ระบบจะเรนเดอร์เว็บไซต์ในเบราว์เซอร์และส่งคืน DESIGN.md ที่มีสี ตัวอักษร ระยะห่าง และคอมโพเนนต์ ซึ่งเป็นไปตามสเปกด้านบน หน้าตัวสร้าง DESIGN.mdอธิบายว่าคุณจะได้อะไร การดึงดีไซน์แบบเดียวกันทำได้จากส่วนขยาย Chrome และจากเอเจนต์ของคุณผ่านเซิร์ฟเวอร์ MCP
FAQ
คำถามเกี่ยวกับ DESIGN.md
คำตอบสั้น ๆ เกี่ยวกับรูปแบบ DESIGN.md ที่มาของรูปแบบนี้ และวิธีใช้กับเอเจนต์ AI
DESIGN.md คือไฟล์ข้อความล้วนที่อธิบายระบบดีไซน์สำหรับเอเจนต์ AI ส่วน YAML front matter ด้านบนเก็บโทเค็นที่แน่นอน (สี ตัวอักษร ระยะห่าง มุมโค้ง และคอมโพเนนต์) ส่วนเนื้อหา Markdown ด้านล่างอธิบายว่าควรใช้อย่างไรและเพราะอะไร เอเจนต์อ่านโทเค็นเพื่อเอาค่า และอ่านข้อความอธิบายเพื่อเข้าใจเจตนา
Google เปิดตัว DESIGN.md พร้อมกับ Stitch เครื่องมือออกแบบด้วย AI ของ Google และ Google Labs เผยแพร่สเปกบน GitHub (google-labs-code/design.md) ภายใต้สัญญาอนุญาต Apache 2.0 รูปแบบนี้ระบุสถานะเป็น alpha จึงคาดว่าจะมีการเปลี่ยนแปลงไปตามการพัฒนา
AGENTS.md บอกเอเจนต์เขียนโค้ดว่าจะสร้างและทำงานกับโปรเจกต์อย่างไร ได้แก่ คำสั่ง ข้อตกลง และการทดสอบ DESIGN.md บอกว่าผลิตภัณฑ์ควรมีหน้าตาและความรู้สึกอย่างไร ได้แก่ สี ตัวอักษร ระยะห่าง รูปทรง และคอมโพเนนต์ ส่วน README.md มีไว้สำหรับคนที่ใช้หรือร่วมพัฒนาโปรเจกต์ หลาย repo เก็บทั้งสามไฟล์ไว้คู่กัน
วางไว้ที่ root ของ repository ข้าง README.md และ AGENTS.md เพื่อให้เอเจนต์ที่เข้าถึงไฟล์ได้หาเจอ จากนั้นอ้างถึงไฟล์นี้จากคำสั่งที่เอเจนต์โหลดอยู่แล้ว เช่น AGENTS.md, CLAUDE.md, Cursor rule หรือคำสั่ง Copilot ของคุณ หรือระบุในพรอมต์เมื่อสั่งงานด้าน UI
ไม่ต้อง สเปกอนุญาตให้ตัดส่วนที่ไม่เกี่ยวข้องออกได้ แต่ส่วนที่คงไว้ควรเรียงตามลำดับมาตรฐาน ได้แก่ Overview, Colors, Typography, Layout, Elevation & Depth, Shapes, Components, Do's and Don'ts หัวข้อของส่วนต้องไม่ซ้ำกัน และส่วนที่ไม่รู้จักจะถูกเก็บไว้แทนที่จะถูกปฏิเสธ
แพ็กเกจ npm @google/design.md ของ Google มีคำสั่ง lint ที่ตรวจโครงสร้าง การอ้างอิงโทเค็นที่เสีย และคอนทราสต์ตาม WCAG นอกจากนี้ Design Extractor ยังมีตัวตรวจสอบ DESIGN.md ฟรี ที่ตรวจโครงสร้างและโทเค็นในเบราว์เซอร์ของคุณ และแสดงตัวอย่างไฟล์โดยไม่ต้องอัปโหลด
เขียนเองตามสเปก คัดลอกจากแกลเลอรีตัวอย่างจริงเพื่อใช้เป็นจุดเริ่มต้น หรือสร้างจากเว็บไซต์จริง Design Extractor รับ URL สาธารณะ เรนเดอร์เว็บไซต์ในเบราว์เซอร์ แล้วส่งคืน DESIGN.md ที่มีสี ตัวอักษร ระยะห่าง และคอมโพเนนต์ พร้อมวางลงใน repo ของคุณ
อยากได้ของเว็บไซต์ที่คุณชอบใช่ไหม
วาง URL สาธารณะแล้วรับ DESIGN.md ของเว็บไซต์นั้น