Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

LeafyGreen UI – LeafyGreen's React UI Kit

License

NotificationsYou must be signed in to change notification settings

mongodb/leafygreen-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeafyGreen UI

A library of React components, CSS patterns, and CLI tools for MongoDB's LeafyGreen Design System.

mongodb.design

Storybook

ReleaseLicense

Getting Started

With LeafyGreen CLI

  1. Create or open a React project
  2. Install the LeafyGreen CLI
npm install -g @lg-tools/cli
  1. Install all, or some LeafyGreen components
lg install
lg install button combobox
  1. Import LeafyGreen components into your project
importButtonfrom'@leafygreen-ui/button';import{Combobox,ComboboxOptions}from'@leafygreen-ui/combobox';

Without CLI

  1. Create or open a React project
  2. Install individual LeafyGreen components usingnpm,pnpm, oryarn
pnpm add @leafygreen-ui/button
  1. Import LeafyGreen components into your project
importButtonfrom'@leafygreen-ui/button';

Packages

PackageLatestDownloadsLive Example
@leafygreen-ui/a11yversiondownloadsLive Example
@leafygreen-ui/avatarversiondownloadsLive Example
@leafygreen-ui/badgeversiondownloadsLive Example
@leafygreen-ui/bannerversiondownloadsLive Example
@leafygreen-ui/boxversiondownloadsLive Example
@leafygreen-ui/buttonversiondownloadsLive Example
@leafygreen-ui/calloutversiondownloadsLive Example
@leafygreen-ui/cardversiondownloadsLive Example
@leafygreen-ui/checkboxversiondownloadsLive Example
@leafygreen-ui/chipversiondownloadsLive Example
@leafygreen-ui/codeversiondownloadsLive Example
@leafygreen-ui/comboboxversiondownloadsLive Example
@leafygreen-ui/confirmation-modalversiondownloadsLive Example
@leafygreen-ui/context-drawerversiondownloadsLive Example
@leafygreen-ui/copyableversiondownloadsLive Example
@leafygreen-ui/date-pickerversiondownloadsLive Example
@leafygreen-ui/date-utilsversiondownloadsLive Example
@leafygreen-ui/descendantsversiondownloadsLive Example
@leafygreen-ui/drawerversiondownloadsLive Example
@leafygreen-ui/emotionversiondownloadsLive Example
@leafygreen-ui/empty-stateversiondownloadsLive Example
@leafygreen-ui/expandable-cardversiondownloadsLive Example
@leafygreen-ui/form-fieldversiondownloadsLive Example
@leafygreen-ui/form-footerversiondownloadsLive Example
@leafygreen-ui/gallery-indicatorversiondownloadsLive Example
@leafygreen-ui/guide-cueversiondownloadsLive Example
@leafygreen-ui/hooksversiondownloadsLive Example
@leafygreen-ui/iconversiondownloadsLive Example
@leafygreen-ui/icon-buttonversiondownloadsLive Example
@leafygreen-ui/info-sprinkleversiondownloadsLive Example
@leafygreen-ui/inline-definitionversiondownloadsLive Example
@leafygreen-ui/input-optionversiondownloadsLive Example
@leafygreen-ui/leafygreen-providerversiondownloadsLive Example
@leafygreen-ui/libversiondownloadsLive Example
@leafygreen-ui/loading-indicatorversiondownloadsLive Example
@leafygreen-ui/logoversiondownloadsLive Example
@leafygreen-ui/marketing-modalversiondownloadsLive Example
@leafygreen-ui/menuversiondownloadsLive Example
@leafygreen-ui/modalversiondownloadsLive Example
@leafygreen-ui/number-inputversiondownloadsLive Example
@leafygreen-ui/ordered-listversiondownloadsLive Example
@leafygreen-ui/paginationversiondownloadsLive Example
@leafygreen-ui/paletteversiondownloadsLive Example
@leafygreen-ui/password-inputversiondownloadsLive Example
@leafygreen-ui/preview-cardversiondownloadsLive Example
@leafygreen-ui/pipelineversiondownloadsLive Example
@leafygreen-ui/polymorphicversiondownloadsLive Example
@leafygreen-ui/popoverversiondownloadsLive Example
@leafygreen-ui/portalversiondownloadsLive Example
@leafygreen-ui/radio-box-groupversiondownloadsLive Example
@leafygreen-ui/radio-groupversiondownloadsLive Example
@leafygreen-ui/rippleversiondownloadsLive Example
@leafygreen-ui/search-inputversiondownloadsLive Example
@leafygreen-ui/section-navversiondownloadsLive Example
@leafygreen-ui/segmented-controlversiondownloadsLive Example
@leafygreen-ui/selectversiondownloadsLive Example
@leafygreen-ui/side-navversiondownloadsLive Example
@leafygreen-ui/skeleton-loaderversiondownloadsLive Example
@leafygreen-ui/split-buttonversiondownloadsLive Example
@leafygreen-ui/stepperversiondownloadsLive Example
@leafygreen-ui/tableversiondownloadsLive Example
@leafygreen-ui/tabsversiondownloadsLive Example
@leafygreen-ui/testing-libversiondownloadsLive Example
@leafygreen-ui/text-areaversiondownloadsLive Example
@leafygreen-ui/text-inputversiondownloadsLive Example
@leafygreen-ui/toastversiondownloadsLive Example
@leafygreen-ui/toggleversiondownloadsLive Example
@leafygreen-ui/tokensversiondownloadsLive Example
@leafygreen-ui/toolbarversiondownloadsLive Example
@leafygreen-ui/tooltipversiondownloadsLive Example
@leafygreen-ui/typographyversiondownloadsLive Example
@lg-charts/chart-cardversiondownloadsLive Example
@lg-charts/colorsversiondownloadsLive Example
@lg-charts/coreversiondownloadsLive Example
@lg-charts/drag-providerversiondownloadsLive Example
@lg-charts/legendversiondownloadsLive Example
@lg-charts/series-providerversiondownloadsLive Example
@lg-chat/avatarversiondownloadsLive Example
@lg-chat/chat-disclaimerversiondownloadsLive Example
@lg-chat/chat-windowversiondownloadsLive Example
@lg-chat/fixed-chat-windowversiondownloadsLive Example
@lg-chat/input-barversiondownloadsLive Example
@lg-chat/leafygreen-chat-providerversiondownloadsLive Example
@lg-chat/lg-markdownversiondownloadsLive Example
@lg-chat/messageversiondownloadsLive Example
@lg-chat/message-feedversiondownloadsLive Example
@lg-chat/message-feedbackversiondownloadsLive Example
@lg-chat/message-promptsversiondownloadsLive Example
@lg-chat/message-ratingversiondownloadsLive Example
@lg-chat/rich-linksversiondownloadsLive Example
@lg-chat/title-barversiondownloadsLive Example
@lg-tools/buildversiondownloads
@lg-tools/cliversiondownloads
@lg-tools/codemodsversiondownloads
@lg-tools/createversiondownloads
@lg-tools/installversiondownloads
@lg-tools/linkversiondownloads
@lg-tools/lintversiondownloads
@lg-tools/metaversiondownloads
@lg-tools/slackbotversiondownloads
@lg-tools/storybook-addonversiondownloads
@lg-tools/storybook-decoratorsversiondownloads
@lg-tools/storybook-utilsversiondownloads
@lg-tools/testversiondownloads
@lg-tools/test-harnessesversiondownloads
@lg-tools/updateversiondownloads
@lg-tools/validateversiondownloads

