← Design System← Design System
Design SystemDesign System19 Th7, 2026Jul 19, 202616 phút đọc12 min read

Giới thiệu về Design SystemIntroduction to Design Systems

Thuộc bộ kiến thức Design System Roadmap.

Tổng quan

Một design system là nguồn tham chiếu duy nhất (single source of truth) định hình ngôn ngữ và các thành phần của một sản phẩm: tập hợp các quy tắc, nguyên tắc và khối xây dựng dùng chung, giúp các sản phẩm số của một tổ chức trông và cảm giác như đến từ cùng một đội ngũ — ngay cả khi hàng trăm người khác nhau đang xây dựng tính năng song song. Rất dễ để rút gọn khái niệm này thành một thứ cụ thể nào đó — “đó là file Figma chứa tất cả button của chúng tôi” hoặc “đó là component library React mà chúng tôi npm install” — nhưng một design system lớn hơn bất kỳ artifact đơn lẻ nào. Nó là sự kết hợp của:

Một component library hay một UI kit là sản phẩm được tạo ra bởi một design system, nhưng đó chỉ là phần nổi có thể nhìn thấy của nó. Giá trị thực sự của một design system nằm ở những quyết định và lý do (rationale) mà nó mã hóa — những quyết định giúp một designer và một engineer, chưa từng nói chuyện với nhau, độc lập đi đến cùng một giải pháp cho cùng một vấn đề.

Vì sao design system tồn tại

Design system không được xây dựng vì bản thân nó; chúng tồn tại để giải quyết những vấn đề thực sự, tốn kém, xuất hiện khi sản phẩm và đội ngũ phát triển lớn dần.

Vấn đề khi không có design systemDesign system giải quyết như thế nào
Mỗi team tự phát minh lại button, form, modal theo cách hơi khác nhauComponent dùng chung nghĩa là chỉ có một cách triển khai, tái sử dụng ở mọi nơi — consistency (nhất quán) ở quy mô lớn
Designer và engineer di chuyển chậm vì mỗi màn hình bắt đầu từ khung vẽ trốngComponent và pattern có sẵn giúp team lắp ráp màn hình thay vì phát minh chúng — tốc độ thiết kế và phát triển cao hơn
Sản phẩm trông “lệch brand” hoặc thiếu nhất quán sau vài năm phát triển tính năngToken và guideline tập trung giữ ngôn ngữ thị giác nhất quán, giảm mạnh chi phí cho một lần redesign toàn diện sau này
Nhân sự mới mất nhiều tháng để hiểu “ở đây chúng tôi xây UI như thế nào”Một hệ thống có tài liệu kèm lý do và ví dụ rút ngắn thời gian onboarding từ nhiều tháng xuống vài tuần
Nhiều sản phẩm dưới cùng một công ty trông như những app không liên quanMột hệ thống dùng chung áp đặt sự nhất quán thương hiệu (brand cohesion) trên toàn bộ danh mục sản phẩm
Các bản sửa accessibility bị lặp lại (và bị phá lại) ở mỗi tính năngAccessibility được giải quyết một lần, ngay trong component, và được kế thừa bởi mọi nơi sử dụng nó

Điểm chung xuyên suốt tất cả những điều này là đòn bẩy (leverage): một design system biến một khoản đầu tư một lần (định nghĩa đúng một button, với đầy đủ các state của nó, chỉ một lần) thành một tài sản có thể tái sử dụng, sinh lời mỗi khi một team ra mắt thứ gì đó mới. Nếu không có nó, chất lượng và sự nhất quán sẽ suy giảm khi công ty mở rộng quy mô, bởi vì ngày càng nhiều người đưa ra quyết định độc lập mà không có điểm tham chiếu chung.

Kiến thức nền tảng

Design system vs. component library vs. UI kit vs. pattern library

Bốn thuật ngữ này thường được dùng thay thế cho nhau trong giao tiếp thông thường, nhưng chúng chỉ những thứ khác nhau — và không ngang hàng nhau. Hiểu rõ sự khác biệt này quan trọng vì nhiều team nghĩ rằng họ “có một design system” trong khi thực chất họ chỉ có một trong các output của nó, thiếu đi các nguyên tắc, token và quy trình quản trị giúp nó bền vững.

