Front-End Archives https://www.uxpin.com/studio/blog/category/front-end/ Thu, 23 Nov 2023 16:29:53 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.2 Functional vs Class Components – What Do You Need to Know? https://www.uxpin.com/studio/blog/functional-vs-class-components/ Thu, 23 Nov 2023 16:29:41 +0000 https://www.uxpin.com/studio/?p=51303 As a web developer, you may have heard of React, a popular JavaScript library for building user interfaces. One of the key features of React is its component-based architecture, which allows you to break down your user interface into reusable and independent building blocks called components. In this article, we will explore two types of

The post Functional vs Class Components – What Do You Need to Know? appeared first on Studio by UXPin.

]]>
functional vs class components

As a web developer, you may have heard of React, a popular JavaScript library for building user interfaces. One of the key features of React is its component-based architecture, which allows you to break down your user interface into reusable and independent building blocks called components.

In this article, we will explore two types of components in React: functional components and class components.

Key takeaways:

  • Class components employ JavaScript classes that extend the React.Component class. 
  • Functional components are similar to JavaScript functions that receive properties (props) and return React elements for rendering.
  • Class components are preferred for complex components that demand precise control over state and lifecycle behavior.
  • Functional components shine in simpler scenarios, embracing a more functional programming approach.

Before you build a React app, you need to design it! Create a stunning, responsive layout without design skills. Use drag-and-drop components that come from the best open-source libraries. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

What are Class Components?

Class components have been the traditional way of creating components in React and are still widely used in many existing codebases. They offer a more familiar syntax for software engineers coming from object-oriented programming backgrounds and provide more fine-grained control over the component’s behavior.

Class components in React are created using JavaScript classes, which extend the React.Component class provided by React itself. This inheritance grants class components access to React’s features and functionalities.

One fundamental capability of class components is their ability to manage their own internal state using the setState method. This method enables class components to update and handle data that changes over time, allowing the component to re-render when the state is modified.

Additionally, class components make use of lifecycle methods, which are predefined functions that execute at different stages of a component’s existence. They help developers orchestrate specific actions or behaviors at different phases of a component’s lifecycle, enhancing control and customization over how the component behaves and interacts within the application.

Advantages of Class Components vs Functional Components

Let’s see the advantages of class components over the other type.

  • Performance: Class components can optimize performance by reusing instances and updating only necessary parts. This comes in handy when handling large datasets.
  • Internal State Management: They can maintain their own internal state using setState. This allows for handling dynamic data changes within the component itself.
  • Precise Control over Behavior: They offer detailed control and structure, which can be beneficial when dealing with components requiring intricate control over their behavior.

Downsides of Using Class Components

While class components have their benefits, they also come with some drawbacks. One of the main drawbacks is their complexity. Class components have a steeper learning curve compared to functional components, especially for developers who are new to React. The syntax and concepts used in class components, such as the use of this and the lifecycle methods, can be confusing for beginners.

Class-based components are also more verbose compared to functional components. They require more code to achieve the same functionality, which can result in more boilerplate code and make the code harder to read and maintain.

Another drawback of class components is that they can lead to code that is tightly coupled and harder to test. Since class components encapsulate both the UI and the behavior, it can be challenging to isolate and test specific parts of the component. This can make it harder to write unit tests for your components and make your code less modular and reusable.

What are Functional Components?

Functional components are the simpler form of React components. They are essentially JavaScript functions that don’t have their own internal state. They rely on props (short for properties) to receive data and return the JSX that represents the component’s output.

Functional components gained popularity with the introduction of React Hooks that gave the stateless class components the ability to handle state and lifecycle features. Introduced in version 16.8, hooks closed the gap between functional and class components. From that point, functional components could do what a Class component did, but they were simpler and easier to reuse.

Advantages of Functional Components vs Class Components

There are at least three advantages to using functional components in your React project. 

  • Easier to reuse and compose: Since they are just functions, you can easily extract logic into separate functions and reuse them in multiple components.
  • Promoting Functional Programming: They encourage a functional programming style, leading to more modular code that’s easier to reason about and debug.
  • Easier to test: Functional components, lacking internal state and lifecycle methods, are easier to test as they involve straightforward input-output testing based on props.

Best Practices for Using Functional and Class Components

Regardless of whether you choose to use functional or class components, there are some best practices you can follow to write clean and maintainable code. Here are a few tips:

  • Keep your components small and focused: Break down your UI into smaller, reusable components. This makes your code more modular and easier to understand.
  • Use descriptive names for your components: Choose meaningful names for your components that accurately describe their purpose and functionality. This makes your code more readable and easier to navigate.
  • Separate concerns: Separate your UI logic from your business logic. Keep your components focused on rendering the UI and move any data fetching or state management logic outside of the component.
  • Follow the single responsibility principle: Each component should have a single responsibility and do one thing well. This makes your code more maintainable and easier to test.
  • Write unit tests for your components: Test your components to ensure they behave as expected. Use tools like Jest and React Testing Library to write unit tests for your components.

Time to Build a React App Layout

Understanding the strengths and limitations of functional and class components empowers developers to make informed decisions while building React applications.

React Hooks extend the capabilities of functional components, while class components provide control over state and lifecycles. By grasping these concepts and adopting best practices, developers can create robust and efficient React applications.

Now that you have a better understanding of functional and class components, it’s time to put your knowledge into practice. Build your first React app user interface with UXPin Merge, an intuitive design technology that makes it easy to create prototypes with coded components. See how easy it is to build your first frontend design. Discover UXPin Merge.

The post Functional vs Class Components – What Do You Need to Know? appeared first on Studio by UXPin.

]]>
Ant Design 101 – Introduction to a Design System for Enterprises https://www.uxpin.com/studio/blog/ant-design-introduction/ Thu, 02 Nov 2023 14:08:31 +0000 https://www.uxpin.com/studio/?p=37506 Ant Design is a popular design system for developing enterprise products. The comprehensive component library has everything product teams need to solve most modern B2B design problems. Key takeaways: With UXPin Merge, design teams can import Ant Design UI components to build fully functioning prototypes. This article outlines the benefits of working with Ant Design,

The post Ant Design 101 – Introduction to a Design System for Enterprises appeared first on Studio by UXPin.

]]>
Ant Design

Ant Design is a popular design system for developing enterprise products. The comprehensive component library has everything product teams need to solve most modern B2B design problems.

Key takeaways:

  • Ant Design is a collection of high-quality UI components that cover a wide range of use cases, including buttons, forms, navigation menus, data tables, modals, and more.
  • Ant Design is known for its adherence to design principles and guidelines that promote consistency and usability.
  • It follows the principles of the “Ant Design Language,” which emphasizes clarity, efficiency, and simplicity in design.
  • Ant Design has a strong and active community of designers and developers, which contributes to its ongoing development and support.

With UXPin Merge, design teams can import Ant Design UI components to build fully functioning prototypes. This article outlines the benefits of working with Ant Design, its vast component library, and how to build Ant Design prototypes that look and feel like the final product.

Create a single source of truth between design and development with UXPin Merge. Visit our Merge page for more details and how to gain access to this advanced prototyping technology.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

What is Ant Design (AntD)?

Ant Design is an open-source design system developed by the Ant Group–parent company of Alibaba, Alipay, Huabei, and MYbank, to name a few. The component library supports React, Vue, and Angular front-end frameworks.

Ant Design includes layouts, iconography, typography, navigation, data entry/forms, data visualizations, and more. Design tokens allow organizations to customize the component library to meet your product requirements.

Key Ant Design Benefits

One of the primary reasons product developers choose Ant Design is its comprehensive component library and features. You can find just about every type of UI pattern, including data visualizations, making it an excellent choice for enterprise products.

design prototyping collaboration interaction

Here are some Ant Design benefits we’ve learned from software developers:

  • Well maintained: Ant Design’s team continually works to improve the design system with frequent updates. Engineers also report finding little or no bugs.
  • Comprehensive library: Ant Design has a component, pattern, or icon to solve every design problem. Additionally, each element has multiple versions to accommodate any scenario.
  • Native library: Ant Design Mobile offers an extensive library for building native cross-platform applications.
  • Animation library: Ant Motion provides animations for common patterns and microinteractions to complement its native and web component libraries. 
  • Third-party libraries: Ant Design’s third-party React libraries include data visualizations, infinite scroll, maps, media queries, and others that increase the design system’s capabilities.
  • Internationalization-ready: Ant Design’s internationalization feature supports languages from around the world with the option for developers to add more.
  • Forms: an extensive form library with excellent form handling.
  • Scaffolds: 100+ template projects for dashboards, reports, tables, admin UIs, chat, logins, and more.
  • Typescript compatible

Material Design vs. Ant Design

Material Design and Ant Design present more similarities than differences. Both offer comprehensive design systems for building cross-platform applications with excellent documentation and large global communities.

Theming

Material Design and Ant Design use design tokens for theming, making it easy for developers to customize UI components and patterns.

Accessibility

Accessibility is one of the most significant differences between the two design systems. Material Design has accessibility “baked-in” to every component with principles and best practices, whereas Ant Design leaves this to developers.

Tech stack compatibility

Material Design is the best option for developing cross-platform Flutter applications. Developers can call components with a few lines of code and build user interfaces effortlessly. Material Design is also available for React apps through MUI.

Ant Design accommodates React, Vue, and Angular frameworks, making the design system accessible to more software developers.

Ant Design vs. Bootstrap

Bootstrap is one of the oldest front-end CSS frameworks for building responsive websites and web applications. Many engineers use Bootstrap for prototyping because they can leverage the framework’s CSS and Javascript libraries to develop websites and web applications with little effort.

Like Ant Design, Bootstrap supports React, Vue, and Angular. The biggest difference between these two is that Bootstrap is a framework, whereas Ant Design is a design system

Bootstrap is a better option for prototyping and building websites, whereas Ant Design offers more features for building web and native cross-platform applications.

What Can You Build With Ant Design?

Ant Design’s vast library of components, patterns, templates, and icons makes it possible to develop B2B and B2C digital products. The design system’s form and data visualization patterns make it a popular choice for enterprise applications.

Here are some enterprise companies that use Ant Design:

  • Yuque: knowledge management platform
  • Alibaba: the world’s largest online marketplace
  • Baidu: the Chinese Google equivalent and one of the world’s largest AI and Internet companies with multiple products running Ant Design
  • Fielda: a mobile data collection application for field research
  • Moment: project management software
  • Videsk: video-based customer service platform
  • Solvvy: chatbot software from Zoom
  • Ant Financial: One of China’s leading FinTech organizations

Ant Design’s Design Language

design system atomic library components

1. Design Language

Ant Design’s Design Values include principles and patterns for solving many usability problems. The design system has four values:

  1. Natural: products and user interfaces must be intuitive to minimize cognitive load.
  2. Certain: designers must use components and patterns consistently to enhance collaboration and deliver consistent user experiences.
  3. Meaningful: products must have clear goals and provide immediate feedback to each action to help users. Designers must create experiences that enable users to focus on tasks without distraction.
  4. Growing: designers must consider the human-computer interaction symbiosis and design for scalability.

2. Motion Principles

Ant Design has three Motion Principles:

  1. Natural: designers must base motion on the laws of nature with smooth and intuitive animations and transitions
  2. Performant: animations must have low transition times and not impact a product’s performance
  3. Concise: designers must create justified, meaningful interactions while avoiding excessive animations that don’t add value to the user experience

3. Global Styles

The Global Styles section of Ant Design’s docs includes color, layout, font, icons, and dark mode guidelines.

Ant Design’s Palette Generation Tool will generate a ten-shade palette based on your product’s primary color. The tool is somewhat primitive compared to the Material Theme Builder and other palette generators.

The font scale and line height provide helpful guidelines based on user reading efficiency calculated on an average distance of 50cm (20inches) and 0.3-degree angle. The base font is 14 px with a line height of 22 px.

Ant Design’s icons are available as outlined, filled, and two-tone. The are also instructions for creating custom icons that conform to the design system’s iconography principles, ensuring maximum consistency for customizations.

Ant Design Components

Here is an overview and key features of the Ant Design component library.

General

General components include buttons, icons, and typography. There are five button types:

  • Primary: main CTA
  • Default: secondary CTA
  • Dashed
  • Text button
  • Link button

Additionally, there are four button properties:

  • Danger: high-risk actions like delete
  • Ghost: also called outlined button
  • Disabled: when actions are unavailable
  • Loading: adds a spinner and disables the controller to prevent multiple submits

Layout

AntD’s layout includes dividers, grids, and space (alignment, direction, size, etc.).

Navigation

Navigational patterns include affix (sticky), breadcrumb, dropdown, menu, page header, pagination, and steps.

Data Entry

Ant Design’s Data Entry components make the design system a preferred choice for enterprise application development. Product teams can build enterprise UIs fast with Ant Design’s out-of-the-box patterns, including:

  • Auto Complete input fields
  • Cascading dropdown menus
  • Checkboxes
  • Date pickers
  • Forms
  • Inputs (text and number only)
  • Mentions (tagging users)
  • Radios
  • Ratings (icons and emojis)
  • Select menus
  • Sliders
  • Switches
  • Time pickers
  • Transfer select boxes
  • Tree selectors
  • Uploads

Data display

Connected to data entry is data display–visualizing and presenting data to users.

  • Avatars
  • Badges
  • Calendars
  • Cards
  • Carousels
  • Collapse (accordions)
  • Comments (user discussions)
  • Descriptions (tables for orders, transactions, records, etc.)
  • Empty (placeholders for empty components)
  • Images
  • Lists
  • Popovers
  • Segmented
  • Statistics (numerical components for dashboards)
  • Tables
  • Tabs
  • Tags
  • Timelines
  • Tooltips
  • Trees

Feedback

Designers use Ant Design’s feedback components to communicate with users.

  • Alerts
  • Drawers
  • Messages (display system feedback at the top of the screen)
  • Modals
  • Notifications
  • Popconfirm
  • Progress
  • Result (success, fail, error, etc.)
  • Skeletons (lazy loading placeholders)
  • Spin (spinners)

Other

The final category includes anchor (table of contents) and back top (back to top), essentially navigational components. There’s also a config provider which enables developers to group components.

Importing Ant Design React Components into UXPin

One of the challenges with any design system is that although there’s “a single source of truth,” designers and engineers still use different UI elements–designers use an image-based UI kit. Engineers use a code-based component library (React, Vue, Angular, etc.).

UXPin Merge creates a real single source of truth. Software developers can bring their product’s design system or open-source component library (like Ant Design) into UXPin, so designers use the same UI elements for prototyping that engineers use to develop the final product.

Merge components are powered by code, giving designers complete interactivity and properties defined by the design system. For example, this Ant Design button includes hover and click interactions by default without changing anything in UXPin!

Designers can access the component’s properties defined by the design system (color, size, type, content, etc.) via the Properties Panel to make changes. 

UXPin renders these as JSX so that engineers can copy/paste from Spec Mode to begin development–no drift, 100% consistency every time!

Ant Design npm integration

UXPin’s npm integration allows designers to import UI elements from open-source component libraries hosted in the npm registry, including Ant Design (antd).

Using the Merge Component Manager, designers simply add Ant Design’s npm details:

  • Package name: antd
  • Assets location: antd/dist/antd.css

And UXPin connects to Ant Design’s GitHub repo via npm. Designers can use Ant Design’s documentation to choose the components and properties they need for prototyping. 

Follow this step-by-step guide for importing Ant Design components into UXPin.

You can also watch CoderOne’s YouTube tutorial, which takes you through the setup and building a basic prototype.

Build fully functioning Ant Design prototypes that produce meaningful results during user testing. Increase your design team’s value by solving more problems during the design process while identifying more opportunities. Visit our Merge page to find out more and how to request access.

The post Ant Design 101 – Introduction to a Design System for Enterprises appeared first on Studio by UXPin.

]]>
Design to React code – How UXPin Merge Speeds it up https://www.uxpin.com/studio/blog/design-to-react-code/ Thu, 19 Oct 2023 11:39:47 +0000 https://www.uxpin.com/studio/?p=50721 Converting designs into functional React code is a pivotal step that often comes with challenges such as misinterpretation, inefficiency, and inconsistency. Emerging technologies like UXPin’s Merge aim to streamline this antiquated process by facilitating a code-to-design workflow, allowing you to design with React components.  Key takeaways: Design with React code using an intuitive design interface

The post Design to React code – How UXPin Merge Speeds it up appeared first on Studio by UXPin.

]]>
design to react code

Converting designs into functional React code is a pivotal step that often comes with challenges such as misinterpretation, inefficiency, and inconsistency. Emerging technologies like UXPin’s Merge aim to streamline this antiquated process by facilitating a code-to-design workflow, allowing you to design with React components. 

Key takeaways:

  • The traditional design-to-code workflow often results in lost design details, extended iteration cycles, and version inconsistencies.
  • UXPin’s Merge technology offers a code-based design approach streamlining the transition from design to functional React code.
  • Merge allows you to import React components directly into UXPin’s design editor for a more dynamic and interactive design experience.
  • With UXPin’s Merge, changes to React components in the repository automatically sync, making maintenance and customization easier.
  • The code-to-design workflow in UXPin provides both time efficiency and higher fidelity between the initial design and the final product.

Design with React code using an intuitive design interface and Merge technology. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

How Do You Convert Designs to React Code?

In the traditional product development workflow, designers craft mockups and prototypes, often using tools like Sketch or Figma. They then hand off these designs and documentation to developers who translate them into functional React code.

The handoff usually involves exporting designs into a standard format, perhaps annotated with extra details like dimensions, colors, and assets. 

This process relies on designer/developer cooperation or a solo dev with both skill sets. Since it takes many years to develop competency in design and development, not many people choose to master both. There are other challenges.

What are the Challenges of Getting Design to React Code?

code design developer
  1. Lost in Translation: Despite the best efforts, some design details often get lost or misinterpreted during the handoff.
  2. Iteration Lag: If the developer needs clarification or the designer needs to make changes, the iterative cycle elongates, wasting time and resources.
  3. Component Inconsistency: Without a shared language or toolset, designers and developers can end up creating their own versions of the same reusable components, leading to inconsistency.
  4. Static Designs: Traditional design tools often produce static mockups, not accounting for dynamic data and states, leaving gaps in the representation of the final product.
  5. Version Confusion: As design and code evolve, keeping track of the most current version becomes a nightmare.

Why we need a better alternative

The legacy workflow has its merits, but it’s far from optimal in a world where user experience can make or break a product. Add the component-centric architecture of React, and the room for error widens. 

Here’s why we need a better alternative to the traditional design-to-code workflow:

  1. Time Efficiency: The traditional method extends project timelines. Shorter development cycles are not just a desire; they’re a need.
  2. Design Integrity: The fidelity of the final product to the initial design often gets compromised. A new approach can uphold the designer’s vision to the tee.
  3. Dynamic Reality: Today’s UI is interactive and data-driven. Static design handoffs can’t encapsulate this dynamic and interactive reality.
  4. Consistency: A consistent UI requires a single source of truth for designers and developers, which the traditional model lacks.
  5. Feedback Loop: Real-time collaboration can iron out issues on the fly instead of post facto corrections.

The traditional model also makes it challenging and time-consuming for solo devs to prototype and test. They must either learn a design tool or build, test, and iterate in code, adding significant time to the project.

Luckily, there is an alternative to this legacy design workflow where you can design using React code.

How Do You Design in React?

design and development collaboration process product communication 1

Wouldn’t it be easier to drag and drop UI components to prototype user interfaces instead of writing and editing React code? That’s precisely what UXPin’s Merge technology does.

Unlike Figma, Adobe XD, and other image-based UI design tools, UXPin is code-based, rendering HTML, CSS, and Javascript behind the scenes. This code-based technology means you can use code components on the design canvas in a no-code environment with Merge technology.

Merge lets you import React components from a repository into UXPin’s design editor. The UI elements appear in UXPin’s Design System Libraries for you to drag and drop for prototyping. You can edit styling and interactivity via the Properties Panel defined by the component’s React props.

How UXPin Merge helps you design with React code components

Devs can use the standard Properties Panel interface or switch to JSX mode for a more familiar code environment. Any changes you make to the React components in the repository automatically sync to UXPin, allowing you to update, maintain, and customize your UI elements, patterns, and templates.

