{"id":8885,"date":"2017-05-02T13:27:30","date_gmt":"2017-05-02T12:27:30","guid":{"rendered":"https:\/\/marvel7077.wpengine.com\/?p=8885"},"modified":"2020-12-14T11:07:58","modified_gmt":"2020-12-14T11:07:58","slug":"creating-maintaining-marvel-style-guide-sketch","status":"publish","type":"post","link":"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/","title":{"rendered":"Creating and Maintaining the Marvel Style Guide in Sketch"},"content":{"rendered":"<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The essence of digital product design lies in identifying problems, solving those and improving user experiences; the visual part of things should merely be an enhancement to it all, not a blocker. One way to stop spending time fiddling with font sizes and spacing, whilst improving consistency, is to build a comprehensive collection of highly-reusable design elements and decide on a set of rules for combining them together.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Through building <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvelapp.com\/blog\/designing-styleguide-elements-building-compelling-products\/\">our style guide<\/a> last year, this is just what we have achieved at Marvel. As <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/author\/colm\/\">Colm Tuite<\/a> outlined in his previous article about it, our design system has saved us a lot time, giving us more chance to focus on function over form during development.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Whilst a central hub of code snippets, variables and rules can be great for development, what if we could use a similar approach for designers working with design tools? Just imagine the amount of time that could be saved creating high-fidelity mocks if there was a predefined set of assets that matched every element a developer would be using from the live style guide. Not only would it save time prototyping, but also communicating and collaborating as both designers and developers would essentially have the same shared overview of assets.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The Outcome<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">With the above optimistic thinking in mind, I sat down to create a shared style guide design file that we could use at Marvel for rapid design and prototyping. My goal was not to end up with a handful of static UI elements, but a real representation of all the design blocks we had previously built for our <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvelapp.com\/styleguide\">style guide<\/a> \u2013 the same one we use across all our products. I wanted a bunch of compact, reusable and modular design components that could be combined into more complex, real-life UI elements by anyone on the team who had Sketch on their machine. Well, it came out as a bit more than a bunch in the end.<\/p>\n<div id='gallery-1' class='gallery galleryid-8885 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/01.png'><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1553\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/01.png\" class=\"attachment-full size-full\" alt=\"\" aria-describedby=\"gallery-1-8888\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/01.png 2560w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/01-600x364.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/01-768x466.png 768w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/01-1500x910.png 1500w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-8888'>\n\t\t\t\tPart of the Sketch file created\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<h1 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black fontWeight-5 lineHeight-xxl fontSize-xxl breakPointM-lineHeight-xxxl breakPointM-fontSize-xxxl\" style=\"margin-left: auto; margin-right: auto;\">Starting a style guide with Sketch<\/h1>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">At the time I started on the style guide, the Bohemian Coding team had only just made <a class=\"link link--blue fontWeight-4\"class=\"attrlink\" href=\"https:\/\/www.sketchapp.com\/learn\/documentation\/symbols\/\">symbols<\/a> (and groups respectively) a lot more powerful by pushing an update which allowed them to be <a class=\"link link--blue fontWeight-4\"class=\"attrlink\" href=\"https:\/\/www.sketchapp.com\/learn\/documentation\/07-symbols\/5-resizing-symbols.html\">resizable<\/a> in various different ways. After playing around with this for a bit, I saw that my dream of real representation of our design components wasn\u2019t too far off \u2013 and so the journey began.<\/p>\n<section class=\"pageWrap pageWrap--s marginBottom-l boxShadow-smoke boxShadow-smoke--xd--hover borderRadius-m transitionDuration-m transitionTimingFunction-ease\"><a class=\"link link--blue fontWeight-4\"class=\"link link--blue fontWeight-4\" href=\"https:\/\/www.sketchapp.com\/learn\/documentation\/symbols\/\"><span class=\"display-block padding-m paddingRight-xl position-relative\"><span class=\"display-block padding-xs paddingRight-m\"><span class=\"marginBottom-xs display-block c-slate lineHeight-l fontSize-l fontWeight-5\">Symbols<\/span><span class=\"c-slate lineHeight-l fontSize-l fontWeight-3 opacity-80\">As you create a Symbol, you can automatically send a Symbol\u2019s master to the Symbols Page...<\/span><\/span><\/span><\/a><\/section>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The Challenge<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">My mission was simple (or so I thought) \u2013 convert all of our <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvelapp.com\/blog\/designing-styleguide-elements-building-compelling-products\/\">style guide components<\/a> into reusable Sketch symbols. However, when I listed all possible combinations out, I realised that organisation wouldn\u2019t be straight forward at all. Here\u2019s a quick example \u2013 for the button component we use on the web (and now iOS, Android), we have 5 different variations:<\/p>\n<div id=\"attachment_8896\" style=\"width: 1450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/image.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8896\" class=\"size-full wp-image-8896\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/image.png\" alt=\"Button variations in the Marvel Style Guide\" width=\"1440\" height=\"510\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/image.png 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/image-600x213.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/image-768x272.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><p id=\"caption-attachment-8896\" class=\"wp-caption-text\">Button variations in the Marvel Style Guide<\/p><\/div>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Solo button<\/li>\n<li>Button group (left-sitting, middle-sitting, right-sitting buttons)<\/li>\n<li>Button with icon<\/li>\n<\/ul>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Additionally, every button also comes in 4 different sizes \u2013 which meant different font scale, spacing and border radius for each of those:<\/p>\n<div id=\"attachment_8897\" style=\"width: 1450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/03.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8897\" class=\"size-full wp-image-8897\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/03.png\" alt=\"Button sizes in the Marvel Style Guide\" width=\"1440\" height=\"670\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/03.png 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/03-600x279.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/03-768x357.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><p id=\"caption-attachment-8897\" class=\"wp-caption-text\">Button sizes in the Marvel Style Guide<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Unfortunately, if I wanted reusable design assets, the above examples all had to be created as separate symbols, because Sketch doesn\u2019t allow abstracting symbol styling properties (yet). Well, if my maths don\u2019t lie to me, that\u2019s 20 button symbols per button style. That\u2019s right, style. We have quite a few button styles:<\/p>\n<div id=\"attachment_8898\" style=\"width: 1450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/04.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8898\" class=\"size-full wp-image-8898\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/04.png\" alt=\"Button styles in the Marvel Style Guide\" width=\"1440\" height=\"650\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/04.png 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/04-600x271.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/04-768x347.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><p id=\"caption-attachment-8898\" class=\"wp-caption-text\">Some examples of our button styles<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Oh, did I also mention that every button could also be in a few different states?<\/p>\n<div id=\"attachment_8899\" style=\"width: 1450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/05.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8899\" class=\"size-full wp-image-8899\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/05.png\" alt=\"Button states in the Marvel Style Guide\" width=\"1440\" height=\"570\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/05.png 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/05-600x238.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/05-768x304.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><p id=\"caption-attachment-8899\" class=\"wp-caption-text\">Button states in the Marvel Style Guide<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Here\u2019s a better representation of the sheer number of symbols I ended up with:<\/p>\n<div id='gallery-2' class='gallery galleryid-8885 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/06.png'><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1340\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/06.png\" class=\"attachment-full size-full\" alt=\"\" aria-describedby=\"gallery-2-8900\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/06.png 1600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/06-600x503.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/06-768x643.png 768w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/06-1500x1256.png 1500w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-2-8900'>\n\t\t\t\tPart of the button symbols\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I realised that the organisation would quickly go out of hand so I needed to apply some ground rules to make it all more maintainable.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Naming Convention<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Whilst naming conventions can be useful to organise files in any setting, doing so in Sketch has extra benefits, which Lloyd Humphreys (UX designer at Tradecraft) <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/medium.com\/@lloyd\/sketch-symbol-best-practices-c957511f1188#.57mgw9e0n\">explained really well<\/a>. In short, Humphreys recommends naming things using lower case, separated by dashes for consistency, and he also importantly highlights just how Sketch organises symbols.<\/p>\n<section class=\"pageWrap pageWrap--s marginBottom-l boxShadow-smoke boxShadow-smoke--xd--hover borderRadius-m transitionDuration-m transitionTimingFunction-ease\"><a class=\"link link--blue fontWeight-4\"class=\"link link--blue fontWeight-4\" href=\"https:\/\/medium.com\/@lloyd\/sketch-symbol-best-practices-c957511f1188\"><span class=\"display-block padding-m paddingRight-xl position-relative\"><span class=\"display-block padding-xs paddingRight-m\"><span class=\"marginBottom-xs display-block c-slate lineHeight-l fontSize-l fontWeight-5\">Sketch Symbol best practices<\/span><span class=\"c-slate lineHeight-l fontSize-l fontWeight-3 opacity-80\">Symbols got a big upgrade in Sketch 39. They\u2019re a lot more powerful than they used to be, and we\u2019re all trying to figure out how best to use them.<\/span><\/span><\/span><\/a><\/section>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Basically, Sketch automatically groups Symbols into folders (or technically sub-menus), whenever there\u2019s a forward slash <code class=\"fontSize-s language-js\">\/<\/code> in the name. This is really useful to control and organise components, and even access them within the Sketch menu (and <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/sketchrunner.com\/\">Sketch Runner<\/a>).<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">To find a working naming convention I had to look at the most complex symbols (or the ones with the most instances). I started with something (a property) that all of those instances share and placed those at the beginning. The properties that come last, were usually those that weren't shared across all symbols.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">So let's go back to the button example from above and break down it's properties. We end up with a solo sitting, extra large, flat, green button. Pretty lengthy name for a component! Formalising it to\u00a0<code class=\"fontSize-s language-js\">button \/ solo \/ xl \/ flat \/ green<\/code>, however, creates the following neatly organised folder structure:<\/p>\n<div id=\"attachment_8905\" style=\"width: 1500px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/09.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8905\" class=\"size-full wp-image-8905\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/09.png\" alt=\"Button component folder structure\" width=\"1490\" height=\"931\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/09.png 1490w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/09-600x375.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/09-768x480.png 768w\" sizes=\"auto, (max-width: 1490px) 100vw, 1490px\" \/><\/a><p id=\"caption-attachment-8905\" class=\"wp-caption-text\">Button component folder structure<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">There are more things to consider, though. Some components, like the input fields illustrated below, would also have to support focus states for example:<\/p>\n<div id=\"attachment_8906\" style=\"width: 1450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/10.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8906\" class=\"size-full wp-image-8906\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/10.png\" alt=\"Input field states\" width=\"1440\" height=\"790\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/10.png 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/10-600x329.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/10-768x421.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><p id=\"caption-attachment-8906\" class=\"wp-caption-text\">Input field states<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">To apply the same naming rules across all other components, I had to formalise the naming convention even further. It came out something along the lines of:<\/p>\n<div id=\"attachment_8902\" style=\"width: 2210px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/07.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8902\" class=\"size-full wp-image-8902\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/07.png\" alt=\"Naming convention\" width=\"2200\" height=\"1000\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/07.png 2200w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/07-600x273.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/07-768x349.png 768w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/07-1500x682.png 1500w\" sizes=\"auto, (max-width: 2200px) 100vw, 2200px\" \/><\/a><p id=\"caption-attachment-8902\" class=\"wp-caption-text\">Naming convention<\/p><\/div>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Naming conventions depend on preference<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">As you can see, with the above naming convention we end up with a few levels of separation, which might not be ideal for some. Combining those into more compact, less nested symbols could easily work as well:<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><code class=\"fontSize-s language-js\">control \/ variation-size \/ style-state<\/code><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It really just depends on what you prefer \u2013 long menu lists, or nested shorter ones. I personally vote for the second option because it\u2019s much tidier and prone to scale. That, in combination with <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/sketchrunner.com\/\">Sketch Runner<\/a> results in a very, very powerful tool once you get the hang of it!<\/p>\n<div id='gallery-3' class='gallery galleryid-8885 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/demo-fast.gif'><img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"900\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/demo-fast.gif\" class=\"attachment-full size-full\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<h1 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black fontWeight-5 lineHeight-xxl fontSize-xxl breakPointM-lineHeight-xxxl breakPointM-fontSize-xxxl\" style=\"margin-left: auto; margin-right: auto;\">Shared Styles and Document Colours<\/h1>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">When making a high number of repeated components, it\u2019s important to be as <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\">DRY<\/a> as possible. That means that having repeated styles is not an option, because updating them will always be prone to error.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">This is where <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.sketchapp.com\/learn\/documentation\/styling\/shared-styles\/\" target=\"_blank\" rel=\"noopener noreferrer\">Shared Styles<\/a> come handy. They make it possible to share colors, borders, shadows and blurs across multiple elements.<\/p>\n<section class=\"pageWrap pageWrap--s marginBottom-l boxShadow-smoke boxShadow-smoke--xd--hover borderRadius-m transitionDuration-m transitionTimingFunction-ease\"><a class=\"link link--blue fontWeight-4\"class=\"link link--blue fontWeight-4\" href=\"https:\/\/www.sketchapp.com\/learn\/documentation\/styling\/shared-styles\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"display-block padding-m paddingRight-xl position-relative\"><span class=\"display-block padding-xs paddingRight-m\"><span class=\"marginBottom-xs display-block c-slate lineHeight-l fontSize-l fontWeight-5\">Shared Layer Styles<\/span><span class=\"c-slate lineHeight-l fontSize-l fontWeight-3 opacity-80\">Shared Styles are located in the the white box between the general layer, and style properties in the Inspector.<\/span><\/span><\/span><\/a><\/section>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">After some trial and error, I ended up creating the following groups:<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Document colors<\/strong> \u2013 these offer quick access for all of our style guide colors<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Fill styles<\/strong> \u2013 used across buttons, avatars and everywhere where fill is required<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Text styles<\/strong> \u2013 most common text styles used, usually split between paragraph and heading<\/li>\n<li><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Component styles<\/strong> \u2013 inputs, tooltips, popovers all share their styles<\/li>\n<\/ul>\n<div id=\"attachment_8953\" style=\"width: 1450px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/shared-styles.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8953\" class=\"size-full wp-image-8953\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2017\/05\/shared-styles.png\" alt=\"Shared text, fill and component styles\" width=\"1440\" height=\"1644\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/shared-styles.png 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/shared-styles-526x600.png 526w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/shared-styles-768x877.png 768w, https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/shared-styles-1314x1500.png 1314w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a><p id=\"caption-attachment-8953\" class=\"wp-caption-text\">Shared text, fill and component styles<\/p><\/div>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Putting everything together and sharing it with the team<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">So now we have a boilerplate file with quite a big set of symbols. Great, but how do we put it into use? Is it possible to maintain and share it with the whole team, with no manual file sending?<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Luckily, just as I was asking those questions, I stumbled upon this <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/medium.com\/gocardless-design\/design-style-guide-post-b48b546f928#.bwpvkok1g\">great post<\/a> by Sam Willis from GoCardless. He came up with the following solution:<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Create a template file in Sketch and upload it to a shared Dropbox directory<\/li>\n<li>Create a symlink between the Dropbox template file and local Sketch template directory<\/li>\n<li>The main template file is stored in Dropbox and gets maintained there<\/li>\n<li>When a change happens, everyone gets updates without doing anything<\/li>\n<\/ul>\n<div id='gallery-4' class='gallery galleryid-8885 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/13.gif'><img loading=\"lazy\" decoding=\"async\" width=\"1498\" height=\"756\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/13.gif\" class=\"attachment-full size-full\" alt=\"\" aria-describedby=\"gallery-4-8909\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-4-8909'>\n\t\t\t\tUpdates to a local template file happen instantly\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I decided to take it one step further and throw git into the equation:<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Turned the Dropbox template directory into a <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvelapp.com\/blog\/designers-guide-git\/\">git<\/a> repository<\/li>\n<li>Everyone who wants to maintain the style guide will need to clone it separately<\/li>\n<li>Once updates are pushed (and reviewed with pull requests), changes are \u201cdeployed\u201d to the main Dropbox directory<\/li>\n<\/ul>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The above steps give us version control, release management, etc. It also reduces conflicts to pretty much zero. The only downside I could think of would be that there could only be one PR at a time due to the fact that changes are made to a binary file. Something <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.abstractapp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Abstract<\/a> could potentially help with, but I am yet to explore this further!<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">What\u2019s next?<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Previously, our live style guide enabled our development team to move faster \u2013 we no longer had to spend time producing high-quality mocks to communicate visual aspects, which was great at the time. However, the introduction of the Sketch design system has been an improvement on this, enabling us to quickly create those high-quality mocks without the overhead. No longer has the developer had to choose the closest matching element from the code style guide, we created a shared language, and consistent elements regardless of the tool - Sketch or code.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">A single source of truth<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">All of this has been great exploration into what we can call a real living design system \u2013 we\u2019ve been able to experience the massive benefits possible in developer\/designer workflow when everybody is working from a shared system, but what\u2019s next? As the line between code and development blurs furthermore, could we make it so that all colours are synced between Sketch and the live codebase? What about font sizes, text styles, shadows, etc? Is it possible to have a single source of truth for both code and design assets?<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">In recent months, we\u2019ve seen some answers to these questions slowly emerging. We\u2019ve seen it in the updates that came with Sketch 43, with the introduction of a <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/medium.com\/sketch-app-sources\/sketch-43-is-coming-to-town-with-a-new-game-an-open-file-format-ae62e7e7c223\">new Sketch file format<\/a>. And then again more recently with <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/airbnb.design\/painting-with-code\/\">Airbnb\u2019s React Sketch.app<\/a> library, which allows developers to write React components that render to Sketch documents. This looks like the next hurdle - as Jon Gold of Airbnb put it:<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\u201cThe fewer sources of truth we have for a design system, the more efficient we are.\u201d<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Jon also pointed out that a designer\u2019s Sketch workflow is quite similar to using React components. As we\u2019ve seen in this post, designers use symbols and overrides in Sketch, where as in React, developers are using components and properties. \"The concepts are so similar that it seemed silly not to unify them\".<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">These similarities show how designers and developers are already working along the same lines, just with different terminologies, because of the tools we use. Therefore, as we see more ways for both disciplines to share the same tools (as with Sketch), it makes this single source of truth a real possibility.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Overall, having an oversight on all the design elements we use across our products has made it easier for optimisation \u2013 removing everything unnecessary and updating what we use the most as we go along.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">We are planning on open sourcing our style guide soon (both code and design) so stay tuned and watch this space! If you\u2019ve enjoyed the read, have questions or just want to share your opinions \u2013 hit me up on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.twitter.com\/yavorpunchev\">Twitter<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The essence of digital product design lies in identifying problems, solving those and improving user experiences; the visual part of things should merely be an enhancement to it all, not a blocker. One way to stop spending time fiddling with font sizes and spacing, whilst improving consistency, is to build a comprehensive collection of highly-reusable design elements and decide on&#8230; <a class=\"link link--blue fontWeight-4\" href=\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/\">Read More &#65515;<\/a><\/p>\n","protected":false},"author":8,"featured_media":8967,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[488],"tags":[],"class_list":["post-8885","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inside-marvel"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating and Maintaining the Marvel Style Guide in Sketch | Marvel Blog\" \/>\n<meta property=\"og:description\" content=\"The essence of digital product design lies in identifying problems, solving those and improving user experiences; the visual part of things should merely be an enhancement to it all, not a blocker. One way to stop spending time fiddling with font sizes and spacing, whilst improving consistency, is to build a comprehensive collection of highly-reusable design elements and decide on... Read More &#65515;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/\" \/>\n<meta property=\"og:site_name\" content=\"Marvel Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/marvelapp\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-02T12:27:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-14T11:07:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/imac-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:site\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"8 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\",\"name\":\"Marvel\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/marvelapp\",\"https:\/\/www.instagram.com\/marvelapp\/\",\"https:\/\/www.linkedin.com\/company\/marvel-app\/\",\"https:\/\/twitter.com\/marvelapp\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2018\/06\/Logo-Light.png\",\"width\":1605,\"height\":1130,\"caption\":\"Marvel\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"name\":\"Marvel Blog\",\"description\":\"Ideas and words on user experience, design, collaboration and more\",\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/marvelapp.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2017\/05\/imac-1.jpg\",\"width\":1440,\"height\":960},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#webpage\",\"url\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/\",\"name\":\"Creating and Maintaining the Marvel Style Guide in Sketch | Marvel Blog\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#primaryimage\"},\"datePublished\":\"2017-05-02T12:27:30+00:00\",\"dateModified\":\"2020-12-14T11:07:58+00:00\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#webpage\"},\"author\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/96aaffb7d6e74672860a7dd5a349007b\"},\"headline\":\"Creating and Maintaining the Marvel Style Guide in Sketch\",\"datePublished\":\"2017-05-02T12:27:30+00:00\",\"dateModified\":\"2020-12-14T11:07:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#primaryimage\"},\"articleSection\":\"Inside Marvel\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/marvelapp.com\/blog\/creating-maintaining-marvel-style-guide-sketch\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/96aaffb7d6e74672860a7dd5a349007b\",\"name\":\"Yavor\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/22f96c3ad70752f11e1fde016bc6e380d871924451b72ab620ec7476e59a793d?s=96&d=mm&r=g\",\"caption\":\"Yavor\"},\"description\":\"Product designer fiddling with code and slack memes at Marvel.\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/8885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/comments?post=8885"}],"version-history":[{"count":0,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/8885\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media\/8967"}],"wp:attachment":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media?parent=8885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/categories?post=8885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/tags?post=8885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}