Move the 16px font-size rule outside @layer base and scope it to iOS via @supports (-webkit-touch-callout: none) so it takes priority over Tailwind utility classes without affecting desktop rendering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
184 lines
3.7 KiB
CSS
184 lines
3.7 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
html,
|
|
body {
|
|
overscroll-behavior: none;
|
|
}
|
|
|
|
/* Bloque le zoom partout sauf reader */
|
|
body.no-pinch-zoom,
|
|
body.no-pinch-zoom * {
|
|
touch-action: pan-x pan-y;
|
|
}
|
|
|
|
/* Ajout des règles pour gérer le safe-area-inset sur iOS
|
|
@supports (padding-top: env(safe-area-inset-top)) {
|
|
body {
|
|
padding-top: env(safe-area-inset-top);
|
|
}
|
|
|
|
header.sticky {
|
|
padding-top: env(safe-area-inset-top);
|
|
height: calc(3.5rem + env(safe-area-inset-top));
|
|
}
|
|
} */
|
|
|
|
@layer base {
|
|
:root {
|
|
--background: 36 33% 97%;
|
|
--background-rgb: 249, 246, 241;
|
|
--foreground: 222 33% 15%;
|
|
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 222 33% 15%;
|
|
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 222 33% 15%;
|
|
|
|
--primary: 198 78% 37%;
|
|
--primary-foreground: 210 40% 98%;
|
|
|
|
--secondary: 36 30% 92%;
|
|
--secondary-foreground: 222 33% 15%;
|
|
|
|
--muted: 36 24% 90%;
|
|
--muted-foreground: 220 13% 40%;
|
|
|
|
--accent: 198 52% 90%;
|
|
--accent-foreground: 222 33% 15%;
|
|
|
|
--destructive: 2 72% 48%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
|
|
--border: 32 18% 84%;
|
|
--input: 32 18% 84%;
|
|
--ring: 198 78% 37%;
|
|
|
|
--radius: 0.75rem;
|
|
|
|
--surface-1: 0 0% 100%;
|
|
--surface-2: 34 27% 94%;
|
|
--elevation-1: 0 1px 2px 0 rgb(23 32 46 / 0.06);
|
|
--elevation-2: 0 8px 24px -8px rgb(23 32 46 / 0.18);
|
|
|
|
--font-ui: "Avenir Next", "Segoe UI", "Noto Sans", sans-serif;
|
|
--font-display: "Baskerville", "Times New Roman", serif;
|
|
--duration-fast: 120ms;
|
|
--duration-base: 200ms;
|
|
--duration-slow: 320ms;
|
|
--ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
}
|
|
|
|
.dark {
|
|
--background: 222 35% 10%;
|
|
--background-rgb: 17, 24, 38;
|
|
--foreground: 38 20% 92%;
|
|
|
|
--card: 221 31% 13%;
|
|
--card-foreground: 38 20% 92%;
|
|
|
|
--popover: 221 31% 13%;
|
|
--popover-foreground: 38 20% 92%;
|
|
|
|
--primary: 194 76% 62%;
|
|
--primary-foreground: 220 39% 11%;
|
|
|
|
--secondary: 221 22% 20%;
|
|
--secondary-foreground: 38 20% 92%;
|
|
|
|
--muted: 220 17% 24%;
|
|
--muted-foreground: 218 17% 72%;
|
|
|
|
--accent: 210 34% 24%;
|
|
--accent-foreground: 38 20% 92%;
|
|
|
|
--destructive: 2 76% 58%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
|
|
--border: 219 18% 25%;
|
|
--input: 219 18% 25%;
|
|
--ring: 194 76% 62%;
|
|
|
|
--surface-1: 221 31% 13%;
|
|
--surface-2: 221 24% 17%;
|
|
--elevation-1: 0 1px 2px 0 rgb(2 8 18 / 0.35);
|
|
--elevation-2: 0 12px 30px -12px rgb(2 8 18 / 0.55);
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;
|
|
}
|
|
|
|
body {
|
|
@apply bg-background text-foreground antialiased;
|
|
font-family: var(--font-ui);
|
|
}
|
|
|
|
}
|
|
|
|
/* Empêche le zoom automatique iOS sur les inputs (hors @layer pour surcharger text-sm) */
|
|
@supports (-webkit-touch-callout: none) {
|
|
input,
|
|
textarea,
|
|
select {
|
|
font-size: 16px !important;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.hide-scrollbar {
|
|
-ms-overflow-style: none; /* IE and Edge */
|
|
scrollbar-width: none; /* Firefox */
|
|
}
|
|
.hide-scrollbar::-webkit-scrollbar {
|
|
display: none; /* Chrome, Safari and Opera */
|
|
}
|
|
|
|
/* Classe utilitaire pour le padding-top avec safe-area-inset */
|
|
.pt-safe {
|
|
padding-top: env(safe-area-inset-top, 0);
|
|
}
|
|
|
|
/* Glassmorphism utilities */
|
|
.glass {
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
}
|
|
|
|
.glass-strong {
|
|
backdrop-filter: blur(16px);
|
|
-webkit-backdrop-filter: blur(16px);
|
|
}
|
|
|
|
/* Fade-in animation */
|
|
@keyframes fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.animate-fade-in {
|
|
animation: fade-in 0.3s ease-in forwards;
|
|
}
|
|
|
|
@keyframes loader-slide {
|
|
0% {
|
|
transform: translateX(-120%);
|
|
}
|
|
100% {
|
|
transform: translateX(320%);
|
|
}
|
|
}
|
|
|
|
.animate-loader-slide {
|
|
animation: loader-slide 1.25s ease-in-out infinite;
|
|
}
|
|
}
|