This code-to-design workflow gives developers the best of both worlds–complete control over the codebase and repository with the simplified workflow of a design tool interface. Instead of editing code, devs can drag and drop to move components about the UI or make adjustments via the Properties Panel.

How to Connect Merge to Your Repository

uxpin merge react sync library git

UXPin offers two ways to sync a component library:

Git Integration (React only): 

Direct connection to a React component repository (GitHub, GitLab, etc. ). We recommend the Git Integration because it gives you Merge’s features, including:

Storybook Integration

Connect any Storybook to UXPin, including React, Vue, Angular, Ember, and more. While you don’t get all the Merge features, Storybook offers many benefits, including addons and plugins for managing component libraries.

npm Integration and Merge Component Manager

You can also use the npm integration and Merge Component Manager to import individual UI elements from open-source design systems on the npm registry. 

UXPin offers several built-in Merge design systems to start prototyping without any setup process, including Fluent UI (Git), Ant Design (npm integration), MUI (Git), Material UI (Storybook), or UXPin Boilerplate (Git).

How to Add React Components and Sync to UXPin Using Merge’s Git Integration

Once you have created a UXPin account and completed the onboarding processrequest access to Mergeyou can start setting up your repository using the Merge boilerplate repository.

Prerequisites for this step-by-step tutorial from UXPin’s docs:

  • You have completed the Easy Start tutorial (request access to Merge).
  • You’re familiar with HTML, CSS, and Javascript.
  • You have at least a basic understanding of React.js.

Step 1: Run the dev environment

Start by running your Merge Dev environment. Execute npm start at the root, which runs the following script:

uxpin-merge –webpack-config ./webpack.config.js –wrapper ./src/UXPinWrapper/UXPinWrapper.js –uxpin-domain merge.uxpin.cloud

  • –webpack-config: Specifies the webpack config location.
  • –wrapper: Use if your React components need a wrapper, like a theme provider.
  • –uxpin-domain: Points Merge to the correct server.

Step 2: Naming conventions

Maintain identical directory, filename, and component names.

  • Example: ./src/NewComponent/NewComponent.js

Step 3: Export component

Ensure your component has an export default.

  • Example: export default NewComponent;

Step 4: Define props

Use PropTypes or Flow for props definition (Typescript interfaces scheduled for release). They become editable in UXPin’s Properties Panel.

Step 5: JSX preset

Create a JSX preset file within a presets directory inside your component folder.

  • Example: ./src/NewComponent/presets/0-default.jsx

Step 6: Update config

Finally, add the component to uxpin.config.js, located in the root directory.

Step 7: Restarting Merge

After adding new components, restart the Merge process by hitting CMD+C in the terminal. If you get a lifecycle error upon starting a new Merge process, type killall node -9 into the terminal and try again.

How the React Code to Design Works in UXPin

Once you have completed the initial setup, Merge will automatically sync any changes to UXPin’s Design System Libraries. Merge’s Version Control notifies you of the update, and you can choose when to switch to the latest release. Version Control also lets you change to earlier design system versions.

Setting up pages

Unlike traditional design tools using frames and artboards, UXPin uses a pages approach–a more familiar project structure for developers. You can add and manage your project’s pages in the Pages & Layers panel left of the design canvas. You can also view all pages to get an overview of your project file.

UXPin offers many standard page/screen sizes for desktop, TV, mobile (iOS, Windows, Android), tablet, wearables, and more. You can also create a custom viewport.

Designing with React code components

Drag and drop components onto the design canvas to create prototypes. Merge components “snap together” so you can create seamless layouts that look like a coded UI.

You can adjust the UI element’s properties via the Properties Panel and add Interactions for page transitions, animations, and microinteractions. UXPin offers Javascript-like Conditional Interactions with “if-then” and “if-else” conditions to create dynamic prototypes indistinguishable from code.

Any APIs, interactivity, or other properties you program in the repo are available in UXPin, allowing you to generate accurate replicas of the final product.

How to grow your component library with UXPin’s Patterns

With UXPin’s Patterns, you can evolve your design system by combining UI elements without writing code. You can use any Merge libraries imported using the Git or npm integrations–unfortunately, this feature is not available for Storybook.

Once you create a new pattern, you can save it to your Pattern’s library and share it with team members. This feature allows you to prototype and test comprehensively before committing the UI element to code, saving countless hours of fixes and front-end debt.

Patterns also lets you:

  • Save multiple variants of a pattern to optimize prototyping workflows.
  • Design with advanced components–even if they are not in your design library.

Design to code faster

Designing with React components creates a smooth, seamless transition from the design process to development. Simply import the component library to your project and copy the layouts from UXPin. Merge produces production-ready JSX to copy/paste from UXPin’s Spec Mode to your IDE.

Use Case: How Code to Design Simplifies Design for Non-Designers

TeamPassword is a five-person startup with two developers and no designers. The development team switched to React in 2022 and adopted a custom version of MUI. TeamPassword’s engineers use Merge to sync their UI library to UXPin for prototyping and testing.

Merge enables TeamPassword to ship products and features much faster with higher consistency and fewer errors, giving them an edge in the highly competitive security tech market. They have also eliminated drift because they use the same components for design and development.

“Brand is essential in this market. Customers entrust us with sensitive information in their login records. Inconsistencies or an outdated design can cause some customers to question whether we are technologically up-to-date enough to keep that information secure. Front-end development builds trust and confidence in the backend performance.” Tony Caccavo, Director of Operations at TeamPassword

Ditch design to code and switch to UXPin’s code-to-design workflow to prototype and test faster. Visit our Merge page for more details and how to request access.

The post Design to React code – How UXPin Merge Speeds it up appeared first on Studio by UXPin.

]]>
Low Code vs Traditional Development – Which is Best for You? https://www.uxpin.com/studio/blog/low-code-vs-traditional-development/ Wed, 18 Oct 2023 11:01:10 +0000 https://www.uxpin.com/studio/?p=50703 Traditionally, any software project called for a high upfront investment and an expert team, who would spend months on creating code. Fast forward to today, and the software development process has become much more accessible, with solutions like low code keeping the need for manual coding at a minimum.  In this piece, we look at

The post Low Code vs Traditional Development – Which is Best for You? appeared first on Studio by UXPin.

]]>
image2

Traditionally, any software project called for a high upfront investment and an expert team, who would spend months on creating code. Fast forward to today, and the software development process has become much more accessible, with solutions like low code keeping the need for manual coding at a minimum. 

In this piece, we look at what low code development is, where it overlaps with design, and how it fits into the wider product development process.

Key takeaways:

  • Low code development is a method of creating an app with a pre-built components; it differs from traditional development, because a developer doesn’t need to start coding from scratch.
  • Low code democratizes software development, increases its speed, simplifies maintenance, decreases costs, and makes coding a collaborative experience.
  • Traditional development provides full control over the process but it tends to be more time-consuming and requires a higher level of coding expertise.

Try our low code UI design solution – UXPin Merge. It allows you to drag and drop coded components to create layouts and user flows for your app. Join our revolution. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

What is low code development?

Low code development is a software development method that simplifies and speeds up the app development process by allowing you to code through a graphic user interface. Instead of following a traditional app development environment that relies on text, you create your app by using prebuilt, drag-and-drop elements. This helps keep the need for manual coding at a bare minimum.

On top of software development, product team members can also use low code solutions to create prototypes and deploy the latest version of the app to the live environment.

While you might have also heard of an approach called “no code development”, it’s not synonymous with low code. As the names already hint, the former entirely eliminates the need to write script and can be used by those who have zero coding knowledge. Meanwhile, low code might call for a small amount of coding.

How does low code development differ from a traditional development process?

There are significant differences between low code and traditional development processes, which mainly relate to the development speed, cost, and customization options. Let’s take a look at each one in more detail. 

Coding democratization

Since low code solutions offer a visual interface and pre-built components, they can be used even by those who have very limited coding skills. They include a library of ready-made templates and drag-and-drop tools that users can take advantage of. This makes low code platforms much more accessible. The traditional app development process, on the other hand,  cannot be done without the involvement of developers, who usually have to be proficient in multiple programming languages. It includes a lot of manual work.

Development speed

One of the biggest advantages of using low code platforms is improving the speed of product development. A lot of stages of the development process, including prototyping and testing, can be automated. In traditional app development, programmers write code from scratch, and then Q&A specialists run extensive testing, and the development team implements iterations when necessary. All this prolongs the product launch. 

Customization

When it comes to customization, low code platforms perform great if you want to mainly stick with standardized functionalities. If you want to get a bit more creative and stand out, for example, by offering a wide range of integrations, you’ll be better off going with the traditional product development process. Customized, complex, and unique features require manual coding.

Maintenance

As elements in low code solutions are standardized and ready-made, and therefore thoroughly tested, they include fewer bugs and integration problems. However, the downside is that these functionalities are not as sophisticated as in the case of those developed by programmers. The traditional development process grants more control over maintenance and offers more scaling possibilities, but also requires continuous product updates, which are done manually by developers. 

Collaboration

Since low code platforms require little coding skills, they can be understood and used by individuals with no tech background. This, in turn, encourages collaboration between IT and business teams and creates a more inclusive development environment. The traditional app development process, on the other hand, relies heavily on specialized knowledge, which might lead to friction between developers and non-technical team members. 

Cost

Low code should be your go-to approach if you want to create a simple product, the cost of development will be much lower than in the case of a traditional development process, with faster time to market. But you need to be aware of licensing fees, the more licenses you require the higher your costs will be. If you decide to develop your app using the traditional app development process, then you might have to invest more upfront but you will have total control of your costs. 

How to tell which one is better for your project?

In summary, low code development offers speed, accessibility, and ease of use but may be limited in handling complex, highly customized applications. Traditional development provides full control, flexibility, and scalability but tends to be more time-consuming and requires a higher level of coding expertise. The choice between low code and traditional development depends on the specific project requirements, the complexity of the application, and the available development resources. Some organizations may even use a hybrid approach, combining low code and traditional development.

Low Code and Traditional Development Follow the Same Process

Regardless of whether you decide to follow the traditional coding route or turn to low code solutions, you’ll need to follow the same steps of the product development. Software development is the penultimate stage, preceded by ideation, research, prototyping, and design

Here’s a brief overview of the seven steps of the product development process:

Step 1: Ideation

You begin by meeting together as a team to generate and brainstorm ideas. The goal is to unravel your creativity, explore various solutions, and assess their initial viability.

Step 2: Research & Idea Screening

After shortlisting the most promising ideas, you move on to proof of concept – researching and validating them against potential users and the broader market. Some methods include running surveys and interviews with those who share the same traits as your target audience. Once you’ve proven the idea promising and worth further exploring, you can move on to prototypes.

Step 3: Prototyping

Here’s where you generate your very first visuals. Prototypes come in two forms – low fidelity (lo-fi) and high fidelity (hi-fi). Depending on where you want to test them out, you could work with a digital prototype or a physical one (like cut-out, paper wireframes).

Step 4: Detailed UI Designs

High-fidelity prototypes created with tools like UXPin closely emulate your real-life product. They come with all the interactivity and branding you want in the live app to give testers the full experience. 

Step 5: Validation & testing

At this stage, you engage in the final validation of your designs. You collect feedback from testers, brainstorm with other members of the team, and aim to distinguish your solution from any competitors on the market.

Step 6: Development

Traditionally, this step is often called the “developer handoff”. Your design team provides your software engineers with the complete design, along with comprehensive design guidelines and specifications. Developers use these guidelines as they translate the designs into the coded app.

Step 7: Launch

Lastly, you create a go-to-market strategy and bring your app to the market.

You can learn more about each stage by giving our product development guide a read. For the sake of this piece, however, it’s important that you understand how critical the transition between the design and development phases is for your turning your idea into an outstanding product. Let’s discuss how it affects both your low code and traditional development projects.

Why Design Matters for Low Code and Traditional Development  

Here’s what a strong focus on design brings to the table:

1. Idea validation & minimizing risk: Lack of product-market fit and running out of cash are the top two reasons for startup failure. Both could be avoided by validating the app idea by asking testers to interact with the prototype. This way, you can ensure that you won’t invest your time and financial resources into launching a product that won’t resonate with the market or still needs significant refining.

3. Keeping your go-to-market process cost-efficient: Creating prototypes, both low- and high-fidelity, can be an incredibly cost-effective and insightful process. By using a product design tool like UXPin, you create visuals that reflect the end product’s functionalities, features, and overall ‘feel’. Additionally, if you already have any coded components of your app, you can merge them into your prototypes. This only accelerates design testing and further minimizes your upfront financial investment. This brings us to the next point.

4. Iteration and improvements: As you haven’t committed to coding the end app yet, you can continuously improve and iterate your designs. This agility lets you incorporate feedback from testers and react to any market trends or fluctuations that require design changes.

5. Alignment with resources: It’s hard to figure out how much money you’ll have to invest in app development without having a well-defined design. It allows you to effectively allocate resources, know what technology to use, how much time it requires to develop it, and what skills you need to successfully complete the project. 

6. Enhanced communication: Good design often leads to better communication among those involved in the project, including stakeholders and potential investors. Since it visually shows your ideas, it’s easier for everyone to grasp your vision, provide feedback, and get buy-in. By using the right prototyping tools such as UXPin, not only can you bring new products to the market faster, but also significantly improve communication between developers and designers. 

Try Low Code with UXPin Merge

Facilitate your product team’s work by allowing them to use drag-and-drop for coding. Build beautiful and fully functional UIs with UXPin Merge. Accelerate your product development process. Discover UXPin Merge.

The post Low Code vs Traditional Development – Which is Best for You? appeared first on Studio by UXPin.

]]>
How Storybook Helps Developers With Design Systems? https://www.uxpin.com/studio/blog/how-storybook-helps-developers-with-design-systems/ Thu, 12 Oct 2023 20:33:17 +0000 https://www.uxpin.com/studio/?p=38231 Storybook has become THE DevOps tool for developing and maintaining design systems. The platform’s excellent documentation, intuitive UI, built-in testing, and collaborative features make it the perfect tool for building and releasing components. Understanding how Storybook works can help designers collaborate with front-end devs better and leverage the platform’s features to improve prototyping and testing.

The post How Storybook Helps Developers With Design Systems? appeared first on Studio by UXPin.

]]>
how storybook helps developers with design system

Storybook has become THE DevOps tool for developing and maintaining design systems. The platform’s excellent documentation, intuitive UI, built-in testing, and collaborative features make it the perfect tool for building and releasing components.

Understanding how Storybook works can help designers collaborate with front-end devs better and leverage the platform’s features to improve prototyping and testing.

One of Storybooks best features for design teams is its ability to sync a component library with UXPin using Merge technology. Merge creates a drag-and-drop design environment for assembling layouts fast. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

Why Devs use Storybook for Design Systems

These are a few reasons why Storybook is the preferred DevOps tool for managing design systems.

Developing and testing components in isolation

Storybook enables engineers to develop UI components in isolation. This development workflow is great for design systems and component-driven front-end frameworks like React–which many organizations use for their component libraries.

design system abstract

Before Storybook, engineers would use sandbox platforms like CodePen and CodeSandbox to build and test components in isolation. Storybook offers this sandbox-style development environment with an intuitive user interface for engineers and stakeholders to view, test, and approve UI elements. They can also combine components and build little prototype patterns for testing.

Quality Assurance

Developing in isolation also benefits design system quality assurance. Engineers can invite designers, product managers, and other stakeholders to test and submit feedback on new UI elements before release.

Documentation

Documentation is crucial for component libraries, but it’s often the last thing anyone wants to think about because it’s time-consuming.

file folder

Storybook’s DocsPage is a “zero-config default documentation” that automates basic doc creation. Product and engineering teams can expand this documentation to create usage and guideline information.

Single source of truth

Managing the codebase for cross-platform applications is challenging. Storybook provides a single source of truth for testing components and patterns for each platform from a centralized environment.

This centralized environment maximizes consistency, as engineers can view components and patterns side-by-side and collaborate with developers responsible for each platform–iOS, Web, Android, etc.

Accessibility

Storybook’s A11y Accessibility add-on enables engineers to automate accessibility testing. The add-on creates a new Accessibility tab for each element showing WCAG standards in three categories:

  • Violations: accessibility issues to resolve
  • Passed: standards met
  • Incomplete: A checklist of accessibility to-dos

How Devs Work With a Design System in Storybook

Storybook’s docs outline a standard five-step design system workflow:

  1. Build
  2. Document
  3. Review
  4. Test
  5. Distribute

Build

Once engineers have set up Storybook and connected to a GitHub repository, they begin developing each component and its variants. For example, a button might have several states, sizes, types, etc.

During the build process, engineers can install Storybook add-ons to automate workflows, integrate with other tools, or enhance the Storybook environment.

Document

Engineers can add comments to components during the build process to enrich the automatically generated documentation. This example from Storybook’s docs demonstrates how these comments appear in your Storybook UI.

Storybook documentation for developers and designers
Storybook's docs for design system elemenets

This documentation is crucial for the next step, Review, because it shows stakeholders how front-end developers interpret designs and what each ‘prop’ represents.

Review

The component is now staged and ready to be promoted to the design system. Engineers can invite designers, product managers, and other stakeholders to review the element to ensure it meets interactive and aesthetic expectations.

Traditionally, engineers would have to create a staging environment or meet with stakeholders to present the component. With Storybook, it’s as easy as visiting a website, making the review process more accessible. Stakeholders can log in on their own time, interact with the component, read the docs, and leave feedback.

If there are any changes, engineers may iterate steps one to three until the new components meet all stakeholder’s expectations.

Test

Jest and Playwright power Storybook’s framework-agnostic testing. When engineers commit the component, Storybook tests its code to ensure there are no programming errors, including:

  • Visual tests (visual regression tests): creates screenshots of every commit and compares them to catch UI inconsistencies.
  • Accessibility tests: runs code against WCAG standards and reports any issues.
  • Interaction tests: checks interactivity and states to ensure there are issues with links or functionality.
  • Test coverage: examines code against industry standards, including conditions, logic branches, functions, and variables.
  • Snapshot tests: identifies markup changes by comparing rendered code to the baseline.

Distribute

The final step is to update the design system package on GitHub. Once complete, it’ll automatically sync the changes to npm. Engineers can install the updated npm package to use the new component(s).

Syncing Design With Storybook Through UXPin Merge

If your design team works with UXPin Merge, these engineering changes will also be distributed to UXPin’s design editor and notify team members of the latest design system release.

uxpin merge git react storybook library

UXPin’s Version Control allows designers to change to the latest release whenever they choose and switch to earlier versions of the design system.

What is UXPin Merge?

UXPin Merge is a technology that bridges (or Merges) the gap between design and development. Organizations can sync a design system hosted in a repository to UXPin’s design editor so designers can use the same component library as engineers to build fully functioning prototypes.

Merge components are fully interactive and include React props (or Args for Storybook) defined by the design system, including colors, typography, states, sizes, etc. These props appear in UXPin’s Properties Panel so designers can adjust components to meet prototyping requirements while maintaining absolute consistency and zero drift.

Enhanced testing and stakeholder feedback

Merge prototypes look and function like the final product because they use the same components. For example, a button in Storybook will render exactly the same in UXPin, including interactivity and styling. 

Usability participants and stakeholders can interact with these UI elements and Merge prototypes like they would the final product, giving design teams accurate, actionable testing insights.

“It’s been so helpful for us to have these high-fidelity prototypes built with UXPin. We build high-fidelity prototypes much quicker, and we get immediate feedback after the session. If there’s something we can fix immediately, we make that change before the next participant and get feedback much faster than before.” Erica Rider – UX Lead EPX at PayPal, talking about how UXPin Merge enhances user testing.

Scaling component libraries with UXPin Patterns

Design systems evolve as products grow and scale. The design system team is constantly making changes and promoting new UI elements and patterns.

UXPin Patterns enables design teams to create new patterns for the design system–as one-offs or as a best new practice. Designers can combine UI elements (atoms and molecules) from the design system to create new patterns or use UXPin’s npm integration to import components from open-source libraries if the current library doesn’t support their needs.

designops efficiency arrow

Designers can save and share these patterns across the organization, so teams can continue prototyping while they wait for the DS team to follow governance procedures to develop and release the new component–following the five-step Storybook development process outlined above.

Stage four design system maturity with UXPin Merge

