@getgrover/ui
v6.12.0
Published
Reusable UI components for grover web apps
Readme
Grover UI react components
[!TIP] Are you looking for help migrating to v6? Check out the migration guide.
Installation:
yarn add @getgrover/uiUsage:
Import fonts:
Every consumer of this library is expected to add the required fonts on its own. This can be done by adding the following snippet to the <head> of your applications html:
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;500;700;800&display=swap"
rel="stylesheet"
/>[!NOTE] Its also important that consumers set the
font-familyfor the elements making use of the font. Starting in v6,theme.typographystyles no longer setfont-familyfor you. Recommendedfont-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
Every component is a named export. You can import any component as follows:
import { Button } from '@getgrover/ui';The UI library currently offers two different build outputs: umd (main) and esm (module). Depending on your build setup your bundler will prefer the tree-shakable esm.
Storybook
The storybook deployment for the UI library can be found here: https://main.ui-storybook-dev.eu-staging.grover.com/
Development:
This repository is maintained by @devsbb/retention but everyone is welcome to contribute. For contributing guidelines, please see contributing.
Local development process implemented through @storybook/react. Please read this documentation before staring developing new components.
- Create new component in
/packagesfolder - Import new component through init. file
/index.ts - Create new story in the component folder
packages/NewComponent/NewComponent.stories.jsx - Type
yarn startto run the development server - Storybook started on => http://localhost:6006/
- Repeat 1-4 ("Hot Module Replacement" is running)
Customization
We want consumers to be able to customize UI components according to their needs. Since we build all new components via styled-components, there are have two ways for a single component to allow it's customization:
- if we want the consumer to slightly alter the component look, we export its settings via the theme.
- if we want to allow any customization to build new components on top of the current one, we go with the
classNames+styled.attrsapproach (take a look at theInputcomponent).
Release process
This project uses semantic releases.
[!IMPORTANT] PR names must follow Angular Commit Message Conventions. If they don't no release will be triggered, nor will the commit appear in the changelog part of the release.
[!IMPORTANT] When merging PRs, ensure that the "squash and merge" option is selected to ensure that each PR only results in a single changelog line. If the standard "merge" option is selected, each commit in the PR will appear as a separate changelog item.
