deb123f283
* restructure * udpate readme links
191 lines
4.2 KiB
JavaScript
191 lines
4.2 KiB
JavaScript
const plugin = require('tailwindcss/plugin')
|
|
const addHeaders = require('./tailwind/headers')
|
|
|
|
// get formatted color, by color and opacity
|
|
function c(color, opacityValue) {
|
|
return opacityValue === undefined
|
|
? `rgb(var(${color}))`
|
|
: `rgba(var(${color}), ${opacityValue})`
|
|
}
|
|
|
|
// get color-maker method receiving an opacity as the input, by color
|
|
function co(color) {
|
|
return ({ opacityValue }) => c(color, opacityValue)
|
|
}
|
|
|
|
// Read more about tailwindcss configuration: https://tailwindcss.com/docs/configuration
|
|
module.exports = {
|
|
mode: 'jit',
|
|
prefix: 'tw-',
|
|
safelist: [
|
|
'light-mode',
|
|
'dark-mode',
|
|
],
|
|
theme: {
|
|
// structure
|
|
container: {
|
|
center: true,
|
|
padding: {
|
|
DEFAULT: '1.5rem',
|
|
md: '2rem',
|
|
lg: '2.5rem',
|
|
},
|
|
},
|
|
fontFamily: {
|
|
main: [
|
|
'-apple-system',
|
|
'"Segoe UI"',
|
|
'Helvetica',
|
|
'Arial',
|
|
'sans-serif',
|
|
'"Apple Color Emoji"',
|
|
'"Segoe UI Emoji"',
|
|
'"Segoe UI Symbol"',
|
|
],
|
|
mono: ['monospace'],
|
|
},
|
|
lineHeight: {
|
|
none: 1,
|
|
xs: 1.1,
|
|
sm: 1.15,
|
|
},
|
|
|
|
// colors
|
|
colors: {
|
|
black: co('--c-black'),
|
|
white: co('--c-white'),
|
|
divider: co('--c-divider'),
|
|
muted: co('--c-divider-muted'),
|
|
accent: {
|
|
primary: co('--c-accent-primary'),
|
|
secondary: co('--c-accent-secondary'),
|
|
},
|
|
state: {
|
|
error: co('--c-state-error'),
|
|
success: co('--c-state-success'),
|
|
},
|
|
},
|
|
textColor: theme => ({
|
|
...theme('colors'),
|
|
'custom': co('--text-color'),
|
|
'base': co('--c-text-base'),
|
|
'dim-1': co('--c-text-dim-1'),
|
|
'dim-2': co('--c-text-dim-2'),
|
|
'dim-3': co('--c-text-dim-3'),
|
|
'bg': co('--c-bg-base'),
|
|
}),
|
|
backgroundColor: theme => ({
|
|
...theme('colors'),
|
|
'custom': co('--bg-color'),
|
|
'base': co('--c-bg-base'),
|
|
'dim-1': co('--c-bg-dim-1'),
|
|
'placeholder': co('--c-bg-placeholder'),
|
|
}),
|
|
borderColor: theme => ({
|
|
...theme('colors'),
|
|
base: co('--c-text-base'),
|
|
transparent: 'transparent',
|
|
custom: co('--border-color'),
|
|
}),
|
|
fill: theme => ({
|
|
...theme('backgroundColor'),
|
|
}),
|
|
stroke: theme => ({
|
|
...theme('borderColor'),
|
|
}),
|
|
|
|
// opacity
|
|
opacity: {
|
|
0: '0',
|
|
muted: '0.5',
|
|
soft: '0.8',
|
|
full: '1',
|
|
outline: 'var(--o-outline)',
|
|
},
|
|
textOpacity: theme => ({
|
|
...theme('opacity'),
|
|
custom: 'var(--text-opacity)',
|
|
}),
|
|
backgroundOpacity: theme => ({
|
|
...theme('opacity'),
|
|
custom: 'var(--bg-opacity)',
|
|
}),
|
|
borderOpacity: theme => ({
|
|
...theme('opacity'),
|
|
custom: 'var(--border-opacity)',
|
|
}),
|
|
|
|
transitionDuration: {
|
|
fast: '250ms',
|
|
normal: '500ms',
|
|
slow: '750ms',
|
|
},
|
|
zIndex: {
|
|
muted: '-1',
|
|
1: '1',
|
|
},
|
|
borderRadius: {
|
|
0: '0',
|
|
sm: '0.75rem',
|
|
DEFAULT: '1rem',
|
|
lg: '1.5rem',
|
|
full: '9999px',
|
|
},
|
|
scale: {
|
|
0: '0',
|
|
click: '0.975',
|
|
normal: '1',
|
|
},
|
|
|
|
extend: {
|
|
blur: {
|
|
px: '1px',
|
|
xs: '2px',
|
|
},
|
|
fontSize: {
|
|
'1/2': '0.5em',
|
|
'5/8': '0.625em',
|
|
'3/4': '0.75em',
|
|
'7/8': '0.875em',
|
|
'9/8': '1.125em',
|
|
'5/4': '1.25em',
|
|
'3/2': '1.5em',
|
|
},
|
|
boxShadow: {
|
|
// shadows for dialogs, popups etc
|
|
card: '0 0 2rem -1.75rem rgb(var(--c-accent-secondary))',
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
plugin(addHeaders),
|
|
({ addUtilities, matchUtilities, theme }) => {
|
|
const size = value => ({
|
|
height: value,
|
|
minHeight: value,
|
|
width: value,
|
|
minWidth: value,
|
|
})
|
|
matchUtilities(
|
|
{
|
|
size,
|
|
circle: value => ({
|
|
...size(value),
|
|
borderRadius: theme('borderRadius.full'),
|
|
}),
|
|
},
|
|
{ values: theme('height') },
|
|
)
|
|
|
|
addUtilities({
|
|
'.duration-onhover-fast': {
|
|
'transitionDuration': theme('transitionDuration.normal'),
|
|
'&:hover': {
|
|
transitionDuration: theme('transitionDuration.fast'),
|
|
},
|
|
},
|
|
})
|
|
},
|
|
],
|
|
}
|