Câu hỏi không phải dựng đủ ngay hay để sau, mà là cấu trúc token có chừa đường hay không.
Nên tính từ đầu ở cấu trúc, dù chưa cần dựng đủ giao diện tối hay từng thương hiệu ngay lập tức. Bí quyết nằm ở chỗ mọi giá trị màu sắc, kích thước, khoảng cách cần đặt ở tầng token gốc và được điều khiển qua tầng token ngữ nghĩa, để sau này đổi chủ đề hoặc thêm thương hiệu không phải đụng vào component. Nếu bỏ qua tầng ngữ nghĩa và cho component đọc thẳng màu thô, việc thêm chế độ tối hay thương hiệu thứ hai sau này gần như đồng nghĩa với làm lại từ đầu.
Câu hỏi này xuất hiện thường xuyên khi một dự án design system (hệ thống thiết kế) còn non trẻ: chúng ta có nên dựng cả giao diện sáng tối và hỗ trợ nhiều thương hiệu ngay từ đầu, hay cứ làm cho xong bản chính rồi tính sau? Sinh Vũ trả lời thẳng: không cần dựng đủ ngay, nhưng cấu trúc phải chừa đường từ giai đoạn một. Sự khác biệt nằm ở tầng token ngữ nghĩa.
Một design system có cấu trúc token vững cần ít nhất ba tầng rõ ràng.
Khi cấu trúc này đứng vững, đổi chủ đề đồng nghĩa với thay ánh xạ ở tầng ngữ nghĩa. Component không cần biết có bao nhiêu chủ đề đang tồn tại.
Đặt mọi giá trị ở tầng token gốc, điều khiển chủ đề và thương hiệu ở tầng ngữ nghĩa, component lõi không đổi.
Material Design 3; Nathan Curtis, EightShapes
Hiểu sai này dẫn đến nhiều hệ thống có chế độ tối trông kỳ lạ, chữ khó đọc, màu thương hiệu bị lệch sắc. Chế độ tối đúng nghĩa là một bộ token ngữ nghĩa riêng, trong đó mỗi vai trò màu được trỏ sang một giá trị token gốc khác, phù hợp với nền tối.
Ví dụ: "màu nền chính" ở chế độ sáng trỏ về giá trị trắng nhạt, ở chế độ tối trỏ về giá trị xám đậm, không phải giá trị nghịch đảo toán học của màu trắng nhạt. Đây là lý do cần tầng ngữ nghĩa ngay từ đầu, kể cả khi chưa có kế hoạch làm chế độ tối trong sáu tháng tới.
Với các ngành có yêu cầu tương phản cao như tài chính hoặc y tế, nên kiểm tra tương phản đọc được ở cả hai chế độ từ giai đoạn thiết kế nền tảng, không để đến lúc ra mắt tính năng mới phát hiện.
Lỗi tốn kém nhất Sinh Vũ gặp ở các hệ thống xây vội là nhân đôi component cho mỗi thương hiệu. Một thương hiệu con ra đời, nhóm sao chép toàn bộ thư viện component và chỉnh màu. Từ đó trở đi, mọi cập nhật phải làm hai lần, rồi ba lần.
Cách đúng: giữ một bộ component lõi dùng chung, mỗi thương hiệu có bộ token ngữ nghĩa riêng trỏ về token gốc của thương hiệu đó. Khi component hiển thị, nó chỉ hỏi "màu nền chính là gì?", còn câu trả lời phụ thuộc vào bộ token ngữ nghĩa nào đang được nạp.
Sinh Vũ không nói mọi thứ phải làm đủ ngay ngày một. Có những phần hoàn toàn có thể để lại cho giai đoạn sau mà không ảnh hưởng cấu trúc.
Điều không thể để sau: quyết định đặt tầng ngữ nghĩa vào cấu trúc hay không. Đây là quyết định một chiều, và chọn sai ở bước này sẽ kéo chi phí sửa lên rất cao về sau.
Sinh Vũ mặc định bàn giao bộ token ba lớp hỗ trợ cả chế độ sáng và tối ngay ở Giai đoạn 1, đúng nguyên tắc chừa đường ở cấu trúc trước. Với khách đa thương hiệu dùng chung mã nguồn, tầng ngữ nghĩa là chỗ để tách thương hiệu mà không phá component lõi.
Nếu Anh / Chị hiện tại chắc chắn chỉ có một thương hiệu và một chế độ trong toàn bộ vòng đời sản phẩm, thì đây là trường hợp hiếm có thể cân nhắc cấu trúc đơn giản hơn. Nhưng trong thực tế, đa số doanh nghiệp đang phát triển đều sẽ cần ít nhất một trong hai: chế độ tối hoặc thương hiệu con. Chừa đường từ đầu là quyết định an toàn hơn.
Chủ đề: Sáng tối và đa thương hiệu: tính từ đầu hay bổ sung sau?. 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.
Material Design 3, Design tokens overview. Nathan Curtis, Tokens in Design Systems (EightShapes). Color tokens và hướng dẫn sáng tối trong design system (Bootcamp). Kinh nghiệm thực hành Sinh Vũ qua các dự án đa thương hiệu.
Có. Dù chỉ có một thương hiệu và một chế độ hôm nay, tầng ngữ nghĩa vẫn cần được giữ ngay từ đầu vì chi phí chừa đường lúc này gần như bằng không, trong khi chi phí gắn thêm về sau rất cao. Khi thêm chế độ tối hay thương hiệu thứ hai, Anh / Chị chỉ cần ánh xạ lại token ngữ nghĩa sang bộ giá trị mới, không cần sửa component nào.
Không nên. Đảo màu tự động thường cho ra tương phản sai, chữ khó đọc, và màu thương hiệu bị lệch sắc. Chế độ tối đúng nghĩa là một bộ token ngữ nghĩa riêng trỏ về token gốc phù hợp, không phải phép nghịch đảo kỹ thuật. Với nhóm ngành có yêu cầu tương phản cao như tài chính hoặc y tế, điều này càng quan trọng hơn.
Không. Đây là lỗi tốn kém nhất mà Sinh Vũ hay gặp ở các hệ thống đã làm vội. Với cấu trúc token đúng, Anh / Chị chỉ cần một bộ component lõi dùng chung, còn thương hiệu được tách bằng cách thay bộ giá trị token ngữ nghĩa. Mỗi thương hiệu con có bộ token ngữ nghĩa riêng trỏ về token gốc của thương hiệu đó.