Thuật ngữBản chất thực sựTồn tại ở đâuPhạm vi
Design systemToàn bộ tập hợp nguyên tắc, token, component, pattern, tài liệu và quy trình quản trị một cách toàn diệnCả công cụ thiết kế lẫn code, cộng thêm tài liệu viếtToàn tổ chức; là nguồn tham chiếu duy nhất
Component libraryPhần cài đặt bằng code của các component trong hệ thống (ví dụ: một package React hoặc Vue)Code repository, package registryTập con hướng về phía engineering của design system
UI kitPhiên bản tương đương của component library nhưng ở công cụ thiết kế (ví dụ: file Figma với component/style tương ứng)Công cụ thiết kế (Figma, Sketch)Tập con hướng về phía design của design system
Pattern libraryDanh mục các cách kết hợp UI lặp lại (ví dụ: “luồng đăng nhập”, “empty state”, “bảng dữ liệu có filter”) được xây từ các componentTrang tài liệu, đôi khi kèm code snippetỞ tầng cao hơn một component đơn lẻ; cho thấy các component phối hợp với nhau

Như vậy, component library và UI kit lần lượt là output phía code và phía design của một design system — chúng là artifact của hệ thống, không phải bản thân hệ thống. Pattern library nằm ở tầng cao hơn component một bậc, ghi lại những cách kết hợp component lặp đi lặp lại. Design system là chiếc ô bao trùm, hợp nhất tất cả các output này với lý do vì sao chúng tồn tại và quy tắc về cách chúng nên được sử dụng và phát triển.

Phương pháp Atomic Design

Phương pháp atomic design của Brad Frost là mô hình tư duy mà hầu hết các design system dùng để tổ chức component theo độ phức tạp tăng dần, mượn ẩn dụ từ hóa học: nguyên tử kết hợp thành phân tử, phân tử kết hợp thành cơ thể (organism), và cứ thế. Nó cho các team một từ vựng chung để nói về “một mảnh UI nhỏ đến mức nào hay được ghép lại phức tạp đến đâu”, từ đó làm rõ một component mới nên nằm ở đâu và nên tái sử dụng được đến mức nào.

Cấp độĐịnh nghĩaVí dụ cụ thể
Atoms (nguyên tử)Những thành phần UI nhỏ nhất, không thể chia nhỏ hơn mà vẫn giữ được chức năngMột text input, một label, một button, một color token, một icon
Molecules (phân tử)Một nhóm nhỏ các atom hoạt động cùng nhau như một khối duy nhấtMột form tìm kiếm: text input + button submit + label, kết hợp để làm một việc — “tìm kiếm”
Organisms (cơ thể)Một phần tương đối phức tạp, riêng biệt của giao diện, được cấu thành từ molecule và/hoặc atomHeader của trang kết quả tìm kiếm: molecule tìm kiếm + bộ điều khiển filter + số lượng kết quả + dropdown sắp xếp, tất cả phối hợp thành một section
Templates (khuôn mẫu)Bố cục ở cấp trang, đặt các organism vào một cấu trúc, dùng nội dung giữ chỗ (placeholder) để thể hiện cấu trúc nội dung chứ không phải nội dung cuối cùngKhung trang kết quả tìm kiếm: organism header ở trên, organism sidebar cho filter, organism danh sách kết quả ở khu vực chính
Pages (trang)Template được lấp đầy bằng nội dung và dữ liệu thật — màn hình cuối cùng, hoàn chỉnh mà người dùng nhìn thấyTrang kết quả tìm kiếm thực tế cho truy vấn “bàn phím không dây”, với dữ liệu sản phẩm thật được đưa vào template

Đi qua ví dụ từ đầu đến cuối: một atom text input tự thân nó vô nghĩa — nó chỉ nhận văn bản. Kết hợp nó với một atom button và một <label>, ta có molecule form tìm kiếm, giờ đã có một mục đích rõ ràng duy nhất. Kết hợp molecule đó với bộ đếm kết quả, control sắp xếp, và các chip filter, ta có organism header trang kết quả tìm kiếm — một section tự thân, độc lập của trang. Nhiều organism (header, sidebar filter, lưới kết quả, footer) được sắp xếp thành một bố cục trở thành một template, và khi template đó được điền dữ liệu tìm kiếm thật, nó trở thành một page. Chính “bậc thang” này là lý do atomic design được áp dụng rộng rãi đến vậy: nó cho engineer và designer một cách chung, không mơ hồ, để quyết định “đây là một atom mới, hay là sự kết hợp của các atom đã có?” — nhờ đó tránh được cả việc trùng lặp không cần thiết lẫn những component quá cứng nhắc, cồng kềnh.

