0.1.5 β€’ Published 3 years ago

@withchristopher/learnstorybook-design-system v0.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

This template ships with the main React configuration files you'll need to get up and running fast.

πŸš… Quick start

  1. Create the application.

    Use degit to get this template.

    # Clone the template
    npx degit chromaui/learnstorybook-design-system-template learnstorybook-design-system
  2. Install the dependencies.

    Navigate into your new site’s directory and install the necessary dependencies.

    # Navigate to the directory
    cd learnstorybook-design-system/
    
    # Install the dependencies
    yarn
  3. Open the source code and start editing!

    Open the learnstorybook-design-system directory in your code editor of choice and building your first component!

πŸ”Ž What's inside?

A quick look at the top-level files and directories included with this template.

.
β”œβ”€β”€ node_modules
β”œβ”€β”€ public
β”œβ”€β”€ src
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .env
β”œβ”€β”€ LICENSE
β”œβ”€β”€ package.json
β”œβ”€β”€ yarn.lock
└── README.md
  1. node_modules: This directory contains all of the modules of code that your project depends on (npm packages).

  2. public: This directory will contain the development and production build of the site.

  3. src: This directory will contain all of the code related to what you will see on your application.

  4. .env: This file will contain the necessary environment variables for your application.

  5. .gitignore: This file tells git which files it should not track or maintain during the development process of your project.

  6. LICENSE: The template is licensed under the MIT licence.

  7. package.json: Standard manifest file for Node.js projects, which typically includes project specific metadata (such as the project's name, the author among other information). It's based on this file that npm will know which packages are necessary to the project.

  8. yarn.lock: This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. (Do not change it manually).

  9. README.md: A text file containing useful reference information about the project.

Contribute

If you encounter an issue with the template, we encourage you to open an issue in this template's repository.

Learning Storybook

  1. Read our introductory tutorial over at Storybook tutorials.
  2. Learn how to transform your component libraries into design systems in our Design Systems for Developers tutorial.
  3. See our official documentation at Storybook.

Tutorial 2 - Building a Design system for production

What is a Design System?

Design systems contain reusable UI components that help teams build complex, durable, and accessible user interfaces across projects. Since both designers and developers contribute to the UI components, the design system serves as a bridge between disciplines. It is also the β€œsource of truth” for an organization’s common components.

There are three technical parts to a design system that we’ll talk about in this guide:

  • πŸ— Common reusable UI components
  • 🎨 Design tokens: Styling-specific variables such as brand colors and spacing
  • πŸ“• Documentation site: Usage instructions, narrative, do’s and don'ts

Components for a design system:

Build components

  • πŸ“š Storybook for UI component development and auto-generated docs βš›οΈ React for declarative component-centric UI (via create-react-app)
  • πŸ’… Styled-components for component-scoped styling
  • ✨ Prettier for automatic code formatting

Maintain the system

  • πŸš₯ GitHub Actions for continuous integration
  • πŸ“ ESLint for JavaScript linting
  • βœ… Chromatic to catch visual bugs in components (by Storybook maintainers)
  • πŸƒ Jest for unit testing components
  • πŸ“¦ npm for distributing the library
  • πŸ›  Auto for release management workflow

Storybook addons

  • β™Ώ Accessibility to check for accessibility issues during development
  • πŸ’₯ Actions to QA click and tap interactions
  • πŸŽ› Controls to interactively adjust props to experiment with components
  • πŸ“• Docs for automatic documentation generation from stories

Reference to Storybook's Design system: https://github.com/storybookjs/design-system

Steps

Create an inventory

Manually cataloging screens in various web sites or apps to discern common UI patterns. Useful heuristics:

  • If a UI pattern is used more than three times, turn it into a reusable UI component. & If a UI component is used in 3 or more projects/teams, put it in your design system.

In design system nomenclature global style variables are called β€œdesign tokens”.

Code formatting and linting for hygiene

Design systems are collaborative, so tools that fix syntax and standardize formatting serve to improve contribution quality

Storybook design system tutorial

The Storybook design system tutorial is a subset of the full Storybook design system, created as a learning resource for those interested in learning how to write and publish a design system using best in practice techniques.

Learn more in Storybook tutorials.