Câu trả lời ảnh hưởng đến toàn bộ chi phí bảo trì sau này, không phải chỉ tuần đầu tiên.
Bắt đầu từ nền tảng token, tức là bộ màu, kiểu chữ và khoảng cách được đặt tên và tổ chức thành lớp, trước khi dựng bất kỳ component nào. Nếu Anh/Chị dựng component khi chưa có token, mỗi component sẽ nhúng giá trị cứng bên trong, và khi cần đổi màu thương hiệu hoặc hỗ trợ giao diện tối, đội kỹ thuật phải sửa tay hàng trăm chỗ. Token làm gốc một lần, cả hệ cập nhật theo một lần.
Token màu, chữ, khoảng cách là nền móng. Component là tầng xây trên nền đó. Đảo thứ tự này lại, Anh/Chị sẽ tốn gấp đôi công sức mỗi lần thương hiệu thay đổi, và về sau muốn hỗ trợ giao diện tối hoặc thêm thương hiệu thứ hai sẽ gần như phải làm lại từ đầu.
Brad Frost mô tả token là hạt "subatomic" (dưới nguyên tử) của giao diện: chưa dùng được một mình, nhưng là thành phần gốc mà mọi thứ bên trên phải kế thừa. Khi đội thiết kế và đội kỹ thuật cùng tham chiếu một token thay vì mỗi người tự nhớ một mã màu, toàn bộ sản phẩm số giữ được sự đồng nhất mà không cần kiểm tra thủ công từng màn hình.
Nếu Anh/Chị đổi một token màu chủ ở gốc, toàn bộ website, ứng dụng và mọi component cập nhật theo ngay lập tức. Không cần họp, không cần gửi file màu mới cho từng người.
Một bộ token phẳng, chỉ liệt kê màu, chưa đủ để vận hành lâu dài. Sinh Vũ tổ chức token theo ba lớp có thứ bậc:
Kiến trúc ba lớp này cho phép đổi màu ở gốc và thay đổi lan xuống có kiểm soát, không lan sang những chỗ không mong muốn.
Bắt đầu từ token trước: Khi doanh nghiệp có nhiều sản phẩm số, cần hỗ trợ giao diện tối hoặc nhiều thương hiệu, muốn hệ thống sống được qua nhiều năm và mở rộng sang iOS hoặc Android. Đây là trường hợp phổ biến nhất và cũng là trường hợp mà nợ kỹ thuật tích lũy nhanh nhất nếu bỏ qua bước này.
Làm song song được khi: Chỉ có một sản phẩm nhỏ, nhận diện thương hiệu đã được chốt hoàn toàn, và cần ra mắt trong thời gian ngắn. Dù vậy, điều kiện bắt buộc là ngay từ đầu mọi component phải tham chiếu token, tuyệt đối không nhúng giá trị màu hay cỡ chữ cứng vào bên trong component.
Trong quy trình A3 tại Sinh Vũ, giai đoạn đầu luôn là rà soát nhận diện hiện tại và chuyển đổi toàn bộ sang bộ DTCG JSON (định dạng chuẩn do Design Tokens Community Group thuộc W3C đề xuất, giúp một bộ token dùng được trên nhiều công cụ và nền tảng) theo ba lớp, kèm báo cáo điểm lệch chuẩn giữa thiết kế và sản phẩm thực. Chỉ sau khi bộ token này được chốt, đội mới chuyển sang giai đoạn dựng component.
Lý do không phải vì quy trình cứng nhắc, mà vì đây là cách duy nhất đảm bảo nhận diện không loãng dần khi vào sản phẩm số. Nếu component đi trước, mỗi người sẽ tự quyết định màu nào dùng, cỡ chữ nào phù hợp, và sau sáu tháng hệ giao diện sẽ có hàng chục biến thể nhỏ không ai kiểm soát được.
Token là nguồn chuẩn duy nhất. Component chỉ được tham chiếu token, không được tự định nghĩa giá trị.
Nguyên tắc vận hành Design System, Sinh Vũ Studio
Chủ đề: Nên bắt đầu từ token hay từ component trong design system. Cẩm nang Sinh Vũ, sinhvu.com
Bấm chọn từng mục Anh / Chị thấy đúng, rồi bấm in hoặc lưu thành PDF để mang theo.
Nếu Anh / Chị đánh dấu phần lớn ở nhóm dấu hiệu trên, đây là lúc nên trao đổi kỹ hơn. Sinh Vũ có thể cùng Anh / Chị soi lại và đề xuất hướng đi.
Brad Frost, Atomic Design và bài viết Design Tokens + Atomic Design. Design Tokens Community Group, W3C DTCG JSON specification. Nathan Curtis, EightShapes. Kinh nghiệm thực hành dự án A3 tại Sinh Vũ Studio.
Token là một cặp tên và giá trị, ví dụ color-brand-primary = #1A56DB. Token không hiển thị được một mình, nó là nguyên liệu gốc mà component kế thừa. Component là phần tử giao diện hoàn chỉnh như nút bấm, thẻ thông tin, thanh điều hướng. Làm token trước giống như pha màu ra đĩa trước khi vẽ, không phải vừa vẽ vừa pha từng nét.
Không nên bỏ qua, nhưng có thể làm song song với một nhóm component nhỏ đầu tiên. Điều bắt buộc là ngay từ đầu component phải tham chiếu token, không được nhét giá trị màu hay cỡ chữ cứng vào bên trong. Nếu bỏ qua hoàn toàn, nợ kỹ thuật tích lũy nhanh và chi phí chuẩn hóa lại sau này cao hơn làm đúng từ đầu rất nhiều.