@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,200..800;1,6..72,200..800&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; /* 隐藏数字输入框自带的上下箭头 */ @layer utilities { .no-spinner::-webkit-inner-spin-button, .no-spinner::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } .no-spinner { -moz-appearance: textfield; } } @layer base { :root { --background: 48 20% 97%; /* #F9F9F7 */ --foreground: 60 5% 10%; /* #1B1B18 */ --card: 48 20% 97%; --card-foreground: 60 5% 10%; --popover: 48 20% 97%; --popover-foreground: 60 5% 10%; --primary: 60 5% 10%; /* #1B1B18 - Claude Dark Charcoal */ --primary-foreground: 48 20% 97%; --secondary: 48 18% 90%; /* #F2F0E9 */ --secondary-foreground: 60 5% 10%; --muted: 60 2% 56%; /* #91918E */ --muted-foreground: 60 2% 40%; --accent: 48 10% 92%; /* Neutral/Parchment Accent */ --accent-foreground: 60 5% 10%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 20% 98%; --border: 48 10% 89%; /* #E6E6E3 */ --input: 48 10% 89%; --ring: 60 5% 10%; --radius: 0.75rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; --chart-3: 197 37% 24%; --chart-4: 43 74% 66%; --chart-5: 27 87% 67%; --sidebar-background: 48 20% 96%; --sidebar-foreground: 60 5% 25%; --sidebar-primary: 260 45% 52%; --sidebar-primary-foreground: 48 20% 97%; --sidebar-accent: 48 10% 92%; --sidebar-accent-foreground: 260 45% 52%; --sidebar-border: 48 10% 89%; --sidebar-ring: 260 45% 52%; } /* 通用滚动条样式 */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; border-radius: 4px; } /* hide vertical scrollbar */ /* ::-webkit-scrollbar-thumb:vertical { background: transparent; border-radius: 4px; transition: background-color 0.2s; } *:hover::-webkit-scrollbar-thumb:vertical { background: rgba(193, 193, 193, 0.5); } ::-webkit-scrollbar-thumb:vertical:hover { background: rgba(193, 193, 193, 0.8); } */ /* show horizontal scrollbar */ ::-webkit-scrollbar-thumb:horizontal { background: rgba(193, 193, 193, 0.5); border-radius: 4px; } ::-webkit-scrollbar-thumb:horizontal:hover { background: rgba(193, 193, 193, 0.8); } .dark { --background: 60 5% 10%; /* Dark Charcoal */ --foreground: 48 20% 97%; /* Off White text */ --card: 60 5% 12%; --card-foreground: 48 20% 97%; --popover: 60 5% 12%; --popover-foreground: 48 20% 97%; --primary: 48 20% 97%; /* Off White for primary buttons in dark mode or a light tint */ --primary-foreground: 60 5% 10%; --secondary: 60 5% 15%; --secondary-foreground: 48 20% 97%; --muted: 60 2% 40%; --muted-foreground: 60 2% 60%; --accent: 60 5% 15%; /* Dark accent */ --accent-foreground: 48 20% 97%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 20% 98%; --border: 60 5% 20%; --input: 60 5% 20%; --ring: 48 20% 97%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; --chart-4: 280 65% 60%; --chart-5: 340 75% 55%; --sidebar-background: 60 5% 8%; --sidebar-foreground: 48 20% 90%; --sidebar-primary: 260 60% 70%; --sidebar-primary-foreground: 60 5% 10%; --sidebar-accent: 60 5% 15%; --sidebar-accent-foreground: 60 5% 90%; --sidebar-border: 60 5% 15%; --sidebar-ring: 260 60% 70%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; font-feature-settings: "rlig" 1, "calt" 1; } body.workbench-body-lock { overflow-y: hidden; } /* Apply serif to all headings globally except in resume preview */ h1, h2, h3, h4, h5, h6 { @apply font-serif; } /* Reset headings in resume preview to inherit or use sans */ #resume-preview h1, #resume-preview h2, #resume-preview h3, #resume-preview h4, #resume-preview h5, #resume-preview h6, .resume-preview h1, .resume-preview h2, .resume-preview h3, .resume-preview h4, .resume-preview h5, .resume-preview h6 { font-family: inherit; } ::-moz-selection { @apply text-primary-foreground bg-primary; } /* Fix Chrome extension screenshot problem, no impact on this project */ img, svg { @apply inline-block; } } @keyframes blob { 0% { transform: translate(0px, 0px) scale(1); } 33% { transform: translate(30px, -50px) scale(1.1); } 66% { transform: translate(-20px, 20px) scale(0.9); } 100% { transform: translate(0px, 0px) scale(1); } } @keyframes tilt { 0%, 50%, 100% { transform: rotate(0deg); } 25% { transform: rotate(0.5deg); } 75% { transform: rotate(-0.5deg); } } @keyframes gradient-xy { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .animate-blob { animation: blob 7s infinite; } .animate-tilt { animation: tilt 10s infinite linear; } .animate-gradient-xy { animation: gradient-xy 15s ease infinite; } .animation-delay-2000 { animation-delay: 2s; } .animation-delay-4000 { animation-delay: 4s; } * { margin: 0; padding: 0; box-sizing: border-box; }