/* 动态头部样式 */ .dynamic-header { --background: linear-gradient(to right, var(--ion-color-primary), var(--ion-color-secondary)); --color: white; ion-toolbar { --background: transparent; } .greeting-title { padding-inline: 0; h1 { font-size: 1.2rem; font-weight: 600; margin: 0; } ion-note { font-size: 0.7rem; opacity: 0.8; } } .weather-bar { --background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); ion-segment { --background: transparent; ion-segment-button { --color: rgba(255, 255, 255, 0.7); --color-checked: white; --indicator-color: transparent; ion-icon { font-size: 1.2rem; } } } } } /* 推荐计划滑块 */ .recommendation-slider { margin: 16px 0; swiper-slide { transition: transform 0.3s ease; &.highlight { transform: scale(1.05); } } .program-card { border-radius: 16px; overflow: hidden; position: relative; height: 280px; img { object-fit: cover; height: 120px; width: 100%; } .program-badge { position: absolute; top: 10px; right: 10px; background: var(--ion-color-danger); color: white; padding: 4px 8px; border-radius: 12px; font-size: 12px; z-index: 2; } ion-progress-bar { margin: 8px 0; } } } /* 健康数据看板 */ .dashboard-card { border-radius: 12px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); ion-card-header { padding-bottom: 0; } } /* 快捷操作按钮 */ .quick-actions { padding: 0; margin: 20px 0; ion-button { --border-width: 1px; --padding-top: 12px; --padding-bottom: 12px; height: 100%; ion-icon { font-size: 1.2rem; } } } /* 社区动态 */ .community-feed { background: transparent; ion-item { --border-radius: 12px; --padding-start: 8px; margin-bottom: 8px; --background: var(--ion-item-background, var(--ion-background-color, #fff)); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); ion-avatar { width: 40px; height: 40px; } } } /* 底部导航 */ ion-footer { ion-toolbar { --background: var(--ion-color-light); --padding-top: 4px; --padding-bottom: 4px; .coach-avatar { position: relative; width: 36px; height: 36px; img { border-radius: 50%; width: 100%; height: 100%; object-fit: cover; } ion-badge { position: absolute; top: -2px; right: -2px; width: 8px; height: 8px; border-radius: 50%; &.pulse { animation: pulse 1.5s infinite; } } } ion-title { font-size: 0.9rem; font-weight: 500; } } } @keyframes pulse { 0% { transform: scale(0.95); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(0.95); opacity: 1; } }