
@riacarmin
Design Systems
In the wild and at Hopin
Design Systems
UX Engineering
Design thinking and user perspective into code.
Engineering mind into design.

User
Experience
Front-End Engineering
Design Systems
101
🔥🔥🔥

By understanding recurrent design problems in our environment, readers can identify extant patterns in their own design projects and use these patterns to create a language of their own.
“
DESIGN SYSTEM —
is a living collection of patterns, tools, and guidelines to create the unique experience of a product [whatever that is].


fluent / Microsoft


carbon / IBM


lightning / Salesforce

polaris / Shopify

DESIGN SYSTEMS…
give companies a tool for growing their products at speed but also maintaining quality, usability, and brand experience.
shared language across teams to work on products.
#1
guide new members of the team on how to contribute
#2
space that helps you work efficiently​
#3
Architecture
common skeleton
Guiding Principles
Brand Expression
Patterns
Tooling
Special sauce…

symbols
blocks
globals
components
Symbols —
brand primitives.
// Layout
export const MOBILE_MAX = '560px';
export const TABLET_MIN = '561px';
export const TABLET_MAX = '1024px';
export const DESKTOP_MIN = '1025px';
// Colors
export const UTILITY: ColorUtility = {
WARN: ORANGE.DEFAULT,
ACTION: THEME.PRIMARY,
ERROR: RED.DEFAULT,
SUCCESS: GREEN.DEFAULT,
};
// Line
export const RADIUS = {
SMALL: RADIUS_SM,
DEFAULT: RADIUS_MD,
MEDIUM: RADIUS_MD,
LARGE: RADIUS_LG,
XLARGE: RADIUS_XL,
ROUND: RADIUS_ROUND,
};
symbols
Blocks —
language of the interface.
// isClickable
import { css } from 'styled-components';
export const isClickable = css`
${area}
&:hover {
background-color: ${({ theme }) =>
getFromTheme('COLOR.GREY["200"]', theme)};
}
`;
blocks
Globals —
the canvas
import { createGlobalStyle } from 'styled-components';
const { body } = TYPOGRAPHY;
const { link } = INTERACTIVE;
const { field, hasErrors } = FORM;
export const GlobalStyles = createGlobalStyle<{ theme: Symbols }>`
*,
*:before,
*:after {
box-sizing: border-box;
}
html {
margin: 0;
padding: 0;
text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
margin: 0;
padding: 0;
${body}
color: ${({ theme }) => getFromTheme('COLOR.GREY.DARK', theme)};
}
`
blocks
Components —
collection of UI patterns
USAGE
PURPOSE
Ubiquitous
Unique
Broad
Narrow
Form
THEMATICALLY
Content
Attention
Layout
Navigation
…
flat
inheritance


The end.

Design Systems: In the wild and at Hopin
By Ria Carmin
Design Systems: In the wild and at Hopin
Introduction to Design Systems
- 464