diff --git a/styles/globals.css b/styles/globals.css index 39e0a18..b64a486 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -1,126 +1,206 @@ - - - - - - Geolocation and Weather Info +@tailwind base; +@tailwind components; +@tailwind utilities; - - +@layer base { + :root { + /* 全局颜色变量 */ + --background: 0 0% 100%; + --foreground: 20 14.3% 4.1%; + --card: 0 0% 100%; + --card-foreground: 20 14.3% 4.1%; + --popover: 0 0% 100%; + --popover-foreground: 20 14.3% 4.1%; + --primary: 24 9.8% 10%; + --primary-foreground: 60 9.1% 97.8%; + --secondary: 60 4.8% 95.9%; + --secondary-foreground: 24 9.8% 10%; + --muted: 60 4.8% 95.9%; + --muted-foreground: 25 5.3% 44.7%; + --accent: 60 4.8% 95.9%; + --accent-foreground: 24 9.8% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 60 9.1% 97.8%; + --border: 20 5.9% 90%; + --input: 20 5.9% 90%; + --ring: 20 14.3% 4.1%; + --radius: 1rem; - - - -
- -

Geolocation and Weather Info

+@media (max-width: 640px) { + /* 移动端容器样式 */ + .container { + @apply px-4; + } +} - -

当前温度:25°C,天气:晴

+/* 选中文本样式 */ +::selection { + @apply bg-stone-300 dark:bg-stone-800; +} - -
+/* Hamster 加载动画 */ +.hamster-loading-wrapper { + --size: 12px; + height: var(--size); + width: var(--size); + inset: 0; + z-index: 10; +} - - 国旗 -
+.hamster-loading-wrapper[data-visible="false"] { + transform-origin: center; + animation: hamster-fade-out 0.2s ease forwards; +} - - - - +.hamster-spinner { + position: relative; + top: 50%; + left: 50%; + height: var(--size); + width: var(--size); +} + +.hamster-loading-bar { + --gray11: hsl(0, 0%, 43.5%); + animation: hamster-spin 0.8s linear infinite; + background: var(--gray11); + border-radius: 6px; + height: 13%; + left: -10%; + position: absolute; + top: -3.9%; + width: 30%; +} + +.hamster-loading-bar:nth-child(n) { + animation-delay: calc((n - 1) * -0.1s); + transform: rotate(calc((n - 1) * 45deg)) translate(120%); +} + +/* 动画 */ +@keyframes hamster-fade-in { + 0% { + opacity: 0; + transform: scale(0.8); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +@keyframes hamster-fade-out { + 0% { + opacity: 1; + transform: scale(1); + } + 100% { + opacity: 0; + transform: scale(0.8); + } +} + +@keyframes hamster-spin { + 0% { + opacity: 1; + } + 100% { + opacity: 0.15; + } +} + +/* 隐藏滚动条 */ +.scrollbar-hidden { + @apply scrollbar-none; +} + +@layer utilities { + .scrollbar-none { + scrollbar-width: none; /* Firefox */ + } + + .scrollbar-none::-webkit-scrollbar { + display: none; /* Chrome, Safari 和 Opera */ + } +}