Iress achieved stage three design system maturity in 2017. For the next few years, the design system team searched for a design tool to take them to the next and final maturity levelStage Four – Fully Integrated:

  • Design in (no) code
  • No design drift
  • Consistent design
  • Seamless (no) handoff

Merge solves these four design system challenges by default.

  • Designers use ready-made components with styling and interactive properties–no designing from scratch. Drag and drop UI elements to design new products.
  • No code development. Engineers install a package and copy prototypes that use the exact same UI library. UXPin renders JSX for each component, so engineers copy/paste to apply styling and interactivity.
  • Drift is nonexistent when everyone uses the same component library (design and engineering teams) with the same constraints.
  • Using the same components with built-in constraints ensures ultimate consistency across design teams.
  • With Merge, there’s a seamless handoff because designers and engineers use the same single source of truth. Designers don’t have to explain UIs or provide endless documentation explaining their prototypes–they already look and function like the final product.

UXPin reduces the four stages of design system maturity to just two.

  1. Design your library using UXPin’s design editor.
  2. Convert designs to code components, add them to a repository, and sync back to UXPin using Merge. Iterate to scale.

Take your product development to the next level by Merging the two best design and engineering tools for design systems. Request access to UXPin Merge.

The post How Storybook Helps Developers With Design Systems? appeared first on Studio by UXPin.

]]>
React vs HTML – Can You Spot a Difference? https://www.uxpin.com/studio/blog/react-vs-html/ Thu, 12 Oct 2023 14:58:01 +0000 https://www.uxpin.com/studio/?p=45188 HTML is a markup language while React is a JavaScript library. Both are used in front-end development and you might have heard about them while designing websites or web apps. Without further ado, let’s see what’s the difference between HTML and React. Key takeaways: Create React app design much faster with UXPin. Bring real React

The post React vs HTML – Can You Spot a Difference? appeared first on Studio by UXPin.

]]>
React vs HTML min

HTML is a markup language while React is a JavaScript library. Both are used in front-end development and you might have heard about them while designing websites or web apps. Without further ado, let’s see what’s the difference between HTML and React.

Key takeaways:

  • HTML is a markup language, while React is a JS library.
  • React is component-based, while HTML doesn’t support such a structure by default.
  • HTML can’t manage interactivity or states on its own; React can manage states.
  • HTML websites need full refresh, while React can update only elements that change.
  • React enables one-way data binding, while HTML doesn’t have any data binding by default.
  • HTML typically structures content for static websites. React builds dynamic app UIs.

Create React app design much faster with UXPin. Bring real React components to design and move them around to build an app layout that is 100% interactive. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

What is HTML?

HTML (HyperText Markup Language) is the fundamental programming language structure of the web. Every website you visit, whether or not it uses a front-end framework, comprises HTML, CSS, and Javascript.

HTML uses various tags to define elements such as headings, paragraphs, links, and media objects, allowing browsers to interpret and correctly interpret and display the content.

A basic understanding of HTML is vital for anyone involved in web design or development, as it’s the starting point for all websites and many web applications. 

What is React?

React (ReactJS) is an open-source JavaScript library developed by Facebook. Developers initially used React primarily for single-page applications, but it has evolved to support multi-page websites with SEO features.

Unlike HTML, which structures content, React allows developers to create reusable components. Each component in React has its own logic and controls its rendering. This rendering is crucial because it allows a single element to change while the rest of the page remains static and doesn’t have to reload.

For example, when you like a post on social media, only the thumbs-up or heart icons change. If the same page used HTML, CSS, and Javascript, the entire page would have to reload whenever you liked or interacted with content.

React also has many workflow benefits over traditional HTML, CSS, and Javascript code. The ability to break down complex UI into simpler components makes React highly popular among developers for its efficiency and flexibility.

Key Differences Between HTML and React

user bad good review satisfaction opinion

While you can build the same website or web application using either React or HTML, they often work together, with HTML structuring the content and React adding interactivity and a component-based architecture.

Therefore, it’s fair to say that HTML vs. React is a redundant comparison because these are two different front-end technologies with different applications which mostly complement each other.

This comparison examines what would happen if you built a website or web application using HTML or React.

  • Functionality: HTML structures content on the web, while React, a JavaScript library, creates dynamic and interactive user interfaces.
  • Component-based: React employs a component-based architecture. Each component represents a part of the UI and can be reused throughout the application, enhancing development efficiency and consistency. In contrast, HTML doesn’t inherently support a component structure.
  • Interactivity: HTML, on its own, can’t create dynamic content or manage application state. It needs JavaScript or similar languages to add interactivity to a webpage. As a JavaScript library, React creates interactive UIs and effectively manages the application state.
  • Rendering: Traditional HTML-based applications often require a full page refresh to implement view changes. React uses a Virtual DOM (Document Object Model) to update only the components that change, eliminating the need for a full page refresh and offering more efficient, smoother updates.
  • Data Binding: HTML lacks a built-in system for data binding. Changes in the UI, like user input, don’t automatically update the application data. React enables one-way data binding, allowing efficient updates to UI components without affecting underlying data.
  • Use Cases: HTML typically structures content for static websites. React builds dynamic and interactive UIs, making it ideal for complex single-page applications (SPAs) and mobile applications with React Native.

Is it Possible to Spot the Difference Between HTML and React?

It’s difficult to spot the difference between a React vs. an HTML website or web application. No matter what framework (Angular, Vue, etc.) you use, the browser must render HTML, CSS, and Javascript.

testing user behavior prototype interaction

Even websites like BuiltWith cannot be certain about a digital product’s tech stack without the developers explicitly sharing this information or publicizing the project’s repository (i.e., a public GitHub repo).

Deeper Dive into HTML

How HTML works

When a user requests a webpage, the browser fetches the HTML file from a server and interprets it to display the page’s structure and content. HTML uses a set of predefined HTML tags to define content types, such as <p> for paragraphs, <h1> to <h6> for headings, <a> for links, <div>, and <img> for images, to name a few.

HTML structure

HTML uses a tree-like structure, with the <html> tag as the root with the <head> and <body> tags acting as the two main branches.

The <head> tag houses metadata, stylesheets, and scripts for the page’s styling and functionality. The <body> tag contains all the visible content, such as text, images, and links. Within these main branches, other tags, known as child elements, define and structure the content.

Page loading

When a page loads, the browser reads the HTML from top to bottom. It interprets the tags to construct the Document Object Model (DOM), a representation of the page structure.

The browser then displays the content according to the DOM. If the HTML includes links to CSS stylesheets or JavaScript files, the browser fetches and applies these, which can affect how the content looks (CSS) or behaves (JavaScript).

HTML’s structure makes it easy for browsers to interpret and for developers to understand and manipulate. It’s a fundamental building block of the web, providing the foundation upon which styles (CSS) and interactivity (JavaScript or libraries/frameworks like React) are added.

Deeper Dive into React

How React works

React creates a virtual representation of the DOM (the Virtual DOM), which it uses to improve performance.

When a user interacts with the application, instead of updating the entire DOM (which can be slow), React only updates the parts of the Virtual DOM where the state has changed. It then reconciles the Virtual DOM with the actual DOM in the most efficient way possible, updating only the changed parts in the actual DOM. This process is known as “diffing.”

React structure

React organizes code into components, reusable pieces of code that return JSX. These components can be as simple as a button or as complex as an entire page template. 

Components can maintain their own state (data that can change over time), receive data from parent components via props, and pass data to child components. This data flow establishes a clear and predictable coding structure.

Page loading

When a React application loads, it initializes the components and renders the JSX to the actual DOM using the ReactDOM library. During this process, it also sets up event listeners for user interactions.

When a user interacts with the application (e.g., clicks a button), this may trigger state changes in one or more components. React then updates the Virtual DOM to reflect these state changes and efficiently updates the actual DOM to match.

React’s structure and approach to DOM manipulation make it excellent for building complex, interactive web applications that must be fast and responsive. While the learning curve can be steeper than plain HTML, the performance and code organization benefits are substantial.

Why Developers Choose HTML vs. React

testing user behavior pick choose

Why do developers choose HTML?

Even though HTML may seem more straightforward and less powerful than React, it still has a crucial role in web development. Here’s why:

  • Fundamental and universal: HTML is the foundational language of the web. Every browser can interpret HTML, making it universally recognized and supported.
  • Perfect for static content: HTML is a straightforward and efficient choice when building a website with mostly static content.
  • Easy to learn: HTML is one of the easiest languages for beginners. It’s an excellent starting point for anyone interested in web development.
  • SEO friendly: Search engines can easily crawl and understand HTML, making it favorable for SEO.

For example, HTML is perfect for a business that wants a simple website to showcase its products and services. It’s also an excellent option for beginners learning about web development.

Why do developers choose React?

React offers several features that make it a preferred choice for many developers:

  • Component-based architecture: React’s component-based approach promotes reusability and consistency across the application, making development more efficient.
  • Efficient updates: React uses a Virtual DOM to only update parts of the page that need to change, making it highly performant, especially for complex applications.
  • Advanced JavaScript: React utilizes advanced JavaScript features and concepts, giving React developers more power and flexibility.
  • Strong community and ecosystem: React has a large and active community, which means plenty of resources for learning and troubleshooting, as well as a rich ecosystem of libraries and tools.

For example, Facebook, Instagram, and WhatsApp use React for their complex, highly interactive UIs. Startups and tech companies also favor React for its efficiency, scalability, and productivity. Organizations also use React to build design systems due to the component-based nature of the front-end library.

HTML or React: which one should you choose?

Choosing between HTML and React depends on your project’s needs:

  • For static websites: HTML is often the preferred choice for building a simple, mostly static website.
  • For dynamic, complex applications: React is a far better option to HTML for building complex, highly interactive web applications.

HTML vs. React Impact on User Experience

designops picking tools care

Performance

HTML-based websites generally load quickly due to their static nature. However, they might be slower to navigate if each user interaction requires a new page to load.

Conversely, React’s ability to update only the components that change leads to smoother and faster interactions, providing a more fluid experience for users, especially in complex applications.

Interactivity

HTML alone isn’t capable of creating dynamic, interactive user experiences. It requires JavaScript or similar languages to add interactive elements. 

Being a JavaScript library, React excels at building dynamic and interactive UIs that can respond instantaneously to user input. This interactivity can lead to a more engaging, app-like user experience.

Consistency

With React’s component-based architecture, developers can ensure consistent implementation of UI elements across an application. 

This uniformity promotes a consistent look and feel, which is critical to a good user experience. With HTML, this would require careful manual coding to ensure consistency.

Progressive Web Apps (PWAs)

Developers often use React for building Progressive Web Apps (PWAs). PWAs can offer app-like experiences on the web, including offline functionality, which can significantly enhance user experience. While you can develop PWAs using HTML, CSS, and JavaScript, the process is more complex and time-consuming.

SEO and initial load time

HTML is straightforward for search engines to crawl and index, which can lead to better SEO. Also, an HTML page can start rendering immediately after the initial HTML file is loaded. 

In contrast, a React application generally needs to load the entire JavaScript bundle before it can start rendering. This rendering can lead to longer initial load times, impacting the user experience and SEO. However, techniques like Server-Side Rendering (SSR) and Next.js can help address these issues in React applications.

Building Interactive Prototypes in UXPin With Merge

UXPin’s Merge technology enables product teams to import UI components from a repository to build fully functioning interactive prototypes in UXPin’s design canvas. 

Design teams use the same UI elements for prototyping as engineers use to develop the final product, creating a single source of truth between design and development.

With Merge, designers don’t have to learn React to create React applications. They simply drag and drop components to build interactive prototypes. These advanced prototypes enhance testing, giving design teams meaningful, actionable results to iterate and refine.

Ready to join the code-to-design revolution? Visit our Merge page for more details and how to request access.

The post React vs HTML – Can You Spot a Difference? appeared first on Studio by UXPin.

]]>
A Guide to Creating Your First React App https://www.uxpin.com/studio/blog/a-guide-to-creating-you-first-react-app/ Thu, 12 Oct 2023 14:12:45 +0000 https://www.uxpin.com/studio/?p=23310 Most developers can create their first React apps rather quickly because they already have experience using JavaScript. Let’s see how the two are related, what you need to build your first React app, and how to practice React. Key takeaways: Speed up development of your first React app with UXPin’s Merge technology. Bring React components

The post A Guide to Creating Your First React App appeared first on Studio by UXPin.

]]>
A Guide to Creating Your First React App 1

Most developers can create their first React apps rather quickly because they already have experience using JavaScript. Let’s see how the two are related, what you need to build your first React app, and how to practice React.

Key takeaways:

  • Developers who know CSS and JS have easier time building their first app.
  • React is super popular and there are many resources that will help you build your first React app.
  • You can use UXPin’s Merge technology to create and test your React app prototypes.

Speed up development of your first React app with UXPin’s Merge technology. Bring React components to UXPin’s design editor and build fully functional prototypes that can be quickly turned into the real pp. Request access to UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

CSS and JS Give You Skills to Build First React App

Assuming that you know CSS and JS, you already have many of the skills that you need to understand a React app guide and start building your first app. If you feel confused at first, keep at it for a few days. Also, take time to read Thinking in React. Many developers say that it helps that the five-step tutorial helps immensely.

Top Reasons to Use React to Build Your First App

If you’re a beginning developer who enjoys using JavaScript to build apps, you may wonder why other people in your field get excited about React. You will discover the reason once you reach a point in your career where you need to build applications that perform complex functions. At some point, JavaScript becomes a huge pain because it doesn’t cater to the needs of today’s app developers.

You should build React app because it:

02 4
  • Offers reuseable components that will save you time in the long run.
  • Avoids the pitfalls of DOM.
  • Has a robust community of developers who freely contribute tools and advice.
  • Is rapidly becoming the industry standard.

Learning to build with React also gives you access to numerous design patterns. Some recommended patterns that you should learn from the beginning include:

  • Stateless components
  • Conditional rendering
  • Render props
  • Controlled components
  • React hooks

You can gain a more in-depth understanding of React design patterns by reading The Best React Design Patterns You Should Know About.

What are the Differences between React and JavaScript?

01 4

Despite the similarities between React and JS, you will have to overcome some hurdles before you can use React proficiently. Some of the differences that stand out the most include:

Difference #1: How you build a UI

In JavaScript, you create the interface in your HTML document, which reaches out to a server for your code. With React, you define the UI in the browser. At first, it feels unnatural to add such a short bit of HTML. Realistically, though, you get the same result. The difference is that React works within the browser, and JS needs help from a server.

Difference #2: How you divide functionally across apps

The ways developers use JavaScript have gotten so complex that JS code often looks unbearably complex. As a result, you end up keeping a lot of files open while working on the same app. React makes projects more manageable by splitting features into components. Each component holds all of the code that it needs to perform. As a result, you get code that looks more like a short list than a cluttered library.

Difference #3: How the app manages user data

When JS, data submitted by the user gets stored in a document object model (DOM) that the browser handles. For example, when you enter your name in a text field, the information goes to the DOM before transferring it to a server. React stores user data as variables. From the user’s perspective, nothing changes much. On the backend, data becomes much easier to manage.

What Else Do You Need to Build Your First React App?

If you have experience with JavaScript, CSS, and HTML, you’re already very close to using React. Before you can build anything with React, though, you need to install:

  • Node.js: an open-source runtime environment that allows developers to run JavaScript code on the server-side.
  • PowerShell: a scripting and automation framework that allows users to manage and automate various tasks in Windows environments.
  • npm: a package manager that simplifies the process of managing and distributing reusable code modules and libraries.
  • Create React App: it isn’t the only coding environment available, but it’s probably the best.

You might not need a toolchain for your first React project. However, you might want to check out options like:

All of these development tool kits will come in handy. You don’t have to use them, but you should. They will make your life a lot easier.

Practice Before Building Your First React App

No matter how many apps you have built with JavaScript, you will need more than a React app guide to start making applications in React. W3Schools has a primer that will teach you how to build a simple application.

You can gain more experience by:

Create and test your React app prototypes in UXPin

UXPin makes it easy for you to create and test React app prototypes. Check out Authoring and Managing JSX Presets to see how easy it is to test your code in UXPin. You just have to drop your components into the UXPin Editor canvas to determine whether they work as intended.

With UXPin Merge you can go even one step further and build whole designs using React as it lets you import and keep in sync coded React.js components from Git repositories to the UXPin Editor.

In short: whatever you can code in React, you can show in your prototype. Also, if you work closely with a design department, it’s extremely beneficial as the handoff process is shortened and friction in the communication process is gone.

test react app in UXPin

No matter how much app development experience you have, UXPin can help. Use the cloud-based tool’s collaboration feature to share your ideas with others. They can view your projects and leave feedback without creating their own UXPin accounts. As long as you give them the right link, they will have access to your prototypes.

You can also use UXPin to explore ideas before committing anything to code. Built-in libraries give you quick, easy ways to test features. If you like the way they work, you can build your own versions with tweaks that suit your product.

Design with live coded components that aren’t just flat symbols but are already production-ready and interactive. Request access to UXPin Merge.

The post A Guide to Creating Your First React App appeared first on Studio by UXPin.

]]>
What is Design-Driven Development? https://www.uxpin.com/studio/blog/design-driven-development/ Wed, 11 Oct 2023 13:57:26 +0000 https://www.uxpin.com/studio/?p=50560 Prioritizing user experience and functionality has reshaped how we approach software creation, leading to the rise of design-driven development (DDD). This approach isn’t about aesthetics–it’s about understanding, empathizing, and delivering solutions that resonate with end users. Key takeaways: UXPin’s Merge technology bridges the design-development gap, enhancing collaboration and facilitating realistic, user-centric prototyping. Deliver design-driven products

The post What is Design-Driven Development? appeared first on Studio by UXPin.

]]>
design driven development

Prioritizing user experience and functionality has reshaped how we approach software creation, leading to the rise of design-driven development (DDD). This approach isn’t about aesthetics–it’s about understanding, empathizing, and delivering solutions that resonate with end users.

Key takeaways:

  • Design-driven development prioritizes user experience, transforming design from an afterthought to a guiding force in product creation.
  • A DDD approach ensures products resonate with end-users, reducing revisions and accelerating time-to-market.
  • Product design and functionality address real-world user needs rather than assumed wants.
  • Challenges in DDD arise from balancing aesthetics with utility, managing designer-developer handoffs, and navigating organizational silos.

UXPin’s Merge technology bridges the design-development gap, enhancing collaboration and facilitating realistic, user-centric prototyping. Deliver design-driven products that resonate with your users with UXPin’s Merge technology. Discover UXPin Merge.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

What is Design-Driven Development?

Design-driven development (DDD) places design at the forefront of product creation. Rather than treating design as a mere aesthetic afterthought, DDD emphasizes its pivotal role in dictating the direction and functionality of software.

The industry’s shift from the rigid Waterfall model to the adaptive Agile project management framework highlighted the need for rapid iterations and user-centric solutions. DDD harnesses the power of design to guide these iterations, ensuring products function and resonate with end users.

Understanding DDD requires recognizing its impact on the software development lifecycle. Developers receive a clear roadmap from design teams early on. It informs new features, architecture, and even the code itself. The result? Products that your target audience loves, fewer revisions, quicker time to market, and a more streamlined development process.

What is an Example of Design-Driven Development?

code developer design 3

Consider the rise of a fictional startup, “FitStride,” aiming to revolutionize fitness tracking for urban walkers.

The traditional approach might begin with developers creating an algorithm to track steps and then building a basic user interface around this. The problem with this approach is that it makes many assumptions about the end product and its features–which FitStride may end up undoing or redesigning.  

FitStride’s team opts for a design-driven development approach to understand users’ needs and design appropriate solutions.

They start with user research. Urban walkers express frustrations over apps that don’t distinguish between leisurely strolls and brisk commutes. With this insight, UX designers craft an interface that lets users tag walking type and mood. They also include a feature suggesting optimal routes based on the user’s walking pace and intended mood, like ‘relaxed’ or ‘hurried.’

With a design in hand, developers now have a clear blueprint. They create an algorithm to differentiate between walking types and another to suggest routes. They ensure smooth integration of these functions with the interface.

Upon launch, FitStride garnered praise for its intuitive design and unique features, affirming the efficacy of a design-driven approach.

While this is a short fictional example, it demonstrates how the product development team used UX research and design insights to fulfill an actual human need.

How Does Design-Driven Development Work?

