SlideShare a Scribd company logo
Building full-proof design tokens to
support Kiwi.com’s visual identity
Luděk Vepřek
@elvepor
Luděk Vepřek
• Frontend Developer at Kiwi.com
• Working on our Design System called Orbit
• 5+ years of experience with design and frontend development
• I used to be a graphic designer
Kiwi.com is fast growing company
How might we support our product teams to be able to
deliver new projects quickly and in perfect quality?
Main challenge
Cross-platform design system
that supports different brands
The solution
Collection of guidelines and components synchronized
between different teams and platforms
What is a design system?
• be customizable for more than 25 B2B partners
• being able to change Kiwi.com’s visual look easily in the near future
Our requirements
Design Tokens
The solution
Design tokens are atomic pieces that store visual design attributes.
We could define them in: SASS, JSON, JS and other formats.
What are design tokens?
Every token name starts with its related CSS property, like color,
background or font-size. This help us to use them more naturally.
property_usage-type--state
propertyUsageTypeState: value
We also divided tokens into two types: generic and specific
Naming taxonomy
const tokens = {
// font-family
fontFamily: value,
// colors
colorTextPrimary: value,
colorTextSecondary: value,
colorTextAttention: value,
// font-size
fontSizeTextNormal: value,
fontSizeTextLarge: value,
fontSizeTextSmall: value,
};
Generic design tokens
Component specific design tokens
Design tokens are like variables, but they are more than that.
They are visual design attributes that are stored & centralised,
organised and propagated.
const tokens = {
// font-family
fontFamily: "Roboto",
// colors
colorTextPrimary: "#46515e",
colorTextSecondary: "#7f91a8",
colorTextAttention: "#7f91a8",
// font-size
fontSizeTextSmall: "12px",
fontSizeTextNormal: "14px",
fontSizeTextLarge: "16px",
};
Defining our first tokens
const tokens = {
// font-family
fontFamily: "Roboto",
// colors
colorTextPrimary: palette.ink.normal,
colorTextSecondary: palette.ink.light,
colorTextAttention: palette.ink.dark,
// font-size
fontSizeTextSmall: "12px",
fontSizeTextNormal: "14px",
fontSizeTextLarge: "16px",
};
Defining a color palette
const tokens = {
// font-family
fontFamily: foundation.base.fontFamily,
// colors
colorTextPrimary: foundation.palette.ink.normal,
colorTextSecondary: foundation.palette.ink.light,
colorTextAttention: foundation.palette.ink.dark,
// font-size
fontSizeTextSmall: foundation.base.fontSizeSm,
fontSizeTextNormal: foundation.base.fontSizeMd,
fontSizeTextLarge: foundation.base.fontSizeLg,
};
Defining a foundation
What do we have in our foundation?
• 23 colors (we have hover/active colors also = 55 colors)
• 37 base tokens:
• fontFamily, fontWeight, fontSize, borderRadius, sizing, spacing,
opacity, transitions, lineHeight and boxShadows
Branding requirements
By definition of foundation, it’s pretty easy to add functionality in Javascript
to be able support branding.
Branding function
import { palette, base } from "./foundation"
function getTokens(custom) {
// merge defaults with custom
const foundation = {
palette: Object.assign({}, palette, custom.palette),
base: Object.assign({}, base, custom.base),
};
return {
// font-size
fontSizeButtonSmall: foundation.base.fontSizeSm, // 12px
fontSizeTextSmall: foundation.base.fontSizeSm, // 12px
...
};
Branding function
const brand = {
base: {
fontSizeSm: "10px",
},
};
const tokens = getTokens(brand);
console.log(tokens); // what will be the output?
The result
tokens = {
fontSizeButtonSmall: "10px", // 12px before
fontSizeTextSmall: "10px", // 12px before
...
}
This offers us possibility to…
Single source of truth for visual design
getTokens()
Single source of truth for visual design
getTokens()
Single source of truth for visual design
getTokens()
Summary
Design tokens can help us:
• to be able to change Kiwi.com's visual look easily
• to be able to adjust our product for different partners
• keep visual design consistent across different platforms
The best thing?
All that is managed from one place!
Thank you for your attention.
Any questions?
Luděk Vepřek
@elvepor

More Related Content

Similar to Building full-proof design tokens to support Kiwi.com's visual identity

Responsive Web Design & Typography
Responsive Web Design & TypographyResponsive Web Design & Typography
Responsive Web Design & Typography
Danny Calders
 
Write LESS. DO more.
Write LESS. DO more.Write LESS. DO more.
Write LESS. DO more.
Eugene Nor
 
Design for developers (april 25, 2017)
Design for developers (april 25, 2017)Design for developers (april 25, 2017)
Design for developers (april 25, 2017)
Thinkful
 
Team styles
Team stylesTeam styles
Team styles
nathanscott
 
Responsive Process HOW Interactive
Responsive Process HOW InteractiveResponsive Process HOW Interactive
Responsive Process HOW Interactive
Steve Fisher
 
2h landing page
2h landing page 2h landing page
2h landing page
AndryRajohnson
 
Bridging the gap between designers and developers at theguardian.com
Bridging the gap between designers and developers at theguardian.comBridging the gap between designers and developers at theguardian.com
Bridging the gap between designers and developers at theguardian.com
Kaelig Deloumeau-Prigent
 
The Language of the Web - HTML and CSS
The Language of the Web - HTML and CSSThe Language of the Web - HTML and CSS
The Language of the Web - HTML and CSS
kcasavale
 
WEB DEVELOPMENT
WEB DEVELOPMENTWEB DEVELOPMENT
WEB DEVELOPMENT
Gourav Kaushik
 
Introducing J2ME Polish
Introducing J2ME PolishIntroducing J2ME Polish
Introducing J2ME Polish
Adam Cohen-Rose
 
Shaping Up Theme Roller Beyond Universal Theme
Shaping Up Theme Roller Beyond Universal ThemeShaping Up Theme Roller Beyond Universal Theme
Shaping Up Theme Roller Beyond Universal Theme
Insum Solutions
 
Creating a CSS and JS design system from the ground up
Creating a CSS and JS design system from the ground upCreating a CSS and JS design system from the ground up
Creating a CSS and JS design system from the ground up
Andrew Dover
 
WEB and FONTS
WEB and FONTSWEB and FONTS
WEB and FONTS
growyourbaby
 
presentation
presentationpresentation
presentation
Mart Bosch
 
ActiveTM - A Topic Maps - Object Mapper
ActiveTM - A Topic Maps - Object MapperActiveTM - A Topic Maps - Object Mapper
ActiveTM - A Topic Maps - Object Mapper
tmra
 
Xuedong Huang - Deep Learning and Intelligent Applications
Xuedong Huang - Deep Learning and Intelligent ApplicationsXuedong Huang - Deep Learning and Intelligent Applications
Xuedong Huang - Deep Learning and Intelligent Applications
Machine Learning Prague
 
Design stunning user experience with expression blend
Design stunning user experience with expression blendDesign stunning user experience with expression blend
Design stunning user experience with expression blend
Kosala Nuwan Perera
 
Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...
Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...
Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...
Codemotion
 
Omeka css
Omeka cssOmeka css
Managing and Using Assets in Rich Flash Experiences
Managing and Using Assets in Rich Flash ExperiencesManaging and Using Assets in Rich Flash Experiences
Managing and Using Assets in Rich Flash Experiences
David Ortinau
 

Similar to Building full-proof design tokens to support Kiwi.com's visual identity (20)

Responsive Web Design & Typography
Responsive Web Design & TypographyResponsive Web Design & Typography
Responsive Web Design & Typography
 
Write LESS. DO more.
Write LESS. DO more.Write LESS. DO more.
Write LESS. DO more.
 
Design for developers (april 25, 2017)
Design for developers (april 25, 2017)Design for developers (april 25, 2017)
Design for developers (april 25, 2017)
 
Team styles
Team stylesTeam styles
Team styles
 
Responsive Process HOW Interactive
Responsive Process HOW InteractiveResponsive Process HOW Interactive
Responsive Process HOW Interactive
 
2h landing page
2h landing page 2h landing page
2h landing page
 
Bridging the gap between designers and developers at theguardian.com
Bridging the gap between designers and developers at theguardian.comBridging the gap between designers and developers at theguardian.com
Bridging the gap between designers and developers at theguardian.com
 
The Language of the Web - HTML and CSS
The Language of the Web - HTML and CSSThe Language of the Web - HTML and CSS
The Language of the Web - HTML and CSS
 
WEB DEVELOPMENT
WEB DEVELOPMENTWEB DEVELOPMENT
WEB DEVELOPMENT
 
Introducing J2ME Polish
Introducing J2ME PolishIntroducing J2ME Polish
Introducing J2ME Polish
 
Shaping Up Theme Roller Beyond Universal Theme
Shaping Up Theme Roller Beyond Universal ThemeShaping Up Theme Roller Beyond Universal Theme
Shaping Up Theme Roller Beyond Universal Theme
 
Creating a CSS and JS design system from the ground up
Creating a CSS and JS design system from the ground upCreating a CSS and JS design system from the ground up
Creating a CSS and JS design system from the ground up
 
WEB and FONTS
WEB and FONTSWEB and FONTS
WEB and FONTS
 
presentation
presentationpresentation
presentation
 
ActiveTM - A Topic Maps - Object Mapper
ActiveTM - A Topic Maps - Object MapperActiveTM - A Topic Maps - Object Mapper
ActiveTM - A Topic Maps - Object Mapper
 
Xuedong Huang - Deep Learning and Intelligent Applications
Xuedong Huang - Deep Learning and Intelligent ApplicationsXuedong Huang - Deep Learning and Intelligent Applications
Xuedong Huang - Deep Learning and Intelligent Applications
 
Design stunning user experience with expression blend
Design stunning user experience with expression blendDesign stunning user experience with expression blend
Design stunning user experience with expression blend
 
Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...
Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...
Avoiding Checkmate: Strategies for Design Systems - Stephanie Rewis - Codemot...
 
Omeka css
Omeka cssOmeka css
Omeka css
 
Managing and Using Assets in Rich Flash Experiences
Managing and Using Assets in Rich Flash ExperiencesManaging and Using Assets in Rich Flash Experiences
Managing and Using Assets in Rich Flash Experiences
 

More from Czech Design Systems Community

Making Kiwi.com's design system accessible
Making Kiwi.com's design system accessibleMaking Kiwi.com's design system accessible
Making Kiwi.com's design system accessible
Czech Design Systems Community
 
How we sold design systems to internal team and then to our clients
How we sold design systems to internal team and then to our clientsHow we sold design systems to internal team and then to our clients
How we sold design systems to internal team and then to our clients
Czech Design Systems Community
 
Exploration of the new visual look for Seznam.cz products and services
Exploration of the new visual look for Seznam.cz products and servicesExploration of the new visual look for Seznam.cz products and services
Exploration of the new visual look for Seznam.cz products and services
Czech Design Systems Community
 
How we handled breaking changes when our design system changed
How we handled breaking changes when our design system changedHow we handled breaking changes when our design system changed
How we handled breaking changes when our design system changed
Czech Design Systems Community
 
Design Systems Digest – June 2019
Design Systems Digest – June 2019Design Systems Digest – June 2019
Design Systems Digest – June 2019
Czech Design Systems Community
 
Building strong visual foundations for your design system
Building strong visual foundations for your design systemBuilding strong visual foundations for your design system
Building strong visual foundations for your design system
Czech Design Systems Community
 
Three pillars of components in the design system
Three pillars of components in the design systemThree pillars of components in the design system
Three pillars of components in the design system
Czech Design Systems Community
 
CSS for design systems
CSS for design systemsCSS for design systems
CSS for design systems
Czech Design Systems Community
 
Workshop – UI audit of Mall.cz – May 2019, Brno
Workshop – UI audit of Mall.cz – May 2019, BrnoWorkshop – UI audit of Mall.cz – May 2019, Brno
Workshop – UI audit of Mall.cz – May 2019, Brno
Czech Design Systems Community
 
Mobile design system in Figma for Kiwi.com
Mobile design system in Figma for Kiwi.comMobile design system in Figma for Kiwi.com
Mobile design system in Figma for Kiwi.com
Czech Design Systems Community
 
Coding reusable components for MUNI
Coding reusable components for MUNICoding reusable components for MUNI
Coding reusable components for MUNI
Czech Design Systems Community
 
Design system for new O2 CRM and web apps
Design system for new O2 CRM and web appsDesign system for new O2 CRM and web apps
Design system for new O2 CRM and web apps
Czech Design Systems Community
 
Component-based Design System and Development - CzechDSC
Component-based Design System and Development - CzechDSCComponent-based Design System and Development - CzechDSC
Component-based Design System and Development - CzechDSC
Czech Design Systems Community
 

More from Czech Design Systems Community (13)

Making Kiwi.com's design system accessible
Making Kiwi.com's design system accessibleMaking Kiwi.com's design system accessible
Making Kiwi.com's design system accessible
 
How we sold design systems to internal team and then to our clients
How we sold design systems to internal team and then to our clientsHow we sold design systems to internal team and then to our clients
How we sold design systems to internal team and then to our clients
 
Exploration of the new visual look for Seznam.cz products and services
Exploration of the new visual look for Seznam.cz products and servicesExploration of the new visual look for Seznam.cz products and services
Exploration of the new visual look for Seznam.cz products and services
 
How we handled breaking changes when our design system changed
How we handled breaking changes when our design system changedHow we handled breaking changes when our design system changed
How we handled breaking changes when our design system changed
 
Design Systems Digest – June 2019
Design Systems Digest – June 2019Design Systems Digest – June 2019
Design Systems Digest – June 2019
 
Building strong visual foundations for your design system
Building strong visual foundations for your design systemBuilding strong visual foundations for your design system
Building strong visual foundations for your design system
 
Three pillars of components in the design system
Three pillars of components in the design systemThree pillars of components in the design system
Three pillars of components in the design system
 
CSS for design systems
CSS for design systemsCSS for design systems
CSS for design systems
 
Workshop – UI audit of Mall.cz – May 2019, Brno
Workshop – UI audit of Mall.cz – May 2019, BrnoWorkshop – UI audit of Mall.cz – May 2019, Brno
Workshop – UI audit of Mall.cz – May 2019, Brno
 
Mobile design system in Figma for Kiwi.com
Mobile design system in Figma for Kiwi.comMobile design system in Figma for Kiwi.com
Mobile design system in Figma for Kiwi.com
 
Coding reusable components for MUNI
Coding reusable components for MUNICoding reusable components for MUNI
Coding reusable components for MUNI
 
Design system for new O2 CRM and web apps
Design system for new O2 CRM and web appsDesign system for new O2 CRM and web apps
Design system for new O2 CRM and web apps
 
Component-based Design System and Development - CzechDSC
Component-based Design System and Development - CzechDSCComponent-based Design System and Development - CzechDSC
Component-based Design System and Development - CzechDSC
 

Recently uploaded

Virtual Tour Application Powerpoint for museum of edinburgh
Virtual Tour Application Powerpoint for museum of edinburghVirtual Tour Application Powerpoint for museum of edinburgh
Virtual Tour Application Powerpoint for museum of edinburgh
millarj46
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
Knight Moves
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
Virtual Real Design
 
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
7sd8fier
 
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptxUNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
GOWSIKRAJA PALANISAMY
 
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
9a93xvy
 
Connect Conference 2022: Passive House - Economic and Environmental Solution...
Connect Conference 2022: Passive House -  Economic and Environmental Solution...Connect Conference 2022: Passive House -  Economic and Environmental Solution...
Connect Conference 2022: Passive House - Economic and Environmental Solution...
TE Studio
 
Heuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdfHeuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdf
Jaime Brown
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
talaatahm
 
Impact of Fonts: in Web and Apps Design
Impact of Fonts:  in Web and Apps DesignImpact of Fonts:  in Web and Apps Design
Impact of Fonts: in Web and Apps Design
contactproperweb2014
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
kecekev
 
Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1
Decomart Studio
 
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
jyz59f4j
 
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
9a93xvy
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
garcese
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
ameli25062005
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
lunaemel03
 
Branding de la empresa de Bolt- 2024.pdf
Branding de la empresa de Bolt- 2024.pdfBranding de la empresa de Bolt- 2024.pdf
Branding de la empresa de Bolt- 2024.pdf
PabloMartelLpez
 
Revolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in IndiaRevolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in India
amrsoftec1
 

Recently uploaded (20)

Virtual Tour Application Powerpoint for museum of edinburgh
Virtual Tour Application Powerpoint for museum of edinburghVirtual Tour Application Powerpoint for museum of edinburgh
Virtual Tour Application Powerpoint for museum of edinburgh
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
 
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
一比一原版(MMU毕业证书)曼彻斯特城市大学毕业证成绩单如何办理
 
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptxUNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
 
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
一比一原版(CITY毕业证书)谢菲尔德哈勒姆大学毕业证如何办理
 
Connect Conference 2022: Passive House - Economic and Environmental Solution...
Connect Conference 2022: Passive House -  Economic and Environmental Solution...Connect Conference 2022: Passive House -  Economic and Environmental Solution...
Connect Conference 2022: Passive House - Economic and Environmental Solution...
 
Heuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdfHeuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdf
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
 
Impact of Fonts: in Web and Apps Design
Impact of Fonts:  in Web and Apps DesignImpact of Fonts:  in Web and Apps Design
Impact of Fonts: in Web and Apps Design
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
 
Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1
 
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
 
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
一比一原版(RHUL毕业证书)伦敦大学皇家霍洛威学院毕业证如何办理
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
 
20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf20 slides of research movie and artists .pdf
20 slides of research movie and artists .pdf
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
 
Branding de la empresa de Bolt- 2024.pdf
Branding de la empresa de Bolt- 2024.pdfBranding de la empresa de Bolt- 2024.pdf
Branding de la empresa de Bolt- 2024.pdf
 
Revolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in IndiaRevolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in India
 

Building full-proof design tokens to support Kiwi.com's visual identity

  • 1. Building full-proof design tokens to support Kiwi.com’s visual identity Luděk Vepřek @elvepor
  • 2. Luděk Vepřek • Frontend Developer at Kiwi.com • Working on our Design System called Orbit • 5+ years of experience with design and frontend development • I used to be a graphic designer
  • 3. Kiwi.com is fast growing company
  • 4. How might we support our product teams to be able to deliver new projects quickly and in perfect quality? Main challenge
  • 5. Cross-platform design system that supports different brands The solution
  • 6. Collection of guidelines and components synchronized between different teams and platforms What is a design system?
  • 7. • be customizable for more than 25 B2B partners • being able to change Kiwi.com’s visual look easily in the near future Our requirements
  • 9. Design tokens are atomic pieces that store visual design attributes. We could define them in: SASS, JSON, JS and other formats. What are design tokens?
  • 10. Every token name starts with its related CSS property, like color, background or font-size. This help us to use them more naturally. property_usage-type--state propertyUsageTypeState: value We also divided tokens into two types: generic and specific Naming taxonomy
  • 11. const tokens = { // font-family fontFamily: value, // colors colorTextPrimary: value, colorTextSecondary: value, colorTextAttention: value, // font-size fontSizeTextNormal: value, fontSizeTextLarge: value, fontSizeTextSmall: value, }; Generic design tokens
  • 13. Design tokens are like variables, but they are more than that. They are visual design attributes that are stored & centralised, organised and propagated.
  • 14. const tokens = { // font-family fontFamily: "Roboto", // colors colorTextPrimary: "#46515e", colorTextSecondary: "#7f91a8", colorTextAttention: "#7f91a8", // font-size fontSizeTextSmall: "12px", fontSizeTextNormal: "14px", fontSizeTextLarge: "16px", }; Defining our first tokens
  • 15. const tokens = { // font-family fontFamily: "Roboto", // colors colorTextPrimary: palette.ink.normal, colorTextSecondary: palette.ink.light, colorTextAttention: palette.ink.dark, // font-size fontSizeTextSmall: "12px", fontSizeTextNormal: "14px", fontSizeTextLarge: "16px", }; Defining a color palette
  • 16. const tokens = { // font-family fontFamily: foundation.base.fontFamily, // colors colorTextPrimary: foundation.palette.ink.normal, colorTextSecondary: foundation.palette.ink.light, colorTextAttention: foundation.palette.ink.dark, // font-size fontSizeTextSmall: foundation.base.fontSizeSm, fontSizeTextNormal: foundation.base.fontSizeMd, fontSizeTextLarge: foundation.base.fontSizeLg, }; Defining a foundation
  • 17. What do we have in our foundation? • 23 colors (we have hover/active colors also = 55 colors) • 37 base tokens: • fontFamily, fontWeight, fontSize, borderRadius, sizing, spacing, opacity, transitions, lineHeight and boxShadows
  • 19. By definition of foundation, it’s pretty easy to add functionality in Javascript to be able support branding.
  • 20. Branding function import { palette, base } from "./foundation" function getTokens(custom) { // merge defaults with custom const foundation = { palette: Object.assign({}, palette, custom.palette), base: Object.assign({}, base, custom.base), }; return { // font-size fontSizeButtonSmall: foundation.base.fontSizeSm, // 12px fontSizeTextSmall: foundation.base.fontSizeSm, // 12px ... };
  • 21. Branding function const brand = { base: { fontSizeSm: "10px", }, }; const tokens = getTokens(brand); console.log(tokens); // what will be the output?
  • 22. The result tokens = { fontSizeButtonSmall: "10px", // 12px before fontSizeTextSmall: "10px", // 12px before ... }
  • 23. This offers us possibility to…
  • 24. Single source of truth for visual design getTokens()
  • 25. Single source of truth for visual design getTokens()
  • 26. Single source of truth for visual design getTokens()
  • 27. Summary Design tokens can help us: • to be able to change Kiwi.com's visual look easily • to be able to adjust our product for different partners • keep visual design consistent across different platforms The best thing? All that is managed from one place!
  • 28. Thank you for your attention. Any questions? Luděk Vepřek @elvepor