Design Systems Archives https://www.uxpin.com/studio/blog/category/design-systems/ Mon, 04 Nov 2024 13:25:45 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 Tailwind Design System – How to Start https://www.uxpin.com/studio/blog/tailwind-design-system/ Mon, 04 Nov 2024 10:44:45 +0000 https://www.uxpin.com/studio/?p=55160 To build a Tailwind Design System in UXPin, begin by leveraging the built-in Tailwind UI library, customizing foundational components for brand alignment. Use UXPin’s AI Component Creator for unique elements, set global and local themes for consistent styling, and add icons with Heroicons and patterns with Hero Patterns. Document each component to maintain accessibility and

The post Tailwind Design System – How to Start appeared first on Studio by UXPin.

]]>
How to design a product

To build a Tailwind Design System in UXPin, begin by leveraging the built-in Tailwind UI library, customizing foundational components for brand alignment. Use UXPin’s AI Component Creator for unique elements, set global and local themes for consistent styling, and add icons with Heroicons and patterns with Hero Patterns.

Document each component to maintain accessibility and scale. For handoff, UXPin exports HTML with Tailwind classes, ensuring a streamlined design-to-development process. This approach creates a flexible, consistent, and production-ready design system. Try UXPin and build your design system today.

Reach a new level of prototyping

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

What is Tailwind Design System?

Tailwind design system leverages Tailwind CSS’s utility-first approach to create a cohesive and scalable collection of design elements, such as colors, typography, spacing, and components.

By organizing and styling components with Tailwind’s utility classes, a Tailwind design system promotes consistency, flexibility, and rapid development across projects. It simplifies the implementation of UI elements directly in code, ensuring that designers and developers work seamlessly together while maintaining a unified look throughout the product.

Why use Tailwind for a Design System?

Using Tailwind for a design system offers several advantages:

  1. Consistency Across UI: Tailwind’s utility classes enable a consistent styling approach, ensuring every component and element follows the same design rules.
  2. Scalability and Flexibility: Tailwind’s modular structure allows you to build reusable, adaptable components that scale well across projects.
  3. Rapid Development: Utility classes make it easy to create and maintain design elements directly in code, reducing custom CSS and streamlining collaboration between design and development teams.
  4. Customization: Tailwind’s configuration options allow for tailored themes and responsive design, supporting brand-specific needs within the design system.

Tailwind CSS can be a powerful choice for companies looking to create fast, scalable, and cohesive design systems across their digital products. OpenAI uses Tailwind CSS for its marketing site, leveraging its quick styling capabilities and utility classes for building a cohesive, clean interface.

GitHub Next and Shopify also integrate Tailwind into their marketing and SaaS platforms, benefiting from Tailwind’s modularity, which aids in maintaining a consistent brand aesthetic across a variety of complex pages.

Building a Tailwind Design System in UXPin

Creating a design system with Tailwind CSS in UXPin leverages the power of code-backed components and UXPin’s Tailwind UI integration. This guide outlines the process step-by-step, helping you build a robust, responsive design system.

Start with the Tailwind UI Library in UXPin

UXPin offers a built-in Tailwind UI library integrated via Merge. Begin by exploring the 18 pre-built components available, including essential UI patterns and layouts. These built-in components are fully customizable, providing a solid foundation for your system.

Create Custom Tailwind Components with UXPin’s AI Component Creator

For unique elements, UXPin’s AI Component Creator streamlines the process. Describe the component you need in simple language (e.g., “responsive card with hover effects”), and the AI will generate it using Tailwind classes. Once generated, save it to your component library to expand your design system.

Customize Components and Patterns

Tailwind’s utility-based styling allows for flexible customizations. Tailor colors, sizes, and typography directly within UXPin to align with your brand’s visual guidelines. Use these foundational components as the building blocks for more complex elements in your design system.

Set Up Global and Local Themes

Tailwind UI in UXPin supports global and local theme management, allowing you to establish a consistent color palette, typography, and spacing across your design system. For consistent branding, use global themes. For tailored component variations, apply local themes to specific pages or elements.

Add Iconography and Patterns with Heroicons and Hero Patterns

Enhance your design with Tailwind’s Heroicons, high-quality SVG icons perfect for interactive elements. Hero Patterns provide seamless SVG background options, adding polish to your UI without heavy custom CSS work. These elements can be added directly within UXPin, making them available across your design system.

Documentation and Testing for Consistency

Ensure your components align with Tailwind principles and meet accessibility standards. Document each component, its purpose, and usage, using UXPin’s Design System Library. This makes it easy to share and scale the system with your team.

Developer Handoff with Spec Mode and HTML Export

One of the biggest advantages of Tailwind in UXPin is the streamlined design-to-development process. Once your design is complete, UXPin allows you to export HTML with Tailwind classes or share the design in Spec Mode for detailed, production-ready handoff. This minimizes manual coding and ensures your design matches the final product.

Use Tailwind Design System in UXPin

Using UXPin and Tailwind together empowers your team to create a flexible, scalable design system. From building foundational components to handing off production-ready HTML, this approach brings consistency, speed, and clarity to the design-to-development workflow. Discover UXPin Merge.

The post Tailwind Design System – How to Start appeared first on Studio by UXPin.

]]>
Design System Adoption – 3-Step Strategy https://www.uxpin.com/studio/blog/adopting-design-system/ Tue, 29 Oct 2024 11:40:15 +0000 https://www.uxpin.com/studio/?p=35726 “The success of a design system hinges on its adoption. Until you have users using your product, it’s not successful.” – Amber Jabeen. A while back, UXPin hosted Amber Jabeen, DesignOps Director at Delivery Hero MENA (talabat), for a webinar titled: Enterprise Design System – How to Build and Scale. This article covers the second

The post Design System Adoption – 3-Step Strategy appeared first on Studio by UXPin.

]]>
Adopting Design System with Delivery Hero

“The success of a design system hinges on its adoption. Until you have users using your product, it’s not successful.” – Amber Jabeen. A while back, UXPin hosted Amber Jabeen, DesignOps Director at Delivery Hero MENA (talabat), for a webinar titled: Enterprise Design System – How to Build and Scale. This article covers the second half of Amber’s talk, which focuses on Delivery Hero’s design system adoption strategy.

Achieve greater design system adoption, consistency, and cohesion with UXPin Merge. Sync your design system’s component library to UXPin’s design editor to create a single source of truth across the organization. Request access and experience Merge technology today.

Reach a new level of prototyping

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

What is Design System Adoption?

Design System Adoption is the process by which a design system is accepted, implemented, and actively used by an organization’s design, product, and development teams. A design system is a comprehensive collection of reusable components, guidelines, and standards that ensures consistency and efficiency in product design and development.

Adoption involves making sure that these components, patterns, and guidelines are integrated into daily workflows and are embraced by everyone involved in the product lifecycle.

Delivery Hero’s Design System Adoption

After trying many initiatives, Amber and her team developed a three-component design system adoption strategy for Delivery Hero:

  • Gamify
  • Socialize
  • Celebrate

A “Consistently Delightful” Vision

Amber’s team recognized that they had to treat their design system like any other product to increase adoption. The first step was defining a vision–a Northstar to guide their strategies.

Using input from stakeholders and team members, the team came up with: “Deliver a consistently delightful user experience across all platforms.” 

The design system team emphasized consistently delightful to highlight the vision’s motto and principles.

Consistently (motto):

“Always…without exceptions. Don’t make me think.” The idea is that design consistency creates a more intuitive user experience where users don’t need to learn the UI or its features.

Delightful (principles):

  • talabat cares: Product experiences must show we care about our users–both design system users and the product’s end-users
  • Made for me: A personalized experience
  • Fast: As a delivery company, they want to deliver fast
  • Simple: Intuitive user interfaces
  • Fun: An enjoyable user experience

With a clear vision, Delivery Hero’s design system team developed its three-component adoption strategy.

Step #1 Gamify DS Adoption

One of the team’s successful strategies was gamification. They realized to adopt the new design system; many team members would have to abandon their existing templates and start from scratch. So, Delivery Hero’s gamification strategy made switching to the design system fun and competitive.

Adoption Tiers

The design system team designed gamified adoption tiers aligned with the system’s vision. The aim was to get team members to start small and scale their usage. Once they completed a “level,” the DS team encouraged users to pursue the next target–as you would in a video game.

  • Bronze: Foundations (design tokens)
  • Silver: Consistent and cohesive (components)
  • Gold: Delightful experience (voice & tone, microinteractions, haptics, transitions)
  • Platinum: Premium experience (motion, dark theme, voice UI)

The team created a poster of the design system’s tiers and associated UI patterns and posted them around workspaces to remind people of the “game” and its “levels.”

Design System Dashboard

It was important for team members to visualize their progress to know what they had to do to progress. The DS team created a Discovery Squad dashboard to visualize the user’s adoption and progress towards the next tier.

Step #2: Socialize to Boost Adoption

designops increasing collaboration talk

The second component of the design system’s strategy was “socializing the design system with community-driven initiatives to keep people invested and interested.”

You’ll notice a consistent theme of fun and inclusion with Delivery Hero’s socialize initiatives, which aligns with the design system’s vision.

Design system naming competition

Amber’s team invited everyone to take part in naming Delivery Hero’s design system. They sent out a company-wide mailer asking team members to submit names.

They narrowed the options down to two and voted for the “Marshmallow Design System.” Delivery Hero employees feel a sense of ownership for Marshmallow because they were part of the naming process.

The strategy was a success for the design system team because they immediately had team members invested and engaged.

Marshmallow’s avatar, hashtag, and emoji

To solidify Marshmallow’s identity and raise further awareness, the DS team created an avatar, hashtag, and emoji, which they use across internal communications.

Open design system showcase event

The team hosted events to engage with users and asked questions to encourage live feedback and discussions:

  • How are we [design system team] doing?
  • How do you find working with the design system?

The aim was to gather new insights and ideas from users to improve the design system. When people feel they’re being heard and see their contributions added to the design system, they take ownership and become advocates, ultimately leading to further adoption.

They even served marshmallows to team members to keep events lighthearted and fun.

Feedback surveys

The DS team used surveys to engage further and gather feedback about different parts of the design system.

Design system guild

The Marshmallow Design System Guild included team members across Delivery Hero’s brands to discuss challenges and share ideas. The aim is to learn from each other and grow the Marshmallow community.

Newsletter

A Marshmallow email newsletter helped the design system team share updates and information with users while keeping stakeholders informed and part of the conversation.

Step #3: Celebrate the Adoption

In her talk, Amber says celebrating process is the most important adoption strategy component. The Marshmallow team acknowledges and celebrates every small win as a symbol of progress towards 100% adoption.

“We celebrated our small wins, which led us to really big wins.” – Amber Jabeen.

The team was “very good at celebrating,” as Amber puts it. When they reached an important milestone, like completing 70% of Marshmallow’s design language, they celebrated. They gave acknowledgments for various achievements across company channels. They used photos and videos to share celebratory moments across the organization.

Amber notes in her presentation:

  • We celebrated adoption tiers for each of our squads in monthly newsletters, All Hands, Slack channels, etc.
  • Celebrating adoption tiers motivated teams to keep making progress towards bigger goals and encouraged contribution.
  • The next step is to start rewarding contributions to the design system. For example, making it part of the organization’s performance reviews would encourage adoption and contributions.

“You can build a design system, but you can’t scale it without a healthy dose of organic contributions. A great way to do that is by rewarding people who contribute to the system.” – Amber Jabeen.

Showing Impact

designops efficiency person

Marshmallow’s team measured growth and used graphs to present the results to team members and stakeholders. Some of the DS team’s key wins include:

  • Marshmallow reduced design debt by approx. 20% month over month. The DS team was able to measure this impact from their initial experiments. Read about getting buy-in for Delivery Hero’s design system here.
  • By designing 80% of the product’s component library, the DS team left room for creativity and new components. Marshmallow’s component library reduced front-end effort by approx. 40% in new features.
  • Component adoption = consistent and coherent experience. Developers reach out to the Marshmallow team when they notice a component not in the library, asking for advice, which drives conversations around scaling the design system.

Marshmallow’s Successful Strategies

  • It takes a tribe to build and run a design system. Build cross-functional partnerships. Even with a dedicated design system team, you can only achieve success with help and advocacy from stakeholders, leaders, and team members.
  • A sustainable adoption strategy is community-driven. When you want to scale a design system, find ways to include the organization by designing strategies that rally everyone around its growth and success. Always be available. Reach out to team members. Deliver five-star service to your design system users.
  • Give recognition and celebrate small wins. As we outline in “Component Three,” celebrating small wins leads to bigger wins and wider adoption. People like to be recognized, so celebrate and encourage progress.
  • Quantify success and communicate 360. Base success on your value proposition and what you set out to achieve. Use metrics to showcase progress towards achieving your design system’s goals. Communicate this progress 360 degrees to everyone in the organization, including stakeholders, partners, sponsors, team members, etc.
  • Rinse and repeat! Amber says it’s crucial to find what works and repeat this strategy to scale adoption across the organization.

Watch Amber Jabeen’s talk, “Enterprise Design System – How to Build and Scale,” for the complete story about Delivery Hero’s journey to creating the Marshmallow Design System.

Scaling a Design System With UXPin Merge

As we’ve learned from Delivery Hero’s story, scaling a design system and achieving organization-wide adoption is a challenge.

uxpin merge comparison 1

The DS team must encourage designers to use a UI kit and engineers to use a component library. No matter how good your design system is, designers and engineers still speak different languages.

With UXPin Merge, designers and engineers use the exact same component library. Merge syncs components from a repository to UXPin’s editor, giving design teams the same interactive code components to build prototypes as engineers use for the final product. 

The design system team can program each component’s props (or Args for our Storybook integration), including interactions, so designers only have to focus on building products. An easier workflow and less work mean greater enjoyment and wider adoption.

Find out how to scale your design system while enhancing cross-functional collaboration with the world’s most advanced code-based design tool. Request access to Merge.

The post Design System Adoption – 3-Step Strategy appeared first on Studio by UXPin.

]]>
13 Best Design System Examples in 2024 https://www.uxpin.com/studio/blog/best-design-system-examples/ Fri, 18 Oct 2024 12:32:46 +0000 https://www.uxpin.com/studio/?p=30873 Design system is a set of components, rules, style guides, and documentation used to build a coherent and on-brand interface of a product. Most brands create their own design system and we prepared a list of thirteen most popular design systems that you can learn a lot from. Those and other design system examples can

The post 13 Best Design System Examples in 2024 appeared first on Studio by UXPin.

]]>
Top 8 DS

Design system is a set of components, rules, style guides, and documentation used to build a coherent and on-brand interface of a product. Most brands create their own design system and we prepared a list of thirteen most popular design systems that you can learn a lot from. Those and other design system examples can be found in our design system repository called Adele.

Boost design system adoption and governance with UXPin Merge. Bring all interactive components from your design system to the editor, build fully interactive prototypes, and keep your designs consistent. Read more about UXPin Merge.

Reach a new level of prototyping

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

What is a Design System?

A design system is a collection of all design resources that a product team may use to build user interface of their app, website, eCommerce store or any other UI design they need to develop.

Design systems aren’t only for designers. They are also for developers, as they contain all code snippets and development resources with necessary front-end code together with documentation as well as design guidelines, relevant plugins, design patterns, style guides, reusable components, rules plus guidelines, and all other building blocks useful for web design and development workflow.

design system 2

These design systems are then hosted as websites online and can be publicly available (they are open-source design systems) or internal, whatever the brand decides.

We can think of a design system as a vast data library that acts as a valuable document with applicable instructions and examples, product design and coding guidelines, and a part of the UI kit all at the same time.

As you can see, there are many product design concepts related to design systems. If you want to learn to differentiate design systems from pattern libraries, component libraries, and UI kits, read our previous article on the topic: The difference between design system, pattern libraries, style guides, and component libraries.

Why Are Companies Building Unique Design Systems?

Companies like Shopify, Google, AirBnB, and other are building their own unique design systems because they want:

  • Consistency – design systems act as a single source of truth for design and development.
  • Transparency – developers can use the design system components directly, without needing to interpret design decisions.
  • Scale – designers are able to build prototypes faster and streamline developer handoff.
  • Reusability – design systems facilitate the creation of prototypes with consistent components that can be shared within the organization.
  • Clarity – design systems help ensure that design decisions are based on shared knowledge, making it easier for team members to understand and contribute effectively.

What is There to Learn from Design Systems?

The majority of design systems follow rather general setup patterns.

The system often features its top navigation with the main categories: Design, Code, Language, Components, etc.

Each of these main categories has its subcategories that discuss things in more detail, making the most out of the atomic design structure. For instance, these subcategories could be something like Typography, Color, Forms, Banners, etc.

Following this intuitive navigation can get you valuable information about best practices in terms of design.

The Benefits of Creating a Design System

With a well-built design system in place, businesses can considerably improve their teamwork and streamline decision-making process, but that’s not all that you can get from creating a design system.

Such collection of guidelines, elements, and data minimizes communication issues between designers and developers and minimizes the room for potential UX design bugs or acquiring UX debt.

What’s more, having such a reference-rich library significantly reduces the necessary time to go from a prototype to an actual product.

For example, PayPal uses Fluent UI together with Merge technology. This allows them to incorporate the interactive components to the UXPin library. That way, both designers and product team members alike can easily access these components and design with them over and over again.

Design systems are a great way to minimize the disconnect between designers and developers but are still not the ideal solution on their own. Thanks to the Merge technology revolution, product team members can easily use the same tools and improve their DesignOps workflow processes. This means that both developers and designers can access and use the same UI elements from one single source. 

Design System Challenges and Solution

Even when companies try to create their design system, specific issues and consistency disconnects can still happen, especially when maintaining all the elements, documentation and code. 

Learn more about design system challenges and solutions from one of the top design leaders – Johnson & Johnson. During our webinar, the J&J team shared all their best practices. 

Example 1: Porsche Design System

Zrzut ekranu 2024 05 29 o 13.25.31

The Porsche Design System is an exemplary model due to its comprehensive, well-documented, and high-standard approach to design and implementation, making it a valuable reference for anyone looking to create top-tier web applications.

The Porsche Design System stands out because it provides the essential design fundamentals and elements required for creating visually appealing and high-quality web applications. One of its key strengths lies in its pixel-based libraries for Figma and then coded ones in UXPin, which streamline the design process for digital creators. Additionally, it includes coded Web Components and detailed usage guidelines, ensuring that the implementation is as smooth and consistent as the design.

What truly sets this system apart is its adherence to the rigorous Porsche quality standards and corporate design principles. Every component is meticulously built and tested, guaranteeing not only aesthetic excellence but also functional reliability. This holistic approach ensures that the final products are both beautiful and robust, reflecting the esteemed Porsche brand.

Example 2: Google Material Design System

Google Material Design System example from website

One of the most popular design system is Google’s Material Design. Google created and publicly shared their Material Design System that goes into the tiniest details regarding everything there is to know about the design and design principles. Every UXPin user can easily use the Material Design components as they are one of the UXPin libraries. 

Thanks to this system, users can get valuable information that perfectly unifies UI and UX across different devices, platforms and input methods.

Material Design allows other brands and individuals to have a strong foundation for building upon when it comes to their own approach to atomic design, industry innovation and unique brand expression.

The main features of the Google Material Design System include:

  • Starter Kits
  • Design Source Files
  • Material Theming
  • Layout
  • Typography
  • Color
  • Components
  • Mobile Guidelines

Google’s Material Design System looks very mature. It has a lot of design guidelines, but it also contains documentation about UI components that are used in development. Did you know that such components can be used in design? Bring your developers’ components to design with UXPin’s Merge technology. Request access to UXPin Merge.

Example 3: Apple Human Interface Guidelines

Apple design system is called Human Interface guidelines and it is one of the best design systems

Apple has one of the top design system. It is called Apple Human Interface Guidelines and it presents a vast and rather valuable design system resource for the web design essentials and pattern libraries but downloadable templates. The iOS UI kit library is also available with a UXPin account. 

The system follows Steve Job’s design principles:

  • Craft with great precision and attention to detail
  • Emphasize user experience and connection with the users
  • Focus on what’s truly important on a larger scale
  • Generate wanted user reactions thanks to the specific design language and practices
  • Utilize the friendly aspect of high tech for both novice and advanced users
  • Simplify everything

Features of Apple Design System

Apple Human Interface Guidelines consist of practical resources, visual guidelines and style guides for both designers and developers for iOS, macOS, vOS and watchOS.

Its includes design system documentation about using:

  • Menus
  • Buttons
  • Icons and Images
  • Fields and Labels
  • Window and View
  • Touch Bar
  • Indicators
  • Selectors
  • Extensions
  • Visual Design
  • Visual Index
  • App Architecture
  • System Capabilities
  • User Interaction
  • Themes

Example 4: Atlassian Design System

Atlassian design system is one of the best

Atlassian Design System is one of the best out there. Atlassian Design System focuses on providing valuable assistance to teams from all over the world by making their collaboration seamless and easy. Atlassian Design Guidelines are also a part of UXPin’s library collection. 

Atlassian design philosophy is all about utilizing the digital experience to improve the productivity and overall potential of teams and individual team members, perfectly reflected in their globally used collaboration tools Trello and Jira.

That said, Atlassian Design System features agile practices and efficient tracking of every single step within a project that ultimately yields valuable results in terms of product delivery and development.

Features of Atlassian’s design system

Atlassian’s design system includes

Example 5: Uber Design System

Uber design system is the best design system for automotive

According to Uber, movement ignites opportunity and that’s how they structured their design system.

After all, Uber service bases on movement with ride-hailing, peer-to-peer ridesharing, food delivery and micro-mobility involving scooters and electric bikes.

For this type of service to work impeccably, from sub-brands to internal ones and products to programs, Uber requires an effective design system that the company shares with the rest of the world.

Features of Uber Design System

Main features of Uber Design System to copy to your design system example:

  • Brand Architecture
  • Composition
  • Tone of Voice
  • Motion
  • Illustration
  • Photography
  • Iconography
  • Color
  • Logo
  • Typography

Example 6: Shopify Design System Polaris

Shopify is the best design system because it contains guides and components that create a wonderful user experience

Shopify is a global eCommerce platform that provides everything a brand may need to run and grow its business in one place.

It’s no wonder that their design principles focus on creating a better and more accessible commerce experience.

Shopify’s public design system called Polaris encompasses the company’s core values:

  • Be caring and considerate to the users
  • Provide people with the right tools to accomplish whatever they set out to do
  • Enjoy the top level of craftsmanship that matches the brand image
  • Minimize the hustle by providing accurate and quick solutions
  • Always build upon users’ trust
  • Make the users feel comfortable with using the products

Polaris Design System provides an easy-to-follow and practical style guide for designing for the Shopify platform. It offers a vast knowledge base on utilizing UI components, visual elements, content, and design language for creating a better user experience and product in general.

Features of Shopify’s Design System

Shopify’s design system example includes main features that follow the practices mentioned above to a tee:

  • Data Visualization
  • Accessibility
  • Interaction States
  • Colors
  • Typography
  • Icons
  • Illustrations
  • Spacing
  • Sounds
  • Resources

Example 7: Carbon IBM Design System

IBM named their design system Carbon and here is its website screenshot

IBM operates on a global scale by meeting large enterprise IT needs.

Their services range from business consulting and financing, software development and IT hosting/management to software-to-hardware products.

