FREE Sample - UI Design Systems Mastery (2024
FREE Sample - UI Design Systems Mastery (2024
ut
to
n
B
ut
to
n
h1
h2
h3
UI Design
Free
Sam
Systems Mastery
ple
Marina Budarina
Nice to see you!
That’s me!
And here is my
@marina_uiux
feedback after reading this sample. I’m constantly looking for ways
Introduction 08
History 19
What is a Design System 27
Definition 28
Parts of the system 30
Examples 40
Do you need a design system? 43
Benefits 44
Challenges 45
Signs that you need a Design System 46
What to consider? 47
Terms confusions 50
“Component” vs “Pattern” library 51
“UI kit” vs “Design system” 51
Important notes 57
Audit 58
Table of contents 02
What is a design audit? 59
From where to start? 59
The ways you can do the audit 60
How to organize and categorize? 60
Audit checklist 65
Understanding problems and needs 67
Setting goals and framing the system 69
Design system team 72
How big should the team be? 73
Team roles 73
Team types 75
From where to start 76
Design system principles and rules 79
How to define principles? 80
Suggestions 81
Part 3 - Foundations 85
Tokens 86
What are design tokens? 87
When should you and shouldn’t use tokens? 90
Tokens’ benefits 91
Token types 93
Naming conventions 95
Table of contents 03
Naming conventions
Colors 103
Accessibility 126
Tokens 131
Typography 142
Table of contents 04
Creating Figma text styles 166
Documentation 176
Spacing 180
Breakpoints 197
Table of contents 05
Naming conventions 227
Scalability 228
Documentation 230
Components 232
Templates 262
Pages 264
Documentation 269
Table of contents 06
Part 06 - Implementation & scaling 286
Tokens
Everyone out there is talking about tokens, and it’s for a reason.
Table of contents
Tokens’ benefit
Tokens implementation
Tokens 86
What are design tokens?
Tokens 87
Value Token
#FA4083 color-primary
pink-500 cta-background-color
Name black-900
Tokens 88
And as there can be several names - several levels of abstraction
(we will cover that in the token types part) - there can be several
shells (naming layers), which won’t change the essence - the raw
value itself.
Component-specific Name
Alias Name
Global Name
Raw value
Tokens 89
Token types
Tokens can take different levels in the hierarchy. Therefore, the way
to organize and structure a token system will depend on how many
levels of abstraction you would like to have.
Component color-background-button
ity
Alias color-cta
ific
ec
Sp
Global pink-500
Reach
Raw values.
These are the raw values in code, such as color values (HEX, rgba),
absolute and relative length & size units, percentages, numbers,
etc. These are not tokens.
Global tokens.
All design foundations start with a global design token and a value.
This single token is later inherited to alias tokens representing a
specific context or abstraction in a design.
Tokens 93
global tokens refer to “what they are.”
All design foundations start with a global design token and a value.
#FA4083 pink-500
Alias tokens.
pink-500 color-cta
color-notification
Component-specific.
component. They often inherit from alias tokens but are named in
color-cta color-button-primary-bg
Token types are your guiding force for naming. However, you can
use a different logic as long as others will understand it too.
Naming conventions
The key to a design token structure is consistency. We must use a
predictable naming convention so design system users can easily
find tokens and scale the system.
Item/Component.
Category.
Property/Type/Usage.
heading, etc.
Item/Component.
Sub-Item/Variant.
State.
color-background-button-primary-active
property sub-item
Or can be shortened:
color-bg-btn-primary-active
property sub-item
Tokens 96
Key takeaways
Tokens are the smallest building blocks of the system,
and include sizing, spacing, color, typography, shadows,
rounding, animation and others
Tokens 102
chapter 13
Colors
Colors can impact all areas of the design system. Hence, we
should set it first. Then, before the UI stage - for wireframes and
Setting color styles is a must, even if you don't (and won't) have a
Table of contents
Colors psycholog
Accessibilit
Colors 103
Glossary of terms
Before we get into the topic, I want to ensure we are on the same
line. Let's cover some terms.
HSL: (hue, saturation, lightness) is the alternative representation of
the RGB color model. I will refer to this color space when we get to
the practical part.
Hue: means color, pure color (while a tint is hue+white, and shade
is hue+dark).
Lightness: define how white the color is, ranging from pure black
[100%] to white [0%]
Colors 104
Base color: primary color in the extended pallet.
Duolingo
Airbnb
Colors 105
Creating tints and shades
We created a base color palette by choosing primary, secondary,
feedback, and neutral colors, but we need more. We need
additional tints and shades of the base color to cover different use
cases.
I'll show you several methods for creating an extended color pallet.
Colors 113
Automated way: use a plugin
As an example, I will use our primary color. But first, let's follow the
steps:
1. Take your base color — which will be in the middle between
your tints and shades.
2. Run the “Color, Tint & Shade” generator plugin, input your
base color hex value and generate the pallet. Here I’m using
Figma.
3. Add or tweak shades. For me, the lightest tint is still dark; I would
add one lighter shade. But you can tweak existing tints.
#356BF8
Colors 114
Manual way: play with lightness
Here we will play with lightness and saturation.
1. Take your base color — the first step is the same.
2. Create tints. Add ~ +10 to the lightness value.
3. Create shades. Subtract ~ +10 from the lightness value.
Pro tip 1: increase saturation as you get further from the base
color (~50% lightness).
S:70 L:90 S:70 L:70 S:50 L:50 S:60 L:30 S:90 L:10
we don't need to increase it even more, though you can play with it.
make it darker.
Sometimes it’s good to change the hue, to make sure that your
H:51 L:90 H:51 L:70 H:51 L:50 H:51 L:30 H:51 L:20
H:55 L:90 H:53 L:70 H:51 L:50 H:45 L:30 H:40 L:20
direction:
Colors 116
H:42 L:90 H:47 L:70 H:51 L:50 H:56 L:30 H:57 L:20
Create grayscale
I already showed how you could create neutral colors from your
Now let’s create a grayscale from it. Use the same manual
Colors 117
S:20 L:8 S:15 L:18 S:12 L:28 S:11 L:38 S:8 L:50
S:10 L:60 S:12 L:70 S:14 L:80 S:16 L:90 S:20 L:98
tailwind CSS color library. Do you want a slight hint of blue to bring
Colors 118
Naming conventions
Clear naming is a must for communication: using names like
‘primary color’ is more straightforward than some hardcoded
values (#EC4899). Agree?
Global naming
If your project is small & you are going to have only a few themes,
you can go ahead with global semantic naming.
Colors 119
Create color styles.
We created a pallet; now it’s time to turn them into styles. Again, I
use Figma, but you can apply this technique to any other tool.
Colors 121
Rename Primary/000 to Primary/50. Select all layers again and run
the “Styler” plugin. Click generate styles. Done!
Colors 122
Limit tint and shade quantity
You don't need 50 different shades of gray. This will only create a
paradox of choice where you won't be sure which gray to choose
for other use cases. So instead, aim for about 6-10 and use them
intentionally and consistently across all of your components.
For example, I use neutral 600/500 for secondary text, neutral 900
for headings, 200/300 for dividers and borders, 50/00 for
backgrounds, neutral 400 for secondary text in dark mode, etc.
00 900
300
600
Resend code in 0:58 Resend code in 0:58
500
Continue 600 Continue
The same goes for other colors as well. Consider use cases, and
that depends specifically on your project. A good example is an
alert component, where the darkest shade [900] can be used for
the text, while the lightest [50] is for the background. You can
practice such a component when creating tints and shades.
Though the final solution will depend on the style you’re going with,
here is an example, and both options are good:
Colors 123
alert component, where the darkest shade [900] can be used for
the text, while the lightest [50] is for the background. You can
practice such a component when creating tints and shades.
Though the final solution will depend on the style you’re going with,
here is an example, and both options are good:
Pro tip 1: I usually go with 9-10 shades for primary and neutral
pallets since I also design for dark mode. For small projects, six
shades might be enough. Just be intentional in your choices.
Pro tip 2: It might happen that you don’t need too many shades
of feedback or accent colors, then you can trim your pallet up to
5-6 colors: light shades will go for backgrounds, while shades
besides the base color are for different states: hover, selected, etc.
Colors 125
Color tokens
Reminder: Design Tokens are used in place of hardcoded values
to build and maintain a scalable, consistent design system.
Colors 131
Done. Congrats, you’ve made your first tokens:)
In the same way, you can update tokes by importing styles again:
It also works the opposite way - you can update tokens in the
plugin and export them - it will update your styles.
Colors 132
Creating alias tokens.
system.
color-text-base neutral-900
color-text-subdued neutral-600
color-text-accent blue-600
So we refer to a global token and take the raw value from it. This
neutral-600
color-text-subdued
neutral-500
Colors 133
Or, if you have several themes, you don't have to change the
pink-600
color-text-accent
blue-600
Colors 134
Key takeaways
Colors can impact all areas of the design system. So
setting color styles is a must, even if you don't (and
won't) have a complete design system
Tokens 140
Homework
Create your base pallet by choosing primary, secondary,
and feedback colors
Tokens 141
chapter 20
Variables
released Variables.
Table of contents
Types of Variable
Types of Token
Color variable
Number variable
String variable
Boolean variable
Variables 309
What are Variables?
Variables store reusable values that can be applied to all kinds of
design properties and prototyping actions.
They help save time and effort when building designs, managing
design systems, and creating complex prototyping flows.
For now, there are two main ways to use variables in Figma
Designs and design system
Advanced prototyping
In the 1st case, variables act as Figma native design tokens. They
are named entities that store values — like fill colors, padding,
visibility, and more — that can be reused throughout designs.
Variables 310
Variables, AKA Tokens
Advanced prototyping,
using Variables
Variables 311
Types of Variables
instances
In V.2 is coming
Imag
Typography
number
color
string
boolean
Types of Tokens
We have previously discussed different types of tokens, including
global, alias, and component tokens (refer to page 93).
Now, let's take a closer look at these token types from a variables
perspective to clarify any confusion
Semantic
city
Alias color-cta
cifi
Spe
Reach
Variables 313
Organizing variables with
collections, groups & modes
To organize variables and make them easier to find we can create
groups and collections.
314
which allow us to define alternative values & represent the different
contexts of our designs.
Variables 315
Tips for creating variables
Manual method
How to add variables
From the right sidebar, click on the Local Variables section
Click + Create variable
Select a variable type from the dropdown
Give the variable a name in the first column, and a value in the
second column.
Repeat.
4
1
2
3
Variables 316
Group variables
1
2
Variables 317
Pro Tip: to organize variables into a group automatically, when
naming a variable add / to it. Example: “red/50”.
Group created
automatically
Pro Tip: click and drag groups in the sidebar of the Variables
modal to reorder groups.
You can also click and drag groups into other groups to nest them.
Nest groups
drag to
reorder groups
Variables 318
Create and manage variable collections
1
2
3
1
2 4
Now just group them, by changing the group name from “Blue” to
“Color/Blue” and drag other groups inside the “Color”
add / to create
a group
drag other
groups to nest
Variables 320
That’s it for the free sample
I hope you have learned something or have refreshed some of your
knowledge. Feel free to write me any feedback at
[email protected]
Along with the ebook, you will get Figma files and small video tips.
UI Design
Systems Mastery
Advance in your career
Marina Budarina
Did you like this Free sample?
In return to this piece of content,