<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[InPlayer Technology]]></title><description><![CDATA[Building the most powerful fan engagement & monetization platform]]></description><link>https://techblog.inplayer.com</link><image><url>https://substackcdn.com/image/fetch/$s_!Ru82!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F635fa410-acb2-4d32-b00c-d8bbef4ef21d_443x443.png</url><title>InPlayer Technology</title><link>https://techblog.inplayer.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 19 Apr 2026 07:40:59 GMT</lastBuildDate><atom:link href="https://techblog.inplayer.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[InPlayer Ltd]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[inplayertechnology@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[inplayertechnology@substack.com]]></itunes:email><itunes:name><![CDATA[techblog.inplayer.com]]></itunes:name></itunes:owner><itunes:author><![CDATA[techblog.inplayer.com]]></itunes:author><googleplay:owner><![CDATA[inplayertechnology@substack.com]]></googleplay:owner><googleplay:email><![CDATA[inplayertechnology@substack.com]]></googleplay:email><googleplay:author><![CDATA[techblog.inplayer.com]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[InPlayer's design system "Stream" - Design tokens (pt. 2/3)]]></title><description><![CDATA[Sandra is our Director of design and a passionate advocate of Design Systems.]]></description><link>https://techblog.inplayer.com/p/inplayers-design-system-stream-design</link><guid isPermaLink="false">https://techblog.inplayer.com/p/inplayers-design-system-stream-design</guid><dc:creator><![CDATA[Sandra]]></dc:creator><pubDate>Mon, 09 Jan 2023 09:30:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eZJL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Since our team came together last year, one thing that I knew I really wanted to do once we started the completely brand new Design system &#8220;Stream&#8221;, was to implement design tokens. If you have previously ever used a unified CSS file with branding variables specified in one place, it&#8217;s quite a similar concept.. the biggest difference we wanted to introduce was connecting our Figma files to the codebase directly, adding additional control and unification between the Design team and our Core eXPerience team who took care of the frontend component implementation.</p><blockquote><p>For the ones that haven&#8217;t heard about design tokens, I recommend watching one of <a href="https://www.youtube.com/watch?v=ylDed18OVdY">Jina&#8217;s talks</a> who introduced the topic when she started working on the <a href="https://www.lightningdesignsystem.com/design-tokens/">Salesforce&#8217;s design system Lightning</a>, and you should check out the <a href="https://www.w3.org/community/design-tokens/">design tokens community</a> that takes care of the design tokens syntax and specification, trying to unify the token file formats.</p></blockquote><p>I&#8217;ll try to cover our approach and the biggest challenges when deciding on how to proceed by building a design token eco-system with a common language.</p><h2>Choosing Chakra as a frontend UI library</h2><p>You can always start building a design system in Figma on the design side. But not syncing with the engineers in the beginning would be a big mistake. It&#8217;s much easier to work together if you agree on how you will build both the tokens and the components up front. </p><p>Hence, we first wanted to land on a decision on which frontend UI library we were going to use. We were looking for something that works with React, we knew that we wanted to go fast (so we didn&#8217;t decide on building every component from scratch), and we selected several libraries that our frontend engineers tried out with a small demo. Besides that, we also checked out whether there are frequent updates and an active community so we knew that the library will be updated regularly.</p><p>We landed on a decision to use <a href="https://chakra-ui.com/">Chakra UI</a>. Chakra is still quite new, so we knew that a lot of the components we needed won&#8217;t be available (e.g. a date/time picker or rich text editor). For anything missing, our engineering team were willing to include other component libraries and customise them to our needs when needed, and building the rest of the custom components from scratch.</p><p>Chakra has tokenised components by default (every value that is passed on in a component comes from a single file / source of truth) but they also support <a href="https://chakra-ui.com/docs/styled-system/semantic-tokens">semantic tokens</a>. It was a great decision to go with them, having the flexibility to adjust some of the tokens in code directly when needed, in order to fine tune them with the tokens we passed on from Figma.</p><p><a href="https://chakra-ui.com/docs/styled-system/semantic-tokens#conditional-tokens">Conditional tokens</a> are also used, so we could very easily adjust our tokens and palettes if we wanted to introduce dark mode in the future (which we already planned on doing from the beginning), or override a specific state that we didn&#8217;t prefer in the Chakra approach (e.g. the shade of the focus color that was not part of the assigned color palette).</p><p>The components themselves also support creating <strong>variants</strong> of the same component, which was very close to what we had in mind in the Figma design files, and it was pretty aligned in the approach we already used.</p><p>Overall, their basic styling approach is to have a <strong>palette of colours</strong> that they apply as a set to any component and use specific shades for different states, and an <strong>array of values for sizing and spacing</strong> that they apply in the background, but in the components you can choose the component size by using pre-defined t-shirt sizes like &#8220;xs&#8221;, &#8220;sm&#8221;, &#8220;md&#8221;&#8230; That gave us the flexibility to both use their native tokens and still apply our own tokens when we wanted to. </p><p>Of course, Chakra came also with a <strong>fully responsive</strong> behaviour and the capability to adjust your custom components with props where you pass on media query sizes without even writing one line of CSS for this. We didn&#8217;t need a completely responsive version for our dashboard, but we leveraged this feature wherever we could.</p><p>Kudos to Chakra&#8217;s team for the approach they used for both providing a great foundation but also an enormous flexibility for adjustments and customisations.</p><h2>Connecting Figma to the codebase</h2><p>Having in mind that Chakra already used a specific format for their tokens, we needed to find a way to export the design tokens from Figma into a format that is the same (or almost the same) to Chakra, being able to easily re-format it in code if it won&#8217;t match. </p><p>We explored the following plugins:</p><ul><li><p><a href="https://www.figma.com/community/plugin/862818788004280193/Toolabs-Design-System-Manager">Toolabs</a>: Looked like an awesome tool which provided customised output of the file token formats, but we noticed that it hadn&#8217;t been updated for several months and after a brief chat with the author who said he&#8217;s deprecating it, we decided not to go with it.</p></li></ul><ul><li><p><a href="https://www.figma.com/community/plugin/843461159747178978/Tokens-Studio-for-Figma-(Figma-Tokens)">Figma Tokens</a> (now Tokens Studio): It&#8217;s by far the most extensive and flexible plugin, but unfortunately it didn&#8217;t provide a format that would be useful for us to use in Chakra. They include the internal Figma tokens with &#8220;_&#8221; and &#8220;.&#8221; that are supposed to be ignored in Figma&#8217;s native behaviour, and the biggest downfall for us was to store all possible tokens in the plugin and apply them from the plugin itself to the whole design file which is a bigger risk on the long run. We still preferred to use the native styles for colours and typography provided by Figma. </p><p></p></li><li><p><a href="https://www.figma.com/community/plugin/888356646278934516/Design-Tokens">Design Tokens</a>: provided a very interesting approach for the spacing and sizing tokens, which was to create a component with a certain width whose value is passed on as a token value. They also have a customisable settings for the format which was very convenient to adjust to the format we needed to import in Chakra. </p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eZJL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eZJL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 424w, https://substackcdn.com/image/fetch/$s_!eZJL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 848w, https://substackcdn.com/image/fetch/$s_!eZJL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 1272w, https://substackcdn.com/image/fetch/$s_!eZJL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eZJL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png" width="550" height="794" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:550,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158818,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eZJL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 424w, https://substackcdn.com/image/fetch/$s_!eZJL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 848w, https://substackcdn.com/image/fetch/$s_!eZJL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 1272w, https://substackcdn.com/image/fetch/$s_!eZJL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9d46067c-ef4f-4d6e-91ee-585296dde81e_550x794.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Design Tokens plugin: settings screen</figcaption></figure></div><p></p><h3>The pitfalls of choosing Design tokens</h3><p>The biggest pitfall of not choosing Figma tokens over Design tokens was <strong>not having the spacing/sizing tokens available to apply directly</strong> to our Figma components, the design team had to learn them by heart and document them properly for the engineering team. </p><p>The other pitfall was that it was a bit more <strong>difficult to pass on the file in the codebase</strong> being able to update through Github (engineers had to create .yml file for this). Unfortunately the <strong>file size</strong> that we got to pass on was also an issue, and once we hit a specific file size, we were limited on using the expanded/uncompressed format and had to use a compressed JSON output file. Not using the uncompressed file limited us to clearly view the changes of the file in Github whenever a token was changed. </p><p>The compressed file size eventually became an issue as well, so <strong>we had to compromise on defining all possible component-based semantic tokens</strong> that we wanted to pass on from Figma, and stick to the most basic semantic tokens we could define.</p><p>I still hope that Figma will integrate all functionalities for the spacing and sizing tokens into their native app and will provide a way to skip the plugins overall&#8230; fingers crossed :) </p><h3>Translating the token values</h3><p>We also briefly explored <a href="https://amzn.github.io/style-dictionary/#/">Styled dictionary</a> which can transform and save every token in the codebase and reformat it to other types of files, very convenient if you also pass on the tokens to mobile apps in .xml or other formats instead of JSON. </p><p>But for us it didn&#8217;t provide much value and we decided to translate some of the tokens in code with a custom script that we could have a bigger control on, and not adding one more tool in the whole eco-system.</p><p></p><h3>The design to code eco-system</h3><p>So, finally we ended up with something like the following chart: </p><ol><li><p>Exporting the tokens via the Design tokens plugin </p></li><li><p>The JSON file was passed on into our Github account (we created a bot account that handled the generated pull requests)</p></li><li><p>Then our engineer Kire created a javascript file that slightly adjusted the tokens into the format we needed in Chakra (so I called it Kire.js :D) </p></li><li><p>We overrode the default &#8220;teal palette&#8221; with our &#8220;purple palette&#8221; which was our primary color to override all existing components, as well as the main font family</p></li><li><p>We continued to use Chakra&#8217;s native tokens, but also introduced semantic tokens to override some values for Chakra&#8217;s components (like changing the hover colours of the outlined button version) or use them in custom components </p></li></ol><p><strong>We wrapped all Chakra components into our own components</strong>, to be able to handle any updates in the library that might come unexpected from Chakra. We created all necessary components in Storybook where we showcased all possible variants and states of the components. The frontend engineers from other teams could just copy the code and use the component as is, directly into their scope of our new Dashboard. </p><p>We had an extensive documentation in Figma and we held several presentations and live coding session to pass on the knowledge to every designer and frontend engineer in the company, so over time we had a huge improvement of the usage of the components and how engineers customised the components.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ad6y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ad6y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 424w, https://substackcdn.com/image/fetch/$s_!Ad6y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 848w, https://substackcdn.com/image/fetch/$s_!Ad6y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 1272w, https://substackcdn.com/image/fetch/$s_!Ad6y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ad6y!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png" width="1200" height="978.2967032967033" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1187,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:115113,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Ad6y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 424w, https://substackcdn.com/image/fetch/$s_!Ad6y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 848w, https://substackcdn.com/image/fetch/$s_!Ad6y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 1272w, https://substackcdn.com/image/fetch/$s_!Ad6y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F444e8bc2-a181-4848-ab66-5ef0a2845129_1566x1277.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The troubles of naming semantic tokens</h2><h3>Colours</h3><p>As Mia explained in the <a href="https://techblog.inplayer.com/p/inplayers-design-system-stream-foundations">first post</a>, for the colours we used the foundational 10-shade palettes that we didn&#8217;t really use in Figma, but were directly applied to the Chakra brand theme provider. </p><p>It was fairly easy, Chakra uses <a href="https://chakra-ui.com/docs/styled-system/theme">color palettes</a> for their overall styling schema where they assign a color value of a scale of 10 different shades from the same palette that we already used as an approach in Figma, we just needed to shift some numbers to adapt it to their format of scale (to use &#8220;colour.500&#8221; as main, &#8220;colour.600&#8221; for hover, &#8220;colour.700&#8221; for active state, etc). We did use the semantic naming for every override and a custom component though, so we didn&#8217;t have any loose naming around the code either.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dR4Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dR4Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 424w, https://substackcdn.com/image/fetch/$s_!dR4Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 848w, https://substackcdn.com/image/fetch/$s_!dR4Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 1272w, https://substackcdn.com/image/fetch/$s_!dR4Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dR4Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png" width="712" height="360" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/edd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:712,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111012,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!dR4Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 424w, https://substackcdn.com/image/fetch/$s_!dR4Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 848w, https://substackcdn.com/image/fetch/$s_!dR4Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 1272w, https://substackcdn.com/image/fetch/$s_!dR4Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fedd4bbcb-96c8-4ed7-848e-8a070d2be92c_712x360.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Chakra&#8217;s default theme colour palette</figcaption></figure></div><p>We used the following approach for the semantic color naming: defining a &#8220;primary" as a non-colour name but its function, then added the rest of different props and states which included the information whether that&#8217;s a background or on-top-of-the-background colour. So both designers and developers know that if you have <strong>$primary.main</strong> as a background color, you should simply use <strong>$primary.onMain</strong> as the text colour on top. Viktorija has explained this approach pretty nicely in her blog post &#8220;<a href="https://viktorija-bachvarova.medium.com/setting-up-the-most-flexible-design-colour-system-3397ec8ca006">Setting up the most flexible design colour system</a>&#8221;. </p><p>For the dark scheme that would eventually come, with this approach, we could just use a different palette directly in the Chakra provider that will cover all the dark mode colours with the same naming.</p><p>We ended up on a design token naming system similar to the following, where we took the liberty to leave out some of the levels that were really not necessary to define:</p><pre><code><strong>[</strong>function<strong>]-[</strong>context (background/onBackground)<strong>]-[</strong>property<strong>]-[</strong>state<strong>]</strong></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BkpC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BkpC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 424w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 848w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1272w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BkpC!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png" width="1200" height="402.1978021978022" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/aa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:488,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BkpC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 424w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 848w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1272w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Stream&#8217;s colour palette translated into semantic tokens and compared to keep it consistent</figcaption></figure></div><p>We used the same approach for defining all colours that are applied to every form / input type of component so they are all consistent without any shades being mistaken and we avoided any loose ends. </p><p>The border of inputs was a specific challenge, cause we had to work with a default border colour, border hover colour, border colour if the input is in focus, but we also had a &#8220;danger&#8221; variant where we change the colour based on the input state :) We kinda figured it out along the way and this was the most complex naming variant that we went with in &#8220;Stream&#8221;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J7jq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J7jq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 424w, https://substackcdn.com/image/fetch/$s_!J7jq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 848w, https://substackcdn.com/image/fetch/$s_!J7jq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 1272w, https://substackcdn.com/image/fetch/$s_!J7jq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J7jq!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png" width="1200" height="282.4067022086824" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:309,&quot;width&quot;:1313,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:125207,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!J7jq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 424w, https://substackcdn.com/image/fetch/$s_!J7jq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 848w, https://substackcdn.com/image/fetch/$s_!J7jq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 1272w, https://substackcdn.com/image/fetch/$s_!J7jq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb863ac-edb0-4ef9-88fe-0d423b8ce739_1313x309.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Typography</h3><p>Translating the typography into the codebase was a bit different since Figma exports everything in <strong>pixels</strong>, while in code we want a <strong>more fluid unit</strong> that we could scale up the whole app by zooming in or using responsive styles.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wjTl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wjTl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 424w, https://substackcdn.com/image/fetch/$s_!wjTl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 848w, https://substackcdn.com/image/fetch/$s_!wjTl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 1272w, https://substackcdn.com/image/fetch/$s_!wjTl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wjTl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png" width="256" height="372.2105263157895" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:884,&quot;width&quot;:608,&quot;resizeWidth&quot;:256,&quot;bytes&quot;:41154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wjTl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 424w, https://substackcdn.com/image/fetch/$s_!wjTl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 848w, https://substackcdn.com/image/fetch/$s_!wjTl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 1272w, https://substackcdn.com/image/fetch/$s_!wjTl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe549c4a5-2e73-4f9a-94ec-4a5c46a59671_608x884.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">How to define a typography style in Figma</figcaption></figure></div><p>Here&#8217;s what Figma exports via Design tokens as a typography style &#8220;object&#8221; for our text style &#8220;<strong>text-xs-regular</strong>&#8221; defined in Figma:</p><pre><code>"typography": {
    "<strong>textXsRegular</strong>": {
      <strong>"description": "0.75rem",</strong>
      "<strong>fontSize</strong>": {
        "type": "dimension",
        "value": 12
      },
      "textDecoration": {
        ...
      },
      "fontFamily": {
        "type": "string",
        "value": "Inter"
      },
      "<strong>fontWeight</strong>": {
        "type": "number",
        "value": 400
      },
      "<strong>fontStyle</strong>": {
        "type": "string",
        "value": "normal"
      },
      "fontStretch": {
        ...
      },
      "<strong>letterSpacing</strong>": {
        "type": "dimension",
        "value": 0
      },
      "<strong>lineHeight</strong>": {
        "type": "dimension",
        "value": 16
      },
      "paragraphIndent": {
        ...
      },
      "paragraphSpacing": {
        ...
      },
      "textCase": {
        ...
      }
    },
