<?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"><channel><title><![CDATA[FigMayo Blog]]></title><description><![CDATA[Sharing practical insights, tools, and strategies to help teams build and scale better documentation, streamline workflows, and bridge the gap between design an]]></description><link>https://blog.figmayo.com</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1736327498966/673f95ae-6bb2-413a-bd6d-2f39d7dcd17c.png</url><title>FigMayo Blog</title><link>https://blog.figmayo.com</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 22 May 2026 02:18:25 GMT</lastBuildDate><atom:link href="https://blog.figmayo.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Developer Hand-off With FigMayo]]></title><description><![CDATA[We upgraded our inspector! The new version massively levels up our game and now offers a complete view of the anatomy of your designs. It functions great for design system elements but is equally useful to pick apart fully composed, customer facing s...]]></description><link>https://blog.figmayo.com/developer-hand-off-with-figmayo</link><guid isPermaLink="true">https://blog.figmayo.com/developer-hand-off-with-figmayo</guid><category><![CDATA[figma]]></category><category><![CDATA[Design Systems]]></category><category><![CDATA[automation]]></category><dc:creator><![CDATA[Mike Miller]]></dc:creator><pubDate>Thu, 23 Jan 2025 12:01:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1737652421470/8fb1d21a-96ad-4bae-a9df-873b82f7c6a7.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We upgraded our inspector! The new version massively levels up our game and now offers a complete view of the anatomy of your designs. It functions great for design system elements but is equally useful to pick apart fully composed, customer facing screens. In this article we will go over all the new features and how they can help with developer hand-off and design hygiene.</p>
<p>You can have a play below with our embedded version or read on to find out more.</p>
<iframe src="https://design.figmayo.com/sites/Uz0KUucQ1/Components/component/2287:18096?embed=true" style="width:100%;height:460px;border:1px solid rgb(212 212 216);border-radius:12px;display:block"></iframe>

