{"id":57658,"date":"2025-12-01T03:58:28","date_gmt":"2025-12-01T11:58:28","guid":{"rendered":"https:\/\/www.uxpin.com\/studio\/?p=57658"},"modified":"2026-05-09T02:25:23","modified_gmt":"2026-05-09T09:25:23","slug":"managing-global-styles-in-react-with-design-tokens","status":"publish","type":"post","link":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/","title":{"rendered":"Managing Global Styles in React with Design Tokens"},"content":{"rendered":"<p><a href=\"https:\/\/www.uxpin.com\/docs\/design-systems\/color-design-tokens\/\" style=\"display: inline;\">Design tokens<\/a> simplify managing styles in React by centralizing visual properties like colors, fonts, and spacing. Instead of hardcoding values across your app, you define reusable tokens (e.g., <code>primary: '#4A00FF'<\/code>) that automatically update everywhere when changed. This approach ensures consistency, speeds up design updates, and supports features like theming (light\/dark mode) and multi-platform compatibility.<\/p>\n<h3 id=\"key-benefits\" tabindex=\"-1\">Key Benefits:<\/h3>\n<ul>\n<li><strong>Centralized Styling<\/strong>: Tokens act as a <a href=\"https:\/\/www.uxpin.com\/studio\/blog\/single-source-truth-benefits\/\" style=\"display: inline;\">single source of truth<\/a>.<\/li>\n<li><strong>Dynamic Theming<\/strong>: Easily switch between themes (e.g., light\/dark mode).<\/li>\n<li><strong>Flexibility Across Platforms<\/strong>: Convert tokens into <a href=\"https:\/\/www.uxpin.com\/docs\/editor\/custom-styles-with-css3\/\" style=\"display: inline;\">CSS variables<\/a>, React themes, or platform-specific formats (iOS, Android).<\/li>\n<li><strong>Improved Collaboration<\/strong>: Tokens create a shared language between designers and developers.<\/li>\n<li><strong>Scalable <a href=\"https:\/\/www.uxpin.com\/docs\/design-systems\/design-systems\/\" style=\"display: inline;\">Design Systems<\/a><\/strong>: Use primitive tokens (raw values) and semantic tokens (context-aware) for better organization.<\/li>\n<\/ul>\n<h3 id=\"quick-steps-to-get-started\" tabindex=\"-1\">Quick Steps to Get Started:<\/h3>\n<ol>\n<li><strong>Define Tokens<\/strong>: Store values in JSON\/YAML (e.g., colors, spacing, typography).<\/li>\n<li><strong>Use Tools<\/strong>: Tools like <a href=\"https:\/\/styledictionary.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Style Dictionary<\/a> transform tokens into CSS variables or other formats.<\/li>\n<li><strong>Integrate with React<\/strong>: Apply CSS variables in components using inline styles, CSS modules, or libraries like <a href=\"https:\/\/www.styled-components.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">styled-components<\/a>.<\/li>\n<li><strong>Enable Theming<\/strong>: Create separate token sets for light\/dark modes and switch dynamically.<\/li>\n<\/ol>\n<p>By adopting design tokens, you ensure consistent styling, reduce maintenance overhead, and make your React project more efficient.<\/p>\n<h2 id=\"composable-theming-with-react-and-design-tokens-consistency-and-control-across-apps\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Composable theming with React and design tokens: Consistency and control across apps<\/h2>\n<p> <iframe class=\"sb-iframe\" src=\"https:\/\/www.youtube.com\/embed\/aGJU8aE71u4\" frameborder=\"0\" loading=\"lazy\" allowfullscreen style=\"width: 100%; height: auto; aspect-ratio: 16\/9;\"><\/iframe><\/p>\n<h2 id=\"setting-up-a-design-token-system\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Setting Up a Design Token System<\/h2>\n<p>Laying the groundwork for a <a href=\"https:\/\/www.uxpin.com\/design-tokens\" style=\"display: inline;\">design token system<\/a> involves breaking the process into clear, manageable steps that can grow with your team&#8217;s needs.<\/p>\n<h3 id=\"defining-and-structuring-design-tokens\" tabindex=\"-1\">Defining and Structuring Design Tokens<\/h3>\n<p>The first step is deciding how to store your design tokens. <strong>JSON<\/strong> and <strong>YAML<\/strong> are popular options because they&#8217;re easy to edit and work across platforms. These formats allow you to organize tokens in a hierarchical structure that aligns with your team&#8217;s workflow.<\/p>\n<p>Here&#8217;s an example of a simple JSON structure:<\/p>\n<pre><code class=\"language-json\">{   &quot;color&quot;: {     &quot;primary&quot;: {       &quot;value&quot;: &quot;#007bff&quot;     },     &quot;secondary&quot;: {       &quot;value&quot;: &quot;#6c757d&quot;     }   },   &quot;spacing&quot;: {     &quot;small&quot;: {       &quot;value&quot;: &quot;8px&quot;     },     &quot;medium&quot;: {       &quot;value&quot;: &quot;16px&quot;     }   },   &quot;typography&quot;: {     &quot;fontSize&quot;: {       &quot;base&quot;: {         &quot;value&quot;: &quot;16px&quot;       }     }   } } <\/code><\/pre>\n<p>Each token uses a consistent <code>value<\/code> property, making it easier to transform and manage. Establishing a clear naming system is just as important. A good naming convention should provide context and scalability. For instance, instead of naming a token simply <code>blue<\/code>, you could use a descriptive name like <code>wm-material-button-background-primary-on-hover<\/code>. This approach ensures clarity about the token&#8217;s purpose and usage.<\/p>\n<p>To maintain organization, group tokens into categories like color, spacing, and typography. This separation not only reduces complexity but also allows you to apply different modes &#8211; such as light or dark themes &#8211; to specific groups of tokens as needed.<\/p>\n<p>Finally, it&#8217;s crucial to distinguish between <strong>primitive tokens<\/strong> and <strong>semantic tokens<\/strong> for better system management.<\/p>\n<h3 id=\"primitive-vs-semantic-tokens\" tabindex=\"-1\">Primitive vs. Semantic Tokens<\/h3>\n<p>Understanding the difference between primitive and semantic tokens helps create a flexible and <a href=\"https:\/\/www.uxpin.com\/studio\/webinars\/design-systems-accounting-quantity-scalability\/\" style=\"display: inline;\">scalable design system<\/a>.<\/p>\n<ul>\n<li> <strong>Primitive tokens<\/strong> are the raw, foundational values. Think of them as the building blocks of your system &#8211; specific values like a hex code (<code>#3366FF<\/code>) or a pixel measurement (<code>16px<\/code>). Examples include:\n<ul>\n<li><code>color.blue.500: #3366FF<\/code><\/li>\n<li><code>spacing.scale.4: 16px<\/code><\/li>\n<\/ul>\n<\/li>\n<li> <strong>Semantic tokens<\/strong> (or alias tokens) are context-aware and reference primitive tokens. Instead of directly using <code>color.blue.500<\/code>, you might define a semantic token like <code>color.primary<\/code> or <code>button.background<\/code>. This abstraction allows you to make changes to a single semantic token and have those updates automatically cascade across all components that use it. Semantic tokens also improve collaboration by focusing on design intent rather than raw values. <\/li>\n<\/ul>\n<p>For example, updating <code>color.primary<\/code> in one place would instantly update all buttons, headers, or other elements referencing it. This layered approach ensures your system remains easy to maintain as it evolves.<\/p>\n<p>Once you&#8217;ve defined your tokens, the next step is to implement them using transformation tools.<\/p>\n<h3 id=\"tools-for-managing-design-tokens\" tabindex=\"-1\">Tools for Managing Design Tokens<\/h3>\n<p>Managing tokens manually across platforms isn&#8217;t practical, especially as your project grows. That&#8217;s where transformation tools come in. These tools take your centralized token definitions and generate platform-specific outputs automatically.<\/p>\n<p>One popular option is <strong>Style Dictionary<\/strong>, which converts tokens stored in JSON or YAML into formats like CSS, Sass, iOS, Android, or React. For React projects, Style Dictionary often outputs CSS custom properties applied at the <code>:root<\/code> level:<\/p>\n<pre><code class=\"language-css\">:root {   --color-primary: #3366FF;   --color-text: var(--color-primary);   --button-background: var(--color-primary);   --button-text: var(--color-text); } <\/code><\/pre>\n<p>Another tool, <strong><a href=\"https:\/\/www.knapsack.cloud\/feature-listing\/design-tokens-theming\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Knapsack<\/a><\/strong>, helps manage tokens and export them into usable formats while maintaining consistent naming conventions. These tools also handle the complexities of scaling your design system, offering configuration options to customize output without needing to write custom code.<\/p>\n<h2 id=\"using-design-tokens-with-react-and-css-variables\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Using Design Tokens with React and CSS Variables<\/h2>\n<p>Design tokens become incredibly powerful when paired with React and CSS variables. By linking tokens to your components via CSS variables, you gain flexibility and dynamic theming options that static values simply can&#8217;t offer.<\/p>\n<h3 id=\"converting-tokens-to-css-variables\" tabindex=\"-1\">Converting Tokens to CSS Variables<\/h3>\n<p>The transformation of design tokens into CSS variables happens during your build process. Tools like Style Dictionary can take your JSON token definitions and turn them into CSS custom properties, ready for use in your app.<\/p>\n<p>Start by creating a centralized stylesheet (e.g., <code>tokens.css<\/code> or <code>design-tokens.css<\/code>) where these variables are defined at the <code>:root<\/code> level. Here&#8217;s an example of what the output might look like:<\/p>\n<pre><code class=\"language-css\">:root {   --color-blue-500: #3366FF;   --color-primary: var(--color-blue-500);   --color-error: #dc3545;   --spacing-md: 16px;   --font-size-base: 16px;   --button-background-primary-hover: #0056b3; } <\/code><\/pre>\n<p>With this setup, updating a primitive value will automatically cascade changes to any tokens that reference it.<\/p>\n<p>When naming your tokens, use a clear and consistent system. A simple format like <code>--[category]-[concept]-[variant]<\/code> works well, yielding names such as <code>--color-primary-default<\/code> or <code>--spacing-md<\/code>. For more complex projects, you might adopt a detailed structure like <a href=\"https:\/\/www.patternfly.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">PatternFly<\/a>&#8216;s <code>--pf-t--[scope]--[component]--[property]--[concept]--[variant]--[state]<\/code>. Choose a naming convention that suits your team&#8217;s workflow and project scale.<\/p>\n<p>Once your token file is ready, import it into your main stylesheet &#8211; usually <code>index.css<\/code> or <code>App.css<\/code>.<\/p>\n<h3 id=\"using-css-variables-in-react-components\" tabindex=\"-1\">Using CSS Variables in React Components<\/h3>\n<p>With tokens defined as CSS variables, you can use them in React components through a few different approaches, depending on your styling strategy.<\/p>\n<p><strong>Inline styles<\/strong> are great for dynamic values that depend on props or state. Just reference your tokens directly in the <code>style<\/code> prop:<\/p>\n<pre><code class=\"language-jsx\">&lt;div style={{    background: 'var(--color-primary)',    padding: 'var(--spacing-md)'  }}&gt;   Primary content &lt;\/div&gt; <\/code><\/pre>\n<p><strong>CSS modules or external stylesheets<\/strong> are ideal for static styles. Define your styles in a separate CSS file and apply them to your components:<\/p>\n<pre><code class=\"language-css\">.button {   background: var(--color-primary);   padding: var(--spacing-md);   font-size: var(--font-size-base); }  .button:hover {   background: var(--button-background-primary-hover); } <\/code><\/pre>\n<pre><code class=\"language-jsx\">import styles from '.\/Button.module.css';  function Button({ children }) {   return &lt;button className={styles.button}&gt;{children}&lt;\/button&gt;; } <\/code><\/pre>\n<p><strong>CSS-in-JS libraries<\/strong> like styled-components or <a href=\"https:\/\/cssinjs.org\/react-jss\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">React-JSS<\/a> let you use CSS variables while keeping styles encapsulated within your components. Here&#8217;s an example with styled-components:<\/p>\n<pre><code class=\"language-jsx\">import styled from 'styled-components';  const Button = styled.button`   background: var(--color-primary);   padding: var(--spacing-md);   font-size: var(--font-size-base);    &amp;:hover {     background: var(--button-background-primary-hover);   } `; <\/code><\/pre>\n<p>For most projects, the best approach combines external CSS files for token definitions with CSS modules or styled-components for component-specific styling. This keeps your code organized and ensures consistency across your app.<\/p>\n<h3 id=\"setting-up-dynamic-theming-with-tokens\" tabindex=\"-1\">Setting Up Dynamic Theming with Tokens<\/h3>\n<p>To enable dynamic theming, define separate token sets for each theme and switch between them. This allows you to transform your app&#8217;s appearance without modifying individual components.<\/p>\n<p>Start by creating theme-specific token files. For example, a <code>light-theme.css<\/code> might look like this:<\/p>\n<pre><code class=\"language-css\">.light-theme {   --color-background: #ffffff;   --color-text: #000000;   --color-surface: #f5f5f5;   --color-border: #e0e0e0; } <\/code><\/pre>\n<p>And a <code>dark-theme.css<\/code> might look like this:<\/p>\n<pre><code class=\"language-css\">.dark-theme {   --color-background: #1a1a1a;   --color-text: #ffffff;   --color-surface: #2d2d2d;   --color-border: #404040; } <\/code><\/pre>\n<p>In your React app, use a state management solution or context provider to track the current theme. Then, apply the appropriate class to the <code>document.documentElement<\/code> or a top-level container:<\/p>\n<pre><code class=\"language-jsx\">function App() {   const [theme, setTheme] = useState('light');    useEffect(() =&gt; {     document.documentElement.className = `${theme}-theme`;   }, [theme]);    return (     &lt;div&gt;       &lt;button onClick={() =&gt; setTheme(theme === 'light' ? 'dark' : 'light')}&gt;         Toggle Theme       &lt;\/button&gt;       {\/* Your app content *\/}     &lt;\/div&gt;   ); } <\/code><\/pre>\n<p>When the theme class changes, all components referencing tokens like <code>var(--color-background)<\/code> will instantly reflect the new theme. This method leverages CSS&#8217;s cascade and specificity for efficient theme switching.<\/p>\n<p>To handle edge cases, use fallback values in your styles: <code>background: var(--color-background, #ffffff)<\/code>. This ensures your app remains functional even if a variable isn&#8217;t defined.<\/p>\n<p>Beyond light and dark modes, you can create themes for different brands, accessibility needs, or user preferences. The key is to keep token names consistent across themes while varying the values. This way, your components remain independent of any specific theme, and adding new themes is as simple as defining new token sets.<\/p>\n<h6 id=\"sbb-itb-f6354c6\" tabindex=\"-1\" style=\"display: none\">sbb-itb-f6354c6<\/h6>\n<h2 id=\"synchronizing-design-tokens-across-tools-and-teams\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Synchronizing Design Tokens Across Tools and Teams<\/h2>\n<p>Design tokens lose their effectiveness when they exist in isolation. If token values differ between <a href=\"https:\/\/www.uxpin.com\/studio\/blog\/design-thinking-tools-creative-vision-growth\/\" style=\"display: inline;\">design tools<\/a> and code, their potential is wasted. By building on the dynamic theming setup mentioned earlier, synchronizing design and development environments transforms design tokens from a theoretical concept into a practical, scalable system.<\/p>\n<h3 id=\"connecting-design-tokens-with-design-tools\" tabindex=\"-1\">Connecting Design Tokens with Design Tools<\/h3>\n<p>The divide between design and development has long been a source of frustration. Designers craft mockups with specific colors, spacing, and typography, only for developers to manually translate those decisions into code. This handoff process often leads to errors, inconsistencies, and wasted effort.<\/p>\n<p>Modern design tools have stepped in to close this gap by incorporating code-backed components. When your design tool uses the same React components as your developers, both teams operate from a shared foundation, ensuring design tokens stay synchronized. Platforms like <a href=\"https:\/\/www.dreamfactory.com\" target=\"_blank\" rel=\"noopener noreferrer\">DreamFactory<\/a> also support backend API integration, which can be essential when design tokens need to be dynamically retrieved or managed through data access layers.<\/p>\n<p>For instance, <a href=\"https:\/\/www.uxpin.com\/\" style=\"display: inline;\">UXPin<\/a> allows teams to integrate custom Git component repositories directly into the design workflow. Designers can prototype with actual coded components from the repository, meaning they&#8217;re working with the design tokens embedded in those components. Since the tokens are part of the codebase, updates sync automatically whenever developers push changes to Git.<\/p>\n<blockquote>\n<p>Brian Demchak, Sr. UX Designer at AAA Digital &amp; Creative Services, shared his team&#8217;s experience: &quot;As a full stack design team, <a href=\"https:\/\/www.uxpin.com\/docs\/merge\/what-is-uxpin-merge\/\" style=\"display: inline;\">UXPin Merge<\/a> is our primary tool when designing user experiences. We have fully integrated our custom-built React Design System and can design with our coded components. It has increased our productivity, quality, and consistency, streamlining our testing of layouts and the developer handoff process.&quot;<\/p>\n<\/blockquote>\n<p>For teams using traditional design tools that lack support for code-backed components, synchronization becomes more manual. Typically, this involves exporting tokens from the design tool (often as JSON), then transforming them using tools like Style Dictionary to create CSS variables for React applications. While effective, this approach requires strict processes to avoid drift between design and development.<\/p>\n<p>This type of integration lays the groundwork for a fully automated workflow, which we&#8217;ll explore in the next section.<\/p>\n<h3 id=\"automating-token-updates-across-environments\" tabindex=\"-1\">Automating Token Updates Across Environments<\/h3>\n<p>Once design-to-code integration is in place, automating token updates ensures consistency across all environments. As your design system grows and your team expands, manual updates simply can&#8217;t keep up.<\/p>\n<p>Start by centralizing your token definitions in a single JSON or YAML file stored in version control. This file acts as the single source of truth. Any token changes are made here first, and updates flow from this central definition to all other environments.<\/p>\n<p>Set up your build pipeline to handle transformations automatically. When someone commits a token change to the repository, your continuous integration (CI) system should generate platform-specific files, run tests to catch any breaking changes, and deploy updates to your staging environment. This eliminates human error and ensures consistency across the board.<\/p>\n<blockquote>\n<p>Larry Sawyer, Lead UX Designer, highlighted the benefits of automation: &quot;When I used UXPin Merge, our engineering time was reduced by around 50%. Imagine how much money that saves across an enterprise-level organization with dozens of designers and hundreds of engineers.&quot;<\/p>\n<\/blockquote>\n<p>Consistency in naming conventions is key. A token named <code>color.primary<\/code> in your JSON file should translate to <code>--color-primary<\/code> in CSS, <code>tokens.colors.primary<\/code> in JavaScript, and follow similar patterns across other platforms.<\/p>\n<h3 id=\"building-a-collaborative-workflow\" tabindex=\"-1\">Building a Collaborative Workflow<\/h3>\n<p>Technology alone can&#8217;t guarantee synchronization &#8211; you also need processes that keep teams aligned. Design token updates should follow the same review and approval workflows as code changes.<\/p>\n<p>Manage your token repository using standard version control practices. Use feature branches, peer reviews, and semantic versioning to maintain order. For example, apply major version updates for breaking changes (like removing a token), minor versions for introducing new tokens, and patch versions for small value adjustments. This allows teams to manage dependencies and coordinate updates effectively.<\/p>\n<p>Document tokens in a registry that includes names, values, and examples of how they&#8217;re used. Visual aids like color swatches, <a href=\"https:\/\/www.uxpin.com\/typography-management\" style=\"display: inline;\">typography samples<\/a>, and spacing scales can help team members quickly understand the purpose of each token. Whenever possible, automate the generation of this documentation directly from your token definitions.<\/p>\n<p>Establish clear governance for proposing and approving token changes. In smaller teams, this process may be informal. Larger organizations, however, might require a design systems committee to review changes and ensure they align with broader design goals.<\/p>\n<p>Regular audits are essential for maintaining consistency. Use <a href=\"https:\/\/www.uxpin.com\/third-party-tools\" style=\"display: inline;\">automated tools<\/a> to scan your codebase for hardcoded values that should be tokens, unused tokens that can be removed, or tokens that no longer match their definitions. These audits can run as part of your CI pipeline, catching issues before they make it into production.<\/p>\n<p>The ultimate goal is to create a workflow where token changes are intentional, reviewed, and automatically applied across all environments. By following these practices, you&#8217;ll ensure that dynamic theming and token updates work seamlessly across your entire application, supporting the scalable system discussed earlier.<\/p>\n<h2 id=\"best-practices-for-scaling-design-token-systems\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Best Practices for Scaling Design Token Systems<\/h2>\n<p>Scaling your design token system is essential as your React application grows from a handful of components to hundreds, and your team expands from a small group to multiple squads. What starts as a simple setup can quickly spiral into chaos without proper structure and guidelines.<\/p>\n<h3 id=\"organizing-tokens-for-large-applications\" tabindex=\"-1\">Organizing Tokens for Large Applications<\/h3>\n<p>A well-structured token system can save developers hours of frustration. The key is creating a clear hierarchy that mirrors natural design decisions.<\/p>\n<p>Start by categorizing tokens into <strong>functional groups<\/strong> like colors, typography, spacing, sizing, borders, shadows, and animations. Within each group, use a three-layer structure:<\/p>\n<ul>\n<li><strong>Primitive tokens<\/strong>: These are raw values, such as <code>--color-base-red: #dc2222<\/code>.<\/li>\n<li><strong>Semantic tokens<\/strong>: Context-aware values that reference primitives, like <code>--color-error: var(--color-base-red)<\/code>.<\/li>\n<li><strong>Component-specific tokens<\/strong>: Tokens tailored for specific elements, such as <code>--button-background-primary: var(--color-primary)<\/code>.<\/li>\n<\/ul>\n<p>This layered approach balances flexibility with order, ensuring your system can grow without becoming overwhelming.<\/p>\n<p>Consistency in naming is another cornerstone. Use a predictable pattern that includes a category prefix and describes the token&#8217;s purpose. For example:<\/p>\n<ul>\n<li><strong>Color tokens<\/strong>: <code>--color-[category]-[shade]<\/code> (e.g., <code>--color-neutral-300<\/code>, <code>--color-primary<\/code>).<\/li>\n<li><strong>Typography tokens<\/strong>: <code>--ff-[family]<\/code> for font families or <code>--fs-[size]<\/code> for font sizes.<\/li>\n<li><strong>Spacing tokens<\/strong>: Descriptive names like <code>--spacing-small<\/code>, <code>--spacing-medium<\/code>, and <code>--spacing-large<\/code>.<\/li>\n<\/ul>\n<p>Uniformity across platforms is non-negotiable. A token like <code>color.primary<\/code> in your JSON file should map directly to <code>--color-primary<\/code> in CSS and <code>tokens.colors.primary<\/code> in JavaScript. This consistency reduces confusion and supports automation.<\/p>\n<p>Tools like Style Dictionary can help by converting tokens into platform-specific formats while preserving your hierarchy. This ensures that your system remains organized, no matter where the tokens are applied.<\/p>\n<h3 id=\"avoiding-common-mistakes\" tabindex=\"-1\">Avoiding Common Mistakes<\/h3>\n<p>Scaling a design token system comes with its challenges. Here are some common pitfalls to watch for &#8211; and how to sidestep them:<\/p>\n<ul>\n<li><strong>Inconsistent naming<\/strong>: A lack of clear naming conventions can make your system impossible to navigate. Set rules upfront, document them thoroughly, and enforce them through code reviews and linting tools.<\/li>\n<li><strong>Hardcoding values<\/strong>: When developers bypass tokens and use raw values like <code>#dc2222<\/code> directly in CSS, it disconnects components from your token system. Regular audits can help catch and fix these issues.<\/li>\n<li><strong>Blurring the line between primitive and semantic tokens<\/strong>: Always use semantic tokens (e.g., <code>--color-error<\/code>) in components instead of raw values like <code>--color-base-red-500<\/code>. This keeps your system adaptable.<\/li>\n<li><strong>Poor documentation<\/strong>: Without clear guidance, team members may misuse or duplicate tokens. This can lead to unnecessary complexity during updates.<\/li>\n<li><strong>Lack of automation<\/strong>: Relying on manual processes like spreadsheets or file copying is a recipe for errors. Invest in tools that streamline token management.<\/li>\n<li><strong>No governance<\/strong>: Without a clear process for adding new tokens, your system can become bloated. Establish criteria for when to create new tokens and review additions regularly.<\/li>\n<\/ul>\n<blockquote>\n<p><a href=\"https:\/\/www.atlassian.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Atlassian<\/a> discovered that manual token management doesn&#8217;t scale, prompting them to develop automated tools to streamline adoption.<\/p>\n<\/blockquote>\n<p>Addressing these issues early ensures a smoother scaling process.<\/p>\n<h3 id=\"documenting-token-usage\" tabindex=\"-1\">Documenting Token Usage<\/h3>\n<p>Good documentation transforms tokens from obscure variables into a shared language for your team. Without it, even the best token system can fall apart.<\/p>\n<p>Start by creating a <strong>token inventory and catalog<\/strong>. Organize tokens by category and include details like names, values, and visual examples. For instance:<\/p>\n<ul>\n<li><strong>Color tokens<\/strong>: Show swatches.<\/li>\n<li><strong>Typography tokens<\/strong>: Include sample text.<\/li>\n<li><strong>Spacing tokens<\/strong>: Use diagrams to illustrate distances.<\/li>\n<\/ul>\n<p>Develop a <strong>naming convention guide<\/strong> that explains your prefix system and hierarchy, with examples of correct and incorrect usage. This guide should clarify questions like when to create new tokens versus reusing existing ones or how to override tokens for specific components.<\/p>\n<p>Provide <strong>implementation guidelines<\/strong> tailored to different contexts, such as CSS, JavaScript\/TypeScript, and design tools. Include concrete examples to help developers integrate tokens seamlessly.<\/p>\n<p>Explain the <strong>token hierarchy<\/strong> &#8211; how primitive, semantic, and component-specific tokens relate to each other. Visual diagrams can make these relationships easier to understand.<\/p>\n<p>For features like <a href=\"https:\/\/www.uxpin.com\/studio\/blog\/dark-mode-benefits\/\" style=\"display: inline;\">dark mode<\/a>, include <strong>theming documentation<\/strong>. Detail how tokens enable theme switching, how to create overrides, and what happens during theme changes.<\/p>\n<p>In TypeScript projects, helper functions can offer type safety and IntelliSense support, making it easier for developers to find and use tokens without memorizing names.<\/p>\n<p>Finally, ensure your documentation stays up-to-date and searchable. Tools like <a href=\"https:\/\/storybook.js.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Storybook<\/a> or dedicated design system sites can host this information and sync automatically with token changes. The goal is not just to list tokens but to educate your team on how to use them effectively. With strong documentation, your token system becomes a tool for collaboration, not just a technical detail.<\/p>\n<h2 id=\"conclusion\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Conclusion<\/h2>\n<p>Design tokens bring all design choices into one unified system, replacing scattered, hard-coded styles with a consistent, scalable approach.<\/p>\n<h3 id=\"the-benefits-of-design-tokens-in-react\" tabindex=\"-1\">The Benefits of Design Tokens in React<\/h3>\n<p>Design tokens do more than just manage styles &#8211; they make teamwork smoother and improve efficiency by cutting down on repetitive code and manual updates. A single update to a token ensures that styling stays consistent across the entire system.<\/p>\n<p>Tokens also simplify the handoff between designers and developers. They act as a shared language, reducing miscommunication and speeding up workflows. As Mark Figueiredo, Sr. UX Team Lead at <a href=\"https:\/\/www.troweprice.com\/en\/us\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">T. Rowe Price<\/a>, explained:<\/p>\n<blockquote>\n<p>&quot;What used to take days to gather feedback now takes hours. Add in the time we&#8217;ve saved from not emailing back-and-forth and manually redlining, and we&#8217;ve probably shaved months off timelines.&quot; <\/p>\n<\/blockquote>\n<p>When paired with CSS custom properties, design tokens unlock runtime theming without needing code recompilation. This flexibility supports features like dark mode, <a href=\"https:\/\/www.uxpin.com\/studio\/ebooks\/ux-design-trends-responsive-adaptive-web-design\/\" style=\"display: inline;\">responsive design<\/a>, and user personalization.<\/p>\n<p>Larry Sawyer, Lead UX Designer, shared his experience:<\/p>\n<blockquote>\n<p>&quot;When I used UXPin Merge, our engineering time was reduced by around 50%. Imagine how much money that saves across an enterprise-level organization with dozens of designers and hundreds of engineers.&quot; <\/p>\n<\/blockquote>\n<p>These advantages set the stage for practical adoption.<\/p>\n<h3 id=\"next-steps\" tabindex=\"-1\">Next Steps<\/h3>\n<p>You don&#8217;t need to overhaul everything at once to start using design tokens. Begin small by defining primitive tokens for frequently used values like colors, spacing, and typography. Convert these into CSS variables to gradually integrate them into your components.<\/p>\n<p>As your system grows, explore tools that connect design and development more seamlessly. For example, UXPin allows teams to work with code-backed components, enabling real-time <a href=\"https:\/\/www.uxpin.com\/studio\/blog\/product-development-and-design\/\" style=\"display: inline;\">collaboration between designers and developers<\/a> while keeping design and production code aligned.<\/p>\n<p>To ensure long-term success, put clear governance and documentation in place. Define when to create new tokens versus reusing existing ones, use version control to track updates, and maintain detailed usage guidelines. These steps will keep your token system organized and scalable.<\/p>\n<h2 id=\"faqs\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">FAQs<\/h2>\n<h3 id=\"how-do-design-tokens-enhance-collaboration-between-designers-and-developers-in-react-projects\" tabindex=\"-1\" data-faq-q>How do design tokens enhance collaboration between designers and developers in React projects?<\/h3>\n<p>Design tokens serve as a bridge between designers and developers, creating a unified system for managing a product&#8217;s styles and components. By consolidating design elements like colors, fonts, and spacing into reusable tokens, teams can minimize confusion and make collaboration smoother.<\/p>\n<p>This method not only makes updates easier but also cuts down on mistakes, helping teams work more quickly while ensuring a consistent and polished <a href=\"https:\/\/www.uxpin.com\/studioblog\/demonstrate-your-process-and-design-epic-user-experience\/\" style=\"display: inline;\">user experience<\/a>.<\/p>\n<h3 id=\"whats-the-difference-between-primitive-and-semantic-design-tokens-and-why-does-it-matter\" tabindex=\"-1\" data-faq-q>What&#8217;s the difference between primitive and semantic design tokens, and why does it matter?<\/h3>\n<p>Primitive tokens are the foundation of any design system. These are the raw, reusable values like colors, font sizes, or spacing units. They don&#8217;t hint at any specific use; for example, a color token could be named something like <code>primary-100<\/code> or <code>neutral-200<\/code>, with no indication of where or how it should appear in the design.<\/p>\n<p>Semantic tokens take things a step further by assigning these basic values to specific roles or contexts in your design. For instance, you might have tokens like <code>button-background<\/code> or <code>header-text-color<\/code> that clearly define their purpose within the user interface.<\/p>\n<p>Understanding the difference between primitive and semantic tokens is crucial for keeping your design system organized. Primitive tokens act as the essential building blocks, while semantic tokens bring clarity and consistency by mapping those building blocks to their intended functions in your application.<\/p>\n<h3 id=\"how-do-i-use-design-tokens-and-css-variables-to-enable-dynamic-theming-in-a-react-app\" tabindex=\"-1\" data-faq-q>How do I use design tokens and CSS variables to enable dynamic theming in a React app?<\/h3>\n<p>To bring dynamic theming to life in a React application, you can combine <strong>design tokens<\/strong> and <strong>CSS variables<\/strong> for a smooth and efficient solution. Design tokens serve as the central repository for your app&#8217;s style properties &#8211; like colors, fonts, and spacing &#8211; while CSS variables make it easy to apply and manipulate these styles directly in the browser.<\/p>\n<p>Here&#8217;s how it works:<\/p>\n<ol>\n<li>Start by defining your design tokens in a JSON or JavaScript file. These tokens will act as the single source of truth for your app&#8217;s visual elements.<\/li>\n<li>Next, map these tokens to CSS variables. You can do this using a global stylesheet or a CSS-in-JS library, depending on your project setup.<\/li>\n<li>To enable dynamic theming, update the CSS variables at runtime. This is typically done by toggling a theme class (e.g., <code>dark-theme<\/code> or <code>light-theme<\/code>) on the root element, such as <code>&lt;html&gt;<\/code> or <code>&lt;body&gt;<\/code>.<\/li>\n<\/ol>\n<p>This method ensures that your app&#8217;s styles update instantly when switching themes, without triggering a full re-render. The result? A faster, smoother user experience that feels modern and responsive.<\/p>\n<h2>Related Blog Posts<\/h2>\n<ul>\n<li><a href=\"\/studio\/blog\/what-are-design-tokens-in-react\/\" style=\"display: inline;\">What Are Design Tokens in React?<\/a><\/li>\n<li><a href=\"\/studio\/blog\/integrating-react-components-with-design-patterns\/\" style=\"display: inline;\">Integrating React Components with Design Patterns<\/a><\/li>\n<li><a href=\"\/studio\/blog\/react-component-libraries-for-cross-platform-design\/\" style=\"display: inline;\">React Component Libraries for Cross-Platform Design<\/a><\/li>\n<li><a href=\"\/studio\/blog\/reusable-components-in-prototyping\/\" style=\"display: inline;\">Reusable Components in Prototyping<\/a><\/li>\n<\/ul>\n<p><script async type=\"text\/javascript\" src=\"https:\/\/app.seobotai.com\/banner\/banner.js?id=692cdeb2df12e5e3fe87f5a3\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Centralize colors, spacing, and typography into reusable tokens for consistent styling, instant runtime theming, and scalable React apps.<\/p>\n","protected":false},"author":231,"featured_media":57655,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-57658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_title":"","yoast_metadesc":"","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Managing Global Styles in React with Design Tokens | UXPin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Managing Global Styles in React with Design Tokens\" \/>\n<meta property=\"og:description\" content=\"Centralize colors, spacing, and typography into reusable tokens for consistent styling, instant runtime theming, and scalable React apps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/\" \/>\n<meta property=\"og:site_name\" content=\"Studio by UXPin\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-01T11:58:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-09T09:25:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2025\/11\/image_036c3177d84830c7277dff7e26bc87e3.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Andrew Martin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@andrewSaaS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrew Martin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/\"},\"author\":{\"name\":\"Andrew Martin\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/ac635ff03bf09bee5701f6f38ce9b16b\"},\"headline\":\"Managing Global Styles in React with Design Tokens\",\"datePublished\":\"2025-12-01T11:58:28+00:00\",\"dateModified\":\"2026-05-09T09:25:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/\"},\"wordCount\":3531,\"image\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/image_036c3177d84830c7277dff7e26bc87e3.jpeg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/\",\"name\":\"Managing Global Styles in React with Design Tokens | UXPin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/image_036c3177d84830c7277dff7e26bc87e3.jpeg\",\"datePublished\":\"2025-12-01T11:58:28+00:00\",\"dateModified\":\"2026-05-09T09:25:23+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/ac635ff03bf09bee5701f6f38ce9b16b\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/image_036c3177d84830c7277dff7e26bc87e3.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/image_036c3177d84830c7277dff7e26bc87e3.jpeg\",\"width\":1536,\"height\":1024,\"caption\":\"Managing Global Styles in React with Design Tokens\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/managing-global-styles-in-react-with-design-tokens\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing Global Styles in React with Design Tokens\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#website\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/\",\"name\":\"Studio by UXPin\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/ac635ff03bf09bee5701f6f38ce9b16b\",\"name\":\"Andrew Martin\",\"description\":\"Andrew is the CEO of UXPin, leading its product vision for design-to-code workflows used by product and engineering teams worldwide. He writes about responsive design, design systems, and prototyping with real components to help teams ship consistent, performant interfaces faster.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/andrewSaaS\"],\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/author\\\/andrewuxpin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Managing Global Styles in React with Design Tokens | UXPin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/","og_locale":"en_US","og_type":"article","og_title":"Managing Global Styles in React with Design Tokens","og_description":"Centralize colors, spacing, and typography into reusable tokens for consistent styling, instant runtime theming, and scalable React apps.","og_url":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/","og_site_name":"Studio by UXPin","article_published_time":"2025-12-01T11:58:28+00:00","article_modified_time":"2026-05-09T09:25:23+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2025\/11\/image_036c3177d84830c7277dff7e26bc87e3.jpeg","type":"image\/jpeg"}],"author":"Andrew Martin","twitter_card":"summary_large_image","twitter_creator":"@andrewSaaS","twitter_misc":{"Written by":"Andrew Martin","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#article","isPartOf":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/"},"author":{"name":"Andrew Martin","@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/ac635ff03bf09bee5701f6f38ce9b16b"},"headline":"Managing Global Styles in React with Design Tokens","datePublished":"2025-12-01T11:58:28+00:00","dateModified":"2026-05-09T09:25:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/"},"wordCount":3531,"image":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#primaryimage"},"thumbnailUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2025\/11\/image_036c3177d84830c7277dff7e26bc87e3.jpeg","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/","url":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/","name":"Managing Global Styles in React with Design Tokens | UXPin","isPartOf":{"@id":"https:\/\/www.uxpin.com\/studio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#primaryimage"},"image":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#primaryimage"},"thumbnailUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2025\/11\/image_036c3177d84830c7277dff7e26bc87e3.jpeg","datePublished":"2025-12-01T11:58:28+00:00","dateModified":"2026-05-09T09:25:23+00:00","author":{"@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/ac635ff03bf09bee5701f6f38ce9b16b"},"breadcrumb":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#primaryimage","url":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2025\/11\/image_036c3177d84830c7277dff7e26bc87e3.jpeg","contentUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2025\/11\/image_036c3177d84830c7277dff7e26bc87e3.jpeg","width":1536,"height":1024,"caption":"Managing Global Styles in React with Design Tokens"},{"@type":"BreadcrumbList","@id":"https:\/\/www.uxpin.com\/studio\/blog\/managing-global-styles-in-react-with-design-tokens\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.uxpin.com\/studio\/"},{"@type":"ListItem","position":2,"name":"Managing Global Styles in React with Design Tokens"}]},{"@type":"WebSite","@id":"https:\/\/www.uxpin.com\/studio\/#website","url":"https:\/\/www.uxpin.com\/studio\/","name":"Studio by UXPin","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.uxpin.com\/studio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/ac635ff03bf09bee5701f6f38ce9b16b","name":"Andrew Martin","description":"Andrew is the CEO of UXPin, leading its product vision for design-to-code workflows used by product and engineering teams worldwide. He writes about responsive design, design systems, and prototyping with real components to help teams ship consistent, performant interfaces faster.","sameAs":["https:\/\/x.com\/andrewSaaS"],"url":"https:\/\/www.uxpin.com\/studio\/author\/andrewuxpin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/57658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/users\/231"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/comments?post=57658"}],"version-history":[{"count":2,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/57658\/revisions"}],"predecessor-version":[{"id":59754,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/57658\/revisions\/59754"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/media\/57655"}],"wp:attachment":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/media?parent=57658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/categories?post=57658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/tags?post=57658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}