diff --git a/src/app/globals.css b/src/app/globals.css index 5c98d487..775683b3 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,31 +1,105 @@ /* styles/globals.css */ + +/* =================================== + 1. IMPORT CSS LIBRARIES + =================================== */ +@import "@mantine/carousel/styles.css"; +@import "@mantine/dropzone/styles.css"; +@import "@mantine/charts/styles.css"; +@import "@mantine/dates/styles.css"; +@import "@mantine/tiptap/styles.css"; +@import "animate.css"; +@import "react-simple-toasts/dist/style.css"; +@import "react-simple-toasts/dist/theme/dark.css"; +@import "primereact/resources/themes/lara-light-blue/theme.css"; +@import "primereact/resources/primereact.min.css"; +@import "primeicons/primeicons.css"; + +/* =================================== + 2. FONT FACE - OPTIMIZED + =================================== */ @font-face { font-family: 'San Francisco'; src: url('/assets/fonts/font.otf') format('opentype'); font-weight: normal; font-style: normal; + font-display: swap; /* ✅ TAMBAHKAN INI - Penting untuk PageSpeed! */ } +/* =================================== + 3. RESET & BASE STYLES + =================================== */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + -webkit-text-size-adjust: 100%; /* Prevent font scaling in landscape */ + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; +} + +body { + margin: 0; + font-family: 'San Francisco', -apple-system, BlinkMacSystemFont, 'Segoe UI', + Roboto, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* =================================== + 4. GLASS EFFECTS - OPTIMIZED + =================================== */ .glass { background: rgba(255, 255, 255, 0.2); - -webkit-backdrop-filter: blur(40px); backdrop-filter: blur(40px); + -webkit-backdrop-filter: blur(40px); position: fixed; z-index: 50; width: 100%; height: 100vh; + will-change: transform; /* ✅ Hardware acceleration */ } .glass2 { background: rgba(255, 255, 255, 0.3); - -webkit-backdrop-filter: blur(40px); backdrop-filter: blur(40px); + -webkit-backdrop-filter: blur(40px); position: fixed; z-index: 1; + will-change: transform; /* ✅ Hardware acceleration */ } .glass3 { background: rgba(255, 255, 255, 0.3); - -webkit-backdrop-filter: blur(40px); backdrop-filter: blur(40px); + -webkit-backdrop-filter: blur(40px); + will-change: transform; /* ✅ Hardware acceleration */ } + +/* =================================== + 5. PERFORMANCE OPTIMIZATION + =================================== */ +img, +picture, +video, +canvas, +svg { + display: block; + max-width: 100%; + height: auto; +} + +/* Reduce motion for accessibility */ +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} \ No newline at end of file