• Stars
    star
    613
  • Rank 73,175 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Customizable design system from Welcome to the jungle (@wttj) with react, typescript, styled-components, ariakit and a lot of love ๐Ÿ’› Here you'll find all the core components you need to create a delightful webapp.

Welcome UI

Welcome to the Welcome UI library created by Welcome to the jungle, a customizable design system with react โ€ข typescript โ€ข styled-components โ€ข styled-system and reakit.

Here you'll find all the core components you need to create a delightful webapp.

๐ŸŒด Discover all the components


License Code formating Code style PRs Welcome Conventional Commits


Installation

1 - Install the peer dependencies listed below:

yarn add @xstyled/styled-components react styled-components

2 - Install the the core component and any other components you need for your webapp e.g. if you need just a buttonโ€ฆ

yarn add @welcome-ui/core @welcome-ui/button

Import library & Theme

Getting started

import React from 'react'
import { createTheme, WuiProvider } from '@welcome-ui/core'
import { Button } from '@welcome-ui/button'

// Add theme options (if you want)
const options = {
  defaultFontFamily: 'Helvetica',
  headingFontFamily: 'Georgia',
  colors: {
    primary: {
      500: '#124C80',
    },
    success: {
      500: '#32CD32',
    },
  },
}

// Create your theme
const theme = createTheme(options)
export default function Root() {
  return (
    // Wrap your components with <WuiProvider /> with your theme
    <WuiProvider
      theme={theme}
      // Will inject a CSS reset with normalizer
      hasGlobalStyle
      // Will show the focus ring on keyboard navigation only
      shouldHideFocusRingOnClick
    >
      <Button>Welcome!</Button>
    </WuiProvider>
  )
}

Develop on local

  1. First install and build the packages (only the first time)
yarn first:install
  1. Start documentation website
yarn start
  1. Start a watch on all packages to rebuild them easily
yarn watch
  1. and go to https://localhost:3020

How to release

The release of the packages is automated by the CI, you just need to bump package version and push git tags to initiate the process.

Initiating the release process from your environment

The commands listed below will only prompt for packages to bump. Then they will modify packages versions, commit changes and create the git tag to finally push everything to github. No further actions are required once you have validated the packages to bump.

If you just need to bump one version without bumping to a major or switching from a prerelease to stable release, run:

yarn release

To bump to a major version, run:

yarn release major

To create a new prerelease, run:

This is only used for the first prerelease. If you already published a v5.0.0-alpha.0 then you just need to run the first command.

yarn release --preid alpha

NB: you can replace alpha with any other keyword (beta, rc, ...)

Force publish a package

In addition to the options shown above, you can use the --force-publish option to force bumping some packages.

Troubleshooting

How to release when the publish process failed having published some packages

Re-run the failed job with ssh, then ssh into the machine and run this command:

cd welcome-ui/packages && find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && npm publish" \;

This will publish each packages, those who are already published will fail and be ignored by the script.

How to rollback a release that has been stopped before publish to npm

Revert the last commit (which should be the commit that bumps package versions):

git revert HEAD^

Remove the tag on github and locally.

Then apply your fixes and re-run your release command.

About the CI

The CI will trigger on tags to build the packages and then push them to the npm registry