image 1

Understanding Design-Driven Development requires a dive into its step-by-step procedure. Each phase is instrumental in ensuring the user stays at the center of the development cycle. Here’s how it unfolds:

Step 1: User Research

The cornerstone of DDD is understanding the user primarily through:

  • Surveys and Interviews: Gather essential insights by engaging users in direct conversations (in-person or remote) and questionnaires. It’s not about asking what they want but understanding their pain points, needs, and aspirations. This information serves as raw data for decision-making.
  • User Personas: Synthesize data into representative user profiles after collecting it. These personas aren’t merely fictional characters but are informed by real feedback. Personas help teams visualize who they’re designing for, ensuring a clear, user-focused direction.
  • Journey Maps: Designers use personas to map user journeys. Mapping every user interaction allows you to pinpoint areas of friction and moments of delight. This exercise offers a holistic view of the user experience.

Step 2: Requirement Gathering

Clarity is crucial. This phase narrows the broad insights collected during the research phase, sorts, and prioritizes to guide next steps and design decisions.

  • Collaboration Between Stakeholders: A product’s success depends on aligning everyone’s vision. Regular touchpoints between developers, designers, and business stakeholders are imperative to ensure everyone is on the same page regarding user needs and business objectives.
  • Creating a Feature List: List potential features, always rooted in user needs. The aim isn’t to add as many features as possible but to select those that genuinely enhance the user experience.

Step 3: Design and ideation phase

  • Sketching and ideation: A cross-functional team collaborates to ideate on solutions. Input from team members with diverse skill sets and organizational goals ensures designers develop designs that serve users and the company.
  • Creating a design: Designers switch to a design tool to create wireframes and mockups. Wireframes decide navigation and architecture, while mockups refine UI design elements like buttons, menus, but also colors and fonts.

Step 4: Prototyping and user testing designs

  • Tools and Platforms for Prototyping: Leveraging the right prototyping tool is vital for accurate user feedback. UXPin’s Merge technology enables designers to import React components into the design editor to build interactive prototypes that look and feel like the end product.
  • Gathering User Feedback: Using interactive prototypes, engage users to interact with the design. Their feedback reveals usability issues, business opportunities, and areas for improvement.

Step 5: Design handoff and development

  • Handoff Between Designers and Developers: Effective communication ensures the developers understand the design’s intent so that the final product aligns with user needs.
  • Design Systems and Component Libraries: Establishing a common design system ensures uniformity across the product, enhancing usability.

Step 6: Iterative feedback loop

Step 7: Launch and iterate

The journey doesn’t end at launch. Product teams must evaluate the design’s impact on the end product and real-world experience.

  • Release Strategies: Whether you opt for a phased rollout or a complete release, the strategy depends on user feedback and business goals.
  • Continuous Feedback and Iterative Development: Post-launch, the product evolves. Maintaining a feedback loop ensures the product continually aligns with user needs and market demands, refining and improving with every iteration.

What are Some Design-Driven Development Challenges?

image 2

Embracing design-driven development promises user-centric products, but the journey isn’t without challenges. 

Striking a balance between form and function

  • Challenge: Aesthetics matter, but an overly elaborate design can overshadow functionality, leaving users with a beautiful product that doesn’t serve their needs effectively.
  • Solution: Prioritize functionality as the foundation. Set a functional foundational layer and design elements that enhance user experience without compromising usability. Regularly testing designs with users can also highlight when form hinders function.

Ensuring seamless designer-developer handoff

  • Challenge: Miscommunication between designers and developers can lead to a product deviating from its intended design, wasting time and resources.
  • Solution: Implement regular touchpoints and reviews between designers and developers throughout the development cycle. UXPin’s Merge technology is an excellent tool for bridging the gap between design and development for smoother, seamless design handoffs.

Avoiding scope creep while meeting user needs

  • Challenge: As projects progress, it’s tempting to add features or make changes that weren’t initially scoped, potentially jeopardizing project timelines and budgets.
  • Solution: Maintain a laser focus on the defined user personas and their core needs. While feedback is invaluable, weigh each proposed change against its impact on the primary user goals. If a suggested feature doesn’t align with these goals, consider tabling it for future iterations or conducting further research.

Overcoming organizational silos

  • Challenge: In many organizations, departments work in isolation, creating disjointed processes that can stifle the collaborative nature of DDD.
  • Solution: Foster a culture of cross-functional collaboration. Regular workshops and joint sessions can encourage departments to understand and appreciate each other’s roles. Shared objectives and KPIs can also ensure everyone works towards a unified goal.

How to Enhance Your Design-Driven Development Process With UXPin Merge

Robust designer/developer and cross-functional collaboration is vital for a successful design-driven development strategy. Traditional image-based tools open rather than close this gap with a divide between static designs and interactive code products.

Bridging the design-development divide

In traditional DDD workflows, designers craft mockups that developers translate into code–a process prone to discrepancies. UXPin’s Merge technology switches this workflow by creating a code-to-design workflow where designers import code components into the design process, eliminating static image-based tools and successfully bridging the gap between design and development.

Facilitating rapid, informed iteration

Using Merge’s code components means designers can craft prototypes that accurately resemble the final product. This authenticity ensures accurate user testing and meaningful feedback based on realistic interactions and dynamic user experiences that are impossible to create with traditional design tools.

Ensuring cohesive stakeholder communication

UXPin Merge doesn’t just bridge the gap between designers and developers; it also offers a unified platform where stakeholders can review and comment. Product teams reduce miscommunication and overlooked suggestions by centralizing feedback using UXPin’s Comments and Slack integration.

Create a design-driven development workflow rooted in reality with UXPin’s Merge technology. Discover UXPin Merge.

The post What is Design-Driven Development? appeared first on Studio by UXPin.

]]>
React for Designers – A Designer’s Guide to React https://www.uxpin.com/studio/blog/react-for-designers/ Fri, 06 Oct 2023 08:29:50 +0000 https://www.uxpin.com/studio/?p=37753 Learning React for designers–is it necessary? Can you build code prototypes without learning to code? These are common questions among product development teams and designers. Most designers don’t want to learn to code. Learning React or even the basics of HTML, CSS, and Javascript takes a lot of time. A designer’s time is better spent

The post React for Designers – A Designer’s Guide to React appeared first on Studio by UXPin.

]]>
React for designers

Learning React for designers–is it necessary? Can you build code prototypes without learning to code? These are common questions among product development teams and designers.

Most designers don’t want to learn to code. Learning React or even the basics of HTML, CSS, and Javascript takes a lot of time. A designer’s time is better spent investing in user experience and solving design challenges.

It’s a bit of a catch-22 because to improve usability testing and user experiences, you need high-quality prototypes that look and feel like the final product–something image-based tools don’t facilitate. For most designers, better prototyping capabilities drive the motivation to learn React.

What if you could get all the benefits of React for prototyping and testing without relying on engineers or writing code yourself? A solution already exists with UXPin Merge!

Key takeaways:

  • React is a library that helps devs build interfaces with reusable components which makes apps scalable and easy to maintain.
  • Designers can learn React to better understand development; there’s even a movement “React for designers” that advocate for this.
  • Designers don’t need to learn React if they use UXPin Merge–a powerful design technology that lets them create prototypes with coded React components just as if they would use pixel-based UI components.

UXPin Merge allows you to sync UI coded components from a Git repository, npm or Storybook into UXPin’s design editor so designers can use the same UI elements (React, Vue, Angular, etc.) that engineers use for development. Learn how to request access to this revolutionary technology. Visit our Merge page.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

What is React?

React is an open-source front-end Javascript library developed by Facebook. According to an August 2022 survey, React is still the most widely-used front-end framework–a position React has held for several years.

React’s component-based workflow enables engineers to create reusable components they can call anywhere in a user interface by writing a single line of code. This component-based approach makes React an excellent framework for component libraries and design systems.

What is React for Designers?

design and development collaboration process product communication

React for designers is a movement to educate designers about React and other front-end frameworks. The idea is that learning React will empower designers to build interactive prototypes or, at the very least, better understand technical constraints and the development process.

Should Designers Learn React?

Designers don’t need to learn React, but if they take an introductory course, they can gain many attractive benefits.

Here are four common reasons why designers learn React:

#1: Career development: programming expertise is advantageous if you plan to climb the corporate ladder–even within Design. The higher you climb, the more important it is to learn the technical aspects of product development for communication, collaboration, and decision-making.

#2: Higher paying jobs: a natural transition for a UX designer who codes is to a front-end developer or UX engineer. According to Glassdoor, the average UX designer makes under $100k in the United States, while the average UX engineer earns over $120k. On average, engineers earn more than designers. Design and development expertise increases your value to an organization and earning potential.

#3: Skills development: understanding the engineering aspects of digital product development can improve cross-functional collaboration. Learning React can also help designers understand technical impacts on user experience and how to solve these problems during the design process.

#4: Better prototyping: unfortunately, image-based design tools limit what designers can test during the design process. To improve prototyping capabilities, designers must rely on engineers to build code-based prototypes–a time-consuming and expensive process. Designers who code can make these prototypes themselves to enhance usability testing.

UXPin Merge – The Fastest Way to Design with React

UXPin Merge allows designers to import React (and other frameworks) component libraries into UXPin to build fully functioning React prototypes–without writing a single line of code!

logo uxpin merge 1

Designers use these React components in UXPin like any other design tool, dragging and dropping UI components to build user interfaces. The only difference is that Merge components are fully interactive and include colors, spacing, typography, sizing, and other properties defined by the component library or design system.

What do React components look like in UXPin?

This text field from MUI’s component library demonstrates how designers see and edit React components in UXPin. The text field is fully functional and ready to prototype out of the box.

build React prototype in UXPin Merge

The properties displayed in UXPin’s Properties Panel relate to React props from the component library’s repository. Designers can switch modes and view the component’s React props in JSX. 

preview React props in UXPin

This JSX also makes design handoffs much easier because engineers simply copy/paste the code for front-end development.

Code-based vs. image-based design tools

Image-based design tools use plugins and extensions to bring React to design, but the generated code is rarely usable for engineers. Why? Because these plugins scan UIs and “guess” what the code should be. There are many ways to develop React components, so this code is usually redundant, meaning it’s faster for the engineers to code from scratch than restructure plugin-generated code.

Read more: Design to Code or Code to Design?

UXPin is a code-based technology, meaning it renders code as it’s written in the repository instead of vector graphics. Engineers already have exact versions of the components in their repo, so it’s a matter of adding the component library as a project dependency and copying the JSX from UXPin to develop the final product.

UXPin Merge technology gives designers all the benefits of prototyping a React app or website without learning React!

Examples of Companies Prototyping with React Components

From startups to agencies, and enterprise design teams, here are examples of companies prototyping with React components during the design process.

PayPal

PayPal’s internal product development team switched to UXPin Merge in 2019. Erica Rider, UX Lead EPX at PayPal, discovered Merge while looking for tools and systems to scale her 5-person UX team, which serviced 60+ products and supported 1,000+ engineers!

PayPal uses a React Fluent UI design system with custom components, patterns, and templates. Erica and her team have built the library to minimize design decisions, so product teams only focus on creating products to solve user problems.

The system works so well that PayPal’s product teams build one-page prototypes 8X faster than experienced UX designers using image-based tools could previously.

“Before, with our limited resources and designers, a one-page product would take two or three months just to design mockups. Now product teams can design and deliver a product within the same time frame.”Erica Rider – UX Lead EPX at PayPal.

TeamPassword

TeamPassword uses UXPin Merge slightly differently. With no UX team, TeamPassword’s engineers must do all the prototyping and testing. The two-person team used to do this with code, but it took a lot of time to test, edit, and iterate.

TeamPassword’s engineering team now uses UXPin Merge for developing and testing new products using a custom MUI component library. With production-ready React code, TeamPassword’s engineering team saves significant resources by not writing front-end code to deliver new products and UI updates.

dotSource

German-based digital product consulting and development agency dotSource uses UXPin’s Storybook Integration to import libraries for multiple frameworks, including React, Vue, Angular, Ember, etc. This flexibility means dotSource’s design team can use UXPin Merge with almost every client and product the company collaborates on.

One of the most significant benefits of using UXPin Merge is that design system properties are “baked in” to every component. As an agency collaborating with various organizations and their internal teams, these baked-in React properties create constraints that guarantee ultimate UI consistency.

Using code components in the design process also makes cross-functional collaboration easier for dotSource’s teams while facilitating smooth, effortless design handoffs–which are usually more challenging when working with external contractors.

Iress

Financial services software developer Iress uses UXPin Merge to create a single source of truth for the organization’s design system. With designers and engineers using the same component library, there’s better cross-functional alignment and understanding of technical constraints.

“UXPin Merge will help us create more interactive and realistic prototypes. People can tab around or see the same interactions – hover styles, animations, etc. – as they would expect in a real app. We can do more insightful user testing and discover usability issues much earlier in the process.” Nick Elliott – Design System Product Owner and Regional Head of Product Design at Iress.

Like PayPal, Nick sees the benefit of UXPin Merge for non-designers “It will give non-designers access to a tool, whereby they can also experiment and have exposure to the same design considerations.”

Try React Prototyping Tool

There are three ways designers can get started designing with React components using UXPin Merge:

  • npm Integration: import open-source React component libraries available as npm packages into UXPin using the Merge Component Manager (the quickest and easiest way to get started as a designer).
  • Git Integration: sync a React repository directly to UXPin. Requires engineering collaboration to set up.
  • Storybook Integration: supports more front-end frameworks via Storybook, including Vue, Angular, React, Ember, and more.

Designers can also take advantage of UXPin’s MUI integration which comes standard with all Merge plans.

Ready to get started? Visit our Merge page for more details and how to request access.

The post React for Designers – A Designer’s Guide to React appeared first on Studio by UXPin.

]]>
What Are Design Tokens? https://www.uxpin.com/studio/blog/what-are-design-tokens/ Wed, 04 Oct 2023 14:06:41 +0000 https://www.uxpin.com/studio/?p=36356 The design system revolution of the last decade has brought with it all sorts of tools and strategies to enhance product development workflows. Design tokens are one of those tools many design systems, including Google’s Material Design 3 and MUI, have adopted to make UI elements easier to implement, manage, and update. Import your design

The post What Are Design Tokens? appeared first on Studio by UXPin.

]]>
design tokens - what are they?

The design system revolution of the last decade has brought with it all sorts of tools and strategies to enhance product development workflows.

Design tokens are one of those tools many design systems, including Google’s Material Design 3 and MUI, have adopted to make UI elements easier to implement, manage, and update.

Import your design system’s components or an open-source component library with UXPin Merge to create a single source of truth across your organization. Learn more about Merge and how to request access to this revolutionary design technology.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

What is a Design Token?

Design tokens contain UI data, like colors, fonts, spacing, animations, assets, etc., for styling and building cross-platform user interfaces. Instead of hard-coding static values for every operating system, a design token contains multiple formats, allowing front-end developers to use the same variable, whether they’re building an iOS or Android, and even web application.

One of the challenges with cross-platform product development is that operating systems use different style properties and formats. For example, UXPin’s website uses yellow for CTAs. The hex code for this yellow is #FCC821, which you can represent in several ways:

  • RGB (CSS): rgb(252, 200, 33)
  • RGBA: rgba(252, 200, 33, 1)
  • Octal (Android/Flutter): 77144041

Instead of using these static properties, designers and engineers reference a token like “uxpin.cta.primary,” representing all four color codes. The color will always be the same regardless of the platform or programming language.

Organizations use these design tokens for many style properties, including color palette, size, spacing, assets, and drop shadows, to name a few.

Where did Design Tokens Come From?

It is said that design tokens were pioneered by Salesforce. In a 2014 article published in Salesforce Designer, Salesforce UX VP Sönke Rohde described how the company uses design tokens to apply the same design principles across multiple platforms and software.

screens prototyping

“At Salesforce, we face this very challenge, and we came up with an agnostic solution: we define our design in a single location and use a system to cascade it down to all platforms. We call it our Single Source of Truth. It’s basically a set of JSON files which contain name-value pairs describing our design tokens.” excerpt from Living Design System by Sönke Rohde.

Instead of using static style properties, engineers reference the design token, which pulls the correct value, depending on the platform, from a JSON file. To automate this process, Salesforce developed Theo“an abstraction for transforming and formatting design tokens.”

Are Design Tokens Right for You?

Google’s Material Design 3 documentation offers a list of scenarios where design tokens are most helpful:

  • You use a design system for more than one platform or product
  • You want an easy way to maintain and update your product’s styles
  • You plan to update your product design or build new products and features

Material Design also lists two instances where design tokens might be “less helpful:”

  • You don’t plan to change your product in the next few years
  • Your product does not have a design system

Benefits of Using Design Tokens

We’ve identified three key benefits to using design tokens.

1. Having a Single Source of Truth

Design tokens are most beneficial for creating a single source of truth–which is what drove Salesforce to start using them. Everyone must speak the same design language when multiple product teams, engineers, and UX designers work on the same product.

Design tokens allow teams to speak the same language, no matter their role, platform, programming language, or responsibilities.

2. Maintaining UI Consistency

UI consistency is a significant challenge when designing at scale. It’s not uncommon for designers to accidentally use slightly different sizing, brand colors, and spacing for a single product! These inconsistencies cause usability issues, increasing engineering and UX debt with every release.

code design developer

Design tokens eliminate these inconsistencies so that every designer uses the same styles and properties–another single source of truth benefit!

3. Getting Flexibility to Scale

Design tokens give products and design systems flexibility to make changes and scale. If teams need to add platform-specific properties, they simply update the design token.

For example, Android uses octal color codes instead of HEX or RGB. To adapt a design system to accommodate Android, the DS team can add octal codes to each design token to maintain a single source of truth.

scaling process up 1

These tokens allow engineers to deliver new projects significantly faster with fewer errors or inconsistencies.

This flexibility is also helpful when making changes. For example, if a product changes its typeface from Montserrat to Roboto, the team only has to update the typography token to implement a product-wide change.

How to Define a Design Token Structure

While there are no rules for defining your design token structure, this example from Amazon’s Style Dictionary makes the most sense. Many organizations use a similar format for their design tokens.

Amazon’s Style Dictionary uses a hierarchical design token structure:

  1. Category (color, time, line-height, size, asset, content, etc.)
  2. Type
  3. Item
  4. Sub-Item
  5. State

If we wanted to create a design token for a primary active button using this structure, it might look like color_background_button_primary_active or perhaps shortened color-bg-btn-primary-active. This token will contain every type of color code necessary for cross-platform implementation.

The key to a design token structure is consistency. It must use a predictable naming convention so users can easily find tokens and scale the system.

Architecting Tokens with Options and Decisions

UX expert and founder of eightshapes, Nathan Curtis, wrote an excellent article on architecting tokens. Nathan says the first step is to segment your design tokens into Options (or choices) and Decisions.

  • Options: Creates the base token values. Tokens define what Style Dictionary describes above as categories–color, time, asset, content, etc.
  • Decisions: Decisions use your Options to create properties for components. For example, interactive color, background color, text color, etc.

The benefit of this system is that if you want to change your white to a different shade, replacing the HEX code under the color Option will automatically sync to every design token and associated UI element. 

Nathan’s methodology also makes it easy to scale because you simply use your Options to create more Decisions. You can read Nathan’s full article for detailed instructions on architecting tokens.

How Design Tokens Work in Practice

In an informative article, Design Tokens for Dummies, Louis Chenais outlines a typical design change workflow with vs. without design tokens.

idea 1

The Traditional Workflow–Without Design Tokens

  1. Designer updates a style in a design tool
  2. Designer documents the changes for the design handoff
  3. Engineer updates the component’s properties (CSS, LESS, SASS, etc.)
  4. The design team confirms the changes during quality assurance (QA)

There are several problems with this workflow:

  • It creates more work and attention to detail during the design handoff.
  • It’s prone to errors and miscommunication.
  • Creates more tickets, thus increasing technical debt.
  • It costs unnecessary time and money making the changes and fixing any corresponding errors.

The Design Token Way

  1. Designer updates a syle in a design tool.
  2. A design tokens generator updates a centralized repository creating platform-specific files (JSON/YAML).
  3. Engineers pull the new repo, add any new tokens, and automatically update the project’s styles.

