Files
leonapp/styles.css
Leonmmcoset 5ff5b53ed4 refactor(UI): 移除卡片图片并添加骨架屏动画
移除多个页面中的默认卡片图片以简化UI
在评分图表区域添加骨架屏加载动画,提升用户体验
2025-07-07 19:29:09 +08:00

158 lines
3.2 KiB
CSS

:root {
--primary-color: #0078d4;
--secondary-color: #f3f2f1;
--text-color: #333333;
--border-radius: 4px;
--card-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
--card-shadow-hover: 0 12px 30px rgba(0, 0, 0, 0.12);
}
.age-rating-description {
margin: 20px 0;
padding: 15px;
background-color: #f8f9fa;
border-left: 4px solid #0d6efd;
border-radius: 4px;
}
.age-rating-description h4 {
margin-top: 0;
color: #0d6efd;
font-size: 1.2rem;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: var(--text-color);
background-color: #faf9f8;
overflow-x: hidden;
padding-top: 56px;
}
/* AppStore风格入场动画 */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.blur-bg {
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
background-color: rgba(255, 255, 255, 0.7);
border-radius: var(--border-radius);
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.card {
border: none;
border-radius: 16px;
overflow: hidden;
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
box-shadow: var(--card-shadow);
animation: fadeInUp 0.6s ease-out forwards;
opacity: 0;
}
/* 卡片交错动画延迟 */
.card:nth-child(2n) {
animation-delay: 0.1s;
}
.card:nth-child(3n) {
animation-delay: 0.2s;
}
.card:hover {
transform: translateY(-8px) scale(1.02);
box-shadow: var(--card-shadow-hover);
z-index: 10;
}
.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
border-radius: 20px;
transition: all 0.3s ease;
transform: translateZ(0);
}
.btn-primary:hover {
background-color: #005a9e;
border-color: #005a9e;
transform: translateY(-2px);
}
.btn-primary:active {
transform: translateY(1px) scale(0.98);
}
.navbar {
padding: 0.75rem 1rem;
transition: background-color 0.3s ease, box-shadow 0.3s ease;
position: fixed;
top: 0;
width: 100%;
z-index: 1030;
}
.navbar.scrolled {
background-color: rgba(255, 255, 255, 0.95);
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.nav-link {
color: var(--text-color);
padding: 0.5rem 1rem;
}
.nav-link:hover {
color: var(--primary-color);
}
.form-control {
border-radius: var(--border-radius);
}
/* 年龄分级 SVG 样式 */
.age-rating {
display: inline-flex;
align-items: center;
gap: 4px;
}
.age-rating svg {
width: 20px;
height: 20px;
}
/* 骨架屏加载动画 */
.skeleton-chart {
width: 400px;
height: 200px;
background: #f0f0f0;
border-radius: 4px;
position: relative;
overflow: hidden;
}
@keyframes shimmer {
0% { background-position: -468px 0 }
100% { background-position: 468px 0 }
}
.skeleton-chart::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
transform: translateX(-100%);
background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.2) 20%, rgba(255,255,255,0.5) 60%, rgba(255,255,255,0) 100%);
animation: shimmer 2s infinite;
}