Khái niệm chính

Ví dụ design system trong thực tế

Nghiên cứu các design system đã được kiểm chứng là một trong những cách nhanh nhất để hiểu “tốt” trông như thế nào, vì mỗi hệ thống được xây dựng để giải quyết một vấn đề hơi khác nhau, ở một quy mô khác nhau, và mỗi hệ thống có những đánh đổi (trade-off) khác nhau, mang tính gợi mở.

Design systemCông tyĐiểm nổi bật
Material DesignGoogleMột trong những design system công khai hoàn chỉnh nhất; định nghĩa không chỉ component mà cả một triết lý thiết kế đầy đủ (elevation, motion, bề mặt mang tính xúc giác) áp dụng nhất quán trên Android, web, và các sản phẩm của chính Google
Atlassian Design SystemAtlassianNhấn mạnh mạnh mẽ vào content design và hướng dẫn accessibility bên cạnh component; tài liệu hóa tốt lý do vì sao mỗi pattern tồn tại, không chỉ cách dùng nó
Carbon Design SystemIBMXây dựng cho phần mềm doanh nghiệp phức tạp, nhiều dữ liệu; tập trung mạnh vào tuân thủ accessibility (Section 508/WCAG) và hỗ trợ nhiều framework (React, Angular, Vue, Web Components)
PolarisShopifyTối ưu cho một hệ sinh thái lớn các nhà phát triển app bên thứ ba xây dựng bên trong admin của Shopify; đầu tư mạnh vào content guideline để hàng nghìn developer bên ngoài viết UI copy một cách nhất quán
Ant DesignAlibaba/cộng đồngDesign system mã nguồn mở phổ biến cho ứng dụng web doanh nghiệp, nhiều dữ liệu; bộ component có sẵn lớn giúp tăng tốc việc áp dụng trong hệ sinh thái React, đặc biệt tại Trung Quốc và các công cụ admin-dashboard

Điểm chung xuyên suốt cả năm ví dụ là không cái nào trong số đó “chỉ là một component library”. Mỗi hệ thống đi kèm component của nó với một triết lý được tài liệu hóa (nguyên tắc elevation và motion của Material, content guideline của Atlassian và Polaris, cam kết accessibility của Carbon) và một lý do công khai cho việc vì sao hệ thống trông và hoạt động như vậy. Chính cái “vì sao” được tài liệu hóa đó cho phép hàng nghìn engineer và designer, những người sẽ không bao giờ gặp nhau, vẫn xây dựng được UI nhất quán, đúng brand, và accessible — đó chính là mục đích cốt lõi của việc có một design system ngay từ đầu.

Ai sử dụng một design system

Một design system tự nó là một sản phẩm liên chức năng (cross-functional), và các vai trò khác nhau phụ thuộc vào nó vì những lý do khác nhau — hiểu điều này giúp lý giải vì sao tài liệu của một design system phải nói được nhiều hơn là chỉ “làm sao để import component này”.

Vai tròCách họ sử dụng design system
DesignerDùng trực tiếp UI kit và design token trong công cụ thiết kế để lắp ráp màn hình nhanh chóng, tin tưởng rằng spacing, màu sắc, typography đã đúng sẵn; đóng góp thêm component hoặc variant mới khi phát hiện thiếu sót
EngineerImport component từ component library đã được code, làm theo tài liệu API/prop, và tin tưởng rằng hệ thống đã giải quyết sẵn các vấn đề cross-browser, responsive, và accessibility
Product managerDùng các pattern có sẵn của hệ thống để scope tính năng nhanh và dự đoán được hơn, vì UI đã được bao phủ tốt cần rất ít công sức thiết kế/engineering tùy biến; tham chiếu các pattern đã tài liệu hóa khi viết spec
Content writer / UX writerTuân theo các hướng dẫn về voice, tone, và microcopy gắn với từng component cụ thể (ví dụ: thông báo lỗi trong một field của form nên được diễn đạt như thế nào) để văn bản nhất quán ở mọi nơi component đó được dùng

