All Projects → mongodb → leafygreen-ui

mongodb / leafygreen-ui

Licence: Apache-2.0 License
LeafyGreen UI – LeafyGreen's React UI Kit

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to leafygreen-ui

visage
Visage design system
Stars: ✭ 12 (-89.29%)
Mutual labels:  emotion, ui-kit, design-system
design-systems
A list of famous design systems, design languages and guidelines
Stars: ✭ 403 (+259.82%)
Mutual labels:  ui-kit, design-system
basis
Basis Design System
Stars: ✭ 55 (-50.89%)
Mutual labels:  emotion, design-system
flow-ui
Accessibility oriented design system for developing fast and powerful web interfaces.
Stars: ✭ 89 (-20.54%)
Mutual labels:  ui-kit, design-system
Flame
Component library for building Lightspeed products
Stars: ✭ 65 (-41.96%)
Mutual labels:  emotion, design-system
Fluid System
Fluid System is a style props function transformer for generating fluid styles. 💦
Stars: ✭ 130 (+16.07%)
Mutual labels:  emotion, design-system
impact-design-system
Kick-Start Your Development With An Awesome Design System carefully designed for your online business showcase. Joint project by Creative Tim and Themesberg.
Stars: ✭ 114 (+1.79%)
Mutual labels:  ui-kit, design-system
Aksara Ui
Aksara Design System, from Kata.ai.
Stars: ✭ 107 (-4.46%)
Mutual labels:  ui-kit, design-system
sugui
UI Components library based on React, Styled Components and React Testing Library
Stars: ✭ 17 (-84.82%)
Mutual labels:  ui-kit, design-system
kahi-ui
Straight-forward Svelte UI for the Web
Stars: ✭ 169 (+50.89%)
Mutual labels:  ui-kit, design-system
lab-cli
Command line utilities and exporting module for Compositor Lab
Stars: ✭ 52 (-53.57%)
Mutual labels:  emotion, design-system
Basis
Basis Design System
Stars: ✭ 44 (-60.71%)
Mutual labels:  emotion, design-system
Theme Ui
Build consistent, themeable React apps based on constraint-based design principles
Stars: ✭ 4,150 (+3605.36%)
Mutual labels:  emotion, design-system
web-components
A set of high-quality standards based web components for enterprise web applications. Part of Vaadin 20+
Stars: ✭ 322 (+187.5%)
Mutual labels:  ui-kit, design-system
Shine Design
为开发者、设计师和产品经理准备的 UI 设计语言
Stars: ✭ 157 (+40.18%)
Mutual labels:  ui-kit, design-system
sha-el-design
React components for easier customization and smooth development flow.
Stars: ✭ 33 (-70.54%)
Mutual labels:  ui-kit, design-system
Sugui Design System
A design system template for the SugUI components library based on styleguidist
Stars: ✭ 17 (-84.82%)
Mutual labels:  ui-kit, design-system
Vitamin Web
Decathlon Design System libraries for web applications
Stars: ✭ 70 (-37.5%)
Mutual labels:  ui-kit, design-system
rebass
⚛️ React primitive UI components built with styled-system.
Stars: ✭ 7,844 (+6903.57%)
Mutual labels:  emotion, design-system
klee
A personnal UI library made as an excuse to have a published UI package
Stars: ✭ 19 (-83.04%)
Mutual labels:  emotion, ui-kit

LeafyGreen UI Kit

A set of CSS styles and React components built with design in mind.

Check out all of the components in action!

Package Table of Contents

Developer Setup

  1. Node >= 14.0.0 and Node < 17.0.0 required.

    via homebrew with brew install node

    via nodejs installer

  2. Install Yarn >= 1.16.0.

    Yarn Installation documentation

  3. Clone the repository.

    # Navigate to the directory you'd like to clone the repository into
    $ cd ~/my/repositories
    
    # Clone the repository.
    
    # We recommend installing using the SSH address rather than the HTTPS one to make authentication easier for you. To set up SSH authentication with GitHub, see their guide: https://docs.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account
  4. Install dependencies and link packages.

    yarn run init

Use yarn build to rebuild all packages. Pass in a specific package name to rebuild select packages:

yarn build button icon

Additionally, pass in the --watch flag to rebuild packages on change.

Development

  1. Start up storybook to see all UI components that exist.

    yarn start

Development within an Application

To actively develop leafygreen-ui components within an application, the following script will link all leafygreen-ui components within your application to the local leafygreen-ui repository.

This will allow you to make changes to your local repository of leafygreen-ui and see those changes immediately reflected within your running application. This allows you to develop both in isolation (within leafygreen-ui) and in the context of your application.

To do this, clone this repository and navigate to the root directory (where package.json is located), then run the following:

yarn run link -- ${PATH_TO_APPLICATION}

The script does several things in order:

  1. This builds every leafygreen-ui component so they are ready to be linked

  2. It scans your application for any installed leafygreen-ui components in your node_modules/@leafygreen-ui folder. NOTE: If the package is new and unpublished/not installed, you will need to create a directory for the new component within your application inside node_modules/@leafygreen-ui before running this command.

  3. If any leafygreen-ui components are found then the script uses yarn link to link every node_modules/@leafygreen-ui module to your local leafygreen-ui repository.

After the script completes, you can make changes directly to the component in your local leafygreen-ui repository. Once you do this, run yarn build in the root of the leafygreen-ui repository and the changes will be visible on your running application.

Creating New Component

Getting Started

To get started quickly and easily run yarn create-package my-new-package. When you run this command, we create a directory containing all of the boilerplate code that you'll need to start developing your new Component.

Note: it's important to follow the kebab-casing convention described above.

Formatting and linting

When you run yarn fix, we do the following:

  • We run yarn prettier:fix so that we have consistently formatted code.
  • We run yarn eslint:fix to catch any syntax errors, unused variables, and any other easy-to-catch issues.

To fix all files in the repository, run the following:

yarn fix

To check if any files need formatting without automatically formatting them, run the following:

yarn prettier:check

To run linting without automatically fixing issues, run the following:

yarn eslint:check

Typechecking

To run typechecking without compiling the code, run the following:

yarn ts

Testing

To run the unit tests for our components, run the following:

yarn test

Commiting

When making a PR that contains changes that should be included in a package's changelog, be sure to do so by running:

yarn changeset

This will generate a changes.json file, keeping track of version upgrades and update descriptions. We follow semver conventions for versioning, so each change will either be major, minor, or patch.

Make sure that the PR includes the changes made by running this command.

Publishing

  1. Merge the automatically generated Version Packages PR that will contain appropriate version bumps and changelog documentation.

  2. Push the tags from the release up to Github.

git push --follow-tags

Deploy gh-pages

You can deploy a static build of our Storybook site to gh-pages from the main branch.

  1. First be sure you've built a static version of Storybook: yarn build:storybook
  2. Then deploy to gh-pages: yarn release:site

To deploy to your own mirror of leafygreen-ui

  1. Run yarn demo:site [your_github_username].
  2. If you haven't built a static version of Storybook yet, you will be prompted to do so.
  3. You will be asked for confirmation before Storybook is published.

License

The source files in this repository are made available under the terms of the Apache License, version 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].