/* ./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%); } }