IBM’s core belief revolves around making constant progress, be that human condition, society or a brand, by utilizing science, reason and intelligence.

According to IBM, a good design is not only a mere requirement but an actual responsibility to the users.

Features of IBM’s Design System

This is where their Carbon Design System shines with its main features, offering plenty of tools and visual resources for Adobe, Axure and Sketch designers as well as developers:

  • Data Visualization
  • Patterns
  • Components
  • Guidelines
  • Tutorials

UXPin users can conveniently find everything they need from Carbon in their account as well. 

Example 8: Mailchimp Design System

Mailchimp design system can teach us a lot about building long-lasting design systems

Mailchimp has come a long way from being a renowned email marketing leader to providing an all-in-one marketing platform that goes beyond email only.

Mailchimp has one clear goal: to help small businesses grow while remaining true to their brand identity and image.

Features of Mailchimpr’s Design System

That is also one of the many reasons behind creating the Mailchimp Design System and its main features that focus on creative expression, better user experience and top quality:

  • Data Visualization
  • Grid System
  • Color
  • Typography
  • Components

Example 9: Salesforce Lightning Design System

Salesforce has a great design systems

Salesforce goes above and beyond to deliver a personalized experience to its users through the integrated cloud-based CRM software.

The purpose of the Salesforce CRM is to improve marketing, commerce, IT, service and sales efforts – and allows their users to do the same with their users.

Their design philosophy is reflected in the Hawaiian word for intentional family, Ohana, with four core values that drive their company actions and overall culture:

  • Innovation
  • Equality
  • Trust
  • Customer Success

Features of Salesforce Design System

Salesforce has put out their own Lightning Design System that allows everyone working with content management systems to learn and benefit from its main features:

  • Design Guidelines
  • Platforms
  • Accessibility
  • Components (and a lot of them)

Lightning components are a part of the UXPin account libraries as well. 

Example 10: Pinterest Design System

pinterest design system called gestalt

Pinterest created a design system that they named Gestalt. The company goes above and beyond to create a visually rich and personalized experience for its users, enabling them to discover, collect, and curate ideas from across the web. Through its intuitive platform, Pinterest empowers users to explore a vast array of topics, from home decor to recipes, and beyond, making it a leading destination for creative inspiration.

The purpose of Pinterest’s design system is to enhance every aspect of the user experience by promoting consistency, scalability, and accessibility across its platform. By leveraging the design system, Pinterest ensures that both internal teams and external partners can create cohesive, user-friendly interfaces that align with its core visual discovery mission.

Pinterest’s Design Philosophy: Pinners First

Pinterest’s design philosophy is driven by a commitment to empowering users (“Pinners”) with a seamless and delightful experience, anchored by these core values:

  • Inspiration: Encouraging creativity and helping users discover ideas that fuel their passions.
  • Simplicity: Delivering an intuitive, easy-to-navigate interface that puts the user experience at the forefront.
  • Empathy: Designing with the understanding of users’ diverse needs and backgrounds.
  • Scalability: Creating a system that can grow and adapt as Pinterest evolves, while maintaining consistency across all platforms.

Features of the Pinterest Design System

Pinterest has developed its own design system to ensure that designers and developers can create unified, visually consistent experiences.

  • Design Guidelines
  • Responsiveness
  • Accessibility
  • Reusability

Example 11: Capital One Design System

Capital One goes above and beyond to deliver a user-centric and personalized experience across its digital financial services. Through its intuitive platform, Capital One empowers users to manage their banking, credit cards, and personal finance with ease, offering tools and resources that cater to diverse financial needs.

The purpose of Capital One’s design system is to ensure consistency, scalability, and accessibility across its products, enabling designers and developers to create seamless, secure, and engaging experiences for millions of customers. This system drives the creation of unified interfaces and interactions that align with Capital One’s mission to make banking smarter, faster, and easier.

Capital One’s Design Philosophy: Customers First

Capital One’s design philosophy is anchored in a commitment to providing customer-centric, intuitive digital experiences. It reflects the company’s dedication to putting customers at the heart of every design decision. The core values that guide their design efforts are:

  • Innovation: Constantly exploring new technologies and design patterns to stay ahead in the digital financial space.
  • Simplicity: Prioritizing easy-to-use interfaces that streamline financial tasks for users.
  • Trust: Building secure, reliable digital products that foster customer confidence in managing their finances.
  • Accessibility: Ensuring inclusive designs that accommodate all users, regardless of their abilities or backgrounds.

Features of the Capital One Design System

Capital One’s design system offers a robust framework that enables designers and developers to create cohesive, scalable digital experiences. It is built with the flexibility to support a wide range of financial products while maintaining a consistent look and feel across platforms.

Through its thoughtfully crafted design system, Capital One ensures that its digital products provide a cohesive, intuitive, and accessible experience for its users. The system empowers teams to create financial tools that are not only functional but also user-friendly and secure, driving customer satisfaction and trust across every touchpoint.

Example 12: Intuit Design System

best design system intuit

Intuit goes above and beyond to deliver intuitive, user-friendly experiences that simplify financial management for individuals and businesses alike. From TurboTax to QuickBooks, Intuit’s suite of products is designed to make complex financial tasks easier, helping users manage their taxes, accounting, and personal finances with confidence.

The Intuit design system serves as the backbone for creating consistent, scalable, and efficient experiences across its wide range of financial products. By using a unified design framework, Intuit ensures that its customers can seamlessly navigate their financial journey, whether they’re filing taxes or managing business finances.

Intuit’s Design Philosophy: Design for Delight

Intuit’s design philosophy is centered around delivering delightful user experiences that simplify complex financial processes. The company is guided by key principles that ensure every interaction is crafted with care, empathy, and innovation. These principles include:

  • Empathy: Designing with a deep understanding of users’ financial challenges and needs.
  • Craftsmanship: Striving for the highest quality in both design and functionality to make financial management easier.
  • Speed: Ensuring that users can complete tasks quickly and efficiently, reducing the time spent on financial work.
  • Trust: Building experiences that foster trust through transparency and reliability in financial data.

Features of the Intuit Design System

Intuit’s design system provides a robust framework for designers and developers to create seamless, consistent, and scalable experiences across its products. It equips teams with the tools and guidelines needed to deliver intuitive and delightful user interfaces.

Example 13: Adobe Design System

design system example adobe

Adobe has long been at the forefront of delivering innovative tools that empower creatives, designers, and businesses to bring their visions to life. From Photoshop to Illustrator and beyond, Adobe’s suite of products is known for its powerful functionality and user-centric design. To ensure a consistent and seamless user experience across its diverse portfolio, Adobe developed a robust design system that harmonizes its visual language, components, and interactions.

The Adobe design system, called Spectrum, acts as a foundational framework that enables designers and developers to build cohesive, scalable, and accessible experiences across Adobe’s extensive product lineup. This system helps unify the creative tools while allowing for flexibility and innovation in how products evolve.

Adobe’s Design Philosophy: Create for All

Adobe’s design philosophy is centered around empowering users to unlock their creativity, whether they are professionals, hobbyists, or businesses. The company is guided by core principles that inform every design decision, ensuring its products are accessible, powerful, and inspiring. These principles include:

  • Creativity: Enabling every user to express themselves through intuitive and powerful tools.
  • Consistency: Providing a unified experience across Adobe’s products, so users can seamlessly switch between them.
  • Inclusivity: Designing for all users, regardless of their abilities or backgrounds, ensuring that creativity is accessible to everyone.
  • Scalability: Building a design system that grows with Adobe’s expansive product suite, ensuring future-proofed design decisions.

Features of the Adobe Design System

The Adobe design system is a comprehensive toolkit that supports designers and developers in creating consistent, scalable, and user-friendly experiences across all Adobe products. It combines design guidelines, reusable components, and accessibility features to create a seamless experience for users.

Make the Most of Design System: the UXPin Merge Way

Building and maintaining a design system can be challenging when there’s a communication gap between design and development teams. UXPin Merge eliminates these issues by enabling designers to work with the exact same components developers use in production. This means no more inconsistencies between your designs and the final product.

With UXPin Merge, your design system becomes more than just a static library of assets. It evolves into a dynamic, code-powered toolkit where each component is linked directly to the source code. Every UI element in your design matches production code perfectly, reducing the need for handoffs and extensive reviews.

Why UXPin Merge?

  • Create with Production-Ready Components: Drag-and-drop coded components directly into your designs. Forget about “faking” interactions or aligning to colors—your prototypes now use the exact same code components developers will use in the final build.
  • Effortless Consistency: When your design system components are updated in the codebase, they’re automatically updated in UXPin. This ensures that every change is reflected across the entire design, reducing time spent on maintenance.
  • Real-Time Collaboration: No more back-and-forth between teams. Designers can leverage Merge to build and test fully functional, high-fidelity prototypes without waiting on developers. This accelerates the design process and shortens project timelines.
  • Scalable and Reliable: Easily manage complex design systems with Merge’s seamless integration with code repositories like Git or Storybook. As your design system scales, Merge helps maintain a single source of truth, ensuring all teams have access to the latest components and documentation.

See Your Vision Come to Life—Exactly as You Imagined

With UXPin Merge, you’re not just designing the look and feel—you’re building the final product’s foundation. Avoid costly inconsistencies, improve collaboration, and watch as your design system evolves into a powerful bridge between design and development.

Ready to build the perfect design system with UXPin Merge? Start your journey today and experience the efficiency, consistency, and satisfaction of turning your design vision into reality. Request access to UXPin Merge.

On the other end, developers get the prototype preview and continue to work with the available production-ready elements.

Which Design System Example is Your Favorite?

Design systems consist of tons of UI components and guidelines that are meant to optimize and improve the design efforts and promote consistency among the teams.

However, if the design system is poorly maintained and implemented, the said system can turn into nothing more than many clunky and confusing code snippets, libraries and components.

A design system can quickly help team members to promote consistency while also allowing designers to deal with more complex UX issues. And when you add revolutionary Merge tech to the mix, you can truly take your design system organization to the next level. Learn more about UXPin Merge.

The post 13 Best Design System Examples in 2024 appeared first on Studio by UXPin.

]]>
Design System Checklist for 2024 https://www.uxpin.com/studio/blog/launching-design-system-checklist/ Fri, 18 Oct 2024 10:23:00 +0000 https://www.uxpin.com/studio/?p=34579 A well-structured design system checklist guides your team through each essential step of creating a design system, ensuring that nothing gets overlooked—from auditing current design patterns to standardizing elements like typography, color palettes, and spacing. It serves as a roadmap that helps you prioritize what’s most important, streamline collaboration between designers and developers, and ensure

The post Design System Checklist for 2024 appeared first on Studio by UXPin.

]]>
Checklist what to do after launching a design system

A well-structured design system checklist guides your team through each essential step of creating a design system, ensuring that nothing gets overlooked—from auditing current design patterns to standardizing elements like typography, color palettes, and spacing. It serves as a roadmap that helps you prioritize what’s most important, streamline collaboration between designers and developers, and ensure that the design system evolves as your product grows.

By following a checklist, you can avoid common pitfalls, maintain consistency across your UI, and create a system that is scalable and adaptable to new challenges. A design system checklist is not just a to-do list—it’s a strategic tool that helps you build a robust, sustainable design system that empowers your team to work more efficiently and deliver high-quality user experiences every time.

Manage your design system with UXPin’s code-to-design solution. Share your design system easily, document on the fly, and create advanced prototypes with interactive components. Discover UXPin Merge.

Reach a new level of prototyping

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

Checklist for Building an Effective Design System

Here’s a structured 14-step checklist that ensures you build an efficient, consistent, and scalable design system.

1. Create the Patterns Inventory

A patterns inventory in a design system is essentially a collection of all the design patterns or UI elements used across a product or set of products. It’s like a catalog or checklist that helps teams identify, organize, and evaluate the consistency of the various components within the interface. These patterns can include things like buttons, form fields, navigation elements, typography, colors, icons, and more.

The goal of this process is to create a foundation for building or refining the design system, ensuring that every component is accounted for, standardized, and reusable. It also serves as a reference point for designers and developers to maintain consistency across the product as it evolves.

Here’s a design system checklist for running patterns inventory:

  • Collect Design Patterns: Take screenshots of design patterns or collect them directly from design project files.
  • Organize Patterns: Categorize patterns based on your frontend architecture, if available. Common categories include elements, modules, and components.
  • Consult Developers: Check if the frontend architecture is modular, and use it to organize patterns into categories.
  • Categorize Without Modular Architecture: If there’s no modular architecture, manually categorize patterns (e.g., buttons, form fields, etc.) to identify inconsistencies.

2. Create the Colors Inventory

A color inventory in a design system is a comprehensive audit of all the colors used across a product or set of products. It involves identifying and cataloging every color used in the user interface, including variations in shades, tints, tones, and any color variables defined in the code (like in CSS or design tokens).

Here’s a design system checklist for color inventory:

  • List All Colors: Traverse code files and list all the color variables or colors used in CSS.
  • Organize by Common Denominators: Group colors by hue, shades, tones, or similarity (e.g., grays, reds, greens).
  • Identify Anomalies: Take note of anomalies, like too many shades of gray, and streamline the palette.

3. Create the Typography Inventory

A typography inventory is an essential step in ensuring that your design system maintains a consistent, scalable approach to text styles across your product or projects.

Here’s a design system checklist for typography inventory:

  • Review Text Styles: Walk through the UI, checking all text styles through the browser console.
  • Form a Typographic Scale: Organize text styles by their importance (e.g., from H1 to small text). Create multiple scales if necessary.
  • Match Code with Styles: If CSS preprocessors (e.g., Sass) are used, note mixins and variables used to generate text styles.

4. Create the Icons Inventory

An icons inventory in a design system is a comprehensive audit and cataloging of all the icons used across a product. It is designed to assess the consistency, quality, and relevance of the icons in the UI and to ensure that the icons adhere to the brand’s visual guidelines.

Here’s a design system checklist for icons inventory:

  • Inventory Icons: Identify all icon libraries used across the product.
  • Mark Inconsistencies: Look for mismatches (e.g., different icons for the same action or mismatched icon families).
  • Review Implementation Methods: Understand how icons are implemented (e.g., inline SVG, icon fonts) and note inconsistencies.

5. Create the Space Inventory

A space inventory helps standardize and streamline how space is used in the UI, making designs more consistent, scalable, and easier to maintain. It creates a solid foundation for your design system’s layout, ensuring that spacing remains predictable and intentional throughout the product.

Here’s a design system checklist for space inventory:

  • Document Grid Systems: List and document grid systems used across the product portfolio.
  • Check Padding and Spacing: Analyze container padding to spot inconsistencies.

6. Get the Support of the Organization

  • Team Presentation: Explain the inventory process, highlight key inconsistencies, and present the design system as the solution.
  • Stakeholder Presentation: Focus on how inconsistencies affect costs and development speed. Highlight measurable data (e.g., 62 shades of gray) to demonstrate the need for a design system.

7. Build a Multidisciplinary Systems Team

  • List Skills Needed: Identify the necessary skills for fixing inconsistencies and managing the design system long-term.
  • Allocate Time Realistically: Ensure that team members can allocate time to work on the design system, even if part-time.
  • Clarify Roles and Sprints: Define roles, decision-making processes, and the length of sprints (e.g., one or two weeks).

8. Make Key Decisions and Establish Rules

  • Decide on System Foundation: Choose whether to build the system from scratch or use an existing product as the foundation.
  • Technology Stack: Decide whether to use the existing tech stack or introduce new technology.
  • Define KPIs: Set measurable goals for the design system, such as improving consistency or speed of implementation.
  • Formulate Design Principles: Define shared values for the design system, such as consistency, craftsmanship, or accessibility.

9. Build the Color Palette

  • Unify Colors: Use the color inventory to create a consistent color palette, ensuring no redundant or unused colors.
  • Naming Conventions: Choose between abstract, actual, or functional names for colors (e.g., pigeon-gray, silver-base).
  • Test the Palette: Ensure the palette works well across the UI and follows accessibility standards (WCAG).
  • Implement and Present: Implement the palette in CSS, test the changes, and present it to designers for feedback.

10. Build the Typographic Scale

  • Create a Consistent Typescale: Build a typographic scale that includes font size, weight, line-height, etc.
  • Test and Implement: Test the new scale across the UI, then implement it in CSS. Involve designers in the feedback process.
  • Finalize and Document: Finalize the scale, document it, and make it available in design tools (e.g., UXPin, Sketch).

11. Implement the Icons Library

  • Finalize the Icons: Decide which icons to include and how they’ll be implemented.
  • Test and Review: Thoroughly test icons on a test server and ensure consistency across the product.
  • Document and Deliver: Add icons to design system documentation and make them accessible in design tools.

12. Standardize Other Style Properties

  • Standardize Grid, Space, and Styles: Apply the same standardization process used for color, typography, and icons to grid systems, spacing, and other style properties.
  • Test and Implement: Ensure everything is tested and reviewed before finalizing and communicating to the company.

13. Build the First Design System Pattern

  • Decide on Pattern Architecture: Choose an architecture for your patterns (e.g., Atomic Design, modular components).
  • Build and Test: Implement one pattern (e.g., buttons), test it with developers and designers, and iterate based on feedback.
  • Finalize and Document: Add the pattern to the design system documentation and make it available in design tools.

14. Run a Sprint Retrospective

In the context of a design system, the retrospective focuses on assessing how the team handled the specific tasks related to the system’s development, such as creating new components, documenting guidelines, testing implementations, or aligning design with code.

  • Review the Sprint: Summarize the outcomes and KPIs from the sprint and reflect on improvements for future sprints.

What if You Need a Design System Fast?

If you need to create a design system fast and can’t afford to create a design system team, here’s what you can do.

Take advantage of the pre-built component libraries in UXPin, like the MUI kit, Ant Design kit, or Tailwind kit. These libraries are integrated directly into UXPin and offer a great way to get started. They’re fully coded, so you can share them with your devs. They are well-documented, so you don’t need a design system documentation right away. And they’re fully customizable, so you can match them with your style guide.

Your team will be able to share the same components and they will be able to use components right away, and you can focus on making sure everything fits your brand’s style, like colors and typography. UXPin also allows you to apply themes to these components (with the use of AI), which means your designs can start looking like they belong to your product without a lot of heavy lifting.

If time’s a factor, you don’t have to redo everything at once. You can instruct developers to use existing components with specific properties, and since UXPin keeps everything dynamic, any changes you make later will automatically update across the system. This saves a ton of time down the line.

I’d also recommend focusing your energy on the style guide—getting your colors, typography, and visual feel in order. These are the foundations that will tie your system together. Plus, understanding how these libraries work will help you ensure everything fits nicely with how your product is built.

In the end, design systems can be tricky, but using UXPin’s pre-built libraries makes the whole process a lot more manageable. It’ll give you more room to focus on the fun part—actually designing great products.

Empower Your Team with a Robust Design System

Creating a design system might seem like a daunting task, but with the right approach, it becomes a strategic investment that will enhance collaboration, ensure consistency, and improve scalability across your product. By following the checklist outlined above—from building a patterns inventory to standardizing spacing, typography, and iconography—you can ensure that your design system is well-organized, effective, and aligned with both design and development needs.

One of the key elements to making this process smoother is using a powerful tool like UXPin Merge. With UXPin’s built-in code libraries (MUI, Ant Design, React-Bootstrap or Tailwind kits), seamless integration with design and development workflows, and dynamic components, your team can create a design system that’s not only cohesive but also adaptable to future growth.

By taking incremental steps, focusing on key priorities like style guides and component libraries, and leveraging UXPin to align your design and development teams, you can build a system that ensures long-term success. So, don’t wait—start building your design system with UXPin today, and empower your team to create scalable, efficient, and beautifully cohesive products! Request access to UXPin Merge.

The post Design System Checklist for 2024 appeared first on Studio by UXPin.

]]>
How to Get Non-Designers to Use and Support the Design System? https://www.uxpin.com/studio/blog/get-support-for-design-system/ Mon, 14 Oct 2024 10:25:47 +0000 https://www.uxpin.com/studio/?p=34069 Getting stakeholder and organizational support is crucial for ongoing investment and the future success of your design system. The DS team must prove that employees use the design system and that it delivers a positive return on investment. In our January 2022 webinar, Defending Your Design System, Carola Cassaro talked about the challenges DS teams

The post How to Get Non-Designers to Use and Support the Design System? appeared first on Studio by UXPin.

]]>
How to get non designers to use and support the design system

Getting stakeholder and organizational support is crucial for ongoing investment and the future success of your design system. The DS team must prove that employees use the design system and that it delivers a positive return on investment.

In our January 2022 webinar, Defending Your Design System, Carola Cassaro talked about the challenges DS teams face, “We’re all dedicated to designing products that change people’s lives, but we don’t always have the right framework and vocabulary to communicate that impact, especially in the design system space.”

Many designers have a tough time explaining why they need resources to evolve and scale a design system. Tracking the design system’s impact and identifying successes and opportunities can help DS teams get stakeholders’ buy-in to improve and scale.

Design systems are usually a design team initiative. yet, they can help the whole organization. They also help developers in making sure that the front-end is consistent. Tools like UXPin Merge make it easy to use the interactive UI components from your team’s design system across design and development.

You can import Git, Storybook or NPM components to UXPin and create interactive prototypes that you can quickly hand off to developers. Request access to UXPin Merge.

Reach a new level of prototyping

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

Why do You Need Support from Non-Designers?

Design systems require time and resources to maintain and scale. The DS team must prove the design system’s value to acquire those resources. 

Demonstrating the design system’s value means team members must adopt it. So, the DS also needs to engage with teams across the organization to encourage usage and gather feedback for improvements.

Getting people to contribute to the design system gives them ownership, resulting in wider use, thus building your case for more resources and support.

How to Encourage Adoption of Your Design System

Many organizations use internal workshops and training sessions to demonstrate the design system, why it was created, how to use it, best practices, and other relevant information.

Invite representatives from all departments so you can generate organization-wide excitement and buy-in. These workshops are also a fantastic opportunity to invite teams outside of design and development to share feedback and ideas. Remember, contribution = ownership = adoption.

Don’t only use workshops to encourage feedback. Set up communication channels (Slack, Asana, Jira, etc.) for teams to submit feedback and ideas. 

Once teams start adopting and evangelizing your design system, it’s time to start measuring its impact across the organization.

Getting Support for Design Systems: Three Areas of Focus

process

The design system team must look at three areas to determine its impact on the product and organization:

  • Teams: How does the design system improve workflows?
  • Products: What is the design system’s impact on products and business value?
  • End-users: How does the design system impact usability?

Let’s look at these three areas in more detail.

Teams

There are three primary metrics you can use to evaluate a design system’s impact on teams:

  • Design system adoption
  • Saved resources
  • Time to market

You can evaluate a design system’s adoption by checking for elements present in repositories and determining the active use percentage–a strategy used by UK Gov Design outlined at GOVDESIGN 2020.

By regularly collecting and plotting this data, you can demonstrate the design system’s adoption over time. You can also plot uptake post workshops to determine their success.

It’s important to measure time on task and other performance metrics before implementing a design system to get a baseline. And then use this baseline to measure the design system’s impact. 

PayPal conducted similar tests when switching from image-based design tools to UXPin Merge. Building a single-page prototype using an image-based tool took over an hour vs. eight minutes with Merge–demonstrating an 8X increase in speed resulting in cost and time savings.