Using design tokens reduces documentation for design handoffs and saves programming time for engineers. This automated system significantly reduces human error, streamlining the development and QA process.

A Single Source of Truth With UXPin Merge

As digital products get more complex, designers and engineers must find solutions to integrate workflows–a problem UXPin has solved with our revolutionary Merge technology.

Merge allows you to import a component library from a repository to UXPin’s design editor so designers can use the same UI elements engineers use to develop the final product.

process direction 1

Merge components have the same fidelity and functionality as those in the repository. The design system team can use React props (or Args for our Storybook integration) to restrict changes or provide designers with the flexibility to make design decisions.

Whenever engineers make changes to the repository, they automatically sync to UXPin, notifying designers of the update. Merge comes with version control, allowing designers to switch to an earlier version–helpful for updating older projects.

Merge is available in three options:

  • Git Integration: Direct integration for React component libraries
  • Storybook Integration: Connect popular front-end frameworks like Angular, Vue, Ember, HTML, Web Components, and more
  • NPM Integration: Sync open-source component libraries through an intuitive dashboard

Take your product development to new heights and create a single source of truth with UXPin Merge. Visit our Merge page for more information and details to request access.

The post What Are Design Tokens? appeared first on Studio by UXPin.

]]>
Why Use React in 2023 https://www.uxpin.com/studio/blog/why-use-react/ Thu, 21 Sep 2023 10:36:33 +0000 https://www.uxpin.com/studio/?p=50217 React is a JavaScript library developed by Facebook, designed to create interactive user interfaces for web apps. In this article, we’re unpacking the magic of React, emphasizing its impact on user interface design, user experience (UX), and team collaboration.  Key takeaways: Build prototypes of React apps fast. Use UXPin Merge and import React components to

The post Why Use React in 2023 appeared first on Studio by UXPin.

]]>
Why use React

React is a JavaScript library developed by Facebook, designed to create interactive user interfaces for web apps. In this article, we’re unpacking the magic of React, emphasizing its impact on user interface design, user experience (UX), and team collaboration. 

Key takeaways:

  • React offers a number of benefits for the end user, ensures efficiency in development, and fosters seamless collaboration between design and dev teams.
  • React continues to be a valuable asset by being flexible, scalable, and popular.
  • React handles data and states which makes it perfect as a single source of truth between designers and developers.

Build prototypes of React apps fast. Use UXPin Merge and import React components to UXPin’s design editor. Drag and drop real components on the canvas and build a production-ready app design without design skills. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

What is React used for?

React, also known as React.js, is a JavaScript framework and library created by Facebook. 

Its main purpose is to help developers build apps or websites, especially those with interactive user interfaces — features like real-time search results that pop up as you type, for example. Or dynamic photo galleries that adjust based on user preferences

One of the standout qualities of React js website development is that it allows you to build these intricate components faster and with less code compared to using plain JavaScript. 

This efficiency makes React a go-to tool for developers. It also means you’ll be able to see your ideas come to life on a website or React app more quickly and smoothly.

Why use React?

It’s helpful to understand what React is used for compared to others like Vue, Flutter, or Angular. Knowing the differences between these tools means you’ll be able to have more informed conversations with your developers.

But there’s more to React than simply making teamwork a little easier. A design tool, UXPin, syncs React elements with their design editor, allowing prototypes to be more interactive and closer to a final product. Check out its Merge technology.

Here’s more on how React’s key features can help bring your design concepts to life. 

Building rich user interfaces 

The importance of your product’s user interface (UI) goes way beyond aesthetics

In the digital world, first impressions are everything; a clunky or uninspiring design can quickly turn users away, no matter how functional your product is. On the flip side, a captivating and intuitive UI encourages prolonged interaction and can make your app a hit with users.

React is a tool that helps to consistently create engaging interfaces. Its declarative components are like the building blocks of design, allowing you to piece together intuitive and visually stunning UIs. Every interaction, button, and visual element can be finely crafted and customized, ensuring that users enjoy the experience of using your app.

Components and libraries

In React, components are ready-made, customizable elements. Imagine creating a button with a specific look and behavior. Once crafted, you can place this button anywhere in your app without needing to recreate it from scratch. Each component operates as a self-contained unit, with its distinct appearance and functionality.

When building larger sections of a React app, these individual components come together, forming more extensive and interconnected structures. But each component retains its independence, ensuring the overall system remains organized and consistent.

These components aren’t just static visuals or mock-ups. With the right tools, you can integrate and prototype using these actual coded components. This means that what you design is not only a visual representation but also closely mirrors the final interactive product.

Take, for instance, UXPin Merge. It allows you to design using real components from different component libraries such as MUI, a library based on Google’s Material Design principles.

This means you’re not just sketching out ideas; you’re working with the same building blocks that developers will use. Instead of passing a static image or design idea to a developer, you’re providing a functional piece that’s closer to the end-product.

It’s flexible

Another answer to the question. ‘why use React?’ is that it’s incredibly flexible. It can be used with a number of different tools and can create anything from static websites and desktop applications to iOS or Android mobile apps

This flexibility partly stems from the fact that React has been around for a while, and over time its active community has developed a plethora of tools, libraries, and extensions to enhance its capabilities.  

The key thing to note is that React is capable of adapting to a variety of project requirements. It can easily integrate with a number of different technologies, making it quicker and easier to test and refine user interfaces.

Instant updates without reloading the page

Many websites or apps require the entire page to reload to reflect changes or new inputs. However, with React js website development, only the specific element changed needs an update. 

Think of Facebook: when you ‘like’ a post or comment, your actions instantly appear, without a full page refresh. This creates a much smoother and faster user experience, allowing for real-time updates and a more responsive interaction.

It’s used in both UX and UI

React components make life easier. On the UI side of things, it ensures visual consistency with reusable and interactive design elements. When it comes to UX, it fosters a seamless user experience with instant feedback and reduced load times. 

What’s more, tools built around React bridge the gap between designers and developers, allowing for rapid prototyping, iterative improvements, and real-time collaboration. This ultimately leads to more polished and user-centric products.

Community size

No tech platform can match the size and activity of React’s vast active networks of developers, designers, and enthusiasts who collaborate, share resources, and provide support.

To give you an idea of the size of this community, more than 460,000 questions were asked on the ‘React.js’ thread on Stack Overflow by late 2023 — it’s one of the most-followed tags on the platform. 

It’s also worth noting that the React framework runs on Javascript, which has more than 2.5 million questions and is by far and away the hottest topic in the dev community. 

What this boils down to is, if you’ve got a question about React, the chances are someone, somewhere has already provided an answer. 

Used by well-known tech companies 

Because of its efficiency, scalability, and knack for helping facilitate dynamic user experiences, React has been adopted by a number of Fortune 500 companies, including Facebook — who developed and maintains its library — as well as Airbnb, Amazon, Dropbox, and Netflix.

Paypal also uses React in its product development, covering both design and software aspects. 

Erica Rider, PayPal’s UX Lead, began using UXPin’s React component design features in 2019 to enhance the efficiency of her small UX team that manages over 60 products. 

They’ve developed a design system called React Fluent UI, filled with ready-made components that simplifies design choices, allowing teams to concentrate on addressing user needs. 

As a result, they can create one-page prototypes eight times quicker than before using traditional tools.

You can use React components in prototyping

React is a powerful tool, as it helps turn prototypes into dynamic, interactive previews of the final product. Here’s more:

It’s componentized

At its heart, React is all about components — self-contained units of UI. This approach means you can craft one component, such as a button or a slider, and reuse it throughout a prototype. This guarantees consistency, speeds up the product development process, and allows for easy tweaks or changes without starting from scratch.

It’s stateful

We talk about ‘state’ in React in relation to a component’s memory. It remembers things. So, when building a prototype of a React app, React can remember and show changes based on user actions. 

For example, when you design an on-off switch, React can remember whether the switch is currently ‘on’ or ‘off’. This means you can demonstrate what happens when someone flips the switch without needing to create two separate designs for each position.

It handles data

React is based on Javascript, which has the ability to manage, swap, and dynamically render data. This means designers can easily mimic real-world scenarios, which is particularly useful when creating interactive prototypes.

UXPin Merge is technology that makes React prototyping even easier, allowing you to use React components from your Git repo, Storybook or bring them via npm. Then, you can drag and drop UI components to build slick user interfaces. Learn more about it. Discover UXPin Merge.

The post Why Use React in 2023 appeared first on Studio by UXPin.

]]>
Figma to React — Best Plugins and Alternatives https://www.uxpin.com/studio/blog/figma-to-react-plugins-and-alternatives/ Mon, 04 Sep 2023 14:29:07 +0000 https://www.uxpin.com/studio/?p=49914 The transition from design to code is a challenge for many product teams. Figma is the cornerstone of many design processes, but translating its visual elements into interactive React components is a complex and often tense task for designers and developers. Let’s explore the Figma-to-React conversion process, evaluate top plugins, and unveil an alternative to

The post Figma to React — Best Plugins and Alternatives appeared first on Studio by UXPin.

]]>
Figma to React min

The transition from design to code is a challenge for many product teams. Figma is the cornerstone of many design processes, but translating its visual elements into interactive React components is a complex and often tense task for designers and developers.

Let’s explore the Figma-to-React conversion process, evaluate top plugins, and unveil an alternative to revolutionize your product development workflow.

Key takeaways:

  1. Transitioning from Figma designs to React code requires multiple painstaking steps.
  2. Figma and React present many challenges in direct code conversion.
  3. Figma-to-React plugins typically need refining before getting to production-ready design.
  4. Despite the allure of plugins, developers sometimes find manual coding quicker.
  5. UXPin’s code-to-design approach offers a promising alternative with its Merge technology.

Have you considered using code components in the design process to eliminate the time-consuming design-to-code workflow? Create a single source of truth between design and development with UXPin’s Merge technology. Discover UXPin Merge.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

How Do You Convert Figma to React?

Every product team wishes they could transition from design to code with the press of a button. Unfortunately, going from Figma to React is a meticulous process that demands precision and coordination between design and development.

A typical Figma-to-React workflow looks something like this:

  1. Design Phase in Figma: Designers user interfaces, focusing on aesthetics, user experience, and interactivity.
  2. Layer Optimization: Before the transition, designers ensure each layer in Figma is aptly named and organized. This clarity aids the eventual conversion process.
  3. Design Handoff: Designers share the Figma file and documentation with developers, highlighting key interactive elements and specific design nuances.
  4. Manual Code Conversion: Developers start the time-consuming task of translating Figma designs into React components. To ensure fidelity, they reference design properties from Figma, such as dimensions, colors, and fonts.
  5. Integrating Interactivity: Beyond static components, developers implement interactivity like button clicks, hover effects, and transitions, often necessitating iterative feedback with designers.
  6. Testing and Iteration: Once coded, the design undergoes rigorous QA testing. This UX audit ensures that the React components mirror the Figma design in look and behavior.

The challenge? Designs in Figma are image-based representations. React, on the other hand, is interactive by default. Converting visual designs directly to code isn’t straightforward because design tools handle layouts, spacing, and interactivity differently than coding frameworks

While Figma might show a button with a specific style and hover effect, translating this into functional React code requires manual interpretation. This complex process often results in friction between designers and developers because they speak different languages and work within different constraints.

Is it Possible to Convert Figma to React using Plugins?

You can convert Figma designs into React code, but there are limitations and challenges. Firstly, most plugins use a specific structure and syntax that might not align with your product or developer’s best practices.

React code from plugins is what developers call “starter code.” Starter code isn’t production ready and almost always requires tweaking and refining to make it functional. If you don’t structure your layers or nest components correctly, the plugin might not produce the correct output.

So, if you expect to produce a React app using Figma plugins, you will be very disappointed. Figma-to-React plugins require technical expertise to turn the code into a functional end product. In some instances, devs may prefer to program the React components from scratch as it’s quicker than fixing plugin code.

What are the Alternatives to Using a Figma-to-React Plugin?

Figma-to-React (or any code, for that matter) follows the traditional design-to-code workflow. While this workflow is familiar, it still leaves a significant gap between design and development. Even with plugins and the latest AI tools, converting design files to code never turns out as expected, but there is a better way.

Enter UXPin’s code-to-design approach to digital product development. Instead of converting design files into code, designers import code components into the design process using Merge technology. Designers never see or write code; instead, they use visual elements like building blocks to build user interfaces.

Merge components come from a repository engineers use to develop the final product, effectively bridging the gap between design and development. Design handoffs are seamless because devs already have the same React components designers use during the design process.

Which Plugins Export Figma to React?

We’ve explored the four best Figma-to-React plugins, evaluating their features, pros, and cons. Make sure you check out our alternative to Figma plugins at the end of this article.

1. Anima

Anima is Figma’s most popular code exporter, used by almost 600k people. The plugin streamlines the design-to-development process by allowing users to convert Figma designs into interactive HTML, CSS, React, or Vue code. 

Designers can build prototypes with features such as live text inputs, animations, and Google Maps while sharing these prototypes through live URLs for feedback and user testing. Ensuring design consistency, Anima’s CLI syncs with Figma in real-time, translating various code components into Figma elements. The platform produces developer-friendly, reusable code with automatic flex-box layouts and no dependencies, optimizing design and engineering efforts.

Features and Capabilities:

  • Allows designers to create responsive and interactive designs directly in Figma.
  • Exports Figma designs into React code designers can handoff to developers.
  • Offers advanced interactions, such as hover, click, and scroll events, without writing code.

Pros:

  • Facilitates the creation of prototypes that feel real.
  • Exports code, reducing the handoff gap.
  • Integrates seamlessly with Figma.

Cons:

  • The exported code might need optimization for complex projects.
  • Some learning curve for designers unfamiliar with interactive design principles.

2. Locofy

Locofy is another popular Figma to React plugin. The plugin converts Figma designs to front-end code, supporting React, React Native, HTML/CSS, Next.js, Gatsby, and Vue. Using the Locofy plugin, designers can optimize their designs with Figma best practices, tag interactive layers, integrate with various UI libraries, and even drag and drop pre-built components. 

The Locofy Builder writes starter code, saving developers time, and includes features like creating reusable components, customizing code preferences, and exporting or syncing directly with platforms like GitHub. Users can also deploy projects directly with Netlify, Vercel, or GitHub Pages.

Features and Capabilities:

  • Converts Figma designs to functional React components.
  • Maintains design properties, including colors, typography, and spacings.
  • Supports CSS-in-JS libraries, such as Styled Components.

Pros:

  • Intuitive interface; minimal learning required.
  • Streamlines developer handoff with clean, organized code output.
  • Direct integration with Figma simplifies design-to-code workflow.

Cons:

  • Doesn’t support advanced animations or transitions.
  • May not handle intricate design nuances effectively, requiring manual refinements.

3. QuestAI

QuestAI offers a simple solution to transform Figma designs into ReactJS components using AI, ensuring pixel-perfect and responsive results. The platform supports Figma features like responsiveness and auto layout, integrates with MUI or Chakra UI component libraries, and allows designers to set up properties and triggers without manual coding. 

With QuestAI, users can export clean code, clearly distinguish between design and business logic, and use natural language prompts to write functionalities. The plugin supports exports in both Javascript and Typescript.

Features and Capabilities:

  • Provides a simple right-click option in Figma to generate React components.
  • Maintains vector graphics, ensuring scalable React components.
  • Offers support for TypeScript.

Pros:

  • Simplifies the conversion process with its no-frills approach.
  • Maintains a high level of design fidelity during conversion.
  • TypeScript support aligns with modern development best practices.

Cons:

  • Lacks advanced interactivity features; more suitable for static components.
  • Users might need external tools or manual intervention for complex designs.

FigAct

FigAct converts Figma designs into responsive ReactJS source code, achieving a self-proclaimed 80% to 90% accuracy rate. The plugin translates design components to code components, supports React Router for frame navigations, and implements React Hooks for state management. 

Automated features include asset management, where images, fonts, and SOLID fills are integrated seamlessly. FigAct offers Airtable integration for dynamic data visualization, allowing designs to dynamically showcase data from APIs or Airtable databases.

Features and Capabilities:

  • Installation of the plugin leads to the generation of a complete ReactJS project structure zipped for user download.
  • React Router integrates Figma’s navigate-to interactions, enabling frame navigation similar to Figma’s experience.
  • Airtable integration provides dynamic visualization of data.

Pros:

  • Streamlines asset management, including automated image downloads and font integration from Google Fonts.
  • Enables interactive frame navigation using React Router based on Figma interactions.
  • Supports state management using React Hooks and offers feature-rich component generation, including recyclable components.

Cons:

  • Adhering to guidelines is essential for accurate code generation.
  • Only a subset of CSS properties are fully supported.
  • Limited to onClick action for page navigation.
  • Unsupported media types include audio and video.

Try UXPin Merge for designing with React code components

Depending on your needs and circumstances, you have a few options to set up Merge. There are two integrations for importing a complete design system–either yours or an open-source library:

These two integrations require technical assistance and expertise to set up with the help of UXPin’s onboarding team. Merge’s npm integration allows designers to import and manage components without technical assistance via the Merge Component Manager. Designers can bypass any setup and use UXPin’s built-in Merge libraries, including MUI, Ant Design, Fluent UI, and Material UI.

Building interactive prototypes

Whether you import UI components via Merge or use one of UXPin’s built-in libraries, it’s a matter of drag and drop to build interactive prototypes. Each component’s props (or Args from Storybook) appear in UXPin’s Properties Panel so that designers can change properties, states, interactions, and other features.

Enhanced testing

Prototyping with code components gives participants and stakeholders an immersive, realistic user experience. 

“It’s been so helpful for us to have these high-fidelity prototypes built with UXPin. We build high-fidelity prototypes much quicker and get immediate feedback after the session. If there’s something we can fix immediately, we make that change before the next participant and get feedback much faster than before.” Erica Rider, Product, UX, and DesignOps thought leader.

Are you still using an outdated, cumbersome design to code workflow? 

Switch to UXPin and use Merge technology to bridge the gap between design and development. Visit our Merge page for more details and how to get started.

The post Figma to React — Best Plugins and Alternatives appeared first on Studio by UXPin.

]]>
How to Design a Date Picker that Makes Your UI Shine https://www.uxpin.com/studio/blog/date-picker-ui-design/ Fri, 01 Sep 2023 11:03:09 +0000 https://www.uxpin.com/studio/?p=35840 Date pickers are some of the most familiar UI patterns in digital product design. UX designers use date pickers on websites, applications, games, enterprise software, operating systems, and more. Designers must understand how these date pickers will work across screen sizes, operating systems, devices, etc., to test the impact on the product’s aesthetics, functionality, and

The post How to Design a Date Picker that Makes Your UI Shine appeared first on Studio by UXPin.

]]>
Date picker UI design

Date pickers are some of the most familiar UI patterns in digital product design. UX designers use date pickers on websites, applications, games, enterprise software, operating systems, and more.

Designers must understand how these date pickers will work across screen sizes, operating systems, devices, etc., to test the impact on the product’s aesthetics, functionality, and overall user experience.

UX designers can’t build date pickers using traditional image-based design tools…but they can with UXPin Merge! This technology allows you to import a fully functional date picker from Git repository or npm package, as well as bring one from Storybook.

The date picker that you will sync to UXPin will behave like a date picker in the end product. No need to link static artboards to create interactions! Request access to Merge.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

What is a Date Picker?

Date pickers are UI patterns that allow users to choose a specific date, time, or combination of both–for example, selecting a date of birth. The purpose of these date pickers is to streamline date capture while ensuring format consistency.

Why are Date Pickers Necessary?

People worldwide use different date formats. For example, the United States places the month before the day (mm/dd/yyyy), whereas the UK uses the day, month, year format. 

Although these differences seem subtle, a database cannot distinguish whether the user uses the US or UK format. It can only decipher a date correctly in one or the other format. Let’s look at October 1, 2022, numerically:

  • US: 10/01/2022 (10 January 2022 in the UK)
  • UK: 01/10/2022 (January 10, 2022, in the US)

In this example, the database would interpret each entry as January rather than October.

Users can also enter this same date multiple ways and use different separators. Here are a few examples:

  • Oct 1, 2022 
  • Oct 1, 22
  • 1 Oct 2022
  • 1 Oct 22
  • 10-01-22 / 01.01.2022 / 10/01/22 
  • 22/10/01 / 2022/10/01

