Files
SlimeVR-Server/gui/tailwind.config.ts
lucas lelievre 2e1ec07b23 Session flightlist (#1407)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
Co-authored-by: Butterscotch! <bscotchvanilla@gmail.com>
Co-authored-by: Aed <145398159+Aed-1@users.noreply.github.com>
2025-12-02 14:49:45 +01:00

329 lines
9.6 KiB
TypeScript

import plugin from 'tailwindcss/plugin';
import forms from '@tailwindcss/forms';
import typography from '@tailwindcss/typography';
import gradient from 'tailwind-gradient-mask-image';
import type { Config } from 'tailwindcss';
import { transform } from 'typescript';
const colors = {
'blue-gray': {
100: '#ffffff',
200: '#78A4C6',
300: '#608AAB',
400: '#3D6381',
500: '#1A3D59',
600: '#112D43',
700: '#081E30',
800: '#00101C',
900: '#000509',
},
purple: {
100: '#BB8AE5',
200: '#9D5CD4',
500: '#65459A',
700: '#623B83',
900: '#2E2145',
},
'trans-blue': {
100: '#4D222B', // Dark text
200: '#1A6682', // Some lighter-ish text
300: '#095470', // Light-ish text
400: '#4F9FBD', // Button hover in some places
500: '#EEEEEE', // Darker trans white tracker list background
600: '#FFFFFF', // Trans white tracker list background and some buttons
700: '#F5A9B8', // Trans pink home background
800: '#5BCEFA', // Trans blue trans outer background
900: '#000509',
},
'trans-pink': {
100: '#B53A52', // Accent text
200: '#FCCAD4', // Lighter trans pink button
300: '#F7B7C4', // Somewhat lighter trans pink button
400: '#F7B7C4', // Somewhat lighter trans pink button
500: '#F5A9B8', // Trans pink buttons
700: '#FA91A6', // Darker trans pink button
900: '#F77C94', // Even darker trans pink home bottom
},
'green-background': {
100: '#ffffff',
200: '#6bce6b',
300: '#44c145',
400: '#2e8b2f',
500: '#1b521c',
600: '#143c14',
700: '#456d45',
800: '#071407',
900: '#020602',
},
'green-accent': {
100: '#68cd69',
200: '#39ab3a',
500: '#297a29',
700: '#246c24',
900: '#133913',
},
'yellow-background': {
100: '#ffffff',
200: '#cecc6b',
300: '#c1bf44',
400: '#8b892e',
500: '#52521b',
600: '#3c3c14',
700: '#27270d',
800: '#141407',
900: '#060602',
},
'yellow-accent': {
100: '#cdcb68',
200: '#aba939',
500: '#7a7929',
700: '#6c6b24',
900: '#393913',
},
'orange-background': {
100: '#ffffff',
200: '#ce916b',
300: '#c17444',
400: '#8b522e',
500: '#52311b',
600: '#3c2314',
700: '#27170d',
800: '#140c07',
900: '#060402',
},
'orange-accent': {
100: '#cd8f68',
200: '#ab6539',
500: '#7a4829',
700: '#6c4024',
900: '#392213',
},
'red-background': {
100: '#ffffff',
200: '#ce6b6b',
300: '#c14444',
400: '#8b2e2e',
500: '#521b1b',
600: '#3c1414',
700: '#270d0d',
800: '#140707',
900: '#060202',
},
'red-accent': {
100: '#cd6868',
200: '#ab3939',
500: '#7a2929',
700: '#6c2424',
900: '#391313',
},
'dark-background': {
100: '#ffffff',
200: '#9e9e9e',
300: '#858585',
400: '#5e5e5e',
500: '#3a3a3a',
600: '#2a2a2a',
700: '#1c1c1c',
800: '#0e0e0e',
900: '#040404',
},
'dark-accent': {
100: '#9e9e9e',
200: '#797979',
500: '#555555',
700: '#4c4c4c',
900: '#272727',
},
'light-background': {
100: '#000000',
200: '#616161',
300: '#7a7a7a',
400: '#a1a1a1',
500: '#c5c5c5',
600: '#d5d5d5',
700: '#e3e3e3',
800: '#f1f1f1',
900: '#fbfbfb',
},
'light-accent': {
100: '#616161',
200: '#868686',
500: '#aaaaaa',
700: '#b3b3b3',
900: '#d8d8d8',
},
asexual: {
100: '#000000',
200: '#A3A3A3',
300: '#FFFFFF',
400: '#800080',
},
};
const config = {
content: ['./src/**/*.{js,jsx,ts,tsx}'],
theme: {
screens: {
'mobile-settings': { raw: 'not (min-width: 900px)' },
nsmol: { raw: 'not (min-width: 525px)' },
smol: '525px',
mobile: { raw: 'not (min-width: 800px)' },
'xs-settings': '900px',
xs: '800px',
nsm: { raw: 'not (min-width: 900px)' },
sm: '900px',
md: '1100px',
nmd: { raw: 'not (min-width: 1100px)' },
'md-max': { raw: 'not (min-width: 1100px)' },
lg: '1300px',
xl: '1600px',
tall: { raw: '(min-height: 800px)' },
},
extend: {
colors: {
status: {
success: 'rgb(var(--success), <alpha-value>)',
warning: 'rgb(var(--warning), <alpha-value>)',
critical: 'rgb(var(--critical), <alpha-value>)',
special: 'rgb(var(--special), <alpha-value>)',
},
window: {
icon: 'rgb(var(--window-icon-stroke), <alpha-value>)',
},
...colors,
background: {
10: 'rgb(var(--background-10), <alpha-value>)',
20: 'rgb(var(--background-20), <alpha-value>)',
30: 'rgb(var(--background-30), <alpha-value>)',
40: 'rgb(var(--background-40), <alpha-value>)',
50: 'rgb(var(--background-50), <alpha-value>)',
60: 'rgb(var(--background-60), <alpha-value>)',
70: 'rgb(var(--background-70), <alpha-value>)',
80: 'rgb(var(--background-80), <alpha-value>)',
90: 'rgb(var(--background-90), <alpha-value>)',
},
'accent-background': {
10: 'rgb(var(--accent-background-10), <alpha-value>)',
20: 'rgb(var(--accent-background-20), <alpha-value>)',
30: 'rgb(var(--accent-background-30), <alpha-value>)',
40: 'rgb(var(--accent-background-40), <alpha-value>)',
50: 'rgb(var(--accent-background-50), <alpha-value>)',
},
},
fontSize: {
DEFAULT: 'calc(var(--font-size-standard) / 16)',
},
fontWeight: {
DEFAULT: '500',
},
color: {
DEFAULT: 'rgb(var(--default-color), <alpha-value>)',
},
keyframes: {
bounce: {
'0%, 100%': {
transform: 'translateY(0)',
'animation-timing-function': 'cubic-bezier(0, 0, 0.2, 1)',
},
'50%': {
transform: 'translateY(-25%)',
'animation-timing-function': 'cubic-bezier(0.8, 0, 1, 1)',
},
},
'timer-tick': {
"0%, 40%": {
transform: 'scale(1)',
},
"20%": {
transform: 'scale(1.3)',
},
},
'spin-ccw': {
'0%': {
transform: 'rotate(0deg)',
},
'100%': {
transform: 'rotate(-360deg)',
},
},
skiing: {
'0%, 100%': {
transform: 'rotate(0deg) translateX(0%) translateY(0%)',
},
'10%': {
transform: 'rotate(12deg) translateX(-5%) translateY(5%)',
},
'20%': {
transform: 'rotate(10deg) translateX(0%) translateY(0%)',
},
'30%': {
transform: 'rotate(12deg) translateX(5%) translateY(-5%)',
},
'40%': {
transform: 'rotate(10deg) translateX(0%) translateY(0%)',
},
'50%': {
transform: 'rotate(12deg) translateX(-5%) translateY(5%)',
},
'60%': {
transform: 'rotate(10deg) translateX(0%) translateY(0%)',
},
'70%': {
transform: 'rotate(12deg) translateX(5%) translateY(-5%)',
},
'80%': {
transform: 'rotate(10deg) translateX(0%) translateY(0%)',
},
'90%': {
transform: 'rotate(10deg) translateX(-5%) translateY(5%)',
},
},
},
backgroundImage: {
slime: `linear-gradient(135deg, ${colors.purple[100]} 50%, ${colors['blue-gray'][700]} 50% 100%)`,
'slime-green': `linear-gradient(135deg, ${colors['green-accent'][100]} 50%, ${colors['green-background'][700]} 50% 100%)`,
'slime-yellow': `linear-gradient(135deg, ${colors['yellow-accent'][100]} 50%, ${colors['yellow-background'][700]} 50% 100%)`,
'slime-orange': `linear-gradient(135deg, ${colors['orange-accent'][100]} 50%, ${colors['orange-background'][700]} 50% 100%)`,
'slime-red': `linear-gradient(135deg, ${colors['red-accent'][100]} 50%, ${colors['red-background'][700]} 50% 100%)`,
dark: `linear-gradient(135deg, ${colors['dark-accent'][100]} 50%, ${colors['dark-background'][700]} 50% 100%)`,
light: `linear-gradient(135deg, ${colors['light-accent'][100]} 50%, ${colors['light-background'][700]} 50% 100%)`,
'trans-flag': `linear-gradient(135deg, ${colors['trans-blue'][800]} 40%, ${colors['trans-blue'][700]} 40% 70%, ${colors['trans-blue'][600]} 70% 100%)`,
'asexual-flag': `linear-gradient(135deg, ${colors['asexual'][100]} 30%, ${colors['asexual'][200]} 30% 50%, ${colors['asexual'][300]} 50% 70%, ${colors['asexual'][400]} 70% 100%)`,
},
animation: {
'spin-ccw': 'spin-ccw 1s linear infinite',
'timer-tick': 'timer-tick 1s linear infinite',
skiing: 'skiing 1s linear infinite',
},
},
data: {
checked: 'checked=true',
},
},
plugins: [
forms,
gradient,
typography,
plugin(function ({ addUtilities }) {
const textConfig = (fontSize: any, fontWeight: any) => ({
fontSize,
fontWeight,
});
addUtilities({
'.text-main-title': textConfig('calc(var(--font-size-title) / 16)', 700),
'.text-section-title': textConfig('calc(var(--font-size-vr) / 16)', 700),
'.text-standard': textConfig('calc(var(--font-size-standard) / 16)', 500),
'.text-vr-accesible': textConfig('calc(var(--font-size-vr) / 16)', 500),
'.text-vr-accesible-bold': textConfig('calc(var(--font-size-vr) / 16)', 700),
'.text-standard-bold': textConfig('calc(var(--font-size-standard) / 16)', 700),
});
}),
plugin(function ({ addVariant }) {
addVariant('checked-hover', ['&:hover', '&[data-checked=true]']);
}),
],
} satisfies Config;
export default config;