Time-to-market is critical for products to compete and stay within budgets. Reducing time-to-market demonstrates to stakeholders that investing and optimizing your design system can provide a competitive edge with fewer resources.

Products

Next, you want to identify design system wins in product performance. Again, we’ll look at three key metrics:

  • Component coverage
  • Stability
  • Brand value alignment

DS teams can test which components are used in products and which are not. These metrics determine the design system’s coverage and relevance across products.

Product stability impacts the entire organization, including the brand itself. DS teams can measure the number and severity of product defects before and after design system implementation to demonstrate how it reduces errors.

Measuring brand affinity is challenging, but in Defending Your Design System, Carola talks about how eBay tested brand alignment by asking customers to rate several brand attributes for page designs pre and post design system. eBay found that design system pages scored higher for overall brand affinity.

End-Users

Lastly, and most importantly, how does your design system impact customers and user experience? Here are three examples of end-user metrics relating to your design system:

  • Performance
  • Usability
  • Customer satisfaction

Load time is an excellent way to measure a product’s performance, a vital metric for customer satisfaction and user experience. Design system components are optimized for performance and reduce bloat, so you should notice faster load times after implementation.

DS teams can use time-on-task, conversion rates, and other task-related activities to test the design system’s impact on usability and accessibility. IBM tested user task completion rates before and after design system adoption and discovered a three-fold increase.

DS teams can use surveys, product reviews, interviews, and other customer feedback to create a trend for before vs. after the design system’s adoption. They can also use these metrics to measure the success of usability and accessibility releases to demonstrate how a design system fixes usability issues and increases customer satisfaction over time.

Pitching a Design System to Stakeholders

team collaboration talk communication 1

In our free download, Evangelizing a Design System, we share a proven template for getting executive and stakeholder buy-in. Here is a three-step process to evangelize your design system:

  1. Collect data to validate the design system’s impact
  2. Identify wins and create a compelling story
  3. Project what the company stands to gain

Step 1 – Collect Data

Collect data as outlined in the Three Areas of Focus above. If you’re unsure where to start, find resources and use cases from successful design systems relevant to your product and company.

Also, check out these resources from our blog for guidance and direction:

Collecting and analyzing data can be lengthy and time-consuming, but it’s a crucial part of building your design system success narrative.

Step 2 – Identify Wins and Create a Compelling Story

In our free download, Evangelizing a Design System, we share a 40+ slide template that’s ready for you to present to stakeholders and executives. 

We include actual data from successes at Dropbox, IBM, LinkedIn, Atlassian, and others to strengthen your case and demonstrate what the future holds for your organization.

Highlight your wins in the presentation and use storytelling to explain how you used objective testing to arrive at your final results.

Step 3 – Project What the Company Stands to Gain

To acquire investment, you must demonstrate what the company will gain from allocating resources to scale the design system, that is finding the return on investment (ROI). Combine future projections with case studies from other successful design systems to show the possible return on investment.

Investing in the Right Design System Tools

Investing in the right tools can improve many of the metrics outlined in the Three Areas of Focus above. UXPin Merge is a code-based design tool that allows you to sync a design system hosted in a repository to UXPin’s editor so designers can build prototypes using fully functional code components.

This single source of truth increases adoption and collaboration between departments, even among non-designers, as was the case with PayPal. PayPal also noticed a significant reduction in time-to-market and higher quality feedback from stakeholders who were able to interact with Merge prototypes better than previous image-based design tools.

With a single source of truth, companies also achieve higher rates of consistency and cohesion between design and development. Design handoffs are much smoother because designers use production-ready components to build prototypes, making it easy for engineers to copy/paste and begin development.

When the DS team changes the design system or introduces new patterns and components to the repository, UXPin automatically updates the editor and notifies team members of the latest release.

Discover Merge and take your design system and workflows to the next level with code-based design from UXPin Merge. Request access to UXPin Merge.

The post How to Get Non-Designers to Use and Support the Design System? appeared first on Studio by UXPin.

]]>
AI Design System – Are We There? https://www.uxpin.com/studio/blog/ai-design-system/ Mon, 14 Oct 2024 09:11:56 +0000 https://www.uxpin.com/studio/?p=54967 AI is set to revolutionize the way design systems are created, managed, and scaled. According to industry experts, AI’s efficiency in automating repetitive tasks like code generation, component resizing, and documentation can significantly reduce the time required to build and maintain design systems. Let’s see if we’re ready to implement Design Systems created and managed

The post AI Design System – Are We There? appeared first on Studio by UXPin.

]]>
AI Tools for Designers

AI is set to revolutionize the way design systems are created, managed, and scaled. According to industry experts, AI’s efficiency in automating repetitive tasks like code generation, component resizing, and documentation can significantly reduce the time required to build and maintain design systems. Let’s see if we’re ready to implement Design Systems created and managed by AI.

Design systems powered by AI need to be flexible, data-driven, and scalable. UXPin Merge complements these requirements by providing a unified platform where AI-first design systems can be backed with real code, enhancing both design speed and accuracy. As design systems become increasingly complex, UXPin Merge bridges the gap between designers and developers. Request access to UXPin Merge.

Design UI with code-backed components.

Use the same components in design as in development. Keep UI consistency at scale.

What is an AI Design System?

An AI Design System is a type of design system built with artificial intelligence. Unlike traditional design systems that rely solely on designers to build and maintain consistency, AI design systems utilize machine learning algorithms and data-driven insights to automate repetitive tasks, create UI design elements, and ensure coherence across digital products.

Real-World Examples of AI Design Systems

Several companies are already leveraging AI to build and optimize their design systems, focusing on automating repetitive tasks, enhancing scalability, and improving overall efficiency. Here are some notable examples:

  1. GitHub: Diana Mounter, Head of Design at GitHub, mentioned that AI significantly accelerates building and developing design systems, making it easier to generate new layouts and ensure consistency across components. AI enables GitHub to automate tedious design tasks and focus on more strategic, creative work.
  2. Airbnb: Airbnb integrates AI into its design system by using machine learning algorithms to classify and understand its 150+ design components. This allows AI to automate the creation of prototypes based on user behavior and preferences, which reduces the manual effort needed to create and maintain their design system.
  3. Spotify: Spotify uses AI-driven predictive analytics to refine its design system and personalize user experiences. The company’s AI-powered DJ uses algorithms to analyze user data and generate design decisions that align with user preferences and expectations, making their design systems highly adaptive and personalized.
  4. IKEA: Through the IKEA Place app, the company utilizes AI to visualize furniture placements in users’ homes. This application not only helps customers see how items fit in their space but also automates the layout generation process, contributing to IKEA’s internal design system efficiency.
  5. Autodesk’s Spacemaker AI: Spacemaker AI, acquired by Autodesk, uses AI to optimize site planning and urban layouts. The tool automates the creation of complex design models, providing architects and planners with AI-generated suggestions for building layouts based on environmental data such as sunlight and noise levels. This AI-driven approach is integrated into Autodesk’s larger design system strategy, enhancing the scalability and accuracy of design decisions​.

These companies showcase how AI can be integrated into design systems to automate repetitive tasks, provide real-time insights, and personalize the user experience—all while maintaining consistency and scalability. As more organizations explore AI-driven design systems, we’re likely to see increased adoption and innovation in this area.

Key Benefits of Including AI in Design Systems

Automation of Repetitive Tasks

AI can handle mundane tasks like resizing components, generating layouts, and maintaining style consistency, freeing up designers to focus on strategic, creative work. This enables faster iteration and reduces the time spent on manual adjustments.

Scaling Existing Design Systems

AI can generate code-backed components that adhere to design system guidelines, making it easier to maintain design consistency across products. This ensures that AI-generated designs are aligned with existing design standards and development practices.

Building Multi-Brand Design Systems Fast

AI can analyze design systems to create UI components and design elements that adapt to specific brands. This capability allows designers to deliver unique experiences without compromising on quality or coherence.

Analysis and Predictions

Who has the time to measure design system effectiveness? This task can be delegated to artificial intelligence tools. AI can monitor user interactions in real-time, providing insights into usability issues and predicting how users will respond to different design elements. This helps designers make informed decisions and iterate faster, ensuring optimal user experiences.

Using Text Prompts to Generate UI Elements

AI can now generate foundational elements of a design system, such as spacing and typography scales, from basic text prompts. This significantly reduces the time needed for initial setup and helps teams maintain a structured and well-documented design system from the get-go.

Read about using ChatGPT in UI Design.

Challenges of AI in Design Systems

Accessibility and Ethical AI

Ensuring that AI-powered design tools are accessible to all users, including those with disabilities, remains a significant challenge. According to Google Design, AI must be trained carefully to avoid reinforcing biases and to ensure inclusivity for all users​.

Designers need to consider how their AI-generated components interact with diverse user groups and test for accessibility from the outset.

Maintaining Human-Centered Design

While AI is adept at handling routine tasks, it cannot replace human intuition, empathy, and emotional intelligence.

Dan Mall, founder of Design System University, emphasizes that AI “has not reached the point where it can judge what’s good and what’s not, what might be emotionally resonant with a human audience, and what might just be junk” (as in Webflow’s article about AI.) ​Therefore, designers must use AI as a complementary tool that supports their creativity rather than as a replacement for human decision-making.

Privacy and Data Security

AI systems often rely on large amounts of user data to generate insights and predict behaviors. Designers need to ensure that this data is collected, stored, and used responsibly to protect user privacy and build trust. AI-driven design systems should prioritize data security and maintain transparency around how user data is leveraged for design decisions​, as stated by Adam Fard’s Design Studio.

Top 5 Tips to Address AI-Driven Design System Challenges

  1. Inclusive Training Data – Train AI models with diverse datasets that reflect various demographics, abilities, and cultural contexts. This reduces bias and ensures that generated components cater to a broad range of users, supporting the creation of accessible and inclusive design systems.
  2. Bias Audits and Continuous Monitoring – Regularly audit AI models for bias and ethical fairness. Implement continuous monitoring to detect and address any biased behaviors, ensuring your AI tools remain neutral and inclusive throughout their usage lifecycle.
  3. Iterative Design with Human Oversight – Adopt an iterative design process where AI provides initial suggestions or generates components, but human designers review and refine these outputs. This approach helps maintain human-centered design principles and ensures AI-generated elements resonate with users on an emotional level.
  4. Minimize Data Collection and Enhance Privacy – Limit data collection to what’s necessary for AI training and improvement. Apply anonymization techniques and encryption to protect user data, and clearly communicate data usage policies to maintain transparency and build user trust.
  5. Transparent Documentation and Communication – Document how AI models are trained, the data used, and the ethical steps taken to ensure inclusivity and security. Transparent documentation fosters trust and promotes responsible use of AI in design systems.

How to Build an AI Design System with UXPin

Many design tools on the market today, like Uizard or Framer, offer AI-powered features for prototyping and automating components, but they lack a unified platform that seamlessly integrates with development. While these tools are effective for quick iterations and ideation, they often fall short when it comes to maintaining design consistency and creating development-ready components at scale.

That’s where UXPin Merge stands out. Unlike other tools, UXPin Merge is an end-to-end design platform that enables designers and developers to work with real React or Web components within the design environment. The addition of the AI Component Creator further enhances this capability by automating the generation of code-backed components from text prompts or images, bridging the gap between design and development.

With UXPin, you’re not just designing in isolation—you’re creating a complete, scalable, and consistent design system that is in sync with your development codebase. Let’s explore how you can leverage these powerful features to build an AI-driven design system from scratch.

Step 1: Setting Up Your Design System in UXPin

Old but great explanation of how design systems work in UXPin.
  1. Create a New Design System
    • Open UXPin and navigate to the Design Systems tab at the top of your dashboard.
    • Click the Create Design System button. Choose the option to “Create from Scratch” to start with a clean slate.
    • Name your design system and define its purpose. For example, “AI-Powered Design System for Web Applications.”
  2. Define Core Elements
    • In the design system interface, set up the core elements such as colors, typography, and spacing.
    • Colors: Add your primary, secondary, and neutral colors. You can type in HEX codes or import colors directly from a website URL.
    • Typography: Define text styles like headings, paragraphs, and captions by adding font families, weights, and sizes.
    • Spacing and Grid: Set spacing values and grid structures to ensure design consistency.
  3. Create Design Tokens
    Design tokens are style values that represent the design decisions needed to build a UI—such as colors, typography, and spacing. Use design tokens in your design system to maintain consistency and scale your system across different platforms.

Step 2: Generating UI Components with AI Component Creator

blog header ai
  1. Enable AI Component Creator
    • If you are on the Merge AI plan or have Merge enabled, go to the AI Component Creator in UXPin’s Editor.
    • Enter your OpenAI API key in the Settings tab to enable the AI functionality.
  2. Generate Components from Text Prompts
    • Open the Prompt tab in the AI Component Creator.
    • Write a prompt describing the component you want to create. For example:
      “Create a primary button component with rounded corners, a blue background, and white text. The button should use the MUI library.”
    • Select the React library you want to use, such as MUI or Ant Design, and click Generate.
    • Review the generated component. If needed, make adjustments to its properties or styles directly in UXPin.
  3. Create Components from Uploaded Images
    • If you have a visual design that you want to turn into a code-backed component, use the Upload Image option in the AI Component Creator.
    • Upload the image, and the AI will analyze it to generate a fully coded component using your selected React library (MUI, Ant Design, or React-Bootstrap).
    • Review the generated code and structure, and integrate it into your design system’s component library.
  4. Transform Existing UXPin Components
    • If you already have existing static elements in UXPin, right-click on the component and choose the AI transformation option to convert it into a code-backed component.
    • The AI will apply the appropriate library (e.g., MUI) and generate code, making the component development-ready.

Step 3: Organizing Your AI-Driven Design System

  1. Create and Document UI Patterns
    • In the Design System interface, go to the UI Patterns section.
    • Group similar components (e.g., buttons, forms, modals) together and add descriptions to document usage guidelines, props, and variations.
    • Use the AI Component Creator to generate variations of these components based on text prompts. For example, creating variations of a button with different colors or icon placements.
  2. Add Accessibility Guidelines
    • Define accessibility standards for your components by adding descriptions and guidelines. For example, set minimum color contrast ratios and ensure keyboard navigation for interactive elements.
    • Use AI to test components against accessibility standards, such as checking for WCAG compliance or generating accessible labels and alt text.
  3. Set Up Component Variants
    • In UXPin, create component variants (e.g., primary, secondary, and disabled states for buttons) to cover various use cases.
    • Define responsive behaviors for components using UXPin’s interactions and breakpoint settings.

Step 4: Create Live Code Integration Using UXPin Merge

  1. Import Code Components with UXPin Merge
    • Import live code components from your repository using UXPin Merge. Merge allows you to sync your design system with code components, ensuring that the design system reflects the latest codebase.
  2. Document and Share Code-backed Components
    • Document your code-backed components directly in the design system, adding links to code repositories and usage guidelines for developers.
    • Use UXPin’s Spec Mode to allow developers to inspect code, view component props, and access documentation—all within UXPin.

Step 5: Maintaining and Scaling Your AI-Driven Design System

  1. Update Components with AI Assistance
    • As your design system evolves, use the AI Component Creator to update components or generate new ones. AI can help you maintain consistency by adhering to design system rules and standards.
  2. Use AI to Analyze and Optimize the Design System
    • Implement AI tools like UXPin’s AI Component Creator to analyze your design system for redundancies, inconsistencies, or gaps.
    • Use these insights to refine and optimize your design system, ensuring it remains scalable and relevant.
  3. Collaborate and Iterate with Stakeholders
    • Share the AI-driven design system with stakeholders for feedback and collaboration.
    • Use UXPin’s collaboration features to receive comments and iterate on the design system components quickly.

Ready to Use an AI-Driven Design System?

AI is poised to become a co-pilot in design systems, augmenting the abilities of designers and creating new opportunities for innovation. As AI continues to advance, it will enable more predictive design, personalized user experiences, and greater efficiency in managing and scaling design systems. Designers who embrace AI as a complementary tool will be better equipped to create the next generation of digital experiences that are both intuitive and scalable.

Creating an AI-driven design system in UXPin not only accelerates the design process but also ensures that your components are development-ready and aligned with best practices. By leveraging the AI Component Creator, you can automate repetitive tasks, maintain consistency, and create a scalable design system that bridges the gap between design and development.

Ready to build your own AI-powered design system? Request access to UXPin Merge and start transforming your design process today.

The post AI Design System – Are We There? 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, 10 Oct 2024 13:54:57 +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.

Design UI with code-backed components.

Use the same components in design as in development. Keep UI consistency at scale.

What is Storybook?

Storybook is an open-source tool for building, developing, and testing UI components in isolation. It provides a dedicated environment where designers and developers can create, preview, and document components without dealing with the complexities of integrating business logic or data. This isolation allows teams to focus on designing UIs, exploring edge cases, and ensuring consistency across projects.

Storybook integrates with various tools, making it a versatile solution for component-based workflows in React, Vue, and Angular—ideal for teams using UXPin to build comprehensive design systems.

Why Do Devs use Storybook for Design Systems?

These are a few reasons why Storybook Design Systems are so popular among developers.

Reason #1: 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.

Reason #2: 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.

Reason #3: 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.

Reason #4: 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.

Reason #5: 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 Do 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 Storybook Design System

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 Storybook Design System

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 Storybook Design System

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 Storybook Design System

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 Storybook Design System

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.

How to Sync Storybook Design System with UXPin

  1. Prepare Your Resources
    • Ensure you have access to UXPin’s Merge technology.
    • Obtain your Storybook URL (either public or private).
  2. Integrate with UXPin
    • Open a UXPin prototype and go to the Design System Libraries.
    • Click + New Library and select Import Components from Storybook.
  3. For Private Storybook
    • Install @uxpin/storybook-deployer:bashSkopiuj kodyarn add -D @uxpin/storybook-deployer npm install @uxpin/storybook-deployer --save-dev
    • Deploy using:bashSkopiuj kodnpx uxpin-storybook-deployer -t TOKEN -s path/to/your/storybook

For more details, visit UXPin Storybook Integration.

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.

]]>
Design System Naming Conventions – How to Set Them https://www.uxpin.com/studio/blog/design-system-naming-conventions/ Tue, 24 Sep 2024 15:24:31 +0000 https://www.uxpin.com/studio/?p=54405 Design system naming conventions are the standardized rules and guidelines used to name elements within a design system. This includes naming design tokens, components, patterns, styles, and any other elements that are part of the design system. A well-defined naming convention is crucial for maintaining clarity, consistency, and ease of use across both design and

The post Design System Naming Conventions – How to Set Them appeared first on Studio by UXPin.

]]>
Design System Naming

Design system naming conventions are the standardized rules and guidelines used to name elements within a design system. This includes naming design tokens, components, patterns, styles, and any other elements that are part of the design system. A well-defined naming convention is crucial for maintaining clarity, consistency, and ease of use across both design and development teams.

If you’re looking to elevate your design system and create a more consistent, efficient workflow, UXPin Merge is the solution for you. By integrating design and development into a unified process, Merge helps you build a robust design system that scales with your organization and meets the highest standards of quality and consistency. Request access to UXPin Merge.

Reach a new level of prototyping

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

What is the Naming Convention for Design Systems?

Design system naming conventions are a set of rules for naming the different parts of a design system, like colors, fonts, buttons, and other components. These rules help keep names clear and consistent, making it easy for everyone on the team to understand and use the design system.

Design system naming conventions are typically set by the team responsible for creating and maintaining the design system. It can be governed by a dedicated group of designers and developers who focus on building and managing the design system or design leaders at a company. They establish naming conventions to ensure consistency and ease of use across the system.

Why Are Naming Conventions Important in a Design System?

By following these naming conventions, teams can work together more smoothly and keep the design system organized and easy to update. Design system naming systems help in:

  1. Clarity and Readability: A good naming convention helps team members easily understand what each element is and how it should be used. This is especially important as the design system grows and more people across different teams start using it.
  2. Consistency: Consistent naming reduces confusion and helps ensure that everyone on the team uses the design system in the same way. This is essential for maintaining a cohesive and unified user experience across all products and platforms.
  3. Scalability: As your design system expands to include more components and tokens, a well-structured naming convention makes it easier to organize and manage these elements. It provides a scalable framework that can accommodate new additions without causing confusion or requiring significant restructuring.
  4. Collaboration: Clear and consistent naming conventions improve collaboration between designers and developers by reducing miscommunication. When both teams use the same language and terms, it’s easier to maintain alignment throughout the development process.

9 Key Elements of Design System Naming Conventions

Design Tokens

Design tokens are the core variables that define a design system’s visual properties, such as colors, typography, spacing, and shadows. Naming conventions for tokens should reflect their purpose and usage rather than specific values, ensuring flexibility and scalability. Examples include color-primary, font-size-heading, or spacing-small.

Components

Components are the building blocks of a design system, representing reusable UI elements like buttons, forms, cards, and navigation bars. Consistent naming for components ensures they are easily identifiable and logically grouped, enhancing usability and collaboration. Examples include ButtonPrimary, FormInputText, or CardWithImage.

Patterns

Patterns are reusable combinations of components that address specific design problems or create common UI layouts. Naming conventions for patterns should describe their function clearly, such as LoginForm, NavbarSticky, or ErrorMessageModal.

Modifiers

Modifiers represent variations or states of a base component or token, such as different sizes, colors, or behaviors. Consistent naming for modifiers typically indicates the relationship between the base element and the variation, using a pattern like BaseComponent–Modifier. Examples include ButtonPrimary–Large, ColorPrimary–Dark, or Card–WithShadow.

Utilities

Utility classes or styles are often used for quick, specific adjustments that apply common design tokens, such as margin or padding. Naming conventions for utilities are typically short and descriptive, indicating the property they affect. Examples include u-margin-small, u-padding-large, or u-text-center.

States

States define different conditions of a component, such as active, disabled, focused, or error states. Clear naming for states helps communicate these conditions within the design system. Examples include Button–Disabled, Input–Error, or Link–Active.

Responsive Variants

These are variations of components or styles that adjust based on screen size or device type. Naming conventions for responsive variants typically follow a pattern that indicates the screen size they target. Examples include Button–SmallScreen, Grid–Desktop, or Image–Responsive.

Accessibility Features

Elements or tokens that enhance accessibility might have specific naming conventions to denote their purpose. For example, Button–AriaLabel or Text–HighContrast indicate elements tailored for accessibility.

Brand-Specific Elements

In some design systems, elements may be specific to different brands or themes. Naming conventions for these elements should clearly indicate their association. Examples include Button–BrandA, Navbar–BrandB, or Typography–Corporate.

Top 10 Best Practices for Naming Conventions in Design Systems

A well-organized design system is the backbone of consistent and scalable design work. Naming conventions play a crucial role in this organization by making your design system intuitive and easy to use. Here are ten essential best practices to help you establish effective naming conventions for your design system:

1. Be Descriptive but Concise

Why It Matters: Clear and concise names help everyone on your team quickly understand what each element is for. Long or vague names can lead to confusion and mistakes, slowing down the design and development process.

How to Implement: Choose names that clearly describe the element’s purpose or function without being overly detailed. For example, instead of naming a primary action button btnSubmitActionPrimary, use ButtonPrimary. This name is direct, easy to remember, and effectively communicates the button’s role.

2. Use Consistent Patterns Across the System

Why It Matters: Consistency in naming makes your design system predictable and easy to navigate. When team members know what to expect from the naming structure, they can find and use elements more efficiently.

