Câu hỏi không phải 'cái nào tốt hơn' mà là 'cái nào phù hợp với bài toán của Anh Chị hơn'.
Với hầu hết sản phẩm B2B và SaaS, bắt đầu từ nền có sẵn như Material UI hoặc Carbon rồi tùy biến qua design token là lựa chọn hợp lý về tốc độ ra thị trường và chi phí duy trì lâu dài. Tự xây từ đầu chỉ thực sự cần thiết khi thương hiệu của Anh Chị có cá tính cực kỳ phân biệt, hoặc khi sản phẩm có kiểu tương tác đặc thù mà không nền nào có sẵn hỗ trợ. Câu hỏi Anh Chị cần trả lời thành thật là: sự khác biệt đó có đủ lớn để bù đắp chi phí và thời gian tự xây hoàn toàn không?
Hầu hết cuộc tranh luận "dùng nền có sẵn hay tự xây" đều bắt đầu sai chỗ. Đội kỹ thuật muốn tự xây vì thích kiểm soát. Đội thiết kế muốn tự xây vì không thích dáng dấp Material. Lãnh đạo muốn dùng nền có sẵn vì nghe nói rẻ hơn. Cả ba lý do đó đều chưa đủ để ra quyết định. Câu hỏi đúng cần hỏi là: bài toán thương hiệu và kỹ thuật của Anh Chị cụ thể trông như thế nào?
Dùng nền có sẵn rồi tùy biến: Anh Chị nhận về một bộ component đã xây sẵn, đã xử lý accessibility (khả năng tiếp cận cho người dùng khuyết tật, theo chuẩn WCAG), đã có dark mode, đã test trên nhiều trình duyệt. Công việc còn lại là thiết lập design token (giá trị thiết kế có thể tái sử dụng như màu sắc, khoảng cách, font) để áp thương hiệu lên trên, và ghi đè có chọn lọc những chỗ nền không đáp ứng được.
Tự xây từ đầu: Anh Chị có toàn quyền kiểm soát từng pixel và từng pattern tương tác. Nhưng cũng có nghĩa là phải tự xây lại accessibility, tự xử lý focus management (quản lý điểm trỏ chuột và bàn phím), tự viết test cho từng component. Chi phí ban đầu cao hơn rõ rệt, và thường cao hơn dự tính ban đầu.
Dù chọn nền có sẵn hay tự xây, lớp design token phải là nền chung. Khi token đã chuẩn hóa, đội kỹ thuật có thể thay nền bên dưới mà không cần viết lại toàn bộ style.
Nguyên tắc Token-First, Design Tokens Community Group (DTCG), W3C
Sinh Vũ chuẩn hóa lớp token theo DTCG format, tương thích với cả Figma Variables lẫn Style Dictionary để đổ ra CSS, Sass và JSON. Điều này có nghĩa là dù Anh Chị chọn MUI, Carbon hay tự xây từ đầu, lớp token vẫn là điểm neo chung cho cả đội thiết kế và đội kỹ thuật.
Cách tiếp cận này cũng áp dụng nguyên tắc Atomic Design của Brad Frost: xây từ nguyên tử (màu sắc, typography, spacing) lên tổ hợp nhỏ hơn trước khi lắp vào component lớn. Dù xuất phát điểm là nền có sẵn hay tự xây, tư duy này giúp giảm số component cần làm mới và duy trì sự nhất quán khi sản phẩm scale.
Quyết định cuối cùng phụ thuộc vào ba thứ Anh Chị cần trả lời thành thật: cá tính thương hiệu cần thể hiện ở UI mạnh đến đâu, đội kỹ thuật có khả năng maintain nền tự xây lâu dài không, và sản phẩm có kiểu tương tác đặc thù nào mà nền có sẵn không hỗ trợ không. Nếu cả ba câu trả lời đều không rõ, bắt đầu từ nền có sẵn với lớp token riêng là lựa chọn an toàn và có thể điều chỉnh sau.
Design Tokens Community Group (DTCG), W3C Community Group. Brad Frost, Atomic Design (2016). Material Design documentation, Google. Carbon Design System, IBM. Kinh nghiệm thực hành Sinh Vũ Studio.
Nếu chỉ thay màu sắc và font thì vẫn còn nhận ra dáng dấp Material, vì các pattern tương tác như ripple effect hay elevation shadow vẫn giữ nguyên. Tùy biến sâu qua token kết hợp ghi đè component có chọn lọc sẽ giảm đáng kể cảm giác đó. Tuy nhiên, nếu thương hiệu của Anh Chị cần giao diện hoàn toàn độc lập về phong cách, tự xây mới là lựa chọn đúng.
Sinh Vũ không đưa con số cụ thể vì phụ thuộc vào quy mô component, số nền tảng cần hỗ trợ và kinh nghiệm của đội. Định tính mà nói, nền có sẵn giúp Anh Chị có bộ component dùng được ngay từ ngày đầu, trong khi tự xây cần thời gian xây dựng cả accessibility, dark mode và responsive từ gốc. Khoảng cách đó không nhỏ.
Được, miễn là Anh Chị thiết lập lớp design token riêng ngay từ đầu thay vì ghi đè CSS trực tiếp vào nền. Khi token đã chuẩn hóa theo DTCG format, đội kỹ thuật có thể thay nền bên dưới mà không cần viết lại toàn bộ style. Đây chính là lý do Sinh Vũ luôn xây lớp token trước, bất kể khách chọn hướng nào.