1.0.0-alpha.1 • Published 3 days ago

@intellihr/blueberry v1.0.0-alpha.1

Weekly downloads
-
License
-
Repository
gitlab
Last release
3 days ago

Blueberry Design System

Blueberry is currently a work in progress.

Check out ui-components for our currently-in-use component library.

Component status tracker: https://www.notion.so/ihr/cd77ab4f45634527b0ac495a83c27ad5?v=e96dc48e0a774a15b5bfb9f60cfddb23
Storybook: https://intellihr.gitlab.io/engineering/blueberry/storybook
Playroom: https://intellihr.gitlab.io/engineering/blueberry/playroom

Run Blueberry locally

Running Blueberry locally is super simple.

  1. Clone this repo to your local dev environment
  2. Add a .npmrc file with our FontAwesome auth token to the root of the project. Look for 'Font Awesome Pro .npmrc' on 1Password for the contents of this file.
  3. Run yarn
  4. Run Storybook (yarn storybook) and/or Playroom (yarn playroom) using their respective commands

Consume Blueberry components (yum!)

Blueberry exports a single package containing all the components and utilities you need to build awesome, accessible UIs. The library is versioned as a single package to keep maintenance simple and straightforward for both consumers and the design team.

First time set up

  1. Add Blueberry as a dependency
    • yarn add @intellihr/blueberry
  2. Wrap the BlueberryProvider component around the top level of your app (you'll likely have a stack of providers already).
    • This provider sets up the global styles and theme variables - none of our components will work correctly without this.
  3. Start importing components!

BlueberryProvider configuration

The following props can be used to customize your implementation:

  • theme takes a string to select what theme to use.
    • intelliLight will be used if no theme is specified.
    • The theme object cannot be directly configured or passed through from a consumer.
  • i18n takes an object of all the translation strings required for components. Default English translations are located in _private/BlueberryContext/i18n.ts
  • i18nLocale takes a locale for certain require components that require it. Defaults to en.
  • anchorOnClick takes a function that gets called when a user interacts with any a element rendered by Blueberry.
    • undefined will be used if no callback is specified.
    • If you don't use a routing library like react-router you can ignore this prop.
    • Example for running a custom callback only on hrefs that start with /spa/:
      anchorOnClick={(e) => {
        if (e.currentTarget.href.startsWith('/spa/') {
          myCustomOnClick(e)
        }
      }}

Our Foundations

Vanilla Extract (CSS-in-JS)

We're using Vanilla Extract as it gives us great performance with its zero-runtime atomic CSS and type safety through its Typescript preprocessor.

Radix (Component Primitives)

We're using Radix components as the basis for many of our components to save time and effort instead of re-implementing accessibility (a11y) standards and common interactions. Radix primitives should never be re-exported directly by Blueberry.

FontAwesome (Icons)

We're using Font Awesome 6 Pro icons for a consistent library of icons. Blueberry uses the Individual import method and exports a curated subset of icons with our own wrapper.

Contributing to Blueberry

Blueberry is composed of a few separate apps which can each be run individually both inside and outside of docker. We recommend running outside of docker for local development.

Storybook (Component Development)

yarn storybook

Storybook is great for developing and prototyping components in an isolated environment.

Playroom (Design Prototyping via Code)

yarn playroom

Playroom is an awesome tool for live prototyping and designing UIs with code.

  • Blueberry Playroom
  • All components exported from index.ts should be available in Playroom.
  • All components should have a .snippets.tsx file.
  • Built with Playroom

Tests

yarn test

We expect all of our components and interactions to be thoroughly tested for accessibility and functionality.

Docs Site

-Coming eventually-

The landing point for all things Blueberry that clearly displays all of our design principles, tokens, and patterns as well as component usage documentation with links out to Storybook and Playroom.

Misc

Create React App

Blueberry is built on top of Create React App. The following scripts are available:

  • npm run build - Builds the app for production to the build folder.

  • npm run eject - Ejects the app from CRA's single build config

1.0.0-beta.48

3 days ago

1.0.0-beta.47

10 days ago

1.0.0-beta.46

13 days ago

1.0.0-beta.45

2 months ago

1.0.0-beta.44

3 months ago

1.0.0-beta.43

3 months ago

1.0.0-beta.42

4 months ago

1.0.0-beta.41

4 months ago

1.0.0-beta.40

4 months ago

1.0.0-beta.39

5 months ago

1.0.0-beta.33

9 months ago

1.0.0-beta.34

8 months ago

1.0.0-beta.31

10 months ago

1.0.0-beta.32

9 months ago

1.0.0-beta.37

7 months ago

1.0.0-beta.38

6 months ago

1.0.0-beta.35

8 months ago

1.0.0-beta.36

7 months ago

1.0.0-beta.22

12 months ago

1.0.0-beta.23

12 months ago

1.0.0-beta.21

12 months ago

1.0.0-beta.28

11 months ago

1.0.0-beta.29

11 months ago

1.0.0-beta.26

11 months ago

1.0.0-beta.27

11 months ago

1.0.0-beta.24

12 months ago

1.0.0-beta.25

11 months ago

1.0.0-beta.30

11 months ago

1.0.0-beta.20

1 year ago

1.0.0-beta.4

1 year ago

1.0.0-beta.5

1 year ago

1.0.0-beta.11

1 year ago

1.0.0-beta.12

1 year ago

1.0.0-beta.10

1 year ago

1.0.0-beta.6

1 year ago

1.0.0-beta.7

1 year ago

1.0.0-beta.8

1 year ago

1.0.0-beta.9

1 year ago

1.0.0-beta.19

1 year ago

1.0.0-beta.17

1 year ago

1.0.0-beta.18

1 year ago

1.0.0-beta.15

1 year ago

1.0.0-beta.16

1 year ago

1.0.0-beta.13

1 year ago

1.0.0-beta.14

1 year ago

1.0.0-beta.2

1 year ago

1.0.0-beta.3

1 year ago

1.0.0-beta.1

1 year ago

1.0.0-alpha.7

1 year ago

1.0.0-alpha.6

1 year ago

1.0.0-alpha.5

1 year ago

1.0.0-alpha.4

1 year ago

1.0.0-alpha.3

1 year ago

1.0.0-alpha.2

1 year ago

1.0.0-alpha.1

1 year ago

1.0.0

1 year ago