A theme is a simple javascript object with only top level keys.
const Theme = { hello: 'blue' }import { createThemedStyle } from 'themed-styled-components' import rawStyled from 'styled-components' // or import rawStyled from '@emotion/styled' const styled = createThemedStyle<typeof Theme>(rawStyled)Now you can use styled almost as usual, but with superpowers.
const StyledButton = styled('div')` /* direct theme interpolation key */ background-color: ${"hello"}; /* return theme key from props interpolation*/ color: ${props => props.primary ? "hello": "red"} ` <div style={{ padding: '20px', backgroundColor: 'tomato' }}> <h4>Beep</h4> </div>git clone https://github.com/tclain/styled-utils.git YOURFOLDERNAME cd YOURFOLDERNAME # Run npm install and write your library name when asked. That's all! npm installnpm t: Run test suitenpm start: Runnpm run buildin watch modenpm run test:watch: Run test suite in interactive watch modenpm run test:prod: Run linting and generate coveragenpm run build: Generate bundles and typings, create docsnpm run lint: Lints codenpm run commit: Commit using conventional commit style (husky will tell you to use it if you haven't 😉)