{"id":58049,"date":"2026-01-27T08:24:23","date_gmt":"2026-01-27T16:24:23","guid":{"rendered":"https:\/\/www.uxpin.com\/studio\/?p=58049"},"modified":"2026-05-09T03:28:04","modified_gmt":"2026-05-09T10:28:04","slug":"design-custom-design-components-uxpin-merge","status":"publish","type":"post","link":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/","title":{"rendered":"How to Design with Custom Design Components in UXPin Merge"},"content":{"rendered":"<p><strong>Designing with code-backed components in <a href=\"https:\/\/www.uxpin.com\/merge\" style=\"display: inline;\">UXPin Merge<\/a> simplifies the workflow for product teams, ensuring designs match the final product.<\/strong> Instead of static mockups, you work directly with <a href=\"https:\/\/react.dev\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">React<\/a> components, <a href=\"https:\/\/mui.com\/material-ui\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">MUI<\/a>, <a href=\"https:\/\/ant.design\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Ant Design<\/a>, or custom libraries used in production. This eliminates the need for developers to translate designs into code, saving time and reducing inconsistencies.<\/p>\n<p>Key takeaways:<\/p>\n<ul>\n<li><strong>Custom Components:<\/strong> Use production-ready React components with real behavior and functionality.<\/li>\n<li><strong>Streamlined Workflow:<\/strong> Align design and development by tweaking props directly in <a href=\"https:\/\/www.uxpin.com\/\" style=\"display: inline;\">UXPin<\/a>&#8216;s interface.<\/li>\n<li><strong>Advanced Prototyping:<\/strong> Test interactions like sortable tables or form validations with real-world logic.<\/li>\n<li><strong>Team Collaboration:<\/strong> Share component libraries, manage versions, and maintain consistency across projects.<\/li>\n<li><strong>Code Handoff:<\/strong> Export production-ready JSX code, ensuring a smooth transition from design to development.<\/li>\n<\/ul>\n<p>This process has helped companies like <a href=\"https:\/\/www.paypal.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">PayPal<\/a> and others reduce engineering time by up to 50%, proving its efficiency for enterprise teams. Read on to learn how to set up your library, customize components, and optimize collaboration.<\/p>\n<h2 id=\"what-are-custom-design-components-in-uxpin-merge\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">What Are Custom Design Components in <a href=\"https:\/\/www.uxpin.com\/merge\" style=\"display: inline;\">UXPin Merge<\/a>?<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/assets.seobotai.com\/uxpin.com\/697804a712006df3518d9dcb\/166107ad15f90b83d2ed56e078d5c196.jpg\" alt=\"UXPin Merge\" style=\"width:100%;\"><\/p>\n<h3 id=\"custom-components-defined\" tabindex=\"-1\">Custom Components Defined<\/h3>\n<p>Custom design components in UXPin Merge are React.js UI elements directly imported from your production repository &#8211; whether that&#8217;s <a href=\"https:\/\/git-scm.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Git<\/a>, <a href=\"https:\/\/storybook.js.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Storybook<\/a>, or <a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">npm<\/a>. These components aren&#8217;t just placeholders; they&#8217;re the exact elements your developers use to build the product. That means they match the final product in appearance, behavior, and functionality.<\/p>\n<p>You can tweak these components using props &#8211; the same parameters developers rely on. UXPin conveniently displays these props in the Properties Panel, allowing you to adjust text, switch variants, or apply colors aligned with your design system.<\/p>\n<p>Let&#8217;s dive into how these features can enhance your design-to-development workflow.<\/p>\n<h3 id=\"why-use-custom-components\" tabindex=\"-1\">Why Use Custom Components<\/h3>\n<p>Custom components bridge the gap between design and development. Designers don&#8217;t have to recreate elements that already exist in code, and developers get access to JSX specs that perfectly align with the production environment. Built-in constraints ensure that only predefined props can be modified, reducing the risk of applying unsupported styles or creating designs that can&#8217;t be implemented.<\/p>\n<p>These components also enable advanced prototyping with real-world interactions and data. For example, you can test sortable tables, video players, or complex form validations using the same logic as your production code. This approach minimizes unexpected issues when it&#8217;s time to launch.<\/p>\n<h3 id=\"custom-components-vs-pre-built-libraries\" tabindex=\"-1\">Custom Components vs Pre-Built Libraries<\/h3>\n<p>In UXPin Merge, you can work with both custom components and pre-built libraries like MUI, Ant Design, <a href=\"https:\/\/getbootstrap.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Bootstrap<\/a>, and <a href=\"https:\/\/ui.shadcn.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">ShadCN<\/a> &#8211; right on the canvas. Custom components from your proprietary library are a perfect match for your production environment. They reflect your brand identity, integrate your specific business logic, and include any unique functionality you&#8217;ve developed. This makes them particularly valuable for enterprise teams with well-established design systems and proprietary products.<\/p>\n<p>On the other hand, pre-built libraries are ideal for quick prototyping, MVPs, or teams just starting to develop a design system. With seamless npm integration, you can start designing immediately using reliable components from popular frameworks &#8211; no developer assistance required. Many teams begin with pre-built libraries to save time and later replace them with custom components as their design system evolves.<\/p>\n<p>Now that you understand custom components, it&#8217;s time to prepare your custom component library.<\/p>\n<h2 id=\"design-to-react-code-components\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Design To <a href=\"https:\/\/react.dev\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">React<\/a> Code Components<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/assets.seobotai.com\/uxpin.com\/697804a712006df3518d9dcb\/2e4e16a9d321c762f569ac1854dc7375.jpg\" alt=\"React\" style=\"width:100%;\"><\/p>\n<p> <iframe class=\"sb-iframe\" src=\"https:\/\/www.youtube.com\/embed\/PsxwVAjMtqI\" frameborder=\"0\" loading=\"lazy\" allowfullscreen style=\"width: 100%; height: auto; aspect-ratio: 16\/9;\"><\/iframe><\/p>\n<h2 id=\"preparing-your-custom-component-library\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Preparing Your Custom Component Library<\/h2>\n<figure>         <img decoding=\"async\" src=\"https:\/\/assets.seobotai.com\/undefined\/697804a712006df3518d9dcb-1769501703486.jpg\" alt=\"UXPin Merge Custom Component Integration Workflow\" style=\"width:100%;\"><figcaption style=\"font-size: 0.85em; text-align: center; margin: 8px; padding: 0;\">\n<p style=\"margin: 0; padding: 4px;\">UXPin Merge Custom Component Integration Workflow<\/p>\n<\/figcaption><\/figure>\n<p>Setting up a well-structured component library is key to ensuring smooth integration with UXPin Merge and enabling effective prototyping. By aligning your library with UXPin Merge, your React components will operate seamlessly with the same props developers use. According to UXPin&#8217;s documentation, integrating a complete design system typically takes <strong>between 2 hours and 4 days<\/strong>, making the initial setup a worthwhile investment.<\/p>\n<h3 id=\"configure-your-setup-files\" tabindex=\"-1\">Configure Your Setup Files<\/h3>\n<p>Begin by adding the UXPin Merge CLI as a development dependency using the following command:<br \/> <code>npm install @uxpin\/merge-cli --save-dev<\/code>.<br \/> This tool is essential for connecting your component library to UXPin Merge.<\/p>\n<p>Then, create a <strong><code>uxpin.config.js<\/code><\/strong> file in your project&#8217;s root directory. This file is required to define your library&#8217;s name, component categories, and <a href=\"https:\/\/webpack.js.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Webpack<\/a> configuration paths. To simplify the initial setup and debugging process, include just one component at first.<\/p>\n<p>Your Webpack configuration must ensure that all assets &#8211; like CSS, fonts, and images &#8211; are bundled into JavaScript. <strong>Merge requires that no external files are exported.<\/strong> For example, avoid using <code>mini-css-extract-plugin<\/code>; instead, rely on <code>style-loader<\/code> and <code>css-loader<\/code> to load CSS directly into the JavaScript bundle. As UXPin notes:<br \/> <em>&quot;Your Webpack config has to be built in a way that does not export any external files.&quot;<\/em>.<br \/> If your production Webpack setup is complex, consider creating a separate configuration file, such as <code>uxpin.webpack.config.js<\/code>, specifically for Merge.<\/p>\n<p>To let designers apply custom CSS directly in the editor, include the following setting in your <code>uxpin.config.js<\/code> file:<br \/> <code>settings: { useUXPinProps: true }<\/code>.<\/p>\n<h3 id=\"organize-component-directories\" tabindex=\"-1\">Organize Component Directories<\/h3>\n<p>Merge enforces a specific naming convention: <strong>each component must reside in its own directory, and the filename must match the component name<\/strong>. For instance, a Button component should follow this structure:<br \/> <code>src\/components\/Button\/Button.js<\/code>, and the component must use <code>export default<\/code>.<\/p>\n<p>To streamline managing multiple components, use glob patterns in your configuration file. For example:<br \/> <code>src\/components\/*\/*.{js,jsx,ts,tsx}<\/code>. This approach makes scaling your library easier over time.<\/p>\n<p>The <strong><a href=\"https:\/\/carbondesignsystem.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">IBM Carbon<\/a> integration<\/strong> offers a great example of how to structure your <code>uxpin.config.js<\/code> file. They grouped components into functional categories such as &quot;Navigation&quot; (e.g., <code>src\/Breadcrumb\/Breadcrumb.js<\/code>), &quot;Form&quot; (e.g., <code>src\/TextInput\/TextInput.js<\/code>), and &quot;Table&quot; (e.g., <code>src\/Table\/Table.js<\/code>). This logical organization helps designers quickly locate components in the UXPin Editor.<\/p>\n<p>If your production code doesn&#8217;t fully meet Merge&#8217;s requirements, you can create a &quot;Wrapped Integration.&quot; Store these wrappers in a subdirectory, such as <code>.\/src\/components\/Button\/Merge\/Button\/Button.js<\/code>, to keep them isolated from your production logic.<\/p>\n<p>With these file structures and naming conventions in place, you can move on to defining clear component behaviors through Prop Types.<\/p>\n<h3 id=\"define-prop-types\" tabindex=\"-1\">Define Prop Types<\/h3>\n<p>Well-defined props are essential for providing designers with in-editor documentation. UXPin automatically generates a Properties Panel from your React PropTypes, <a href=\"https:\/\/www.typescriptlang.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">TypeScript<\/a> interfaces, or <a href=\"https:\/\/flow.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Flow<\/a> types. <strong>When prop types are properly defined, designers can see descriptions directly in the editor<\/strong>, reducing the need to refer to external documentation.<\/p>\n<p>You can enhance the Properties Panel with JSDoc annotations. For example:<\/p>\n<ul>\n<li>Use <code>@uxpinignoreprop<\/code> to hide technical props.<\/li>\n<li>Use <code>@uxpincontroltype<\/code> to define specific UI controls.<\/li>\n<li>Use <code>@uxpinpropname<\/code> to rename technical prop names to more user-friendly ones. For instance, changing <code>iconEnd<\/code> to &quot;Right Icon&quot; makes the interface easier for non-developers to understand.<\/li>\n<\/ul>\n<table style=\"width:100%;\">\n<thead>\n<tr>\n<th>Control Type<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>switcher<\/code><\/td>\n<td>Displays a checkbox<\/td>\n<\/tr>\n<tr>\n<td><code>color<\/code><\/td>\n<td>Displays a color picker<\/td>\n<\/tr>\n<tr>\n<td><code>select<\/code><\/td>\n<td>Displays a dropdown list<\/td>\n<\/tr>\n<tr>\n<td><code>number<\/code><\/td>\n<td>Input that accepts numbers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As one UXPin Merge user explains:<\/p>\n<blockquote>\n<p>&quot;These props are what changes the look and feel of this particular card component&#8230; UXPin Merge, when you hover over the prop, it will actually give you the short description&quot;.<\/p>\n<\/blockquote>\n<p>These small but impactful details significantly improve the designer experience, cutting down on unnecessary back-and-forth communication.<\/p>\n<h2 id=\"adding-custom-components-to-the-uxpin-merge-canvas\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Adding Custom Components to the <a href=\"https:\/\/www.uxpin.com\/\" style=\"display: inline;\">UXPin<\/a> Merge Canvas<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/assets.seobotai.com\/uxpin.com\/697804a712006df3518d9dcb\/5f134735677c7f7ca97a400968c164a1.jpg\" alt=\"UXPin\" style=\"width:100%;\"><\/p>\n<p>Once you&#8217;ve configured your library, the next steps are to register your components, test them, and ensure they render properly on the UXPin canvas.<\/p>\n<h3 id=\"register-components-in-uxpin-merge\" tabindex=\"-1\">Register Components in UXPin Merge<\/h3>\n<p>The <code>uxpin.config.js<\/code> file is the bridge between your component library and UXPin Merge. It specifies where your components are located and organizes them within the editor. This file must export a JavaScript object containing a <code>components<\/code> object with a <code>categories<\/code> array.<\/p>\n<p>Here&#8217;s an example of how it might look:<\/p>\n<pre><code class=\"language-javascript\">module.exports = {   components: {     categories: [{       name: 'General',       include: ['src\/Button\/Merge\/Button\/Button.js'],       wrapper: 'src\/Wrapper\/UXPinWrapper.js'     }]   } }; <\/code><\/pre>\n<p>The <code>wrapper<\/code> property is optional but can be incredibly helpful. It lets you load global styles or context before rendering components. For instance, your <code>UXPinWrapper.js<\/code> file might include:<\/p>\n<pre><code class=\"language-javascript\">import React from &quot;react&quot;; import '..\/index.css';  export default function UXPinWrapper({ children }) {    return children;  } <\/code><\/pre>\n<p>To test your components locally, use the command <strong><code>uxpin-merge --disable-tunneling<\/code><\/strong>. This launches an experimental mode where you can confirm that components render as expected and respond correctly to prop changes.<\/p>\n<h3 id=\"place-components-on-the-canvas\" tabindex=\"-1\">Place Components on the Canvas<\/h3>\n<p>Once registered, your components will show up in the UXPin library panel. Designers can <strong>drag and drop components directly onto the canvas<\/strong>, where they will function with production-level behavior.<\/p>\n<p>For components that support children, nesting is straightforward. Designers can drag child components into parent containers on the canvas or use the Layers Panel to adjust the hierarchy. If your parent container uses Flexbox, child components will automatically follow the Flexbox rules on the canvas.<\/p>\n<p>To give designers even more control, you can enhance your configuration file by adding the following:<\/p>\n<pre><code class=\"language-javascript\">settings: { useUXPinProps: true } <\/code><\/pre>\n<p>This enables custom CSS controls, allowing designers to adjust properties like colors and margins directly in the editor &#8211; no need to dive into the source code.<\/p>\n<h3 id=\"fix-common-integration-problems\" tabindex=\"-1\">Fix Common Integration Problems<\/h3>\n<p>Sometimes, integration issues can crop up. Common problems include styling conflicts, rendering failures, and cluttered Properties Panels.<\/p>\n<ul>\n<li> <strong>Style conflicts<\/strong>: These occur when your component&#8217;s CSS interferes with UXPin&#8217;s interface. To avoid this, ensure your styles are scoped locally. If resizing issues arise, check whether width or height values are hardcoded in the CSS &#8211; use React props for dimensions instead. <\/li>\n<li> <strong>Rendering failures<\/strong>: These are often linked to webpack configuration issues. If your production webpack setup is complex, consider creating a simpler, dedicated configuration specifically for Merge. <\/li>\n<li> <strong>Overloaded Properties Panels<\/strong>: If the Properties Panel displays too many technical details, you can clean it up using JSDoc annotations. Use <code>@uxpinignoreprop<\/code> to hide developer-only props or <code>@uxpinpropname<\/code> to rename props for better clarity. For npm integration, ensure the status reaches 100% and displays &quot;Update Success&quot; before refreshing your browser to see changes. <\/li>\n<\/ul>\n<p><strong>Start small<\/strong> &#8211; add one component to your <code>uxpin.config.js<\/code> file and test it thoroughly before moving on to others. This step-by-step approach makes debugging easier and lets you address issues before they spread across your library. It also lays the groundwork for more advanced customizations later on.<\/p>\n<h6 id=\"sbb-itb-f6354c6\" class=\"sb-banner\" style=\"display: none;color:transparent;\">sbb-itb-f6354c6<\/h6>\n<h2 id=\"customizing-components-while-designing\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Customizing Components While Designing<\/h2>\n<p>Once you&#8217;ve successfully integrated components, the next step is tailoring them to fit your design needs. With your custom components on the canvas, designers can make adjustments through the <strong>Properties Panel<\/strong>, which showcases all the props from your React code. This is where UXPin Merge stands out &#8211; designers interact with the same properties developers use, ensuring a seamless handoff from design to development.<\/p>\n<h3 id=\"change-variants-and-states\" tabindex=\"-1\">Change Variants and States<\/h3>\n<p>Component variants like size, color, or type are mapped to <strong>dropdown menus<\/strong> in the Properties Panel when developers define them using <code>oneOf<\/code> prop types. For instance, a Button component offering size options (small, medium, large) will display these choices in a select list. Designers can simply pick the desired variant from the dropdown.<\/p>\n<p>Designers also have the flexibility to use either visual controls or edit JSX directly. To make the process even more designer-friendly, developers can leverage JSDoc annotations such as <code>@uxpinpropname<\/code> to rename technical props into clearer, more intuitive labels. For components without predefined styling props, the CSS control offers an easy-to-use interface for adjusting colors, padding, margins, and borders visually.<\/p>\n<h3 id=\"bind-data-and-variables\" tabindex=\"-1\">Bind Data and Variables<\/h3>\n<p>Props are the gateway for data to flow into components, and UXPin Merge recognizes these props through PropTypes, TypeScript, or Flow. For simple text or numeric inputs, designers can directly enter values into input fields. When dealing with more complex data types like arrays or objects &#8211; think tables, charts, or lists &#8211; the <code>@uxpincontroltype codeeditor<\/code> annotation opens up a JSON editor. This allows designers to paste real data into components without causing any disruptions.<\/p>\n<p>This approach ensures functional fidelity, meaning components behave as they would with real-world data. For example, designers can test scenarios like sortable tables that dynamically re-render when the data changes. As UX Architect and Design Leader Erica Rider explained:<\/p>\n<blockquote>\n<p>&quot;We synced our Microsoft Fluent design system with UXPin&#8217;s design editor via Merge technology. It was so efficient that our 3 designers were able to support 60 internal products and over 1,000 developers.&quot; <\/p>\n<\/blockquote>\n<h3 id=\"apply-themes-and-styles\" tabindex=\"-1\">Apply Themes and Styles<\/h3>\n<p>Themes can be switched effortlessly using wrapper components. By including a theme provider in <code>UXPinWrapper.js<\/code>, you can load global styles or context. For more granular, component-level styling, the Custom CSS control &#8211; enabled via the <code>useUXPinProps<\/code> setting &#8211; gives designers a visual interface to tweak properties like colors, spacing, and borders without needing to write code.<\/p>\n<p>To maintain a clean and focused Properties Panel, developers can use <code>@uxpinignoreprop<\/code> to hide technical properties that designers don&#8217;t need to see. These techniques ensure designs remain polished and ready for collaboration as the project progresses.<\/p>\n<table style=\"width:100%;\">\n<thead>\n<tr>\n<th>Control Type<\/th>\n<th>Best For<\/th>\n<th>Enables<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Select<\/strong><\/td>\n<td>Variants (size, color)<\/td>\n<td>Dropdown menus for predefined options<\/td>\n<\/tr>\n<tr>\n<td><strong>Code Editor<\/strong><\/td>\n<td>Complex data (arrays)<\/td>\n<td>JSON input for tables, charts, and lists<\/td>\n<\/tr>\n<tr>\n<td><strong>CSS Control<\/strong><\/td>\n<td>Visual styling<\/td>\n<td>Adjustments for colors, spacing, and borders<\/td>\n<\/tr>\n<tr>\n<td><strong>Custom Props<\/strong><\/td>\n<td>Root element attributes<\/td>\n<td>IDs, slots, and additional custom attributes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"sharing-custom-component-libraries-with-your-team\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Sharing Custom Component Libraries with Your Team<\/h2>\n<p>Once you&#8217;ve tested your custom components, the next step is sharing them with your team. This ensures everyone stays on the same page, speeds up collaboration, and keeps your design and production code aligned.<\/p>\n<h3 id=\"set-up-a-shared-merge-library\" tabindex=\"-1\">Set Up a Shared Merge Library<\/h3>\n<p>In the UXPin Editor or Dashboard, you can create a new library by choosing either <strong>&quot;Import react.js components&quot;<\/strong> or <strong>&quot;npm integration,&quot;<\/strong> depending on your setup. Make sure to define permissions in the UXPin Editor to control who has access. For security, use an authentication token stored safely in your CI\/CD pipeline to handle code updates &#8211; never include this token in public Git repositories.<\/p>\n<p>For production environments, automate updates with Continuous Integration tools like <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">CircleCI<\/a> or <a href=\"https:\/\/www.travis-ci.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Travis<\/a>. Use the <code>uxpin-merge push<\/code> command to streamline this process and keep everything up to date.<\/p>\n<h3 id=\"manage-component-versions\" tabindex=\"-1\">Manage Component Versions<\/h3>\n<p>Once your shared library is in place, managing versions is critical. Version control helps avoid disruptions in ongoing projects while allowing teams to experiment with new features. UXPin Merge makes this easy with Tags and Branches. Tags lock a prototype to a specific version, ensuring stability, while Branches allow automatic syncing for prototypes that are still in development.<\/p>\n<p>To switch versions for a prototype, click the gear icon in the Merge library panel, select <strong>&quot;Manage Version in project,&quot;<\/strong> and pick the version you need. You can also set a default version in <strong>&quot;Library settings&quot;<\/strong> so that all new projects start with the same components. For stable releases, use the CLI command <code>npx uxpin-merge push --tag VERSION<\/code>. For ongoing development versions, use <code>npx uxpin-merge push --branch branch<\/code>.<\/p>\n<p>With version control in place, your team will have a seamless experience accessing the right components for their projects.<\/p>\n<h3 id=\"enable-team-access\" tabindex=\"-1\">Enable Team Access<\/h3>\n<p>Once the library is shared, team members can access components directly from the Library panel. Metadata for each component will appear in the Properties Panel, giving them all the details they need. To maintain security, store the authentication token as an environment variable (<code>UXPIN_AUTH_TOKEN<\/code>) in your CI system.<\/p>\n<p>If your team is juggling multiple projects, you can assign different component versions to separate prototypes. This flexibility allows ongoing work to remain stable while testing new features in parallel. As Erica Rider, UX Architect and Design Leader, explained:<\/p>\n<blockquote>\n<p>&quot;It used to take us two to three months just to do the design. Now, with UXPin Merge, teams can design, test, and deliver products in the same timeframe. Faster time to market is one of the most significant changes we&#8217;ve experienced using Merge.&quot; <\/p>\n<\/blockquote>\n<h2 id=\"handing-off-code-to-development\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Handing Off Code to Development<\/h2>\n<p>Traditional handoffs often lead to discrepancies between design and the final code. UXPin Merge bridges this gap by allowing designers to work with the same React components used in production. This approach eliminates misunderstandings and reduces redundant tasks.<\/p>\n<p>Let&#8217;s break down how each step of this process improves your development workflow.<\/p>\n<h3 id=\"preview-prototypes-with-real-component-behavior\" tabindex=\"-1\">Preview Prototypes with Real Component Behavior<\/h3>\n<p>With UXPin Merge, when you preview a prototype, stakeholders don&#8217;t just see static images or approximations. Instead, they interact with fully compiled JavaScript and CSS. For example, if your prototype includes a sortable table or a functional video player, those components behave exactly as they would in the final product. Since Merge uses real code, you can validate interactions, states (like hover, active, or disabled), and logic before writing any production code.<\/p>\n<p>Next, let&#8217;s see how Spec Mode turns prototypes into actionable, production-ready code.<\/p>\n<h3 id=\"view-and-export-jsx-code-in-spec-mode\" tabindex=\"-1\">View and Export JSX Code in Spec Mode<\/h3>\n<p>In Spec Mode &#8211; also called Get Code Mode &#8211; developers can directly view and copy production-ready JSX code. This includes all the necessary CSS, spacing, color codes, and configurations, making the code ready for immediate use and edits. You can even open projects in <a href=\"https:\/\/stackblitz.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">StackBlitz<\/a> for instant code editing, streamlining the transition from design to development.<\/p>\n<h3 id=\"align-design-and-development\" tabindex=\"-1\">Align Design and Development<\/h3>\n<p>By combining real-code previews with editable JSX, UXPin Merge ensures that your design is the single source of truth. Traditional handoff methods often result in &quot;design drift&quot;, where designers and developers work with separate versions of components. Merge eliminates this issue by syncing directly with your Git repository, ensuring the same code powers both design and production. Any updates in the repository are automatically reflected in the UXPin Editor, keeping teams aligned. When managing your data layer, tools like <a href=\"https:\/\/www.dreamfactory.com\" target=\"_blank\" rel=\"noopener noreferrer\">DreamFactory<\/a> can provide secure, governed <a href=\"https:\/\/www.dreamfactory.com\" target=\"_blank\" rel=\"noopener noreferrer\">API access to any data source<\/a>, ensuring your components have reliable backend connectivity.<\/p>\n<p>Additionally, prop-based customization ensures that designers work within the same constraints as developers. This means designers can&#8217;t create elements that are impossible to build because they&#8217;re working with the actual production code. This seamless process reduces back-and-forth revisions and accelerates deployment. In fact, using code-backed components can make product development up to 8.6x faster compared to traditional image-based design tools.<\/p>\n<h2 id=\"conclusion\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">Conclusion<\/h2>\n<p>UXPin Merge transforms the way teams approach product development by enabling designers to work directly with production-ready React components. This seamless integration bridges the traditional gap between design and development, leading to noticeable improvements in workflow efficiency.<\/p>\n<p>Real-world case studies highlight impressive outcomes, such as cutting engineering time by 50% and empowering thousands of developers with the support of a small design team. By using code-backed components, teams establish a single source of truth, maintain design consistency, and accelerate deployment &#8211; all while reducing costs.<\/p>\n<p>With UXPin Merge, your design system can scale effortlessly, generating production-ready JSX code that developers can use right away. This process ensures that what you design is exactly what gets built, streamlining collaboration and eliminating unnecessary revisions.<\/p>\n<p>Want to prevent design drift and speed up your product development process? Check out <a href=\"https:\/\/uxpin.com\/pricing\" style=\"display: inline;\">UXPin&#8217;s pricing plans<\/a> or reach out to sales@uxpin.com for enterprise solutions tailored to your needs.<\/p>\n<h2 id=\"faqs\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">FAQs<\/h2>\n<h3 id=\"how-does-uxpin-merge-help-designers-and-developers-work-better-together\" tabindex=\"-1\" data-faq-q>How does UXPin Merge help designers and developers work better together?<\/h3>\n<p>UXPin Merge creates a seamless connection between designers and developers by enabling both teams to work with the exact same <strong>code-backed components<\/strong>. With Merge, designers can incorporate live React components directly into their prototypes, ensuring designs are not only visually accurate but also functional and aligned with the end product.<\/p>\n<p>By providing a <strong>single source of truth<\/strong> for components, this approach eliminates the usual handoff headaches. Developers supply components that designers can instantly integrate, leading to better communication, a quicker design process, and a smoother transition from prototype to production. Merge streamlines collaboration, helping teams deliver products faster and with precision.<\/p>\n<h3 id=\"what-are-the-advantages-of-using-custom-components-in-uxpin-merge-instead-of-pre-built-libraries\" tabindex=\"-1\" data-faq-q>What are the advantages of using custom components in UXPin Merge instead of pre-built libraries?<\/h3>\n<p>Using custom components in UXPin Merge offers several advantages compared to relying on pre-built libraries. These components are crafted specifically to match your team&#8217;s unique needs, ensuring they align seamlessly with your product&#8217;s design and functional goals. This tailored approach helps maintain <strong>consistency<\/strong> throughout your designs and removes the restrictions that come with generic, one-size-fits-all elements.<\/p>\n<p>Custom components also provide greater <strong>flexibility<\/strong> and <strong>scalability<\/strong>. They can be centrally updated, versioned, and managed, which simplifies maintaining a cohesive design system and minimizes discrepancies between design and development. By streamlining workflows and encouraging smoother collaboration across teams, custom components not only speed up deployment but also enhance the entire design process.<\/p>\n<h3 id=\"how-do-i-set-up-my-component-library-to-work-with-uxpin-merge\" tabindex=\"-1\" data-faq-q>How do I set up my component library to work with UXPin Merge?<\/h3>\n<p>To prepare your component library for UXPin Merge, start by ensuring your React.js components are compatible with the required framework version (16.0.0 or higher). Organize your files properly, making sure each component includes an <code>export default<\/code> statement and uses supported JavaScript dialects like PropTypes, Flow, or TypeScript.<\/p>\n<p>Next, host your components in a repository that UXPin Merge can access. Follow the naming conventions and directory structures specified in the documentation, and bundle your components correctly using tools like webpack. Once everything is set up, your library will be ready to integrate seamlessly, allowing for consistent, code-based designs throughout your workflows.<\/p>\n<p>A well-prepared setup ensures your components work efficiently within Merge, streamlining collaboration between design and development, maintaining uniformity, and accelerating deployment.<\/p>\n<h2>Related Blog Posts<\/h2>\n<ul>\n<li><a href=\"\/studio\/blog\/react-components-and-version-control-in-uxpin\/\" style=\"display: inline;\">React Components and Version Control in UXPin<\/a><\/li>\n<li><a href=\"\/studio\/blog\/reusable-react-components-in-prototypes\/\" style=\"display: inline;\">Reusable React Components in Prototypes<\/a><\/li>\n<li><a href=\"\/studio\/blog\/design-real-bootstrap-components-uxpin-merge\/\" style=\"display: inline;\">How to Design with Real Boostrap Components in UXPin Merge<\/a><\/li>\n<li><a href=\"\/studio\/blog\/design-real-ant-design-components-uxpin-merge\/\" style=\"display: inline;\">How to Design with Real Ant Design Components in UXPin Merge<\/a><\/li>\n<\/ul>\n<p><script async type=\"text\/javascript\" src=\"https:\/\/app.seobotai.com\/banner\/banner.js?id=697804a712006df3518d9dcb\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Design with production-ready React components in UXPin Merge to build accurate, interactive prototypes, align design and development, and export JSX for handoff.<\/p>\n","protected":false},"author":231,"featured_media":58046,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-58049","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.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Design with Custom Design Components in UXPin Merge | 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\/design-custom-design-components-uxpin-merge\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Design with Custom Design Components in UXPin Merge\" \/>\n<meta property=\"og:description\" content=\"Design with production-ready React components in UXPin Merge to build accurate, interactive prototypes, align design and development, and export JSX for handoff.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/\" \/>\n<meta property=\"og:site_name\" content=\"Studio by UXPin\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-27T16:24:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-09T10:28:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2026\/01\/image_75fc02472aec8f49a4c946a6c25875a5.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=\"18 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\\\/design-custom-design-components-uxpin-merge\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/\"},\"author\":{\"name\":\"Andrew Martin\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/ac635ff03bf09bee5701f6f38ce9b16b\"},\"headline\":\"How to Design with Custom Design Components in UXPin Merge\",\"datePublished\":\"2026-01-27T16:24:23+00:00\",\"dateModified\":\"2026-05-09T10:28:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/\"},\"wordCount\":3399,\"image\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/\",\"name\":\"How to Design with Custom Design Components in UXPin Merge | UXPin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg\",\"datePublished\":\"2026-01-27T16:24:23+00:00\",\"dateModified\":\"2026-05-09T10:28:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/ac635ff03bf09bee5701f6f38ce9b16b\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg\",\"width\":1536,\"height\":1024,\"caption\":\"How to Design with Custom Design Components in UXPin Merge\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/design-custom-design-components-uxpin-merge\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Design with Custom Design Components in UXPin Merge\"}]},{\"@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":"How to Design with Custom Design Components in UXPin Merge | 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\/design-custom-design-components-uxpin-merge\/","og_locale":"en_US","og_type":"article","og_title":"How to Design with Custom Design Components in UXPin Merge","og_description":"Design with production-ready React components in UXPin Merge to build accurate, interactive prototypes, align design and development, and export JSX for handoff.","og_url":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/","og_site_name":"Studio by UXPin","article_published_time":"2026-01-27T16:24:23+00:00","article_modified_time":"2026-05-09T10:28:04+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2026\/01\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg","type":"image\/jpeg"}],"author":"Andrew Martin","twitter_card":"summary_large_image","twitter_creator":"@andrewSaaS","twitter_misc":{"Written by":"Andrew Martin","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#article","isPartOf":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/"},"author":{"name":"Andrew Martin","@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/ac635ff03bf09bee5701f6f38ce9b16b"},"headline":"How to Design with Custom Design Components in UXPin Merge","datePublished":"2026-01-27T16:24:23+00:00","dateModified":"2026-05-09T10:28:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/"},"wordCount":3399,"image":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#primaryimage"},"thumbnailUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2026\/01\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/","url":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/","name":"How to Design with Custom Design Components in UXPin Merge | UXPin","isPartOf":{"@id":"https:\/\/www.uxpin.com\/studio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#primaryimage"},"image":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#primaryimage"},"thumbnailUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2026\/01\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg","datePublished":"2026-01-27T16:24:23+00:00","dateModified":"2026-05-09T10:28:04+00:00","author":{"@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/ac635ff03bf09bee5701f6f38ce9b16b"},"breadcrumb":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#primaryimage","url":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2026\/01\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg","contentUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2026\/01\/image_75fc02472aec8f49a4c946a6c25875a5.jpeg","width":1536,"height":1024,"caption":"How to Design with Custom Design Components in UXPin Merge"},{"@type":"BreadcrumbList","@id":"https:\/\/www.uxpin.com\/studio\/blog\/design-custom-design-components-uxpin-merge\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.uxpin.com\/studio\/"},{"@type":"ListItem","position":2,"name":"How to Design with Custom Design Components in UXPin Merge"}]},{"@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\/58049","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=58049"}],"version-history":[{"count":3,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/58049\/revisions"}],"predecessor-version":[{"id":59788,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/58049\/revisions\/59788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/media\/58046"}],"wp:attachment":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/media?parent=58049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/categories?post=58049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/tags?post=58049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}