Date pickers eliminate ambiguity and ensure systems receive a consistent, accurate format by users selecting the day, month, and year individually.

Date Picker UI Design for Mobile vs. Desktop

Mobile Date Picker

It’s important for designers to recognize how mobile operating systems like iOS and Android display date pickers to users. The native iOS picker uses an infinite scroll UI, while Android applications use a calendar view displaying the entire month.

A mobile date picker aims to make it accessible to a user’s thumb reach. iOS allows users to scroll using their thumb, while Android’s UI is optimized for thumb taps.

While you can use a custom date picker from your design system, using the native options creates familiarity and reduces the product’s learning curve. If you decide to use native date pickers for mobile apps, make sure you’re not creating usability issues, as we pointed out with iOS.

Desktop Date Picker

Most desktop websites and applications use calendar date pickers. The extra space and mouse make it easy for users to choose a date with just a few clicks. Many products also provide an input field for users to enter a date manually.

Numerical date input fields work well on desktops too. UX designers must include a placeholder and helpful error messages to guide users toward the correct format.

5 Types of Date Picker UI Design

Numerical Input Field

The most basic date picker is a numerical input or text input field. These fields might include a modal popup with a date picker, or users must type out the date with separators.

Some products offer users the option to type the date or use a modal, like this example from US Web Design Systems.

date picker component in US web design system

Placeholders must show users how to format the date, i.e., MM/DD/YYYY. UX designers can take this further by applying an auto-format for the date where separators appear as users complete the month and day. Designers can also add helper text below, so users know how to complete the form. See the example.

Dropdown Date Selector

Designers commonly use dropdown date-selectors for websites and desktop applications. These date pickers work well with a mouse, but with little space between options, they might be challenging for mobile device users, especially those with large fingers and thumbs.

Dropdown selectors take up more space than a single input field with a calendar modal. And they’re more time-consuming to complete because users have to select the day, month, and year individually.

Dropdown selectors are best for desktop applications and websites but might create bottlenecks for onboarding forms.

Scrolling Date Pickers

Scrolling date pickers work similarly to dropdowns as users choose a day, month, and year separately. These scrollers are most useful on mobile devices where users can use their thumbs to scroll to a day, month, and year.

Many users complain that scrolling date pickers are not suitable for dates far in the future or past. Scrolling through decades takes time and can be challenging for users, especially those with hand or finger disabilities.

The iOS default date picker is the most common example of a scrolling date picker; however, Apple often uses a calendar picker for dates far in the past or future.

Calendar Date Picker

Calendar UIs are the most commonly used date pickers. These calendar date pickers work well across operating systems, devices, and screen sizes.

As people are used to seeing calendars in physical and digital formats, these date pickers create familiarity for users, reducing cognitive load and the product’s learning curve.

Calendar UIs are especially helpful for date range pickers, allowing users to visualize their choice and make quick adjustments.

Timeline Pickers

Timeline pickers work well for selecting a short date range (up to a week) or timeframe (a few hours). Timeline UIs are especially useful on mobile devices because users can drag indicators to choose a start and end date. 

While you can use timeline pickers for dates, they’re best suited for selecting a time window.

Date Picker UI and UX Best Practices

Date Picker Accessibility

Poorly designed date pickers can be frustrating for users with disabilities and screen readers. Keeping things simple is crucial to ensure date selection is accessible to all users.

Here are some recommendations for making date pickers accessible:

  • Use explicit labels for your date fields. For example, if someone is booking an appointment, label the field Appointment Date or Choose an Appointment Date so screen readers and users with cognitive disabilities know what date you need.
  • Include format hints in the placeholder and above or below the input field. This validation makes date pickets more accessible while benefiting all users with clear instructions.
  • Users must be able to use a date picker using touch, a mouse, screen readers, and a keyboard. UX designers must test date pickers to ensure all users and devices can interact with the UI and choose a date effortlessly.
  • Separating day, month, and year fields make it easy for screen readers and keyboard users to enter dates. UX designers can also include a button or calendar icon for users to complete their selection using a calendar, a win-win for all users. (See this date picker example from USWDS).
uswds date picker

Date picker accessibility resources:

Show Current Date

It is important to show users the current date and their selection on calendar pickers. Highlighting the current date gives users a reference for their choice, which is especially important for booking travel and appointments.

Differentiating between the current date and the user’s selection is crucial to avoid confusion. Material UI clarifies this distinction with an outline for the current date and a shaded background for the selected date.

MUI date picker UI example

Block Unavailable Dates

Choosing a date only to find it’s unavailable is one of the most frustrating user experiences. Users have to start their selection over and try until they find availability. Blocking out unavailable dates allows users to choose without returning to the calendar.

Provide Additional Critical Decision-Making Data

Many travel booking apps, including Booking.com and Airbnb, show the price per night below each date so users can find the best rates. This information creates a positive user experience because the product helps users save money.

date picker examples

Reduce Unnecessary Data

Calendar user interfaces can be busy and overwhelming. Designers must reduce as many UI elements, lines, and other content to make the calendar easier to read and complete tasks. For example, users don’t need to see the days of the week when choosing their date of birth.

UX designers must also use solid backgrounds for modal overlays to block out content behind the calendar, which may confuse users.

How to design a date picker in UXPin

UXPin is an advanced prototyping tool used to create interactive, dynamic, high-fidelity prototypes. Where most prototyping tools require designers to create multiple artboards to prototype just one interaction, UXPin enables designers to use States, Variables, and Conditions to create fully-functioning pages.

To insert a date picker in UXPin, start by clicking on the “Search All Assets” search icon (command + F / Ctrl + F) in the vertical toolbar.

date picker ui uxpin

Next, search for “date” or “calendar” using the input field.

Several options will be available under the “Components” heading, some of which are best for touch users and others for keyboard users. “Input calendar”, however, provides a calendar for touch users and an input field for keyboard users, offering the best of both worlds and is perhaps the simplest solution overall.

how to find date picker ui component

Styling the date picker Component

UXPin Components are already designed to offer great user experiences, but you’ll probably want to style them to match your brand’s visual identity and app/website’s aesthetic. To do this, use the Properties panel on the right.

customizing date picker ui

If you’re using UXPin Design System Libraries (especially Text Styles and Color Styles), you can utilize the Styles that you’ve already established to help maintain some degree of visual consistency between the date picker Component and the rest of your design.

To customize your component, select the Layer that you’d like to style, navigate to your UXPin Design System Library after clicking on the “Design System Libraries” icon (⌥ + 2 / alt + 2), and then select the Style that you’d like to apply to the Layer.

date picker design

Using real Components instead

Rather than reinventing the wheel by inserting and styling the same Component over and over again, designers can use production-ready Components that’ve already been built by developers. You can pull them from Git, Storybook, or NPM (no coding required) and they’ll look and work just like the real thing (because they are). Learn about UXPin’s technology that makes this happen. Request access today.

The post How to Design a Date Picker that Makes Your UI Shine appeared first on Studio by UXPin.

]]>
Does Storybook Work With Figma? [+ What to Use Instead] https://www.uxpin.com/studio/blog/figma-storybook-vs-uxpin/ Thu, 31 Aug 2023 10:27:08 +0000 https://www.uxpin.com/studio/?p=49786 Storybook Connect for Figma aims to link Storybook stories to Figma designs to streamline UI review and design handoff. Storybook Connect has its limitations. As you’ll learn in this article, UXPin Merge’s Storybook integration is a better alternative to Figma Storybook plugins. Key takeaways: Bring Storybook components into the design process with UXPin’s Merge technology.

The post Does Storybook Work With Figma? [+ What to Use Instead] appeared first on Studio by UXPin.

]]>
Storybook Figma min

Storybook Connect for Figma aims to link Storybook stories to Figma designs to streamline UI review and design handoff. Storybook Connect has its limitations. As you’ll learn in this article, UXPin Merge’s Storybook integration is a better alternative to Figma Storybook plugins.

Key takeaways:

  • Storybook Connect for Figma allows you to link Storybook stories to their corresponding Figma designs but doesn’t import the components directly into Figma for manipulation.
  • The plugin depends on manual URL linking, making it vulnerable to broken links and requiring additional effort for setup.
  • UXPin Merge offers a more comprehensive solution by importing an entire Storybook library for prototyping, creating a single source of truth between design and development.

Bring Storybook components into the design process with UXPin’s Merge technology. Visit our Merge page for more details and how to request access.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

Does Storybook Work With Figma?

Storybook Connect is the official Storybook Figma plugin made by Chromatic–a cloud service for Storybook that automates workflows for UI feedback, visual regression testing, and documentation.

What is Storybook Connect for Figma?

Storybook Connect links Storybook stories to their corresponding Figma designs. This plugin enables teams to compare the live implementation with design specs, accelerating the design handoff and UI review processes.

Key Storybook Connect’s features include:

  • Connecting Storybook stories and Figma design components or variants to keep design and implementation in sync.
  • Designers can interact with the Storybook component in Figma, giving them a real-time understanding of how a component functions.
  • Identifying reusable components, helping to maintain consistency across projects.
  • Evaluating how closely the implemented UI matches the design specifications.
  • Setting up private projects and control who can access them.

Alternative beta plugin: story.to.design

At the time of writing this article, story.to.design is a beta plugin that claims to generate a Figma UI kit of Storybook stories. It’s also important to note that story.to.design does not support private GitHub repositories. 

While story.to.design looks promising, developers must use a specific syntax and layout to import and update the stories in Figma–which might not align with your development workflow.

The story.to.design plugin will require technical expertise to set up, and you might have to set up a separate repository to ensure the library aligns with story.to.design’s code requirements.

How do you use Figma With Storybook?

Once you have installed Storybook Connect, there are three steps to connecting your stories to Figma components:

  1. Select a Figma component or variant.
  2. Run the Storybook Connect plugin.
  3. A window opens, allowing you to paste a link to a specific story.
  4. A Storybook logo appears below the components properties on the right.
  5. Click View Story to open a new window within Figma displaying a live implementation of the Storybook component.

And that’s it! Designers can interact with the Storybook component to understand how it works and copy the interactions into Figma.

What are the Limitations of Figma Storybook Integration?

Here are some of the limitations and challenges with using Storybook Connect.

Does not import Storybook components into Figma

One of the most notable limitations is that the plugin does not import Storybook components directly into Figma. Instead, it links Storybook stories to their corresponding Figma designs. While you can interact with the live implementation within Figma, you can’t manipulate the Storybook components as native Figma elements or use them for prototyping.

Dependent on URL linking

Storybook Connect relies heavily on URL linking between Storybook and Figma. After running the plugin, you must find the correct story and copy/paste the link in Figma–a lot of manual work for each component!

If the URL structure changes or there are connectivity disruptions, the links may break, requiring manual intervention to restore them.

Limited to specific addons for UI review

While the plugin does offer some Storybook addons for UI review, such as the Measure and Outline addons, it may not support all the addons your devs use in Storybook.

Storybook Connect does not bridge the gap

Storybook Connect fails to bridge the gap between design and development. Designers still work with image-based tools and components, while devs build with code. 

The plugin marginally streamlines the design and design handoff by removing the need to switch between Figma and Storybook to reference design and code component libraries.

How to Solve Figma Storybook Limitations With UXPin

With UXPin’s Merge technology, you can import an entire Storybook library into UXPin and use the components to build and test prototypes. Unlike Storybook Connect, designers and engineers don’t use separate libraries.

Instead, the integration creates a single source of truth between design and development where designers use the same UI elements for prototyping as engineers use to develop the final product.

What is UXPin Merge, and how does it work?

Merge syncs code components from a repository to UXPin’s design editor. Designers can use these components in the design process to build interactive prototypes indistinguishable from the final product. There are three ways to import code components using Merge:

  1. Git Integration (React only): Direct connection to any GitHub repository, giving full access to Merge features, including Patterns, Version Control, and JSX authoring.
  2. Storybook Integration: Connect any Storybook library, including React, Vue, Ember, Angular, and more.
  3. npm Integration: Import components from open-source libraries on the npm registry using the Merge Component Manager.

How Merge solves Figma’s Storybook limitations

Does import Storybook components into Figma

Storybook Connect doesn’t import code components into Figma, and designers can’t use these for prototyping. Merge’s Storybook Integration does import Storybook components into UXPin, and design teams can use them for prototyping.

Is not dependent on URL linking

Merge does not use URLs or other manual methods to import components. Instead, Merge imports the actual UI elements, templates, and patterns from your Storybook repository into UXPin. Once the initial setup and connection are complete, Merge automatically syncs repo updates to UXPin and notifies design teams of the change.

Is not limited to specific addons for UI review

Merge does not require addons or plugins to function. It connects directly to the repository, meaning any plugins or addons won’t impact syncing. This connection won’t interfere with engineering workflows or best practices, making it easy for product development teams to adopt.

Successfully bridges the gap between design and development

Merge bridges the gap between design and development by syncing teams through a single component repository. Designers and developers use the exact same components from the exact same repository.

“In UXPin, UI components look and behave exactly as they do for developers, effectively bridging the gap between design and development–a real single source of truth.” dotSource – a German-based digital product consulting and development agency.

More reasons to use Merge’s Storybook Integration

  • Enhanced user testing: Designers can build prototypes that accurately represent the final product, allowing them to test complex interactions and even API integrations without engineering assistance.
  • Meaningful feedback: Stakeholders can interact with Merge prototypes like they would the final product, giving designers meaningful, actionable insights to iterate and improve.
  • Streamlined handoffs: Merge handoffs are smoother than a typical design-to-code workflow because there is no way to modify Merge components in UXPin other than the Storybook Args available in the Properties Panel. 
  • Zero drift: Storybook Connect gives designers a reference for designing components, which they can interpret in many ways or completely ignore. Merge components give design teams the same limitations and constraints as developers, eliminating design drift and inconsistencies.

How do you use UXPin With Storybook?

Merge’s Storybook Integration lets you connect any public or private Storybook, enabling you to keep your components secure with token-based verification and manage library access in your team.

Setting up

Merge’s Storybook Integration connects directly to a repository, so you will need technical assistance from your engineers to set this up properly. Check out UXPin’s docs for more details, including contacts for UXPin’s technical support team, who will assist you in getting started.

How to find Storybook components in UXPin

Once the setup is complete, your new Storybook library will appear in the left sidebar under UXPin’s Design System Libraries tab. 

Storybook libraries will display the Storybook logo to the left of the library name, like in the Material UI example below.

How to use the Storybook components in UXPin

Click or drag Storybook components from UXPin’s Design System Libraries onto the canvas.

The component’s properties, defined by Storybook Args, will appear in the Properties Panel. You can adjust these to get the desired variant, state, interactivity, etc.

Add UI elements to create user interfaces and build prototypes. You can add page transitions and other interactivity using the Interactions feature at the top of the Properties Panel.

Design handoff

Share designs and prototypes with developers using Preview and Share. Developers can analyze UIs and inspect individual components using Spec Mode. UXPin automatically links to the component’s story, so there is no confusion about which pattern or UI element devs are viewing.

And that’s it! You’ve learned how to set up a Storybook library in UXPin and build prototypes using code components. 

How a Code to Design Workflow Streamlines Product Development

Storybook Connect embeds components into Figma for designers to reference. This plugin solves a minor problem for design teams–switching between Figma and Storybook. The manual process of linking each component is time-consuming and prone to error. Connecting the wrong story in Figma can cause confusion and create friction between designers and engineers.

A code-to-design workflow eliminates manual processes and updates. DesignOps can focus on creating impact rather than spending time and resources manually updating and maintaining UI kits to meet repo releases.

UXPin’s Merge technology automates redundant tasks and successfully bridges the gap between designers and engineers. The transition from design to development is seamless, and developers require less documentation to build the final product.

“With this UXPin Merge workflow, we have overcome redundant processes and eliminated UX debt from design system updates. UX consistency is no longer an issue, and we have no design drift.” dotSource – a German-based digital product consulting and development agency.

Sync design and development with one tool and powerful Merge automation. Visit our Merge page for more details and how to get started.

The post Does Storybook Work With Figma? [+ What to Use Instead] appeared first on Studio by UXPin.

]]>
Top 6 npm Packages for Component-Driven Prototyping https://www.uxpin.com/studio/blog/top-npm-packages-to-design-with/ Thu, 24 Aug 2023 11:22:49 +0000 https://www.uxpin.com/studio/?p=37128 Component-driven prototyping with UXPin Merge allows designers to build accurate replicas of the final product. Unlike other design tools that render static graphics, UXPin is powered by code so that designers can create high-fidelity, fully functioning prototypes. UXPin’s npm integration gives designers the freedom to import components and patterns from open-source design systems. They may

The post Top 6 npm Packages for Component-Driven Prototyping appeared first on Studio by UXPin.

]]>

Component-driven prototyping with UXPin Merge allows designers to build accurate replicas of the final product. Unlike other design tools that render static graphics, UXPin is powered by code so that designers can create high-fidelity, fully functioning prototypes.

UXPin’s npm integration gives designers the freedom to import components and patterns from open-source design systems. They may need a single UI element to create a new pattern for an existing design system or use the npm integration to build a fully functioning MVP during a design sprint.

Discover how UXPin Merge can help you build interfaces with React components from npm. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

About Prototyping with npm Components

Before we dive into UXPin’s npm integration and the packages you can import for prototyping, it’s important to understand Merge–the technology that makes component-driven prototyping with npm libraries possible.

Merge enables companies to sync a design system hosted in a repository to UXPin’s design editor so designers can build prototypes using the same component library as engineers.

These “ready-made” UI elements include properties and interactivity defined by the design system’s code. A component in Merge looks and functions the same as the final product because it’s an exact replica.

Designers use Merge components like building blocks, dragging and dropping to build new UIs, and fully functioning prototypes. They can also use Patterns to combine UI elements and build new components.

Merge’s strongest feature is its ability to sync design and development, creating a genuine single source of truth across the organization via the design system’s repository. Any changes to the repo automatically sync to UXPin, notifying product teams of the change.

1. Ant Design

Ant Design is an open-source design system developed and maintained by the Chinese tech giant Ant Group. The component library is available for React, Angular, and Vue and includes Ant Design Mobile for building cross-platform and mobile applications.

Ant Design is a fantastic “all-rounder” with components for B2C products, enterprise applications, websites, and cross-platform apps. The design system also features an icon set, dark mode, animations, and interactivity.

Importing the Ant Design npm Package

Ant Design npm integration Library settings:

  • Library name: Ant Design NPM – The Library name has no impact on the import
  • Package details: antd – must correspond to the Ant Design npm registry
  • Assets location: antd/dist/antd.css – required for styling Ant Design React props

Leave everything else as default and click Save Changes.

Further reading: Check out this step-by-step guide for importing Ant Design components via the UXPin npm integration.

2. Bootstrap

Bootstrap is one of the oldest and largest responsive front-end frameworks. Engineers often use Bootstrap for basic CSS styling and Javascript functionality when building website and web application prototypes.

UXPin’s npm integration uses the React Boostrap, which includes the same out-of-the-box features and functionality as the original Bootstrap. We recommend React Bootstrap for prototyping responsive websites and web applications.

Importing the React Bootstrap npm Package

React Bootstrap npm integration Library settings:

  • Library name: Bootstrap NPM Integration – The Library name has no impact on the import
  • Package details: react-bootstrap – must correspond to the React Bootstrap npm registry
  • Dependency package name: bootstrap – React Boostrap requires the Bootstrap dependency to work in UXPin
  • Assets location: bootstrap/dist/css/bootstrap.min.css – required for styling React Boostrap props

Leave everything else as default and click Save Changes.

Further reading: Check out this step-by-step guide for importing React Bootstrap components via the UXPin npm integration.

3. MUI

MUI is a React library built based on Google’s Material Design UI. The comprehensive design system features everything you need to develop an array of digital products, plus more than 2,000 Material Design Icons.

Due to its comprehensive component library, MUI is a popular choice for enterprise products, cross-platform applications, and MVPs.

Importing the MUI npm Package

MUI npm integration Library settings:

  • Library name: MUI NPM – The Library name has no impact on the import
  • Package details: @mui/material – must correspond to the MUI npm registry

Unlike React Boostrap and Ant Design, MUI doesn’t require dependencies or assets to work in UXPin. Leave everything else as default and click Save Changes.

Further reading: Check out this step-by-step guide for importing MUI components via the UXPin npm integration.

4. Semantic UI

