Add content for design system basics

pull/1757/head^2
Kamran Ahmed 2 years ago
parent 1d083ff58d
commit 84321c3afc
  1. 6
      components/helmet.tsx
  2. 3
      content/roadmaps/111-design-system/content-paths.json
  3. 9
      content/roadmaps/111-design-system/content/100-design-system-basics/100-what-is-design-system.md
  4. 10
      content/roadmaps/111-design-system/content/100-design-system-basics/101-need-of-design-system.md
  5. 10
      content/roadmaps/111-design-system/content/100-design-system-basics/102-design-system-vs-component-library.md
  6. 9
      content/roadmaps/111-design-system/content/100-design-system-basics/103-atomic-design.md
  7. 1
      content/roadmaps/111-design-system/content/100-design-system-basics/104-good-design-system.md
  8. 16
      content/roadmaps/111-design-system/content/100-design-system-basics/105-stakeholders-involved.md
  9. 12
      content/roadmaps/111-design-system/content/100-design-system-basics/106-design-system-examples.md
  10. 12
      content/roadmaps/111-design-system/content/100-design-system-basics/readme.md
  11. 10
      content/roadmaps/111-design-system/content/102-making-a-design-system/readme.md
  12. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/100-component-catalog.md
  13. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/101-documentation.md
  14. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/102-code-style.md
  15. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/103-unit-testing.md
  16. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/104-accessibility-testing.md
  17. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/105-semantic-versioning.md
  18. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/106-release-strategy.md
  19. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/107-commit-guidelines.md
  20. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/108-pr-templates.md
  21. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/109-contribution-guidelines.md
  22. 4
      content/roadmaps/111-design-system/content/107-tooling/100-development/readme.md
  23. 4
      content/roadmaps/111-design-system/content/107-tooling/101-design/100-design-editor.md
  24. 4
      content/roadmaps/111-design-system/content/107-tooling/101-design/101-plugins.md
  25. 4
      content/roadmaps/111-design-system/content/107-tooling/101-design/102-version-control.md
  26. 4
      content/roadmaps/111-design-system/content/107-tooling/101-design/103-contribution-guidelines.md
  27. 5
      content/roadmaps/111-design-system/content/107-tooling/101-design/readme.md
  28. 5
      content/roadmaps/111-design-system/content/107-tooling/readme.md
  29. 4
      content/roadmaps/111-design-system/content/108-project-management/100-task-management/100-ticketing.md
  30. 4
      content/roadmaps/111-design-system/content/108-project-management/100-task-management/101-milestones.md
  31. 4
      content/roadmaps/111-design-system/content/108-project-management/100-task-management/102-roadmap.md
  32. 4
      content/roadmaps/111-design-system/content/108-project-management/100-task-management/readme.md
  33. 4
      content/roadmaps/111-design-system/content/108-project-management/101-communications/100-community-meetings.md
  34. 4
      content/roadmaps/111-design-system/content/108-project-management/101-communications/101-communication-channel.md
  35. 4
      content/roadmaps/111-design-system/content/108-project-management/101-communications/102-open-hours.md
  36. 4
      content/roadmaps/111-design-system/content/108-project-management/101-communications/103-faqs.md
  37. 4
      content/roadmaps/111-design-system/content/108-project-management/101-communications/readme.md
  38. 4
      content/roadmaps/111-design-system/content/108-project-management/102-analytics/100-component-analytics.md
  39. 4
      content/roadmaps/111-design-system/content/108-project-management/102-analytics/101-error-logging.md
  40. 4
      content/roadmaps/111-design-system/content/108-project-management/102-analytics/102-tooling-analytics.md
  41. 4
      content/roadmaps/111-design-system/content/108-project-management/102-analytics/103-service-and-health-metrics.md
  42. 4
      content/roadmaps/111-design-system/content/108-project-management/102-analytics/readme.md
  43. 4
      content/roadmaps/111-design-system/content/108-project-management/readme.md
  44. 2
      pages/pdfs.tsx
  45. 1
      pages/upcoming.tsx
  46. 409
      public/project/design-system.json

