Hướng dẫn
Để Claude Code và Cursor dựng UI khớp với một trang web
Nhờ agent lập trình AI làm “một trang cài đặt gọn gàng” và bạn sẽ nhận được một trang chung chung. Đưa cho nó một DESIGN.md lấy từ trang web bạn thích, nó sẽ dựng giao diện bằng đúng màu, thang kiểu chữ, bo góc và quy tắc component thật của trang đó thay vì đoán.
Hướng dẫn này đi qua toàn bộ quy trình trong Claude Code và Cursor, lấy tệp của Linear trong thư viện mẫu làm ví dụ.
Viết cho lập trình viên làm việc với agent lập trình AI. Cập nhật .
Bạn sẽ nhận được
- Một DESIGN.md của trang bạn thích, lưu trong repo ở chỗ agent đọc được.
- Một đoạn trỏ ngắn trong CLAUDE.md cho Claude Code và một project rule cho Cursor, để mọi tác vụ UI đều bắt đầu từ tệp này.
- Các prompt gọi tên token, để agent dùng giá trị chính xác thay vì đoán gần đúng.
- Một quy trình rà soát nhanh để bắt những chỗ agent làm lệch.
Vì sao DESIGN.md tốt hơn ảnh chụp màn hình
Ảnh chụp màn hình chỉ cho agent các pixel để đoán. Nó sẽ bắt được không khí chung nhưng sai giá trị: một màu xanh gần giống, một bo góc lệch vài pixel, một font được chọn vì trông na ná. Mỗi màn hình mới lại đoán lại từ đầu, nên ứng dụng dần lệch đi.
DESIGN.md cho agent giá trị chính xác. Tệp tuân theo đặc tả DESIGN.md của Google: phần YAML front matter ở đầu chứa token (mã màu hex, họ font và cỡ chữ, bo góc, component), còn phần markdown bên dưới giải thích mỗi giá trị dùng ở đâu. Mới làm quen với định dạng này? Hãy đọc DESIGN.md là gì.
Các bước
Chọn một trang có giao diện giống thứ bạn đang làm
Màn hình sản phẩm có mật độ tương tự sẽ hiệu quả hơn một landing page với hero lớn. Nếu bạn đang làm dashboard, hãy chọn một sản phẩm có dashboard. Xem thư viện mẫu DESIGN.md trước: có thể tệp đã có sẵn ở đó.
Lấy DESIGN.md của trang đó
Sao chép từ trang trong thư viện mẫu, hoặc dán URL vào trang chủ Design Extractor và chạy một lượt trích xuất Pro. Pro lấy mẫu các trang chính của trang web, và mỗi lượt mất ít nhất một phút.
Lưu thành DESIGN.md ở thư mục gốc của repository
Đặt nó cạnh README.md và AGENTS.md rồi commit, để mọi nhánh và agent của mọi đồng đội đều đọc cùng một tệp.
Trỏ agent tới tệp
Thêm một đoạn trỏ ngắn vào CLAUDE.md cho Claude Code, hoặc một project rule cho Cursor. Các đoạn mẫu ở bên dưới.
Yêu cầu UI bằng chính thuật ngữ của tệp
Gọi tên token và component trong prompt (
primary,body-md, một công thức nút) và yêu cầu agent liệt kê mọi giá trị nó không tìm thấy thay vì tự bịa ra.Đối chiếu kết quả với tệp
Kiểm tra màu, font, bo góc và các trạng thái so với DESIGN.md trước khi chấp nhận thay đổi.
Ví dụ thực tế: Linear
DESIGN.md của Linear trong thư viện mẫu được trích xuất từ linear.app bằng một lượt Pro đã quét 5 trang. Tệp có 17 token màu, 16 kiểu chữ và 12 mức bo góc. Đây là những gì agent của bạn dựa vào.
Màu sắc
Kiểu chữ
Hình dạng
12 màu đầu tiên, 6 kiểu chữ và 8 mức bo góc của Linear, hiển thị từ DESIGN.md của trang. Nhấn vào một ô màu để sao chép mã hex.
---
name: Linear
colors:
primary: "#5E6AD2"
canvas: "#08090A"
surface: "#121414"
surface-raised: "#1C1C1F"
ink: "#F7F8F8"
ink-secondary: "#D0D6E0"
muted: "#8A8F98"
subtle: "#62666D"
typography:
hero-display:
fontFamily: Inter Variable
fontSize: 72px
fontWeight: 510
lineHeight: 1
letterSpacing: -1.584px
body-lg:
fontFamily: Inter Variable
fontSize: 17px
fontWeight: 400
lineHeight: 1.6
letterSpacing: normal
rounded:
xs: 2px
sm: 4px
sm-2: 4.4625px
md: 5px
---Trích xuất từ trang web công khai của Linear, không phải hướng dẫn thương hiệu chính thức. Đọc toàn bộ DESIGN.md của Linear
Tệp mô tả giao diện như thế nào
Phần văn bản bên dưới token cho agent biết mỗi giá trị dùng ở đâu. Nó mở đầu như sau:
Linear's marketing surface reads like the product itself: a near-black Void canvas (canvas, #08090A) with charcoal panels stacked a half-step lighter, fenced by 1px hairlines rather than shadows. The mood is engineering-grade and restrained. Realistic product UI mockups, a customer logo strip and Berkeley Mono micro-labels ("FIG 0.1") stand in for illustration. Nothing shouts; the page earns attention through precision.Quy tắc tệp đưa cho agent
Phần Do's and Don'ts biến giao diện thành quy tắc. Vài quy tắc đầu tiên:
Nên
- Reserve Linear Indigo (primary, #5E6AD2) for focus and interactive accents. Every measured focus state is a 1px solid #5E69D1 outline with a 2px offset.
- Shape every button as a pill with rounded.full. button-ghost, button-ghost-2 and button-ghost-3 all measure 9999px.
- Keep control heights on the observed ladder: button-ghost and button-ghost-2 at 32px, button-ghost-4 at 29px, button-ghost-3 at 24px, and sidebar-nav-item and the icon buttons at 28px.
Không nên
- Don't use weights other than 400, 510 and 590, and never substitute a static 600 or 700 for heading-lg or title-md.
- Don't add a third typeface. Inter Variable carries everything, and Berkeley Mono is limited to micro figure labels.
- Don't use accent-blue, danger or success for marketing chrome; they belong inside product mockups.
Component
Tệp có 30 công thức component bằng HTML và CSS. 13 trong số đó đã vượt qua bước kiểm tra với trang thật; với những công thức còn lại, tệp ghi rõ vì sao chúng không đạt hoặc không kiểm tra được. Toàn bộ tệp dài khoảng 276.000 ký tự, phần lớn là công thức. Vì vậy bạn nên trỏ agent tới tệp thay vì dán nó vào prompt.
Trỏ agent tới tệp
Phần lớn agent không tự mở DESIGN.md. Vài dòng trong phần hướng dẫn mà chúng vốn đã tải sẽ khắc phục điều đó. Trong Claude Code, thêm đoạn này vào CLAUDE.md ở thư mục gốc của repository:
## Design
Follow DESIGN.md in the repository root for every UI change.
Use its color, typography, rounded and component tokens instead of inventing values.
Before you build a button, card or input, read its recipe in the Components section.Trong Cursor, thêm một project rule. Lưu đoạn này thành .cursor/rules/design.mdc; alwaysApply sẽ tải nó cho mọi yêu cầu trong dự án:
---
description: Follow DESIGN.md for every UI change
alwaysApply: true
---
Follow DESIGN.md in the repository root for every UI change.
Use its color, typography, rounded and component tokens instead of inventing values.
Before you build a button, card or input, read its recipe in the Components section.Hãy dùng đoạn trỏ thay vì dán cả tệp vào phần hướng dẫn. DESIGN.md bản Pro có công thức cho từng component lấy từ trang web nên khá dài, và agent chỉ cần nó khi làm UI.
Prompt dùng token
Nêu tên tệp và token của nó, và cho agent một lối thoát thay vì một lý do để đoán. Các prompt này được viết cho hướng dẫn này với tên token thật của Linear; hãy thay bằng tác vụ của bạn.
Claude Code
Build a pricing page with three plan cards. Follow DESIGN.md:
- use primary (#5E6AD2) only where the file says it belongs
- set headings in hero-display and body copy in body-lg
- reuse the button-ghost recipe for the plan buttons, with its hover and focus states
- start the plan cards from the card recipe
List any value you could not find in DESIGN.md instead of inventing one.Cursor
@DESIGN.md Restyle the settings form in src/app/settings to match this file.
Take colors, type and radii from the tokens and inputs and buttons from the component recipes.
Keep the existing layout and logic, and list any value you could not find in the file.Trong Cursor, @DESIGN.md đính kèm tệp vào cuộc trò chuyện, giúp ích thêm ngoài rule khi tác vụ chủ yếu liên quan đến giao diện.
Kết quả nên trông thế nào? Đại khái như thẻ này, do trang này vẽ trực tiếp từ token. Thẻ cho thấy các giá trị tạo ra hiệu ứng gì, không phải thứ một agent đã tạo ra.
Lên kế hoạch cho bản phát hành tiếp theo
Mọi việc, mốc thời gian và quyết định ở cùng một nơi, để cả nhóm phát hành đúng hạn.
Rà soát những gì agent đã dựng
- Màu. Tìm các mã hex trong diff. Mỗi mã phải có trong DESIGN.md. Một mã mới thường có nghĩa là agent đã đoán.
- Font. Nhiều thương hiệu dùng font thương mại mà bạn không được phép phân phối. Phần Typography của tệp thường nêu một font mã nguồn mở thay thế; hãy chắc chắn agent đã tải đúng font đó chứ không phải một font dự phòng ngẫu nhiên.
- Bo góc và khoảng cách. Nút và thẻ nên dùng token rounded của tệp, không phải một giá trị mặc định như 8px ở mọi nơi.
- Trạng thái. Kiểu hover và focus là một phần của mỗi công thức component. Hãy nhấn Tab qua trang và kiểm tra vòng focus.
- Công thức flagged. Nếu tệp đánh dấu một công thức là flagged, hình dạng của nó chỉ là xấp xỉ. Hãy so component đó với trang thật.
Nếu bạn sửa DESIGN.md bằng tay, hãy kiểm tra bằng Trình kiểm tra DESIGN.md miễn phí trước khi agent đọc lại.
Các tệp dùng trong hướng dẫn này
Mỗi trang thư viện mẫu dưới đây đều có toàn bộ DESIGN.md để sao chép vào repo, kèm bảng màu và mẫu kiểu chữ.
Phần mềm & SaaS · Productivity & NotesLinear
Hệ thống thiết kế của Linear được xây dựng ưu tiên giao diện tối, dành cho sản phẩm có mật độ thông tin cao phục vụ các đội ngũ kỹ thuật. Bảng màu nền lấy màu đen gần như tuyệt đối làm gốc, gồm #08090a và #0f1011, kết hợp các lớp xám tối nhiều tầng để phân biệt thanh bên, thẻ và bảng điều khiển. Kiểu chữ chỉ dùng Inter Variable, với khoảng cách chữ âm được canh chỉnh chính xác ở các cỡ chữ tiêu đề lớn, còn Berkeley Mono dành cho mã nội dòng. Ngôn ngữ bo góc được giữ ở mức nhỏ có chủ đích, phổ biến nhất là 2–6px, và hình viên thuốc chỉ dành cho huy hiệu và chip trạng thái. Độ nổi được thể hiện bằng viền inset 1px tinh tế và bóng đổ độ mờ thấp thay vì các lớp xếp chồng mạnh mẽ. Màu CTA chính là màu chàm đặc trưng của Linear, #5e6ad2, được dùng cho nút Sign Up và các liên kết quan trọng.
Tài chính & FintechStripe
Trang chủ tiếp thị của Stripe sử dụng một hệ thống thiết kế được kiểm soát chặt chẽ (HDS — Stripe Design System), xây dựng quanh phông chữ biến thiên "sohne-var" ở các độ đậm nhẹ (300–400), một bảng màu thương hiệu từ xanh navy đậm đến chàm, lấy #533afd (Stripe Indigo) làm trục chính, cùng với phần hero có dải gradient quang phổ tràn viền đặc trưng. Các thành phần có bo góc nhỏ (4–6px), bóng đổ phẳng đến tối giản, và được bố cục theo lưới khoảng cách cơ sở 8px. Tổng thể giọng điệu vừa đầy uy quyền vừa gần gũi: hạ tầng tài chính được truyền đạt qua kiểu chữ tự tin và cách dùng màu tiết chế.
Lập trình & Hạ tầng · Developer Tools & IDEsSupabase
Supabase sử dụng một hệ thống thiết kế ưu tiên giao diện tối, lấy nền gần đen sâu (oklch ~0.19) làm nền tảng, kết hợp với màu nhấn xanh lá rực rỡ (#3ecf8e / #3fcf8e). Bố cục được xây dựng quanh lưới thẻ tính năng đáp ứng, với Manrope cho tiêu đề hiển thị và Inter cho văn bản nội dung cũng như giao diện. Source Code Pro được dùng cho mọi ngữ cảnh monospace và mã nguồn. Hệ thống màu dựa trên các custom property oklch với cách đặt tên theo ngữ nghĩa. Thẻ có bo góc 12px và viền mỏng tinh tế, nút bo góc 6–8px, mật độ nội dung vừa phải và lưới khoảng cách cơ sở 8px.
FAQ
Khớp giao diện một trang web trong Claude Code và Cursor: câu hỏi thường gặp
Trả lời ngắn cho những điều mọi người hay hỏi trước khi thử.
Không. Lưu nó một lần dưới tên DESIGN.md ở thư mục gốc của repository, rồi trỏ tới nó từ CLAUDE.md cho Claude Code hoặc từ một project rule cho Cursor. Agent sẽ đọc tệp khi tác vụ liên quan đến giao diện. DESIGN.md bản Pro có công thức component nên khá dài, vì vậy trỏ tới tệp giúp prompt của bạn ngắn gọn.
Không, và đó cũng không phải mục tiêu. Agent nhận token của trang (màu, kiểu chữ, bo góc), công thức component và quy tắc của trang. Bố cục, nội dung và tính năng vẫn là của bạn. Những công thức không vượt qua bước kiểm tra với trang thật được đánh dấu flagged trong tệp, nên hãy coi chúng là bản xấp xỉ gần đúng.
Có. Agent nào đọc được tệp trong repository của bạn đều dùng được DESIGN.md. Hãy trỏ tới nó từ phần hướng dẫn mà agent đó vốn đã đọc, như AGENTS.md hoặc .github/copilot-instructions.md, hoặc nêu tên tệp trong prompt.
Có. Mỗi trang trong thư viện mẫu đều có toàn bộ DESIGN.md để sao chép. Các tệp trong thư viện mẫu được trích xuất từ trang web công khai của từng thương hiệu, không phải hướng dẫn thương hiệu chính thức. Với trang chưa có trong thư viện mẫu, hãy dán URL của nó ở trang chủ và chạy một lượt trích xuất.
Lấy DESIGN.md cho trang web bạn thích
Dán bất kỳ URL công khai nào. Một lượt trích xuất Pro lấy mẫu các trang chính của trang web và trả về DESIGN.md mà agent của bạn đọc được.
Hướng dẫn liên quan
Không có designer? Mượn một hệ thống thiết kế đã được kiểm chứng cho ứng dụng của bạn
Cách chọn trang tham khảo, giữ gì từ DESIGN.md của nó và đổi gì để kết quả là của bạn chứ không phải bản sao.
Sắp làm lại trang web? Hãy trích xuất hệ thống thiết kế trước
Lưu trang hiện tại thành DESIGN.md trước khi làm lại, đổi thương hiệu hay chuyển framework, và biết cần kiểm tra thủ công những gì.
Kết hợp hai trang tham khảo thành một thiết kế cho bản prototype
So sánh từng token của hai tệp DESIGN.md đã trích xuất và gộp thành một đặc tả cho bản prototype, thủ công hoặc cùng agent của bạn.
Cung cấp đặc tả thiết kế cho agent lập trình khi cần bằng MCP
Kết nối máy chủ MCP để agent tự trích xuất DESIGN.md của một trang, chờ kết quả và dựng giao diện từ đó.