🔧 Aktualisierung der tailwind.config.js zur Verbesserung der CSS-Inhalte und Optimierung der Kiosk-Modus-Styles. Entfernen nicht benötigter CSS-Dateien und Anpassungen in input.css für eine verbesserte Benutzeroberfläche. Hinzufügen neuer Logeinträge zur Protokollierung von Systeminitialisierungen und Fehlerbehandlungen. 📈
This commit is contained in:
@ -2,193 +2,324 @@
|
||||
module.exports = {
|
||||
content: [
|
||||
"./templates/**/*.html",
|
||||
"./static/js/**/*.js",
|
||||
"./static/css/**/*.css",
|
||||
"./blueprints/**/*.py",
|
||||
"./app.py",
|
||||
"./models.py",
|
||||
"./utils/**/*.py"
|
||||
"./static/**/*.js",
|
||||
"./static/css/input.css"
|
||||
],
|
||||
darkMode: 'class',
|
||||
theme: {
|
||||
// Reduzierte Farbpalette
|
||||
colors: {
|
||||
transparent: 'transparent',
|
||||
current: 'currentColor',
|
||||
white: '#ffffff',
|
||||
black: '#000000',
|
||||
primary: '#0073ce',
|
||||
'primary-dark': '#005a9f',
|
||||
gray: {
|
||||
50: '#fafbfc',
|
||||
100: '#f3f5f7',
|
||||
200: '#e5e7eb',
|
||||
300: '#d1d5db',
|
||||
400: '#9ca3af',
|
||||
500: '#6b7280',
|
||||
600: '#4b5563',
|
||||
700: '#374151',
|
||||
800: '#1f2937',
|
||||
900: '#111827',
|
||||
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',
|
||||
},
|
||||
},
|
||||
blue: {
|
||||
500: '#0073ce',
|
||||
600: '#005a9f',
|
||||
// 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)'},
|
||||
},
|
||||
green: {
|
||||
100: '#d1fae5',
|
||||
600: '#065f46',
|
||||
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)',
|
||||
},
|
||||
red: {
|
||||
100: '#fee2e2',
|
||||
600: '#991b1b',
|
||||
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))',
|
||||
},
|
||||
},
|
||||
|
||||
// Reduzierte Spacing-Skala
|
||||
spacing: {
|
||||
'0': '0',
|
||||
'1': '0.25rem',
|
||||
'2': '0.5rem',
|
||||
'3': '0.75rem',
|
||||
'4': '1rem',
|
||||
'5': '1.25rem',
|
||||
'6': '1.5rem',
|
||||
'8': '2rem',
|
||||
'10': '2.5rem',
|
||||
'12': '3rem',
|
||||
'16': '4rem',
|
||||
'20': '5rem',
|
||||
},
|
||||
|
||||
// Reduzierte Font-Größen
|
||||
fontSize: {
|
||||
'xs': '0.75rem',
|
||||
'sm': '0.875rem',
|
||||
'base': '1rem',
|
||||
'lg': '1.125rem',
|
||||
'xl': '1.25rem',
|
||||
'2xl': '1.5rem',
|
||||
'3xl': '1.875rem',
|
||||
},
|
||||
|
||||
// Minimale Border-Radius
|
||||
borderRadius: {
|
||||
'none': '0',
|
||||
'sm': '2px',
|
||||
'DEFAULT': '6px',
|
||||
'lg': '8px',
|
||||
'xl': '12px',
|
||||
'full': '9999px',
|
||||
},
|
||||
|
||||
// Reduzierte Schatten
|
||||
boxShadow: {
|
||||
'sm': '0 2px 4px rgba(0,0,0,0.05)',
|
||||
'DEFAULT': '0 2px 4px rgba(0,0,0,0.05)',
|
||||
'lg': '0 4px 8px rgba(0,0,0,0.1)',
|
||||
},
|
||||
|
||||
// Minimale Transitions
|
||||
transitionDuration: {
|
||||
'75': '75ms',
|
||||
'100': '100ms',
|
||||
'150': '150ms',
|
||||
'200': '200ms',
|
||||
},
|
||||
|
||||
extend: {}
|
||||
},
|
||||
|
||||
// Deaktivierte Utilities für bessere Performance
|
||||
corePlugins: {
|
||||
// Nicht benötigte Features deaktivieren
|
||||
animation: false, // Animationen werden manuell gemacht
|
||||
backdropBlur: false, // Nicht für Kiosk benötigt
|
||||
backdropBrightness: false,
|
||||
backdropContrast: false,
|
||||
backdropFilter: false,
|
||||
backdropGrayscale: false,
|
||||
backdropHueRotate: false,
|
||||
backdropInvert: false,
|
||||
backdropOpacity: false,
|
||||
backdropSaturate: false,
|
||||
backdropSepia: false,
|
||||
blur: false,
|
||||
brightness: false,
|
||||
contrast: false,
|
||||
dropShadow: false,
|
||||
filter: false,
|
||||
grayscale: false,
|
||||
hueRotate: false,
|
||||
invert: false,
|
||||
saturate: false,
|
||||
sepia: false,
|
||||
|
||||
// Touch-spezifische Features deaktivieren
|
||||
touchAction: false,
|
||||
|
||||
// Nicht benötigte Layout-Features
|
||||
aspectRatio: false,
|
||||
backdropFilter: false,
|
||||
|
||||
// Reduzierte Transform-Features
|
||||
scale: false,
|
||||
skew: false,
|
||||
transformOrigin: false,
|
||||
},
|
||||
|
||||
// Kiosk-spezifische Plugins deaktivieren
|
||||
plugins: [],
|
||||
|
||||
// Aggressive Purge-Konfiguration
|
||||
purge: {
|
||||
enabled: true,
|
||||
content: [
|
||||
'./templates/**/*.html',
|
||||
'./static/js/**/*.js',
|
||||
],
|
||||
// Aggressive Purging
|
||||
options: {
|
||||
safelist: [
|
||||
// Nur essenzielle Klassen behalten
|
||||
'container',
|
||||
'flex',
|
||||
'grid',
|
||||
'hidden',
|
||||
'block',
|
||||
'inline',
|
||||
'w-full',
|
||||
'h-full',
|
||||
'text-center',
|
||||
'font-bold',
|
||||
'text-primary',
|
||||
'bg-white',
|
||||
'border',
|
||||
'rounded',
|
||||
'p-4',
|
||||
'm-4',
|
||||
'btn',
|
||||
'card',
|
||||
'nav',
|
||||
'header',
|
||||
'status-online',
|
||||
'status-offline',
|
||||
'status-printing',
|
||||
],
|
||||
// Dynamische Klassen-Erkennung
|
||||
defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || [],
|
||||
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'])
|
||||
}
|
||||
},
|
||||
|
||||
// Performance-Optimierungen
|
||||
future: {
|
||||
removeDeprecatedGapUtilities: true,
|
||||
purgeLayersByDefault: true,
|
||||
},
|
||||
|
||||
// Experimental Features für bessere Performance
|
||||
experimental: {
|
||||
optimizeUniversalDefaults: true,
|
||||
},
|
||||
],
|
||||
}
|
Reference in New Issue
Block a user