How to Implement: Establish a naming pattern like [Category]-[Modifier] for design tokens (color-primary, spacing-small) and ComponentName–Modifier for components (Button–Large, Card–WithShadow). Stick to these patterns throughout your design system to maintain consistency.

3. Avoid Specific Values in Names

Why It Matters: Naming tokens with specific values like 16px or #FFFFFF limits flexibility. If the values change, you would need to rename tokens throughout the system, which is time-consuming and error-prone.

How to Implement: Focus on naming tokens based on their function rather than specific values. For instance, use font-size-base instead of font-size-16px. This approach allows you to adjust the value without changing the name, making your system more adaptable.

4. Reflect the Design Intent, Not Just Implementation

Why It Matters: Names should convey how and when an element should be used, rather than just describing what it is. This helps designers and developers understand the intent behind each element, promoting consistent usage across different contexts.

How to Implement: Use names that indicate the purpose of the element. For example, instead of a generic name like color-red, use color-error to specify that the color is intended for error messages. This provides clarity and reduces the risk of misapplication.

5. Document Your Naming Conventions Clearly

Why It Matters: Clear documentation ensures that everyone on your team understands and follows the naming conventions. This is particularly important as new team members join or as the design system evolves.

How to Implement: Create a comprehensive section in your design system documentation dedicated to naming conventions. Include the reasoning behind each rule, along with examples of correct and incorrect naming. Update this documentation regularly to reflect any changes or additions.

6. Use Readable Naming Formats like Camel Case or Kebab Case

Why It Matters: Readable formats such as camel case (ButtonPrimary) or kebab case (button-primary) make it easy to distinguish different parts of a name at a glance, improving clarity and reducing errors.

How to Implement: Decide on a naming format that aligns with your team’s coding standards or design practices. For instance, use camel case for component names (ButtonPrimary, CardWithImage) and kebab case for CSS class names (button-primary, card-with-image). Apply this format consistently.

7. Include Context in Names When Necessary

Why It Matters: Elements that could be used in multiple contexts should have names that specify their intended use. This prevents confusion and ensures elements are applied correctly across different parts of the design.

How to Implement: When naming tokens or components that serve specific functions, include contextual information in the name. For example, use spacing-card-small instead of just spacing-small to indicate that the spacing value is intended for card components.

8. Plan for Scalability from the Start

Why It Matters: A scalable naming convention allows your design system to grow without needing significant changes to existing names. This is crucial as your system evolves to include more components, tokens, and patterns.

How to Implement: Anticipate future needs by choosing flexible naming conventions. For example, if you might add different button types, start with names like ButtonPrimary, ButtonSecondary, and ButtonTertiary. This approach leaves room for expansion without causing confusion.

9. Minimize the Use of Abbreviations

Why It Matters: Abbreviations can make names shorter, but they also risk making them unclear, especially for new team members or collaborators. Only use abbreviations that are universally understood within your team.

How to Implement: Stick to full words unless an abbreviation is commonly accepted and widely recognized. For instance, btn for button is standard, but using fs for font-size might not be immediately clear to everyone.

10. Regularly Review and Update Naming Conventions

Why It Matters: As your design system grows and changes, your naming conventions might need to evolve. Regular reviews help ensure your system remains intuitive and efficient for all users.

How to Implement: Set up periodic reviews of your naming conventions with key stakeholders. Gather feedback from designers and developers to identify any issues or areas for improvement. Be open to making changes that enhance clarity, consistency, or scalability.

Build Prototypes that Are in Line with Your Design System

Establishing effective naming conventions is crucial for any design system’s success. By being descriptive but concise, maintaining consistent patterns, and regularly reviewing your conventions, you can ensure that your design system remains organized, scalable, and easy to use.

Consistency is key to any successful design system. It ensures that your UI components are cohesive, scalable, and easy to maintain across different teams and projects. But achieving this level of consistency can be challenging, especially when it comes to bridging the gap between design and development. That’s where UXPin Merge comes in.

UXPin Merge is a powerful design technology that allows you to integrate real, production-ready code components from your React-based design system directly into your design tool. This integration creates a unified source of truth for both designers and developers, ensuring that everyone is working with the exact same components and styles. Request access to UXPin Merge.

The post Design System Naming Conventions – How to Set Them appeared first on Studio by UXPin.

]]>
Design System Tips from Developer’s Point of View https://www.uxpin.com/studio/blog/design-system-for-developers/ Tue, 24 Sep 2024 15:16:17 +0000 https://www.uxpin.com/studio/?p=54644 Today we’re sharing a guest post by Nick Moore that originated from collaboration with StackBlitz. Build code-backed prototypes and open them in StackBlitz in one click. Request access to UXPin Merge. If you know how to ride a bike now and wait five years to ride one again, you’ll likely do just fine once you

The post Design System Tips from Developer’s Point of View appeared first on Studio by UXPin.

]]>
Design system management from the developer

Today we’re sharing a guest post by Nick Moore that originated from collaboration with StackBlitz. Build code-backed prototypes and open them in StackBlitz in one click. Request access to UXPin Merge.

If you know how to ride a bike now and wait five years to ride one again, you’ll likely do just fine once you get back on. Bicycles are intuitive once you’ve learned how to ride them, and the basic design is unlikely to change over time and across bicycles. Reaching this level of usability in software is a little more difficult. 

Developers and designers often have to iterate too rapidly to reach bicycle-level reliability, but the intuitive experience of a user logging onto your app as if they were hopping on a bicycle is still something we should aim for—and design systems are the best way to do so. 

Even though it’s a high bar, this level of usability pays dividends. Users will adopt your app more readily (reducing churn), use it to greater effect (and feel the benefits), and strengthen your marketing efforts as engaged users recommend and amplify your app. 

Building and using a design system is one of the best ways to clear this high bar because design systems allow development and design teams to build and ship quickly while relying on standardized components that reduce friction and confusion. 

If you’ve ever encountered a bad design system, then you know the issue: A great one can lift you up, but a bad one can hold you back. 

The key is to treat your design system like a fully-fledged product that must remain effective and dependable over time. Without enough investment, design systems will only offer marginal help; with enough investment, design systems can provide consistency and stability while improving the pace of development.

Build responsive layouts fast! Try UXPin Merge, a technology that helps designers and developers create prototypes that are production-ready from the start. With our integration, open UXPin Merge prototypes in StackBlitz with one click. Request access to UXPin Merge.

Reach a new level of prototyping

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

Build design systems via iteration, not waterfall

For developers, design systems often feel like intrusions from the outside in. The design systems team might have their best interests at heart, but developers know that a bad process with good intentions will still likely lead to a bad product. 

After all, developers are well-versed in building a product and iterating over time, with user feedback informing every iteration. Any whiff of a waterfall or waterfall-esque process – where teams build a product in a silo and release it all at once – will make them justifiably skeptical. 

The solution is to focus on simplicity over comprehensiveness—at least at first—and build design systems bit by bit over time. By breaking the problem down, platform teams can build simple but essential features, prove the concept’s value, and get feedback that will inform the rest of the work. 

Slack provides a good example of this methodology. Back in 2016, millions of people were using Slack, and the company’s codebase was, according to Zack Sultan, Lead Product Designer at Slack, “built in a way that favored time-to-market over maintainability, consistency, or reusability.”

Like many young companies, Slack prioritized finding and pursuing product/market fit before building a codebase suited for scalability and reliability. Some companies encounter breaking issues first and decide to reassess potential tech debt issues, but Slack kept ahead of itself. 

“We never encountered a single breaking point in our user interface,” Sultan writes, “but rather a slowly cascading series of inconsistencies, quirks, and discrepancies.” The momentum of the business was growing, and as Slack added more product teams (and more products and features), components started to drift. 

(Source)

Questions soon abounded, Sultan writes. “What does a button look like in Slack? How do you build it? What words do you put in it? It was up to individual teams to make these decisions.”

Many companies correctly notice the problem and then build a mediocre solution by asking a group of developers to cook up a new design system in isolation. Some slowing down is to be expected as companies grow, but a design system developed this way can cause development to come to a screeching halt. 

Slack was wary of this potential and focused on finding ways to rebuild and standardize its components without slowing down overall development. “It was a bit like taking a car engine apart piece by piece, and cleaning, repairing, and replacing each part while it accelerated down the highway,” Sultan writes. 

(Source)

Like building a minimum viable product (MVP), design systems need to have core features built well and not many features built poorly. Early on, you’re looking to demonstrate value–not comprehensiveness–even if it means building one single component really well.

“Just one component, thoroughly documented, was immediately valuable,” Sultan writes. By building components one at a time and ensuring each was complete and well done, they were able to create a “virtuous cycle for the system.” 

The value of each component, as simple and small as each isolated chunk was, demonstrated the value of the work as a whole. Developers remained invested throughout, and Slack eventually launched its design system, Slack Kit.

Maintain design systems or lose them to tech debt

Let’s imagine, for a moment, that the platform team and design team have worked together – alongside developer feedback – to build the perfect design system. Every developer takes a look and gives it a thumbs up. 

Why, then, could you take any one of those developers aside and hear some wariness in their voice when they talk about actually using the design system?

The issue is that developers are very familiar with what happens when a product doesn’t have a maintenance plan. They’ve built products that have fallen by the wayside and created beloved internal tools that managers deprioritized until they died. Eventually, even a great product will fall prey to tech debt if there’s no plan to keep it alive. 

For teams building design systems, the solution is to build a flexible design system that they can iterate, maintain, and update over time. 

Design systems, by their nature, tend to offer some level of standardization, but over-focusing on standardization can lead to an overly rigid system. If the design system is good, people might not complain at first, but if even a good system is hard to keep up to date and hard to use in non-standard scenarios, people will eventually stop using it. 

Instead, platform teams need to build design systems with maintenance as a first principle and map each component across a spectrum of flexibility. 

To make this a little less abstract, let’s look at an example from Spotify

The team behind Encore, Spotify’s design system, faced the same issue we’ve talked about here. As the product changes and the development team grows, writes Charlie Backus, design systems engineer at Spotify, “it can sometimes seem like the team is outgrowing the current set of components and styles.”

(Source)

As you can see in the selection above, there was a dire need for consistency, despite an equal need for teams to remain creative and driven. 

To find a balance, Backus recommends teams develop “an abstract shared vocabulary around component properties” or ensure that the “base properties remain accessible for modification by end consumers.”

The best way to think about this strategy is to imagine a spectrum between configuration (high-abstraction components that developers pass additional parameters to in order to add varied behaviors) and customization (low-abstraction components that developers just add custom styles to). 

(Source)

This spectrum-based approach is useful because it forces teams to think about tradeoffs ahead of time. 

On the one hand, as Backus writes, “A more abstract configuration approach can increase consistency and maintainability but at the risk of the system being a bottleneck for outgoing features.” By increasing abstraction, a design system can make development more consistent but potentially slow down development. 

On the other hand, Backus continues, “The less abstract customization approach enables quicker feature development; however, the overall consistency of the product can suffer as a result.” Speed increases, in this case, but the likelihood of inconsistencies increases, too. 

Backus recommends thinking about maturity to find your spot on the spectrum for any given component. “The more mature a product or feature is, the more beneficial and feasible a configuration approach is. However, the iterative and low-level nature of customization makes it more suitable for prototyping and features which are bespoke, or are still subject to change.”

Like in the Slack example, we’re incorporating concerns that lie outside the immediate purview of the design system. With Slack, they were thinking about the growth of the company, and with Spotify, they were thinking about the growth of features. Mature, well-tested, well-known features can be standardized, but new, still-growing, and one-off features require more flexibility. 

Avoid rework by aligning developers and designers

Developers and designers alike often decry meetings, wishing they had more time and space to work. Don’t get us wrong – too many meetings can be a huge drag on focus – but a good meeting can also save you a lot of work. An aligned team, delayed by a meeting, will always be more effective than an unaligned team working hard on the wrong things.

This dynamic is true within teams and departments, but alignment issues can be much more severe between different departments. A development team and design team working on different things, for example, can end up negating each other’s work if the designs are for a feature that isn’t built yet and the feature is built for a design that hasn’t been sketched yet. 

Design systems magnify this issue. If a design system isn’t well thought out, all the effort toward building one can be wasted if developers and designers don’t start out using it in an aligned way and maintain alignment over time.

As we said in the first section, the design system can’t feel like a third party designed from the outside in. In the same way, it can’t be a tool that developers and designers only call on occasionally or when absolutely necessary. Instead, a design system should be a language for the design and development teams—both a result of alignment and an anchor that continuously shows how well the teams are aligned.

To see what we mean when we refer to design systems as language, look at Airbnb. Back in 2016, Airbnb was growing rapidly and adding feature after feature. Karri Saarinen, then Principal Designer at Airbnb, writes, “One-off solutions aren’t inherently bad, but if they aren’t built upon a solid foundation, we eventually find ourselves having to pay back accrued technical and design debts.”

To reset these efforts and ensure ongoing sustainability, the Airbnb team looked toward language as a guiding metaphor. “Visual language is like any other language,” Saarinen writes. “Misunderstandings arise if the language is not shared and understood by everyone using it. As a product or team grows, the challenges within these modalities compound.”

Airbnb built a new language via a new design system by looking at where their old designs failed. “We started by auditing and printing out many of our designs, both old and new,”  Saarinen writes. “Laying the flows side by side on a board, we could see where and how the experiences were breaking and where we needed to start making changes.”

By focusing on the miscommunications first, Airbnb was able to build a language that used a consensus understanding of shared components as its foundation. 

(Source)

“We felt that we were all working together towards the same idea,” Saarinen writes. “Reviewing our collective work at the end of each day, we began to see patterns emerge. We course-corrected when necessary and started defining our standardized components.” 

The team knew they were onto something when, even before the design system was finalized, productivity and consistency sped up in tandem. “One day,” Saarinen remembers, “While putting together a last-minute prototype, our team was able to create nearly 50 screens within just a few hours by using the framework our library provided.” 

The early and ongoing boosts to productivity and standardization were a result of building a design system like a shared language. By thinking of the design system first and foremost as a way for developers, designers, and others to communicate and understand each other, the entire company benefited. 

Treat your design system like a basecamp

One of the biggest worries developers can feel when a platform team or engineering leader proposes a design system is the tension between the freedom to do new work and the restraints standardization can impose. 

Developers often fear that design systems, even when they introduce welcome consistency, can inhibit experimental and exploratory work. Ultimately, developers want to code, and design systems can sometimes feel like a way of reducing coding to boilerplate work. 

With this fear and its real risks in mind, companies have to take a different approach to making design systems work for developers: Design systems should be like basecamps for developers and designers on the frontiers of exploration. 

The base camp is more stable than the frontier, and the work done there is more routine. In this metaphor, the ultimate purpose of the design system is to give designers and developers resources so that they can explore further with every trek. The design system acts as a dependable foundation, but it doesn’t replace all the work that needs to be done. 

With the lessons we’ve outlined here—iterating over time, thinking carefully about flexibility and maintenance, and aligning developers and designers—you can create a design system that developers trust, one they will gladly return to before exploring further. 

Create fully functional, production-ready prototypes from the start. With UXPin Merge, what you design is exactly what gets built—eliminating handoff issues and speeding up development. Plus, with our seamless integration, you can open your UXPin Merge prototypes in StackBlitz with a single click for an even smoother workflow. Ready to elevate your design and development process? Request access to UXPin Merge today.

The post Design System Tips from Developer’s Point of View appeared first on Studio by UXPin.

]]>
What is npm? https://www.uxpin.com/studio/blog/what-is-npm/ Fri, 06 Sep 2024 08:51:44 +0000 https://www.uxpin.com/studio/?p=34337 Many programming languages use packages to build and scale websites, software, and other digital products. These packages allow engineers to extend a project's functionality without writing and maintaining additional code. This article will explain these terms from a designer's perspective, so you get a basic understanding of how packages work and why engineers use them.

The post What is npm? appeared first on Studio by UXPin.

]]>

npm is a package manager for JavaScript that helps developers install, share, and manage libraries or pieces of code that are commonly used in applications. These packages can range from small utility functions to full-fledged UI components like buttons, form elements, or even complex layouts.

npm is also a key enabler of the design-development collaboration that UXPin Merge facilitates. By packaging React components through npm, developers can hand off real, functioning UI components to designers, who can then integrate them into their designs effortlessly. This results in a more consistent and efficient workflow, ensuring that your design system and the final product are perfectly aligned.. Discover UXPin Merge.

Design UI with code-backed components.

Use the same components in design as in development. Keep UI consistency at scale.

What is NPM (Node Package Manager)?

npm or Node Package Manager is an open-source repository of tools engineers use to develop applications and websites.

logo uxpin merge npm packages

npm is two things:

  1. A repository for publishing open-source projects.
    Simplified version: a digital storage and retrieval facility.
  2. A command-line interface (CLI) for interacting with the repository.
    Simplified version: a tool to communicate with the storage facility.

What is a Package Manager?

Before we can explain what npm package is, it’s essential to understand the idea of a package manager. Think of a package manager as a toolkit for developers.

Let’s say you’re building an application that uses Stripe for payments. A package manager installs all the code your product will need to communicate with Stripe and process payments.

Instead of writing all that code or copy/pasting it from Stripe’s docs, engineers simply enter a command, and the package manager installs the code dependencies they need from Stripe.

There are millions of these packages for everything you can think of to develop an application–like different types of search functionality, APIs, payments, authentication tools, maps, icons, hosting, and more.

You get public open-source repositories (like npm) where anyone can upload and install packages, as well as private package repositories with restricted access.

What is a Command Line Interface?

A command-line interface (CLI) is a text interface developers use to interact with computer programs. This CLI allows you to execute commands to run background operations necessary for software development.

In the case of npm, the CLI allows you to interact with the package registry. For example, engineers can use commands like npm install followed by the package name to install a specific package.

The npm Registry

The npm website is where engineers can search and learn about packages. This website is just a registry and doesn’t host the packages. Instead, engineers use platforms like GitHub, Packagecloud, AWS CodeArtifact, and others to host and distribute packages.

For example, if we look at the UXPin Merge CLI on NPM, it has displays GitHub as the repository and relevant link. Above that is the command to install the UXPin Merge CLI and its dependencies: npm i @uxpin/merge-cli. The “i” after npm is an abbreviation for “install.” So, typing npm install @uxpin/merge-cli would render the same result.

What are Dependencies?

Packages consist of other packages that engineers call dependencies–we know, confusing, right! These dependencies are packages of code that perform different tasks within the project.

For example, the UXPin Merge CLI uses Typescript and therefore requires the typescript package as a dependency. Typescript is just one of the 41 dependencies UXPin Merge CLI requires. 

What are Devdependencies?

Looking at the UXPin Merge CLI’s dependencies, you’ll notice 41 Dependencies and 41 Dev Dependencies (also referred to as devDependencies–one word).

  • Dependencies: The packages required to run a piece of software
  • Dev Dependencies: The packages needed during the development phase only

Dependencies and devDependencies reside in a separate folder called node_modules, so your packages.json file and project code know where to find them.

What is the package.json File?

There’s a package.json file that provides its metadata and dependencies. When installing the project on your computer, npm will reference the package.json file to install the dependencies and devDependencies.

Instead of installing each dependency individually, you simply type npm install in the command line.

Hosting providers also use the package.json file to install the dependencies (excluding devDependencies) needed to run the project on its servers.

What is package-lock.json?

The package-lock.json specifies the exact version of the package used to build the project. This file locks the dependencies so that when the project is installed, it references the versions used during development rather than the latest release.

Engineers update packages regularly, often changing the way the package works. So, locking your dependencies ensures the project operates as intended.

How to use npm

Here are some common npm commands and what they do:

  • npm init: Creates a package.json file for your project. If you’re building an application from scratch, npm init will be one of the first commands you use to include key project information. NPM will automatically update your package.json file whenever you install or remove packages.
  • npm install: Installs all of the project dependencies in a package.json file.
  • npm install <package-name>: Installs a specific package from the NPM registry and saves it to your node_modules folder. For example, npm install @uxpin/merge-cli will install the Merge CLI.
  • npm install <package-name> –save: Installs an NPM package and adds it to the dependencies in your package.json file.
  • npm install <package-name> –save-dev: installs an NPM package and adds it to the devDependencies 
  • npm uninstall <package-name>: Uninstalls a specific package from your project.
  • npm doctor: Runs diagnostics on your npm installation to check if it has everything it needs to manage your packages.
  • npm update <package-name>: Updates a specific package to the latest version.

These are just a few of the most common npm commands. You can find the complete list in the npm documentation.

Understanding npm as a Designer

npm is simply a toolkit comparable to plugins or app extensions for design tools. You don’t need to know the ins-and-outs of how packages are created, but it may be useful to know a thing or two about it.

First of all, some of code component libraries are shared as npm packages, such as MUI, Ant Design, etc.

How to find component libraries that are distributed as npm packages? Let’s say you search through Adele, UXPin’s library of publicly available Design Systems, for a component library that you can bring in to UXPin. You pick Shopify’s Polaris and notice that it is distributed via npm.

So, you go to the NPM site, look for Shopify’s Polaris, and find it.

Zrzut ekranu 2022 03 11 o 15.47.16

UXPin with Merge technology allows you to import UI elements from component libraries via NPM packages. Then, you can use those elements to put together fully-functional prototypes.

UXPin Merge is usually being set up by a developer. But if you lack the development support, you can use our new tool – Merge Component Manager and manage UI components by yourself.

However, if you want to enhance your programming knowledge to collaborate with devs better, then learning about basic code principles (HTML, CSS, Javascript) and component libraries is far more valuable for designers.

What Can You Do with npm Integration?

Even though npm is typically a tool developers use, it plays a crucial role in enabling powerful design workflows—like bringing React components into UXPin for seamless drag-and-drop UI building.

Here’s why npm is important for technical designers working with tools like UXPin Merge:

  1. Access to React Components: If your design system is built using React, npm allows you to package these components and make them accessible for use in other applications or tools—like UXPin Merge. React components that are available as npm packages can be directly imported into UXPin, giving designers the ability to drag and drop real code components into their designs without writing code.
  2. Easily Manage Updates: npm simplifies version control. When a developer updates a package (such as a new version of a button component), npm can automatically manage this update in UXPin Merge, ensuring that designers always work with the latest components from the development team. This ensures consistency between design and development without the need for manual updates.
  3. Collaborate Seamlessly with Developers: npm helps technical designers and developers work from the same source of truth. Developers use npm to publish the components they create, while designers can easily import those components into UXPin using Merge. This ensures that the components designers use for prototyping are exactly the same as the ones developers will implement in the final product.

Improve Collaboration With UXPin Merge

Merge enhances collaboration between design and development because designers and engineers work with the same component library. 

Instead of having a UI kit for designers and code for devs, Merge syncs a repository to UXPin’s editor so design teams can build fully functioning prototypes using code components.

You can sync your company’s design system or a component library like MUI so that you only have to drag and drop UI elements to build interfaces. Request access to Merge.

The post What is npm? appeared first on Studio by UXPin.

]]>
Design System Governance – Scale Your Design https://www.uxpin.com/studio/blog/design-system-governance/ Thu, 05 Sep 2024 12:17:53 +0000 https://www.uxpin.com/studio/?p=32030 Some team members despise design system governance. They see it as a roadblock to rapid growth, creativity, and flexibility. However, design system governance can foster scalability and creativity if properly implemented while maintaining design and usability consistency. Good design system governance prioritizes users before growth and profits. Company culture also plays a significant role in

