<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Mike Fortuna on Medium]]></title>
        <description><![CDATA[Stories by Mike Fortuna on Medium]]></description>
        <link>https://medium.com/@m4tuna?source=rss-b55533884e33------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*cP54Y5j5sw88Kiol9R_BAA.png</url>
            <title>Stories by Mike Fortuna on Medium</title>
            <link>https://medium.com/@m4tuna?source=rss-b55533884e33------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 10:59:49 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@m4tuna/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[The Design System has joined the chat.]]></title>
            <link>https://www.designsystemscollective.com/the-design-system-has-joined-the-chat-a6376583fa48?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/a6376583fa48</guid>
            <category><![CDATA[big-design-conference]]></category>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[figma]]></category>
            <category><![CDATA[mcp-server]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Sun, 03 May 2026 06:24:43 GMT</pubDate>
            <atom:updated>2026-05-04T02:13:16.980Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jqbogBeFmoNs-cI-2LH36A.png" /></figure><p>The only thing I’ve ever heard Sam Altman say that was helpful was about notebooks. He uses A6 notebooks, which are small enough to carry anywhere, as ideas come at any time. He writes ideas and rips out the ones that suck. The notebooks have hard front and back covers and he goes through them every two to three weeks. His pen of choice is a Uni-Ball micro 0.5mm or Muji 0.36mm/0.37mm in dark blue or black ink.</p><p>That’s a pretty specific experience and a deliberate choice. Now that he’s made that choice, it’s documented. The internet does its thing, and that’s now shared knowledge between the millions of people who give a shit about this one thread of words. In 2026 however, <strong>the others</strong> who know are Claude, ChatGPT, Gemini, Llama, Grok, DeepSeek and all the other butthole logo AI models out there (I didn’t make this up <a href="https://www.reddit.com/r/ArtificialInteligence/comments/1rsiwsu/why_do_al_company_logos_look_like_buttholes/">it’s a thing</a>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SL_eeaAgmkCu3fL3bjDZZA.png" /><figcaption>Photo by <a href="https://www.creativafamilia.com/">CREATIVA FAMILIA, LLC</a></figcaption></figure><p>This past week, I had the privilege of speaking at the <a href="https://www.bigdesign.org/">Big Design Conference</a> at the <a href="https://www.grapevinetexasusa.com/palace-arts-center/">Palace Arts Center</a> in Grapevine, TX alongside some remarkable design professionals.</p><p><a href="https://medium.com/@jeremyjohnson"><strong>Jeremy Johnson</strong></a> showed some brilliant concept designs for the future of chat experiences. <a href="https://medium.com/@uxward"><strong>Brandon Ward</strong></a> insisted that we all become generals on the product battlefield. <a href="https://medium.com/@UXCoach"><strong>J Schuh</strong></a><strong>’s </strong>high fructose content talk hit the spot.</p><p>Still digesting all of the conversations about UX, design systems, big trucks, telepathy, weather patterns and <strong>brisket</strong>. A common theme was that great UX and engineering don’t vanish because an LLM can write a poem on the 17th prompt. Same job and the handoff is still the hard part.</p><h3><strong>The Old Handoff using Artifacts</strong></h3><p>A design system&#39;s job is to reduce communication time during the handoff process. Even if you design the most professional Figma files with red lines and specs, you probably still have to walk the team through and explain it over Zoom or Slack or both if you’re lucky. See:<em> </em>pretty much every tech company ever. So the communication might look something like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1TXe59E0Cdl2j6GO4UHi3Q.png" /></figure><blockquote>Hey Engineering, here are the specs for the new channel layout:<br>The main frame is 1462x1036, sub-nav is 980 high with accent/aubergine (#611F69), 20 radius top-left and bottom-left only. Threads &amp; Drafts components depend on sub-nav components which depend on sub-nav components — you’ll figure it out.<br>For colors, we’re using theme-intent-purple-dinosaur-8 as the primary, secondary theme-smooth-jazz-1, accent is Miami-9 but we’ll think of a better name for it later — oh, and the VP of Wizardry might want to change it before we ship.<br>For type, headings use Railroad Monospace and body copy uses Juniper Fluoride.<br>Just check the Figma file — I added 78 spec annotations.</blockquote><p>We dream of a system that is matured well enough to just be able to say:</p><blockquote>Hey Engineering, here’s the BDS theme options for the new channel layout:</blockquote><blockquote>1. Density: comfy<br>2. Color: aubergine<br>3. Radius: default<br>4. Type: mono</blockquote><h3><strong>A New Handoff with Agents</strong></h3><p>If we’re going to be <em>generals</em> on the product battlefield, we need to shorten communications between the design system and the agents too — not just between designer and engineer.</p><p>Markdown rules are one way. Pick the component your team argues about most and write the rules file for it- save some time for the designer who’s on like nine other projects. See: every tech company.</p><h4>Rules</h4><p>This is where we get hyperspecific. A6 notebook, hard cover, dark blue ink, 0.5mm. What we need are constraints an agent can follow. Here’s what that looks like for a complex interaction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ody24DyOTCtZPUP2qFtqaQ.png" /><figcaption>banana-design-system/src/components/modal/rules.md</figcaption></figure><p>Rules files are a good start, but someone still has to maintain them — and they go stale.</p><h4>MCP Exploration</h4><p>Heads up: I haven’t actually implemented an MCP into a design system in practice yet.<br>So I built a small one. It reads from a fake design system called Banana DS — five components, some tokens, a couple of patterns and UX rules. Pointed Claude Code at it and asked it to build a payment-declined modal.</p><figure><img alt="A short animation of running a design system MCP and asking it questions with Claude Code." src="https://cdn-images-1.medium.com/max/1024/1*yKZ3K2VqSSyRuUATujaHyA.gif" /><figcaption>Useful for designers, PMs, and engineers</figcaption></figure><p>Claude Code uses the MCP for context, asking about Banana’s components and patterns. The MCP returns clear info about the system.</p><p>Next, I tried something more complex — I asked Claude to design a payment-declined modal for the subscription flow, then open a PR with the changes on GitHub.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*A5nxcljSqBLv9xy3gU2Elw.gif" /></figure><p>That’s the kind of work that usually takes a Slack thread, a code review, and someone from the design system team explaining intent. The agent one shotted it because the design system’s MCP gave it the right context.</p><p>This isn&#39;t proof yet, it&#39;s a prototype. At the very least, faster answers should help save us from death by Slack thread.</p><p>(Where I started: <a href="https://modelcontextprotocol.io/">Anthropic’s MCP docs</a> and <a href="https://www.figma.com/blog">Figma’s MCP server</a>)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a6376583fa48" width="1" height="1" alt=""><hr><p><a href="https://www.designsystemscollective.com/the-design-system-has-joined-the-chat-a6376583fa48">The Design System has joined the chat.</a> was originally published in <a href="https://www.designsystemscollective.com/">Design Systems Collective</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Building Experiences with Design Systems]]></title>
            <link>https://medium.com/@m4tuna/building-experiences-with-design-systems-6666deae74e7?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/6666deae74e7</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ui-ux-design]]></category>
            <category><![CDATA[design-thinking]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[creative-process]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Tue, 07 Jan 2025 21:00:52 GMT</pubDate>
            <atom:updated>2025-01-07T21:00:52.974Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*a-fJm91tkvuPYh6FIUtd4g.jpeg" /><figcaption>Design is how it works.</figcaption></figure><blockquote>“Design is not just what it looks like and feels like. Design is how it works.”</blockquote><p><strong>Steve Jobs</strong></p><h3>Reimagining Design and Development</h3><p>Imagine a designer hunched over a monitor, locked in a battle with the same UI pattern they’ve used a hundred times. They’re aligning buttons, tweaking margins, ensuring pixel-perfect consistency. Meanwhile, a developer sits across the room, meticulously converting design files into code, wrestling with inconsistent specifications. Both share a familiar frustration — creative ideas left unexplored, buried under repetitive tasks and endless adjustments.</p><p>But what if design systems could break this cycle? What if they could not only eliminate the blank canvas but also streamline design-to-code translation, freeing up both designers and engineers to focus on creativity?</p><p>Design systems are typically seen as tools for efficiency, but their true power is in how they can expand creative thinking across the entire team. By providing conceptual UX and design patterns upfront, they enable rapid ideation and smoother handoffs. Developers gain from this too: they can rely on consistent components and tokens, reducing tedious implementation work.</p><p>At the core, consistency is foundational. Yet, consistency isn’t the end goal — it’s just the start of more meaningful work. When both designers and developers operate from a shared system, they move beyond maintaining uniformity to creating engaging experiences. The design system’s well-defined elements don’t just enforce alignment; they allow teams to dive deeper into storytelling, interaction design, and strategic thinking.</p><p>Designers get more time to explore user behavior, while developers can optimize UI performance and ensure seamless interactions. The shift is profound: it’s not just about delivering designs but building user-focused <em>experiences</em> together. <strong>The best design systems give you more time to think about the user, not the UI.</strong></p><p>This collaborative process empowers teams to quickly iterate and test new concepts without getting bogged down by the basics. Imagine a carousel of UI concepts, each one rapidly prototyped and iterated using the same design tokens and variables. These consistent patterns can still support varied user experiences, pushing design boundaries.</p><h3>Empowering Senior Professionals</h3><p>Design systems shouldn’t be seen as a set of rules that limit creative vision. They’re tools that encourage senior designers and engineers to <em>zoom out</em> — to approach UX infrastructure strategically. By removing repetitive tasks and solving fundamental UX needs, design systems create space for more ambitious thinking.</p><p>For senior engineers, this means focusing on enhancing the system itself — like optimizing component performance, ensuring accessibility compliance, or integrating behavioral insights directly into reusable modules. This bigger-picture thinking aligns with the brand’s UX goals while supporting meaningful, user-centered design. <strong>The best innovations come when you stop thinking about pixels and start thinking about people.</strong></p><h3>Rethinking the Role of Design Systems</h3><p>It’s time to challenge the perception of design systems as mere tools for faster delivery. They are vehicles for creativity, offering opportunities for deeper research, prototyping, and experimentation. The collaboration between designers and developers becomes more dynamic, fostering innovation. With clear structure and shared language, teams can move faster toward impactful solutions. Let’s stop delivering designs. Let’s start delivering <strong>experiences</strong>.</p><p>Imagine transforming a simple UI element into a cohesive user experience — one that’s driven by design tokens, optimized by developers, and informed by real user behavior. This is the essence of a well-executed design system.</p><h3>Creative Empowerment</h3><p>Design systems are not the destination; they are the path. They are not the limit; they are the starting point for creativity and innovation. They liberate teams from the mundane, making room for the bold. The system’s power lies in how it connects design to development, enabling cross-functional teams to think bigger and move faster. Design systems don’t make you less creative — they make you more <strong>free</strong>.</p><p>Design systems foster a more collaborative environment, breaking down silos between designers and developers, and ultimately leading to better, more holistic user experiences.</p><p>Design systems are evolving from tools of efficiency to enablers of expansive creativity and collaboration. They have the potential to transform not just how we build interfaces but how teams create, collaborate, and inspire each other. By focusing on the bigger picture, we can unlock design systems’ true potential — helping us build <strong>experiences that</strong> <strong>matter</strong>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6666deae74e7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I Calculated the Business Case for a Design System]]></title>
            <link>https://medium.com/design-bootcamp/how-i-calculated-the-business-case-for-a-design-system-549def283eb5?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/549def283eb5</guid>
            <category><![CDATA[roi]]></category>
            <category><![CDATA[design-system-analytics]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[business-development]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Mon, 02 Sep 2024 13:43:05 GMT</pubDate>
            <atom:updated>2024-09-11T21:58:55.773Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cXJovdjEJpNYJL7_v2AJWg.png" /><figcaption>Design system insights brochure</figcaption></figure><p>One of the biggest hurdles in advocating for design systems within organizations is demonstrating their business value. It’s not uncommon for sales teams to struggle with selling the concept of a design system, often feeling like they’re pitching thin air. Meanwhile, tech debt accumulates as fragmented designs and inconsistent components bog down development teams, leading to costly rework and maintenance headaches. This challenge isn’t just theoretical — it’s a tangible roadblock that often prevents organizations from investing in the very tools that could save them time, money, and resources in the long run. I faced this challenge head-on with a potential client, and here’s what I did about it.</p><h4><strong>Design System Value in Business Terms</strong></h4><p>While the benefits of a design system are clear to designers and developers — consistency, efficiency, and a unified brand presence — translating these advantages into business terms can be difficult. Organizations often struggle to see beyond the immediate costs of building a design system, viewing it as a long-term project with unclear ROI. Tech debt continues to mount as teams spend countless hours maintaining and fixing inconsistencies, yet the idea of investing in a solution feels like a hard sell without concrete data to back it up. The key to overcoming this challenge is to present a clear, data-driven justification that highlights the long-term savings and value that a design system can deliver, reducing tech debt and providing a solid return on investment.</p><figure><img alt="Hours saved over projects consuming the design system" src="https://cdn-images-1.medium.com/max/890/1*BsIJbdkd-hfbqORnp5SD8w.png" /><figcaption>Changing the conversation to hours saved</figcaption></figure><h4><strong>Changing the Conversation to Cost Savings</strong></h4><p>To tackle this challenge, I shifted the narrative from always pitching efficiency to focusing on cost savings. Speaking in hours allowed me to appeal to the business side because that can easily be turned into cost. I developed a formula that quantifies the value of a design system over time by comparing the hours spent on standalone components versus those integrated into a design system. This formula became the foundation for a calculator that allowed us to project potential savings. First, let’s start by quantifying the cost of a single component to create a baseline cost.</p><p><strong>The Real Cost of Building a Button</strong></p><p>Consider the cost of creating a single component, like a button, for one project across a large organization:</p><ul><li><strong>Initial Design and Development</strong>: $2,000 (20 hours at $100/hour)</li><li><strong>Testing and Revisions</strong>: $1,000 (10 hours at $100/hour)</li><li><strong>Ongoing Support and Maintenance</strong>: $500 (5 hours over the component’s lifecycle)</li></ul><p>If the organization worked on <strong>50</strong> projects last year, each building their own button, the total cost would be <strong>$175,000</strong>:</p><blockquote>(2,000+1,000+500) × 50 = <strong>$175,000</strong></blockquote><p><strong>With a Design System</strong></p><p>By integrating this button into a design system, the initial cost remains, but the integration cost per project is significantly lower, let’s say $200 per project:</p><blockquote>2,000 + 1,000 + (200×50) = $13,000</blockquote><p>This results in a cost savings of <strong>$162,000</strong> in just one year — <strong>just on building a button component</strong>, illustrating the significant financial impact of having an entire library of standardized components will have.</p><p><strong>The Simplified Formula</strong></p><blockquote>Total Cost = Initial Investment +</blockquote><blockquote>(Integration Costs × Number of Projects)</blockquote><p>Using this approach, it’s easier to demonstrate the financial benefits of a design system by converting time savings into concrete dollar amounts, making a compelling business case for stakeholders.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/834/1*MExmu1WhFETFzHmZMTOHog.png" /><figcaption>Converting to dollars shows exponential savings</figcaption></figure><h4>Securing Stakeholder Buy-In</h4><p><strong>The Power of Data-Driven Decisions</strong></p><p>Securing buy-in for a design system often requires demonstrating clear, tangible benefits. By using a formula to show the actual hours saved and translating those into financial terms, I presented a data-driven case that aligned perfectly with their business goals. This approach not only made the decision easier for stakeholders but also emphasized the critical role of strategic business thinking in the design process.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=549def283eb5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/design-bootcamp/how-i-calculated-the-business-case-for-a-design-system-549def283eb5">How I Calculated the Business Case for a Design System</a> was originally published in <a href="https://medium.com/design-bootcamp">Bootcamp</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Crafting a More Resilient Design System Process]]></title>
            <link>https://medium.com/design-bootcamp/crafting-a-more-resilient-design-system-process-4d1e27c5bdb8?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/4d1e27c5bdb8</guid>
            <category><![CDATA[figma]]></category>
            <category><![CDATA[component-libraries]]></category>
            <category><![CDATA[design-process]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[design-operations]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Mon, 05 Aug 2024 21:01:39 GMT</pubDate>
            <atom:updated>2024-08-07T05:54:08.113Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="design system component graphic" src="https://cdn-images-1.medium.com/max/1024/1*9LtMv4vT3Q_Y34LsiU_qKg.png" /></figure><p>Once again, Figma’s Config delivered some gold on optimizing design systems this year. I’d like to share some of what I learned and some fresh techniques on structuring components effectively and how to communicate<em> </em>m̶o̶r̶e̶ better to elevate the game. Let’s go…</p><h3>Smarter Components and Styles</h3><p>At the heart of an effective design system lies intelligently structured components and styles. This begins by <strong>thinking modular</strong> — splitting big components into manageable sub-component sets. It’s a must-have if you want to easily update and scale. If this approach feels familiar, you’re not wrong — it’s really starting to look awfully similar to front-end library code.</p><figure><img alt="Design system component set from Figma to Code" src="https://cdn-images-1.medium.com/max/1024/1*xtpiPk3Ixc0Nmyei09Obrw.png" /></figure><p>When working with components, it’s crucial to understand the distinction between <strong>variants</strong> and <strong>properties</strong>. Variants are visual representations, while props are editable attributes within the set. Clearly distinguishing these helps in managing the components more effectively. I like to think of it this way:</p><blockquote>Variants are what you see, properties are what you tweak.</blockquote><p>To keep your design system organized and easy to navigate, consistent <strong>naming conventions</strong> are key. The more cohesive this is, the more it aligns with types and other shared code. This consistency extends to how you order and group your components. Keeping related variants and props together minimizes complexity and enhances discoverability.</p><p>When <strong>presenting</strong> your design system to users, it’s important to surface only the <em>essential</em> elements. This focused approach ensures that only the most relevant patterns are highlighted, minimizing mental load for users. Show off the key patterns rather than getting bogged down in fine details.</p><p>In cases where you find repetition, don’t hesitate to override names. This helps in maintaining clarity and reducing redundancy.</p><blockquote><strong>Keep it clean and clear</strong>.</blockquote><p>Leverage configuration options to customize and streamline component behavior, making them more adaptable to various use cases. Flexibility is key in a robust design system.</p><p>To further refine your process, consider using tools that allow for side-by-side comparisons of detached components with the original. This helps the design system team understand what was missing when the product designer changed the component. Behind the scenes, hiding variables that aren’t used in production (what we might call <strong>backstage variables</strong>) helps streamline the design process. Focus on what really matters.</p><p>Finally, don’t underestimate the power of scoped targeting. Utilize <strong>scoping </strong>in Figma to target specific properties for precise and efficient design adjustments to your DS.</p><figure><img alt="Figma variable scoping" src="https://cdn-images-1.medium.com/max/1024/1*-pinK7-nG2NsfV1r8OV7Aw.gif" /></figure><h3>Assembling a Crew</h3><p>Building a strong design system isn’t a solo endeavor — it’s about assembling the right crew and fostering collaboration. Communication is important, and it should be a <strong>two-way</strong> street. Talk it out about those component props to ensure everyone’s on the same page.</p><p>Don’t wait for perfection before sharing your work. Share early and share often — this approach gets feedback rolling and allows you to iterate like a pro. As you build your team, identify design system enthusiasts. These champions are your secret weapon for adoption, so provide them with the resources they need to spread the good word. Think interactive onboarding experiences — after all, you can’t be everywhere at once.</p><p>Remember that recognition goes a long way. Make design system contributions count in reviews. This not only motivates your team but also reinforces the importance of the design system within your organization.</p><h3>Design System Analytics and Health</h3><p>To ensure your design system remains effective and relevant, it’s crucial to monitor its health and usage. Start by getting to know your users — dive deep into what they need. A cool idea from Figma’s design system team is to throw in some emojis in the component file’s comments — you can search for them later (😎😭👍👎⭐️🚫).</p><p>Monitor the usage of libraries, components, and detaches through library analytics. This helps you understand who’s using (or <em>not using</em>) different parts of your system. Keep an eye on the big picture too — make sure your design system <strong>aligns with company goals</strong>. This alignment helps garner more buy-in and potentially attracts more contributors.</p><figure><img alt="Figma library analytics" src="https://cdn-images-1.medium.com/max/1024/1*eZCoTbwOnAoegv9qLxufaQ.png" /><figcaption>Figma Library Analytics</figcaption></figure><p>Building and maintaining a design system is an <em>iterative</em> process. <strong>Plan, test, publish, and repeat</strong>. Don’t be afraid to retire those outdated components — sometimes, deleting is progress too. By staying vigilant about your system’s health and continuously refining it based on user needs and company goals, you’ll create a design system that truly serves its purpose and evolves with your organization.</p><p>That’s my inside scoop on leveling up your design system game. Crafting a resilient design system is about much more than just components and styles. It’s about building a robust ecosystem that includes <strong>smart architecture, effective collaboration, strategic scaling, and feedback-driven decisions.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4d1e27c5bdb8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/design-bootcamp/crafting-a-more-resilient-design-system-process-4d1e27c5bdb8">Crafting a More Resilient Design System Process</a> was originally published in <a href="https://medium.com/design-bootcamp">Bootcamp</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Developer’s Guide to Applying Design System Themes from Figma to React]]></title>
            <link>https://medium.com/design-bootcamp/a-developers-guide-to-applying-design-system-themes-from-figma-to-react-577e6f3743ef?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/577e6f3743ef</guid>
            <category><![CDATA[variables]]></category>
            <category><![CDATA[component-libraries]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[themes]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Wed, 24 Jul 2024 02:31:48 GMT</pubDate>
            <atom:updated>2024-07-24T18:54:05.150Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="Design systems to component library code, React, Figma, Theme service, Variables to CSS properties" src="https://cdn-images-1.medium.com/max/1024/1*OBq_ZDUgU32ilEJcQ2LA4w.png" /></figure><h3>A Developer’s Guide to Applying Themes from Figma Design Systems</h3><p>Theming is not just about aesthetics — it’s about creating adaptable user experiences that align with brand identity and user preferences. As applications grow in complexity and scale, the need for a robust theming solution becomes paramount, especially when implementing design systems across various platforms and products.</p><p>This guide will walk you through the process of building a robust theme service that seamlessly connects Figma design systems to code. We’ll explore a practical architecture that allows for easy maintenance and runtime theme switching.</p><p>Some of the key parts to bring theming to life:</p><ul><li>Extract theme data from Figma using variables and variable collections</li><li>Build a flexible theme service in TypeScript</li><li>Implement theme and mode switching in your components</li><li>Create a scalable theming architecture that works across different projects and platforms</li></ul><h3>A Sample Theme Architecture</h3><p>Here’s a basic implementation of a design system theme model that we’ll use for this exercise. The theme consists of two distinct collections:</p><ol><li><strong>Primitive Scales</strong>: These are the raw values exported from design tools, typically representing colors, typography, spacing, etc.</li><li><strong>Semantic Themes</strong>: These map semantic names (like ‘primary’ or ‘background’) to values from the primitive scales.</li></ol><figure><img alt="A sample design system theme architecture for token relation between brand availability and product theming." src="https://cdn-images-1.medium.com/max/1024/1*d2jZIIMzUUL855ZiX4wcPw.png" /><figcaption>Design System Theme Sample Architecture</figcaption></figure><p>This separation allows us to maintain brand consistency through the primitive scales while providing flexibility in how these brand elements are applied across different product themes or modes. By using this approach, we can easily swap between semantic themes (e.g., switching from light to dark mode) without altering the underlying brand scales or modifying component code.<br>We’ll implement this architecture using CSS variables, enabling runtime theme switching without any unstyled content flashes. This method ensures a smooth, consistent user experience across different themes and modes within our application.Setting Up the Theme Service</p><p>Let’s start by defining our types and creating the basic structure of our Theme Service:</p><pre>// types.ts<br>export interface ThemeScale {<br>  colors: Record&lt;string, string&gt;;<br>  fontSizes: Record&lt;string, string&gt;;<br>  // Add other primitive scales as needed<br>}<br><br>export interface Theme {<br>  primary: string;<br>  secondary: string;<br>  background: string;<br>  text: string;<br>  // Add other semantic properties<br>}<br><br>// themeService.ts<br>import { ThemeScale, Theme } from &#39;./types&#39;;<br><br>class ThemeService {<br>  private scale: ThemeScale;<br>  private currentTheme: Theme;<br><br>  constructor(defaultScale: ThemeScale, defaultTheme: Theme) {<br>    this.scale = defaultScale;<br>    this.currentTheme = defaultTheme;<br>    this.applyTheme(defaultTheme);<br>  }<br><br>  public setScale(newScale: ThemeScale): void {<br>    this.scale = newScale;<br>    this.applyTheme(this.currentTheme);<br>  }<br><br>  public setTheme(newTheme: Theme): void {<br>    this.currentTheme = newTheme;<br>    this.applyTheme(newTheme);<br>  }<br><br>  private applyTheme(theme: Theme): void {<br>    Object.entries(theme).forEach(([key, value]) =&gt; {<br>      document.documentElement.style.setProperty(<br>        `--${key}`,<br>        this.scale.colors[value] || value<br>      );<br>    });<br>  }<br>}<br><br>export const themeService = new ThemeService(defaultScale, defaultTheme);</pre><p>This ThemeService class provides methods to set both the scale and the theme, and it automatically applies the theme to the document root using CSS variables.</p><h3>Integrating with Figma</h3><p>To bridge the gap between design and development, we’ll use Figma’s native variables functionality and the <a href="https://www.figma.com/community/plugin/1301567053264748331/variables-to-json?searchSessionId=lyz2nan1-qt7dsf3dvw">Variables to JSON</a> plugin to export our design tokens. This approach ensures we’re working with the most up-to-date design system data.</p><h3>Exporting Variables from Figma</h3><ol><li>Install the <a href="https://www.figma.com/community/plugin/1301567053264748331/variables-to-json?searchSessionId=lyz2nan1-qt7dsf3dvw">Variables to JSON</a> plugin from the Figma Community.</li><li>Set up your variables in Figma using the native variables feature.</li><li>Run the plugin (Plugins &gt; Variables to JSON).</li><li>Click “Copy JSON” to get the JSON representation of your variables.</li></ol><p>The plugin output will look similar to this:</p><pre>{<br>  &quot;colors&quot;: {<br>    &quot;primary&quot;: {<br>      &quot;500&quot;: &quot;#0066CC&quot;<br>    },<br>    &quot;secondary&quot;: {<br>      &quot;500&quot;: &quot;#5BBF3B&quot;<br>    },<br>    &quot;gray&quot;: {<br>      &quot;100&quot;: &quot;#F5F5F5&quot;,<br>      &quot;900&quot;: &quot;#1A1A1A&quot;<br>    }<br>  },<br>  &quot;typography&quot;: {<br>    &quot;fontSize&quot;: {<br>      &quot;small&quot;: &quot;12px&quot;,<br>      &quot;medium&quot;: &quot;16px&quot;,<br>      &quot;large&quot;: &quot;24px&quot;<br>    }<br>  },<br>  &quot;theme&quot;: {<br>    &quot;light&quot;: {<br>      &quot;background&quot;: &quot;{colors.gray.100}&quot;,<br>      &quot;text&quot;: &quot;{colors.gray.900}&quot;<br>    },<br>    &quot;dark&quot;: {<br>      &quot;background&quot;: &quot;{colors.gray.900}&quot;,<br>      &quot;text&quot;: &quot;{colors.gray.100}&quot;<br>    }<br>  }<br>}</pre><h3>Transforming Figma Output</h3><p>Now, let’s update our functions to transform this Figma output into our ThemeScale and Theme:</p><pre>// figmaIntegration.ts<br>import figmaVariables from &#39;./figma-variables.json&#39;;<br><br>function flattenColors(colors: Record&lt;string, any&gt;, prefix = &#39;&#39;): Record&lt;string, string&gt; {<br>  return Object.entries(colors).reduce((acc, [key, value]) =&gt; {<br>    if (typeof value === &#39;string&#39;) {<br>      acc[prefix + key] = value;<br>    } else {<br>      Object.assign(acc, flattenColors(value, `${prefix}${key}.`));<br>    }<br>    return acc;<br>  }, {} as Record&lt;string, string&gt;);<br>}<br><br>export function createScaleFromFigma(figmaJson: any): ThemeScale {<br>  return {<br>    colors: flattenColors(figmaJson.colors),<br>    fontSizes: figmaJson.typography.fontSize,<br>    // Map other collections as needed<br>  };<br>}<br><br>export function createThemeFromFigma(figmaJson: any, mode: &#39;light&#39; | &#39;dark&#39;): Theme {<br>  const themeValues = figmaJson.theme[mode];<br>  return {<br>    primary: figmaJson.colors.primary[&#39;500&#39;],<br>    secondary: figmaJson.colors.secondary[&#39;500&#39;],<br>    background: themeValues.background.replace(/[{}]/g, &#39;&#39;),<br>    text: themeValues.text.replace(/[{}]/g, &#39;&#39;),<br>    // Map other theme variables<br>  };<br>}<br><br>const scale = createScaleFromFigma(figmaVariables);<br>const lightTheme = createThemeFromFigma(figmaVariables, &#39;light&#39;);<br>const darkTheme = createThemeFromFigma(figmaVariables, &#39;dark&#39;);<br><br>themeService.setScale(scale);<br>themeService.setThemeWithModes({ light: lightTheme, dark: darkTheme });</pre><h3>Using the Theme Service in Components</h3><p>With our Theme Service set up, we can now use it in our components. Here’s an example of a themed button component:</p><pre>// Button.tsx<br>import React from &#39;react&#39;;<br>import styled from &#39;styled-components&#39;;<br><br>const StyledButton = styled.button`<br>  background-color: var(--primary);<br>  color: var(--text);<br>  font-size: var(--fontSize-md);<br>  padding: 10px 20px;<br>  border: none;<br>  border-radius: 4px;<br>  cursor: pointer;<br><br>  &amp;:hover {<br>    background-color: var(--secondary);<br>  }<br>`;<br><br>export const Button: React.FC&lt;React.ButtonHTMLAttributes&lt;HTMLButtonElement&gt;&gt; = (props) =&gt; {<br>  return &lt;StyledButton {...props} /&gt;;<br>};</pre><p>Notice how this component uses CSS variables that correspond to our semantic theme. This allows the button to automatically update when the theme changes, without any modifications to the component itself.</p><h3>Implementing Theme Switching</h3><p>To demonstrate the power of our Theme Service, let’s implement a theme switcher:</p><pre>// ThemeSwitcher.tsx<br>import React from &#39;react&#39;;<br>import { themeService } from &#39;./themeService&#39;;<br>import { lightTheme, darkTheme } from &#39;./themes&#39;;<br><br>export const ThemeSwitcher: React.FC = () =&gt; {<br>  const [isDark, setIsDark] = React.useState(false);<br><br>  const toggleTheme = () =&gt; {<br>    const newTheme = isDark ? lightTheme : darkTheme;<br>    themeService.setTheme(newTheme);<br>    setIsDark(!isDark);<br>  };<br><br>  return (<br>    &lt;button onClick={toggleTheme}&gt;<br>      Switch to {isDark ? &#39;Light&#39; : &#39;Dark&#39;} Theme<br>    &lt;/button&gt;<br>  );<br>};</pre><p>This component allows users to switch between light and dark themes at runtime, showcasing the flexibility of our theming solution.</p><h3>Implementing Mode Switching</h3><p>While theme switching allows for changing the entire color palette, mode switching typically involves toggling between light and dark versions of the same theme. This is a common requirement in many applications for improving readability and reducing eye strain in different lighting conditions.</p><p>Let’s extend our Theme Service to handle mode switching:</p><pre>// types.ts<br>export type Mode = &#39;light&#39; | &#39;dark&#39;;<br><br>export interface ThemeWithModes {<br>  light: Theme;<br>  dark: Theme;<br>}<br><br>// themeService.ts<br>class ThemeService {<br>  // ... previous code ...<br><br>  private currentMode: Mode = &#39;light&#39;;<br><br>  public setMode(mode: Mode): void {<br>    this.currentMode = mode;<br>    this.applyTheme(this.currentTheme[mode]);<br>  }<br><br>  public getMode(): Mode {<br>    return this.currentMode;<br>  }<br><br>  public setThemeWithModes(themeWithModes: ThemeWithModes): void {<br>    this.currentTheme = themeWithModes;<br>    this.applyTheme(themeWithModes[this.currentMode]);<br>  }<br><br>  // ... other methods ...<br>}</pre><h3>Conclusion</h3><p>By implementing this Theme Service, we’ve created a powerful, flexible system for managing themes in applications that use design systems. Some of the important parts:</p><ol><li><strong>Decoupling</strong>: Themes are separate from component logic, allowing for easy updates and maintenance. Themes have at least two distinct parts to them allowing you to separate brand from application of brand.</li><li><strong>Runtime Switching</strong>: Themes can be changed dynamically without page reloads or component updates.</li><li><strong>Design to Development</strong>: Direct integration with design tools like Figma ensures consistency between design and implementation.</li><li><strong>Scalability</strong>: The system can easily accommodate multiple themes and scales for different products or brands.</li></ol><p>Remember, great theming is an ongoing process. Continuously gather feedback from designers, developers, and end-users to refine your system. With this foundation, you’re well-equipped to create themeable, consistent applications that fully leverage your design system and provide excellent user experiences across all themes and modes.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=577e6f3743ef" width="1" height="1" alt=""><hr><p><a href="https://medium.com/design-bootcamp/a-developers-guide-to-applying-design-system-themes-from-figma-to-react-577e6f3743ef">A Developer’s Guide to Applying Design System Themes from Figma to React</a> was originally published in <a href="https://medium.com/design-bootcamp">Bootcamp</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Beyond the hype: rethinking Design Systems in 2024]]></title>
            <link>https://medium.com/design-bootcamp/beyond-the-hype-rethinking-design-systems-in-2024-3bd5fd54cc85?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/3bd5fd54cc85</guid>
            <category><![CDATA[figma]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[components]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[figma-config]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Tue, 16 Jul 2024 22:02:24 GMT</pubDate>
            <atom:updated>2024-08-06T13:15:02.721Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*GsxI0i_34wVLHQy6.png" /></figure><p>Design systems have become our go-to for creating scalable, consistent experiences across products. But are we trading creativity for cohesion? At Figma Config this year, speaker <a href="https://www.linkedin.com/in/cameronworboys/">Cam Worboys</a> challenged us to take a critical look at design systems and their impact on our work.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBQXTt-NZ2Bs%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBQXTt-NZ2Bs&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBQXTt-NZ2Bs%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/ea9752b12afb022d46ff5f6e6b33ec4f/href">https://medium.com/media/ea9752b12afb022d46ff5f6e6b33ec4f/href</a></iframe><h3>The Speed Paradox</h3><p>We’ve all heard the promise: design systems accelerate our workflow. But Worboys reminded us:</p><blockquote>“Great design takes time.”</blockquote><p>This simple truth often gets lost in the rush to implement and leverage design systems. While efficiency is crucial, it shouldn’t come at the cost of innovation. The challenge? Finding the sweet spot where speed and creativity coexist.</p><h3>Cohesion vs. Commoditization</h3><p>In 2024, managing design at scale without a system seems almost impossible. Design systems create trustworthy branding and maintain consistency. But there’s a catch:</p><blockquote>“Design systems can’t prevent bad design decisions.”</blockquote><p>The sameness accelerated by design systems risks making our products indistinguishable. So, how do we maintain cohesion without sacrificing uniqueness?</p><h3>Embracing the Deliberately Different</h3><p>To combat design homogenization, Worboys suggests expanding our design system expression:</p><ol><li>Exploring diverse interaction and animation patterns</li><li>Putting typography at the forefront (custom fonts, anyone?)</li><li>Focus on what makes your product unique</li></ol><h3>Quality: The True North</h3><p>Design systems alone don’t guarantee quality. As Worboys put it, “The building blocks alone aren’t enough.” Instead, focus on quality as an outcome of doing the right things.</p><p>Take Cash App’s approach:</p><ul><li>Foundations</li><li>Components</li><li>Patterns</li><li>Product primitives</li><li>Governance</li></ul><p>Their plugin/widget architecture allows customization while maintaining a scalable system.</p><h3>The Recipe for Greatness</h3><p>Good products stem from a clear vision, great ingredients, and great decisions. Design systems should provide teams with a recipe for greatness, not just a set of ingredients.</p><p>As we navigate the evolving landscape of design systems in 2024 and beyond, remember that design systems are tools, not rules. They should amplify your creativity whithout constraining it.</p><p>The next time you open your design system, ask yourself: “Am I using this to make something great, or just something familiar?” Your answer might just be the difference between a good product and an unforgettable one.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3bd5fd54cc85" width="1" height="1" alt=""><hr><p><a href="https://medium.com/design-bootcamp/beyond-the-hype-rethinking-design-systems-in-2024-3bd5fd54cc85">Beyond the hype: rethinking Design Systems in 2024</a> was originally published in <a href="https://medium.com/design-bootcamp">Bootcamp</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Design Systems: Bridging the Gap Between Design and Engineering]]></title>
            <link>https://medium.com/@m4tuna/design-systems-bridging-the-gap-between-design-and-engineering-69a831284619?source=rss-b55533884e33------2</link>
            <guid isPermaLink="false">https://medium.com/p/69a831284619</guid>
            <category><![CDATA[product-development]]></category>
            <category><![CDATA[design-operations]]></category>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[design-systems]]></category>
            <category><![CDATA[governance]]></category>
            <dc:creator><![CDATA[Mike Fortuna]]></dc:creator>
            <pubDate>Fri, 14 Jul 2023 12:54:49 GMT</pubDate>
            <atom:updated>2023-07-14T12:55:28.150Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1egMPyiGEgEtIhDslnYGKQ.png" /></figure><h3>Breaking Down a Design System</h3><p>A design system, composed of carefully crafted components, harmonizes to serve a singular purpose: providing a cohesive language for its primary users, the engineers, and designers. These are the masterminds who shape user experiences, where their expertise directly impacts the quality of the outcome. Therefore, nurturing an enhanced work environment is pivotal. After all, cultivating sophisticated design starts with empowering the creators themselves.</p><h3>The Design System Core</h3><p>At the heart of our system is its core, which provides a range of services, functions, type systems, scales, and theme models essential for building cohesive components. A robust core shapes a consistent, intuitive creation experience for designers and engineers.</p><p>When constructing this foundational bedrock, three distinct, yet equally vital mindsets must be adopted:</p><ul><li><strong>Designer Mindset — Unpacking the ‘Why’:</strong> This mindset is centered on the components’ visual attributes, including the color system, typography, and density models. The goal is to ensure each component visually aligns with the design language, fostering uniformity throughout.</li><li><strong>Product Mindset — Generating the ‘What’:</strong> With attention on the product’s future, this approach understands its intended growth, usage trajectory, and the creation of new use cases based on future roadmap items. This perspective helps the system team make decisions to shape the future of dynamic design across the product.</li><li><strong>Engineer Mindset — Detailing the ‘How’:</strong> Focused on the technical intricacies of the components, this mindset is all about adherence to best practices and high performance. The objective is flawlessness in every component’s function, leaving no room for inconsistency.</li></ul><p>Uniting these diverse perspectives cultivates a comprehensive approach to building an effective, streamlined design system.</p><h3>Component Library</h3><p>Components are the main deliverables in a design system, with <a href="https://atomicdesign.bradfrost.com/chapter-2/">atomic design principles</a> serving as a guiding framework for their development. These principles offer a holistic view of the library’s fundamental elements, supporting teams in creating common layouts and reusable micro user interfaces.</p><p>Key to maintaining user focus, components aim to standardize actions, mitigating the need to create bespoke solutions and learn new UX patterns. An effective component library respects versioning, providing concise, timely updates. Clear changelogs with outlined changes and integration steps can foster ease and confidence in teams during application updates.</p><h3>Figma, Tokens, and Theming</h3><p>A synchronized <a href="https://help.figma.com/hc/en-us/articles/360041051154-Guide-to-libraries-in-Figma">Figma Library</a> stands as a pivotal part of a robust design system. It operates as the definitive reference for applying the design language to its components, serving up reusable and droppable artifacts that align perfectly with each developed component.</p><p>Tokens are a key element to the design language. They establish a uniform theme standard across application UX, bolstering consistency and clarity. I personally find <a href="https://tokens.studio/">Tokens Studio</a>, a plugin for Figma, to be a highly effective tool. Please note, as I’m writing this post, there are some new features announced in <a href="https://www.figma.com/blog/config-2023-recap/">Figma Config Keynote 2023</a>; in particular Figma now natively supports variables for dynamic design solutions. Whichever tokens or variables solution you may chose, the output from either can be translated to <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties">CSS variables</a>, ensuring a seamless transition from design language to code. This approach facilitates an efficient workflow, allowing us to maintain theme consistency without sacrificing the flexibility and adaptability needed in a dynamic development environment.</p><p>Themes can be exported from Figma to GitHub in a user-friendly JSON format, empowering the development team to consume and version these elements directly into the Component Development Kit (CDK) as themes. Furthermore, the library enriches the design system with embedded UX documentation, seamlessly integrated into the Storybook component pages. In essence, it acts as a dynamic, interactive guidebook, equipping teams with all the necessary tools to navigate and utilize the design system effectively.</p><h3>Boilerplate</h3><p>A boilerplate serves as a model repository, offering an efficient and streamlined starting point for launching front-end projects. A useful tool for creating a library boilerplate is <a href="https://nx.dev/getting-started/intro">NX</a>. NX helps provide a flexible and incremental development framework, enabling developers to incorporate the specific package configurations needed for their unique builds, without creating unnecessary bloat.</p><h3>Documentation</h3><p>The importance of documentation cannot be understated. Without it, the system may fail to thrive, impede adoption, and limit contributions. In crafting your documentation, the aim should be to articulate information in a clear, concise manner, while also being inclusive of the diverse stakeholders in the ecosystem. By focusing on these aspects, you ensure that your documentation is not only informative and user-friendly but also inclusive, promoting wider engagement and collaboration within your community.</p><p>When it comes to solutions, <a href="https://storybook.js.org/">Storybook</a> shines as an invaluable asset. It automatically generates comprehensive documentation from comments and offers a live testing environment for component props. This feature empowers teams to experiment with and evaluate different component variations directly on the site, promoting a hands-on, interactive approach to component testing and optimization.</p><h3>Proper Strategy and Governance</h3><p>An effective design system is built upon a deep understanding of the needs and experiences of designers and developers. These considerations should form the foundation of your strategic approach.</p><h3>Stakeholder Engagement</h3><p>Firstly, thorough stakeholder engagement is crucial. Conduct in-depth interviews with target development teams and UX/design leads to capture their unique perspectives, requirements, and use cases. This helps ensure the design system you’re building aligns with their needs and facilitates their work.</p><h3>Launch and Feedback</h3><p>After launching the design system, iterative feedback and improvement should become a cornerstone of your strategy. Here are a few ways to foster this:</p><ul><li><strong>Surveys</strong>: Distribute quarterly developer and designer experience surveys. This regular check-in provides insights into how well the design system is meeting needs and where improvements can be made.</li><li><strong>Contributions</strong>: Encourage contributions from within the team, following <a href="https://innersourcecommons.org/">InnerSource</a> principles. Foster an environment that emphasizes openness, transparency, prioritized mentorship, and voluntary code contribution. This inclusivity can empower team members to improve the system actively.</li></ul><h3>Governance Team</h3><p>Establishing a governance team is critical in maintaining the system’s integrity:</p><ul><li><strong>Inclusion Decisions</strong>: The governance team should decide on library inclusion based on relevance and compliance with certain standards. For instance, enforcing <a href="https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html">WCAG 2.0 Level AA</a> and <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">internationalization</a> support as requirements for inclusion ensures accessibility and global usability.</li><li><strong>Theme and Functionality</strong>: The team should also make opinionated decisions on the system’s theme, functionality, and methods/services offered for downstream alterations. This ensures a degree of consistency and coherence in the design system.</li></ul><p>Remember, the success of a design system hinges on it being a living, evolving entity, continually shaped by the needs of those who use it. Proper strategy and governance enable the system to grow organically while maintaining alignment with its original goals and principles.</p><h3>Final Thoughts</h3><p>In adhering to this approach, the design system becomes more than a mere tool — it transforms into an empowering platform that enables developers and designers to create consistent, accessible, and visually appealing application ecosystems. A robust design system stands as a keystone, cementing the visual and functional unity across any product ecosystem. It cultivates an environment for seamless collaboration between designers and developers, ensuring uniformity while accelerating processes.</p><p>Balancing the intricacies of design, development, governance, and documentation is undoubtedly complex, but it’s an endeavor worth pursuing. It’s a journey that ignites creativity and, at the same time, fosters a sense of structure and order. As you traverse the challenging terrain of creating a design system, remember to explore each of these aspects.</p><p>Remember, the journey to a robust design system is not a sprint, but a marathon. Each step you take, and each decision you make, contributes to a foundation that can support and inspire your teams for years to come. Let your design system be the catalyst for innovation, productivity, and most importantly, a memorable user experience.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=69a831284619" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>