@ -1,13 +1,13 @@
import NextHead from 'next/head';
import siteConfig from '../content/site.json';
import { RoadmapType } from '../lib/roadmap';
import { roadmapTheme } from '../styles/theme';
type HelmetProps = {
title?: string;
keywords?: string[];
canonical?: string;
description?: string;
noIndex?: boolean;
roadmap?: RoadmapType;
};
@ -41,7 +41,7 @@ function getRichSnippetJson(roadmap: RoadmapType) {
}
const Helmet = (props: HelmetProps) => {
const { roadmap, title, canonical, description, keywords } = props;
const { roadmap, title, canonical, description, keywords, noIndex = false } = props;
return (
<NextHead>
@ -59,6 +59,8 @@ const Helmet = (props: HelmetProps) => {
content={keywords ? keywords.join(',') : siteConfig.keywords.join(',')}
/>
{noIndex && <meta name="robots" content="noindex" /> }
<meta
name="viewport"
content="width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0"

@ -5,7 +5,6 @@
"design-system-basics:need-of-design-system": "/roadmaps/111-design-system/content/100-design-system-basics/101-need-of-design-system.md",
"design-system-basics:design-system-vs-component-library": "/roadmaps/111-design-system/content/100-design-system-basics/102-design-system-vs-component-library.md",
"design-system-basics:atomic-design": "/roadmaps/111-design-system/content/100-design-system-basics/103-atomic-design.md",
"design-system-basics:good-design-system": "/roadmaps/111-design-system/content/100-design-system-basics/104-good-design-system.md",
"design-system-basics:stakeholders-involved": "/roadmaps/111-design-system/content/100-design-system-basics/105-stakeholders-involved.md",
"design-system-basics:design-system-examples": "/roadmaps/111-design-system/content/100-design-system-basics/106-design-system-examples.md",
"design-system-terminology": "/roadmaps/111-design-system/content/101-design-system-terminology/readme.md",
@ -125,4 +124,4 @@
"project-management:analytics:error-logging": "/roadmaps/111-design-system/content/108-project-management/102-analytics/101-error-logging.md",
"project-management:analytics:tooling-analytics": "/roadmaps/111-design-system/content/108-project-management/102-analytics/102-tooling-analytics.md",
"project-management:analytics:service-and-health-metrics": "/roadmaps/111-design-system/content/108-project-management/102-analytics/103-service-and-health-metrics.md"
}
}

@ -1 +1,8 @@
# What is design system
# What is Design System
A Design System is the single source of truth which groups all the elements that will allow the teams to design, realize and develop a product.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://uxdesign.cc/everything-you-need-to-know-about-design-systems-54b109851969'>Everything you need to know about Design Systems</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.nngroup.com/articles/design-systems-101/'>Design Systems 101</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.invisionapp.com/inside-design/guide-to-design-systems/'>A comprehensive guide to design systems</BadgeLink>

@ -1 +1,9 @@
# Need of design system
# Need of design system
Having a solid design system speeds up your work by making the product team more efficient, and it creates consistency and harmony within the product and brand ecosystem. A strong design system takes the burden off individual designers to think through commonly recurring design problems. With a full library of pre-approved elements, designers can focus on bigger problems like creating seamless, intuitive flows that delight users. That kind of efficiency pays huge dividends over time.
<BadgeLink colorScheme='blue' badgeText='Watch' href='https://www.youtube.com/watch?v=Hx02SaL_IH0'>Design Systems, when and how much?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.drawbackwards.com/blog/why-you-need-a-strong-design-system-and-how-to-build-one'>Why You Need a Strong Design System (and How to Build One)</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.smashingmagazine.com/2016/05/design-systems-responsive-design-sell-output-not-workflow/'>On Design Systems: Sell The Output, Not The Workflow</BadgeLink>

@ -1 +1,9 @@
# Design system vs component library
# Design System vs Component Library
A component library is just a collection of visuals i.e. colours, button stylings, fonts, etc. A Design System takes it to the next level by including standards and documentation around the look and usage of each component. The Design System acts as the single-source of truth.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.architech.ca/a-design-system-so-much-more-than-a-component-library'>A Design System: So Much More Than A Component Library</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://prototype.net/blog/design-system-component-library-style-guide'>Design System vs UI Component Library vs Brand Style Guide</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.uxpin.com/studio/blog/design-systems-vs-pattern-libraries-vs-style-guides-whats-difference/'>Design Systems vs Pattern Libraries vs Style Guides vs Component Libraries</BadgeLink>

@ -1 +1,8 @@
# Atomic design
# Atomic Design
Atomic design (by Brad Frost) is a mental model to help you think of user interfaces as a cohesive whole and a collection of parts at the same time. Through the comparison to atoms, molecules, and organisms, we can think of the design of our UI as a composition of self-containing modules put together.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://xd.adobe.com/ideas/process/ui-design/atomic-design-principles-methodology-101/'>Atomic Design Principles & Methodology 101</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://atomicdesign.bradfrost.com/chapter-2/'>Atomic Design Methodology</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://blog.bitsrc.io/atomic-design-and-ui-components-theory-to-practice-f200db337c24'>Atomic Design and UI Components: Theory to Practice</BadgeLink>

@ -1 +1,15 @@
# Stakeholders involved
# Stakeholders
Building an effective design system is not an individual responsibility, you need more than just designers. Here’s a quick list of the disciplines that can be represented in your team to create an effective design system:
- **Designers:** to define the visual elements of the system
- **Frontend Developers:** To create modular efficient code
- **Accessibility Experts:** Accessibility experts to ensure your system conforms to standards like WCAG
- **Performance Experts:** who can ensure your system loads quickly on all devices
- **Content Strategists:** who can help the team nail the voice and tone of the system
- **Researchers:** who can help you understand customer needs
- **Product Managers:** to ensure the system is aligning to customer needs
- **Leaders:** (VPs and directors) to champion and align the vision throughout the company including up to executive leadership
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.designbetter.co/design-systems-handbook/designing-design-system'>Designing the Design System</BadgeLink>

@ -1 +1,11 @@
# Design system examples
# Design System Examples
<BadgeLink colorScheme='blue' badgeText='Visit' href='https://material.io/'>Material Design (Google)</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Visit' href='https://carbondesignsystem.com/'>Carbon Design System (IBM)</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Visit' href='https://atlassian.design/'>Atlassian Design System</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Visit' href='https://polaris.shopify.com/'>Polaris Design System (Shopify)</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Visit' href='https://design-system.service.gov.uk/'>Gov.uk Design System</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Visit' href='https://github.com/alexpate/awesome-design-systems'>Collection of Open Source Design Systems</BadgeLink>

@ -1 +1,11 @@
# Design system basics
# Design System Basics
A design system is a set of standards to manage design at scale by reducing redundancy while creating a shared language and visual consistency across different pages and channels.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.nngroup.com/articles/design-systems-101/'>Design Systems 101</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Watch' href='https://www.youtube.com/watch?v=wc5krC28ynQ'>What is a Design System? Design Systems 101 for Designers</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.invisionapp.com/inside-design/guide-to-design-systems/'>A comprehensive guide to design systems</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://uxdesign.cc/everything-you-need-to-know-about-design-systems-54b109851969'>Everything you need to know about Design Systems</BadgeLink>

@ -1 +1,9 @@
# Making a design system
# Making a Design System
First step in building a design system is identifying [if you even need a design system](https://sparkbox.com/foundry/when_not_to_use_a_design_system).
<BadgeLink colorScheme='blue' badgeText='Watch' href='https://www.youtube.com/watch?v=FZSi1bK-BRM'>Introducing Design Systems Into Chaos - Diana Mounter, GitHub</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Watch' href='https://www.youtube.com/watch?v=Hx02SaL_IH0'>Design Systems, when and how much?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.uxpin.com/create-design-system-guide/'>Design Systems: Step-by-Step Guide to Creating Your Own</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.method.com/insights/does-my-organization-need-a-design-system/'>Does My Organization Need a Design System?</BadgeLink>

@ -1 +1,3 @@
# Component catalog
# Component Catalog
Isolate your UI components’ environment outside of your product codebase to make sure they’re not dependent on any global dependencies and can be easily reused.

@ -1 +1,3 @@
# Documentation
# Documentation
Having your code documented is key to driving adoption and reducing the load on the contributors.

@ -1 +1,3 @@
# Code style
# Code Style
Having a defined code style helps align the way code’s written in the system and increases development velocity. It should be automated with the tools provided for each platform.

@ -1 +1,3 @@
# Unit testing
# Unit Testing
Every part of the design system should be covered with unit tests. Once your system’s adopted, any change in the isolated environment may affect how the product works.

@ -1 +1,3 @@
# Accessibility testing
# Accessibility Testing
Design systems should cover accessibility as much as possible. Making this automatic reduces the risk of inaccessible components or user flows in the product.

@ -1 +1,3 @@
# Semantic versioning
# Semantic Versioning
Version your code with semantic versioning that dictates how version numbers are assigned and incremented.

@ -1 +1,3 @@
# Release strategy
# Release Strategy
Design system releases should be automated and ideally use scripts ran locally or in remote CI pipelines to prevent broken releases.

@ -1 +1,3 @@
# Commit guidelines
# Commit Guidelines
Automate the generation of your changelog by adopting a commit message guidelines that categorise and define the changes being made.

@ -1 +1,3 @@
# Pr templates
# Pull Request Templates
Create pull request templates that outline the change being proposed to facilitate productive discussions.

@ -1 +1,3 @@
# Contribution guidelines
# Contribution Guidelines
Define the process of contributing to the code of the design system. Document everything in a discoverable place to make it easier for everyone to contribute.

@ -1 +1,3 @@
# Development
# Development
One of the main challenges in developing a design system isn’t building the components. It’s making your code stable, easy to read and contribute to.

@ -1 +1,3 @@
# Design editor
# Design Editor
There are many design editors available in the market today with the most popular names being Sketch, Figma and Adobe XD. If you're unsure which route to go down it's often best to speak with your team.

@ -1 +1,3 @@
# Plugins
# Plugins
Most popular Design Editors (Sketch and Figma, especially) come with third-party plugin support. Whilst it's best to use the editors in-built tools for laying out your components, plugins can bring in a range of useful data to populate them.

@ -1 +1,3 @@
# Version control
# Version Control
Having your design versioned with semantic versioning will allow you to easily align design with development, roll back faulty changes and release changes in code and design at the same time.

@ -1 +1,3 @@
# Contribution guidelines
# Contribution Guidelines
Define the process of contributing to the UI and UX of the design system and document it in a discoverable place to make it easier for everyone to contribute.

@ -1 +1,4 @@
# Design
# Design
The UI and UX in a design system need to be tied to development as much as possible. The tools in this checklist should help designers and developers work better together.

@ -1 +1,4 @@
# Tooling
# Tooling
To make things efficient for anyone using your design system, make tooling essential. Find the workflows where you can integrate things with the tools people use. This helps organically spread your design system and make it crucial to people’s daily work.

@ -1 +1,3 @@
# Ticketing
# Ticketing
Make it easier to track your day-to-day progress by using ticketing software like Jira, Trello or GitHub. This’ll make it easier for others to submit feature proposals or bug reports.

@ -1 +1,3 @@
# Milestones
# Milestones
Define milestones that act as bigger epics in your project management with the help of your roadmap. These will help you understand your progress.

@ -1 +1,3 @@
# Roadmap
# Roadmap
Setting your short and long term vision and mapping things out helps you decide the steps to take, understand your place in the bigger picture and prioritise day-to-day tasks.

@ -1 +1,3 @@
# Task management
# Task Management
Solid task management and workflows are a crucial step in executing any project. Adopting a methodology like Agile or Kanban helps you cover a lot of ground.

@ -1 +1,3 @@
# Community meetings
# Community Meetings
Arrange community meetings with everyone who uses the design system. Share your knowledge and make proposals to improve the sense of community.

@ -1 +1,3 @@
# Communication channel
# Communication Channel
Most product development work happens digitally, so create a digital channel where people can reach out and ask questions.

@ -1 +1,3 @@
# Open hours
# Open Hours
Create open hours in which you can engage your audience in a more private setting where you can discuss things in more detail. You can also use these as peer coding or peer design opportunities.

@ -1 +1,3 @@
# Faqs
# FAQs
To save everyone time, define which questions are asked frequently by your audience and document them in a discoverable place.

@ -1 +1,3 @@
# Communications
# Communications
Your users play a great role in shaping your design system. Creating communication channels where they can raise their voices helps you keep track of how they’re using your system. It’ll also improve their sense of ownership and the adoption of your system.

@ -1 +1,3 @@
# Component analytics
# Component Analytics
Track the usage of your components. For development you can use built-in tools like Figma’s Design System Analytics. For the end product you can have a separate way of tracking per platform depending on the technology.

@ -1 +1,3 @@
# Error logging
# Error Logging
Implement a way to track and pinpoint component-related outages in your product.

@ -1 +1,3 @@
# Tooling analytics
# Tooling Analytics
Track what tools are being used for your design system. Find out which ones are used the most and which features are the most popular.

@ -1 +1,3 @@
# Service and health metrics
# Service and Health Metrics
Define service and health metrics for your design system to set a benchmark on how well you’re doing. Common examples can be the number of tickets closed, improvements made or bugs fixed.

@ -1 +1,3 @@
# Analytics
# Analytics
Data isn’t the only driving factor when it comes to the development of design systems. Keeping a sharp eye on how your system’s used in the development process and the end product can inform your go-forward strategy.

@ -1 +1,3 @@
# Project management
# Project Management
Design systems are no different than any other project your team might take on. In order to successfully build and maintain one, you need a clear strategy that’s well executed daily, and you‘ll need to create opportunities for your colleagues to give feedback to help share your design system together.

@ -12,7 +12,7 @@ export default function RoadmapPDF() {
return (
<Box bg='gray.50' minH='100vh'>
<GlobalHeader />
<Helmet title={'Download Roadmaps - roadmap.sh'} />
<Helmet title={'Download Roadmaps - roadmap.sh'} noIndex={true} />
<Box mb='60px'>
<Container maxW={'container.md'} position='relative'>
<MdRenderer>

@ -33,6 +33,7 @@ export default function Upcoming() {
<Box bg='white' minH='100vh'>
<GlobalHeader />
<Helmet
noIndex={true}
title={title}
description={description}
/>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save