The post Design System Governance – Scale Your Design appeared first on Studio by UXPin.

]]>
Design system governance

Some team members despise design system governance. They see it as a roadblock to rapid growth, creativity, and flexibility. However, design system governance can foster scalability and creativity if properly implemented while maintaining design and usability consistency.

Good design system governance prioritizes users before growth and profits. Company culture also plays a significant role in how a company implements a governance process that team members follow and embrace.

The tools UX and engineering teams also have an impact on design system governance. UX teams must update design tools to match changes to the final product, exposing the process to human error!

With UXPin Merge, teams don’t need to worry about updating two different design systems. UXPin Merge syncs our editor tool with code components from your Git repo or Storybook integration (allowing you to connect with React, Revue, Angular, Ember, and many more), eliminating the need for separate design systems and mitigating human error.

See how UXPin can enhance your design system governance!

What is Design System Governance?

Design system governance is the process and protocols for maintaining and updating a product’s design system.

Even minor changes, like changing an app’s close icon from an X to a must go through a multi-step approval and implementation process.

Design system governance fulfills several purposes:

  • Maintain’s design and brand consistency
  • Prevents poor design decisions—leading to usability issues
  • Encourages team members to think creatively and try to solve problems with the tools on hand before attempting to make changes
  • Ensures updates consider accessibility
  • Keeps the entire organization informed of changes
  • Updates digital product and design documentation

Without effective design system governance, editing and updating new components is a free-for-all that could create usability issues, inconsistencies and ruin the product’s reputation.

The Challenges of Maintaining a Design System

There are many challenges to maintaining a design system. Every organization must have a dedicated individual or team to manage its design system. 

Here are six common challenges to maintaining a design system and why an effective governance model is essential!

Company Political Forces

Sadly, even successful design systems aren’t safe from power struggles within an organization. Team members might call on executive power to either push or block design changes, overriding the initial decision of a design system team.

Conversely, governance keeps executives and other stakeholders well informed on design changes and the reasoning, making it easier to get buy-in and approval.

Managing Input From Multiple Teams and Departments

A design system is not only for UX and engineering teams. Product teams and other stakeholders share ownership of the organization’s design system. 

Managing all of this input can be challenging without a proper system of governance.

Design Systems are Often an Afterthought or Side Project

In many organizations, especially fledgling startups, the product’s design system isn’t a priority. It’s a side project a UX designer maintains in their spare time or over the weekend—feebly trying to maintain consistency with the demand for growth!

In this environment, a design system is prone to abuse and poor design decisions. Often UX teams have to undo changes to fix usability issues due to poor governance.

Poor Communication

Without proper communication between departments, teams, and individuals, a design system falls apart. For example, two teams might unknowingly work on the same task separately, or worse, crucial usability changes go forgotten because everyone thought “someone else was working on it.”

Design system governance fosters organization-wide communication, so everyone is updated and informed!

Reluctance from Team Members

When teams are reluctant to adopt the product’s design system, they choose the parts they like and develop a “better way” to design the rest. New team members or those not involved in creating the design system believe they can do better—thus undermining the hard work of others.

This reluctance can not only affect the product’s usability and consistency but create unnecessary conflict.

A governance model with multiple checks and balances prevents team members from hijacking a design system.

Reluctance to Change

Sometimes the opposite is true. Design system managers believe the system is fine the way it is, blocking any changes. A design system is never complete. It’s a work in progress that must evolve for the organization to grow.

The Single Source of Truth Dilemma

Many companies struggle with the single source of truth dilemma—working with a single dataset between all departments, primarily UX design, product, and engineering.

The UX team works with design tools, engineers with code, and the product team (often with limited technical know-how) uses all sorts of tools, including powerpoints, PDFs, and paper, to name a few. 

With this scattered workflow, maintaining a single source of truth is challenging. Often requiring additional staff and resources to ensure everyone is up-to-date. Even with good systems of governance, the single source of truth dilemma is a constant challenge.

Global payment giant PayPal solved its single source of truth dilemma with UXPin Merge. PayPal uses UXPin Merge to build and maintain its design system for internal user interfaces with code components from a Git repository.

When developers implement new changes, UXPin’s design editor’s components update simultaneously, so designers and engineers always work with the same design system. 

Establishing Design System Governance Standards

There are four primary scenarios where a design system requires changes or updates. These scenarios require a submission process where teams must ask a series of questions and tests before prototyping or requesting amendments.

  • Introducing new elements – Establishing a workflow for adding new elements ensures design system integrity while providing every team member with an equal opportunity to make additions. 
  • Promoting patterns – Patterns fall into two categories: one-off or best new practice. Teams must test these new patterns against what’s currently available before promoting them.
  • Reviewing and adapting patterns – Every design system must have a team (at least two members) to review patterns before release. This review process ensures new elements meet the standards and practices of the current design system.
  • Releasing design system updates – Rather than releasing new updates when they’re ready, teams must establish a release schedule for updates. A strict release schedule ensures teams follow quality assurance and documentation processes correctly.

An effective way to manage this submission process is through a simple decision tree that maps every step a change must follow.

This excellent example from Inayaili de León shows how Canonical’s team adds new patterns to their design system following a simple decision tree—from concept to release.

Inayaili admits that, like their design system, the decision tree is a work-in-progress that they update and refine as the product evolves.

5 Different Design System Governance Models

Design system governance models refer to the frameworks and practices that organizations use to manage, maintain, and evolve their design systems. Effective governance is crucial to ensure consistency, scalability, and collaboration across teams, especially as design systems grow and evolve over time. Here are some common design system governance models:

1. Centralized Governance Model

In a centralized governance model, a single, dedicated team (often called the design system team or design system core team) is responsible for the development, maintenance, and updates of the design system. This team typically includes designers, developers, and product managers who collaborate closely to ensure the design system is aligned with the organization’s brand and user experience goals.

Key Characteristics:

  • Unified Control: The design system team has full control over the design system’s direction, updates, and maintenance.
  • Consistency: Centralized control helps maintain a high level of consistency across all components and design tokens.
  • Streamlined Decision-Making: With a single team making decisions, changes and updates can be implemented quickly and efficiently.

Pros:

  • Clear ownership and accountability.
  • High consistency and quality control.
  • Efficient decision-making and streamlined processes.

Cons:

  • Can become a bottleneck if the team is small or overburdened.
  • May lack input from various product teams, potentially leading to a less flexible or adaptable system.

2. Federated Governance Model

A federated governance model, also known as a decentralized or hybrid model, involves multiple teams contributing to the design system under a set of shared guidelines and standards. In this model, the design system team still exists, but other product or feature teams also have the ability to contribute components, patterns, or updates.

Key Characteristics:

  • Shared Responsibility: Different teams contribute to the design system, fostering a sense of ownership and collaboration.
  • Guidelines and Standards: The design system team provides overarching guidelines, but individual teams have flexibility within those guidelines.
  • Cross-Functional Collaboration: Encourages collaboration across teams, promoting innovation and diverse perspectives.

Pros:

  • Increased flexibility and adaptability.
  • Encourages innovation and input from various teams.
  • Reduces bottlenecks by distributing the workload.

Cons:

  • Potential for inconsistencies if guidelines are not strictly followed.
  • Requires strong communication and coordination among teams.

3. Community-Driven Governance Model

In a community-driven governance model, the design system is managed in a more open, collaborative manner, often with contributions coming from across the organization, including designers, developers, product managers, and other stakeholders. This model relies heavily on community involvement and collective decision-making.

Key Characteristics:

  • Open Contribution: Anyone in the organization can propose changes, updates, or new components.
  • Community Moderation: A committee or group of maintainers oversees contributions, ensuring they meet quality and consistency standards.
  • Collaborative Decision-Making: Decisions are often made collectively through discussions, voting, or consensus.

Pros:

  • Highly inclusive and democratic.
  • Promotes widespread adoption and engagement.
  • Encourages diverse perspectives and innovation.

Cons:

  • Can be challenging to maintain consistency and quality.
  • Decision-making can be slower and more complex.
  • Requires a strong governance framework to manage contributions effectively.

4. Mixed Governance Model

The mixed governance model combines elements of the centralized, federated, and community-driven models, depending on the needs of the organization and the maturity of the design system. This model provides a flexible approach to governance, allowing teams to adapt based on specific circumstances, project requirements, or organizational culture.

Key Characteristics:

  • Flexible Approach: Different governance styles are applied to different parts of the design system, based on complexity, importance, or other factors.
  • Balanced Control: Centralized control is maintained for core components, while more flexibility is allowed for less critical elements.
  • Adaptive Governance: The governance model can evolve over time as the design system and organization grow.

Pros:

  • Balances consistency and flexibility.
  • Can adapt to changing needs and contexts.
  • Allows for experimentation and innovation.

Cons:

  • Can be complex to manage and communicate.
  • Requires clear guidelines to prevent confusion and maintain coherence.

5. Open Source Governance Model

The open source governance model is similar to the community-driven model but typically involves an external community beyond the organization. In this model, the design system is open to contributions from anyone, and the community helps drive its development and evolution.

Key Characteristics:

  • External Contributions: Contributions come from a wide range of external developers, designers, and other community members.
  • Open Development: The design system’s development process is transparent and open to public scrutiny.
  • Community-Driven Decision-Making: The community plays a significant role in shaping the direction of the design system.

Pros:

  • Leverages a broad pool of talent and ideas.
  • Encourages rapid innovation and evolution.
  • Promotes transparency and inclusivity.

Cons:

  • More challenging to maintain quality and consistency.
  • Requires robust community management and governance structures.
  • Risk of diverging goals and priorities among contributors.

Choosing the Right Governance Model

Selecting the right governance model for your design system depends on several factors, including the size and structure of your organization, the maturity of your design system, and the level of collaboration and flexibility you want to promote. Some organizations may start with a centralized model and evolve to a federated or community-driven approach as their design system matures and adoption grows.

Ultimately, effective design system governance should align with your organization’s goals and culture, fostering collaboration, maintaining consistency, and ensuring scalability as your design system evolves.

A Step-by-Step Governance Model Example

There are many ways to approach design system governance, but here is a 10-step process inspired by design system guru Brad Frost:

  1. Use what’s available – Product teams must exhaust every effort to find a solution using the current component library. This means a design system must be well documented and accessible to everyone. If the current design system does not fulfill the new requirement, teams can proceed to step two.
  2. Contact design system (DS) team – Product teams contact the DS team to discuss the problem and the proposed changes. Again, the DS team and product team will work together to find an existing solution. With intimate knowledge of the design system, the DS team might uncover something the product team missed. If there is still no solution, teams proceed to step three.
  3. Determine if the change is one-off or part of the design system – The product team and DS team decide whether the amendment is a one-off (snowflake) or part of the design system. One-off changes usually fall on the product team, while the DS team handles design system changes. Either way, teams must prioritize and schedule the changes.
  4. Initial Prototyping – Teams prototype and test product changes.
  5. Initial Review Process – The DS team and product team review the results from prototyping and testing. If both teams are satisfied, they proceed to the next step. If they determine the changes are lacking, teams return to prototyping and testing.
  6. UX & Dev Testing – Once designs pass the initial review, they go to UX and development teams for further testing to ensure the changes meet user experience and technical requirements.
  7. Final review – The product team and DS team meet again to review the results of UX and dev testing. If both teams are satisfied, they proceed to the next step. If not, they iterate.
  8. Documentation and schedule release – Teams document the new changes, update the changelog (e.g., Github), and schedule the release.
  9. Changes released – Changes are released, product version bump according to versioning guidelines, all teams notified (Slack, Asana, Trello, Github, etc.).
  10. Quality assurance – Product teams review the final changes for quality assurance.

You can see how this 10-step process will mitigate all of the six common design system challenges we outlined earlier. With multiple checks and balances, a design system maintains its integrity while communicating changes to the entire organization.

While this process solves many design system challenges, checks and balances don’t eliminate human error. Teams need a tool to provide a single source of truth!

Improving Design System Governance with UXPin

UXPin Merge bridges the gap between design and code, creating a single source of truth, so designers and engineers always work with the same tools.

Popular vector-based design tools don’t solve the problem. Designers and engineers must update and sync identical systems separately—an ineffective workflow prone to error.

UXPin is a code-based design editor syncing code components via Git or Storybook to allow product teams, UX designers, and developers to work with the same components—no need to update systems separately!

Lastly, because prototypes are code-based, product updates and design system changes are significantly quicker to engineer.

Ready to switch to the only design tool that fosters good design system governance? Discover UXPin Merge to get the most of your design system and keep all the design and code components up to date.

The post Design System Governance – Scale Your Design appeared first on Studio by UXPin.

]]>
What Are Design Tokens? https://www.uxpin.com/studio/blog/what-are-design-tokens/ Thu, 05 Sep 2024 12:09:21 +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. Announcement: UXPin’s 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.

Announcement: UXPin’s design tokens for colors are in beta! Sign up to get notified when they will be officially released: Design tokens in UXPin.

Optimize your design operations across the entire organizations. Use UXPin Merge, a revolutionary design technology for helping teams use React components in design and development. Learn more about Merge.

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.

Design tokens within CSS

To implement design tokens in CSS, they are often converted into CSS variables (also known as custom properties). CSS variables allow you to define reusable values that can be applied throughout your stylesheet, making it easier to maintain and update styles consistently.

Example of Design Tokens as CSS Variables

/* Define Design Tokens as CSS Variables */
:root {
  --color-primary: #007bff;
  --color-secondary: #6c757d;
  --font-size-base: 16px;
  --font-family-base: 'Arial, sans-serif';
  --spacing-small: 8px;
  --spacing-medium: 16px;
}

/* Applying Design Tokens in CSS */
body {
  font-size: var(--font-size-base);
  font-family: var(--font-family-base);
  color: var(--color-primary);
  padding: var(--spacing-medium);
}

button {
  background-color: var(--color-primary);
  color: var(--color-secondary);
  padding: var(--spacing-small) var(--spacing-medium);
}

Here’s a section you can add to your blog post about Design Tokens within CSS:


Design Tokens within CSS

Design tokens are a crucial part of modern design systems, helping to maintain consistency and scalability across digital products. When used within CSS, design tokens ensure that your styles are cohesive and easy to manage, allowing for a more efficient and streamlined development process.

What are Design Tokens?

Design tokens are the smallest, repeatable elements of a design system that store visual properties such as colors, typography, spacing, and shadows. They act as a bridge between design and code, providing a single source of truth that can be used across various platforms and technologies.

Using Design Tokens in CSS

To implement design tokens in CSS, they are often converted into CSS variables (also known as custom properties). CSS variables allow you to define reusable values that can be applied throughout your stylesheet, making it easier to maintain and update styles consistently.

Example of Design Tokens as CSS Variables

/* Define Design Tokens as CSS Variables */
:root {
  --color-primary: #007bff;
  --color-secondary: #6c757d;
  --font-size-base: 16px;
  --font-family-base: 'Arial, sans-serif';
  --spacing-small: 8px;
  --spacing-medium: 16px;
}

/* Applying Design Tokens in CSS */
body {
  font-size: var(--font-size-base);
  font-family: var(--font-family-base);
  color: var(--color-primary);
  padding: var(--spacing-medium);
}

button {
  background-color: var(--color-primary);
  color: var(--color-secondary);
  padding: var(--spacing-small) var(--spacing-medium);
}

In this example, design tokens for colors, typography, and spacing are defined as CSS variables. These tokens are then applied throughout the CSS to style elements consistently. If you need to update a style, such as changing the primary color, you only need to update the variable definition, and the change will automatically apply everywhere the token is used.

Types of Design Tokens

Organizations use these design tokens for many style properties, including color palette, size, spacing, assets, and drop shadows, to name a few. When we’re at it – here are the primary types of design tokens:

  1. Color Tokens: Define the color palette used in a design system. Examples include primary colors, secondary colors, background colors, text colors, border colors, etc.
    • Examples:
      • color-primary: #007bff
      • color-background: #f8f9fa
  2. Typography Tokens: Specify text-related properties. These include font families, font sizes, line heights, letter spacing, and font weights.
    • Examples:
      • font-family-body: 'Roboto', sans-serif
      • font-size-heading: 24px
  3. Spacing Tokens: Govern the spacing system, including margins, paddings, and gaps. They ensure consistent spacing throughout the design.
    • Examples:
      • spacing-small: 4px
      • spacing-large: 16px
  4. Sizing Tokens: Define sizes for components and elements. These can include widths, heights, and maximum and minimum sizes.
    • Examples:
      • size-button-height: 48px
      • size-avatar-small: 32px
  5. Border Tokens: Specify border properties, such as width, style, and radius.
    • Examples:
      • border-width-thin: 1px
      • border-radius-medium: 8px
  6. Shadow Tokens: Describe the shadow effects used in the design system, including color, offset, blur, and spread.
    • Examples:
      • shadow-small: 0 1px 2px rgba(0, 0, 0, 0.1)
      • shadow-large: 0 4px 8px rgba(0, 0, 0, 0.2)
  7. Opacity Tokens: Define the opacity levels for elements.
    • Examples:
      • opacity-low: 0.3
      • opacity-high: 0.9
  8. Breakpoints Tokens: Specify the breakpoints for responsive design, dictating how the design adapts to different screen sizes.
    • Examples:
      • breakpoint-mobile: 480px
      • breakpoint-desktop: 1024px
  9. Duration Tokens: Govern the timing of animations and transitions.
    • Examples:
      • duration-short: 200ms
      • duration-long: 600ms
  10. Easing Tokens: Define the easing functions for animations and transitions.
    • Examples:
      • easing-in-out: cubic-bezier(0.4, 0, 0.2, 1)
      • easing-bounce: cubic-bezier(0.68, -0.55, 0.27, 1.55)

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.”

What is the Difference between Atomic Design and Tokens?

Atomic design and design tokens are both concepts used in design systems, but they address different aspects of design consistency and scalability.

Atomic design is a methodology for creating design systems developed by Brad Frost. It breaks down user interfaces into smaller, reusable components called atoms, molecules, organisms, templates, and pages (in ascending order of complexity). Atoms are the basic building blocks like buttons, input fields, icons, etc. Molecules are combinations of atoms, organisms are combinations of molecules, and so on.

Design tokens are a set of variables that define design properties such as colors, typography, spacing, etc., in a design system. They are abstract representations of visual design decisions. Rather than hardcoding specific values (like a hex code for a color) directly into UI components, design tokens provide a centralized way to manage and update design properties across an entire design system.

Design tokens deal with the abstraction and management of design properties. They abstract design decisions into variables, allowing for easier maintenance, scalability, and consistency. They provide a single source of truth for design-related values.

3 Design Tokens Examples

Here are three examples of design tokens for typography. These tokens help ensure that typography styles are consistent across different components and platforms.

Design Token Example #1: Font Family

{
  "font-family": {
    "base": "Roboto, Arial, sans-serif",
    "heading": "Montserrat, Arial, sans-serif",
    "monospace": "'Courier New', Courier, monospace"
  }
}

Design Token Example #2: Font Size

{
  "font-size": {
    "base": "16px",
    "small": "14px",
    "large": "24px",
    "heading": {
      "h1": "32px",
      "h2": "28px",
      "h3": "24px"
    }
  }
}

Design Token Example #3: Line Hight

{
  "line-height": {
    "base": "1.5",
    "tight": "1.25",
    "loose": "1.75",
    "heading": {
      "h1": "1.2",
      "h2": "1.3",
      "h3": "1.4"
    }
  }
}

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.

Tips on Design Token Naming Conventions

Naming conventions are a crucial aspect of any design system, ensuring clarity, consistency, and ease of use across design and development teams. A well-thought-out naming convention helps communicate the purpose and function of design tokens, components, and styles, making it easier for team members to understand and use the system effectively. Here are some tips for creating effective naming conventions for your design system:

1. Be Descriptive and Concise

Names should clearly describe the element’s purpose or function without being overly verbose. Aim for a balance between specificity and brevity to ensure names are easy to read and understand.

Example:

  • Use color-primary instead of main-blue-color.

2. Use Consistent Patterns

Establish a consistent naming pattern or structure that applies across all elements in your design system. This uniformity helps users quickly recognize the type of element they are working with and understand its role in the system.

Example:

  • Use a pattern like [category]-[modifier], such as color-primary, spacing-small, or font-heading-large.

3. Avoid Ambiguity

Names should be clear and unambiguous, avoiding terms that could be interpreted in multiple ways. This helps prevent confusion and ensures that everyone on the team understands what each token or component represents.

Example:

  • Instead of button-color, use button-background-color to clarify that the token refers to the button’s background color, not its text or border.

4. Reflect the Design Intent

Names should reflect the design intent rather than specific values. This approach allows for more flexibility and scalability, as the underlying values can change without requiring renaming.

Example:

  • Use spacing-medium instead of spacing-16px. This way, if you decide to change the medium spacing from 16px to 20px, you don’t have to rename the token.

5. Align with Your Brand and Language

Ensure that your naming conventions align with your brand’s voice and the terminology used within your organization. This alignment creates a cohesive experience for both the design and development teams and ensures consistency in communication.

Example:

  • If your brand uses specific terminology for sizes (e.g., compact, regular, spacious), incorporate these terms into your token names, like spacing-compact or button-size-regular.

6. Include Context When Necessary

When tokens or components could be used in multiple contexts, include contextual information in the name to clarify their use. This is particularly important for tokens that might have different values or meanings depending on the context.

Example:

  • Use card-background-color instead of just background-color to specify that the token is for card components.

7. Use Common Abbreviations Sparingly

While abbreviations can save space, overusing them can make your names cryptic and harder to understand. Use common abbreviations where they add clarity and avoid using less common or internal jargon that might confuse new team members.

Example:

  • bg for background is a common abbreviation and widely understood, so bg-color-primary is acceptable. However, avoid using abbreviations like clr for color.

8. Document Naming Conventions

Document your naming conventions and provide examples in your design system documentation. This helps ensure that everyone on your team understands the rules and follows them consistently.

Example Documentation Excerpt:

  • “All color tokens should follow the pattern color-[modifier], where [modifier] describes the usage (e.g., primary, secondary, error). Example: color-primary, color-error.”

9. Plan for Scalability

As your design system evolves, new components and tokens will be added. Choose naming conventions that can easily accommodate growth and changes without requiring extensive renaming or restructuring.

Example:

  • Instead of naming a token button-small, which might be limiting, use button-size-small to leave room for adding other size-related tokens, like button-size-large.

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.

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.

]]>
Design System Documentation in 9 Easy Steps https://www.uxpin.com/studio/blog/design-system-documentation-guide/ Thu, 05 Sep 2024 11:46:03 +0000 https://www.uxpin.com/studio/?p=36909 Design systems provide you with a complete set of standards to enhance and manage your design efforts – from beginning to end. But in order to build and maintain a functional design system, first, you’ll have to commit time and effort before enjoying the benefits of a well-oiled design machine. Looking for a design system

The post Design System Documentation in 9 Easy Steps appeared first on Studio by UXPin.

]]>

Design systems provide you with a complete set of standards to enhance and manage your design efforts – from beginning to end. But in order to build and maintain a functional design system, first, you’ll have to commit time and effort before enjoying the benefits of a well-oiled design machine.

