AwsLinker/app/globals.css

214 lines
4.4 KiB
CSS
Raw Normal View History

2025-09-16 17:19:58 +08:00
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
}
.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground min-h-screen antialiased;
font-feature-settings: "rlig" 1, "calt" 1;
}
}
/* Custom styles */
.container {
@apply mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl;
}
/* Smooth scrolling */
html {
scroll-behavior: smooth;
}
/* Focus styles */
*:focus-visible {
@apply outline-none ring-2 ring-primary ring-offset-2;
}
/* Selection styles */
::selection {
@apply bg-primary/20 text-primary;
}
/* Scrollbar styles */
::-webkit-scrollbar {
@apply w-2;
}
::-webkit-scrollbar-track {
@apply bg-muted;
}
::-webkit-scrollbar-thumb {
@apply bg-muted-foreground/50 rounded-full hover:bg-muted-foreground/70;
}
/* Typography */
h1, h2, h3, h4, h5, h6 {
@apply font-semibold tracking-tight;
}
h1 {
@apply text-4xl sm:text-5xl md:text-6xl;
}
h2 {
@apply text-3xl sm:text-4xl md:text-5xl;
}
h3 {
@apply text-2xl sm:text-3xl md:text-4xl;
}
h4 {
@apply text-xl sm:text-2xl md:text-3xl;
}
h5 {
@apply text-lg sm:text-xl md:text-2xl;
}
h6 {
@apply text-base sm:text-lg md:text-xl;
}
/* Link styles */
a {
@apply text-primary hover:text-primary/80 transition-colors;
}
/* Button styles */
button, .button {
@apply inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors
focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
disabled:opacity-50 disabled:pointer-events-none ring-offset-background;
}
/* Form styles */
input, textarea, select {
@apply rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background
file:border-0 file:bg-transparent file:text-sm file:font-medium
placeholder:text-muted-foreground
focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
disabled:cursor-not-allowed disabled:opacity-50;
}
/* Card styles */
.card {
@apply rounded-lg border bg-card text-card-foreground shadow-sm;
}
/* Badge styles */
.badge {
@apply inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors
focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2;
}
/* Animation utilities */
.animate-in {
animation: animate-in 0.5s ease-out;
}
@keyframes animate-in {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Loading spinner */
.spinner {
@apply animate-spin rounded-full border-2 border-current border-t-transparent;
}
/* Responsive utilities */
.responsive-container {
@apply container mx-auto px-4 sm:px-6 lg:px-8;
}
.responsive-grid {
@apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 sm:gap-6 lg:gap-8;
}
/* Accessibility */
.sr-only {
@apply absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0;
}
/* Print styles */
@media print {
.no-print {
display: none;
}
}