...
}</code></pre><p>We first used the <strong>description</strong> field to add the value of the font-size in <strong>rem</strong> units directly into the file, but it&#8217;s not scalable since we also needed this for the line height, letter spacing, etc, and probably needed to parse a big string afterwards. </p><p>So, our engineers wrote a small script that basically put the appropriate calculation for the appropriate unit, knowing that we come from the <strong>16px base font size</strong> for the whole application and that it translates to <strong>1rem in the code</strong>. So it turned out to be a simple math :) </p><p>The letter spacing is the only value that is not exported in <strong>pixels</strong>, but in <strong>em</strong> so, this only required to add the specific unit. We didn&#8217;t parse the rest of the values because we didn&#8217;t use them in the design either.</p><p>The font family was set once, directly in the theme, and we didn&#8217;t really fetch it from the tokens file.</p><pre><code>import { getTokenValues } from './formatTokens';

const typography: any = getTokenValues('typography');

const baseFontSize = 16;

export const typographyVariants = Object.fromEntries(
  Object.entries(typography).map(
    ([key, { fontSize, fontWeight, letterSpacing, lineHeight, textCase }]: [
      key: any,
      value: any
    ]) =&gt; [
      key,
      {
        <strong>fontSize: `${fontSize / baseFontSize}rem`,
        fontWeight,
        letterSpacing: `${letterSpacing}em`,
        lineHeight: `${lineHeight / baseFontSize}rem`,
        textTransform: textCase,</strong>
      },
    ]
  )
);
</code></pre><h3>Sizing and spacing</h3><p>Sizing and spacing were a whole different challenge since they are not yet supported in Figma like the colours or typography styles.</p><p>Chakra have their own sizing and spacing scale, that was missing some of the granularity that we wanted to introduce, so we created another system that worked better for us and passed them on as sizes/spaces tokens. </p><p>We only used the sizing tokens specified in the Design token plugin for both sizing and spacing, just used different naming. We didn&#8217;t use the spacing tokens format, since we wanted an individual padding/margin control instead of a group of 4 values for top/right/bottom/left that they supported. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dWZi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dWZi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 424w, https://substackcdn.com/image/fetch/$s_!dWZi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 848w, https://substackcdn.com/image/fetch/$s_!dWZi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 1272w, https://substackcdn.com/image/fetch/$s_!dWZi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dWZi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png" width="1200" height="970" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:341529,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dWZi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 424w, https://substackcdn.com/image/fetch/$s_!dWZi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 848w, https://substackcdn.com/image/fetch/$s_!dWZi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 1272w, https://substackcdn.com/image/fetch/$s_!dWZi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8cd2b99c-72e1-43ac-ac63-c8e68d02f31b_1200x970.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This was of course, not enough, so besides standardising some default values like &#8220;space-md&#8221; being &#8220;16px&#8221; (highlighted in purple), we also <strong>introduced some additional semantic tokens</strong> that took the values of these basic tokens. </p><p>We used them for the detailed component specifications, custom components and all the overrides of the existing Chakra components. We paid most attention to the form elements and spacing between different types of content (form gaps, different titles sizes and descriptions that follow, between different button sizes, layout paddings, etc). We also introduced our own custom <strong>form containers</strong> that were more suitable to our designs than the default Chakra values.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5PVe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5PVe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 424w, https://substackcdn.com/image/fetch/$s_!5PVe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 848w, https://substackcdn.com/image/fetch/$s_!5PVe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5PVe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5PVe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png" width="618" height="941" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:941,&quot;width&quot;:618,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:251810,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5PVe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 424w, https://substackcdn.com/image/fetch/$s_!5PVe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 848w, https://substackcdn.com/image/fetch/$s_!5PVe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5PVe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F639bbb10-22a9-4a22-b069-c66d022b6225_618x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We could have broken the semantic tokens even in more detail, for example creating different token for each component (e.g. text input, text area, rich text editor, date picker, time picker, etc). But we really wanted to be able to control the same tokens from one place and not introduce complexity without really having the need to do so. </p><p>The biggest downside for the designers were to come back to this file all the time to check and apply the appropriate value to the component in its auto layout properties instead of just using the token name as we do with colours. As said before, we&#8217;re looking forward for Figma to actually implement native spacing and sizing tokens that would really facilitate the whole design and handoff process. </p><h3>Border radii</h3><p>For the border radius we used the same system of the native Chakra tokens, and even though we passed our custom tokens with the same values, we did continue to use Chakra&#8217;s native radii tokens and just override some of components&#8217; values (e.g. downsized the value of the border radius on the checkbox). </p><p>They are also not supported natively in Figma, so we figured it&#8217;s better to use Chakra&#8217;s tokens in this case. We just specified in a document which value is used in which component, so we can keep our designs consistent.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UycE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UycE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 424w, https://substackcdn.com/image/fetch/$s_!UycE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 848w, https://substackcdn.com/image/fetch/$s_!UycE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 1272w, https://substackcdn.com/image/fetch/$s_!UycE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UycE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png" width="815" height="731" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/cb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:815,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:190496,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UycE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 424w, https://substackcdn.com/image/fetch/$s_!UycE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 848w, https://substackcdn.com/image/fetch/$s_!UycE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 1272w, https://substackcdn.com/image/fetch/$s_!UycE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb232e1d-3864-4dbe-a7e7-71e233dd3ce9_815x731.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>Shadows (effects)</h3><p>The shadows are effect styles in Figma and they are exported as a group of values. We had to parse them into our codebase which would cause another code bloat, so we decided to define the shadows as a CSS value string and pass it on through the description field of the effect and JSON file. </p><p>This was mostly done due to the opacity value - we didn&#8217;t want to parse the hex value and we used the RGBA color format that included the Alpha channel. But it also enabled us to pass a CSS variable as a semantic colour, for example, to override the focus state of all components.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fFut!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fFut!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 424w, https://substackcdn.com/image/fetch/$s_!fFut!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 848w, https://substackcdn.com/image/fetch/$s_!fFut!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 1272w, https://substackcdn.com/image/fetch/$s_!fFut!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fFut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png" width="1068" height="867" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:867,&quot;width&quot;:1068,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:344974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fFut!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 424w, https://substackcdn.com/image/fetch/$s_!fFut!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 848w, https://substackcdn.com/image/fetch/$s_!fFut!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 1272w, https://substackcdn.com/image/fetch/$s_!fFut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6094de-b454-4e30-b986-82c427b325f7_1068x867.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><pre><code>    "<strong>shadowSm</strong>": {
      "description": "<strong>0 1px 4px 0 rgba(29, 41, 57, .1)</strong>",
      "type": "custom-shadow",
      "value": {
        "shadowType": "dropShadow",
        "radius": 4,
        "color": "#<strong>1d29391a</strong>",
        "offsetX": 0,
        "offsetY": 1,
        "spread": 0
      },</code></pre><p></p><h2>Final thoughts</h2><p>Could we do this whole thing better? Of course.. we did some smart decisions, but we also failed some. Defining the semantic tokens were one of the best approaches we used, especially cause they kept both the designs and code very consistent throughout our daily work. We could have introduced even more of the semantic tokens if we didn&#8217;t have the file limitations, so we could really control the values from Figma directly.</p><p>Overall, we are quite happy of what we developed during the past year! </p><p>We&#8217;re still definitely looking forward to Figma working on the topic of design tokens and have everything done from the same place, in the formats we would need or just in the design token specification. That way we would get the flexibility to pass on values to our codebase in a usable manner, while simplifying the work of the designers and engineers, and keep everything consistent through a well-connected design system.</p>]]></content:encoded></item><item><title><![CDATA[Design process customised to our needs]]></title><description><![CDATA[Meet the team: Kristina is our senior product designer on the Integrations team. Driven by the desire to improve viewers' satisfaction she was part of many engagement tools integration initiatives.]]></description><link>https://techblog.inplayer.com/p/designprocess</link><guid isPermaLink="false">https://techblog.inplayer.com/p/designprocess</guid><dc:creator><![CDATA[Kristina Ivanovska]]></dc:creator><pubDate>Wed, 21 Dec 2022 14:04:19 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 424w, https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 848w, https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1272w, https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;person writing on white paper&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="person writing on white paper" title="person writing on white paper" srcset="https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 424w, https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 848w, https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1272w, https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This December I&#8217;m celebrating my first anniversary as a product designer at InPlayer. It is also the month we launch our new, completely redesigned self-servicing dashboard that we have built in only eight months. The way the design team achieved this in such a short period is thanks to our structured design process. Our Design Director Sandra previously wrote about <a href="https://techblog.inplayer.com/p/how-we-organise-the-design-team-inplayer">how we organize the Design team at InPlayer</a>. As a follow-up, I want to expand on how we customized the design processes to our needs and cherry-picked techniques and tools that suit us best during the complete project life cycle.</p><h2>At the very beginning</h2><p>Whether we start a feature from scratch or redesign an existing one, we communicate the high-level goals with the PMs. The aim at this point is for everybody to be on the same page and understand the crucial elements, the problems we might be facing, and the goals we want to achieve from both user and business perspectives.&nbsp;</p><p>Since designing for the user experience addresses users&#8217; pain points, we form an understanding of the problems they face and come up with the questions we need to be answered to get there. And that helps us create a design success strategy.</p><p>At this point, we are very curious and have tons of questions about the product. This is the crucial moment when we have to slow down and think about all the questions and assumptions we have before thinking about solutions. It is easy to develop design ideas, but it&#8217;s hard to solve the right problem. Building a product with lots of unanswered questions introduces risk. To avoid this, we like to take some time to prepare a good research plan.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jra6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jra6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 424w, https://substackcdn.com/image/fetch/$s_!Jra6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 848w, https://substackcdn.com/image/fetch/$s_!Jra6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 1272w, https://substackcdn.com/image/fetch/$s_!Jra6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jra6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png" width="1456" height="675" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:353802,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Jra6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 424w, https://substackcdn.com/image/fetch/$s_!Jra6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 848w, https://substackcdn.com/image/fetch/$s_!Jra6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 1272w, https://substackcdn.com/image/fetch/$s_!Jra6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff518da23-5a08-4c73-8e65-c50ea536b540_4803x2228.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Our design process lifecycle</figcaption></figure></div><h2>In tune with the user</h2><p>We start our research plan in Notion. This is where the questions we will use for our interview sessions are our first project artifacts. We frame the questions more open-ended to avoid prematurely building the solution into the statement. Even more valuable is having team members participate in the question brainstorming, usually the PM, so we can have more diverse input.</p><p>After reviewing, sorting, and prioritizing, we have a straightforward question in mind. Now we are ready to turn them into a hypothesis and think about how we would answer them. It&#8217;s crucial to have a measurable outcome for the thesis to determine whether it succeeded or failed. Conducting user interviews is one of the methods that has proven to work for us. If we work on a redesign and have an existing product version, we combine it with usability tests. We talk to people, try to understand how they think, act, and feel, and take many notes during the process. We are fortunate to have our CAB (customer advisory board), our base of customer representatives who are willing to help us anytime with such sessions. Also, colleagues from the other company&#8217;s departments, like customer success, sales, and marketing, are the ones that are always here, helping us a lot in answering our questions and confirming our assumptions.</p><p>Performing 3 to 5 sessions helps us start seeing the patterns, validate or invalidate our hypothesis, answer the questions, and at the end, state the problems. Writing a report helps us summarize all of the notes well organized by the severity of the problem. The idea is that everyone on the product team can easily understand the most significant users' pain points and state their biggest concerns. We present the reports at a weekly Product review meeting where we analyze and discuss them together before proceeding further. When we design a possible solution in the ideation process, the problem statement will serve us as our north star.&nbsp;</p><h2>Describe the scope</h2><p>So far, our favorite way of analyzing our research findings is through creating user personas and journey mapping.</p><p>We use user personas to step into the shoes of our customers. We form them by defining their: age, gender, location, occupation, behaviors, budget, needs, and pain points. If we ever encounter a challenging problem, we always refer back to our persona and ask, &#8220;What design best services this user needs?&#8221; And we don&#8217;t narrow down all of our target users into one persona; we create multiple personas to represent our varied users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TtaK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TtaK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TtaK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TtaK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TtaK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TtaK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/a4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TtaK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TtaK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TtaK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TtaK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4505a29-05ed-42f8-b83a-b0fdb3aea17a_1600x900.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">User persona example</figcaption></figure></div><p>We create a user journey map to help us understand what our users will be going through when using our product. Only then can we build the best product for them.</p><p>Representing the user&#8217;s interactions with our product, we believe that the journey maps are beneficial for&nbsp;</p><ul><li><p>Building empathy</p></li><li><p>Providing a &#8220;big picture&#8221;</p></li><li><p>Breaking down silos</p></li><li><p>Bringing focus</p></li><li><p>Revealing opportunities</p></li></ul><p>At the end of this phase, with the problem statement in mind and in close collaboration with our PMs, we write down the requirements and the user stories we need to start working on the solution.</p><h2>Extract a lot of ideas</h2><p>After defining precise requirements, we look at the problem from different perspectives and start to ideate. All designers use different ideation techniques and approach the solution differently. But we all collaborate, try to think outside the box, and explore new angles. Workshops can be organized if needed and don&#8217;t always have to be very structured. It&#8217;s all about creating as many ideas as possible. It&#8217;s an iterative process, and we do not get it all done in the first go; we design, redesign, scrap it and design it all over again. We explore many designs using Figma and our well-known design system. There is a blog post from our dear colleague and design system principal, Mia, where you can read more about <a href="https://techblog.inplayer.com/p/inplayers-design-system-stream-foundations">Stream - InPlayer&#8217;s design system</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!49Nk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!49Nk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 424w, https://substackcdn.com/image/fetch/$s_!49Nk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 848w, https://substackcdn.com/image/fetch/$s_!49Nk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 1272w, https://substackcdn.com/image/fetch/$s_!49Nk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!49Nk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png" width="1456" height="1000" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:725478,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!49Nk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 424w, https://substackcdn.com/image/fetch/$s_!49Nk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 848w, https://substackcdn.com/image/fetch/$s_!49Nk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 1272w, https://substackcdn.com/image/fetch/$s_!49Nk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04dc9-7b6e-46e3-8d12-c7c226222e2f_1604x1102.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Design sprint collaboration</figcaption></figure></div><h2>Prototype the solution</h2><p>When design systems were not &#8220;the thing,&#8221; I used to make prototypes with sketches or wireframes at the very early stage, not focusing on the details but on what needed testing. Now, with our design system, with all rules defined, compliments and patterns created, and even ready-made page templates, the actual design work is more straightforward. We can make high-fidelity designs and focus on the details from the beginning.</p><p>At the end of a creative iteration, we are ready to showcase our work and ask for feedback. On the weekly Design team sync/critique, we present the prototype to the design team first. That is the time to get a valuable opinion from the other designers. I love how we all think in different directions and cover many design aspects. Usually, we announce when someone has something for review in our Slack channel a few days before the meeting so we can have it on the agenda. If some design needs quick feedback  and can&#8217;t wait until the meeting on Friday, we can just send a Figma link in the channel, and the designers will review it when they can and leave us feedback in the form of Figma comments. Whatever the form of feedback is, we have agreed that whoever designer is presenting the work needs to follow these practices:</p><ul><li><p><strong>Set the objectives</strong>. Before starting the critique, we reiterate the goals of the work&#8212;a quick reflection of the persona, current pain points, user tasks, or previous flows. Sending out the work beforehand with written objectives is our practice to avoid the initial reactive feedback based on someone&#8217;s gut reaction.</p></li><li><p><strong>Present quickly and efficiently</strong>. We like to be concise. After presenting, the team can circle back to something that needs more discussion. Sometimes we let other designers see our work as our users may, without much explanation. During the subsequent discussions, questions and explanations will arise naturally.</p></li><li><p><strong>Pre-prepared designs</strong>. We always have them on a separate Figma page, named appropriately by the design version with differences pointed out and the reason we made them. It is good to have the designs available after the meeting in case an extended discussion is needed or someone comes up with an idea later.&nbsp;</p></li></ul><p>Scheduling individual follow-up meetings is also a case if we need to discuss anyone&#8217;s feedback in more detail or if something we work on conflicts with someone else's work. Such sessions can happen at any stage in a design process, and usually, there will be different critique sessions for several iterations of the same design. </p><p>After &#8220;passing&#8221; the design team review/critique, the prototype will be presented in a weekly review session to the Product team. Here we get feedback from the PMs and the CPO. Having varied disciplines in the room always brings fresh perspectives and leads to a more productive outcome. Then we communicate the solution with the engineering team and make sure that the solution is technically feasible. Presenting the work doesn&#8217;t end here. We show it at the company&#8217;s monthly town hall sessions. And if we iterate the design, we do all presentations repeatedly.</p><h2>Prove the validity &nbsp;</h2><p>It is already clear that, as designers, our job is to ensure that we create practical and usable solutions. But what does it mean? How can we be sure that we did it right?&nbsp;</p><p>There is only one way to find out - test the solution. We start validation well before the product gets built and shipped. Before our team determines whether that new feature we&#8217;re building is delightful and easy to use, we run prototype validation to pinpoint critical elements or interactions. Sometimes we find out that many of our ideas won&#8217;t solve the problem, and that&#8217;s a good thing to find at this stage.</p><p>&#8203;&#8203;The value of including prototype validation is in getting answers faster. Even if we fail, we fail fast. We always have PMs and/or other designers in the validation process. The designer facilitates the session, and the PM is the note-taker. The testing candidates are usually the ones we did the interview session with earlier in the process. Later, we share the results with other stakeholders. They shouldn&#8217;t have to rely on our interpretation of what the user is saying, and we make sure they learn from the user directly, so no matter what the next step is, we are all aligned that it relies on data.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vVMI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vVMI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 424w, https://substackcdn.com/image/fetch/$s_!vVMI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 848w, https://substackcdn.com/image/fetch/$s_!vVMI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 1272w, https://substackcdn.com/image/fetch/$s_!vVMI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vVMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png" width="1400" height="988" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:988,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:218276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vVMI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 424w, https://substackcdn.com/image/fetch/$s_!vVMI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 848w, https://substackcdn.com/image/fetch/$s_!vVMI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 1272w, https://substackcdn.com/image/fetch/$s_!vVMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F01a3e29d-31a9-4f1e-808e-550a99bc0846_1400x988.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Validation notes</figcaption></figure></div><h2>Hand it over</h2><p>After doing a ton of a great job, and we are sure that we have a version ready to go into development, we do two things: sync with the devs once again to confirm the technical feasibility of the designs. The second, and one much heavier, is creating a well-rounded, in-depth handoff document. Multiple information layers must be conveyed when a design is handed over to the developer. Marking each section&#8217;s progress, the devs know what&#8217;s work in progress and what is ready for implementation. Using local components we wrap the design system components with relevant content for the project. We describe the interactions in as many details as possible. The research plan and the latest prototype are also linked here. Ultimately, we make sure we mark everything accordingly and attach the document to the relevant tasks in sync with the PM.</p><p>In addition to the screens, interactions, and copy, one must share the design system components, specs, and tokens. All these cover different aspects of the design solution and need to collate into one organized piece.</p><h4>Screens</h4><p>First, we must <strong>name the screens accordingly</strong> and ensure that the file name does not possess any versioning. The name of the screen simply describes its function. Plus, we make sure we use consistent casing when naming the screens. Second, <strong>archive the rest</strong>. At the time of handoff, we collectively chose an option we would build. That is why we highlight the latest version and archive all the older iterations &amp; explorations.&nbsp;</p><h4>Interactions</h4><p><strong>Link the latest prototype</strong>. It helps understand how the user journey is panning out and allows the developer to plan their approach to code. We add explanatory comments to emphasize specific flows, interactions, or what gets away with platform-specific standard interaction patterns. If the interaction is simple, we do not spend time writing comments about it, and if such an interaction pattern exists, we just add a link to it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t27b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t27b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 424w, https://substackcdn.com/image/fetch/$s_!t27b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 848w, https://substackcdn.com/image/fetch/$s_!t27b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 1272w, https://substackcdn.com/image/fetch/$s_!t27b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t27b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png" width="1456" height="867" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:867,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t27b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 424w, https://substackcdn.com/image/fetch/$s_!t27b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 848w, https://substackcdn.com/image/fetch/$s_!t27b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 1272w, https://substackcdn.com/image/fetch/$s_!t27b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F214cfd7e-adc3-46f5-b08d-3619fd7b4b10_1600x953.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Handoff document </figcaption></figure></div><h4>Copy </h4><p>This is something other than what we as designers do or should do, but we have made some input, even though the majority comes from our Support Team Lead Nikola, who always suggests the best copy for our designs. As a design team, we agree on a Design system <strong>copy for consistency</strong>, ex. When to use &#8220;save&#8220; and &#8220;save as&#8220; as a label for a CTA button. We have to include the final copy of our designs in the handoff document.</p><h4>Design system component</h4><p>We want to break down the screen and point out what design system components are used, describe the <strong>variants we use</strong>, and link the component from the design system where a component description and tokens can be found.</p><h4>Specs and tokens</h4><p>We have a screens section named /Specs next to each screen. That section is with highlighted <strong>design specs</strong> usually highlighted using the Outline Figma plugin, and then we write appropriate tokens next to each outlined area.&nbsp;&nbsp;</p><h4>Last but not least</h4><p>We specify the max/min sizes of the component and communicate the breaking points and other responsiveness-related information.</p><h2>Verify the outcome</h2><p>Limited resources, technical issues, and the timing of releases can impact even the best design implementation. As the design gets passed on from the design teams to the engineering teams, each team can change according to various temporal issues, leading to significant misunderstandings. Ultimately, we realize that the final product doesn&#8217;t correspond with the design team&#8217;s result.</p><p>The designer&#8217;s work doesn&#8217;t stop when the design goes into implementation. During this phase, we must evaluate whether the developed product aligns with the design teams&#8217; vision, technical possibility, and user experience. In other words, reviewing the developed project helps verify that all visual and technical components are displayed and behave appropriately.&nbsp;</p><h2>Closure</h2><p>With many product design processes, the challenge is choosing the right one. Every specific product, team, and company has different needs and goals. But we naturally adopted all the processes to our needs and with good reasons.&nbsp;We believe that having our design process in place doesn&#8217;t just give our users an intuitive and pleasurable experience but gives us a chance to iterate and improve our designs and learn along the way doing it.</p>]]></content:encoded></item><item><title><![CDATA[How we re-invented analytics - from product discovery to implementation ]]></title><description><![CDATA[Meet the team: Jovana is a product manager in the reporting and analytics pillar. She led the initiative of re-inventing the analytics experience at InPlayer from scratch.]]></description><link>https://techblog.inplayer.com/p/how-we-re-invented-analytics-from</link><guid isPermaLink="false">https://techblog.inplayer.com/p/how-we-re-invented-analytics-from</guid><dc:creator><![CDATA[Jovana Tozija]]></dc:creator><pubDate>Wed, 14 Dec 2022 12:42:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sUhJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s no secret that analytics at InPlayer were the weakest niche of our product offering. Not being the core product itself and being developed at the very early stages of the product, the analytics and reporting segment of our dashboard provided a very robust solution that ran on outdated php code which nobody wanted to maintain. It additionally caused system errors when large reports were being generated - solely because the system was not designed to handle big data. And having had two sources of truth, one of which was Elasticsearch - a non-relational secondary storage, not intended to be used for report extraction, but for - and the name clearly indicates it - searching, didn&#8217;t make things easier.&nbsp;</p><p>But all that was not the core of the problem. The main problem with our analytics and reporting offering was that it was not providing our customers the data they needed. In today&#8217;s data driven world where business leaders rely purely on data to make strategic business decisions, InPlayers customers were unable to do so because the data that was provided to them didn&#8217;t answer their questions.&nbsp;</p><div class="pullquote"><p>&#8220;This is useless. I don&#8217;t know what I&#8217;m getting.&#8220;</p></div><p><strong>The decision to end procrastination</strong></p><p>Reporting was the elephant in the room. Everybody was aware that it&#8217;s a problem. And everybody procrastinated solving this problem. Because there were more important problems to solve. Until there weren&#8217;t.&nbsp;</p><p>We conducted an investigation in order to quantify the problem and found out some terrifying insights on the amount of time spent on crunching numbers - internal and external.</p><ul><li><p>An account manager spent nearly 2 days per month on creating custom reports for their customers</p></li><li><p>The whole finance team spent nearly 3 days per month on creating custom financial reports for internal and external facing purposes</p></li><li><p>A customer spent on average 2-3 days per month on creating custom reports, pivoting tables and filtering raw data in order to get to some summarised tables and be able to pull out some meaningful insights about the performance of their business</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sUhJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sUhJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 424w, https://substackcdn.com/image/fetch/$s_!sUhJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 848w, https://substackcdn.com/image/fetch/$s_!sUhJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 1272w, https://substackcdn.com/image/fetch/$s_!sUhJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sUhJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png" width="1456" height="1076" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1076,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3564789,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sUhJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 424w, https://substackcdn.com/image/fetch/$s_!sUhJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 848w, https://substackcdn.com/image/fetch/$s_!sUhJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 1272w, https://substackcdn.com/image/fetch/$s_!sUhJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2822190a-3614-470d-a212-61cff0f4a1d3_1964x1452.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Until then, the problem had never been quantified before. Everybody knew it was a problem, just nobody knew how big of a problem it was. After revealing these numbers, it was more than obvious that the time is now.&nbsp;</p><p><strong>User research - the key to solving the real problems</strong></p><p>As opposed to how we did things in the past, we took this time a &#8220;slightly&#8221; different approach. Putting user research at the core of problem solving, we reached out to our customers and conducted a series of user interviews. It was not a particularly difficult task to do, because InPlayer has a customer advisory board which is essentially a group of customers the product team talks to on a regular basis for product discovery, innovation testing &amp; hypothesis validation. In return they get early access to new features, freebies, and similar.</p><p>There were a couple of things we wanted to find out.&nbsp;</p><ol><li><p>How do they use our current data stack?</p></li></ol><p>We asked the customers we interviewed to share their screen. We asked them to show us step by step their working routine with the InPlayer data. How do they get it, where do they click, when do they get it. Why do they get it? How frequently do they get it?&nbsp; These questions were important to identify unoptimised user flows on the UI and identify repetitive patterns that can be optimised in the future.&nbsp;</p><ol start="2"><li><p>Why do they need this data and what do they do afterwards with it?</p></li></ol><p>The more important question we wanted answers to was - what do they do with the reports afterwards. We found out that the raw exports used to be merged with other raw exports. Our customers then applied filters, pivot tables and aggregations only to come at the end with a basic 2x2 table or a simple pie chart that would showcase the performance of their business.&nbsp;</p><p>The key finding was that our customers, if provided with the right information in the right format, actually do not need the raw data at all.&nbsp;</p><ol start="3"><li><p>What KPI&#8217;s do they monitor?</p></li></ol><p>During our interviews we concluded that our raw data exports are used by internal analysts at our customers' side in order to calculate some of the industry standard subscription metrics,&nbsp; like monthly recurring revenue, customer lifetime value and average revenue per user. It was an expectation that as a subscription management service provider we would offer these KPI&#8217;s and metrics out of the box.&nbsp;</p><p><strong>Back to the drawing board</strong></p><p>Knowing all the information we gathered during the interviews, it was time to get back to the drawing board and start analysing the feedback.&nbsp;</p><p>We usually record each interview and have a transcript of the conversation so that we can come back to it later. All those recordings and transcripts were then transferred to a more readable and eye friendly Miro board. The intention was to identify repetitive patterns, pain points and requests.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tJLO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tJLO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 424w, https://substackcdn.com/image/fetch/$s_!tJLO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 848w, https://substackcdn.com/image/fetch/$s_!tJLO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 1272w, https://substackcdn.com/image/fetch/$s_!tJLO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tJLO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png" width="1456" height="378" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:378,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:839678,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tJLO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 424w, https://substackcdn.com/image/fetch/$s_!tJLO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 848w, https://substackcdn.com/image/fetch/$s_!tJLO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 1272w, https://substackcdn.com/image/fetch/$s_!tJLO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85c5ebb7-c878-4aeb-ad2c-490406b6cf6c_2150x558.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It was a pretty difficult job. Analysing qualitative data was probably the toughest job of all. Not only because of the nature of the task, but also because our customer base is very versatile. From large enterprises to small independent publishers, with one time concert streamers to VOD subscription based offerings, we needed to find out what was common for all these people in their data needs. And the problem was that there was very little that all these guys had in common. We went back to the drawing board over and over again - until we concluded: There is no one size fits all for this job!&nbsp;</p><p>So we came up with the solution that we have today - Business model tailored dashboards. We currently support three business models: PPV, Subscription and a combination of both. So whatever your business model is, you would see relevant data that fits your business model.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H1DY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H1DY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 424w, https://substackcdn.com/image/fetch/$s_!H1DY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 848w, https://substackcdn.com/image/fetch/$s_!H1DY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 1272w, https://substackcdn.com/image/fetch/$s_!H1DY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H1DY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png" width="1314" height="960" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1314,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:480245,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H1DY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 424w, https://substackcdn.com/image/fetch/$s_!H1DY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 848w, https://substackcdn.com/image/fetch/$s_!H1DY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 1272w, https://substackcdn.com/image/fetch/$s_!H1DY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F524f83f6-e089-482f-939a-cdc1a8de51dc_1314x960.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Reinvent the experience - Self served data&nbsp;</strong></p><p>Once we cracked the main problem, it was time to work on structuring the data and figuring out who gets to see what. Together with the product designer we came up with a set of dashboards that fit more than 80% of the problems we identified.</p><p>But dashboards are so 2000 and late. We live in the decade of data. And we live in a data driven world. We can&#8217;t always rely on analysts to get us the data we need. Executives and decision makers must be able to quickly get the information they need and make decisions on the go.</p><p>We put self served data at the centre of the new user experience. We came up with a solution where customers would not need to drag and drop measures and dimensions onto X and Y axes in order to find out what the monthly churn rate has been over the last 6 months. Our solution simply enables our customers to search for it: Churn rate last 6 months.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RhPK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RhPK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 424w, https://substackcdn.com/image/fetch/$s_!RhPK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 848w, https://substackcdn.com/image/fetch/$s_!RhPK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 1272w, https://substackcdn.com/image/fetch/$s_!RhPK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RhPK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png" width="1214" height="744" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:1214,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:395513,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RhPK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 424w, https://substackcdn.com/image/fetch/$s_!RhPK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 848w, https://substackcdn.com/image/fetch/$s_!RhPK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 1272w, https://substackcdn.com/image/fetch/$s_!RhPK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3dc7131b-a153-4363-878a-3f0ddbb5fbb1_1214x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The solution gives a wide range of self served options for data analysis. A graph can be sliced with colour by a dimension so that users can segment the data and gain more insights, there are filters on widget and on dashboard level, the explore mode lets our customers customise the graphs to get exactly to the visual they need, and there are options to add time filters and compare and replace existing data. All in the manner of self-serve.&nbsp;</p><p><strong>Validate, validate, validate</strong></p><p>Now that we had put it all together, we had to validate the solution with our CAB members, to see if it actually made sense.&nbsp;</p><p>Validation consisted of another round of scheduled user interviews where we handed our customers a clickable Figma prototype and asked them to use it and tell us what they saw. The key was not to guide them, but rather ask them to perform an action and monitor if our solution was intuitive enough so that they use it the way we intended it to be used. We had to see if the data provided to them was clear, self explanatory and meaningful. If not, that meant that we would have to go back to the drawing board again.&nbsp;</p><p>Luckily enough, our solution was pretty intuitive and satisfactory. After a couple of iteration rounds and small improvements that we implemented during the validation, we were confident that we have the solution that is worth building.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gqwj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gqwj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 424w, https://substackcdn.com/image/fetch/$s_!Gqwj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 848w, https://substackcdn.com/image/fetch/$s_!Gqwj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 1272w, https://substackcdn.com/image/fetch/$s_!Gqwj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gqwj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png" width="1456" height="1060" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1060,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1488819,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gqwj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 424w, https://substackcdn.com/image/fetch/$s_!Gqwj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 848w, https://substackcdn.com/image/fetch/$s_!Gqwj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 1272w, https://substackcdn.com/image/fetch/$s_!Gqwj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb61142d0-93aa-4b6b-a4db-58bc25f4e91b_1860x1354.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="pullquote"><p>&#8220;This is something I would look at every single day. When can we start using it?&#8220;</p></div><p><strong>Measure success</strong></p><p>The product work doesn&#8217;t stop with the validation. As we have just launched our new dashboard as a Beta to a limited set of customers, it is the next goal to monitor user adoption and DAUs/WAUs. Based on current product usage, we aim for 30% of the migrated customers to the new dashboard to be daily active users, and 90% to be weekly active users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KWoE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KWoE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 424w, https://substackcdn.com/image/fetch/$s_!KWoE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 848w, https://substackcdn.com/image/fetch/$s_!KWoE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 1272w, https://substackcdn.com/image/fetch/$s_!KWoE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KWoE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png" width="1394" height="606" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:606,&quot;width&quot;:1394,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:365742,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KWoE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 424w, https://substackcdn.com/image/fetch/$s_!KWoE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 848w, https://substackcdn.com/image/fetch/$s_!KWoE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 1272w, https://substackcdn.com/image/fetch/$s_!KWoE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5437cf73-d4c6-4676-ba3a-5125daea5cff_1394x606.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Our go-to-market strategy also involves a customer satisfaction survey, from which we would derive (again) qualitative data about the satisfaction level of our customers from the new analytics experience, but also a quantitative measure on how satisfied they are. We aim for a score higher than 8.&nbsp;</p><p>If not achieved, you already guessed it - we&#8217;ll have to go to the drawing board again.</p><p><strong>Conclusions</strong></p><p>A huge part of product work is a very thorough process of identifying the biggest problems users have. We must never start building something unless we&#8217;ve made sure that the problem is worth solving and what the outcome of that will be. Investing in time and resources for a thorough research process accelerates the identification of the problems to be solved and helps product managers and executives in making decisions on prioritisation. And it is without a doubt that only product-led companies understand the need and the benefits from investing heavily in user research and validation.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techblog.inplayer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading InPlayer Technology! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[InPlayer's design system "Stream" - Foundations and components (pt. 1/3)]]></title><description><![CDATA[Meet the team: Mia is our CoreXP lead designer of the dashboard and the design system. When she&#8217;s not designing, she&#8217;s most likely walking her dog Molly.]]></description><link>https://techblog.inplayer.com/p/inplayers-design-system-stream-foundations</link><guid isPermaLink="false">https://techblog.inplayer.com/p/inplayers-design-system-stream-foundations</guid><dc:creator><![CDATA[Mihaela Vodeb]]></dc:creator><pubDate>Thu, 01 Dec 2022 10:25:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0n7q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0n7q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0n7q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 424w, https://substackcdn.com/image/fetch/$s_!0n7q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 848w, https://substackcdn.com/image/fetch/$s_!0n7q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 1272w, https://substackcdn.com/image/fetch/$s_!0n7q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0n7q!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png" width="1200" height="827.9401282965075" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:968,&quot;width&quot;:1403,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:574478,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0n7q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 424w, https://substackcdn.com/image/fetch/$s_!0n7q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 848w, https://substackcdn.com/image/fetch/$s_!0n7q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 1272w, https://substackcdn.com/image/fetch/$s_!0n7q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1214b8c1-7ef3-45e8-8483-0cea2a6f113e_1403x968.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Welcome to our 3-part case study where you&#8217;ll learn how, in 8 months, we built an extensive design system from scratch. We will walk you through all aspects of building a design system, including DS principles, foundations, component best practices and how we integrated design tokens.</p><h2>Intro</h2><h4><strong>Why a new core experience and a design system (DS)?</strong></h4><p>The initial version of InPlayer was created in 2010. Since then, the product has expanded significantly, but due to a lack of a design team and design system, the information architecture became confusing, and the UI and UX were inconsistent.</p><p>All of our user research led to the conclusion that the dashboard appeared confusing - customers frequently complained that they lacked the confidence to manage the dashboard. As a result, our Customer Success team (Support + Accounts) had to create extensive user manuals, conduct several training calls per customer, and frequently set things up for them.</p><blockquote><p><em>&#8220;I don&#8217;t understand how to use the app. On top of that, the app looks completely unprofessional and outdated. I would have switched to another product by now if your competitors had the same features as you do.</em></p><p><em>But they don&#8217;t.&#8221;</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gPGY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gPGY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 424w, https://substackcdn.com/image/fetch/$s_!gPGY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 848w, https://substackcdn.com/image/fetch/$s_!gPGY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!gPGY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gPGY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif" width="320" height="320" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:220,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:253494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gPGY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 424w, https://substackcdn.com/image/fetch/$s_!gPGY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 848w, https://substackcdn.com/image/fetch/$s_!gPGY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 1272w, https://substackcdn.com/image/fetch/$s_!gPGY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2bada24d-33ba-4612-94b6-9d99b01bc337_220x220.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>So, we set a goal to define an MVP and rebuild the dashboard from scratch using a new design system in about 8 months.</p><p></p><h2>Before opening Figma&#8230;</h2><p>As a designer, there aren&#8217;t many things that are even remotely as tempting as being given the creative freedom to build a design system from scratch. However, building a design system doesn&#8217;t start with choosing your primary colour&#8230;</p><p></p><h4><strong>Setting up a goal</strong></h4><p>The goal that we set for the new dashboard was to build a modern, slick, yet functional and scalable app, that&#8217;s&nbsp;<strong>self-served.</strong> This means that our customers would be able to complete all flows as seamlessly, confidently and independently as possible, without the need for reading long user guides or getting help from our Customer Success team.</p><p>This goal became our &#8220;north star&#8221; and helped us define the goals of the new DS:</p><ul><li><p><strong>Align</strong>&nbsp;all teams by giving them a more structured way to build the product.</p></li><li><p><strong>Speed up</strong>&nbsp;our design and development process, i.e. focus on meaningful discussions about the problems and the solutions, instead of discussing styles. </p></li><li><p><strong>Improve</strong>&nbsp;<strong>product</strong> <strong>trust</strong>&nbsp;through&nbsp;consistent, familiar and predictable&nbsp;experiences that allow users to accomplish their goals.</p></li><li><p><strong>Promote</strong>&nbsp;<strong>accessibility</strong>&nbsp;of the product by crafting all styles and components to be compliant with the <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">WCAG guidelines</a>.</p></li></ul><p></p><h4><strong>Brand audit</strong></h4><p>To better understand the current state of our existing design ecosystem, we started with a UI inventory of our main interface foundations and components. As a result of this exercise, we identified a lot of inconsistencies, which only proved the need for a more systematic approach to creating, documenting, and maintaining the new design system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qXpr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qXpr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 424w, https://substackcdn.com/image/fetch/$s_!qXpr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 848w, https://substackcdn.com/image/fetch/$s_!qXpr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 1272w, https://substackcdn.com/image/fetch/$s_!qXpr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qXpr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png" width="1414" height="884" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/cd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:884,&quot;width&quot;:1414,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:113386,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qXpr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 424w, https://substackcdn.com/image/fetch/$s_!qXpr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 848w, https://substackcdn.com/image/fetch/$s_!qXpr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 1272w, https://substackcdn.com/image/fetch/$s_!qXpr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd89f1f4-89ad-4bbc-99c4-8f8f7e0cc8d8_1414x884.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Inventory of the old and inconsistent assets</figcaption></figure></div><p></p><h4><strong>Plan</strong></h4><p>The brand audit helped us define priorities and phases for building the DS:</p><ol><li><p>Establish the foundations (colours, typography, icons, grids, etc.)</p></li><li><p>Design the most commonly used form components (buttons, inputs, dropdowns, alerts, etc.) and its variants first</p></li><li><p>Build the essential flows and features</p></li><li><p>Slowly build the rest of the components as needed</p></li></ol><p>All of this work was managed in two-week sprints. This was necessary in order to keep each scope digestible, while delivering value in as little time as possible.</p><p></p><h4><strong>Work smarter, not harder</strong></h4><p>We were aware that we couldn't afford to develop a custom design system on our own because of the rather short timeframe. With the assistance of the developers in the Core Experience team, we carefully examined each of the component libraries that were available and decided to adopt <a href="https://chakra-ui.com/">Chakra UI</a> since it met all of our requirements - it&#8217;s ReactJS based, responsive, themeable, and contains most of the commonly used components.</p><p>The downside of using Chakra UI from a design perspective was that their Figma file was quite weak. Many of the components didn&#8217;t look the same as in code, a number of components were missing, some were not responsive and auto layout was not used in many cases.</p><p>This made it impossible for us to just copy and paste Chakra's Figma components into our DS. Instead we had to draw every single component from scratch.</p><p><em>Not that we minded&#8230;</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IpXj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IpXj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 424w, https://substackcdn.com/image/fetch/$s_!IpXj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 848w, https://substackcdn.com/image/fetch/$s_!IpXj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 1272w, https://substackcdn.com/image/fetch/$s_!IpXj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IpXj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif" width="460" height="242" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:242,&quot;width&quot;:460,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:522568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IpXj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 424w, https://substackcdn.com/image/fetch/$s_!IpXj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 848w, https://substackcdn.com/image/fetch/$s_!IpXj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 1272w, https://substackcdn.com/image/fetch/$s_!IpXj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc51b40f2-1154-4f24-9fea-b9da668ac5a9_460x242.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When we got to the stage of building the foundations and components in our DS, we tried to change Chakra&#8217;s styles as little as possible to avoid unnecessary additional dev work. The main changes that we did were colours and spaces.</p><p></p><h2>High level file structure</h2><p>We followed the <a href="https://atomicdesign.bradfrost.com/">atomic design</a> methodology, however we adapted the structure towards our needs. Below you can see a high level overview of our DS structure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EOF5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EOF5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 424w, https://substackcdn.com/image/fetch/$s_!EOF5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 848w, https://substackcdn.com/image/fetch/$s_!EOF5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 1272w, https://substackcdn.com/image/fetch/$s_!EOF5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EOF5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png" width="1456" height="2028" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2028,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:980625,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EOF5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 424w, https://substackcdn.com/image/fetch/$s_!EOF5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 848w, https://substackcdn.com/image/fetch/$s_!EOF5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 1272w, https://substackcdn.com/image/fetch/$s_!EOF5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed2d062-e8d5-49e4-a495-920c0ca141f8_4796x6680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Foundations</h2><p>When defining all of the foundations of the design system, our main principle was:</p><div class="pullquote"><p><strong>Functionality over appearance</strong></p></div><p></p><h3>Colours, contrasts and tokens</h3><h4>Primary colour</h4><p>Since InPlayer&#8217;s logo is an orange &#8594; magenta gradient, from a design consistency perspective it made sense to use one of those colours as the primary colour, but that would have been a bad choice from a <em>functionality</em> perspective. Both of the colours are typically used to communicate warning or error states, so using them as primary colour in a web application can be very confusing and misleading.</p><h4>Colour palettes</h4><p>For the primary colour we took inspiration from the lighting that&#8217;s often used in cinemas and arena events, and ended up using a &#8220;cold&#8221; palette, with purple/indigo as a primary colour.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oY8i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oY8i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 424w, https://substackcdn.com/image/fetch/$s_!oY8i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 848w, https://substackcdn.com/image/fetch/$s_!oY8i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 1272w, https://substackcdn.com/image/fetch/$s_!oY8i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oY8i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png" width="1456" height="894" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:894,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4624199,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oY8i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 424w, https://substackcdn.com/image/fetch/$s_!oY8i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 848w, https://substackcdn.com/image/fetch/$s_!oY8i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 1272w, https://substackcdn.com/image/fetch/$s_!oY8i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9014086c-6647-4c5a-b4d0-21864cc4cc69_2128x1306.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Inspiration</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ev9l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ev9l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 424w, https://substackcdn.com/image/fetch/$s_!Ev9l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 848w, https://substackcdn.com/image/fetch/$s_!Ev9l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 1272w, https://substackcdn.com/image/fetch/$s_!Ev9l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ev9l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png" width="1456" height="956" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:956,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157038,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ev9l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 424w, https://substackcdn.com/image/fetch/$s_!Ev9l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 848w, https://substackcdn.com/image/fetch/$s_!Ev9l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 1272w, https://substackcdn.com/image/fetch/$s_!Ev9l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F321c96f2-191f-4c04-a22d-aa88f4319bc2_3054x2006.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Dashboard template</figcaption></figure></div><h4>Contrasts</h4><p>When defining each colour, it was really important for us to also define the allowed foreground shade (aka &#8220;onColour&#8221;) for each background shade. So for example, on <code>grey/300</code>, the minimum allowed foreground shade of grey would be <code>grey/800</code> in order to achieve the minimum allowed AA contrast.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mu0F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mu0F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 424w, https://substackcdn.com/image/fetch/$s_!mu0F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 848w, https://substackcdn.com/image/fetch/$s_!mu0F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 1272w, https://substackcdn.com/image/fetch/$s_!mu0F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mu0F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png" width="1456" height="480" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/cc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221623,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mu0F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 424w, https://substackcdn.com/image/fetch/$s_!mu0F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 848w, https://substackcdn.com/image/fetch/$s_!mu0F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 1272w, https://substackcdn.com/image/fetch/$s_!mu0F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc6e8817-623b-44e3-ba3b-53702b136d9f_2322x766.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We also wanted to achieve colour <strong>and</strong> contrast harmony not just within each palette, but also in each vertical. For example, since the shade 500 was set to be the main shade in each palette, we made sure that the 500 shade in each palette can be used with a white foreground colour (a combination mainly used for buttons and toasters).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gGMI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gGMI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 424w, https://substackcdn.com/image/fetch/$s_!gGMI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 848w, https://substackcdn.com/image/fetch/$s_!gGMI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 1272w, https://substackcdn.com/image/fetch/$s_!gGMI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gGMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png" width="134" height="427.8863636363636" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1686,&quot;width&quot;:528,&quot;resizeWidth&quot;:134,&quot;bytes&quot;:118928,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gGMI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 424w, https://substackcdn.com/image/fetch/$s_!gGMI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 848w, https://substackcdn.com/image/fetch/$s_!gGMI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 1272w, https://substackcdn.com/image/fetch/$s_!gGMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff567b50d-ee70-444f-bc52-a6e1261d2172_528x1686.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>By defining all contrast rules in the DS foundations part, we didn&#8217;t have to worry later about contrast in the components, because all of the contrast rules had already been defined.</strong></p><p>We mostly used the <a href="https://www.figma.com/community/plugin/733159460536249875/A11y---Color-Contrast-Checker">A11y - Color Contrast Checker</a> plugin, because it allows simple shade adjusting for easier contrast match.</p><p></p><h4>Colour tokens</h4><p>After defining all of the colours, shades and contrasts, we started defining the colour tokens. The tokens had a crucial role in the consistency of colour usage across all designs and code. For example, if we needed to define a border colour for a form component, we didn&#8217;t need to remember if it&#8217;s <code>grey/300</code>, <code>grey/400</code> or <code>grey/500</code>. We simply applied the token <code>form/border</code> and that was it. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BkpC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BkpC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 424w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 848w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1272w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BkpC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png" width="1456" height="488" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/aa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:488,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:156778,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BkpC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 424w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 848w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1272w, https://substackcdn.com/image/fetch/$s_!BkpC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faa980477-20c3-4c12-a180-c7be3849e30c_1926x646.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZCKy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZCKy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 424w, https://substackcdn.com/image/fetch/$s_!ZCKy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 848w, https://substackcdn.com/image/fetch/$s_!ZCKy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 1272w, https://substackcdn.com/image/fetch/$s_!ZCKy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZCKy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png" width="1456" height="1067" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1067,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:402722,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZCKy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 424w, https://substackcdn.com/image/fetch/$s_!ZCKy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 848w, https://substackcdn.com/image/fetch/$s_!ZCKy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 1272w, https://substackcdn.com/image/fetch/$s_!ZCKy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb4eaa2-1899-4fae-87a1-8794159b6cf1_2200x1612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There isn&#8217;t a single component in our DS with a &#8220;loose&#8221; style (e.g. Red/300). All components are built with tokens (apart from space, size and border radius tokens, because of Figma&#8217;s limitations).</p><div class="pullquote"><p>A case study about how we defined and use design tokens is coming soon in Part 2!</p></div><h3>Sizes, spacing and grid</h3><p>We then continued with defining the base units, because how you define the base units will determine the typography specs, sizes and paddings for all components.</p><p>We opted for the commonly used 8pt linear scale for elements, with a 2pt and 4pt half step for spacing icons and other smaller elements, which worked well with Chakra&#8217;s own base units.</p><p>We use 4pt baseline grid for typography which means the line heights are always divisible by 4. This also ensures that when a component contains text + paddings (e.g. button, inputs, etc.), the height of the component will fit perfectly on the 8pt grid.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dPLX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dPLX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 424w, https://substackcdn.com/image/fetch/$s_!dPLX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 848w, https://substackcdn.com/image/fetch/$s_!dPLX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 1272w, https://substackcdn.com/image/fetch/$s_!dPLX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dPLX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png" width="346" height="187.2169898430286" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:586,&quot;width&quot;:1083,&quot;resizeWidth&quot;:346,&quot;bytes&quot;:32359,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dPLX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 424w, https://substackcdn.com/image/fetch/$s_!dPLX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 848w, https://substackcdn.com/image/fetch/$s_!dPLX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 1272w, https://substackcdn.com/image/fetch/$s_!dPLX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F29ba986b-2844-43f4-aeda-beec38c0b998_1083x586.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Typography</h3><p>Chakra&#8217;s font of choice is <em>Inter</em>. This worked perfectly for us, because that was our preferred font too. </p><p>We decided to tweak Chakra&#8217;s text styles, because we wanted to follow <a href="https://rsms.me/inter/dynmetrics/">Inter&#8217;s guidelines</a> for how to best use the font, while making sure that all of the line heights fit our 4pt baseline grid.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rBI7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rBI7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 424w, https://substackcdn.com/image/fetch/$s_!rBI7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 848w, https://substackcdn.com/image/fetch/$s_!rBI7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 1272w, https://substackcdn.com/image/fetch/$s_!rBI7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rBI7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png" width="1074" height="1085" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1085,&quot;width&quot;:1074,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144467,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rBI7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 424w, https://substackcdn.com/image/fetch/$s_!rBI7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 848w, https://substackcdn.com/image/fetch/$s_!rBI7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 1272w, https://substackcdn.com/image/fetch/$s_!rBI7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1b54b2c2-a7ad-41e1-94a7-dcdee8494862_1074x1085.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Components</h2><h4>Base component and variants</h4><p>At the moment of writing this blog post, we have 64 components in total. </p><p>All of the components have been formed by using nested base components so that when we make changes, we only make them in the base component, instead of in each variant of the component.</p><p>When we started with the design system, Figma hadn&#8217;t released boolean properties yet, so most of the components had a ridiculous number of variants. For example, the first version of the <em>Input</em> component pre boolean props contained <strong>391</strong> variants (with 66 variants in the base component), but after reworking the component to use boolean props, there were only <strong>39</strong> variants (with 26 in the base component).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VYJT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VYJT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 424w, https://substackcdn.com/image/fetch/$s_!VYJT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 848w, https://substackcdn.com/image/fetch/$s_!VYJT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 1272w, https://substackcdn.com/image/fetch/$s_!VYJT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VYJT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png" width="1221" height="1267" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1267,&quot;width&quot;:1221,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!VYJT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 424w, https://substackcdn.com/image/fetch/$s_!VYJT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 848w, https://substackcdn.com/image/fetch/$s_!VYJT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 1272w, https://substackcdn.com/image/fetch/$s_!VYJT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96420c5e-9f83-4e25-aaf0-dd4cf5e169b7_1221x1267.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Old <em>Input</em> component with 391 variants</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N5I4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N5I4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 424w, https://substackcdn.com/image/fetch/$s_!N5I4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 848w, https://substackcdn.com/image/fetch/$s_!N5I4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 1272w, https://substackcdn.com/image/fetch/$s_!N5I4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N5I4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif" width="1278" height="352" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:352,&quot;width&quot;:1278,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1221949,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N5I4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 424w, https://substackcdn.com/image/fetch/$s_!N5I4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 848w, https://substackcdn.com/image/fetch/$s_!N5I4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 1272w, https://substackcdn.com/image/fetch/$s_!N5I4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0e713279-2b1a-43c0-a3c4-8006466370d1_1278x352.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Customising the <em>Input</em> component with boolean props</figcaption></figure></div><p></p><h4>Accessibility</h4><p>Making the colour contrasts for each component in the DS to be WCAG compliant is not enough to achieve DS accessibility. Some of the things that we also took into consideration were:</p><ul><li><p><strong>Hover </strong><em><strong>and</strong></em><strong> focus state</strong> on components which ensures that each piece of UI that&#8217;s meant to be interacted with, has defined states for both mouse and keyboard interaction.</p></li><li><p><strong>Label on Inputs and Selects</strong>, as opposed to using the placeholder text as a label, because if a screen reader comes across an input field <em>without</em> a label, it will try to find some text in close proximity to use as the label. </p></li><li><p><strong>Validation, error and helper texts</strong> on Inputs and other form components.</p></li><li><p><strong>Using double visual cues for messaging components</strong> (e.g. Alert) - we&#8217;re using icons in addition to just using colour to express intent (success, error, warning), because relying on colour alone is not enough.</p></li><li><p>Hovering over an IconButton always triggers a tooltip that explains what action the icon represents.</p></li></ul><h4>Autolayout</h4><p>All of our components are fully responsive by using Figma&#8217;s autolayout.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a_Y3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a_Y3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 424w, https://substackcdn.com/image/fetch/$s_!a_Y3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 848w, https://substackcdn.com/image/fetch/$s_!a_Y3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 1272w, https://substackcdn.com/image/fetch/$s_!a_Y3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a_Y3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif" width="1140" height="502" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:1140,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3462043,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a_Y3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 424w, https://substackcdn.com/image/fetch/$s_!a_Y3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 848w, https://substackcdn.com/image/fetch/$s_!a_Y3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 1272w, https://substackcdn.com/image/fetch/$s_!a_Y3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F070e96d2-c93c-4707-976e-f47a0e540f7a_1140x502.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h4>Placeholder/slot components</h4><p>Slot components are one of the best tricks we&#8217;ve incorporated in our DS. We use them in all components that need to contain variable nested components or different number of nested components, so that we don&#8217;t need to detach the instances from the main components in order to customise the instance.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D3AO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D3AO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 424w, https://substackcdn.com/image/fetch/$s_!D3AO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 848w, https://substackcdn.com/image/fetch/$s_!D3AO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 1272w, https://substackcdn.com/image/fetch/$s_!D3AO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D3AO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif" width="1304" height="370" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:370,&quot;width&quot;:1304,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:476624,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D3AO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 424w, https://substackcdn.com/image/fetch/$s_!D3AO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 848w, https://substackcdn.com/image/fetch/$s_!D3AO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 1272w, https://substackcdn.com/image/fetch/$s_!D3AO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F44bb3796-38ad-43ee-8558-504949033df6_1304x370.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Changing the number of slots in a component without detaching the instance</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PNVQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PNVQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 424w, https://substackcdn.com/image/fetch/$s_!PNVQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 848w, https://substackcdn.com/image/fetch/$s_!PNVQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 1272w, https://substackcdn.com/image/fetch/$s_!PNVQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PNVQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif" width="946" height="602" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:602,&quot;width&quot;:946,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1337120,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PNVQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 424w, https://substackcdn.com/image/fetch/$s_!PNVQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 848w, https://substackcdn.com/image/fetch/$s_!PNVQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 1272w, https://substackcdn.com/image/fetch/$s_!PNVQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f54e287-783a-4a91-9b1e-d02a948c183d_946x602.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Swapping slots with components in the modal component </figcaption></figure></div><div class="pullquote"><p><strong>Pro tip: Nesting slot components<br></strong>If you need to swap a slot in a component with a component that is built from the slot component, you can create 2 slot components in Figma.</p></div><p></p><h4>Plugins</h4><p><a href="https://www.figma.com/community/plugin/1116018586739867857">Propstar</a> was also a great find that I stumbled upon on Instagram by chance and it cleaned up our DS massively. The plugin generates all possible instances of a component (given that some of them are not shown if you use boolean props), including every combination of variants and component properties, in a labelled table. Even the most heavy components look simple with this plugin.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T0Fx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T0Fx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 424w, https://substackcdn.com/image/fetch/$s_!T0Fx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 848w, https://substackcdn.com/image/fetch/$s_!T0Fx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 1272w, https://substackcdn.com/image/fetch/$s_!T0Fx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T0Fx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif" width="224" height="224" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:200,&quot;resizeWidth&quot;:224,&quot;bytes&quot;:505454,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T0Fx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 424w, https://substackcdn.com/image/fetch/$s_!T0Fx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 848w, https://substackcdn.com/image/fetch/$s_!T0Fx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 1272w, https://substackcdn.com/image/fetch/$s_!T0Fx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3041c87-1c87-4022-9351-0633a1b035d4_200x200.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!35fd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!35fd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 424w, https://substackcdn.com/image/fetch/$s_!35fd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 848w, https://substackcdn.com/image/fetch/$s_!35fd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 1272w, https://substackcdn.com/image/fetch/$s_!35fd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!35fd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png" width="1456" height="1047" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1047,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:832592,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!35fd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 424w, https://substackcdn.com/image/fetch/$s_!35fd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 848w, https://substackcdn.com/image/fetch/$s_!35fd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 1272w, https://substackcdn.com/image/fetch/$s_!35fd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab9c0ba-6853-45f0-a9a4-5d6e1ecb9183_2336x1680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Button</em> component organisation using Propstar</figcaption></figure></div><p></p><h4>Component patterns</h4><p>ComponentPattern is a component stored in the design system, which has been created from a corresponding component in the design system and then overridden with content that&#8217;s fixed and appears on multiple screens on the dashboard (e.g. specific page header, tabs, &#8220;Save changes&#8221; modal, etc.).</p><p>We decided to use component patterns because if we decide to make changes to the overridden instances, instead of editing the content in every occurrence of the instance, we would just make changes in the component pattern component.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rs2P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rs2P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 424w, https://substackcdn.com/image/fetch/$s_!Rs2P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 848w, https://substackcdn.com/image/fetch/$s_!Rs2P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 1272w, https://substackcdn.com/image/fetch/$s_!Rs2P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rs2P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png" width="998" height="230" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/66b5b839-1acd-486c-883b-91738268a782_998x230.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:230,&quot;width&quot;:998,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22452,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Rs2P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 424w, https://substackcdn.com/image/fetch/$s_!Rs2P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 848w, https://substackcdn.com/image/fetch/$s_!Rs2P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 1272w, https://substackcdn.com/image/fetch/$s_!Rs2P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F66b5b839-1acd-486c-883b-91738268a782_998x230.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">PageHeader component</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_JDJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_JDJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 424w, https://substackcdn.com/image/fetch/$s_!_JDJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 848w, https://substackcdn.com/image/fetch/$s_!_JDJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 1272w, https://substackcdn.com/image/fetch/$s_!_JDJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_JDJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png" width="1036" height="609" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:609,&quot;width&quot;:1036,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_JDJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 424w, https://substackcdn.com/image/fetch/$s_!_JDJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 848w, https://substackcdn.com/image/fetch/$s_!_JDJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 1272w, https://substackcdn.com/image/fetch/$s_!_JDJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a901c0c-c591-4175-811d-93d0eeda6a66_1036x609.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">PageHeaderPattern</figcaption></figure></div><p>For example, the PageHeaderPattern where the title is &#8220;Video assets&#8221; is currently used in hundreds of screens. If we decide to change the title to just &#8220;Videos&#8221;, we will just need to change the title in the pattern component and simply update the PageHeaderPattern component in each file.</p><h2>Documentation</h2><p>Our Figma documentation consists of two parts:</p><ol><li><p>A guide on how to use the component (intended for designers, and devs)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iyO3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iyO3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 424w, https://substackcdn.com/image/fetch/$s_!iyO3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 848w, https://substackcdn.com/image/fetch/$s_!iyO3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 1272w, https://substackcdn.com/image/fetch/$s_!iyO3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iyO3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png" width="512" height="534.9253731343283" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:871,&quot;resizeWidth&quot;:512,&quot;bytes&quot;:98560,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iyO3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 424w, https://substackcdn.com/image/fetch/$s_!iyO3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 848w, https://substackcdn.com/image/fetch/$s_!iyO3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 1272w, https://substackcdn.com/image/fetch/$s_!iyO3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5d00b65-a419-4544-b99f-fbb5811052d5_871x910.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p></li><li><p>Tokens documentation (mainly intended for devs)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Go5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Go5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 424w, https://substackcdn.com/image/fetch/$s_!4Go5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 848w, https://substackcdn.com/image/fetch/$s_!4Go5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 1272w, https://substackcdn.com/image/fetch/$s_!4Go5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Go5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png" width="458" height="566.5722070844687" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dd661a93-ae62-471e-9637-7f71980982c8_734x908.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:908,&quot;width&quot;:734,&quot;resizeWidth&quot;:458,&quot;bytes&quot;:95258,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Go5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 424w, https://substackcdn.com/image/fetch/$s_!4Go5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 848w, https://substackcdn.com/image/fetch/$s_!4Go5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 1272w, https://substackcdn.com/image/fetch/$s_!4Go5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd661a93-ae62-471e-9637-7f71980982c8_734x908.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p></li></ol><p> </p><h2>Design fast, test and iterate</h2><p>Each component in a design system may look absolutely flawless when viewed in isolation as a grid of variants. However, users don't engage with it in that way.</p><p>As we were building the foundations and the initial set of components, we were constantly performing visual DS tests. We tested each component in different dashboard pages and UI patterns, in order to be able to see how different components look like when positioned next/close to each other, to test sizes, paddings and margins, and find subtle component inconsistencies.</p><p>These exercises helped us identify things that could be improved early on in the design phase, which we would have otherwise missed.</p><p>Sometimes, improving a component meant fundamentally altering its structure, which had an impact on the instances of the component used in our design files. Here&#8217;s how we handled those situations:  </p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:58431011,&quot;url&quot;:&quot;https://techblog.inplayer.com/p/pro-tip-updating-a-components-structure&quot;,&quot;publication_id&quot;:505805,&quot;publication_name&quot;:&quot;InPlayer Technology&quot;,&quot;publication_logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/635fa410-acb2-4d32-b00c-d8bbef4ef21d_443x443.png&quot;,&quot;title&quot;:&quot;Pro tip: Updating a component's structure in Figma without introducing breaking changes&quot;,&quot;truncated_body_text&quot;:&quot;While working with Design Systems and Figma&#8217;s component libraries, we often have to introduce more structural changes that might affect other files that are using our library&#8217;s components. We, the design team at InPlayer, have found a way to introduce changes in the library&#8217;s components that won&#8217;t affect the used instances of the components in current o&#8230;&quot;,&quot;date&quot;:&quot;2022-08-11T08:56:28.268Z&quot;,&quot;like_count&quot;:0,&quot;comment_count&quot;:0,&quot;bylines&quot;:[],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://techblog.inplayer.com/p/pro-tip-updating-a-components-structure?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!Ru82!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F635fa410-acb2-4d32-b00c-d8bbef4ef21d_443x443.png" loading="lazy"><span class="embedded-post-publication-name">InPlayer Technology</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Pro tip: Updating a component's structure in Figma without introducing breaking changes</div></div><div class="embedded-post-body">While working with Design Systems and Figma&#8217;s component libraries, we often have to introduce more structural changes that might affect other files that are using our library&#8217;s components. We, the design team at InPlayer, have found a way to introduce changes in the library&#8217;s components that won&#8217;t affect the used instances of the components in current o&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 years ago</div></a></div><h2>DS sync meetings</h2><p>We conducted weekly DS sync meetings with the frontend devs from the Core Experience team, in addition to generating comprehensive design tokens documentation, to ensure that our designs in Figma made sense and to examine the components that have been translated in code.</p><div class="pullquote"><p>A case study about how we built the components in code is coming soon in Part 3!</p></div><p>We also had sync meetings with the Frontend developers from the rest of the teams, so that all teams are aligned with the latest DS updates.</p><h2>Conclusion</h2><p>Apart from following all of the guidelines and best practices for each style and component, one of the most important things to remember when building a design system is to <strong>know your users</strong> and then <strong>build for functionality over (</strong><em><strong>just)</strong></em><strong> appearance</strong>. Having a Dribbble-worthy DS won't help you attract new users or keep the ones you already have. It&#8217;s your product&#8217;s simplicity, usability, and consistency that will determine its success or failure. At every stage of building a DS, keep in mind that you are designing for humans with a range of technological proficiencies, as well as cognitive and visual abilities.</p>]]></content:encoded></item><item><title><![CDATA[How we organise the Design team @ InPlayer]]></title><description><![CDATA[Meet the team: Sandra is our Director of design. Also a sourdough bread aficionado :D]]></description><link>https://techblog.inplayer.com/p/how-we-organise-the-design-team-inplayer</link><guid isPermaLink="false">https://techblog.inplayer.com/p/how-we-organise-the-design-team-inplayer</guid><dc:creator><![CDATA[Sandra]]></dc:creator><pubDate>Fri, 18 Nov 2022 14:43:27 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;re almost hitting the 1 year milestone since we all started working together as a design team, so we figured it&#8217;s a nice occasion to start sharing how we organised ourselves and contributed into building a great product revamp.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" width="1080" height="720" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;people holding miniature figures&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="people holding miniature figures" title="people holding miniature figures" srcset="https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1566140967404-b8b3932483f5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwzMDAzMzh8MHwxfHNlYXJjaHwzOXx8cHV6emxlfGVufDB8fHx8MTY2ODcwNTI1Nw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@vladhilitanu">Vlad Hilitanu</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techblog.inplayer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading InPlayer Technology! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Product &amp; Engineering </h3><p>Let&#8217;s start with a short intro, the way we are working together is thanks to our CPO Edit Kov&#225;cs who introduced a product &amp; design (re)organisation when she joined the company last year. </p><p>The <strong>Product team</strong> consists of 3 Product managers, led by the <em>CPO</em>, and 4 Product designers, led by the <em>Director of design </em>reporting to the CPO. We operate together on the product side, while on the engineering, we participate as part of the product engineering teams.</p><p>The four <strong>Engineering teams</strong> are split based on different areas of our product and each of them have a Product manager (currently two of the teams share one PM), Product designer, and - depending on the product area and the need of specific profiles - Backend engineers, Frontend engineers, Data engineers (in the Analytics team), Platform engineers and QA engineers who are all led by the <em>Software Development Managers</em> (SDMs). The teams are cross functional, and if needed share team members, so whenever we have common projects we join forces with very close collaboration for all the joint efforts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SfO9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SfO9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 424w, https://substackcdn.com/image/fetch/$s_!SfO9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 848w, https://substackcdn.com/image/fetch/$s_!SfO9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 1272w, https://substackcdn.com/image/fetch/$s_!SfO9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SfO9!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png" width="1200" height="539.8351648351648" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:655,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:178303,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SfO9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 424w, https://substackcdn.com/image/fetch/$s_!SfO9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 848w, https://substackcdn.com/image/fetch/$s_!SfO9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 1272w, https://substackcdn.com/image/fetch/$s_!SfO9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9d011f-a923-4ba4-adf1-884bc75ba5b2_4306x1938.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Product design team</h3><p>Our team was gathered as a very diverse group with different design skills: we adopted one re-assigned designer from the marketing to product team (junior) and the rest were part of an intentional hiring strategy through all different levels - from intermediate to experienced (seniors). </p><p>In the past year, we managed to learn how to work together in a consistent manner, contribute to the common goals, and boost each other&#8217;s communication &amp; practical skills. I&#8217;m very proud of the culture, open feedback and mentorship approach that we managed to cultivate and how it helped us thrive.</p><h3>Responsibilities</h3><p>As designers, we are part of the <em>Product team</em> which has been a great and amazing change for most of us that haven&#8217;t worked on products before. Being involved, from the very beginning of setting a goal to prioritising and learning more about our business, was a great way for us to be aware of what&#8217;s coming, to be able to adapt to changes and fluid priorities and really contribute to the planning of our chunks of product without any miscommunication along the way.</p><p>We were heavily involved in the product discovery phase, participating in all the initial customer interviews and contributing in the <em>Design document</em> which is a living document for a whole initiative&#8217;s lifecycle - don&#8217;t mind the name - it includes the business case, research phase, reports, as well as designs, prototypes, high-level estimations and technical planning. </p><p>Not to get lost about who does what in the whole process and output artefacts, we used the <a href="https://project-management.com/understanding-responsibility-assignment-matrix-raci-matrix/">RACI matrix</a> so we clarified who is an owner of any initiative or document, and who just needs to be kept in the loop. </p><p>Hopefully we&#8217;ll reveal more about the way the product team works in a following blog post.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y6yn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y6yn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y6yn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y6yn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y6yn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y6yn!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg" width="1456" height="532" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/dde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:532,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:371085,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y6yn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y6yn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y6yn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y6yn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde34031-5926-44ce-8db9-75466f82c4f1_3309x1208.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Process, artefacts &amp; RACI</figcaption></figure></div><p></p><h3>Documents &amp; templates</h3><p>In order to facilitate repetitive work, whoever started writing some form of document, we tended to create it as a template and then iterate on it. This kept us consistent and every collaborator outside the design team knew where to find the things they needed. All the research and Figma links are always linked in the appropriate <em>Design document, </em>but we also interlinked whenever we considered it useful.</p><p>Some of the documents and templates we created along the process:</p><ul><li><p>Defining a research plan (Notion)</p></li><li><p>Conducting the necessary research items including interviews with customers, journey maps, user flows, workshop templates, etc (Notion, Figma, Miro, Google Meet)</p></li><li><p>Research reports (Notion)</p></li><li><p>Design critique sessions among team members (Figma, Miro)</p></li><li><p>(Iterating on) design system components &amp; libraries, design research &amp; explorations, UI solutions, and prototypes (Figma)</p></li><li><p>Usability testing &amp; reports (Google Meet, Notion)</p></li><li><p>Syncs with the development team on feasibility (Figma, Miro, Google Meet)</p></li><li><p>Design handoff documents with all possible flows for a user (Figma)</p></li><li><p>Tasks for research, design implementation and designing &amp; building of components with checklists as a guideline that can be adapted to make sense for the specific task (Notion)</p></li><li><p>Follow-up on the implemented changes (Storybook, Daily environment, Notion)</p></li></ul><p>We might share more about our templates in the future.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8NY6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8NY6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 424w, https://substackcdn.com/image/fetch/$s_!8NY6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 848w, https://substackcdn.com/image/fetch/$s_!8NY6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 1272w, https://substackcdn.com/image/fetch/$s_!8NY6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8NY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png" width="442" height="535.5129375951294" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1592,&quot;width&quot;:1314,&quot;resizeWidth&quot;:442,&quot;bytes&quot;:310460,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8NY6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 424w, https://substackcdn.com/image/fetch/$s_!8NY6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 848w, https://substackcdn.com/image/fetch/$s_!8NY6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 1272w, https://substackcdn.com/image/fetch/$s_!8NY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F051786bb-8ac2-4d98-9850-d85d3a8c1393_1314x1592.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An example template for a &#8220;component&#8221; task</figcaption></figure></div><p>In order to keep track of what we have decided both for the design system and the UI and UX patterns we use throughout our app, we have introduced the <em><strong>Design decisions document</strong></em> in Notion, where we write down all of the decisions that span across teams, we update with topics for discussion and to-do items weekly, track the following steps (like create a dev task), etc. We cover details about components and changing token values, but also UX patterns that we follow across the app. It has become one of our go-to documents that we really do keep up to date.</p><p>We also keep a resource base of links, tools, courses, best practices, case studies etc. It&#8217;s nice to have a way to come back to one topic without searching for the best resources you can find out there.</p><h3>Cross-functional collaboration</h3><p>As part of the product team, we agree on the research methods, the data we need to gather, backlog grooming, even in fine-tuning the user stories.. in general, the <em>Designers</em> collaborate on daily basis with our beloved <em><strong>Product managers</strong></em>. The design team is also involved in the details of the <em>Design document</em>, giving feedback early on on what is missing as an input for the planned work.</p><p>For the research needs, since we worked on an existing product with features customers already use, we collaborated on daily basis with out Customer Success team - the <em><strong>Account managers</strong></em> and <em><strong>Customer support</strong></em> team members. We now consider them an initial gold mine of information gained by working close to our customers throughout the years. </p><p>Some of our customers were offered to be a part of the <em><strong>Customer Advisory Board</strong></em> and we&#8217;re happy they accepted spending their time with us in interviews and usability testings ran by the product managers and designers. From these pleasant and laid-back discussions, the product team gained valuable feedback that is greatly appreciated. We built the <em>Personas</em> based on the customer interviews and insights, and they were the basis as a guiding star when we discussed some customers&#8217; use cases. In return the customers got a sneak peek into our latest work and will be included in the beta release that&#8217;s coming very soon!</p><p>As part of the development process - we are part of the grooming, planning and retro sessions within the <em><strong>Engineering teams</strong></em>, giving introduction to the designs and coordination of what needs to be done in the following sprint. Since we were creating the design components in Figma as part of our <em>Design system &#8220;Stream&#8221;</em>, we were very involved with frontend decisions about their implementation, but also conducting design reviews after they were built in Storybook and the daily environment. This turned out to be a great success, bringing great quality not only on the design details, but also improvements of the user flows throughout the app.</p><p>We also ran a <em>Design sprint workshop</em>, which significantly brought light to everyone about the benefits of such collaborations.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vzY2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vzY2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 424w, https://substackcdn.com/image/fetch/$s_!vzY2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 848w, https://substackcdn.com/image/fetch/$s_!vzY2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 1272w, https://substackcdn.com/image/fetch/$s_!vzY2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vzY2!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png" width="1200" height="294.2307692307692" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:357,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:382588,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vzY2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 424w, https://substackcdn.com/image/fetch/$s_!vzY2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 848w, https://substackcdn.com/image/fetch/$s_!vzY2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 1272w, https://substackcdn.com/image/fetch/$s_!vzY2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc21c1d1-9118-4a68-9b16-d260e8b49b7e_1653x405.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">An example of the cross-functional Design sprint workshop board</figcaption></figure></div><p></p><h3>Design system</h3><p>A very big part of our work went into our Design system which we named &#8220;Stream&#8221; - appropriately related to our video monetisation platform :) We introduced a whole new way of working to both designers and engineers that took away a lot of pains of possible misunderstandings and mis-implementation of features on the long run. </p><p>Investing time into building the design system with solid foundations, with a flexible atomic-based approach, solid documentation for proper usage, and design tokens synced directly into our codebase, we have gained a huge advantage into delivering designs and code implementation in a fast and consistent manner. </p><p>The <em><strong>Core XP</strong></em> team is the owner of the Design system and the core of the new dashboard app we redesigned during the past year.</p><p>For the ones interested, detailed blog posts on the design system will follow!</p><h3>Meetings</h3><p>We participate in the <em>Product team</em> meetings including weekly <em>Product sync</em>, <em>Product review</em> and <em>Product learning</em> meetings with the <em>Product managers</em>.</p><p>In the beginning when we got to get to know each other as a design team, we ran several design team exercises like the &#8220;Team strengths&#8221; aka the skill spider-map and discussed heavily on the meetings we&#8217;d need in order to stay up to date, get valuable feedback and in general work in a more collaborative manner. </p><p>We started off with one <em><strong>Design sync</strong></em> meeting a week and recurring 121 (one-to-one) meetings between me (as a Director of design) and each designer.</p><p>During the <em>Design sync</em> meetings, we tend to discuss what everyone is working on and offer design-eye feedback before we present on the <em>Product review</em> meeting the following Monday. To make sure we all have the same level of understanding, we start with showcasing the problem, challenges we had and experiments we have been trying out in order to achieve something. </p><p>Sometimes, we use the <strong>design critique</strong> format when we want to get thorough feedback from every member of the team and we make sure that all of us have some time to think things through on a deeper level. Very often, when we don&#8217;t have time to wait for a meeting or we&#8217;re too busy, we use <strong>async reviews</strong> for smaller issues using sticky notes and Figma native comments.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5sK8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5sK8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 424w, https://substackcdn.com/image/fetch/$s_!5sK8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 848w, https://substackcdn.com/image/fetch/$s_!5sK8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 1272w, https://substackcdn.com/image/fetch/$s_!5sK8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5sK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png" width="728" height="616.9023696682465" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:894,&quot;width&quot;:1055,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:402076,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5sK8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 424w, https://substackcdn.com/image/fetch/$s_!5sK8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 848w, https://substackcdn.com/image/fetch/$s_!5sK8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 1272w, https://substackcdn.com/image/fetch/$s_!5sK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69603bb-f373-4ee1-9e31-d24b914806fc_1055x894.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A small section of our &#8220;Design critique&#8221; Figma template</figcaption></figure></div><p></p><p>During our <em><strong>121 meetings</strong></em>, I check on all design team members how they&#8217;re feeling, if there&#8217;s any blocker, or if I can help facilitate something they need. They often use this time for a feedback on their work before presenting to the whole team, which is not forbidden :D It&#8217;s their time with me, so it&#8217;s their choice how we get to spend it.</p><h4>Knowledge sharing sessions</h4><p>After a while, we realised that we spend a lot of time discussing fine-tuning components during the <em>Design sync</em> meeting, so we introduced a <em><strong>Design system updates</strong></em> meeting where we invited the frontend developers, so both the design and engineering teams know what is new in Figma and in Storybook and if we&#8217;re introducing any major changes. </p><p>We also introduced a <em><strong>&#8220;New dashboard&#8221; presentation</strong></em> meeting for our Customer Success and Marketing teams, where we presented everything that is coming with the new redesign, so they are prepared when the time comes to support our customers in the best way possible.</p><p>Several times we have also organised some <em><strong>ad-hoc training presentations</strong></em> on how to use the design system on the design side, engineering side, but also a live-coding session which was a great way to really show how the design system can be used in the best possible manner.</p><h4>Director of design participation</h4><p>As a Director of design, I also participated in bi-weekly meetings to sync with the Marketing and Engineering teams (<em><strong>Development Process Optimisation</strong> </em>meeting), and I am part of the <em><strong>Core eXPerience</strong></em> team&#8217;s scrum ceremonies. I also have a 121 meeting with my manager - Edit (CPO). So, here&#8217;s how my calendar usually looks like with all the weekly and bi-weekly meetings included, luckily not all weeks look as crowded as this :)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FsiY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FsiY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 424w, https://substackcdn.com/image/fetch/$s_!FsiY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 848w, https://substackcdn.com/image/fetch/$s_!FsiY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 1272w, https://substackcdn.com/image/fetch/$s_!FsiY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FsiY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png" width="898" height="414" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/a4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:414,&quot;width&quot;:898,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70626,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FsiY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 424w, https://substackcdn.com/image/fetch/$s_!FsiY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 848w, https://substackcdn.com/image/fetch/$s_!FsiY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 1272w, https://substackcdn.com/image/fetch/$s_!FsiY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4aa1855-d325-43ba-a45f-7fdd5e8cddd0_898x414.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h4>No-meeting Thursdays &amp; lunch breaks</h4><p>One great way to really have time to focus on important work is introducing an all-company agreement not to use Thursdays for meetings, which has been really helpful and productive for everyone. We only have Thursday exceptions for scheduling calls with customers since we knew that everyone that needs to be involved should be available and we don&#8217;t need to make people move other meetings. </p><p>Blocking your lunch break, is also a way to make sure people will not schedule 5-hour long streaks and get some nice food/coffee refreshment mid-day :D</p><p></p><h3>Final thoughts</h3><p>The processes, templates, syncs and excellence in detailed execution really bring us to the top of our game, but the most valuable part of our work is probably being a link between the business side of the product and the engineering one, keeping the best interest of our users always in sight. </p><p>We are definitely proud of what we have achieved during the past year with great team work across all teams and looking forward to even more great things ahead.</p><p>Thanks for reading, more will follow!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techblog.inplayer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading InPlayer Technology! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Pro tip: Updating a component's structure in Figma without introducing breaking changes]]></title><description><![CDATA[By the product design team]]></description><link>https://techblog.inplayer.com/p/pro-tip-updating-a-components-structure</link><guid isPermaLink="false">https://techblog.inplayer.com/p/pro-tip-updating-a-components-structure</guid><pubDate>Thu, 11 Aug 2022 08:56:28 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>While working with Design Systems and Figma&#8217;s component libraries, we often have to introduce more structural changes that might affect other files that are using our library&#8217;s components. We, the design team at InPlayer, have found a way to introduce changes in the library&#8217;s components that won&#8217;t affect the used instances of the components in current or older files.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 424w, https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 848w, https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1272w, https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80" width="1000" height="563" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;person holding white and blue plastic blocks&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="person holding white and blue plastic blocks" title="person holding white and blue plastic blocks" srcset="https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 424w, https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 848w, https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1272w, https://images.unsplash.com/photo-1621571029036-1573d2b1dc5c?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1000&amp;q=80 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/es/@bradyn?utm_source=medium&amp;utm_medium=referral">Bradyn Trollip</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure></div><h4>Updating a component from a&nbsp;Library</h4><p>Currently, if you try to update a component in a Library, that update will be propagated in all of the files where you have used it. You can review it but when working on the file, you&#8217;d always want to update your components and use them in the latest state, so you&#8217;re usually hit the &#8220;Update&#8221; button.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ejYZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ejYZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 424w, https://substackcdn.com/image/fetch/$s_!ejYZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 848w, https://substackcdn.com/image/fetch/$s_!ejYZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 1272w, https://substackcdn.com/image/fetch/$s_!ejYZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ejYZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png" width="369" height="99" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:99,&quot;width&quot;:369,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ejYZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 424w, https://substackcdn.com/image/fetch/$s_!ejYZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 848w, https://substackcdn.com/image/fetch/$s_!ejYZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 1272w, https://substackcdn.com/image/fetch/$s_!ejYZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F93c297bf-fb3d-45ef-97e1-c96e585d8cc8_369x99.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>If the structure of your layers, their names or the variants have been changed, then the update might cause the current overrides to also get reset to the main component.&nbsp;</p><p>For example, you have added the &#8220;Button&#8221; component in another more complex component and imported it in your design file where you give it some context by changing the wording. Then, later you decide to add an icon and use the &#8220;Icon + Text&#8221; button variant instead of just the &#8220;Text&#8221; one. With the library&#8217;s update, the wording of your button&#8217;s instance that you overrode to fit to your context, will be reset to the default.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eeFP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eeFP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 424w, https://substackcdn.com/image/fetch/$s_!eeFP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 848w, https://substackcdn.com/image/fetch/$s_!eeFP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 1272w, https://substackcdn.com/image/fetch/$s_!eeFP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eeFP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png" width="800" height="268" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:268,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eeFP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 424w, https://substackcdn.com/image/fetch/$s_!eeFP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 848w, https://substackcdn.com/image/fetch/$s_!eeFP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 1272w, https://substackcdn.com/image/fetch/$s_!eeFP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ac91cb-1328-4b11-9fe4-2207955b94ac_800x268.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">How a change in the main component will affect the update on an&nbsp;instance</figcaption></figure></div><p>Imagine that you have used this component throughout dozens even hundreds of screens across your files.. even though it&#8217;s an action that can be easily reverted (just remove the icon and the text will be set back in place), we definitely would like to introduce updates, but avoid such braking changes.&nbsp;</p><p>Note: I still consider that this is an issue that Figma can easily fix, but there is a way to circle around it for now.</p><p></p><h4>Avoiding breaking changes in a component</h4><p>By introducing a copy of the original main component or creating a new one with the same structure (layer names, etc), the update will not affect your designs.&nbsp;</p><p>Figma actually uses an ID for each of their main components and its instances, and if you have worked with their API, you&#8217;d probably figure it out that a new main component with the same name won&#8217;t have any connection to the old one and will be considered a new one despite using the same name.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LKic!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LKic!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 424w, https://substackcdn.com/image/fetch/$s_!LKic!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 848w, https://substackcdn.com/image/fetch/$s_!LKic!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 1272w, https://substackcdn.com/image/fetch/$s_!LKic!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LKic!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png" width="800" height="189" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:189,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LKic!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 424w, https://substackcdn.com/image/fetch/$s_!LKic!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 848w, https://substackcdn.com/image/fetch/$s_!LKic!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 1272w, https://substackcdn.com/image/fetch/$s_!LKic!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe44b2f0c-703c-4388-ad46-f17d9b1f20e6_800x189.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Introducing a new main component (a detached copy of the old main component)</figcaption></figure></div><p>In the project file, the instance of the old component will continue to exist without getting an &#8220;update&#8221; notification. If you try right click and &#8220;Go to main component&#8221; it will take you to the old one, even though it was excluded from the Library by using &#8220;_&#8221; or &#8220;.&#8221; before its name (you still have to publish the change).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PB-w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PB-w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 424w, https://substackcdn.com/image/fetch/$s_!PB-w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 848w, https://substackcdn.com/image/fetch/$s_!PB-w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 1272w, https://substackcdn.com/image/fetch/$s_!PB-w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PB-w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png" width="644" height="535" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:535,&quot;width&quot;:644,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PB-w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 424w, https://substackcdn.com/image/fetch/$s_!PB-w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 848w, https://substackcdn.com/image/fetch/$s_!PB-w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 1272w, https://substackcdn.com/image/fetch/$s_!PB-w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74496b33-ef7b-4d8f-a1e3-1b81e923d7a7_644x535.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The connection will still be there, and even if you delete it, &#8220;Go to main component&#8221; will ask you to restore the original (which we probably won&#8217;t want to do, eventually).</p><p>Still, in your designs, even though you won&#8217;t get prompted to update the Library, if you want to use the new component, you can mindfully swap the component with the new one introducing the changed component to your current file.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LAuX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LAuX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 424w, https://substackcdn.com/image/fetch/$s_!LAuX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 848w, https://substackcdn.com/image/fetch/$s_!LAuX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 1272w, https://substackcdn.com/image/fetch/$s_!LAuX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LAuX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png" width="240" height="201" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:201,&quot;width&quot;:240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LAuX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 424w, https://substackcdn.com/image/fetch/$s_!LAuX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 848w, https://substackcdn.com/image/fetch/$s_!LAuX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 1272w, https://substackcdn.com/image/fetch/$s_!LAuX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8711ea3c-213b-4e46-aadb-3ed960512dd4_240x201.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Swapping the overridden instance with the newly created main component</figcaption></figure></div><p><strong>By surprise</strong>, if every layer had used the same naming and structure (and in this case it does, because we created a detached copy), the instance will keep the wording of your current file overrides and will not break anything in your current design file even though it will have all the necessary changes we wanted to include in the first place.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iZyG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iZyG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 424w, https://substackcdn.com/image/fetch/$s_!iZyG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 848w, https://substackcdn.com/image/fetch/$s_!iZyG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 1272w, https://substackcdn.com/image/fetch/$s_!iZyG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iZyG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png" width="397" height="141" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:141,&quot;width&quot;:397,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iZyG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 424w, https://substackcdn.com/image/fetch/$s_!iZyG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 848w, https://substackcdn.com/image/fetch/$s_!iZyG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 1272w, https://substackcdn.com/image/fetch/$s_!iZyG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6c693962-62bf-486a-8c8f-d9d540c97c94_397x141.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The swapped instance from the new main component</figcaption></figure></div><p></p><h4>Conclusion</h4><p>This approach will definitely save you some time (and *khm* nerves), without having to revert the changes or going through all your instances and fixing the wording for all existing design files. The old files will keep the old version of the component (set in stone in history) and the new ones will be easily and mindfully updated when you have the need to do so.&nbsp;</p><p>Let us know if this tip has helped you out!&nbsp;:)</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techblog.inplayer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading InPlayer Technology! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[10 tips for upcoming UI (/UX) designers]]></title><description><![CDATA[Meet the team: Sandra is our Director of Design. Also a sourdough bread aficionado :D]]></description><link>https://techblog.inplayer.com/p/10-tips-for-upcoming-ui-ux-designers</link><guid isPermaLink="false">https://techblog.inplayer.com/p/10-tips-for-upcoming-ui-ux-designers</guid><dc:creator><![CDATA[Sandra]]></dc:creator><pubDate>Wed, 11 May 2022 10:28:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Gc5C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gc5C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gc5C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gc5C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gc5C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gc5C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gc5C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1705655,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gc5C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gc5C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gc5C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gc5C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F870daa65-0f1c-4464-b247-3e807d76fc50_5472x3648.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://unsplash.com/photos/YbuxMgZ9KUA">Photo by @mbuiux</a></figcaption></figure></div><p>Being a recruiter for UX designers and engineers for about 10 years, I see very common and repeating mistakes that could be easily avoided both in the portfolios and during the interviews. So, I put together a <a href="https://twitter.com/alexhris/status/1514256821522993161">twitter thread</a> that I decided to elaborate a bit in more details:</p><h3>1. Graphic design is (just) the foundation</h3><p>But it&#8217;s very different from software UI design. Colours, typography and spacing are the basics, but you have to learn how to apply them within the constraints that digital UIs bring. So, if you did branding or packaging graphic designs so far, you will be considered a beginner in UI and if you don&#8217;t redo your portfolio to show some UI work, you will probably get rejected for senior UX design roles.</p><h3>2. Learn the UI components</h3><p>There are UI components that are pretty common in web and app designs. A lot of design systems are available online so you can go ahead and <a href="https://storybook.js.org/showcase">research them</a> in more details and learn about all variations. The native HTML and custom components are tweak-able but the basic functionality and usage are common patterns you have to follow.</p><h3>3. Cover the UI&nbsp;stack</h3><p>The biggest difference with graphic design is that your UI is alive and not set in stone. Think about all possible states of a component or a screen you&#8217;re designing&#8202;&#8212;<a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/">&#8202;ideal, empty, error, partial, loading</a>.. the user should be always informed what is happening, what they did, was the state saved, etc. As a designer you should think through all of them and plan your designs accordingly.</p><h3>4. Accessibility shouldn&#8217;t be an afterthought</h3><p>Minimum contrast standards and keyboard navigation through a user flow are a must. Covering screen reader user flows is a big challenge, but don&#8217;t leave it out if you work on publicly available websites and apps where you&#8217;re not sure who your users are. <a href="https://w3.org/standards/webdesign/accessibility">Design for everyone</a>.&nbsp;</p><h3>5. Sync with developers early&nbsp;on</h3><p>If there has been a decision by the software engineers to use a frontend framework, adapt the designs to it instead of the other way around&#8202;&#8212;&#8202; it will save everyone a lot of time. That is if you don&#8217;t compete for the <a href="https://medium.com/u/187eb2a15fc2">Awwwards</a>&nbsp;:) You can kick-start your designs with an existing UI library and build up your designs from there. There are also common patterns per platform (web, iOS, Android&#8230;), especially the navigation patterns, that should be followed&#8202;&#8212;&#8202;don&#8217;t re-invent the wheel.</p><h3>6. Know the difference between UX and&nbsp;UI</h3><p>They come interchangeably, but if you put &#8220;UI/UX&#8221; in your title, then have it clear in your mind and know how to explain what do you do from the design process. Care about users; learn the personas &amp; user flows (and/or create them); and talk to those that will actually use your UI and test it early on. Know that UX is more about understanding the problems and iteration on possible solutions, while UI is more about the craft. Business decisions and product design is something that comes with experience, but know the basics of your area of work.</p><h3>7. Atomic&nbsp;design</h3><p>You don&#8217;t need to know <a href="https://bradfrost.com/blog/post/atomic-web-design/">the book</a> by heart, but you have to understand the concept and build your components to scale up. It doesn&#8217;t matter if they are called an organism or any other name, but the way you design them should be appropriate to how they will be built in code. Hence, understanding basic coding like semantic HTML and nesting is a very high advantage. That leads us to the tools of building the components&#8230;</p><h3>8. Follow the design tools and their&nbsp;updates</h3><p>Use styles for colours, typography, effects, etc (still bothering <a href="https://medium.com/u/bf1152b11387">Figma</a> to add spacing/sizing tokens but one can dream&nbsp;:D). Those are analog to variables that will be used throughout the codebase as well and translate well into the design tokens concept.&nbsp;</p><p>For example, auto layout in Figma was not invented to have something more to study about, but to make your life easier when you need to update and tweak your designs (and you will definitely have to do it). These tools are mostly analog to how the developers will code the layout (see: <a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/">Flexbox</a>).</p><p>Learn how to use the grid and how to layout the components to add responsiveness to your designs so you can easily create responsive designs with the same components. Use libraries. Explore prototyping possibilities. Ease up your life.</p><p>Don&#8217;t get attached to a tool, though. I have designed in code, used Flash, Dreamweaver, Illustrator, Sketch, InVision, Adobe XD and Figma. At the moment Figma is <a href="https://www.youtube.com/c/Figmadesign/videos">winning with features</a> that are very consistent to coding approaches, but who knows, some new cool tool could come up tomorrow&nbsp;:)</p><h3>9. Have a good file organisation</h3><p>File structure, organisation and documentation of your components and processes are key and you should follow them in the portfolio. At some point you will have to work with other designers or developers, or someone will have to take over. Everything should be clear and everyone should be able to find what they need at first glance.</p><h3>10. Portfolio &amp;&nbsp;CV</h3><p>Don&#8217;t apply without a portfolio. Besides your designs, show your process and thoughts. Sometimes the design looks crappy, but it would still be great if you display you have researched alternatives or you had constraints to follow. Sometimes your past work might be under NDA contract, but you can mock the problem and redesign the UI with different colours and data, or go low-fidelity so you can showcase the concept.&nbsp;</p><p>Make sure you pay attention to details, spelling and wording&#8202;&#8212;&#8202; sloppy work in your CV and portfolio will imply you&#8217;ll also be sloppy at your daily job. If you&#8217;re not sure, send them over to someone and ask them to double check the wording and if everything is clear to them, otherwise, change your narrative. And you really don&#8217;t have to use progress bars about your skills or the tools you know&#8202;&#8212;&#8202;to be precise about your knowledge in percentage, you also have to know what you don&#8217;t know, and you probably don&#8217;t &#128517;</p><h4><strong>Never stop learning!</strong></h4><p>There&#8217;s much more to learn about and explore, mostly around the UX research area and building the right things for the specific users. But for building complex UIs for web applications you have to have the systemic approach of Design Systems into designing &amp; building the UI that common graphic and (marketing) website design principles don&#8217;t cover.</p><p>We&#8217;re in a field where something new comes up every day. Stay up to date by reading books and blog posts, follow other designers on Twitter and Medium (even LinkedIn) and the tools&#8217; updates that usually come with tutorials and explanations. It can be overwhelming at times, so make sure you really have the basics covered.</p>]]></content:encoded></item><item><title><![CDATA[Migrating our React setup to Vite]]></title><description><![CDATA[Meet the team: Darko is our Software Development Manager, or as we like to call him running junkie :)]]></description><link>https://techblog.inplayer.com/p/migrating-our-react-setup-to-vite</link><guid isPermaLink="false">https://techblog.inplayer.com/p/migrating-our-react-setup-to-vite</guid><dc:creator><![CDATA[Darko Atanasovski]]></dc:creator><pubDate>Wed, 11 May 2022 10:27:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oWMw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Introduction</h1><p>In the modern world, web applications tend to be more complex and more useful in every field of life.</p><p>The front-end applications are the first contact with your customers, and these applications over time, become more and more complex, which means the build time, as well as development time, can dramatically increase. Increased build and development time, often means more expensive bills for building and developing these applications.</p><p>Choosing the right build tool is the most important thing in this development toolchain, so the right tools can save you valuable time and money.</p><p>We did some research and found that one of the most popular build tools for front-end applications, <strong>ViteJS</strong>, is the most appropriate build tool for our case.</p><p>Here is our journey with migrating our <strong>RAR</strong> React application to <strong>ViteJS</strong></p><h1>Environment and performances with RAR</h1><p>First, we want to mention that both <strong>RAR</strong> and <strong>CRA</strong> are great, but not as great as <strong>ViteJS</strong>, especially for the build and development time as well as the application size &#128522;.</p><p>With <strong>RAR</strong>, the application build time was <strong>between 15 and 30 minutes</strong> with <strong>GitHub Actions</strong>, which made every build on <strong>CI</strong> very painful and slow.</p><p>Also, the fast refresh feature was not fast at all.</p><h1>The migration</h1><p>Our react application was based on react version 16, and the first step was to <a href="https://reactjs.org/blog/2020/10/20/react-v17.html">upgrade</a> to the latest, version 17.</p><blockquote><p>if you are using react with typescript, do not forget to update and node type to version 17 e.g. <code>"@types/node": "^17.0.21"</code></p></blockquote><p>The second step was to add a specific <strong>ViteJS</strong> configuration. According to their <a href="https://vitejs.dev/config/">documentation</a>, we created <strong>ViteJS</strong> <a href="https://github.com/vitejs/vite/tree/main/packages/plugin-react#vitejsplugin-react-">configuration file</a>.</p><p><code>vite.config.ts</code></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://gist.github.com/darkoatanasovski/3b030e254d5046111cc4e4e9e8c85a8f" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oWMw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 424w, https://substackcdn.com/image/fetch/$s_!oWMw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 848w, https://substackcdn.com/image/fetch/$s_!oWMw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 1272w, https://substackcdn.com/image/fetch/$s_!oWMw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oWMw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png" width="1456" height="879" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:879,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:392247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://gist.github.com/darkoatanasovski/3b030e254d5046111cc4e4e9e8c85a8f&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oWMw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 424w, https://substackcdn.com/image/fetch/$s_!oWMw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 848w, https://substackcdn.com/image/fetch/$s_!oWMw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 1272w, https://substackcdn.com/image/fetch/$s_!oWMw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F00bbd2fe-65cf-42c4-b790-b178dbde6571_2220x1340.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>then, we updated the scripts in <strong>package.json</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mYji!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mYji!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 424w, https://substackcdn.com/image/fetch/$s_!mYji!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 848w, https://substackcdn.com/image/fetch/$s_!mYji!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 1272w, https://substackcdn.com/image/fetch/$s_!mYji!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mYji!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png" width="1456" height="603" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/aaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:603,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:380060,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mYji!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 424w, https://substackcdn.com/image/fetch/$s_!mYji!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 848w, https://substackcdn.com/image/fetch/$s_!mYji!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 1272w, https://substackcdn.com/image/fetch/$s_!mYji!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Faaf88d2f-3bf0-4468-b695-26af812912ff_3064x1268.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>and the last step was to create<code> </code><strong>index.html</strong> page in the root of the project, for the new setup. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://gist.github.com/darkoatanasovski/f8578bbef070dc498fb8d712304becc4" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lITr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 424w, https://substackcdn.com/image/fetch/$s_!lITr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 848w, https://substackcdn.com/image/fetch/$s_!lITr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 1272w, https://substackcdn.com/image/fetch/$s_!lITr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lITr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png" width="1456" height="755" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:516390,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://gist.github.com/darkoatanasovski/f8578bbef070dc498fb8d712304becc4&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lITr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 424w, https://substackcdn.com/image/fetch/$s_!lITr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 848w, https://substackcdn.com/image/fetch/$s_!lITr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 1272w, https://substackcdn.com/image/fetch/$s_!lITr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F856cc9dc-73dc-4709-b80e-78b87a10a4c7_3300x1712.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And that&#8217;s it. We installed the new dependencies, and run the command <code>yarn dev</code>. The result was, a lot of errors, and the application did not work. After research, we found that the indirect dependency(dependency of our dependency) uses <strong>node-specific</strong> modules. In our case, the problematic dependency was <strong><a href="https://www.npmjs.com/package/aws-iot-device-sdk">aws-iot-device-sdk</a> </strong>which uses <strong>node-specific </strong>modules like <strong>Buffer</strong>,<strong> process, </strong>etc. The errors and how we fixed them, jump to the next section &#128522;</p><h1>First issues with the new setup</h1><p>A lot of errors occurred in the browser&#8217;s console and the application did not work at all &#128542;</p><p>The most common errors were: Buffer or process are not defined. These functions/constants are used by the indirect dependencies, and our application did not work because of them.</p><p>The errors look like the image below:</p><p><strong>Uncaught ReferenceError: process is not defined</strong></p><p><strong>Uncaught ReferenceError: Buffer is not defined</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jOUc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jOUc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 424w, https://substackcdn.com/image/fetch/$s_!jOUc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 848w, https://substackcdn.com/image/fetch/$s_!jOUc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 1272w, https://substackcdn.com/image/fetch/$s_!jOUc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jOUc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png" width="1198" height="316" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:316,&quot;width&quot;:1198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jOUc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 424w, https://substackcdn.com/image/fetch/$s_!jOUc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 848w, https://substackcdn.com/image/fetch/$s_!jOUc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 1272w, https://substackcdn.com/image/fetch/$s_!jOUc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F74b1d4f6-20d3-45bc-b502-7de941d06ffe_1198x316.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We tried almost everything. Tried to define <strong>Buffer</strong> and <strong>process</strong> in the config files and inject from the config file, but <strong>ViteJS</strong> was a little confused about how to order the injected variables or manually injected polyfilled scripts, so we get another error like <strong>Uncaught SyntaxError: Identifier 'Buffer' has already been declared.</strong></p><p>After days of investigation, we finally found a working solution. In the next chapter, you can read, how we went over the issues caused by the <strong>node-specific</strong> modules &#128640;</p><h1>How we went over the issues</h1><p>First, we installed the <strong>Buffer</strong> and <strong>process</strong> as a new dependency.</p><blockquote><p><code>yarn add Buffer<br>yarn add process</code></p></blockquote><p>It adds a new dependency to your <strong>package.json</strong>. In our case:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RkIN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RkIN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 424w, https://substackcdn.com/image/fetch/$s_!RkIN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 848w, https://substackcdn.com/image/fetch/$s_!RkIN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 1272w, https://substackcdn.com/image/fetch/$s_!RkIN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RkIN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png" width="1412" height="1192" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1192,&quot;width&quot;:1412,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:231545,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RkIN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 424w, https://substackcdn.com/image/fetch/$s_!RkIN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 848w, https://substackcdn.com/image/fetch/$s_!RkIN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 1272w, https://substackcdn.com/image/fetch/$s_!RkIN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba9f9d36-24a2-4de8-a422-31cf81ce9ce4_1412x1192.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then, it needs to create a new file, e.g. in your <strong>src</strong> folder with name <strong>nodespecific.ts</strong></p><p>Your <strong>nodespecific.ts</strong> file should look like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://gist.github.com/darkoatanasovski/efb9d752b9f79e976f6ec2149ca0b6ff" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!joH4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 424w, https://substackcdn.com/image/fetch/$s_!joH4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 848w, https://substackcdn.com/image/fetch/$s_!joH4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 1272w, https://substackcdn.com/image/fetch/$s_!joH4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!joH4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png" width="1456" height="567" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:336387,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://gist.github.com/darkoatanasovski/efb9d752b9f79e976f6ec2149ca0b6ff&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!joH4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 424w, https://substackcdn.com/image/fetch/$s_!joH4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 848w, https://substackcdn.com/image/fetch/$s_!joH4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 1272w, https://substackcdn.com/image/fetch/$s_!joH4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd27869-bfe8-48cf-8559-923b38056eaa_2896x1128.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>then, you will need to add this file to your <strong>index.html</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://gist.github.com/darkoatanasovski/92182c0539a20b07ee385761a962a086" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ijmd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 424w, https://substackcdn.com/image/fetch/$s_!Ijmd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 848w, https://substackcdn.com/image/fetch/$s_!Ijmd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 1272w, https://substackcdn.com/image/fetch/$s_!Ijmd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ijmd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png" width="1456" height="788" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:788,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:543565,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://gist.github.com/darkoatanasovski/92182c0539a20b07ee385761a962a086&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ijmd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 424w, https://substackcdn.com/image/fetch/$s_!Ijmd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 848w, https://substackcdn.com/image/fetch/$s_!Ijmd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 1272w, https://substackcdn.com/image/fetch/$s_!Ijmd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F56a6f1d0-c27c-4c9f-b6b5-071e3705605e_3164x1712.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This will work for local development, but for the production build, you will need to install one more <strong>ViteJS</strong> plugin.</p><blockquote><p><strong>yarn add @rollup/plugin-inject</strong></p></blockquote><p>And the last step is to update vite.config.ts. Now, your <strong>ViteJS</strong> configuration file would look like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://gist.github.com/darkoatanasovski/ed7ea7f4d7d2f174d2ebbd3540879fec" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uRgt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 424w, https://substackcdn.com/image/fetch/$s_!uRgt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 848w, https://substackcdn.com/image/fetch/$s_!uRgt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 1272w, https://substackcdn.com/image/fetch/$s_!uRgt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uRgt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png" width="1456" height="888" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:888,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:585776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://gist.github.com/darkoatanasovski/ed7ea7f4d7d2f174d2ebbd3540879fec&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uRgt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 424w, https://substackcdn.com/image/fetch/$s_!uRgt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 848w, https://substackcdn.com/image/fetch/$s_!uRgt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 1272w, https://substackcdn.com/image/fetch/$s_!uRgt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8b138eca-5b27-48c0-9892-c9c4c8d3e2f2_3300x2012.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, you can run <strong>yarn dev</strong> or <strong>yarn build</strong>. &#128640;</p><h1>Conclusion</h1><p><strong>ViteJS</strong> is a great tool, it saves time and money. It will be better over time. Migrating from <strong>CRA</strong> or <strong>RAR</strong> was definitely worth it.</p><p>If you have any questions, feel free to post a comment below</p><p><strong>&#10024;</strong>&nbsp;happy coding</p><p></p>]]></content:encoded></item><item><title><![CDATA[InPlayer Tech blog]]></title><description><![CDATA[This is InPlayer&#8217;s Tech blog, a newsletter about engineering, product and support challenges and decisions we face on daily bases at InPlayer and how we managed to overcome them.]]></description><link>https://techblog.inplayer.com/p/coming-soon</link><guid isPermaLink="false">https://techblog.inplayer.com/p/coming-soon</guid><dc:creator><![CDATA[Stojan Dimitrovski]]></dc:creator><pubDate>Tue, 28 Sep 2021 10:53:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ru82!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F635fa410-acb2-4d32-b00c-d8bbef4ef21d_443x443.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>This is InPlayer&#8217;s Tech blog</strong>, a newsletter about engineering, product and support challenges and decisions we face on daily bases at InPlayer and how we managed to overcome them.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://techblog.inplayer.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://techblog.inplayer.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>