mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
85 lines
2.7 KiB
TypeScript
85 lines
2.7 KiB
TypeScript
import { Config } from 'tailwindcss';
|
|
import * as defaultTheme from 'tailwindcss/defaultTheme';
|
|
import plugin from 'tailwindcss/plugin';
|
|
|
|
import typographyPlugin from '@tailwindcss/typography';
|
|
import formsPlugin from '@tailwindcss/forms';
|
|
|
|
import { themes } from './src/themes';
|
|
|
|
const noscriptPlugin = plugin(({ addComponents }) => {
|
|
// NOTE: We cannot choose where Tailwind puts the generated CSS, so we
|
|
// manually add these classes to routes/+layout.svelte
|
|
addComponents({
|
|
'.noscript\\:hidden': {},
|
|
});
|
|
});
|
|
|
|
const color = (name: string) => ({
|
|
[`${name}`]: `rgb(var(--${name}) / <alpha-value>)`,
|
|
});
|
|
const colorFocusContent = (name: string) => ({
|
|
...color(`${name}`),
|
|
...color(`${name}-focus`),
|
|
...color(`${name}-content`),
|
|
});
|
|
|
|
export default {
|
|
content: ['./src/**/*.{html,js,svelte,ts}'],
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
...colorFocusContent('primary'),
|
|
...colorFocusContent('secondary'),
|
|
...colorFocusContent('accent'),
|
|
...colorFocusContent('neutral'),
|
|
...color('base-100'),
|
|
...color('base-200'),
|
|
...color('base-300'),
|
|
...color('base-400'),
|
|
...color('base-content'),
|
|
...colorFocusContent('info'),
|
|
...colorFocusContent('success'),
|
|
...colorFocusContent('warning'),
|
|
...colorFocusContent('error'),
|
|
...color('link'),
|
|
...color('link-visited'),
|
|
},
|
|
fontFamily: {
|
|
sans: ['Helvetica', 'Arial', 'sans-serif', ...defaultTheme.fontFamily.sans],
|
|
},
|
|
animation: {
|
|
blink: 'blink 1s steps(2) infinite',
|
|
},
|
|
keyframes: {
|
|
blink: { '0%': { opacity: '0' } },
|
|
},
|
|
typography: () => {
|
|
const c = (name: string) => `rgb(var(--${name}))`;
|
|
return {
|
|
DEFAULT: {
|
|
css: {
|
|
'--tw-prose-body': c('base-content'),
|
|
'--tw-prose-headings': c('primary-focus'),
|
|
// '--tw-prose-lead': c('error'),
|
|
'--tw-prose-links': c('link'),
|
|
'--tw-prose-bold': c('base-content'),
|
|
'--tw-prose-counters': c('secondary-focus'),
|
|
'--tw-prose-bullets': c('secondary-focus'),
|
|
'--tw-prose-hr': c('primary'),
|
|
'--tw-prose-quotes': c('base-content'),
|
|
'--tw-prose-quote-borders': c('primary'),
|
|
// '--tw-prose-captions': c('error'),
|
|
'--tw-prose-code': c('accent-focus'),
|
|
'--tw-prose-pre-code': c('accent-focus'),
|
|
'--tw-prose-pre-bg': c('base-200'),
|
|
'--tw-prose-th-borders': c('base-400'),
|
|
'--tw-prose-td-borders': c('base-300'),
|
|
},
|
|
},
|
|
};
|
|
},
|
|
},
|
|
},
|
|
plugins: [typographyPlugin, formsPlugin, noscriptPlugin, ...themes],
|
|
} satisfies Config;
|