/* ── 全局设计令牌:毛玻璃配色系统 ── */ page { --coral: #ff2d6e; --tangerine: #ff7a1a; --lemon: #ffd400; --mint: #00d9a0; --sky: #1f9bff; --lilac: #8b5cf6; /* 兼容旧变量名,逐步迁移 */ --pink: var(--coral); --pink-light: rgba(255, 45, 110, 0.14); --orange: var(--tangerine); --yellow: var(--lemon); --green: var(--mint); --blue: var(--sky); --violet: var(--lilac); --ink: #2b2438; --bg-primary: #ffffff; --bg-page: #ffffff; --text-primary: #2b2438; --text-secondary: #6e6480; --text-tertiary: #a59cb5; --glass: rgba(255, 255, 255, 0.40); --glass-strong: rgba(255, 255, 255, 0.58); --glass-edge: rgba(255, 255, 255, 0.78); --border-card: rgba(255, 255, 255, 0.72); --border-subtle: rgba(43, 37, 61, 0.08); --shadow-soft: 0 22rpx 48rpx rgba(120, 70, 140, 0.16); --shadow-card: 0 22rpx 48rpx rgba(120, 70, 140, 0.16); --shadow-pop: 0 14rpx 32rpx rgba(255, 45, 110, 0.30); --radius-sm: 16rpx; --radius-md: 28rpx; --radius-lg: 44rpx; --radius-full: 9999rpx; --tab-h: 112rpx; font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif; background: var(--bg-primary); color: var(--text-primary); font-size: 28rpx; line-height: 1.5; box-sizing: border-box; } /* ── 重置 ── */ view, text, image, button, input, textarea { box-sizing: border-box; } button { padding: 0; margin: 0; border: none; background: none; line-height: 1; font-family: inherit; } button::after { border: none; } /* ── 通用卡片(兼容旧用法) ── */ .card { background: rgba(255, 255, 255, 0.86); border: 1rpx solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); overflow: hidden; } /* ── 真毛玻璃工具类:背景模糊 + 折射边缘 + 内高光 低端 Android 对 backdrop-filter 支持有限,已叠加半透明底色兜底 ── */ .glass { background: var(--glass); backdrop-filter: blur(28rpx) saturate(170%); -webkit-backdrop-filter: blur(28rpx) saturate(170%); border: 1rpx solid var(--glass-edge); box-shadow: var(--shadow-soft), inset 0 1rpx 0 rgba(255, 255, 255, 0.65), inset 0 -1rpx 0 rgba(255, 255, 255, 0.12); } .glass-strong { background: var(--glass-strong); backdrop-filter: blur(34rpx) saturate(180%); -webkit-backdrop-filter: blur(34rpx) saturate(180%); border: 1rpx solid var(--glass-edge); box-shadow: var(--shadow-soft), inset 0 1rpx 0 rgba(255, 255, 255, 0.7); } /* ── 贴纸式标签:略微旋转,像贴上去的 ── */ .sticker-tag { position: absolute; background: rgba(255, 255, 255, 0.55); backdrop-filter: blur(20rpx) saturate(180%); -webkit-backdrop-filter: blur(20rpx) saturate(180%); color: var(--ink); font-size: 22rpx; font-weight: 800; padding: 10rpx 22rpx; border-radius: 24rpx; border: 1rpx solid rgba(255, 255, 255, 0.7); box-shadow: 0 14rpx 30rpx rgba(120, 70, 150, 0.18); transform: rotate(-3deg); } .sticker-tag.tilt-r { transform: rotate(3deg); } /* ── 渐变按钮 ── */ .btn-primary { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--coral), var(--tangerine)); color: #fff; border-radius: var(--radius-full); font-size: 28rpx; font-weight: 800; box-shadow: var(--shadow-pop); } /* ── 页面顶部状态栏占位 ── */ .status-placeholder { height: env(safe-area-inset-top, 44rpx); } /* ── 滚动区通用 ── */ .scroll-view { width: 100%; } /* ── Hashtag 标签 ── */ .hashtag { display: inline-flex; align-items: center; font-size: 22rpx; font-weight: 800; color: #8a3fe0; background: rgba(167, 139, 250, 0.16); border: 1rpx solid rgba(167, 139, 250, 0.28); border-radius: var(--radius-full); padding: 6rpx 14rpx; } /* ── 在线绿点 ── */ .online-dot { width: 14rpx; height: 14rpx; border-radius: 50%; background: var(--mint); flex-shrink: 0; box-shadow: 0 0 0 5rpx rgba(0, 217, 160, 0.18); } /* ── 骨架屏占位 ── */ .skeleton { background: linear-gradient(90deg, #f0eef5 25%, #e8e4f0 50%, #f0eef5 75%); background-size: 200% 100%; animation: skeleton-shine 1.4s infinite; border-radius: 8rpx; } @keyframes skeleton-shine { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* ── 安全区 ── */ .safe-top { background: transparent; } .safe-bottom { height: env(safe-area-inset-bottom, 0rpx); }