Development

Setup

  1. Node >= 18.0.0 required.

    viahomebrew withbrew install node

    vianodejs installer

  2. Install PNPM >= 9.15.0.

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

    pnpmruninit

Storybook

Start up storybook to see all UI components that exist:

pnpmstart

Note: Running storybook doesn't trigger changes in dependencies, only the main component's — e.g. If you're looking atButton, and make a change toLib, you need to rebuildLib for Storybook to see those changes inButton.

Building Packages

To rebuild all packages:

pnpmbuild

To rebuild select packages, filter using--filter:

pnpmbuild--filter="[package]"// ex. --filter="@leafygreen-ui/hooks"

Development within an Application

To actively developleafygreen-ui components within an application, the following script will link allleafygreen-ui components within your application to the localleafygreen-ui repository.

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

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

pnpm run link -- ${PATH_TO_APPLICATION}

The script does several things in order:

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

  2. It scans your application for any installedleafygreen-ui components in yournode_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 insidenode_modules/@leafygreen-ui before running this command.

  3. If anyleafygreen-ui components are found then the script usespnpm link to link everynode_modules/@leafygreen-ui module to your localleafygreen-ui repository.

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

Creating New Component

Getting Started

To get started quickly and easily runpnpm 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.

  • Add the new component tobuild.tsconfig.json
  • If you are using anyleafygreen-ui dependencies in your new component, add the dependency to the component directory'stsconfig.json.
  • Runpnpm run init to link all packages before starting development

Formatting and linting

When you runpnpm fix, we do the following:

  • We runpnpm prettier:fix so that we have consistently formatted code.
  • We runpnpm 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:

pnpm fix

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

pnpm prettier:check

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

pnpm eslint:check

Typechecking

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

pnpm ts

Testing

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

pnpm test

Committing

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

pnpm changeset

This will generate achanges.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 generatedVersion 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

Publishing Pre-releases

Read more in-depthpre-release guides here

Pre-releases let you publish an alpha/beta/next version of a component, allowing developers to test a component before fully releasing a component.

Let's imagine we want to publish abeta release of some component. Our work is being done on a branch callednew-feature

  1. Create a new branch off your component branchgit checkout -b pre-release
    • this makes sure your package updates stay independent
  2. Enter pre-release mode:pnpm changeset pre enter beta (name can benext,beta,alpha, or any other name)
  3. Update package versionspnpm changeset version
    • This will update any packages with existing changeset files to versionX.Y.Z-beta.0 (or whatever name you used)
  4. Commit these updatesgit commit -am "Prerelease version packages"
  5. Build the component(s) you're pre-releasingpnpm build <...components>
  6. Publish the prerelease withpnpm changeset publish

Any new work you do should be done in theoriginal (new-feature) branch.To publish a new pre-release version, pull the changes fromnew-feature into branchpre-release, and follow steps 3-5.

Whennew-feature is merged intomain, you can safely delete thepre-release branch

Deploy gh-pages

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

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

To deploy to your own mirror of leafygreen-ui

  1. Runpnpm 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.


[8]ページ先頭

©2009-2025 Movatter.jp