<h2 id="heading-interactive-layout-inspection"><strong>Interactive Layout Inspection</strong></h2>
<p>Our tool allows you to interactively inspect all of your layout and spacing dimensions, as well as relative positions and padding and gap rules. Focusing a layer gives you full details of:</p>
<ul>
<li><p>Sizing dimensions and constraints</p>
</li>
<li><p>Layout direction, wrap, gap and overflow rules</p>
</li>
<li><p>Padding and border radius rules</p>
</li>
<li><p>Backgrounds and border styles</p>
</li>
<li><p>Typography rules</p>
</li>
</ul>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://player.vimeo.com/video/1049602121?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479">https://player.vimeo.com/video/1049602121?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479</a></div>
<p> </p>
<h2 id="heading-layer-details">Layer Details</h2>
<p>Layer specific information is surfaced for specific layer types.</p>
<p>For nested components you will get:</p>
<ul>
<li><p>The component name and a link to view the component in the inspector</p>
</li>
<li><p>The last time the component documentation was generated by FigMayo</p>
</li>
<li><p>The full details of the applied component properties</p>
</li>
</ul>
<p>For text layers we surface the text content so it can be easily copied to the developers clipboard.</p>
<h2 id="heading-component-anatomy"><strong>Component Anatomy</strong></h2>
<p>The “Related” tab provides a full inventory of the anatomy of the focused layer listing out any nested components, typography and colours.</p>
<p>When hovering on any nested component or typography in the “Related” tab the inspector will highlight their usage in the composition making it super clear where and how the related elements should be used when constructing the designed component.</p>
<h2 id="heading-figma-variables">Figma Variables</h2>
<p>If you have published your variables to your docs site (get our plugin <a target="_blank" href="https://www.figma.com/community/plugin/1426513201495859669/figmayo">here</a>) then any value that is referencing a variable will default to displaying the variable name with ability to copy the variable name on click.</p>
<p>To make it super easy to discover the resolved value the display can be toggled to show the underlying variable value. This is great for hygiene as it can quickly surface inconsistent use of variables in the design source as well as potentially unnecessary variable definitions,</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://player.vimeo.com/video/1049611799?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479">https://player.vimeo.com/video/1049611799?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479</a></div>
<p> </p>
<h3 id="heading-variable-colour-modes">Variable Colour Modes</h3>
<p>We also make it super easy to cycle through colour modes in your variables to allow engineers to find the correct variables (or values) for their implementation. To get the best results from this feature make sure to use a sensible variable for the background of your component set layer.</p>
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>Our goal is to give as much value from the first 5 minutes of using FigMayo and we believe this will massively help the process of handing off design work to engineers. The feature will be in beta for the next 2 months and we already have a backlog of enhancements ready to go. We would love any feedback or suggestions for how we can improve this further so if you have any thoughts feel free to reach us at the links below.</p>
<ul>
<li><p>Chat with us on <a target="_blank" href="https://join.slack.com/t/figmayodesign-mjo8225/shared_invite/zt-2x449drfr-KJ3AkSkAWJlIQ4rvPy98Yg"><strong>Slack</strong></a></p>
</li>
<li><p>Follow us on <a target="_blank" href="https://www.linkedin.com/company/figmayo"><strong>LinkedIn</strong></a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[The Small Team’s Guide to Design System Documentation]]></title><description><![CDATA[Balancing time, resources, and quality is a constant challenge for smaller teams. We see you. You’re passionate about building great products, but limited bandwidth means keeping on top of documentation feels like an insurmountable problem.
Its our g...]]></description><link>https://blog.figmayo.com/the-small-teams-guide-to-effective-design-system-documentation</link><guid isPermaLink="true">https://blog.figmayo.com/the-small-teams-guide-to-effective-design-system-documentation</guid><category><![CDATA[Design Systems]]></category><category><![CDATA[figma]]></category><category><![CDATA[automation]]></category><dc:creator><![CDATA[Mike Miller]]></dc:creator><pubDate>Wed, 15 Jan 2025 11:48:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1736941488241/c8b5e50a-fdca-4709-b9ab-18954f55b981.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Balancing time, resources, and quality is a constant challenge for smaller teams. We see you. You’re passionate about building great products, but limited bandwidth means keeping on top of documentation feels like an insurmountable problem.</p>
<p>Its our goal to make documentation feasible, even for lean teams. At FigMayo, we built our solution for people like you; teams striving for better design practices while juggling competing priorities. We want to help you save time, maintain momentum, and focus on doing what you love - creating great experiences.</p>
<p>I wanted to explore further why investing in a design system in the context of a small team can elevate your game and how automating your documentation makes this way more achievable.</p>
<hr />
<h2 id="heading-why-design-systems-are-worth-it">Why Design Systems Are Worth It</h2>
<p>Design systems bring consistency, efficiency, and scalability to your design process - we all know this. They’re more than just UI kits with a sprinkling of performance art. When done properly they form a single source of reliable truth that everyone on your team can lean on. They become a framework for design decisions, reusable components, and documentation that keeps everyone pointing in the same direction.</p>
<p>But the issue is, building and maintaining a design systems can be very time-intensive. Traditionally an undertaking so expensive it is out of reach of smaller teams. If you are brave enough to start out on this journey and your documentation falls out of sync (and it will, rapidly) then it can be a death knell for your project. Six months of grind down the toilet and red faces all round is nobodies idea of a fun time.</p>
<p>For small teams, the rewards of a design system can be massive, but the time required to invest properly was never really available. But, the game changed. In this new world our productivity has skyrocketed, bringing sophisticated practices well within reach for teams of any size.</p>
<hr />
<h2 id="heading-the-challenges-of-traditional-documentation">The Challenges of Traditional Documentation</h2>
<p>Tools like ZeroHeight promised to streamline documentation, but they demand too much from smaller teams. The license is costly, and you won't see any return on this investment for weeks, maybe even months, after signing up. First, you need to take a significant amount of time away from delivering value to shift focus and prepare your work for others to understand. This is an underrated skill—summarising and explaining your work clearly for an audience with different perspectives is challenging and can be a major obstacle.</p>
<p>This is where FigMayo aims to stand out. There's no heavy cognitive overhead—just click the button.</p>
<hr />
<h2 id="heading-automating-documentation">Automating Documentation</h2>
<p>FigMayo integrates directly with Figma, transforming your design libraries into documentation websites with a single click. This saves a ton of time. For less than the cost of one hour of a junior designer per month, we handle all the setup, hosting, and maintenance of a detailed documentation site. As your designs change, the documentation can be updated in minutes with a single click, eliminating inconsistencies and the death knell of stale, unreliable information.</p>
<p>Ultimately leveraging automation in this way will reduce the overall investment in your DS, drive adoption, elevate your practice and de-risk your project work.</p>
<hr />
<h2 id="heading-when-to-choose-us">When to Choose Us</h2>
<p>If documentation is stressing you out, if switching contexts is melting your mind, if your docs are outdated and becoming useless but you can't find the time to update them, then choose FigMayo.</p>
<p>If you hate duplication of effort, if the idea of valuable designer time being spent copy pasting information between tools brings you out in hives, if you just like efficiency, then choose FigMayo.</p>
<p>If you are in the enviable position of having deep pockets, a dedicated design system team and access to engineering support to configure and maintain deep integration into your code, then choose <a target="_blank" href="https://supernova.io/">supernova</a> (probably).</p>
<p>Ultimately the decision is a trade off between flexibility and control vs time and money. Select your preferred workflow that fits inside your constraints. There is probably not a one size fits all- but there might be a one size fits most and we think that is us.</p>
<p>Give us a shout if you would like to hear more.</p>
<ul>
<li><p>Chat with us on <a target="_blank" href="https://join.slack.com/t/figmayodesign-mjo8225/shared_invite/zt-2x449drfr-KJ3AkSkAWJlIQ4rvPy98Yg">Slack</a></p>
</li>
<li><p>Follow us on <a target="_blank" href="https://www.linkedin.com/company/figmayo">LinkedIn</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to Sync Figma Variables with FigMayo Effortlessly]]></title><description><![CDATA[The Christmas break gave us a bit of breathing room to think about sharing the internal tools we have developed over the last year to complement FigMayo. We wanted to start the new year by addressing a hot potato - how to keep design tokens in sync b...]]></description><link>https://blog.figmayo.com/how-to-sync-figma-variables-with-figmayo-effortlessly</link><guid isPermaLink="true">https://blog.figmayo.com/how-to-sync-figma-variables-with-figmayo-effortlessly</guid><category><![CDATA[figma]]></category><category><![CDATA[Design Systems]]></category><category><![CDATA[automation]]></category><dc:creator><![CDATA[Mike Miller]]></dc:creator><pubDate>Wed, 08 Jan 2025 09:09:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1736323044558/346aacc4-5019-446f-b6e9-1234bbf21ad4.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Christmas break gave us a bit of breathing room to think about sharing the internal tools we have developed over the last year to complement <a class="user-mention" href="https://hashnode.com/@https://www.linkedin.com/article/edit/7281686990561890304/#">FigMayo</a>. We wanted to start the new year by addressing a hot potato - how to keep design tokens in sync between <a class="user-mention" href="https://hashnode.com/@https://www.linkedin.com/article/edit/7281686990561890304/#">Figma</a> and your codebase when (like most of us) you don't have access to Figma's enterprise APIs.</p>
<p>To solve this internally we have a simple <a class="user-mention" href="https://hashnode.com/@https://www.linkedin.com/article/edit/7281686990561890304/#">GitHub</a> action setup that automates away the steps of downloading variables from FigMayo, pushing them up to our app repositories, raising PR's for review and to trigger unit and visual regression tests.</p>
<p>When your variables are changing frequently, repeating this process becomes a pain for everyone. For less technical team members jumping into the codebase, pushing branches and raising PR's can be a headache. For us, it was a problem crying out for a bit of automation.</p>
<p>Like everything we do this approach is optimised for simplicity and low-friction. No massive engineering overhead to get setup and no complex CI to maintain. The workflow is safe and can be triggered with a single click in the GitHub UI and will inherit all the access controls and branch protection already setup in your code repos.</p>
<hr />
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>You will need a FigMayo documentation site with your Figma variables published via our Figma Plugin which you can find <a target="_blank" href="https://www.figma.com/community/plugin/1426513201495859669">here</a>.</p>
<h2 id="heading-how-it-works">How it works</h2>
<p>The workflow glues together a few straightforward steps:</p>
<ol>
<li><p>It grabs a JSON representation of your Figma variables from the FigMayo API.</p>
</li>
<li><p>It saves the JSON to a path in your codebase</p>
</li>
<li><p>It uses git to establish if there are any changes to the JSON</p>
</li>
<li><p>If there are, it raises a PR using the gh CLI</p>
</li>
</ol>
<p>It's worth noting that if your FigMayo documentation site has many libraries with published variables, we will merge this into a single JSON object which makes resolving aliased variables between libraries much easier.</p>
<h2 id="heading-getting-started">Getting started</h2>
<p>Set up is very straight forward. You can get going by dropping the following YAML file into your <code>.github/workflows</code> directory, setting up a couple of secrets on your repository and adjusting the <code>file-path</code> input to suit your project.</p>
<p>You can find complete instructions on getting setup with FigMayo and creating the required secrets on our listing on the <a target="_blank" href="https://github.com/marketplace/actions/sync-figma-variables-from-figmayo">GitHub Marketplace</a>.</p>
<pre><code class="lang-yaml"><span class="hljs-comment"># .github/workflows/sync-figma-variables.yml</span>

