rsnext/examples/with-stitches/stitches.config.ts
Pedro Duarte 0e843e6001
Update with-stitches example (#16827)
Hi 👋 

[Stitches](https://stitches.dev) `v0.0.1` beta was recently released. This PR updates the existing examples to the latest packages and API.

Notes:
- Remove `with-stitches-styled` example, that's no longer needed
- Update `with-stitches` example
  - Update dependency
  - Example done with Typescript
- Updated README

Thanks ✌️ 

![CleanShot 2020-09-03 at 18 23 09@2x](https://user-images.githubusercontent.com/372831/92141867-52d98d80-ee13-11ea-91ed-001cd46989f1.jpg)
2020-09-03 17:38:13 +00:00

83 lines
1.8 KiB
TypeScript

import { createStyled } from '@stitches/react'
const theme = {
colors: {
$hiContrast: 'hsl(206,10%,5%)',
$loContrast: 'white',
$gray100: 'hsl(206,22%,99%)',
$gray200: 'hsl(206,12%,97%)',
$gray300: 'hsl(206,11%,92%)',
$gray400: 'hsl(206,10%,84%)',
$gray500: 'hsl(206,10%,76%)',
$gray600: 'hsl(206,10%,44%)',
$purple100: 'hsl(252,100%,99%)',
$purple200: 'hsl(252,100%,98%)',
$purple300: 'hsl(252,100%,94%)',
$purple400: 'hsl(252,75%,84%)',
$purple500: 'hsl(252,78%,60%)',
$purple600: 'hsl(252,80%,53%)',
},
space: {
$1: '5px',
$2: '10px',
$3: '15px',
$4: '20px',
$5: '25px',
$6: '35px',
},
sizes: {
$1: '5px',
$2: '10px',
$3: '15px',
$4: '20px',
$5: '25px',
$6: '35px',
},
fontSizes: {
$1: '12px',
$2: '13px',
$3: '15px',
$4: '17px',
$5: '19px',
$6: '21px',
},
fonts: {
$system: 'system-ui',
},
}
export const { styled, css } = createStyled({
tokens: theme,
utils: {
marginX: (config) => (
value: keyof typeof theme['space'] | (string & {})
) => ({
marginLeft: value,
marginRight: value,
}),
marginY: (config) => (
value: keyof typeof theme['space'] | (string & {})
) => ({
marginTop: value,
marginBottom: value,
}),
paddingX: (config) => (
value: keyof typeof theme['space'] | (string & {})
) => ({
paddingLeft: value,
paddingRight: value,
}),
paddingY: (config) => (
value: keyof typeof theme['space'] | (string & {})
) => ({
paddingTop: value,
paddingBottom: value,
}),
},
breakpoints: {
bp1: (rule) => `@media (min-width: 520px) { ${rule} }`,
bp2: (rule) => `@media (min-width: 900px) { ${rule} }`,
},
})