Semantic UI is an excellent alternative to Bootstrap. The Semantic UI React framework has a more modern aesthetic, simple features, and highly customizable components. Semantic UI includes FontAwesome built-in–the most extensive icon library in the world.

Like Bootstrap, Semantic UI is best for prototyping websites and web applications.

Importing the Semantic UI React npm Package

Semantic UI React npm integration Library settings:

  • Library name: Semantic UI – The Library name has no impact on the import
  • Package details: semantic-ui-react – must correspond to the Semantic UI React npm registry
  • Dependency package name: semantic-ui-css – Semantic UI React requires the Semantic UI CSS dependency to work in UXPin
  • Assets location: https://cdn.jsdelivr.net/npm/semantic-ui@2/dist/semantic.min.css – required for styling Semantic UI React props

Leave everything else as default and click Save Changes.

Further reading: The Library settings are similar to React Bootstrap. Follow the Bootstrap tutorial for a step-by-step guide, and use the Semantic UI React docs to replace library and component settings accordingly.

5. Carbon Design System

Carbon is a design system developed and maintained by IBM with React, Angular, and Vue versions. The simple yet comprehensive design system includes a large component and pattern library, an icon set, pictograms, motion, and instructions for theming.

Carbon is an excellent design system for B2B and enterprise product design. Carbon’s data visualization documentation makes it the perfect choice for product teams developing dashboard and report user interfaces.

Importing the Carbon Design System npm Package

Carbon Design System React npm integration Library settings:

  • Library name: Carbon NPM – The Library name has no impact on the import
  • Package details: @carbon/react – must correspond to the Carbon Design System npm registry
  • Assets location: https://unpkg.com/carbon-components/css/carbon-components.css – required for styling Carbon Design System’s React props
Carbon npm package

Leave everything else as default and click Save Changes.

6. Grommet

Grommet is a React-based framework that is great for building mobile-first prototypes that are accessible and responsive. Used by Netflix, Uber, Hewlett Packard, this design system is easily themable and you should definitely give it a shot.

Importing the Grommet npm Package

Grommet npm integration Library settings:

  • Library name: Grommet NPM
  • Package details: grommet – must correspond to the Grommet npm registry
  • Assets location: https://v2.grommet.io/components

Leave everything else as default and click Save Changes.

When we add that Semantic UI button to the canvas and select it, those same properties appear in UXPin’s Properties Panel. We can adjust these properties to change the button’s styling instantly.

How to Import npm Components to UXPin

Merge npm integration gives design teams the control and flexibility they needed to import and manage React components in UXPin without engineering support.

Using the Merge Component Manager (MCM), designers can import individual components and their properties via the library’s npm package. There’s no code required, and setup takes a few minutes.

Designers can use these open-source components to build new patterns for an existing design system or create a minimum viable product (MVP) using fully functioning UI elements.

Using Merge Component Manager (MCM)

Merge Component Manager (MCM) is where designers manage npm imported component libraries.

You must follow the library’s documentation and naming conventions when importing components, or the import won’t work. UXPin’s npm integration must find a component and its properties using the repository’s naming convention, so if you reference the React props incorrectly, MCM can’t locate it.

We’ll use a Semantic UI button to illustrate how to reference React props when importing components. You’ll find these React props in the design system’s documentation.

When importing a component’s property, the Property name in MCM must match the React prop name from the documentation.

In this case, we’re importing the children prop, which gives a Semantic UI button its label.

The Display name is what designers will see in UXPin’s Properties Panel.

We’ve imported children, circular, color inverted, secondary, size, and type, which you can see in this screenshot.

Those MCM Property names correspond to Semantic UI’s documentation which you see in the two following screenshots.

Rules for Choosing an npm Components

  1. It’s important to note that designers can only use the npm integration to import design systems with React component libraries, and it must have an npm package.
  2. The design system must serve your product’s needs. Are you designing a B2B product? Are you prototyping a web, mobile, or cross-platform application? Do you want to complement an existing design system or build something from scratch? For example, if you’re building a website or web application, Bootstrap or Semantic UI are excellent choices, whereas Ant Design is probably better for mobile and cross-platform digital products.
  3. It’s worthwhile researching open-source design systems to ensure the library has the UI elements you need. The library must also have documentation with setup instructions and a list of the available React props. These props will allow you to change a component’s properties like color, shape, interactivity, size, icon, etc.

Design with npm Components in UXPin

Here we outlined 6 npm component libraries that you can try with UXPin Merge. Ready to start prototyping with one of these design systems? Try npm integration to test those packages and experience what component-driven prototyping can give you. Discover UXPin Merge.

The post Top 6 npm Packages for Component-Driven Prototyping appeared first on Studio by UXPin.

]]>
UI Design vs. UI Development – What’s the Difference? https://www.uxpin.com/studio/blog/ui-design-vs-ui-development/ Wed, 23 Aug 2023 14:54:21 +0000 https://www.uxpin.com/studio/?p=35574 There are many software and web development roles and responsibilities–from initial concept to design and delivery, QA, and lifecycle management. UI design and UI development are two crucial roles that impact how users engage and interact with a user interface. This article compares the practice of UI design vs. UI development, the people behind these

The post UI Design vs. UI Development – What’s the Difference? appeared first on Studio by UXPin.

]]>

There are many software and web development roles and responsibilities–from initial concept to design and delivery, QA, and lifecycle management. UI design and UI development are two crucial roles that impact how users engage and interact with a user interface.

This article compares the practice of UI design vs. UI development, the people behind these roles, and how they work together to deliver digital products.

Key takeaways:

  • UI design is the process of designing user interface of a product while UI development is the process of programming this design.
  • UI design and UI development appear on opposite ends of the software development process.
  • UI designers and UI developers work together to create products that are feasible, desirable, and viable.

Build designs of user interfaces that can be quickly developed. Use React, Storybook or npm components in UXPin’s design editor and create production-ready prototypes on the fly. Discover UXPin Merge.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

What is UI Design?

color id brand design

UI design (User Interface Design) is the process of designing user interface elements, layouts, and interactions–everything users see and interact with. These elements include images, animations, sliders, text fields, buttons, etc. Like user experience design, UI design decisions are based on user needs and testing.

UI Designer Skills & Responsibilities

UI designers are responsible for the UI design process. Their role includes:

  • Product aesthetics: branding, visual design
  • Research: design research, user analysis
  • Testing: UI prototyping (high-fidelity prototyping)
  • Design: wireframes, mockups, interaction design, animations, viewport layouts (responsive design)

UI Designer Qualities & Skillset

  • Visually creative
  • Web design
  • Graphic design
  • Design principles and design thinking
  • Interested in visual design
  • User journeys and personas
  • User research
  • Typography
  • Balances form with function
  • Looks at user interaction and behavior
  • Task orientated

UI Design Process

UI designers follow the same design thinking process as other UX professionals but complete different activities within the framework:

  • Empathize: focuses on the user’s environment, movements, and actions
  • Define: focuses on each step users need to take to achieve their goals
  • Ideate: looks at the elements and components users will need to navigate a product
  • Prototype: designs mockups and interactivity for high-fidelity prototypes
  • Test: tests how users interact with the product and ask practical questions

Further reading: UX vs. UI Design – The Differences You Need to Know.

What Software does a UI Designer Use?

UI designers generally use the same tools and software as other UX designers. These tools allow them to design, prototype, and test user interfaces.

The goal for any UI designer is to create high-fidelity prototypes that look and function like the final product. Code-based design tools like UXPin have revolutionized how UI designers prototype and test digital products.

Some of UXPin’s advanced prototyping features include:

  • States: Create multiple states for a single component with separate properties for interactions and system changes.
  • Conditional Interactions: Create dynamic user experiences with Javascript-like “if-then” and “if-else” rules that respond to user and system actions.
  • Variables: Store user inputs and take actions based on that data–like displaying a customized welcome message from the user’s name input.
  • Expressions: Write Javascript-like functions that perform complex tasks, like form validation, computational formatting, and more.

Discover these and more advanced UXPin features with a free 14-day trial–no payment details necessary!

What is UI Development?

design and development collaboration process product communication 1

UI development is the process of programming client-facing interfaces. Like UI design, the UI development process includes writing code for images, animations, sliders, text fields, buttons, etc.

UI Developer Skills & Responsibilities

Depending on the product and org structure, the UI development role might fall on a front-end developer, UX engineer, or full-stack engineer. Their responsibilities include (these will vary depending on the engineering team’s structure):

  • UI component development
  • UI maintenance
  • Styling architecture
  • Implementation
  • Technical feasibility
  • Backlog management
  • Performance
  • Query architecture
  • Search engine optimization

Front-End Development vs. Back-End Development

Engineers divide programming into two separate disciplines, front-end, and back-end development.

  • Front-end development: Focuses on developing “client-facing” interfaces using HTML, CSS, and Javascript.
  • Back-end development: Write server-side code to connect front-end interfaces to databases, APIs, authentication, etc. Some programming languages include Java, Ruby, Python, and Javascript, to name a few.

Further reading: Front-End vs. Back-End: What’s the Difference?

What Software does a UI Developer Use?

Like any engineer, UI developers use an integrated development environment (IDE) to examine and write code. Modern IDEs feature various extensions to interface with engineering tools like Git, package managers, repositories, APIs, etc.

Further reading: The 7 Essential Tools for Frontend Web Development.

UI Design vs. UI Development

code design developer

With UI design and UI development defined, it’s clear to see these disciplines appear on opposite ends of the software development process. UI design happens during the design process, while UI development occurs during the engineering process. 

While these are separate disciplines, UI designers and UI engineers must work together to deliver a successful final product.

It’s important to note that not every organization has a UI designer and UI engineer role. Here are some positions that might fulfill these UI roles and responsibilities:

  • UI design: UX engineer, visual designer, graphic designer
  • UI development: Front-end developer, UX engineer/UX developer, full-stack engineer

How UI Designers and UI Developers Work Together

Here is a typical workflow demonstrating how a UI designer and UI developer would collaborate on a project:

  1. UI designers start a design project with various forms of UX research to understand users, competition, the market, product, etc. They use user-centered design processes to understand the problem from a user’s point of view.
  2. UI designers will meet with UI developers early in the design process to discuss technical limitations, design handoff procedures, and documentation requirements.
  3. UI designers work with other UX designers to design, prototype, and test user interfaces, layouts, and components. In some instances, the UI developer might collaborate with the design team to build basic code prototypes to test complex UI components.
  4. Once the design process is complete, UI designers prepare prototypes and documentation for the design handoff.
  5. UI designers and UI developers might meet to discuss designs and ensure engineers understand everything correctly during the design handoff process. 
  6. UI developers work with the rest of the engineering team to convert designs into functioning code.
  7. UI designers work with the design and product teams to complete the QA (quality assurance) process to ensure the final release meets design specifications.

The Importance of UI designer-UI developer collaboration

Modern software development relies on exceptional UI design and development. 

Designers ensure the product meets users’ needs and thoroughly test user interfaces and UI components to ensure they meet usability and accessibility standards. Without this prototyping and testing phase, usability issues impact the product, resulting in a poor user experience resulting in avoidable costs on multiple fronts–customer service, rework, losing customers, etc.

UI developers also play a crucial role in delivering successful software releases. They must ensure the final UI meets design specs and test code for bugs and performance. They’re also responsible for managing code, including updates to packages, APIs, security, etc., to ensure the product maintains its integrity and consistency over time.

To achieve this, designers and engineers must collaborate throughout the software development process–which can be challenging in large organizations where silos and poor communication are common.

UI designers and UI developers often work with DesignOps and DevOps to help bridge the gap between these disciplines to improve operational processes and collaboration.

Better Designer-Developer Collaboration With UXPin Merge

team collaboration talk communication

The Drift Challenge

One of the challenges designers and engineers face is that they speak different languages. 

  • Designers = image-based static mockups and prototypes
  • Engineers = code, browsers, operating systems, databases, etc.

Without in-depth knowledge and experience of one another’s disciplines, it’s hard for designers and programmers to understand the other’s limitations, constraints, and other challenges. Bridging that gap is crucial for organizations to deliver products successfully, on time, and on budget.

The Code-Based Solution

UXPin Merge has revolutionized the traditional UX workflow with a code-based design solution allowing orgs to sync a component library from a repository to UXPin’s editor, so designers build prototypes using fully functioning UI elements and components.

Merge components retain exactly the same properties as those in the repository, including interactivity, so designers can simply drag and drop to build UIs. Engineers can also set various props (for React or Args for Storybook) to allow designers to customize components in JSX or via UXPin’s Properties Panel. Any changes to these props render JSX, which engineers can copy/paste to begin development.

collaboration team prototyping

This Merge-powered workflow enhances collaboration and understanding between UI designers and UI developers because they’re speaking the same language with the same constraints–a truly single source of truth for your org’s component library.

UXPin has also recently announced the upcoming release of Merge Component Manager–a tool that reduces developer involvement in importing and managing coded UI components. Less reliance on engineers means designers can get up and running with Merge much faster.

“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’ve experienced using Merge.” Erica Rider, UX Lead EPX @ PayPal

Discover how UXPin’s Merge technology can revolutionize your design processes. Get access to UXPin Merge.

The post UI Design vs. UI Development – What’s the Difference? appeared first on Studio by UXPin.

]]>
Storybook-UXPin: Review of Merge Integration https://www.uxpin.com/studio/blog/review-uxpin-storybook-integration/ Thu, 17 Aug 2023 14:34:03 +0000 https://www.uxpin.com/studio/?p=31326 I decided to share my impressions on UXPin Merge Storybook integration and write about how it influenced the designer-developer collaboration in our team.  Merge is a part of UXPin – that’s technology providing two main integrations with developers’ tools (Git and Storybook). It allows you to quickly prototype using ready UI code components that are

The post Storybook-UXPin: Review of Merge Integration appeared first on Studio by UXPin.

]]>

I decided to share my impressions on UXPin Merge Storybook integration and write about how it influenced the designer-developer collaboration in our team. 

Merge is a part of UXPin – that’s technology providing two main integrations with developers’ tools (Git and Storybook). It allows you to quickly prototype using ready UI code components that are React-based for Git integration, or any framework-based for Storybook integration. I tested the Merge integration with Storybook. 


The review was written by Roy S. Kim, the CEO, and Jacobo Moreno Quiroga – Front end engineer & Digital Content Designer from Fixel Inc., the Japanese UX/UI design consulting company specializing in Design Systems.


Design with interactive Storybook components in UXPin. Build products 10x faster and bridge the gap between designers and developers. Discover UXPin Merge.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

UXPin Merge and Storybook integration 

I have both an engineering and design background, and I work on a daily basis on finding solutions to processes inside an application and then writing them in code. The designer part comes in handy when I need to consider and improve the user’s perspective.

This involves more than defining visual aesthetics, it requires considering how the application interface can be subtle enough for someone to not notice it so that they can focus on what they are trying to achieve in the app. 

I usually struggle with the back and forths between iterations of coding that aim to improve user experience. 

Those kinds of improvements are not the same as fixing the product because something doesn’t work. It’s more of intuitive work when a user reports that something feels off. Even if you apply all the design and UX good practices, the user could still complain, and they would be 100% right. This is where a coded Design System or an organized UI component library can help. If you have tested and polished the components approved for your Design System, then you can treat them as ready building blocks for new applications without spending too much time thinking or adjusting them. 

UXPin with Merge technology allows you to import all your Design System components stored in Git or Storybook to the design editor so that you can prototype with them right away. Thanks to this designers can use actual coded elements to speed up the prototyping. UXPin Merge’s motto is “The single source of truth” because what you see in the prototype is combining design with actual working code that developers use as well. 

UXPin – designing to coding 

Let’s start with just UXPin. Essentially, UXPin is a UI/UX design tool similar to Sketch, AdobeXD, or Figma. It’s similar to other competitors so you can get used to it very quickly. You can start with wireframing and end with advanced prototyping in this single tool. 

In most of the similar tools, there is a big difference between what the designer creates in the design tool and what happens in the dev environment, where the real working product is coded. Features like the inspect tab in Figma enable you to see roughly what the CSS behind a certain object would look like. However, this is not always an accurate depiction between what is designed and what is coded. 

Designers and developers essentially come from two different worlds when it comes to the tools used in their daily work. Trying to find a common language between them can lead to way too many meetings and back-and-forths. This might be the very issue that UXPin Merge aims to solve, by having “The single source of truth” which the whole team can treat as the ultimate place of the right components and documentation. 

The UXPin Merge approach 

Merge is UXPin’s technology. Essentially, what Merge does is that it brings coded Design Systems stored in Git repositories or Storybooks to UXPin. Hence, a designer can use real components in their mock-ups and prototypes.

These components are already coded in the repository, and the designer can access its different versions inside UXPin as needed. This way, the integrity of each component is never compromised. It minimizes possibilities for a designer to make mistakes and use elements that aren’t in line with the company’s standards. 

The components from your repository are stored in UXPin library 

Once you have a Design System and repositories ready to go, you won’t be really modifying them often as their purpose is to store and unify all the versions of the possible elements to speed up the product development process and create governance.

Using UXPin Merge and the imported components, controls the design process as elements are predefined. The changes can be made without a problem but it must be done by developers, so that the chances for casual mistakes are pretty low. 

Once imported, you can have a component with all its variations. In this case you can change the Type, Size, Disabled, Label, Click properties of a Button which are defined in the props of the React Component. 

These limitations actually simplify the work of a designer. They can use fully interactive and prepared elements to focus on the most crucial part – user experience. Sure; color, padding, fonts, and other visual elements are important parts of the experience, but choosing every single little detail can slow down the process.

If all of that is already sorted out in the Design System and repositories, building prototypes with real code components gets easier and faster. Also, it helps keep the consistency even if the components get updated in code as the imported UI is in sync with the components stored in devs’ libraries. No need to worry that elements will be outdated and designers will have to redesign the projects. 

Connecting Storybook 

One of the UXPin Merge integrations I got to see was Storybook. Storybook serves as a sort of developers’ Design Systems to store all the coded UI. It is used by many companies, and it’s very flexible framework-wise as it provides support for around 15 of them.

Now, for teams that are not supported by developers,  setting up a Storybook project and placing all the components there may be a struggle. However, once it’s ready, it neatly holds and displays all the components that are in the Design System. 

UXPin Merge aims to bring what is stored and defined in Storybook to UXPin so that components made in whichever framework can be used for prototyping. The integration part is very simple; grab the URL of a published Storybook project to import the components to the UXPin library for designing. I tested it and it seemed to work perfectly with React components – all the elements behaved in the design editor just as they should. 

Thoughts for the future 

The design process including UXPin Merge in it can be visualized like this: 

UXPin Merge plays a big part in Step B since it provides production-ready UI-coded components that you can use to iterate faster when creating prototypes. With a defined Design System or a component repository, you really shouldn’t worry about Step A because you most probably already have the organized components. Still, there is a possibility that you need to adjust something within the coded components, especially if you are in the middle of creating your own Design System. 

With Step C, which is the build-up step of the application, the developers look at the Merge prototype to see how code components are put together, as well as what code corresponds to which part of the design. However, they won’t just copy and paste the whole code to build the product instantly – they will still need to adjust it so that the prototype becomes a product.  

UXPin Merge seems to be a great solution for rapid prototyping and keeping the consistency thanks to making the most of Design Systems. However, it appears that certain steps are still to be covered. 

To some extent, the work of designers is limited as they mostly can use pre-prepared components, however, it saves time and prototyping with code components brings the world of design and development together. 

Want to try out the integration? Sign up for a 14-day trial!

The post Storybook-UXPin: Review of Merge Integration appeared first on Studio by UXPin.

]]>
Parsing Props for UXPin Merge Controls – A How-to Guide https://www.uxpin.com/studio/blog/parsing-props-for-merge-controls/ Thu, 17 Aug 2023 14:21:08 +0000 https://www.uxpin.com/studio/?p=35276 Our friend from PayPal, Anthony Hand, decided to share how to make designers’ lives easier using parsing props with UXPin Merge.  Merge is UXPin’s revolutionary technology that helps you import and sync your dev’s UI components from the component library in the design tool. You can bring the components via Storybook integration or Git repository.

The post Parsing Props for UXPin Merge Controls – A How-to Guide appeared first on Studio by UXPin.

]]>
Parsing Props for UXPin Merge Controls

