Skip to content
This repository has been archived by the owner on Aug 13, 2024. It is now read-only.

Appendix

Kelene edited this page May 25, 2022 · 7 revisions

List of design system resources

Developer research findings

Qiqi Zheng, August 2021

React project components

Research Questions

  1. What are the in-house components in this codebase?
  2. What in-house components are based on UI-component libraries like Material-UI
  3. What Material UI components are used in the project
  4. What is the styling library?
  5. Is there type checking library?

Findings

Current Hack for LA React projects use UI component libraries, such as Material-UI and Semantic-UI, to build their in-house components. With our research, we have no need to create a full-fledged UI component library. We plan to document our Design System with tools like Storybook with a handful of simple components.

Our next steps in making the design system MVP is to finalize tech stack and explore various documentation tools with one in-house button component.

  • What would be the starter components for the design system repo?
  • What components do the projects have?
  • Should we reinvent the wheel?
  • What is our next step in making a design system MVP?
HfLA Team Library Components Customized (in-house) components Styling Type checking
311 Data Material-UI * Typography * Container * Chip * Card * Icons * AppBar * Button * Toolbar * Menu * MenuItem * Searchbar * Footer * Header * MultiSelect Material-UI Proptypes
Civic Tech Index Material-UI * Typography * Box * Grid * Icons * Container - - -
Engage Semantic-UI-React - - - PropTypes
Expunge Assist Material-UI * Button * Checkbox * Container * Input * Popup * Progress Bar * Radio Buttons * Textfield * Header * Navbar Material-UI TypeScript
Food Oasis (uses Storybook for documentation) Material-UI - - - PropTypes
Home Unite Us Material-UI * Textfield * Divider * Button * Modal * Card * Checkbox * Radio Buttons * Styled Components * Button * Container * Link * Table - - TypeScript
LA TDM Calculator - - * About * Errorpage * Footer * Header * Nav * Pagination * sidebar react-jss(cssinjs) for all their styling & Uses clsx constructing className string conditionally Proptypes
Lucky Parking - - * sidebar * header * search bar * map sass PropTypes
VRMS - - * Header * Footer * Form: new user forms * Error * Dashboard * Check in button * Create new profile button sass -

Documentation tools

Research Questions

to be answered as the developers figure out configuration & initial code:

  • How long did exploring take, from research to base template?
  • Is the tool’s documentation easy to understand? Did you have to use other dev’s GitHub repo to understand the docs?
  • What is the out of the box setting?
  • What add-ons are available?
  • What are the pros? What do you like about this tool?
  • What are the cons? What are your struggles with this tool?

Findings

The documentation tools we researched use different methods to render the documentation:

  • Fractal, Pattern Lab, Cupper use templating engine.
  • Storybook, Styleguidist, Docusaurus and Cupper use md and/or mdx.
  • Storybook and Styleguidist both support TypeScript and PropType.
  • Bit have own ecosystem and use their cli.

All of the documentation tools have out of the box demo setting which provides the project base templates. All documentation are straightforward and easy to understand. All documentation tools are good for documenting source code and visual representation of the components. Depending on the project's needs, they may choose any of the documentation tools.

Styleguidist is the fastest to setup and integrate with the existing project.

Dev team is done with all research. User research findings and conclusion determine whether dev team is necessary for design systems project.

Storybook

Exploring from research to base template took 40+ minutes. Documentation and GitHub ReadMe are easy to understand. The out of the box setting is a boilerplate with button, header, introduction stories and page. Addons are available.

Pros

  • Easy to set up
  • lots of features
  • good documentation
  • clean interface
  • lots of resources because people use this documentation tool

Cons: There are lots of resources, accidentally created a deprecated version of storybook.

Styleguildist

Exploring from research to base template took 30 minutes. Documentation is relatively easy to understand. All the steps are available to create this documentation tool for the existing components. Out of the box setting points directly to components. No addons available.

Pros

  • Works with React out of the box.
  • Styleguidist automatically find the component file.
  • Easy to document components, putting components directly into md files.
  • Work with PropTypes and TypeScript.
  • Minimalistic design.

Cons: Not interactive.

Fractal

Screen Shot 2021-08-05 at 7 51 07 PM

5-10 mins to set up the base template. Need extra time to learn Handlebars. Easy to understand documentation. The basic folder structure and config was created by their cli tool. Not necessarily a con, but it uses a template engine. It comes with handlebars out of the box but they have adapters for other template engines.

Pattern Lab

5-10 minute to set up the base template. However need extra time to learn Handlebars or Twig. Documentation is easy to understand. Full pattern template is available out of the box. There are customizable templates. No addon is needed. Need time to learn templating language to use this tool.

Docusaurus

Exploring from research to base template took 40+ minutes. Documentation was very easy to understand and easy to get started with. Docs are very clear and there are example GitHub repos of bigger projects that use Docusaurus. Using example GitHub repos are not needed to get started. I'd say it would be if you needed to do more advanced styling. Out of the box we use normal react, markdown, and theming(light and dark theme). There are additional plugins that we can use, but I haven't checked those out yet. React Developers can easily get on board and use this tool. In terms of writing content for docs, anyone can come in and write using markdown as well.

Cupper

5-10mins to set up the base template. However need extra time to learn Hugo.io. Easy to understand documentation. Out of the box, it created a copy of it's own documentation page. Not necessarily a con but it uses a template engine(hugo).

Pros

  • Available offline as a progressive web app.
  • Output is a responsive, screen reader and keyboard accessible static site.
  • Automated Github Pages deployment.
  • Includes a single-page printable version suitable for PDF conversion.

Bit

Exploring from research to base template took 1 hour. Documentation was relatively easy to understand. This documentation tool has its own ecosystem. Bit has base template settings and UML dependencies visualization.

Pros

  • It accommodates React, TypeScript and other npm packages.
  • Base templates are thorough and organized.
  • Creating components using Bit cli.
  • Variety of components other people built to incorporate in project.

Cons: need to learn the Bit ecosystem.

React DocGen

Exploring from research to base template took 10 minutes. Styleguidist uses react-docgen to parse source files (not transpiled). react-docgen finds exported React components and generates documentation based on PropTypes or Flow annotations.