mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-07-03 14:47:32 +08:00
72fabc6d12
- 关键布局组件(AppMenu/TitleBar/SearchBar)改为同步导入,消除加载闪烁 - 新增全局 skeleton-shimmer 流光动画替代 animate-pulse 闪烁效果 - 用户页 loading 骨架屏避免使用 .left scoped 样式导致的深色背景 - 全部 n-skeleton 组件替换为原生 div + shimmer,统一圆角风格 - 菜单容器添加背景色防止加载穿透
179 lines
3.3 KiB
CSS
179 lines
3.3 KiB
CSS
/* ./src/index.css */
|
|
|
|
/*! @import */
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* 页面内容区域统一边距工具类 */
|
|
.page-padding {
|
|
padding-left: var(--page-pl);
|
|
padding-right: var(--page-pr);
|
|
}
|
|
|
|
/* 左右对称边距(用于 hero 区域等需要两侧都有边距的场景) */
|
|
.page-padding-x {
|
|
padding-left: var(--page-pr);
|
|
padding-right: var(--page-pr);
|
|
}
|
|
|
|
.n-image img {
|
|
background-color: #111111;
|
|
width: 100%;
|
|
}
|
|
|
|
.n-slider-handle-indicator--top {
|
|
background-color: transparent;
|
|
font-size: 1.5rem;
|
|
padding: 0.25rem 0.5rem;
|
|
box-shadow: none;
|
|
margin-bottom: 0;
|
|
color: white;
|
|
background-color: rgb(31 41 55 / 0.8);
|
|
border-radius: 0.5rem;
|
|
mix-blend-mode: difference !important;
|
|
}
|
|
|
|
.v-binder-follower-container:has(.n-slider-handle-indicator--top) {
|
|
z-index: 999999999 !important;
|
|
}
|
|
|
|
.text-el {
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.theme-dark {
|
|
--bg-color: #000;
|
|
--text-color: #fff;
|
|
--bg-color-100: #161616;
|
|
--bg-color-200: #2d2d2d;
|
|
--bg-color-300: #3d3d3d;
|
|
--text-color: #f8f9fa;
|
|
--text-color-100: #e9ecef;
|
|
--text-color-200: #dee2e6;
|
|
--text-color-300: #dde0e3;
|
|
--primary-color: #22c55e;
|
|
}
|
|
|
|
.theme-light {
|
|
--bg-color: #fff;
|
|
--text-color: #000;
|
|
--bg-color-100: #f8f9fa;
|
|
--bg-color-200: #e9ecef;
|
|
--bg-color-300: #dee2e6;
|
|
--text-color: #000;
|
|
--text-color-100: #161616;
|
|
--text-color-200: #2d2d2d;
|
|
--text-color-300: #3d3d3d;
|
|
--primary-color: #22c55e;
|
|
}
|
|
|
|
.theme-gray {
|
|
--bg-color: #f8f9fa;
|
|
--text-color: #000;
|
|
--bg-color-100: #e9ecef;
|
|
--bg-color-200: #dee2e6;
|
|
--bg-color-300: #dde0e3;
|
|
--text-color: #000;
|
|
--text-color-100: #161616;
|
|
--text-color-200: #2d2d2d;
|
|
--text-color-300: #3d3d3d;
|
|
--primary-color: #22c55e;
|
|
}
|
|
|
|
:root {
|
|
--text-color: #000000dd;
|
|
--safe-area-inset-top: 0px;
|
|
--safe-area-inset-right: 0px;
|
|
--safe-area-inset-bottom: 10px;
|
|
--safe-area-inset-left: 0px;
|
|
|
|
/* 页面内容区域统一边距 */
|
|
--page-px: 1rem; /* 默认 16px,对应 px-4 */
|
|
--page-pl: 1rem; /* 左边距,PC 端有菜单时为 0 */
|
|
--page-pr: 1rem; /* 右边距 */
|
|
}
|
|
|
|
/* PC 端:有左侧菜单,左边距为 0 */
|
|
.pc {
|
|
--page-pl: 0px;
|
|
}
|
|
|
|
/* 响应式边距 */
|
|
@media (min-width: 640px) {
|
|
:root {
|
|
--page-px: 1.5rem; /* 24px,对应 sm:px-6 */
|
|
--page-pr: 1.5rem;
|
|
}
|
|
.mobile {
|
|
--page-pl: 1.5rem;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
:root {
|
|
--page-px: 2rem; /* 32px,对应 lg:px-8 */
|
|
--page-pr: 2rem;
|
|
}
|
|
}
|
|
|
|
:root[class='dark'] {
|
|
--text-color: #ffffffdd;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
letter-spacing: -0.025em;
|
|
|
|
@media (min-width: 768px) {
|
|
font-size: 1.875rem;
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
font-size: 2.25rem;
|
|
}
|
|
}
|
|
|
|
/* 骨架屏 shimmer 动画 */
|
|
.skeleton-shimmer {
|
|
position: relative;
|
|
overflow: hidden;
|
|
background: #e5e7eb;
|
|
}
|
|
|
|
.skeleton-shimmer::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
rgba(255, 255, 255, 0.4) 50%,
|
|
transparent 100%
|
|
);
|
|
animation: shimmer 1.5s infinite;
|
|
transform: translateX(-100%);
|
|
}
|
|
|
|
:root.dark .skeleton-shimmer {
|
|
background: #262626;
|
|
}
|
|
|
|
:root.dark .skeleton-shimmer::after {
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
rgba(255, 255, 255, 0.06) 50%,
|
|
transparent 100%
|
|
);
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
100% {
|
|
transform: translateX(100%);
|
|
}
|
|
}
|