<span class="hljs-attr">name:</span> <span class="hljs-string">Sync</span> <span class="hljs-string">Figma</span> <span class="hljs-string">Variables</span> <span class="hljs-string">with</span> <span class="hljs-string">FigMayo</span>
<span class="hljs-attr">on:</span>
  <span class="hljs-attr">workflow_dispatch:</span> <span class="hljs-comment"># Manual trigger</span>
<span class="hljs-attr">jobs:</span>
  <span class="hljs-attr">sync-tokens:</span>
    <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span>
    <span class="hljs-attr">steps:</span>
        <span class="hljs-attr">uses:</span> <span class="hljs-string">figmayo/figma-variables@v1.0.2</span>
        <span class="hljs-attr">with:</span>
          <span class="hljs-attr">github-pat:</span> <span class="hljs-string">${{</span> <span class="hljs-string">secrets.GH_PAT</span> <span class="hljs-string">}}</span>
          <span class="hljs-attr">figmayo-api-key:</span> <span class="hljs-string">${{</span> <span class="hljs-string">secrets.FIGMAYO_API_KEY</span> <span class="hljs-string">}}</span>
          <span class="hljs-attr">file-path:</span> <span class="hljs-string">"src/design-tokens.json"</span> <span class="hljs-comment"># &lt;-- The target path for the JSON</span>
