{"id":3545,"date":"2020-03-05T11:55:39","date_gmt":"2020-03-05T10:55:39","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=3545"},"modified":"2020-03-05T11:55:43","modified_gmt":"2020-03-05T10:55:43","slug":"design-tokens-and-cross-platform-coherence-part-2","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/","title":{"rendered":"Design Tokens and Cross Platform Coherence &#8211; Part 2"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-c1f9939c-720b-40bb-93ca-e9d085592f21      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#design-tokens\" class=\"uagb-toc-link__trigger\">Design Tokens<\/a><li class=\"uagb-toc__list\"><a href=\"#start-using-style-dictionary\" class=\"uagb-toc-link__trigger\">Start Using Style Dictionary<\/a><li class=\"uagb-toc__list\"><a href=\"#whats-next\" class=\"uagb-toc-link__trigger\">What&#039;s next?<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p>Design tokens bridge the gap between design and development, allowing teams to keep together indivisible pieces of an interface like colors, font-sizes, spaces, animations. Follow this 3-issue mini serie about design tokens and Danny Banks speech at Codemotion Rome 2019.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Design Tokens<\/h2>\n\n\n\n<p>In the <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/designer-cxo\/design-tokens-and-cross-platform-coherence\/\" class=\"ek-link\">previous issue of this series<\/a> of articles dedicated to design tokens we briefly listed the features that should be offered by a good token design management tool. This tool must be agnostic, structured, and relational. Before going any further and explaining how Style Dictionary, the instrument presented by Danny Banks to Codemotion Rome 2019, works and what it offers, a brief but fundamental in-depth analysis of these characteristics is needed.<\/p>\n\n\n\n<p>Since each design token goes to store a specific information, it is particularly effective to structure those tokens following a criterion similar to the one used in biological classification.<\/p>\n\n\n\n<p>Biological classification defines taxonomic rank, i.e. the relative level of a group of organisms in a hierarchy. In this way, it is possible to go down to more and more specific levels, starting from the domain and then passing through kingdom, phylum, class, order, family, genus, up to arriving at the single species.<\/p>\n\n\n\n<p>In the domain of the (visual and UX) design system can be, therefore, useful to distinguish the realms of &#8220;time&#8221;, &#8220;color&#8221;, and &#8220;size&#8221; and within them create the most appropriate taxonomy for their own purposes. An example of this structure is shown in the image below.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01-1024x576.png\" alt=\"\" class=\"wp-image-3547\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc01.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Representation of a level-structured taxonomy to identify the background color for a success alert <\/figcaption><\/figure><\/div>\n\n\n\n<p>The real effectiveness of a level-structured taxonomy is evident when defining the values of each token through relationships to other tokens. For example, suppose you have 3 different oranges in the reference palette, labeled by the <code>color.core.orange.100<\/code>, <code>color.core.orange.200<\/code>, and <code>color.core.orange.300<\/code> tokens.&nbsp;<\/p>\n\n\n\n<p>Given those reference tokens, you can define a <code>color.brand.primary.base<\/code> token that uses the same color as the value stored by the <code>color.core.orange.100<\/code> token and, at the same time, is able to self-describe its role and purpose. This approach helps to define any kind of token for any use, such as for example <code>color.background.button<\/code> and <code>color.font.link<\/code>.&nbsp; Those specific token can use the value stored or referenced by <code>color.brand.primary.base<\/code> token.<\/p>\n\n\n\n<p>It is clear that, by creating the appropriate relationships, it will be sufficient to make changes that will spread throughout the entire chain of relationships.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-1024x576.png\" alt=\"\" class=\"wp-image-3548\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-1536x863.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02-1200x675.png 1200w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc02.png 1669w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> How to manage relationships between tokens with and without semantic meaning <\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Start Using Style Dictionary<\/h2>\n\n\n\n<p><a href=\"https:\/\/amzn.github.io\/style-dictionary\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" class=\"ek-link\">Style Dictionary<\/a> is a build system for design tokens. It allows to define and edit style properties once and generate relevant snippets for any platform and language. It can be used as CLI application or as a NodeJS module to extend its feature.<\/p>\n\n\n\n<p>Why is it so cool? Keep in mind what we just said about the structural and relational approach to design tokens and let\u2019s see the basic usage example for Style Dictionary.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/elleuca\/d47a21c8a5bc587e94e49913cd87b098.js\"><\/script>\n\n\n\n<p> At the time of writing this article, the basic demo project for Style Dictionary provides some properties in the \u201crealms\u201d of colors and sizes and the ability to build some artifacts for Web (SCSS format), Android (XML resources), and iOS (.H and .M resources) platforms. A copy of demo project is available on <a href=\"https:\/\/github.com\/elleuca\/codemotion-magazine-style-dictionary-basic\" target=\"_blank\" aria-label=\"GitHub (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" class=\"ek-link\">GitHub<\/a>. <\/p>\n\n\n\n<p>Properties are stored in JSON files like the following:<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/elleuca\/e69b682ecf4e516f8f55a6031deb7ce9.js\"><\/script>\n\n\n\n<p> While Category\/Type\/Item structure (CTI structure for short) is not strictly required by Style Dictionary, it is also implicit and based on the nesting of the properties inside the JSON files. So, from the previous <code>base.json<\/code> file, we have defined a <code>color.base.gray.light<\/code> token that stores the value #CCCCCC. We can subsequently use this token as a reference or alias elsewhere in JSON property files. If you look at font.json content, you\u2019ll see that <code>color.font.base.tertiary<\/code> token will use the value stored in&nbsp; <code>color.base.gray.light<\/code>.<\/p>\n\n\n\n<p>Once you have defined or modified the relevant tokens in JSON properties, Style Dictionary build system will read all those files and will perform a so-called \u201cdeep merge\u201d on them to create a single object that will be used to generate the desired artifact files to be consumed in each platform.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03-1024x576.png\" alt=\"\" class=\"wp-image-3550\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/Copia-di-banks-a02-sc03.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Representation of Style Dictionary build chain, from tokens to assets <\/figcaption><\/figure><\/div>\n\n\n\n<p> Style Dictionary offers an effective way to manage token files,&nbsp; but of course it\u2019s up to you to choose the proper way to organize your tokens. A little tip that Danny Banks shared at Codemotion Rome 2019 was about \u201crefactoring\u201d your design decisions. The CTI structure offered by Style Dictionary is really powerful if you have defined as many layers as possible in building relationships between token.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s next?<\/h2>\n\n\n\n<p>In the next article, we\u2019ll take a look at Transform and Format functions. Stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Design tokens bridge the gap between design and development, allowing teams to keep together indivisible pieces of an interface like colors, font-sizes, spaces, animations. Follow this 3-issue mini serie about design tokens and Danny Banks speech at Codemotion Rome 2019. Design Tokens In the previous issue of this series of articles dedicated to design tokens&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\">Read more<\/a><\/p>\n","protected":false},"author":30,"featured_media":3554,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[76],"tags":[4,4257],"collections":[],"class_list":{"0":"post-3545","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-design-ux","8":"tag-codemotion-rome","9":"tag-user-experience","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Design Tokens and Cross Platform Coherence - Part 2 - Codemotion<\/title>\n<meta name=\"description\" content=\"This is the second part of a serie about design tokens and how they bridge the gap between design and development within teams.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Design Tokens and Cross Platform Coherence - Part 2\" \/>\n<meta property=\"og:description\" content=\"This is the second part of a serie about design tokens and how they bridge the gap between design and development within teams.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-05T10:55:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-05T10:55:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1159\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Luca Ferretti\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luca Ferretti\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\"},\"author\":{\"name\":\"Luca Ferretti\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/00344cc4e23bb0758378ab701b57f1a1\"},\"headline\":\"Design Tokens and Cross Platform Coherence &#8211; Part 2\",\"datePublished\":\"2020-03-05T10:55:39+00:00\",\"dateModified\":\"2020-03-05T10:55:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\"},\"wordCount\":783,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg\",\"keywords\":[\"Codemotion Rome\",\"User Experience\"],\"articleSection\":[\"Design\/UX\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\",\"name\":\"Design Tokens and Cross Platform Coherence - Part 2 - Codemotion\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg\",\"datePublished\":\"2020-03-05T10:55:39+00:00\",\"dateModified\":\"2020-03-05T10:55:43+00:00\",\"description\":\"This is the second part of a serie about design tokens and how they bridge the gap between design and development within teams.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg\",\"width\":1159,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Design\/UX\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Design Tokens and Cross Platform Coherence &#8211; Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/00344cc4e23bb0758378ab701b57f1a1\",\"name\":\"Luca Ferretti\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a7c16ad1483e63c6ae25d1370bfab6252a285d959ed68a5e385f98e66f0b420a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a7c16ad1483e63c6ae25d1370bfab6252a285d959ed68a5e385f98e66f0b420a?s=96&d=mm&r=g\",\"caption\":\"Luca Ferretti\"},\"description\":\"Affezionato al caro vecchio C, passato non troppo recentemente alle pi\u00c3\u00b9 arzigogolate frontiere del Web, Luca Ferretti ha da poco scelto il suo motto su Twitter: I break stuff, I build relationships. \u00c3\u02c6 cos\u00c3\u00ac, tra una ispezione del DOM e una apparizione nella stanza accanto per discutere con il team del frontend di un pixel messo storto, tra una traduzione di Ubuntu e un rebuild dei sorgenti di GNOME (rigorosamente di notte), che trascorre le sue giornate nell'incessante ricerca della perfezione ;-)\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/luca-ferretti\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Design Tokens and Cross Platform Coherence - Part 2 - Codemotion","description":"This is the second part of a serie about design tokens and how they bridge the gap between design and development within teams.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Design Tokens and Cross Platform Coherence - Part 2","og_description":"This is the second part of a serie about design tokens and how they bridge the gap between design and development within teams.","og_url":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-03-05T10:55:39+00:00","article_modified_time":"2020-03-05T10:55:43+00:00","og_image":[{"width":1159,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg","type":"image\/jpeg"}],"author":"Luca Ferretti","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Luca Ferretti","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/"},"author":{"name":"Luca Ferretti","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/00344cc4e23bb0758378ab701b57f1a1"},"headline":"Design Tokens and Cross Platform Coherence &#8211; Part 2","datePublished":"2020-03-05T10:55:39+00:00","dateModified":"2020-03-05T10:55:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/"},"wordCount":783,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg","keywords":["Codemotion Rome","User Experience"],"articleSection":["Design\/UX"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/","url":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/","name":"Design Tokens and Cross Platform Coherence - Part 2 - Codemotion","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg","datePublished":"2020-03-05T10:55:39+00:00","dateModified":"2020-03-05T10:55:43+00:00","description":"This is the second part of a serie about design tokens and how they bridge the gap between design and development within teams.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg","width":1159,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/design-tokens-and-cross-platform-coherence-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/"},{"@type":"ListItem","position":3,"name":"Design\/UX","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/"},{"@type":"ListItem","position":4,"name":"Design Tokens and Cross Platform Coherence &#8211; Part 2"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/00344cc4e23bb0758378ab701b57f1a1","name":"Luca Ferretti","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a7c16ad1483e63c6ae25d1370bfab6252a285d959ed68a5e385f98e66f0b420a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a7c16ad1483e63c6ae25d1370bfab6252a285d959ed68a5e385f98e66f0b420a?s=96&d=mm&r=g","caption":"Luca Ferretti"},"description":"Affezionato al caro vecchio C, passato non troppo recentemente alle pi\u00c3\u00b9 arzigogolate frontiere del Web, Luca Ferretti ha da poco scelto il suo motto su Twitter: I break stuff, I build relationships. \u00c3\u02c6 cos\u00c3\u00ac, tra una ispezione del DOM e una apparizione nella stanza accanto per discutere con il team del frontend di un pixel messo storto, tra una traduzione di Ubuntu e un rebuild dei sorgenti di GNOME (rigorosamente di notte), che trascorre le sue giornate nell'incessante ricerca della perfezione ;-)","url":"https:\/\/www.codemotion.com\/magazine\/author\/luca-ferretti\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-600x600.jpg","author_info":{"display_name":"Luca Ferretti","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/luca-ferretti\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg",1159,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-300x175.jpg",300,175,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-768x447.jpg",768,447,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-1024x596.jpg",1024,596,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg",1159,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg",1159,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201.jpg",100,58,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/03\/d08ed2d616fb4a365724bc6a3614-1434201-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Luca Ferretti","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/luca-ferretti\/"},"uagb_comment_info":0,"uagb_excerpt":"Design tokens bridge the gap between design and development, allowing teams to keep together indivisible pieces of an interface like colors, font-sizes, spaces, animations. Follow this 3-issue mini serie about design tokens and Danny Banks speech at Codemotion Rome 2019. Design Tokens In the previous issue of this series of articles dedicated to design tokens&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/3545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=3545"}],"version-history":[{"count":4,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/3545\/revisions"}],"predecessor-version":[{"id":3651,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/3545\/revisions\/3651"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/3554"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=3545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=3545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=3545"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=3545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}