mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-04-03 07:01:38 +00:00
302 lines
8.7 KiB
JavaScript
302 lines
8.7 KiB
JavaScript
const path = require('path');
|
|
const colors = require('tailwindcss/colors');
|
|
const defaultTheme = require('tailwindcss/defaultTheme');
|
|
const generatePalette = require(
|
|
path.resolve(__dirname, 'src/@fuse/tailwind/utils/generate-palette')
|
|
);
|
|
|
|
/**
|
|
* Custom palettes
|
|
*
|
|
* Uses the generatePalette helper method to generate
|
|
* Tailwind-like color palettes automatically
|
|
*/
|
|
const customPalettes = {
|
|
brand: generatePalette('#2196F3'),
|
|
};
|
|
|
|
/**
|
|
* Themes
|
|
*/
|
|
const themes = {
|
|
// Default theme is required for theming system to work correctly!
|
|
default: {
|
|
primary: {
|
|
...colors.indigo,
|
|
DEFAULT: colors.indigo[600],
|
|
},
|
|
accent: {
|
|
...colors.slate,
|
|
DEFAULT: colors.slate[800],
|
|
},
|
|
warn: {
|
|
...colors.red,
|
|
DEFAULT: colors.red[600],
|
|
},
|
|
'on-warn': {
|
|
500: colors.red['50'],
|
|
},
|
|
},
|
|
// Rest of the themes will use the 'default' as the base
|
|
// theme and will extend it with their given configuration.
|
|
brand: {
|
|
primary: customPalettes.brand,
|
|
},
|
|
teal: {
|
|
primary: {
|
|
...colors.teal,
|
|
DEFAULT: colors.teal[600],
|
|
},
|
|
},
|
|
rose: {
|
|
primary: colors.rose,
|
|
},
|
|
purple: {
|
|
primary: {
|
|
...colors.purple,
|
|
DEFAULT: colors.purple[600],
|
|
},
|
|
},
|
|
amber: {
|
|
primary: colors.amber,
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Tailwind configuration
|
|
*/
|
|
const config = {
|
|
darkMode: ['selector', '.dark'],
|
|
content: ['./src/**/*.{html,scss,ts}'],
|
|
important: true,
|
|
theme: {
|
|
fontSize: {
|
|
xs: '0.625rem',
|
|
sm: '0.75rem',
|
|
md: '0.8125rem',
|
|
base: '0.875rem',
|
|
lg: '1rem',
|
|
xl: '1.125rem',
|
|
'2xl': '1.25rem',
|
|
'3xl': '1.5rem',
|
|
'4xl': '2rem',
|
|
'5xl': '2.25rem',
|
|
'6xl': '2.5rem',
|
|
'7xl': '3rem',
|
|
'8xl': '4rem',
|
|
'9xl': '6rem',
|
|
'10xl': '8rem',
|
|
},
|
|
screens: {
|
|
sm: '600px',
|
|
md: '960px',
|
|
lg: '1280px',
|
|
xl: '1440px',
|
|
},
|
|
extend: {
|
|
animation: {
|
|
'spin-slow': 'spin 3s linear infinite',
|
|
},
|
|
colors: {
|
|
gray: colors.slate,
|
|
},
|
|
flex: {
|
|
0: '0 0 auto',
|
|
},
|
|
fontFamily: {
|
|
sans: `"Inter var", ${defaultTheme.fontFamily.sans.join(',')}`,
|
|
mono: `"IBM Plex Mono", ${defaultTheme.fontFamily.mono.join(',')}`,
|
|
},
|
|
opacity: {
|
|
12: '0.12',
|
|
38: '0.38',
|
|
87: '0.87',
|
|
},
|
|
rotate: {
|
|
'-270': '270deg',
|
|
15: '15deg',
|
|
30: '30deg',
|
|
60: '60deg',
|
|
270: '270deg',
|
|
},
|
|
scale: {
|
|
'-1': '-1',
|
|
},
|
|
zIndex: {
|
|
'-1': -1,
|
|
49: 49,
|
|
60: 60,
|
|
70: 70,
|
|
80: 80,
|
|
90: 90,
|
|
99: 99,
|
|
999: 999,
|
|
9999: 9999,
|
|
99999: 99999,
|
|
},
|
|
spacing: {
|
|
13: '3.25rem',
|
|
15: '3.75rem',
|
|
18: '4.5rem',
|
|
22: '5.5rem',
|
|
26: '6.5rem',
|
|
30: '7.5rem',
|
|
50: '12.5rem',
|
|
90: '22.5rem',
|
|
|
|
// Bigger values
|
|
100: '25rem',
|
|
120: '30rem',
|
|
128: '32rem',
|
|
140: '35rem',
|
|
160: '40rem',
|
|
180: '45rem',
|
|
192: '48rem',
|
|
200: '50rem',
|
|
240: '60rem',
|
|
256: '64rem',
|
|
280: '70rem',
|
|
320: '80rem',
|
|
360: '90rem',
|
|
400: '100rem',
|
|
480: '120rem',
|
|
|
|
// Fractional values
|
|
'1/2': '50%',
|
|
'1/3': '33.333333%',
|
|
'2/3': '66.666667%',
|
|
'1/4': '25%',
|
|
'2/4': '50%',
|
|
'3/4': '75%',
|
|
},
|
|
minHeight: ({ theme }) => ({
|
|
...theme('spacing'),
|
|
}),
|
|
maxHeight: {
|
|
none: 'none',
|
|
},
|
|
minWidth: ({ theme }) => ({
|
|
...theme('spacing'),
|
|
screen: '100vw',
|
|
}),
|
|
maxWidth: ({ theme }) => ({
|
|
...theme('spacing'),
|
|
screen: '100vw',
|
|
}),
|
|
transitionDuration: {
|
|
400: '400ms',
|
|
},
|
|
transitionTimingFunction: {
|
|
drawer: 'cubic-bezier(0.25, 0.8, 0.25, 1)',
|
|
},
|
|
|
|
// @tailwindcss/typography
|
|
typography: ({ theme }) => ({
|
|
DEFAULT: {
|
|
css: {
|
|
color: 'var(--fuse-text-default)',
|
|
'[class~="lead"]': {
|
|
color: 'var(--fuse-text-secondary)',
|
|
},
|
|
a: {
|
|
color: 'var(--fuse-primary-500)',
|
|
},
|
|
strong: {
|
|
color: 'var(--fuse-text-default)',
|
|
},
|
|
'ol > li::before': {
|
|
color: 'var(--fuse-text-secondary)',
|
|
},
|
|
'ul > li::before': {
|
|
backgroundColor: 'var(--fuse-text-hint)',
|
|
},
|
|
hr: {
|
|
borderColor: 'var(--fuse-border)',
|
|
},
|
|
blockquote: {
|
|
color: 'var(--fuse-text-default)',
|
|
borderLeftColor: 'var(--fuse-border)',
|
|
},
|
|
h1: {
|
|
color: 'var(--fuse-text-default)',
|
|
},
|
|
h2: {
|
|
color: 'var(--fuse-text-default)',
|
|
},
|
|
h3: {
|
|
color: 'var(--fuse-text-default)',
|
|
},
|
|
h4: {
|
|
color: 'var(--fuse-text-default)',
|
|
},
|
|
'figure figcaption': {
|
|
color: 'var(--fuse-text-secondary)',
|
|
},
|
|
code: {
|
|
color: 'var(--fuse-text-default)',
|
|
fontWeight: '500',
|
|
},
|
|
'a code': {
|
|
color: 'var(--fuse-primary)',
|
|
},
|
|
pre: {
|
|
color: theme('colors.white'),
|
|
backgroundColor: theme('colors.gray.800'),
|
|
},
|
|
thead: {
|
|
color: 'var(--fuse-text-default)',
|
|
borderBottomColor: 'var(--fuse-border)',
|
|
},
|
|
'tbody tr': {
|
|
borderBottomColor: 'var(--fuse-border)',
|
|
},
|
|
'ol[type="A" s]': false,
|
|
'ol[type="a" s]': false,
|
|
'ol[type="I" s]': false,
|
|
'ol[type="i" s]': false,
|
|
},
|
|
},
|
|
sm: {
|
|
css: {
|
|
code: {
|
|
fontSize: '1em',
|
|
},
|
|
pre: {
|
|
fontSize: '1em',
|
|
},
|
|
table: {
|
|
fontSize: '1em',
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
corePlugins: {
|
|
appearance: false,
|
|
container: false,
|
|
float: false,
|
|
clear: false,
|
|
placeholderColor: false,
|
|
placeholderOpacity: false,
|
|
verticalAlign: false,
|
|
},
|
|
plugins: [
|
|
// Fuse - Tailwind plugins
|
|
require(
|
|
path.resolve(__dirname, 'src/@fuse/tailwind/plugins/utilities')
|
|
),
|
|
require(
|
|
path.resolve(__dirname, 'src/@fuse/tailwind/plugins/icon-size')
|
|
),
|
|
require(path.resolve(__dirname, 'src/@fuse/tailwind/plugins/theming'))({
|
|
themes,
|
|
}),
|
|
|
|
// Other third party and/or custom plugins
|
|
require('@tailwindcss/typography')({ modifiers: ['sm', 'lg'] }),
|
|
],
|
|
};
|
|
|
|
module.exports = config;
|