Looking for a design system management tool? UXPin Merge is a technology for bringing design library’s components to UXPin and using them in prototyping. Read more about UXPin Merge.

Reach a new level of prototyping

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

What is design system documentation? 

Design system documentation is a comprehensive guide on using a design system. It contains UI elements, components, and design language together with an explanation of how to use them. It helps share, consume, and execute these rules. This ultimately helps designers and developers to model their efforts around delivering a more predictable UI.

Design system documentation plays a crucial role in facilitating the adoption and implementation of a design system. It helps ensure consistency, efficiency, and predictability in UI design and development efforts, ultimately leading to a better user experience across products and platforms.

Two types of structuring design system documentation

A typical design system comprises a component library encompassing UI design elements and other components along with workflows. Design systems thus work to unify pattern libraries and style guides into a single cohesive experience.

Task-specific design system documentation

According to Heidi Adkisson, Principal UX Designer & Partner at Blink UX, while there are many different design documentation variants, some of the more task-specific types include:

  • User Stories – allow designers to base their approach on the user needs perspective.
  • Screen Flow Diagrams – are great for showing how a user might navigate between screens. 
  • Use Cases – offer longer, more objective narratives which hold enormous benefits down the line. 
  • Page-Level Documentation – describes an overview of a page’s function, purpose, and instructions for demos. 
  • Scenario Narratives – outline descriptive narratives around how to perform specific tasks. 

Structural design system documentation

Other design documentation types related to docs from a structural perspective and often include:

  • Object Model – which provides a structural view of a system.
  • Architecture Map – communicates how the app or site is structured in general.
  • Standardized Components – talk about standardized elements which are shared across the system. 
  • System Vocabulary – lists the specific words, phrases, and other relevant system-specific language. 
  • Navigational Framework – describes menu items, navigation elements, and control mechanisms. 

Why do you need to document your design system? 

Design documentation is today an essential component of any design system. From providing context to describing team coordination efforts and maintaining a clear record of the system’s component library, component documentation is fundamental to successful design. 

Design system documentation was once considered “non-critical” and was often overlooked. Without ever being exposed to the potential of design system documentation, stakeholders had no idea of the value that documentation could bring. 

Following the emergence of Google’s Material Design, it quickly became clear that design documentation was critical. Most design documentation consisted of disorganized notes and bullet points, leaving most of the vital information out of the system. Material Design changed all that, adding the necessary structure and warranting the need to document.

Documenting a design system comes with a raft of benefits as well:

  • It provides a vision for the team to buy into – By creating design documentation that focuses on people, instead of black and white technical directives, you’re able to establish a clear vision that teams can refer back to when they lose focus. 
  •  It gives the design system a clear, material structure – By keeping ahold of processes, designers and developers can better rely on a plan which has been laid out in front of them, instead of existing as an idea or general objective. 
  •  It helps you to save resources – A good, high-quality document design infrastructure will save on costly trial-and-error mistakes, allow teams to optimize their time and effort, and ensure that reusable design patterns get recorded and later replicated. 
  •  It drives engagement and satisfaction – Big projects can take a hefty toll on teams. Effective design documentation gives them something real to work towards – something they can count on when the going gets tough. 
  •  It improves efficiency and productivity – With everything the team needs documented and made available, things get done faster, while keeping everyone on the same page. 

Without effective design documentation, successfully designing and delivering a product to market is near-impossible. Design system documentation has become essential by providing the rationale behind specific design decisions and helping users understand and interact with the model. 

9 steps to creating design system documentation

Step 1: Understand who is going to use the documentation

The very first step in design system documentation is to kick things off by looking at the market you’re doing all this work for – your users. Without understanding what they want, you’ll likely get your design goals and results very wrong. 

Think about categorizing your documentation as a product and your team as the consumers of that product. Focus on who will be using this documentation, what you’ll need to include to give them the context they’re looking for and how to structure it in a way that it’ll be easy to consume. 

Step 2: Outline the documentation needs of each component

Next, you’ll need to establish an outline covering the needs of each component and should include design guidelines on:

  • Patterns
  • Code snippets
  • Colours
  • Images
  • Fonts 
  • ADA compliance guidelines and more.

Component documentation should consider the needs of your organization first and foremost before considering the outline in the context of other design elements. 

Step 3: Create a style guide

Style guides help to establish the basis for the visual presentations of the documentation and offer a guideline for the visual and content elements of a design system. Style guides begin by looking at the other design documentation elements and describe the colors, logo prominence, and overall language tone. Ultimately, they serve as the template for others to use.  

Step 4: Create a reusable template that you can share with your team

Then, you’ll need to draft a template your team can reuse over and over while sharing it with one another. Having a recyclable documentation template saves your team time, keeps things consistent and ensures that everyone understands what they’re looking at.

Step 5: Develop a single source of truth

Establishing, articulating, and documenting a single source of truth is probably one of the most important product design components. This universally approved agreement centers on everything your design team will be working on. From icons and color schemes to type scales and buttons – if everyone knows and understands what things need to look like, things will flow far more smoothly. 

Start either with basic design components, found in your component library – created with tools like UXPin – or commence with the development phase, with React components defining the origins. UXPin, for example, allows you to ensure consistency throughout the company with UXPin Merge’s design system versioning. 

Keep creating a single source of truth for your team to design from when working on projects. UXPin Merge offers a design system versioning, allowing you to optimize your single source of truth design approach and to manage code-driven prototyping with it. With tools like UXPin, you can make use of baked-in open-source libraries or import your own design system via Git, Storybook or NPM integration.

Step 6: Include a starter’s kit

Design kits are a sometimes-overlooked component of good design system documentation. However, these necessary resources represent the “starting point” elements that are so essential for good user experience. Starter kits are the perfect onboarding tools and are flexible enough to range from step-by-step guidelines to advanced user manuals.   

Step 7: Collect feedback

Feedback lets you know when a design system is working well, and when it isn’t. Some organizations, for example, limit their feedback collection mechanisms to GitHub issues, creating challenges for designers and less-technical role players in giving their thoughts. 

Alternative feedback collection methods like website feedback boxes on documentation sites allow users to describe and submit the issue. A streamlined feedback channel without the need to open a GitHub issue allows anyone looking to provide any feedback the ability to do so quickly and via the documentation platform.

Step 8: Distribute the responsibility

Documenting can be a labor-intensive task for which people aren’t always willing to volunteer. But sharing its importance with the team helps them to understand the value of taking care of it. Instead of burdening one person with this challenge, consider sharing the responsibility of doing so across the team. This way, you’ll get a variety of insights as well as make the task easier to accomplish. 

Step 9: Update it regularly

Design systems need to be maintained, kept clean, and relevant. Continually keep an eye on identifying potential problem areas, reducing discrepancies, and streamlining the number of active systems. 

A good example here would be to establish a single source of truth for your React story code examples for your documentation site and design system components, updated regularly to ensure they align with each other. 

UXPin also boasts a regular update feature. Whenever making changes to a master component from a design system, UXPin allows you to update it in the system immediately, ensuring everything stays completely aligned.

Design System Documentation Template

Here is a template that you can use when writing your own design system documentation. Use it as a reference.

1. Introduction

  • Overview: Provide a brief introduction to your design system. Explain its purpose, key goals, and the value it brings to your organization.
  • Principles: List the core principles or guidelines that underpin your design system. These might include consistency, accessibility, responsiveness, and scalability.

2. Getting Started

  • Quick Start Guide: Include a step-by-step guide on how to get started with the design system. This should cover how to access the system, what tools or resources are needed, and any initial setup required.
  • Installation: Provide detailed instructions for installing any necessary software or dependencies, including commands for installing packages or setting up development environments.
  • Contributing: Outline the process for contributing to the design system. This might include a guide on submitting changes, creating new components, or reporting issues.

3. Design Tokens

  • What are Design Tokens?: Briefly explain what design tokens are and why they are important. Design tokens are the visual design atoms of the design system — specifically, they are named entities that store visual design attributes.
  • Token Categories: List and describe the different categories of design tokens used in your design system. Common categories might include color, typography, spacing, and shadows.
  • Usage Guidelines: Provide guidelines on how to use design tokens in both design and code. Include examples for clarity.

4. UI Kit

  • Color: Document your color palette, including primary, secondary, and tertiary colors. Include color codes and usage examples for background, text, and UI elements.
  • Typography: Define your typography styles, including font families, sizes, weights, and line heights. Provide examples of how to apply these styles in various contexts.
  • Spacing: Detail your spacing system, including values for margins, padding, and grid spacing. Provide examples of consistent spacing usage.
  • Icons and Imagery: Describe the guidelines for using icons and imagery within the design system. Include icon libraries, image dimensions, and file formats.

5. UI Components

  • Component Library: List all available UI components, such as buttons, forms, modals, and navigation elements. Provide a brief description of each component.
  • Component Usage: For each component, include the following details:
    • Description: A brief explanation of the component and its purpose.
    • Anatomy: A breakdown of the component’s structure, including any variants or states.
    • Usage Guidelines: Best practices for when and how to use the component effectively.
    • Code Examples: Include code snippets in HTML, CSS, and JavaScript (or React, Angular, etc.) to demonstrate how to implement the component.
    • Accessibility Considerations: Guidelines for ensuring the component is accessible to all users, including keyboard navigation, screen reader support, and contrast ratios.

6. Patterns

  • Design Patterns: Document common design patterns used across your product or website. Examples might include forms, navigation, authentication flows, or error handling.
  • Pattern Usage: For each pattern, provide a description, usage guidelines, and code examples. Explain how patterns can be combined with components to create a cohesive user experience.

7. Brand Guidelines

  • Voice and Tone: Outline the brand’s voice and tone, including guidelines for writing style, terminology, and messaging.
  • Logo Usage: Provide rules for logo usage, including minimum sizes, clear space requirements, and acceptable variations.
  • Brand Assets: Include links to downloadable brand assets, such as logos, fonts, and color palettes.

8. Accessibility

  • Accessibility Standards: Detail the accessibility standards your design system adheres to, such as WCAG (Web Content Accessibility Guidelines).
  • Best Practices: Provide guidelines for creating accessible designs and components, including considerations for screen readers, keyboard navigation, and color contrast.
  • Testing Tools: Recommend tools and techniques for testing accessibility in both design and development.

9. Changelog

  • Versioning: Explain your versioning system and how changes to the design system are documented.
  • Recent Updates: Include a log of recent changes, updates, and additions to the design system. Provide links to specific updates or new components for easy reference.

10. Resources

  • Tools and Plugins: List any tools or plugins that support your design system, such as Figma libraries, Sketch files, or browser extensions.
  • Training and Tutorials: Provide links to training materials, tutorials, or webinars that help users understand and use the design system effectively.
  • Support and Community: Include information on how to get support, report issues, or connect with other users of the design system.

Build Prototypes with your Design System

A sound design system needs to be supported by clear, unambiguous component documentation that enriches your component library and revolves around a single source of truth. 

As a general good practice rule – documentation is everything. It keeps track of progress, milestones, wins, and losses, lets you go back, review and learn, and – most importantly – allows people to understand and follow the design system itself. 

Do you need to ensure that your design system is being implemented? UXPin with Merge technology allows you to use UI components from your design system in prototyping. Simply import them to UXPin, drag and drop them in design editor and create consistent prototypes that look like a finished product. Read more about UXPin Merge.

The post Design System Documentation in 9 Easy Steps appeared first on Studio by UXPin.

]]>
These Storybook Examples Will Inspire Your Component Library https://www.uxpin.com/studio/blog/storybook-examples/ Thu, 05 Sep 2024 11:39:47 +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.

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

Design UI with code-backed components.

Use the same components in design as in development. Keep UI consistency at scale.

What is Storybook?

Storybook is an open-source tool for developing UI components in isolation for React, Vue, Angular, and other frameworks. It allows developers to build, test, and document components in a standalone environment outside of the main application, promoting better modularity and reusability.

It enhances the efficiency of UI development by providing a focused environment for creating, testing, and documenting UI components, making it easier for developers to build consistent and robust user interfaces.

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 9 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.

Salesforce Lightning Design System for React

Storybook example

You can also find a Storybook with components of one of the best design systems – Salesforce Lightning. This design system is based in React, a JavaScript library, which is commonly used for building user interfaces. React is a popular front-end library developed by Facebook that allows developers to create interactive and dynamic UI components.

When we talk about React in the context of design systems, it usually means using React to implement the components and design guidelines provided by the design system.

By leveraging the Salesforce Design System, developers and designers can create applications that not only look great but also provide a consistent and intuitive user experience, ultimately leading to increased user satisfaction and productivity. Additionally, adherence to the design system ensures compatibility and seamless integration with other Salesforce products and services.

Salesforce Lightning Design System was created to be framework agnostic, yet it is still compatible with other front-end frameworks, and developers have the flexibility to choose the technology stack that best suits their needs and preferences.

This Storybook example is based on React and it has UI components such as a data table, checkbox, button, card, carousel, and more.

Audi UI React

Audi Storybook Example

Another React-based Storybook is a design system by Audi. Crafted with precision, the Audi Design System serves as the ultimate beacon of truth for our global teams dedicated to crafting Audi’s finest offerings.

Audi Storybook components example

From insightful Getting Started guides to indispensable Core Components, this Storybook example empowers every team member, ensuring a unified approach across all Audi products worldwide. The Audi Design System embodies the essence of precision, innovation, and seamless collaboration that the design team at Audi chose as its defining qualities.

It sets the standard for design systems in the automotive industry and beyond. Check out its Storybook to see for yourself. It has navigational, input, text, and many other useful components.

FAQ

1. What is Storybook used for?

Storybook is an open-source tool used for developing, testing, and documenting UI components in isolation. It provides a sandbox environment where developers can create and showcase components independently from the main application. This helps in building components that are reusable, consistent, and well-documented.

Storybook is particularly useful in the development of design systems and component libraries, as it allows developers to visualize and interact with components outside the context of the application, ensuring they function correctly and look as expected. It also supports a range of add-ons for accessibility, responsive design, and performance testing, making it a versatile tool for front-end development.

2. What are some advanced Storybook examples?

Advanced Storybook examples demonstrate the tool’s capability to handle more complex scenarios and enhance the development experience. Here are a few examples:

  • Component Interactions: Using Storybook’s Controls add-on, you can create interactive components that respond to user input directly in the Storybook UI. This is useful for testing props and states dynamically.
  • Composite Components: Showcase components that are composed of multiple child components, such as a form with inputs, buttons, and validation messages. This helps in understanding how components work together in a real-world context.
  • Data Fetching and Mocking: Demonstrate how components behave with data fetching by using tools like MSW (Mock Service Worker) to mock API requests within Storybook. This is particularly useful for testing components that depend on external data sources.
  • Theming and Styling: Create stories that demonstrate how components adapt to different themes or styles. This is especially useful for design systems that support dark and light modes or multiple branding themes.
  • Accessibility Testing: Use the a11y add-on to automatically check for accessibility issues in your components and display the results directly in Storybook. This ensures your components are usable for all users, including those with disabilities.

3. What are public Storybooks?

Public Storybooks are Storybook instances that are accessible to the public over the internet. They are typically hosted on platforms like GitHub Pages, Netlify, or Vercel, allowing anyone to view and interact with the documented UI components. Public Storybooks are often used by companies and open-source projects to showcase their component libraries or design systems, providing developers and designers with a comprehensive reference for how each component should look and behave.

By sharing a public Storybook, teams can improve collaboration, provide clear documentation, and promote consistency across different projects. Public Storybooks are also valuable for onboarding new team members and for providing external contributors or users with insights into the UI components available within a project.

4. What is the difference between Storybook for React and Storybook for Angular?

Storybook is a versatile tool that supports multiple frameworks, including React and Angular, but the way it integrates and functions with each framework can differ slightly due to the inherent differences between React and Angular themselves.

Nevertheless, the core purpose of Storybook remains the same across both frameworks: to provide a powerful environment for developing, testing, and documenting UI components in isolation. Both Storybook for React and Storybook for Angular offer robust features that cater to the unique needs of their respective frameworks, ensuring that developers can maintain a consistent and efficient workflow.

5. How can I use Storybook with UXPin Merge?

Using Storybook with UXPin Merge allows you to import your React components directly from Storybook into UXPin, enabling a seamless integration between design and development. This integration ensures that designers are working with the exact same components that developers are using in production, leading to more accurate and efficient design processes. Here’s how you can use Storybook with UXPin Merge:

  1. Set Up Storybook: Ensure that your React components are documented and organized in Storybook. You should have a well-structured Storybook instance with all the components you want to use in UXPin.
  2. Sync Components: Integrate Storybook with UXPin and use UI components in your UXPin design projects, allowing designers to drag and drop components into their prototypes while maintaining full functionality and interactivity.
  3. Design and Iterate: With the components imported from Storybook, designers can create high-fidelity prototypes in UXPin that are consistent with the development environment. This integration helps streamline the design-to-development workflow, reducing the risk of inconsistencies and ensuring that both teams are aligned.

Using Storybook with UXPin Merge is a powerful way to bridge the gap between design and development, ensuring that your UI components are consistent, reusable, and accurately represented across all stages of product development.

Try UXPin Merge and Storybook integration for fast prototyping

Use Storybook components to build interactive prototypes 8.6x faster than with vector-based tools like Figma. Import them to UXPin via our integration with Storybook and build 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.

]]>
7 Great Design System Management Tools  https://www.uxpin.com/studio/blog/7-great-design-system-management-tools/ Fri, 30 Aug 2024 09:50:38 +0000 https://www.uxpin.com/studio/?p=34832 Design system tools help drive adoption while making it easier to scale and maintain. With so many options on the market, how do you know which one is right for your product? Having worked with design tools for over a decade, we’ve put together seven of the best design system tools–including solutions for both: designers

The post 7 Great Design System Management Tools  appeared first on Studio by UXPin.

]]>
design system tools

Design system tools help drive adoption while making it easier to scale and maintain. With so many options on the market, how do you know which one is right for your product?

Having worked with design tools for over a decade, we’ve put together seven of the best design system tools–including solutions for both: designers and engineers.

Bring a component library from your design system to UXPin and enjoy the interactivity of component-driven prototyping. Your own components are easier to maintain, keep in sync, and share with devs as a single source of truth for design and code. Request access to UXPin Merge.

Reach a new level of prototyping

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

UXPin

UXPin allows you to create and manage design systems directly within the platform. You can set up your design guidelines, resources, and documentation early in a project, which helps maintain consistency and ensures that everyone on the team is aligned.

The Design Systems tab in UXPin’s dashboard is the central hub where all your design systems are created and stored. This centralization simplifies access and management, making it easy for teams to work with design systems efficiently.

  • Flexibility in Creation: UXPin supports creating design systems from scratch or using existing libraries. This flexibility allows teams to either start fresh or build upon a foundation of pre-existing assets, accelerating the design process.
  • Drag-and-Drop Simplicity: Designers can simply drag and drop the design system’s components and assets to start building layouts, with no need for external files or plugins. With everything integrated inside UXPin, teams achieve maximum consistency and efficiency without needing to leave the tool to access design system documentation.
design system management tool uxpin

A well-organized design system includes various resources like colors, typography, assets, and UI patterns. UXPin excels at managing these resources by providing specific sections for each:

  • Colors and Typography: UXPin allows designers to easily add colors by typing HEX codes, importing from a website URL, or linking directly to CSS files. Similarly, text styles can be managed directly from the editor, making it easy to maintain consistent typography across all projects.
  • Assets and UI Patterns: Designers can upload images, icons, and other assets in various formats, including SVG. UXPin’s UI patterns feature allows designers to create reusable components and add them to the design system anytime, ensuring that all design elements are consistent and reusable.
  • Link to documentation: UXPin also makes it easy to link to external documentation for engineers, like a component library hosted in Storybook. This documentation is accessible through UXPin’s Spec mode, where developers can easily access properties such as colors, typography, CSS code, and the component’s origin.

As your design system matures, upgrade to UXPin Merge–a technology that lets you sync a design system from a repository to UXPin’s editor so designers can build layouts using fully functional code components.

With Merge, designers and engineers use the same components, thus creating a single source of truth for your design system. Any updates to the repository automatically sync to UXPin’s editor, notifying designers of the new version.

Teams can use UXPin’s Version Control to switch between different versions of the design system. They also have the freedom to use different versions for each project or prototype.

Zeroheight

Zeroheight is a hub for hosting your design system documentation to share across the organization. Unlike UXPin, where designers can draw components directly from the library, Zeroheight lets you host design files that team members must download and install.

zeroheight is one of the best design system management tools

The platform does, however, allow you to embed your design system’s components from Storybook with code snippets.

Zeroheight offers a standard dashboard layout for your design system, similar to Lightning, Polaris, Stacks, and others, with main navigation on the left and a table of contents to the right. This familiar layout helps with onboarding, allowing teams to navigate the design system to find what they need.

You can store all of your design system’s assets in Zeroheight, and the DS team can embed YouTube, Vimeo, Loom, or Google Drive videos for tutorials and explainers.

Supernova

Supernova is an excellent alternative to Zeroheight with a similar layout and features but slightly more functionality.

One of Supernova’s best features is the ability to automatically “convert design data into code or assets for any tech stack.” You can also include starter templates for developers in your product’s formats, like iOS, Android, React, Angular, Flutter, and others, ensuring engineers always have the correct code and assets at the beginning of every project.

Zrzut ekranu 2022 04 8 o 14.29.59

Supernova’s VSCode extension syncs your design system to the popular IDE, so developers have everything they need in one place. You can also sync Supernova to popular design tools so designers don’t have to download and import files.

Storybook

Storybook is a popular tool for engineers who want to build and store UI components in isolation. Storybook also integrates with other design and development tools.

One of those tools is UXPin. With Merge’s Storybook integration, you can sync your library to UXPin’s editor so that designers can access the same components–creating a single source of truth.

A sandbox environment inside Storybook makes it easy for engineers to focus on individual UI components, including states and interactions. The dashboard layout allows you to organize and categorize your Storybook component library, so it’s easy to find what you need.

Zrzut ekranu 2022 04 8 o 14.32.28

Storybook is a collaborative tool allowing you to review new components with teams and stakeholders to get input and sign-off before publishing. The Chromatic add-on lets you automate visual testing across browsers and gather feedback from QA teams.

Storybook automatically creates basic documentation for each UI component, which you can edit to include your design system’s guidelines, usage, principles, and more.

Storybook is an open-source tool, and it’s free to use. Simply follow the comprehensive documentation to get started. Check out these best practices and Storybook examples for inspiration.

Pattern Lab

Pattern Lab is an open-source front-end environment for building, viewing, testing, and showcasing your design system’s UI components. The platform uses Brad Front’s Atomic Design principles that “stitches together UI components” to build patterns and templates.

Zrzut ekranu 2022 04 8 o 14.33.16

You can build components in Handlebars or Twigs markup and use a separate JSON file to create variations. Pattern Lab automatically categorizes your elements and displays them in a dashboard-style UI. 

Users can inspect each element from the dashboard to view the markup and HTML language with CSS classes. You can also include documentation for each component to give users more information and context.

If you’re building a custom design system management tool, Pattern Lab provides an excellent starting environment for you to customize.

Adobe XD

Out of the box Adobe XD doesn’t provide features for managing a design system, but it does integrate with design system tools like Zeroheight, Frontify, Zeplin, and others.

Like UXPin, designers can share component libraries and assets from your design system–albeit without the context and instructions of documentation and style guides.