Vì bốn vai trò này tương tác với cùng một hệ thống nhưng vì những mục đích khác nhau, tài liệu tốt thường được phân lớp: một tham chiếu trực quan nhanh cho designer, tài liệu props/API và code snippet cho engineer, một mô tả “khi nào nên dùng pattern này” cho PM, và hướng dẫn nội dung rõ ràng cho content writer — tất cả cùng mô tả một component nền tảng như nhau.

Bản đồ phần còn lại của roadmap này

Bài giới thiệu này đặt nền cho phần còn lại của roadmap, đi sâu hơn vào từng mảnh đã nhắc ở trên:

Best Practices

Tài liệu tham khảo

Part of the Design System Roadmap knowledge base.

Overview

A design system is the single source of truth that shapes the language and components of a product: the shared rules, principles, and building blocks that make an organization’s digital products look and feel like they came from the same team, even when hundreds of different people are shipping features in parallel. It is tempting to reduce this idea to something tangible — “it’s the Figma file with all our buttons” or “it’s the React component library we npm install” — but a design system is bigger than any single artifact. It is the combination of:

A component library or a UI kit is produced by a design system, but it is only the visible tip of it. The real value of a design system lives in the decisions and rationale it encodes — decisions that let a designer and an engineer, who have never spoken to each other, independently arrive at the same solution for the same problem.

Why design systems exist

Design systems are not built for their own sake; they exist to solve real, expensive problems that show up as a product and its team grow.

Problem without a design systemHow a design system solves it
Every team reinvents buttons, forms, and modals slightly differentlyShared components mean one implementation, reused everywhere — consistency at scale
Designers and engineers move slowly because every screen starts from a blank canvasReady-made components and patterns let teams assemble screens instead of inventing them — higher design and development velocity
The product looks “off-brand” or inconsistent after a few years of feature growthCentralized tokens and guidelines keep visual language coherent, drastically reducing the cost of a full redesign later
New hires take months to understand “how we build UI here”A documented system with rationale and examples shortens onboarding from months to weeks
Multiple products under one company feel like unrelated appsA shared system enforces brand cohesion across an entire product portfolio
Accessibility fixes are repeated (and re-broken) in every featureAccessibility is solved once, in the component, and inherited by every consumer

The common thread across all of these is leverage: a design system turns a one-time investment (defining a button correctly, with all its states, once) into a reusable asset that pays off every time a team ships something new. Without it, quality and consistency degrade as a company scales, because more people are making independent decisions with no shared reference point.

Fundamentals

Design system vs. component library vs. UI kit vs. pattern library

These four terms are used interchangeably in casual conversation, but they refer to different — and unequal — things. Understanding the distinction matters because teams often think they have “a design system” when what they actually have is just one of its outputs, missing the principles, tokens, and governance that make it durable.

TermWhat it actually isLives inScope
Design systemThe complete, holistic set of principles, tokens, components, patterns, documentation, and governance processBoth design tools and code, plus written documentationOrganization-wide; the source of truth
Component libraryThe coded implementation of the system’s components (e.g., a React or Vue package)Code repositories, package registriesEngineering-facing subset of the design system
UI kitThe design-tool equivalent of a component library (e.g., a Figma file with matching components/styles)Design tools (Figma, Sketch)Design-facing subset of the design system
Pattern libraryA catalog of recurring UI compositions (e.g., “login flow”, “empty state”, “data table with filters”) built from componentsDocumentation site, sometimes code snippetsHigher-level than a single component; shows components working together

So a component library and a UI kit are the code-side and design-side outputs of a design system, respectively — they are artifacts of the system, not the system itself. A pattern library sits one level above components, capturing recurring combinations of them. A design system is the umbrella that unifies all of these outputs with a rationale for why they exist and rules for how they should be used and evolved.

Atomic design methodology

Brad Frost’s atomic design methodology is the mental model most design systems use to organize components by increasing complexity, borrowing its metaphor from chemistry: atoms combine into molecules, molecules combine into organisms, and so on. It gives teams a shared vocabulary for talking about “how small or how composed” a piece of UI is, which in turn clarifies where a new component should live and how reusable it should be.