</code></pre>
<p>Once the workflow is setup it can be triggered manually from the actions tab in your repository. Once the action completes a new PR will be available with a generated branch name and any changes to the JSON fill captured by the git diff.</p>
<p><img src="https://media.licdn.com/dms/image/v2/D4D12AQEDBDH_vrEuLA/article-inline_image-shrink_1000_1488/article-inline_image-shrink_1000_1488/0/1736092668027?e=1741824000&amp;v=beta&amp;t=IP-stz_uCKZvZnyxqp7HLYrAYxDy8Pk6zDBQkvA9r7k" alt="Triggering the workflow from the GitHub UI" /></p>
<h2 id="heading-taking-things-further">Taking things further</h2>
<p>In our internal implementation there is a few ongoing workflow steps to generate types and run code formatting which we stripped out to make the workflow more generalisable.</p>
<p>Its likely there are more steps you want to take - like converting the JSON into CSS variables or other platform specific representations. If you want to learn more about how to use <a target="_blank" href="https://amzn.github.io/style-dictionary/#/">Style Dictionary</a> for this purpose I can recommend <a target="_blank" href="https://jamesiv.es/blog/frontend/design/2023/08/01/syncing-figma-variables-with-github-actions-and-styledictionary">this article</a> by <a class="user-mention" href="https://hashnode.com/@https://www.linkedin.com/article/edit/7281686990561890304/#">James Ives</a>.</p>
<p>To support ongoing workflow steps the GHA will yield the following useful outputs.</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Output</td><td>Description</td></tr>
</thead>
<tbody>
<tr>
<td><code>branch-name</code></td><td>Name of the generated branch should you need to commit any further changes.</td></tr>
<tr>
<td><code>changes</code></td><td>Boolean flag to indicate if any changes to the variables JSON were detected.</td></tr>
<tr>
<td><code>pr-url</code></td><td>URL of the pull request created for the update.</td></tr>
</tbody>
</table>
</div><p>The <code>.github/workflows/sync-figma-variables.yml</code> test workflow in the project repo shows how you can access these outputs in any ongoing steps you might need to take.</p>
<pre><code class="lang-yaml"><span class="hljs-attr">name:</span> <span class="hljs-string">Test</span> <span class="hljs-string">Sync</span> <span class="hljs-string">Figma</span> <span class="hljs-string">Variables</span> <span class="hljs-string">Action</span>

