0.1.11 • Published 2 years ago

@karmarama-toolbox/karma-components v0.1.11

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

🚀 Karma Component Library

This project contains a component library and associated Storybook.

Getting started

  • Install deps with npm install

Available Scripts

In the project directory, you can run:

  • npm run storybook - Runs storybook in dev mode
  • npm run build-storybook - Create a storybook build
  • npm run build create a new build of the component library for export
  • npm run test runs automated unit, snapshot, and visual regression tests

Using the Component Library

You can install and use the component library in other React projects with

  • npm install @karmarama-toolbox/karma-components

Set up the Theme Provider

Before using the components, you will need to provide the theme provider component at the root of the application. You have two options.

  • Use the default theme from the library
import ReactDOM from 'react-dom'
import App from './App'
import { KarmaThemeProvider } from '@karmarama-toolbox/karma-components'

ReactDOM.render(
  document.getElementById('root'),
  <KarmaThemeProvider>
    <App />
  </KarmaThemeProvider>
)
  • Or, use the generic theme provider which can be extended with your own
import ReactDOM from 'react-dom'
import App from './App'
import { ThemeProvider, karmaTheme } from '@karmarama-toolbox/karma-components'

// * Extend the base theme
const theme = {
  ...karmaTheme,
  colors: {
    primary: 'red'
  }
}

ReactDOM.render(
  document.getElementById('root'),
  <ThemeProvider theme={theme}>
    <App />
  </ThemeProvider>
)

You can then import and use components in your app.

import { Heading } from '@karmarama-toolbox/karma-components'

function MyComponent() {
  return <Heading type="h1">Hello World</Heading>
}

Set up the global CSS

To make use of global CSS rules from this component library, add an instance of the GlobalStyle component as follows:

import { GlobalStyle } from '@karmarama-toolbox/karma-components'

function App() {
  return (
    <>
      <ThemeProvider>
        <GlobalStyle />
        ...
      </ThemeProvider>
    </>
  )
}