Files
gitlab-instance-0a899031_cn…/app/globals.css
2026-03-07 12:33:14 -06:00

228 lines
4.4 KiB
CSS

@import "tailwindcss";
:root {
--background: #fafafa;
--foreground: #111827;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}
body {
background: var(--background);
color: var(--foreground);
font-family: var(--font-geist-sans, system-ui), "PingFang SC",
"Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
html {
scroll-behavior: smooth;
}
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: #d1d5db;
border-radius: 3px;
}
/* ==================== Items Grid (mobile-first) ==================== */
.items-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-auto-rows: 180px;
gap: 8px;
padding: 8px;
}
@media (min-width: 640px) {
.items-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-auto-rows: 260px;
gap: 20px;
padding: 16px 20px;
}
}
@media (min-width: 1024px) {
.items-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
grid-auto-rows: 280px;
gap: 30px;
padding: 20px 40px;
}
}
@media (min-width: 1440px) {
.items-grid {
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 35px;
}
}
/* Pin right-items to the LAST explicit column */
.items-grid .right-item:nth-child(1) {
grid-column: -2 / -1;
grid-row: 1;
}
.items-grid .right-item:nth-child(2) {
grid-column: -2 / -1;
grid-row: 2;
}
.items-grid .right-item:nth-child(3) {
grid-column: -2 / -1;
grid-row: 3;
}
/* ==================== City Card ==================== */
.city-card {
height: 100%;
border-radius: 15px;
position: relative;
overflow: hidden;
cursor: pointer;
color: white;
box-sizing: border-box;
min-width: 0;
}
.city-card:hover {
animation: pulse 0.6s ease;
}
/* ==================== Right Item ==================== */
.right-item {
height: 100%;
border-radius: 15px;
position: relative;
overflow: hidden;
width: 100%;
min-width: 0;
box-sizing: border-box;
background: white;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.04);
}
.right-item:hover {
animation: pulse 0.6s ease;
}
.right-item-header {
width: 100%;
height: 38px;
font-size: 14px;
font-weight: 600;
letter-spacing: 0.5px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(90deg, #ff4d4f, #ff7a45);
color: #fff;
}
@media (min-width: 640px) {
.right-item-header {
height: 42px;
font-size: 15px;
}
}
/* ==================== Hover / Pulse Animation ==================== */
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.03);
}
100% {
transform: scale(1);
}
}
/* ==================== Hero Gradient Text ==================== */
@keyframes gradient-shift {
0%,
100% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
}
.hero-gradient-text {
background: linear-gradient(
135deg,
#f97316,
#ec4899,
#8b5cf6,
#3b82f6,
#f97316
);
background-size: 300% 300%;
animation: gradient-shift 6s ease infinite;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* ==================== Filter Buttons ==================== */
.filter-btn {
transition: all 0.15s ease;
}
.filter-btn:hover {
background: #f3f4f6;
}
.filter-btn.active {
background: #111827;
color: white;
}
.filter-btn.active:hover {
background: #1f2937;
}
/* ==================== Community Cards ==================== */
.community-card {
background: white;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.community-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.04);
}
/* ==================== Utilities ==================== */
.hide-scrollbar::-webkit-scrollbar {
display: none;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
.line-clamp-1 {
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-2 {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}