// stitches.config.ts import type Stitches from '@stitches/react' import { createStitches } from '@stitches/react' import { gray, blue, crimson, grass, slate, mauve, mauveA, amber, purple, green, grayDark, blueDark, crimsonDark, grassDark, slateDark, mauveDark, mauveDarkA, amberDark, purpleDark, greenDark, red, redDark } from '@radix-ui/colors' export const { styled, css, globalCss, keyframes, getCssText, theme, createTheme, config } = createStitches({ theme: { colors: { ...gray, ...blue, ...crimson, ...grass, ...slate, ...mauve, ...mauveA, ...amber, ...purple, ...green, ...red, accent: '#9D2DFF', background: '$gray1', backgroundAlt: '$gray4', backgroundOverlay: '$mauve2', text: '$gray12', textMuted: '$gray10', primary: '$plum', error: '$red9', warning: '$amber11', success: '$grass11', white: 'white', black: 'black', deep: 'rgb(244, 244, 244)' }, fonts: { body: 'Work Sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif', heading: 'Work Sans, sans-serif', monospace: 'Roboto Mono, monospace' }, fontSizes: { xs: '0.6875rem', sm: '0.875rem', md: '1rem', lg: '1.125rem', xl: '1.25rem', '2xl': '1.5rem', '3xl': '1.875rem', '4xl': '2.25rem', '5xl': '3rem', '6xl': '3.75rem', '7xl': '4.5rem', '8xl': '6rem', '9xl': '8rem', default: '$md' }, space: { px: '1px', 0.5: '0.125rem', 1: '0.25rem', 1.5: '0.375rem', 2: '0.5rem', 2.5: '0.625rem', 3: '0.75rem', 3.5: '0.875rem', 4: '1rem', 5: '1.25rem', 6: '1.5rem', 7: '1.75rem', 8: '2rem', 9: '2.25rem', 10: '2.5rem', 12: '3rem', 14: '3.5rem', 16: '4rem', 20: '5rem', 24: '6rem', 28: '7rem', 32: '8rem', 36: '9rem', 40: '10rem', 44: '11rem', 48: '12rem', 52: '13rem', 56: '14rem', 60: '15rem', 64: '16rem', 72: '18rem', 80: '20rem', 96: '24rem', widePlus: '2048px', wide: '1536px', layoutPlus: '1260px', layout: '1024px', copyUltra: '980px', copyPlus: '768px', copy: '680px', narrowPlus: '600px', narrow: '512px', xs: '20rem', sm: '24rem', md: '28rem', lg: '32rem', xl: '36rem', '2xl': '42rem', '3xl': '48rem', '4xl': '56rem', '5xl': '64rem', '6xl': '72rem', '7xl': '80rem', '8xl': '90rem' }, sizes: { px: '1px', 0.5: '0.125rem', 1: '0.25rem', 1.5: '0.375rem', 2: '0.5rem', 2.5: '0.625rem', 3: '0.75rem', 3.5: '0.875rem', 4: '1rem', 5: '1.25rem', 6: '1.5rem', 7: '1.75rem', 8: '2rem', 9: '2.25rem', 10: '2.5rem', 12: '3rem', 14: '3.5rem', 16: '4rem', 20: '5rem', 24: '6rem', 28: '7rem', 32: '8rem', 36: '9rem', 40: '10rem', 44: '11rem', 48: '12rem', 52: '13rem', 56: '14rem', 60: '15rem', 64: '16rem', 72: '18rem', 80: '20rem', 96: '24rem', max: 'max-content', min: 'min-content', full: '100%', '3xs': '14rem', '2xs': '16rem', xs: '20rem', sm: '24rem', md: '28rem', lg: '32rem', xl: '36rem', '2xl': '42rem', '3xl': '48rem', '4xl': '56rem', '5xl': '64rem', '6xl': '72rem', '7xl': '80rem', '8xl': '90rem' }, radii: { none: '0', sm: '0.2rem', base: '0.25rem', md: '0.375rem', lg: '0.5rem', xl: '0.75rem', '2xl': '1rem', '3xl': '1.5rem', full: '9999px' }, fontWeights: { body: 400, heading: 700, bold: 700 }, lineHeights: { one: 1, body: 1.5, heading: 0.85 }, letterSpacings: {}, borderWidths: {}, borderStyles: {}, shadows: {}, zIndices: {}, transitions: {} }, media: { sm: '(min-width: 30em)', md: '(min-width: 48em)', lg: '(min-width: 62em)', xl: '(min-width: 80em)', '2xl': '(min-width: 96em)', hover: '(any-hover: hover)', dark: '(prefers-color-scheme: dark)', light: '(prefers-color-scheme: light)' }, utils: { // Abbreviated margin properties m: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'margin'>) => ({ margin: value }), mt: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'marginTop'>) => ({ marginTop: value }), mr: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'marginRight'>) => ({ marginRight: value }), mb: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'marginBottom'>) => ({ marginBottom: value }), ml: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'marginLeft'>) => ({ marginLeft: value }), mx: ( value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'marginLeft' | 'marginRight'> ) => ({ marginLeft: value, marginRight: value }), my: ( value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'marginTop' | 'marginBottom'> ) => ({ marginTop: value, marginBottom: value }), // Abbreviated margin properties p: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'padding'>) => ({ padding: value }), pt: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'paddingTop'>) => ({ paddingTop: value }), pr: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'paddingRight'>) => ({ paddingRight: value }), pb: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'paddingBottom'>) => ({ paddingBottom: value }), pl: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'paddingLeft'>) => ({ paddingLeft: value }), px: ( value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'paddingLeft' | 'paddingRight'> ) => ({ paddingLeft: value, paddingRight: value }), py: ( value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'paddingTop' | 'paddingBottom'> ) => ({ paddingTop: value, paddingBottom: value }), // A property for applying width/height together size: (value: Stitches.ScaleValue<'space'> | Stitches.PropertyValue<'width' | 'height'>) => ({ width: value, height: value }), // color: (value: Stitches.PropertyValue<'color'> | Stitches.PropertyValue<'width' | 'height'> => ({ // color: value // }), // A property to apply linear gradient linearGradient: (value: Stitches.ScaleValue<'space'>) => ({ backgroundImage: `linear-gradient(${value})` }), // An abbreviated property for border-radius br: (value: Stitches.ScaleValue<'space'>) => ({ borderRadius: value }) } }) export const darkTheme = createTheme('dark', { colors: { ...grayDark, ...blueDark, ...crimsonDark, ...grassDark, ...slateDark, ...mauveDark, ...mauveDarkA, ...amberDark, ...purpleDark, ...greenDark, ...redDark, deep: 'rgb(10, 10, 10)', backgroundOverlay: '$mauve5' // backgroundA: transparentize(0.1, grayDark.gray1), } }) export const globalStyles = globalCss({ // body: { backgroundColor: '$background', color: '$text', fontFamily: 'Helvetica' }, 'html, body': { backgroundColor: '$mauve2', color: '$mauve12', fontFamily: '$body', fontSize: '$md', '-webkit-font-smoothing': 'antialiased', '-moz-osx-font-smoothing': 'grayscale' }, a: { color: 'inherit', textDecoration: 'none' } })