@beatgig/synth-react
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

@beatgig/synth-react

React bindings for Synth.

Installation

yarn add @beatgig/synth-react

Usage

import React from 'react'
import styled from 'styled-components'
import ReactDOM from 'react-dom'
import { getTokenValue } from '@beatgig/synth-core'
import { SynthProvider, SynthConsumer } from '@beatgig/synth-react'
import { withTokens } from '@beatgig/synth-css'

const tokens = {
  '@coolBlue': 'blue',

  color: {
    background: {
      button: 'red',
      otherButton: '@coolBlue',
    },
  },
}

const Button = styled.button`
  ${({ synth }) => synth.backgroundColor('button')}
`

const OtherButton = styled.button`
  ${({ synth }) => synth.backgroundColor('otherButton')}
`

ReactDOM.render(
  <SynthProvider value={{
    tokens,
    ...withTokens(tokens),
  }}>
    <Button>A Red Button<Button>
    <SynthConsumer>
      {(synth) => (
        <OtherButton
          title={`Using this cool blue: ${getTokenValue(synth.tokens, '@coolBlue')}`}
        >
          A Blue Button
        </OtherButton>
      )}
    </SynthConsumer>
  </SynthProvider>,
  document.getElementById('root')
)

Readme

Keywords

none

Package Sidebar

Install

npm i @beatgig/synth-react

Weekly Downloads

1

Version

2.0.2

License

MIT

Unpacked Size

77.8 kB

Total Files

40

Last publish

Collaborators

  • beatgigllc
  • jerber8
  • fernandorojo