LevelDefinitionConcrete example
AtomsThe smallest, indivisible UI elements — cannot be broken down further without losing their functionA text input, a label, a button, a color token, an icon
MoleculesA small group of atoms functioning together as a single unitA search form: a text input + a submit button + a label, combined to do one job — “search”
OrganismsA relatively complex, distinct section of an interface composed of molecules and/or atomsA search results header: the search molecule + filter controls + a results count + sort dropdown, all working together as one section
TemplatesPage-level layouts that place organisms into a structure, using placeholder content to show content structure, not final contentA search results page skeleton: header organism at the top, a sidebar organism for filters, and a results-list organism in the main area
PagesTemplates filled with real content and real data — the actual, final rendered screen a user seesThe live search results page for the query “wireless keyboard”, with real product data plugged into the template

Walking through the example end to end: a text input atom is meaningless on its own — it just accepts text. Combine it with a button atom and a <label> and you get the search form molecule, which now has a single clear purpose. Combine that molecule with a results counter, sort control, and filter chips, and you get the search results header organism — a self-contained section of the page. Multiple organisms (the header, a filter sidebar, a results grid, a footer) arranged into a layout become a template, and once that template is populated with actual search results, it becomes a page. This ladder is precisely why atomic design is so widely adopted: it gives engineers and designers a shared, unambiguous way to decide “is this a new atom, or is it a composition of existing atoms?” — which prevents both needless duplication and overly rigid, monolithic components.

Key Concepts

Real-world design system examples

Studying established design systems is one of the fastest ways to understand what “good” looks like, because each was built to solve a slightly different problem at a different scale, and each makes different, instructive trade-offs.

Design systemCompanyWhat makes it notable
Material DesignGoogleOne of the most complete public design systems; defines not just components but a full design philosophy (elevation, motion, tactile surfaces) applied consistently across Android, web, and Google’s own products
Atlassian Design SystemAtlassianStrong emphasis on content design and accessibility guidance alongside components; well-documented rationale for why each pattern exists, not just how to use it
Carbon Design SystemIBMBuilt for complex, data-dense enterprise software; strong focus on accessibility compliance (Section 508/WCAG) and support for many frameworks (React, Angular, Vue, Web Components)
PolarisShopifyOptimized for a large ecosystem of third-party app developers building inside Shopify’s admin; heavy investment in content guidelines so thousands of external developers write UI copy consistently
Ant DesignAlibaba/communityPopular open-source system for enterprise, data-heavy web applications; large ready-made component set that accelerated adoption in the React ecosystem, especially in China and admin-dashboard tooling

The common thread across all five is that none of them is “just a component library.” Each pairs its components with a documented philosophy (Material’s elevation and motion principles, Atlassian’s and Polaris’s content guidelines, Carbon’s accessibility commitments) and a public rationale for why the system looks and behaves the way it does. That documented “why” is what lets thousands of engineers and designers who will never meet each other still build consistent, on-brand, accessible UI — which is the entire point of having a design system in the first place.

Who uses a design system

A design system is a cross-functional product in its own right, and different roles depend on it for different reasons — understanding this helps explain why a design system’s documentation must speak to more than just “how do I import this component.”

RoleHow they use the design system
DesignersUse the UI kit and design tokens directly in design tools to compose screens quickly, trusting that spacing, color, and typography are already correct; contribute new components or variants back when a gap is found
EngineersImport components from the coded component library, follow API/prop documentation, and rely on the system to have already solved cross-browser, responsive, and accessibility concerns
Product managersUse the system’s existing patterns to scope features faster and more predictably, since well-covered UI needs little custom design or engineering effort, and reference documented patterns when writing specs
Content writers / UX writersFollow voice, tone, and microcopy guidelines tied to specific components (e.g., how error messages should be phrased in a form field) so that text is consistent everywhere the component is used

Because these four roles interact with the same system for different purposes, good documentation typically layers information: a quick visual reference for designers, a props/API reference and code snippets for engineers, a “when to use this pattern” narrative for PMs, and explicit content guidelines for writers — all describing the same underlying component.

A map of the rest of this roadmap

This introduction sets the stage for the rest of the roadmap, which goes deeper into each of the pieces mentioned above:

Best Practices

References