Our friend from PayPal, Anthony Hand, decided to share how to make designers’ lives easier using parsing props with UXPin Merge. 

Merge is UXPin’s revolutionary technology that helps you import and sync your dev’s UI components from the component library in the design tool.

AnthonyHand

You can bring the components via Storybook integration or Git repository. You can also use NPM integration for importing and components without engineer’s help. Either way, you don’t need to worry about trading off between time and robust prototypes – you can have both.

It’s possible to design fully interactive prototypes extremely fast because the UI elements you use during the design process are live code. Discover more about UXPin Merge.

Reach a new level of prototyping

Design with interactive components coming from your team’s design system.

Prop Parsers for UXPin Merge Controls

As any UI developer knows, parsing and validating user inputs is as much of an art as a science. While most of the users most of the time may enter the expected values, we must always be prepared to do a little graceful massaging and tweaking, as well as error handling

In my days as a Sr. UX Designer on a DevOps team at PayPal and all of my projects are internal web-based tools, we used UXPin Merge. After we settled on the Microsoft Fluent UI library for our next generation of web apps, we embarked on the process of importing the UI library into UXPin using their Merge technology. The process was straightforward enough, though it did have a little learning curve. 

uxpin merge react sync library git

One of our first learnings with UXPin Merge was that standard parsing and validation needs applied. The Properties Panel in UXPin is, after all, just a fancy user input form. We developed a few standard parsing utilities for basic user inputs like colors and dates, for example.

As we got deeper into the UXPin Merge preparation, we soon realized that more complex UI controls would need complex JSON in the underlying control. However, surfacing raw JSON to non-technical people in UXPin would quickly kill user adoption.

JSON is a complex data model expressed as a string, created for computers, not humans. As a result, one of our most important innovations was to create an advanced multi-use parser that allowed us to gather plain text user inputs to configure complex UI controls like dropdowns, navigation lists, and data tables. 

Basic Parsing

We created a few basic parser functions in JavaScript to handle the validation for common user inputs around colors, dates, and numbers, for example. Although these were primarily created to make it easier to configure UI controls in UXPin, some of these utilities have found wider use internally. 

Parsers converted the string “50” to an integer and validated the hex color, adding back in the required # mark. Our Merge wrapper also trimmed leading and trailing whitespace from the icon name. (UXPin Editor and Props Panel view)

Color Parsing & Formatting

The Microsoft Fluent UI controls want hex values, such as “#0078d4” (a lovely shade of blue), but we wanted to allow users to use both hex values and easier to remember theme tokens (such as “themePrimary”). Plus, we wanted to support semantic tokens (e.g., “success”) and a handful of basic colors (e.g., “white”, “transparent”).

As for gracefully handling errors, we trimmed input text of whitespace and accepted valid hex values, even if they didn’t start with a # mark.

Our custom color parser gives a huge range of freedom to users and accepts all of those types of values, returning either a validated hex value for use by the UI control, or “undefined” as an error flag.

The color parser checked to see whether “themePrimary” was a color token in the theme, then retrieved its hex value for use by the icon object.

Similarly, the color parser looked up the special semantic color token, “success,” and converted it to a hex, as well. “Success” is easier to remember than an arbitrary hex value. 

Complex Parsing

As mentioned previously, many of the underlying UI controls use complex JSON for configurations, like menus, navs, and dropdowns. However, JSON is hard to read for humans, and easy to break. So instead of JSON, we invented an innovative syntax that’s much easier for regular humans to use. In addition to plain text, the syntax tokens we developed include: 

  • icon(Icon_Name | color): Any icon in Microsoft’s icon library
  • link(Display Text | URL)
  • Divider or —-: To display a divider in a list
  • * : To mark a child in a section, like in a nav or menu
  • CSV Parsing: For table rows or when commas are needed in plain text in certain controls

Note: In most cases, this special syntax is only for use within UXPin to help designers and (typically) non-technical people easily build prototypes. To build the actual web apps, developers would set up these UI controls in the standard way with JSON, event handling, etc. 

Icons & Text in Menus

Let’s look at how a user would add popup menu items to a CommandButton control in UXPin. In this example, the user clicks on the button with the text “New” to display a popup list of the types of objects the user could add, such as various file types, a folder, a user, etc. 

In the UXPin Editor, the user clicks on the Menu Items prop to view a large text editor. Our improved parser now looks ahead to determine whether a string like “File” is a regular menu item or a section heading. The star ( * ) indicates that “Document” is a child, so “File” must be a section heading. Note the usage of the icon() token, and two intuitive ways to indicate a divider

This is the view of the same CommandButton as rendered in the UXPin Prototype Preview mode. 

This powerful, innovative syntax was reused across nearly a dozen other UI controls that supported a list-style view: Dropdown, Combobox, Pivot (tab strip), Nav, ChoiceGroup (radio buttons), GroupButton, SplitButton, Breadcrumb, and more. 

Although support for icons, dividers and groups varied between controls, once UXPin users became familiar with this basic approach, they are able to easily apply the same approach across a ton of controls to create rich, interactive prototypes without knowing a lick of JSON. 

Data Tables

As you might imagine, internal web apps are data intensive and data tables are extremely common. So, one of the main drivers for developing this advanced parsing engine was to help us easily create realistic — and modestly functional — data tables in our prototypes. 

To create rich prototypes with reasonably advanced functionality, our workflow starts off with Excel. We first develop a model of the view in Excel, using the link() and icon() syntax mentioned above within each cell. Then we export that worksheet as a CSV file.

Using any text editor, we can open the CSV file and copy just the headers, or the row data, into the Headers and Rows props in UXPin, respectively. Compare this streamlined workflow to what we used to do to create tables in other prototyping tools!

The UXPin Editor view for the DetailsList’s Rows prop showing the comma-delimited cells (CSV format) with our innovative link() and icon() syntax. 

Designer’s Perspective on Parsing 

As you look through the source code for our parsers, you may have some opinions on some of the design decisions in the code, and how (relatively) inefficient or verbose the code is. You may even notice some errors. I accept responsibility for these decisions.

Keep in mind that I’m a UX designer, not a professional programmer. More importantly, I explicitly decided to optimize for readability, modularity and ease of maintenance over efficiency, per se, given my limited knowledge of JavaScript. This is open source code, so you’re welcome to borrow some or all of the code, make modifications, or offer updates and bug fixes. 

On Optimizing UXPin Merge

UXPin’s Merge technology lets any company import the exact same UI component library that they use for development into UXPin so that anyone on the team can create rich, interactive prototypes. It’s a powerful technology that can dramatically increase the velocity of design for user feedback and stakeholder reviews, and can improve developer handoff.

logo uxpin merge

However, as our team learned, there needs to be a modest investment in setting up the end user experience for success in UXPin. We made an explicit decision to optimize the UXPin user experience with smart parsing that brings maximum power while minimizing errors.

We recently ported our proprietary Microsoft Fluent UI library to an open source library which your team are welcome to experiment with and gain inspiration from. And feel free to liberally modify and/or borrow any of our parsers for your own UXPin Merge projects!

The post Parsing Props for UXPin Merge Controls – A How-to Guide appeared first on Studio by UXPin.

]]>
These Storybook Examples Will Inspire Your Component Library https://www.uxpin.com/studio/blog/storybook-examples/ Thu, 17 Aug 2023 13:59:26 +0000 https://www.uxpin.com/studio/?p=31296 Now that UXPin has a Storybook integration that breaks down design-dev inconsistencies and makes it easier than ever to manage your UI components library, you might want to take some time to look at Storybook examples. Plenty of world-renowned websites use Storybook. Look at some of the best Storybook examples that you can use as

The post These Storybook Examples Will Inspire Your Component Library appeared first on Studio by UXPin.

]]>
Browse these Storybook examples min

Now that UXPin has a Storybook integration that breaks down design-dev inconsistencies and makes it easier than ever to manage your UI components library, you might want to take some time to look at Storybook examples.

Plenty of world-renowned websites use Storybook. Look at some of the best Storybook examples that you can use as inspiration for developing your digital products.

Key players:

  • BBC
  • The Guardian
  • IBM

Take UI components directly from Storybook and import them to UXPin. Design interactive and visually stunning layouts without extensive design skills. Discover UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

BBC iPlayer Web

BBC Storybook example

BBC iPlayer Web switched to Storybook when it needed more custom components. Preview their Storybook here: BBC iPlayer Storybook.

A growing number of movie and television show producers now have streaming platforms that let people watch specific content when they like. BBC iPlayer Web makes it incredibly easy for viewers to find specific types of content by title, category, or topic.

When the streaming service started, it built its back end with Node.js. It didn’t take long, though, before the development team decided to make the migration to React. React components were an obvious improvement as the platform grew.

Around 2019, though, the team realized that its approach didn’t work as well as expected. The UX professionals and developers didn’t have a common language that helped them work toward goals. They also found it difficult to locate the components they needed to add content and update the website’s appearance.

Ultimately, the BBC iPlayer Web team realized that they were spending way too much time maintaining their component library.

Storybook became a significant tool that helped them address these problems.

BBC iPlayer Web has a public design system, so you can look at it to learn a few tricks and find inspiration when you feel stuck on a project.

The design system includes everything from iconography to navigation.

Spend some time browsing BBC iPlayer’s Storybook example. Then, visit the website. You will immediately see how the designers and developers combined components to create a tool that works exceptionally well for viewers.

bbc storybook example 2 min

Related reading: Top 8 Design System Examples

The Guardian

guardian storybook

The Guardian publishes a tremendous number of articles daily. It’s often one of the first news outlets to report on breaking news. It also has frequent articles about sports, culture, and lifestyle topics. Considering that The Guardian covers events all over the world, it needs a fast, reliable way to turn written text into published web pages.

guardian storybook examples min

The Guardian Storybook components library (access the Guardian Storybook here) streamlines the design and publication process. Building the design system, however, must have taken quite a bit of time because it includes every component that the well-designed website could possibly need. It even features slightly different versions of designs. For example, the CaptionBlockComponent Story includes:

  • with defaults
  • PhotoEssay using html
  • when padded
  • with width limited
  • with credit
  • when overlayed

No matter what type of caption block the designers want to include, they just have to search the component library, choose the correct option, and add text for the specific story.

The design team even created multiple donut graphs to fit unique circumstances.

guardian storybook donut graphs min

Of course, The Guardian also maintains designs that help readers identify what type of content they’re reading.

A Review headline doesn’t look the same as a Photo Essay headline.

accessibile headlines with storybook min

Again, it took a lot of effort to build this Storybook design system. Now that The Guardian editors and publishers have it, though, they can quickly publish coherent content that keeps readers informed without misdirecting them.

Here’s a great video about The Guardian’s Storybook component library.

IBM‘s Carbon Design System in Storybook

ibm storybook example of component library

Carbon, the design system used by IBM, primarily gets used to build digital products with specific functions, such as adding files to a project, submitting reports, and tracking an activity’s progress. IBM uses Carbon for internal and external products, so you might recognize some of the components in the Storybook UI design system.

This Storybook example contains countless components. You’ll find everything from tabs to pagination. The company just wants to make sure that it has functional tools that share an aesthetic.

The components in Carbon’s design system also tend to have extensive Stories that let coders make subtle changes when necessary.

Even the Basic Checkbox component has 184 lines of JavaScript code in its Story.

carbon checkbox examples of storybook min
example of storybook story min

A significant advantage of using Storybook is that designers and developers can see how components respond to interactions.

Three interactions with the select button:

interactions storybook min

The designer or developer can see all of these interactions result from within the same environment. They don’t need to export it to a prototyping app or add it to a designing app. The interactions happen right there to save time and meet expectations.

UXPin Merge and Storybook make product development easier than ever

Find more Storybook examples by visiting Storybook’s page. Companies like Audi, Lonely Planet, Wix, and Salesforce Lightning have public design systems you can explore.

Once you integrate these tools, you can use your Storybook components to build and test interactive prototypes. Since both tools take a code-based approach, your designers and developers can work together to create your products more efficiently than ever.

Storybook isn’t the only tool you need to build successful digital products quickly. UXPin Merge’s Storybook integration lets you import your components within one minute. It doesn’t even require any technical knowledge, especially when you maintain a public Storybook design system. Discover UXPin Merge.

The post These Storybook Examples Will Inspire Your Component Library appeared first on Studio by UXPin.

]]>
The Best React Design Patterns You Should Know About in 2023 https://www.uxpin.com/studio/blog/react-design-patterns/ Tue, 08 Aug 2023 14:00:06 +0000 https://www.uxpin.com/studio/?p=23181 There is no denying the immense popularity and practicality of React. For a long time, most web design was built with CSS, HTML, and JavaScript. React brought a much-needed sigh of relief for developers with its ease of use. The reusable components, great developer tools, and extensive ecosystem are some of the most loved features

The post The Best React Design Patterns You Should Know About in 2023 appeared first on Studio by UXPin.

]]>
The Best React Design Patterns You Should Know About 1

There is no denying the immense popularity and practicality of React. For a long time, most web design was built with CSS, HTML, and JavaScript. React brought a much-needed sigh of relief for developers with its ease of use. The reusable components, great developer tools, and extensive ecosystem are some of the most loved features of React.

Instead of the traditional approach of directly manipulating the DOM, React introduced a useful level of abstraction in the form of the virtual DOM concept. 

The library is being actively developed and maintained by React developers at the tech giant Facebook. This provides it with a much-needed edge over other frameworks and libraries.  Countless contributors in the JavaScript community also regularly contribute to refining and improving React. 

All these factors allow React to maintain its popularity among developers even though newer frameworks are constantly emerging and competing for recognition amongst frontend developers.

code design developer

There are numerous design patterns that are available in React.js. Here, we shortlist a few recommended React patterns that you should definitely know about when building web apps. 

Build prototypes with UI components from a Git repository, Storybook or through an npm. Bring the components to our design editor and create stunning layouts without designers. Request access to UXPin Merge.

Create beautiful layouts without designers

Take UI components directly from Git repo, Storybook, or through NPM and design production-ready prototypes.

Why You Should Follow React Design Patterns?

Let us first briefly recap the role that design patterns play. Simply put, design patterns are repeatable solutions to commonly occurring problems in software development.

They serve as a basic template upon which you can build up the program’s functionality according to the given requirements. 

The term ‘design pattern’ is not to be confused with a ‘design system’. We have discussed more design systems in a separate article.

designops picking tools care

Design patterns not only speed up the development process but also make the code easier to read and to maintain. 

Some common examples of design patterns include the Singleton pattern and the Gang-of-Four pattern.

In software development, design patterns are associated with two common roles.

  1. Design patterns offer a common platform to developers.
  2. Design patterns ensure that React best practices are applied.

Let’s look at them closer.

Role #1: Offer a common platform to developers

Design patterns provide standard terminology and solutions to known problems. Let us take the example of the Singleton pattern that we mentioned above. 

This pattern postulates the use of a single object. Developers implementing this pattern can easily communicate to other developers that a particular program follows the singleton pattern and they will understand what this means. 

Role #2: Ensure that React best practices are applied

Design patterns have been created as a result of extensive research and testing. They not only allow developers to become easily accustomed to the development environment but also ensure that the best practices are being followed.

This results in fewer errors and saves time during debugging and figuring out problems that could have been easily avoided if an appropriate design pattern had been implemented.

Like every other good programming library, React makes extensive use of design patterns to provide developers a powerful tool. By properly following the React philosophy, developers can produce some extraordinary applications.  

Now that you have an understanding of design patterns. Let us move on to some of the most widely used design patterns available in React.js. 

Functional vs Container Components

Components can be of two types, namely, stateful and stateless components. The difference between both is merely the presence of state or lack thereof. 

What is the state? It’s simply the data that is imported into a component. Typically data is fetched from the database.

03 1 1

In stateless components, you can not reach this.state inside it.

Stateless components are also called functional components or presentational components. In React, such components always render the same thing or only what is passed to them via props. 

Your aim, as a developer, should be to create stateless components even if there is no immediate scenario in which you would have to reuse that particular component. 

Most often developers figure out whether a component needs to have a state or not once they start writing the code as it is not always clear beforehand.

For a hierarchy of components, the best practice is to let parent components keep as much state as possible and make stateless child components. Data can be passed down via props. Speaking of children and parents, we can go to the next React design pattern.

Compound Pattern

When React developers have two or more components that work together, more likely one is the parent while the rest are children. But did you know that you can make them share states and handle logic together?

That’s what the compound component React pattern is all about. The compound components API shows relationships between components and allows them to communicate in a flexible way.

If you want to know more about it, read this article by LogRocket about understanding React compound components.

Conditional Rendering

Conditions are the foremost tool in the arsenal of any software developer. 

In the process of writing React components, the need often arises to render a certain JSX code based on the state. This is achieved through conditional rendering.

04 1 1

Conditional rendering is very useful as it allows you to create distinct components based on your needs and then render only the ones that are required by the application.

For instance, conditional rendering can be used to display different messages to the user based on the login status of the user. The message will be subject to the value of the prop isLoggedIn.

Render Props

We discussed how design patterns are there to solve common problems. Render props are available in React to help us solve the problem of logic repetition. 

According to official React documentation, render props are defined as a ‘technique for sharing code between React components using a prop whose value is a function’.

Render props prove really handy as they allow us to share the same state across different components. Instead of hardcoding the logic inside each component, you can use a function prop to determine what to render.

Some popular libraries that make use of render props include Formik, React Router, and Downshift.

Controlled Components

Web forms are a common requirement in a large number of applications and controlled components are React’s answer to handling form state.

The controlled component takes the state through props. It can notify any changes by means of callbacks like onChange

Parent components can control it by handling the callback and managing its own state meanwhile, the new values are passed to the controlled component as props.

By default React forms have support for both controlled and uncontrolled components. It is highly recommended that you use controlled components. 

The following code snippet shows a controlled component.

<input type = "text" value = {value} onChange = {handleChange} />

React Hooks Pattern

Hooks are a relatively new addition to React and were introduced in React 16.8. 

These functions allow developers to use React without classes. There are a number of different pre-built hooks available like the Effect Hook ( useEffect ) and the State Hook. 

For a complete list of available hooks, you can visit the Hooks API Reference.

Apart from the pre-built hooks in React, you can also create your own hooks. This allows you to extract the component logic and create reusable functions.

Hooks are a welcome addition to React and the developer community really appreciated this new addition with great enthusiasm.

However, it must be kept in mind that sometimes hooks can become a little tricky to work with when the arguments are objects, arrays, or functions. This can become somewhat confusing.

On the other hand, custom hooks are easy and simple to use and they also provide immense benefits to the developer.

Higher-Order Component Pattern

When it comes to more advanced React patterns, there’s higher-order component pattern, referred to as HOC. It’s applied whenever React developer wants to reuse logic within application.

HOC takes a component as an argument and when it returns it, it adds data and functionality to the component.

For instance, when using React with Redux, you can pass the component through connect function and it will get injected with data from the Redux store. The values that you get will be passed as Props.

HOC is not a part of the core React API. It’s a JavaScript function. Nonetheless, it is in line with the nature of React functional components, that’s composition over inheritance.

Use Most Common React Design Patterns

React has proven to be a highly popular library. The community is among the fastest-growing developer communities online.

You will also find lots of useful web development resources available online that make it easy to learn react.js and adapt to it.

The power of React is due to its amazing features and the robust architecture that it offers. One of the most prominent and widely loved features of React is its design patterns.

Design patterns are in fact what gives this library its extraordinary practicality and usefulness. They make code optimization and maintenance easier.

They allow developers to create apps that are flexible in nature, deliver better performance, and produce a codebase that is easier to maintain.

We have discussed a few popular React design patterns like stateless functions, render props, controlled components, conditional rendering, and react hooks. 

However, it must be noted that react design patterns are not just limited to these patterns and there are several different design patterns that you can implement. Once you get familiar with the usage of the common design patterns, it will become easier to graduate to others. 

Build React-Based Prototypes with UXPin Merge

Capturing the true essence of React application development can be made easier by the use of the right technology. UXPin Merge, you can import React code components to UXPin and use them to build powerful prototypes.

With Merge technology, you can easily put together code-based prototypes that can be quickly translated into code. Create beautiful layouts without designers on board. Request access.

The post The Best React Design Patterns You Should Know About in 2023 appeared first on Studio by UXPin.

]]>