The problem with using Adobe XD for mature design systems, is you have separate components for design and development, one code-based and the other image-based for designers to use in XD. You also need additional tools and plugins to sync and manage your design system and deal with design system contribution.

Design System Manager – InVision

Until 2024, Design System Manager (DSM) from InVision was another popular design system management tool. DSM looked and functioned very similar to Supernova or Zeroheight with a clear dashboard layout and intuitive navigation.

DSM synced to InVision’s design tool, so teams could drag components from the design system to build layouts. Like UXPin Merge, it kept design systems unified.

Sadly, InVision is no longer available. It was shutdown in January 2024. If you are looking for a compelling alternative, we recommend you try UXPin Merge.

design system manager from invision

What to Look for in a Design System Management Tool?

design system 1

Your design system tool must provide a good user experience for your designers and engineers. Here are some essentials to look for when choosing design system management tools.

Version Control

Versioning is a crucial feature every design system must have. Version control creates a new file for every design system release so that teams can switch between versions. Some of the benefits of design system version control include:

  • Allows teams to update to the latest design system release when they’re ready–preventing interruptions to workflows
  • Allows teams to work on the same file simultaneously
  • Track changes over time
  • Informs teams of what’s in each release
  • The ability to switch between versions
  • Helps with fault finding

Read more about versioning: Version Control for Design – Is it Worth it?

Style Guide

Most design systems start as style guides (usually PDF) that designers use to design components and UIs. A style guide provides context and instructions for a design system’s patterns and components–for example, color HEX codes, typography scales, usage, dos and don’ts, etc.

Component Storage

Component examples are most helpful for developers because they’re interactive and include code snippets. This is important because it allows engineers to see exactly how the component is supposed to work.

Asset Storage

It’s important to keep all of your design system assets (logos, images, etc.) with your component library and documentation so everything is in one place.

Documentation & Guidelines

Documentation is the core of every design system. This documentation provides users with principles and guidelines to design products, including:

Feedback

Every design system must be open to feedback and suggestions. This communication is also crucial for flagging bugs or errors. Including a contact page or comment form in your design system allows teams to submit feedback.

Which Design System Management Tool Will You Choose?

It’s your turn now. Pick a design system tool that fits your needs. Test every tool that we compared here and see which one you like best. To speed up interactive prototyping, scale design operations, and boost collaboration, try Merge. Read more about UXPin Merge.

The post 7 Great Design System Management Tools  appeared first on Studio by UXPin.

]]>
Creating a Design System in UXPin – The 3-Minute Guide https://www.uxpin.com/studio/blog/creating-design-system-uxpin-3-minute-guide/ Thu, 29 Aug 2024 13:26:09 +0000 https://www.uxpin.com/studio/?p=15837 In 2016, we did an intense user research campaign. After 40+ interviews with design and engineering leaders and a survey of 3,100+ designers and developers, we concluded traditional design tools aren’t good enough to serve modern product development. Workflows are too fragmented, disconnected, and unfocused. Design system tools must be a complete hub for design

The post Creating a Design System in UXPin – The 3-Minute Guide appeared first on Studio by UXPin.

]]>
3 Minute Design System Guide

In 2016, we did an intense user research campaign. After 40+ interviews with design and engineering leaders and a survey of 3,100+ designers and developers, we concluded traditional design tools aren’t good enough to serve modern product development.

Workflows are too fragmented, disconnected, and unfocused. Design system tools must be a complete hub for design and development. 

We summarized our findings with three simple rules for our first release of UXPin Design Systems:

  • Dynamic environment, not static documentation
  • An actionable system, not a reference document
  • Facilitate a connection between design and development, not just a library of design patterns

With these principles in mind, we released the first design system platform on June 13th, 2017.

UXPin’s Design System Libraries support various stages of design system maturity. The final stage is syncing design and development to create a fully integrated system where designers and engineers share one component library—a single source of truth.

UXPin Merge allows you to import code components from your design system’s repository as visual design elements. Designers can use these components to build prototypes using a simple drag-and-drop workflow. Merge components render on UXPin’s canvas exactly as they do in the repository, enabling designers to create fully functioning prototypes indistinguishable from the final product. Request access to UXPin Merge.

Reach a new level of prototyping

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

How to Create a Design System in UXPin

To begin, open the Design Systems tab in the top bar of your UXPin dashboard. Here, you can create a new design system or view existing ones. Let’s start by clicking the “Create Design System” button.

You can build a design system in two ways:

  • Using an Existing Library: UXPin provides pre-built libraries that you can use as a foundation.
  • Starting from Scratch: For this tutorial, we’ll start with a blank slate by clicking “Create from Scratch.”

Note: All examples here are created within UXPin, but UXPin Design Systems also support Sketch and Figma imports.

Create a Library of Styles

A solid design system begins with the most prevalent design elements—text styles and color palettes. UXPin lets you pull these directly from your design projects and save them in a shared Design Systems Library, which acts as an actionable toolkit for your product’s design system.

Adding Colors and Text Styles

To add colors or text styles, select the relevant layers in Sketch or UXPin. UXPin will automatically pull the styling and add it to your system. These styles stay synced with the library in UXPin or Sketch, making your system dynamic and up-to-date.

  • Typography: Text styles can be added directly from the Editor, allowing you to maintain a consistent typography system across all designs.
  • Colors: Add colors by typing their HEX code and pressing “Enter,” importing colors from a website URL, or linking directly to a CSS file. This ensures that all color palettes are centralized and easy to update.

Create a Library of Assets

Next, save your graphic design assets and share them alongside your colors and text styles—such as logos, approved stock photos, or icon libraries. These assets can be stored in the Design Systems Library, providing your entire team with easy access to a centralized design toolkit.

Assets: Upload images and icons in various formats, including SVG. This makes it easy to maintain a library of all design assets that can be reused across different projects.

Create an Actionable Library of Patterns

Design patterns are essential components and elements in your design system. In UXPin, you can create, save, and share these patterns, including those imported from Sketch. You can also add interactivity and animations, enabling designers to reuse these patterns without starting from scratch for each new project.

UI Patterns: These are reusable components and elements designed and prototyped in UXPin. Add them to your design system to ensure consistency and streamline the design process.

Generate a System and Keep it in Sync

Having a library of shared assets is an excellent first step, but it’s not enough to solve the problem of scaling software development.

Most solutions stop here and don’t move toward development. We’ve decided to go all the way.

In UXPin Design Systems, all the colors, text styles, assets, and patterns become a living system with one click. When you add new patterns, text styles, assets, or colors, UXPin automatically updates your design system and generates documentation. These changes are immediately available to all team members and stakeholders.

Add Documentation for Developers

Once you’ve built your system, you can add documentation, including code snippets for patterns and components. Developers can view this documentation with prototypes and mockups, keeping style guides, assets, and instructions in one platform for smoother, faster design handoffs.

Make Documentation Actionable

Design system documentation shouldn’t just be a reference document. It must be where the action is – inside the design projects.

With UXPin, your design system documentation follows your projects.

When you deliver a new release, UXPin automatically generates documentation from the product’s design system, including markup, imports, names of Javascript components, etc

Scaling Design Systems With UXPin Merge

UXPin’s Design System Libraries take you from stage one to three in design system maturity. The final stage is syncing design and development to create a fully integrated design system where designers and engineers share one component library–a single source of truth.

And that’s where UXPin Merge comes in.

Merge imports code components from your design system’s repository as visual design elements designers can use to build prototypes using a simple drag-and-drop workflow.

Merge components render on UXPin’s canvas exactly as they do in the repository, allowing designers to build fully functioning prototypes indistinguishable from code.

This high degree of fidelity and code-like functionality enables design teams to get meaningful, actionable feedback from usability testing and stakeholders who can interact and engage with prototypes as they would the final product.

Single source of truth

Merge also significantly enhances the product development process by centralizing the design system’s management and distribution from a single repository–no more managing UI kits and a component library with separate instructions and documentation to maintain.

Any changes to the repository automatically sync to UXPin, notifying teams of the update. With UXPin’s Version Control, designers can choose which projects to update and even revert to earlier design system releases when needed.

Teams can use Merge Design System Documentation or Storybook’s Docs (for Merge Storybook Integration) to manage documentation for all team members, simplifying one of the most time-consuming governance and maintenance procedures.

Scaling and streamlining with Patterns

UXPin’s Patterns enable design teams to create new patterns and templates by combining Merge components. They can use elements from the design system or combine components from other design systems.

UXPin’s Patterns are also helpful for saving multiple versions or states of a component, template, or screen, allowing designers to swap out and try different variations during testing or feedback sessions with stakeholders. These “on-the-fly” changes allow designers to iterate faster and maximize valuable testing time.

Final Thoughts

To recap, setting up a design system in UXPin involves:

  • Creating and organizing design elements like colors, typography, assets, and UI patterns.
  • Documenting each element with descriptions, code, and links.
  • Using the Spec mode to inspect elements and ensure consistent implementation across your project.
  • Scaling and syncing design and development with UXPin Merge to maintain a single source of truth.

By following this guide, you’ll be able to create, manage, and scale a comprehensive design system that supports your team from design to development. Visit our Merge page and explore how UXPin can transform your design workflow today! Request access to UXPin Merge.

The post Creating a Design System in UXPin – The 3-Minute Guide appeared first on Studio by UXPin.

]]>
Design a System of Icons With These Techniques https://www.uxpin.com/studio/blog/design-system-icons-techniques/ Tue, 27 Aug 2024 11:07:17 +0000 https://www.uxpin.com/studio/?p=15490 Little icons have a big job. With limited real estate, they must convey meaning to people who expect to be informed about function or status. Maybe that’s why thousands of icons sets exist, many for free. But there’s nothing quite like making your own. Project-specific icons help the project to stand apart and convey meaning

The post Design a System of Icons With These Techniques appeared first on Studio by UXPin.

]]>
Design System of Icons

Little icons have a big job. With limited real estate, they must convey meaning to people who expect to be informed about function or status. Maybe that’s why thousands of icons sets exist, many for free. But there’s nothing quite like making your own.

Project-specific icons help the project to stand apart and convey meaning unique to its functions. For example, most apps or dashboards let you create new records. But fewer systems will let you assign one record to another. That may require a creative symbol that people will come to recognize as they learn your product.

Their role in design systems leaves little room for ambiguity: meaning must remain clear in a variety of surrounding contexts, while fitting into the system’s overall aesthetic.

Unify your design and development team with a single source of truth – coded components shared across UI design and engineering. Bring your design system to the final level of maturity and speed up the entire product development process. Try UXPin Merge.

Reach a new level of prototyping

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

What are Icons in Design System?

Icons in a design system are visual symbols that represent ideas, objects, or actions. They are a fundamental element of user interface that helps products have a unique look and feel. Plus, they indicate that an element is clickable. They can provide visual cues where to click or tap to perform actions like saving, editing, sharing, or navigating within the interface.

Examples of icons in design system include:

  • navigational icons – aid navigating through the interface, such as menus, home, arrows.
  • action icons – help users perform some task like arrow for adding an item.
  • media icons – indicate that users can manage media like play button or speed up button.
  • utility icons – represent settings, configurations, and other customization mechanisms.
  • status icons – show errors, loading, or approval.
  • communication icons – such as chat bubble, phone or envelope.

Why Icons are Part of Design System?

Iconography is more than tiny pictures. Together they form an entire family, not unlike a set of typefaces, that reinforce a brand.

They also prevent extra work. When you need an icon, just grab one from the project’s style library, or use the library as inspiration. To that end writing (and drawing) guidelines for new icons is important.

  • Make guidelines for icons. Part of your design system should include parameters on what your team can and can’t do with icons.
  • Practice style. One of the best ways to develop a visual language is to apply it to new ideas. As you invent icons, make sure they fit the same look — but don’t be afraid to modify that look early in your work.
  • Test each iteration. Do your icons make sense? Can people figure out what they mean? Getting stylish while retaining clear meaning requires showing your work to users.

Where to get ideas for icons

Where do icons come from? Your imagination is just the beginning. Seeking inspiration from outside sources can be critical to success.

  • Look up synonyms for the word or concept you want to represent.
  • Look for styles beyond the obvious. What inspiration might you find from, say, Polynesian symbols or Mandarin letterforms?
  • Doodle shapes at random, avoiding backgrounds like circles or squares.
  • Use the brand. Does your project’s logo have an eye-catching characteristic you can use? How about the project’s typography?
  • Create negative space. How can the interactions of three or four regular geometric shapes overlap to create new and interesting forms?

Base complex forms on the same shapes

Recognizability is the most important aspect of an icon. If people don’t know it at a glance, they may waste precious time deciphering it — or look elsewhere for a shape they associate with the function at hand.

With that in mind we start by defining icons’ silhouettes. But don’t just start drawing lines.

  • Use the same geometry. Here we make shapes based entirely on small circles and rectangles. When you base icons on the same general elements, they look like they belong to the same family
  • Use the same angles, e.g. 90°, 45°, 30°. Doing so will make them more legible and more consistent.
  • Same line weight throughout. Here, basing glyphs on the same few shapes will help keep your icons looking similar without looking derivative.
  • Stick to symmetry — or the same asymmetry. Tilting your icons is a great way to make them stand out from other sets. But if you do so, tilt them all at the same angle to reinforce that they’re part of the same family. Otherwise stick to good ol’ right angles.
Icons based on shapes

This example may stick to its base shapes a little too closely for practical design work, but demonstrates how simple geometry can create complex forms that look like they belong together.

Make a consistent color palette

Like using geometry to make icons look like a set, if you plan to use color, then you should use the same color palette. But which colors?

  • Seek inspiration from your photos. If you have final art for your project, make the icons look harmonious by sampling colors from that art.
  • Borrow from Google’s MDL palette. They’ve done a great job of selecting bright colors that stand out against a variety of backgrounds, yet rarely clash among themselves.
  • Make sure the colors work well together. Speaking of clashes, test every combination of your preferred colors to keep them from looking awkward when adjacent to each other.
  • Use one color per icon. The contemporary “flat” look works best without shading, shadows, gradients, or other details that detract from their silhouettes.
  • Use values. If you must use multiple colors, try to use different shades of the same hues.
  • Consider meaning. Should colors imply function? It’s up to you, but remember that many people associate color with actions, like red for “delete,” green for “create,” and faded (usually less opaque) for “disabled.”
Color schemes for icons

How much color is too much? How much is too little? Determine your color palette based on one factor: attention. If your icons need to grab people’s eyes, then make ’em bright. Otherwise aim for consistency.

Remember that symbols have preconceived meanings

People often associate certain “universal” icons with certain functions. The trash can, for example, means “delete.” Hamburger icons, though, aren’t universally understood … yet.

Using microcopy with icons is a good idea. Rely on shapes for quick identification, and text for folks who don’t get it.

Designing a system

Icons must do a lot with a little. In spite of running small, people expect to “get it” at first glance. That’s why silhouettes, consistency, color, and meaning all work together for a great, on-brand icon set.

The post Design a System of Icons With These Techniques appeared first on Studio by UXPin.

]]>
The Difference Between Design Systems, Pattern Libraries, Style Guides & Component Libraries https://www.uxpin.com/studio/blog/design-systems-vs-pattern-libraries-vs-style-guides-whats-difference/ Tue, 13 Aug 2024 12:55:25 +0000 https://www.uxpin.com/studio/?p=15981 You’ll often see the terms design system, pattern library, component library, and style guide used interchangeably. While these concepts are connected, they refer to different parts of a whole. There’s also confusion about a design system vs. a component library. Design systems have component libraries, but a component library is also a stand-alone ecosystem, like

The post The Difference Between Design Systems, Pattern Libraries, Style Guides & Component Libraries appeared first on Studio by UXPin.

]]>
design system vs component library

You’ll often see the terms design system, pattern library, component library, and style guide used interchangeably. While these concepts are connected, they refer to different parts of a whole.

There’s also confusion about a design system vs. a component library. Design systems have component libraries, but a component library is also a stand-alone ecosystem, like MUI, React-Bootstrap, and others.

Confusing? Don’t worry; this article will help define all of these terms and put everything into perspective. We also explore the benefits of design systems and component libraries and how designers and developers use these differently.

Integrate your design system directly into the design tool. Use UXPin Merge to design with dev-ready components and eliminate the discrepancies of design to code translation. This not only speeds up the handoff process but also ensures that your final product is visually consistent, user-friendly, and true to your brand. Discover UXPin Merge.

Reach a new level of prototyping

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

What is a Design System?

A design system is a complete set of design standards (style guide) and documentation accompanying a UI tool kit, including UI patterns, UX design principles, and components. When we look at a design system in this context, it incorporates everything designers and developers need to build and scale digital products.

Some other things you’ll find within a design system include:

  • Brand guidelines
  • Accessibility guidelines
  • UI Design guidelines
  • Governance
  • Best practices
  • Design system roadmap and releases
  • Code snippets
  • CSS variables & design tokens
  • UI kit (an image-based version of design system components)
  • Downloadable assets

Pattern Library vs. Component Library–What’s The Difference?

Another big cause for confusion is “the difference between a pattern library vs. a component library.” Most designers use these terms interchangeably. To some extent, that’s not incorrect, but it’s also not completely accurate.

The difference between components and patterns is best explained using Brad Frost’s Atomic Design methodology:

  • Atoms: The foundational design elements that you cannot break down further. For example, buttons, icons, forms, etc.
  • Molecules: Created by combining atoms to create larger UI components or patterns, like pagination, breadcrumbs, etc.
  • Organisms: Complex UI patterns comprising of atoms and molecules. These patterns shape a user interface with cards, navigation bars, logos, search fields, etc.
  • Templates: Complete layouts and wireframes which include atoms, molecules, and organisms. A template starts to resemble parts of a webpage or mobile application.
  • Page: A page brings everything together on one screen.
design system atomic library components 1

Using Atomic Design, we can define patterns and components as follows:

  • Component library (Atoms): A component is a reusable block of code that can stand alone or form part of multiple UI patterns–for example, a button. A component library is a collection of UI components within a design system.
  • Pattern library (Molecules & Organisms): A pattern is a group of components that designers use to solve usability issues–for example, a navbar with a logo, links, search form, and CTA button. A pattern library is a collection of UI patterns within a design system.

What is a Style Guide?

And lastly, we have a style guide. A style guide is a piece of documentation that provides context and instructions for a design system’s patterns and components–for example, color HEX codes, typography scales, usage, dos and don’ts, etc.

Design System vs. Component Library

When people talk about component libraries like MUI, React-Bootstrap, and others, things get even more confusing. Aren’t these design systems? 

Although these component libraries have extensive documentation and guidelines, they’re not design systems. Designers and engineers can use these open-source component libraries however they choose.

They can edit the library’s components without limitations (so that they’re indistinguishable from the original), build new patterns, combine with other libraries or create custom components.

A design system is different. Designers and engineers must use the components as building blocks. They must follow the system’s guidelines, style guide, principles, and other documentation to design consistent-looking user interfaces–like following the instructions to build a Lego set.

If team members want to change a component or introduce a new pattern, they must follow the design system’s governance procedures. In some cases, the design system team will have the final say about how to build that new component.

Design Systems in Practical Sense

Design systems might seem restrictive, but there’s a good reason for these processes and protocols. Let’s take Atlassian as an example. Atlassian has a suite of business tools with a global userbase.

The company’s biggest selling point is that organizations can use and sync Atlassian’s product suite for a cohesive, consistent experience across the company, from customer support to sales, design, and development.

It’s challenging to achieve that level of consistency when you have a global team of designers, product teams, and engineers. So, Atlassian’s design system stipulates how teams must design its products for a seamless user experience.

In another example, Shopify allows third-party applications, themes, and other integrations. These add-ons come from freelancers and agencies worldwide–which is even more challenging to maintain cohesion and consistency than Atlassian!

Shopify developed its design system Polaris to ensure a consistent user experience, which both internal and third-party developers use to build Shopify products. The design system includes a UI kit for designers and React component library for engineers. 

Polaris Design System

In this case, Polaris is the complete design system of principles, written content, visual properties, and UI components. The style guide is simply the static documentation on the Polaris website which describes how to use the design system. The pattern library is part of the “Components” in the Polaris design system.

The differences are subtle but unmistakably important when it comes to improving product development. A style guide on its own becomes quickly outdated since documentation requires maintenance. A pattern library lacks the instructions and principles for coherent implementation.

The design system ties everything together.

Creating a Design System

Now that you know what these terms mean and how they work together, let’s quickly review how to build a design system. Here’s a quick overview of the steps involved from our 50-page e-book Creating a Design System: The 100-Point Process Checklist.

design system 2

1. Create the UI inventory: First list and describe all of the design patterns currently used in your interface and note the inconsistencies therein. 

2. Get support of the organization: Present your findings and explain the utility of a common design language to everyone. As explained in our Evangelizing Design Systems templates, estimate the number of design and engineering hours wasted on redundant work and how product coherence can improve NPS scores.

3. Establish design principles: Codify your practices. You’re now starting to work on the style guide for the design system.

4. Build the color palette: When building the UI inventory, we found 116 different shades of grey that needed consolidation. Create the palette and its naming convention.

5. Build the typographic scale: You can optimize the scale to serve existing styles, or you might try to build a harmonious scale using the golden ratio or major second. When building the scale, don’t forget that you’re not only setting the size of the font, but also weight, line-height and other properties.

6. Implement icons library and other styles: Decide which icons from the UI inventory will become part of the design system, then standardize the implementation.

7. Start building your first patternsThis is the task that will never end. Patterns should always either reflect the truth about the product, or reflect the aspirational state of the product in the near future.

Learn More About Design Systems

We’ve defined and organize the terms design system, style guide, and pattern library into a hierarchical structure. We’ve also quickly described how to build your own design system.

For a step-by-step walkthrough of how to build a design system, download the 50-page ebook Creating a Design System: The 100-Point Process Checklist. All the advice is based on UXPin CEO Marcin Treder’s experience building the internal design system.

Once you build the system, there’s still things to do to ensure its success. We prepared a checklist of things that you should do after releasing a design system at your organization.

On Using a Component Library

design system library components 1

Component libraries provide design and engineering teams with a comprehensive collection of UI elements and components for digital product design. 

The most significant benefit is that teams don’t have to start from scratch–they can begin prototyping and testing immediately using a thoroughly tested component library.

MUI (based on Google’s Material Design UI), one of the world’s most comprehensive and widely used component libraries, even provides customization through theming, so you can separate your UIs from competitors–even if they’re using the same component library.

While component libraries are customizable, they also provide a single source of truth between design and development–something particularly challenging, especially in the early stages of a product’s lifecycle.

Using the same components as engineers gives designers some constraints to minimize drift. At design handoff, engineers simply copy the component library’s components and make changes according to the designer’s mockups and prototypes.

Another significant benefit of a component library is that it gives solo engineers and startups professionally styled UI elements to build products and prototypes, making it easier to enter the market and compete.

How Can Designers and Engineers Use Design Systems?

Designers and engineers follow the same design principles but the guidelines and documentation differ. 

For example, with Polaris, designers and engineers must follow Foundations and Experiences to understand the principles, brand requirements, and approach to designing Shopify products. This knowledge is essential to know before you can start designing and coding.

uxpin design system components states icons 2

Polaris also includes a Resources section with a UI kit, Polaris tools (icons set), Polaris GitHub page, links to Shopify’s blogs, additional developer documentation, and forums/communities.

