Files
Nitro-V3/tailwind.config.js
T
Life 020db83870 Add golden glow for new badges and badge received toast notification
New unseen badges pulse with a gold glow instead of a flat green
background. When a badge is received, a bubble notification appears
with the badge image, name, and a "Wear" button that opens inventory.
2026-04-04 21:25:16 +02:00

192 lines
5.2 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
const {
generateShades
} = require('./css-utils/CSSColorUtils');
const colors = {
'toolbar': '#555555',
'card-header': '#1E7295',
'card-close': '#921911',
'card-tabs': '#185D79',
'card-border': '#283F5D',
'card-tab-item': '#B6BEC5',
'card-tab-item-active': '#DFDFDF',
'card-content-area': '#DFDFDF',
'card-grid-item': '#CDD3D9',
'card-grid-item-active': '#ECECEC',
'card-grid-item-border': '#B6BEC5',
'card-grid-item-border-active': '#FFFFFF',
'loading': '#393A85',
'muted': 'rgba(182, 190, 197)',
'blue': '#0d6efd',
'indigo': '#6610f2',
'pink': '#d63384',
'red': '#a81a12',
'orange': '#fd7e14',
'yellow': '#ffc107',
'green': '#00800b',
'teal': '#20c997',
'cyan': '#0dcaf0',
'gray': '#6c757d',
'gray-dark': '#343a40',
'gray-100': '#f8f9fa',
'gray-200': '#e9ecef',
'gray-300': '#dee2e6',
'gray-400': '#ced4da',
'gray-500': '#adb5bd',
'gray-600': '#6c757d',
'gray-700': '#495057',
'gray-800': '#343a40',
'gray-900': '#212529',
'primary': '#1E7295',
'secondary': '#185D79',
'success': '#00800b',
'info': '#0dcaf0',
'warning': '#ffc107',
'danger': '#a81a12',
'light': '#DFDFDF',
'dark': 'rgba(28, 28, 32, .9803921569)',
'light-dark': '#343a40',
'white': '#fff',
'black': '#000',
'muted': '#B6BEC5',
'purple': '#6f42c1',
'gainsboro': '#d9d9d9'
};
const boxShadow = {
'inner1px': 'inset 0 0 0 1px rgba(255,255,255,.3)',
'room-previewer': '-2px -2px rgba(0, 0, 0, 0.4), inset 3px 3px rgba(0, 0, 0, 0.2);'
};
module.exports = {
theme: {
extend: {
fontSize: {
base: '0.9rem',
sm: '0.7875rem',
xl: '1.25rem',
'2xl': '1.563rem',
'3xl': '1.953rem',
'4xl': '2.441rem',
'5xl': '3.052rem',
},
fontFamily: {
sans: ['Ubuntu'],
},
colors: generateShades(colors),
boxShadow,
backgroundImage: {
'button-gradient-gray': 'linear-gradient(to bottom, #e2e2e2 50%, #c8c8c8 50%)',
},
spacing: {
'card-header': '33px',
'card-tabs': '33px',
'navigator-w': '480px',
'navigator-h': '520px',
'inventory-w': '528px',
'inventory-h': '320px'
},
borderRadius: {
'3': '0.3rem',
},
zIndex: {
'toolbar': '',
'loading': '100',
'chat-zindex': '20'
},
dropShadow: {
'hover': '2px 2px 0 rgba(0,0,0,0.8)'
},
keyframes: {
pulseGlow: {
'0%, 100%': { boxShadow: '0 0 6px rgba(59,130,246,0.3)' },
'50%': { boxShadow: '0 0 14px rgba(59,130,246,0.6)' },
},
pulseGlowRed: {
'0%, 100%': { boxShadow: '0 0 6px rgba(239,68,68,0.3)' },
'50%': { boxShadow: '0 0 14px rgba(239,68,68,0.6)' },
},
dropSettle: {
'0%': { transform: 'scale(1.15)' },
'100%': { transform: 'scale(1)' },
},
pulseGlowGold: {
'0%, 100%': { boxShadow: '0 0 6px rgba(255,193,7,0.4)' },
'50%': { boxShadow: '0 0 14px rgba(255,193,7,0.7)' },
},
},
animation: {
'pulse-glow': 'pulseGlow 1.2s ease-in-out infinite',
'pulse-glow-red': 'pulseGlowRed 1.2s ease-in-out infinite',
'drop-settle': 'dropSettle 0.3s ease-out',
'pulse-glow-gold': 'pulseGlowGold 1.5s ease-in-out infinite',
},
},
},
safelist: [
'grid-cols-1',
'grid-cols-2',
'grid-cols-3',
'grid-cols-4',
'grid-cols-5',
'grid-cols-6',
'grid-cols-7',
'grid-cols-8',
'grid-cols-9',
'grid-cols-10',
'grid-cols-11',
'grid-cols-12',
'col-span-1',
'col-span-2',
'col-span-3',
'col-span-4',
'col-span-5',
'col-span-6',
'col-span-7',
'col-span-8',
'col-span-9',
'col-span-10',
'col-span-11',
'col-span-12',
'grid-cols-13',
'grid-cols-14',
'grid-rows-1',
'grid-rows-2',
'grid-rows-3',
'grid-rows-4',
'grid-rows-5',
'grid-rows-6',
'grid-rows-7',
'grid-rows-8',
'grid-rows-9',
'grid-rows-10',
'grid-rows-11',
'grid-rows-12',
'justify-end',
'items-end',
'animate-pulse-glow',
'animate-pulse-glow-red',
'animate-drop-settle',
'animate-pulse-glow-gold'
],
darkMode: 'class',
variants: {
extend: {
divideColor: ['group-hover'],
backgroundColor: ['group-focus'],
}
},
plugins: [
require('@tailwindcss/forms'),
],
content: [
'./index.html',
'./src/**/*.{html,js,jsx,ts,tsx}'
]
}