Files
jmap-webmail/tailwind.config.ts
T
Matthieu MALVACHE 40c7fa3649 feat: add UI/UX polish, templates settings, confirm dialog, welcome banner, and navigation rail
- Add ConfirmDialog component with promise-based useConfirmDialog hook
- Add WelcomeBanner onboarding component with localStorage persistence
- Add NavigationRail (desktop icon rail + mobile bottom tab bar)
- Polish login form (shake on error, TOTP slide, password visibility, session expired banner)
- Add inline form validation with shake animation in email composer and contacts
- Add empty state patterns for contacts (no data vs no search results)
- Improve toast system with undo action support and typed durations
- Add template settings tab to settings page
- Refactor sidebar (cleaner code, remove unused imports)
- Add WCAG AA reduced-motion, safe area insets, sr-only live region
- Add shake/slide animations in globals.css
- Update i18n for all 8 locales
2026-02-17 02:30:09 +01:00

47 lines
1.2 KiB
TypeScript

import type { Config } from "tailwindcss";
export default {
darkMode: 'class',
content: [
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
fontFamily: {
sans: [
"-apple-system",
"BlinkMacSystemFont",
"Inter",
"system-ui",
"sans-serif",
],
mono: ["JetBrains Mono", "monospace"],
},
animation: {
"fade-in": "fade-in 0.2s ease-out",
"slide-in": "slide-in 0.3s ease-out",
"shake": "shake 0.4s ease-in-out",
},
keyframes: {
"fade-in": {
"0%": { opacity: "0" },
"100%": { opacity: "1" },
},
"slide-in": {
"0%": { transform: "translateY(-10px)", opacity: "0" },
"100%": { transform: "translateY(0)", opacity: "1" },
},
"shake": {
"0%, 100%": { transform: "translateX(0)" },
"20%": { transform: "translateX(-4px)" },
"40%": { transform: "translateX(4px)" },
"60%": { transform: "translateX(-3px)" },
"80%": { transform: "translateX(3px)" },
},
},
},
},
plugins: [],
} satisfies Config;