Polaris’ Content and Design is designer-specific documentation for designing Shopify products. The Design section includes a style guide with Polaris’ design language, colors, typography, illustrations, sounds, icons, states, spacing, and data visualization.

Developers must familiarize themselves with Polaris’ design documentation (especially if it’s a solo developer) to understand the reasons behind design decisions and build layouts accordingly, but they have separate documentation under Components.

The Components section includes interactive example components with a code snippet and a link to open it in CodeSandbox. Devs can explore each component and use the snippet as starter code to develop a Shopify product.

Using Component Libraries and Design Systems with UXPin Merge

UXPin Merge allows you to sync any design system or component library hosted in a repository to UXPin’s editor. Instead of using a UI kit, designers build mockups and prototypes using fully functioning code components.

The design system team can set constraints and provide flexibility via the component’s props with our Git integration (for React) or Args with Merge’s Storybook integration (Vue, Ember, Angular, and more). Any updates the DS team makes to the repository automatically sync to the design editor, and UXPin notifies teams of the changes–creating a single source of truth across the organization!

uxpin merge component responsive 1

Designers can make adjustments to components via UXPin’s properties panel or switch to JSX to edit code directly–perfect for you designer/developers who want the best of both worlds. At design handoff, engineers copy each component’s JSX properties to develop the final product.

UXPin also generates an automatic design system with interactive components generated from your code. You can also include a style guide and other documentation, keeping your entire design language in one place. Instead of downloading and importing assets and components, design teams grab what they need from the Design Libraries Panel to build layouts. Discover UXPin Merge.

The post The Difference Between Design Systems, Pattern Libraries, Style Guides & Component Libraries appeared first on Studio by UXPin.

]]>
Design Consistency Guide UI and UX Best Practices https://www.uxpin.com/studio/blog/guide-design-consistency-best-practices-ui-ux-designers/ Tue, 13 Aug 2024 12:43:44 +0000 https://www.uxpin.com/studio/?p=16135 A step-by-step guide filled with examples.

The post Design Consistency Guide UI and UX Best Practices appeared first on Studio by UXPin.

]]>
Design Consistency Guide

One of the key design principles, no matter if your designing a mobile app or a desktop one, is to keep your UI consistent. But what does it mean? How do you achieve consistent user interface? Which design decisions you need to make to achieve that? It’s time to explore that.

Good UX design doesn’t come from following UX design best practices. You need to test your product to tell if it offers great UX and fulfills user needs. That’s where prototyping tools come in. With a tool like UXPin, design teams can prototype their product, and then optimize their design through series of iterations and usability testing with real users.

Maintaining consistency between design and development can be challenging, especially in complex projects. UXPin Merge bridges this gap by allowing designers and developers to work with the exact same components. With Merge, your design team can create complex interfaces using the same elements your developers use in production, ensuring that what you design is exactly what gets built. Discover UXPin Merge.

Reach a new level of prototyping

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

What Exactly is Design Consistency?

Design consistency is what ties UI elements together with distinguishable and predictable actions, which is key for great product experience and an important thing to consider for UX designers. A way to simplify things is to think of it as a commitment that you make to your users (“whenever you see the light grey button in the pop-up on a homepage, you can assume that it will cancel and the pop-up will close”) so that they can easily interact with your product.

As they become more acquainted and become regular users, they begin to trust the product more and more, which is a reflection of the consistent design. To provide users with a consistent UI, here are UI and UX best practices I’ve found useful for product design.

4 Types of Design Consistency

There are four types of design consistency that comprise visual, functional, internal, and external consistency.

  1. Visual Consistency
  2. Functional Consistency
    • Interactions: Ensuring that similar actions (like clicking buttons or navigating menus) yield similar outcomes.
    • Controls and Components: Using the same design for similar controls and UI components (e.g., buttons, forms) across different sections.
  3. Internal Consistency
    • Within a Product: Ensuring all parts of a single product or system look and behave consistently, even across platforms.
  4. External Consistency
    • Across Products: Aligning design elements and interactions with other products in the same ecosystem or brand family.

What are the Benefits of Design Consistency?

Design consistency enhances usability by making elements predictable, and it also shortens the learning curve, improves aesthetics, reduces user errors, and strengthens brand recognition by using uniform visual and functional elements.

  • Improved Usability – users can predict how elements behave, leading to a smoother and more intuitive experience.
  • Faster Learning Curve – users familiar with one part of the system can easily navigate others, reducing the need for extensive learning.
  • Enhanced Aesthetics – a cohesive look enhances the visual appeal and professionalism of the design.
  • Reduced Errors – predictable interactions minimize user errors and enhance reliability.
  • Brand Recognition – consistent use of visual and functional elements strengthens brand identity.

How to Achieve Design Consistency

  1. Design Systems and Style Guides – develop and adhere to comprehensive design systems or style guides that outline standards for visual and functional elements.
  2. Component Libraries – use component libraries to maintain consistent design elements and interactions.
  3. User Testing – Conduct regular user testing to ensure consistency meets user expectations and needs.
  4. Documentation and Training – provide documentation and onboarding for new designers and developers to maintain consistency.

9 UI and UX Best Practices for Consistent Design

Start with research

Nothing is more important for a consistent experience than quality research.

This should not be underestimated or hurried. Time and budget are always a necessary consideration in product design. Without either of these, a product would never ship. Although they are important to the process, we can’t lose sight of who actually uses the product, what their customer journey looks like, whether they are desktop or mobile users.

Keep your users top of mind and don’t overlook UX research in the beginning stages of product design planning.

Define user goals

Get into the mindset of a new user. What do they want to accomplish? How will the application help them? List our goals and refer back to these throughout the UI or UX design process.

For example, let’s assume we’re building a travel app. This travel application allows users to select a vacation timeframe and find deals on flights and hotels within their budget. But it’s not just the standard travel site. It connects to your Facebook account, works its magic, and plans the top five vacations based on the content that you’ve shared. The user selects the vacation plan that they like best and all the details are taken care of.

Here are some of the user goals:

  • View vacation options within a specified timeframe
  • Compare different vacation options
  • Select a vacation based on users interests
  • Keep within vacation budget

Now that we know the breakdown of goals, we can design to meet user expectations.

Familiarize yourself with common UI patterns

Don’t reinvent the wheel when it comes to established UI patterns. Recurring patterns solve common UX and UI design problems.

Of course, UX designers shouldn’t just “copy” the entire layout of another similar web or mobile app. They need to filter and modify the patterns based on specific user goals.

Common UI Patterns  - UXPin for UX Designers

 A typical pattern in eCommerce is a product grid. With this pattern users can easily browse and see product information.

It’s safe to say that patterns have been evolving and users become aware of standard locations for elements. Most users would agree that when they want to search for something, they look for the search bar in the upper center or right since this is a common placement.

Establish design patterns for product UI and UX design consistency

One of the keys to a successful — and consistent — UI is the user performing tasks with the minimum number of actions is. If a task that takes four steps can easily be completed in two, the UI should always be modified for the shorter task flow. UI patterns can help with this… after all, this efficiency is why they became patterns in the first place.

Design hierarchy

Along with design patterns, having an established visual hierarchy of UI design elements does wonders for UI consistency. Whether users are aware of it or not, they instinctively pay attention to the order and priority of the elements they interact with.

When it comes to visuals and the human eye, some elements take precedence over others (bigger sizes, bright colors, etc.), depending on how “noticeable” they are. Think about your screen visuals in terms of what people will see first, second, third, and so on.

This allows UX designers to ensure users find primary functions faster than others, but they can also present secondary and tertiary functions with the appropriate amount of attention.

design Hierarchy - UXPin for UX Designers

UI elements

There is a multitude of design elements that go into an application’s UI, and each makes up the building blocks that form UI patterns. Keep an organized inventory and check that elements are used properly to maintain a consistent experience.

Branding elements

Stay consistent with the overall brand. Typography, logo, correct image styles, brand color schemes, etc. should be reflected in the application, just like the rest of the brand’s properties.

Is the correct logo used? Are branding colors consistent? Does the typeface match the others? Brand consistency helps new projects feel like part of the brand’s family, rather than a black sheep. Style guides usually provide all the information you’ll need.

Branding Elements - UXPin for UX Designers
Branding Elements - UXPin for UX Designers

Making sure colors and typography are on brand gives each of the company’s products a consistent look and feel.

Typography

Elements with the most visual impact like typography should always be “on brand.”

This visual element is especially important, not just for hierarchy, but for the entire UX as well. Changing the sizes, fonts, and arrangement of the text can improve scanability, legibility, readability, and even navigation.

UI components

During user research, become familiar with UI patterns and their components. Knowing how each component behaves, within the pattern and outside it, lets UX designers properly prioritize all elements on the screen without anything slipping through the cracks.

“Components” can refer to any number of elements that make up a pattern, such as:

Let’s say you’re considering adding pagination to long lists so the user doesn’t have to scroll far with long lists.

As you examine the wireframes, you notice that one list has pagination with 20 or more items, while in another part of the application, a list only has pagination with 40 or more items. Which is correct? This example illustrates how making definitive decisions about guidelines is the backbone of UI and UX design consistency.

Templates

If you’re having difficulty standardizing your site or app, try using templates.

Most applications allow them, and because the layout and elements look the same, they streamline UI features across the products. Plus, you can reuse the same UI templates over and over, even years down the line.

Using Templates - UXPin for UX Designers

Pattern library and design system

It may not be user-facing, but it is one of the keys to consistency. Today, many teams have a pattern library or design system as a point of reference to keep everyone on the same page.  Pattern libraries and design systems are the rulebooks that anyone on the team can reference at any time. For team-wide consistency, they are essential.

A pattern library may not be as robust as a design system since it’s limited to design patterns specifically. A design system has more information all around, including helpful documentation about all the UI patterns and various components. A pattern library can also be a subsection of a design system.

Make actions consistent

Everyone loves when an application is user-friendly. It saves time, avoids headaches, and helps users accomplish their goals by eliminating confusion — all requirements for creating satisfied customers.

Consistent actions remove the need for user discovery and therefore make their task flow run more smoothly. If a user knows how to use the functionality in one section, they know how to use it in all sections (as long as it’s consistent).

Users inherently transfer past knowledge to new contexts as they explore new parts of the application. Consistent actions become second nature and eventually, the user can use the application without even thinking. Furthermore, users bring these expectations into new features or aspects of the product that they haven’t explored yet, minimizing the learning curve.

Consistent actions - design consistency - UXPin for UX Designers

 “View” placement is not consistent. On most of the cards, it’s toward the top, but on the collection card, it’s at the bottom. This inconsistency might cause the user to pause for a moment to search for the “View” option, not to mention it undermines their own natural habit-forming processes.  

So what, specifically, should you consider when designing your interface? Ask yourself these questions during the entire process:

  • Do all parts of the application behave the same way?
  • How do interactions work? Are they predictable and consistent?
  • How much discovery is needed for a user to understand this interaction?
Sorting - design consistency - UXPin for UX Designers

The example on the left has inconsistent sorting; not all columns have the option to sort. Users may want to sort data in other columns. The example on the right has consistent sorting on all columns.

Review your content

It’s not just about the visual elements, but also the text throughout the application.

Consistent copy — especially consistent terminology — in each place in the application is another key. Using two different words for the same function makes them seem like different functions, causing a momentary pause in the workflow while the user sorts out the discrepancy.

Consistent copy avoids this confusion.

Content structure

Content plays a crucial role in UI elements, whether something as simple as navigation listings or as complex as product documentation. It’s not just the words themselves, but how to copy text is presented visually, such as body copy, list items, table content, etc.

In particular, pay attention to how content is handled in these areas:

  • Navigation
  • Dropdowns
  • Form fields
  • Validation messages
  • Tooltips
  • Charts
  • Image captions
  • Error messages
  • Loading screens
  • Confirmation pages
  • Product support documentation

Brand consistency in content

You know that feeling when a certain part of an application feels “off.” A lot of times the reason is an inconsistency in the content’s language, for example, if one button says “Logout” and another says “Sign out.”

Even less noticeable inconsistencies can create that “off” feeling.

For the Oxford comma fans out there, something as “minor” as comma usage is picked up subconsciously. After enough of these subconscious flags, the user’s conscious brain starts to notice.

Other writing guidelines such as title case and voice/tone also influence the user’s experience. While title typography is more empirical, voice and tone are a little harder to pin down.  The trouble escalates if most content uses a casual style that clashes with a more formal “brand language.”

Appropriate user defaults

By considering user goals upfront, you can set realistic defaults to reduce the burden on the user.

If the defaults are set to the most popular preferences, the user may not have to make any adjustments at all. Take the date picker on an airline or car rental site. Often the starting default date is sometime in the near future, the most likely choice according to past statistics.

Pay close attention to forms, too; they’re a great opportunity for defaults to reduce the amount of user effort.

Datepicker template UXPin - UXPin for UX Designers

Consistent communication

Search results, form submit messages, error windows — every interaction with your user is communication. For an app to be successful, it must speak to the user and keep them informed on what’s happening. And, as with everything else, the way you communicate should be consistent.

Changes in state and helpful information

Users appreciate feedback: a toggle that changes color to indicate “on” or “off,” for example, or a sound effect to verify a completed action.

Give visual feedback - design consistency - UXPin for UX Designers

Your user should never waste time wondering whether an action took place or not. Form field submissions are notorious for this, but it happens in other areas as well. In situations where it may not be clear, a quick success (or error) message is all you need.

Messages in forms design consistency - UXPin for UX Designers

Play it safe. Even when it’s apparent that the action was successful, a lot of users still prefer a quick confirmation.

Reduce user frustration

The most common cause of user frustration happens when it’s not clear what to do next. Some tasks are not so self-explanatory, but UI and UX designers are often too close to it to notice. Luckily, some instructional text — even just a line or two — can solve the problem.

Instruction in an online form - UXPin for UX Designers

For the same reason, error messages are useful too. While users may not like seeing them, they still need to know what happened and how it can be corrected.

visual cues - design consistency - UXPin for UX Designers

Which Design Tools Help in Maintaining Consistency?

There are several tools on the market that help designers and developers keep consistency. We will discuss three of them. If you want to learn about more tools, you can see our article with Design System Management Tools.

UXPin Merge

UXPin with Merge technology allows design teams to build interfaces with production-ready UI components that can be further used to build the end-product. It ensures that the user interface that you design stays consistent and functional with the end-product that gets developed.

This means that design and development teams can be on the same page throughout the full product development process, from early-stage prototyping to creating fully interactive prototypes, eliminating discrepancies and reducing rework by maintaining a single source of truth.

Merge also allows designers to create fully functional prototypes using actual, interactive UI components, leading to more accurate user testing and a seamless handoff to development. Overall, it speeds up the design process by enabling real-time updates and feedback using the latest components, making it easier to maintain consistency and quickly adapt to changes.

Read about dotSource case of using UXPin Merge in their process.

Figma

Figma is a collaborative design tool that allows teams to create, share, and maintain consistent UI design and style guides in real-time. Designers use it to design interfaces of websites, apps, and other digital products that are consistent and easily shareable with other designers.

Read how Porsche uses Figma and UXPin together to create consistent interfaces at scale: Code or Design – Which is a Better Source of Truth?

Storybook

Storybook is a tool for developers that use it to create and maintain UI components, enabling designers and developers to ensure consistency and proper integration of design elements. UXPin integrates with Storybook, so designers and developers can share coded components as a single source of truth.

The integration works by allowing designers and developers to use real UI components from Storybook directly within UXPin. Here’s how:

  1. Component Sync: UXPin imports Storybook’s components, enabling designers to drag and drop them into UXPin prototypes.
  2. Live Preview: Design changes in UXPin reflect in real-time, using the actual code components from Storybook.
  3. Shared Libraries: Both tools use the same source of truth, ensuring that design and development stay aligned and consistent with the latest UI components.

Read more about the integration: Storybook and UXPin integration.

Level up Design Consistency with UXPin

Consistency in UI is a huge undertaking, and it’s easy for some parts to slip through the cracks. The end goal is, of course, a perfectly consistent and in-sync interface, but that’s not always possible right out of the gate.

For startups, you can try an MVP (minimum viable product). Even if the product starts out with some inconsistencies, your team can iron them out one by one over time once you start receiving feedback.

If you’re making updates to an existing product, it can be more difficult to remain consistent. This is where the right prototyping software comes in handy. UXPin allows you to build interactive prototypes fast and keep them in line with your design system. Discover UXPin Merge.

The post Design Consistency Guide UI and UX Best Practices appeared first on Studio by UXPin.

]]>
Top 3 Design System Structures https://www.uxpin.com/studio/blog/design-system-structure/ Mon, 29 Jul 2024 09:47:03 +0000 https://www.uxpin.com/studio/?p=43894 Many teams envision creating a design system as a difficult, time-consuming project. It forces team members to audit their user interface, create a repository of design system elements and design guidelines and combine it in a way it’s usable for the entire organization It’s not the only way you structure a design system, though. There

The post Top 3 Design System Structures appeared first on Studio by UXPin.

]]>
Design System Structure

Many teams envision creating a design system as a difficult, time-consuming project. It forces team members to audit their user interface, create a repository of design system elements and design guidelines and combine it in a way it’s usable for the entire organization

It’s not the only way you structure a design system, though. There are some simpler methods of creating this toolkit that is meant to speed up the design process. Let’s explore the best approaches for arranging a design system structure that achieves these goals. 

Maximize the use of your design system in prototyping. Bring your design system’s building blocks to UXPin and design interactive prototypes that your devs can quickly translate to code. Discover UXPin Merge.

Reach a new level of prototyping

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

What is a Design System Structure?

A design system structure is a comprehensive framework that helps manage design at scale by providing a set of shared principles, patterns, and tools. It enables a consistent, coherent, and efficient design process across multiple teams and projects. The structure typically includes various components, each serving a distinct role in the overall system.

By having a well-structured design system, organizations can ensure a cohesive user experience across all products and platforms, streamline the design and development process, and foster collaboration among team members.

Design systems can be broadly categorized into three types based on their scope, usage, and complexity. Here they are:

  • Simple visual design repository
  • Atomic design system structure
  • Code-based design system structure.

Let’s explore them closely.

How Can You Structure a Design System? 

When you combine design elements with the relevant documentation and guidelines, the system should form a coherent repository of things that are important for building user interfaces for a brand. But to achieve optimal design efficiency and system effectiveness, first, you must arrange it into a discernible structure. One that best suits your team’s needs and your organizational design objectives. 

Simple visual design repository

This is the most basic of design system structures. As the NN Group explains, these visual design repositories come in various configurations, though the core focus here is simplicity.

At its fundamental level, a simple repository’s primary design system components consist of a style guide, a component library, and a pattern library. Together, these form the essentials for any functioning design system repository.  

color sample library

This structure only contains the essentials that constitute the system. It intends to provide the team members with what they need from the outset and allows them to create and add other assets and documentation as they go along. Shopify’s Polaris and Atlassian Design System use this type of design system structure.

Advantages: 

  • The arrangement is simple to create and implement.
  • It encourages the design system team to tell the system’s basic structure from commencement.
  • And decisions are made on the move, fast-tracking development.

Drawbacks: 

  • This arrangement lacks the structure provided by a strict hierarchy.
  • Teams tend to list the design system elements alphabetically or by their degree of importance, ignoring critical distinctions.
  • And it can be challenging to update and maintain this arrangement. 

Atomic design 

The atomic design structure was created by design systems advocate and author Brad Frost. It focuses on using order and a structured hierarchy to create an effective UI design system. 

The atomic design methodology approaches design system structure by separating the process into five stages. The first three are modeled around the chemistry world, with the subsequent two relating to aspects of the world we can see. We explored atomic design system and its components in a separate article, but let’s recap the most important information here.

design system atomic library components

Each stage uses the previous one as its foundation. Every level consists of aggregated items from the preceding one. Like atoms constitute a molecule and molecules form an organism, this structure considers the smallest elemental components before moving on to the larger ones.

  • Atoms – These represent the most basic components of the design system.
  • Molecules – When those ‘atomic-level’ individual elements combine into groups, you’ll start to see bigger elements, coming together like lego pieces.
  • Organisms – By developing combinations of elemental design components into molecular groupings, organisms emerge. These form more complex design system UI components.
  • Templates – The next stage departs the realm of chemistry and heads into a more ‘macro’ world. Templates are where organisms can be curated and compiled into a cohesive, recognizable design.
  • Pages – Once you take a template and customize it, you have a page. By replacing the placeholder content in templates with tailored design content, you obtain the final, tangible product of the design system. Pages may not need to be designed for each and every case, but ensuring that there exist a few variations is a good idea.

Advantages: 

  • Atomic design structure makes use of reusable components. Teams can divide various elements into basic atoms. These can then be applied and reapplied in different combinations and configurations.
  • Teams can easily spot those parts of a website or app that need various elemental components and create molecules and organisms accordingly. 
  • This arrangement enables designers to use a design language that clearly defines a separation between content and structure. 
  • This helps them be more creative and come up with different variants of the same components.

Disadvantages:

  • An atomic design structure can result in long, complex lists of components. 
  • In some instances, having only a few components means maintaining multiple categories for them is pointless. This can complicate the overall methodology.  

Code-based design system structure

This approach is among the most potent and effective for designing system structures. It is ideally suited for design teams working on digital product and new functionalities. Think about Material Design or Fluent UI design system.

design system components

This structure enables you to develop prototypes that look and behave just like the developer-built final product. This arrangement allows for more collaboration between designers and developers. The whole product team can count on a single source of truth informing their efforts. 

The code-based design system arrangement is considered a relatively new approach in digital product system design. With it, designers can now employ functioning, developer-approved coded UI elements to scale digital product design.

Advantages:

  • The structure improves designer-developer cooperation. 
  • It helps teams track changes in UI elements more effectively. 
  • It improves overall efficiency from prototyping through to design handoff. 

Disadvantages:

  • Designers need tools like UXPin with Merge tech to benefit from code-based design system.
  • Components can take lots of time to create.
  • Designers may require developer assistance to develop the system.

How Do You Choose the Right Design System Structure? 

Deciding on the right design system structure is essential to giving your team the framework they need to design more efficiently. A design system structure aligned with your product design objectives will help designers collaborate better. This assists them in producing the digital products they’re capable of. 

To ensure you’re picking a design system structure that aligns with your product team’s needs, ask yourself:

  • For whom is your design system being optimized? Is it for everybody across the organization, user experience designers, or, say, front-end developers only? 
  • How many components and content types – from design patterns, coded UI components, and design guidelines to rollout plans and best practice policies – are you looking to integrate into the system? 
  • At what stage of maturity is your design system currently at?

Effective design systems are dynamic entities capable of adapting to the challenges that come with growth and change. A design system’s inherent value lies in its ability to reduce the duplication of effort and facilitated collaboration

Why UXPin Prefers a Code-Based Design System structure?

Using coded components in a design system enables sharing among design and developer teams. This allows them to rely on a single source of truth and to collaborate more effectively.

code design developer

Teams across the organization can also manage all their design and prototyping projects simultaneously. This maintains a higher degree of consistency. In turn, developers can get stuck into translating design patterns into developer’s language.

UXPin Merge uses a code-based design system structure to design prototypes with a single source of truth. With it, designers can create prototypes for digital products that are consistent with developer’s workflow. Discover UXPin’s code-to-design solution.

The post Top 3 Design System Structures appeared first on Studio by UXPin.

]]>