Projektarbeit-MYP/backend/tailwind.config.js

325 lines
11 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./templates/**/*.html",
"./static/**/*.js",
"./static/css/input.css"
],
darkMode: 'class',
theme: {
extend: {
// Erweiterte Container-Einstellungen für bessere Responsivität
container: {
center: true,
padding: {
DEFAULT: '1rem',
sm: '1.5rem',
lg: '2rem',
xl: '3rem',
'2xl': '4rem',
},
screens: {
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
'2xl': '1400px',
},
},
// Erweiterte Breakpoints für bessere Kontrolle
screens: {
'xs': '480px', // Extra small devices
'sm': '640px', // Small devices
'md': '768px', // Medium devices
'lg': '1024px', // Large devices
'xl': '1280px', // Extra large devices
'2xl': '1536px', // 2X large devices
'3xl': '1920px', // Ultra wide screens
// Custom breakpoints für spezielle Anwendungsfälle
'tablet': '768px',
'laptop': '1024px',
'desktop': '1280px',
'wide': '1536px',
// Orientierungs-spezifische Breakpoints
'landscape': {'raw': '(orientation: landscape)'},
'portrait': {'raw': '(orientation: portrait)'},
// Touch device detection
'touch': {'raw': '(hover: none) and (pointer: coarse)'},
'no-touch': {'raw': '(hover: hover) and (pointer: fine)'},
},
spacing: {
'72': '18rem',
'84': '21rem',
'96': '24rem',
'128': '32rem',
'144': '36rem',
'160': '40rem',
// Responsive spacing utilities
'safe-top': 'env(safe-area-inset-top)',
'safe-bottom': 'env(safe-area-inset-bottom)',
'safe-left': 'env(safe-area-inset-left)',
'safe-right': 'env(safe-area-inset-right)',
},
fontSize: {
// Responsive font sizes
'xs': ['0.75rem', { lineHeight: '1rem' }],
'sm': ['0.875rem', { lineHeight: '1.25rem' }],
'base': ['1rem', { lineHeight: '1.5rem' }],
'lg': ['1.125rem', { lineHeight: '1.75rem' }],
'xl': ['1.25rem', { lineHeight: '1.75rem' }],
'2xl': ['1.5rem', { lineHeight: '2rem' }],
'3xl': ['1.875rem', { lineHeight: '2.25rem' }],
'4xl': ['2.25rem', { lineHeight: '2.5rem' }],
'5xl': ['3rem', { lineHeight: '1' }],
'6xl': ['3.75rem', { lineHeight: '1' }],
'7xl': ['4.5rem', { lineHeight: '1' }],
'8xl': ['6rem', { lineHeight: '1' }],
'9xl': ['8rem', { lineHeight: '1' }],
// Mobile-optimized sizes
'mobile-xs': ['0.675rem', { lineHeight: '0.875rem' }],
'mobile-sm': ['0.8rem', { lineHeight: '1.1rem' }],
'mobile-base': ['0.925rem', { lineHeight: '1.4rem' }],
'mobile-lg': ['1.05rem', { lineHeight: '1.6rem' }],
},
colors: {
// Mercedes-Benz Corporate Colors
'mercedes': {
'black': '#000000',
'silver': '#C0C0C0',
'dark-gray': '#1a1a1a',
'light-gray': '#f5f5f5',
'platinum': '#E5E4E2',
'charcoal': '#36454F',
'steel': '#71797E'
},
// Dark Mode optimierte Farben - Verbessert
'dark': {
'bg': '#0f172a', // Dunkler Hintergrund
'bg-secondary': '#131c2e', // Sekundärer Hintergrund noch dunkler
'surface': '#1e293b',
'surface-hover': '#334155',
'card': '#1e293b', // Dunklere Kartenfarbe für besseren Kontrast
'card-hover': '#334155', // Dunklerer Hover-Zustand
'text': '#f8fafc',
'text-secondary': '#e2e8f0',
'text-muted': '#94a3b8',
'text-disabled': '#64748b',
'border': '#334155',
'border-light': '#475569',
'hover': '#334155', // Dunklerer Hover-Zustand
'focus': '#475569',
'accent': '#4f46e5'
},
// Light Mode optimierte Farben - Verbessert
'light': {
'bg': '#ffffff',
'bg-secondary': '#f8fafc',
'surface': '#f7fafc',
'surface-hover': '#edf2f7',
'card': '#ffffff',
'card-hover': '#f7fafc',
'text': '#1a202c',
'text-secondary': '#2d3748',
'text-muted': '#4a5568',
'text-disabled': '#a0aec0',
'border': '#e2e8f0',
'border-light': '#edf2f7',
'hover': '#f1f5f9',
'focus': '#e2e8f0',
'accent': '#3b82f6'
},
// Status Farben - Erweitert
'status': {
'online': '#10b981',
'offline': '#ef4444',
'warning': '#f59e0b',
'info': '#3b82f6',
'success': '#059669',
'error': '#dc2626',
'pending': '#8b5cf6',
'processing': '#06b6d4',
'unknown': '#6b7280'
},
// Printer Status Farben - Erweitert
'printer': {
'ready': '#10b981',
'busy': '#f59e0b',
'error': '#ef4444',
'offline': '#6b7280',
'maintenance': '#8b5cf6',
'initializing': '#06b6d4'
},
// Job Status Farben - Erweitert
'job': {
'queued': '#6b7280',
'printing': '#3b82f6',
'completed': '#10b981',
'failed': '#ef4444',
'cancelled': '#f59e0b',
'paused': '#8b5cf6',
'retrying': '#f97316'
},
// Accent Farben - Erweitert
'accent': {
'primary': '#3b82f6',
'secondary': '#8b5cf6',
'tertiary': '#06b6d4',
'quaternary': '#10b981',
'quinary': '#f97316'
},
// Gradient Farben - Erweitert
'gradient': {
'from-blue': '#3b82f6',
'to-purple': '#8b5cf6',
'from-green': '#10b981',
'to-blue': '#3b82f6',
'from-purple': '#8b5cf6',
'to-pink': '#ec4899',
'from-orange': '#f97316',
'to-red': '#ef4444'
}
},
typography: {
DEFAULT: {
css: {
'code::before': {
content: 'none',
},
'code::after': {
content: 'none',
},
},
},
},
boxShadow: {
'mercedes': '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
'card-dark': '0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2)',
// Responsive shadows
'mobile': '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
'tablet': '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
'desktop': '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
},
// Responsive border radius
borderRadius: {
'none': '0',
'sm': '0.125rem',
DEFAULT: '0.25rem',
'md': '0.375rem',
'lg': '0.5rem',
'xl': '0.75rem',
'2xl': '1rem',
'3xl': '1.5rem',
'full': '9999px',
// Mobile-optimized radius
'mobile': '0.375rem',
'tablet': '0.5rem',
'desktop': '0.75rem',
},
// Animation improvements
animation: {
'fade-in': 'fadeIn 0.5s ease-in-out',
'slide-up': 'slideUp 0.5s ease-out',
'slide-down': 'slideDown 0.5s ease-out',
'slide-left': 'slideLeft 0.5s ease-out',
'slide-right': 'slideRight 0.5s ease-out',
'scale-in': 'scaleIn 0.3s ease-out',
'bounce-soft': 'bounceSoft 0.6s ease-out',
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { transform: 'translateY(100%)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
slideDown: {
'0%': { transform: 'translateY(-100%)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
slideLeft: {
'0%': { transform: 'translateX(100%)', opacity: '0' },
'100%': { transform: 'translateX(0)', opacity: '1' },
},
slideRight: {
'0%': { transform: 'translateX(-100%)', opacity: '0' },
'100%': { transform: 'translateX(0)', opacity: '1' },
},
scaleIn: {
'0%': { transform: 'scale(0.9)', opacity: '0' },
'100%': { transform: 'scale(1)', opacity: '1' },
},
bounceSoft: {
'0%, 20%, 53%, 80%, 100%': { transform: 'translate3d(0,0,0)' },
'40%, 43%': { transform: 'translate3d(0,-15px,0)' },
'70%': { transform: 'translate3d(0,-7px,0)' },
'90%': { transform: 'translate3d(0,-2px,0)' },
},
},
// Responsive grid templates
gridTemplateColumns: {
'auto-fit-240': 'repeat(auto-fit, minmax(240px, 1fr))',
'auto-fit-280': 'repeat(auto-fit, minmax(280px, 1fr))',
'auto-fit-320': 'repeat(auto-fit, minmax(320px, 1fr))',
'auto-fill-240': 'repeat(auto-fill, minmax(240px, 1fr))',
'auto-fill-280': 'repeat(auto-fill, minmax(280px, 1fr))',
'auto-fill-320': 'repeat(auto-fill, minmax(320px, 1fr))',
},
},
},
plugins: [
// Plugin für erweiterte responsive Utilities
function({ addUtilities, theme }) {
const newUtilities = {
// Safe area utilities für mobile Geräte
'.pt-safe': {
'padding-top': 'env(safe-area-inset-top)',
},
'.pb-safe': {
'padding-bottom': 'env(safe-area-inset-bottom)',
},
'.pl-safe': {
'padding-left': 'env(safe-area-inset-left)',
},
'.pr-safe': {
'padding-right': 'env(safe-area-inset-right)',
},
'.p-safe': {
'padding-top': 'env(safe-area-inset-top)',
'padding-bottom': 'env(safe-area-inset-bottom)',
'padding-left': 'env(safe-area-inset-left)',
'padding-right': 'env(safe-area-inset-right)',
},
// Responsive text utilities
'.text-responsive': {
'font-size': 'clamp(0.875rem, 2.5vw, 1.125rem)',
'line-height': '1.5',
},
'.text-responsive-lg': {
'font-size': 'clamp(1.125rem, 3vw, 1.5rem)',
'line-height': '1.4',
},
'.text-responsive-xl': {
'font-size': 'clamp(1.5rem, 4vw, 2.25rem)',
'line-height': '1.3',
},
// Container query utilities
'.container-responsive': {
'container-type': 'inline-size',
},
// Touch-friendly targets
'.touch-target': {
'min-height': '44px',
'min-width': '44px',
},
'.touch-target-lg': {
'min-height': '48px',
'min-width': '48px',
},
}
addUtilities(newUtilities, ['responsive'])
}
],
}