<span class="hljs-attr">on:</span>
  <span class="hljs-attr">workflow_dispatch:</span> <span class="hljs-comment"># Allows manual execution</span>

<span class="hljs-attr">jobs:</span>
  <span class="hljs-attr">sync-figma-variables:</span>
    <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span>
    <span class="hljs-attr">outputs:</span>
      <span class="hljs-comment"># If you need to access step outputs in another job you must map them here</span>
      <span class="hljs-attr">changes:</span> <span class="hljs-string">${{</span> <span class="hljs-string">steps.test-sync.outputs.changes</span> <span class="hljs-string">}}</span>
      <span class="hljs-attr">branch-name:</span> <span class="hljs-string">${{</span> <span class="hljs-string">steps.test-sync.outputs.branch-name</span> <span class="hljs-string">}}</span>
      <span class="hljs-attr">pr-url:</span> <span class="hljs-string">${{</span> <span class="hljs-string">steps.test-sync.outputs.pr-url</span> <span class="hljs-string">}}</span>
    <span class="hljs-attr">steps:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Test</span> <span class="hljs-string">Sync</span> <span class="hljs-string">Figma</span> <span class="hljs-string">Variables</span>
        <span class="hljs-attr">id:</span> <span class="hljs-string">test-sync</span>
        <span class="hljs-attr">uses:</span> <span class="hljs-string">./</span>
        <span class="hljs-attr">with:</span>
          <span class="hljs-attr">gh-pat:</span> <span class="hljs-string">${{</span> <span class="hljs-string">secrets.GH_PAT</span> <span class="hljs-string">}}</span>
          <span class="hljs-attr">figmayo-api-key:</span> <span class="hljs-string">${{</span> <span class="hljs-string">secrets.FIGMAYO_API_KEY</span> <span class="hljs-string">}}</span>
          <span class="hljs-attr">file-path:</span> <span class="hljs-string">"test/figma-variables.json"</span>

      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Debug</span> <span class="hljs-string">GITHUB_ENV</span>
        <span class="hljs-attr">shell:</span> <span class="hljs-string">bash</span>
        <span class="hljs-comment"># Within the same job you can access the GITHUB_ENV directly</span>
        <span class="hljs-attr">run:</span> <span class="hljs-string">|
          echo "Changes: ${{ env.CHANGES }}"
          echo "Branch Name: ${{ env.BRANCH_NAME || 'No branch created' }}"
          echo "PR URL: ${{ env.PR_URL || 'No PR created' }}"
</span>
        <span class="hljs-comment"># Or you can find them in the step outputs</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Debug</span> <span class="hljs-string">GITHUB_OUTPUT</span>
        <span class="hljs-attr">shell:</span> <span class="hljs-string">bash</span>
        <span class="hljs-attr">run:</span> <span class="hljs-string">|
          echo "Changes: ${{ steps.test-sync.outputs.changes }}"
          echo "Branch Name: ${{ steps.test-sync.outputs.branch-name || 'No branch created' }}"
          echo "PR URL: ${{ steps.test-sync.outputs.pr-url || 'No PR created' }}"
</span>
  <span class="hljs-attr">test-outputs:</span>
    <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span>
    <span class="hljs-attr">needs:</span> <span class="hljs-string">sync-figma-variables</span>
    <span class="hljs-attr">steps:</span>
        <span class="hljs-comment"># Accessing the mapped outputs from the previous job</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">run:</span> <span class="hljs-string">echo</span> <span class="hljs-string">'$<span class="hljs-template-variable">{{ toJSON(needs.sync-figma-variables.outputs) }}</span>'</span>
</code></pre>
<h2 id="heading-whats-next">Whats next</h2>
<p>To make this process even easier for our customers, the next step is to deeply integrate variable deployment into our plugin so designers can kick off this process right from the Figma UI.</p>
<p>We’re also working on adding transformations to convert Figma variables into formats like CSS/SASS variables, WCAG-compliant design tokens, Tailwind themes, and platform-specific outputs, including Swift constants for iOS and XML resources for Android.</p>
<p><a target="_blank" href="https://join.slack.com/t/figmayodesign-mjo8225/shared_invite/zt-2x449drfr-KJ3AkSkAWJlIQ4rvPy98Yg">Join us on Slack</a></p>
]]></content:encoded></item></channel></rss>