@import '../../style/theme3.less'; @age-tab-gap: 32rpx; @age-tab-w: 226rpx; @age-tab-h: 156rpx; @age-badge-current: #005e17; /* 选中态 box-shadow + scale 外溢;内层留白 + 外层负 margin 抵消,整体上下不占更多间距 */ @age-tab-shadow-bleed-t: 36rpx; @age-tab-shadow-bleed-b: 52rpx; .age-page { min-height: 100vh; background: @bg-page; padding-bottom: calc(48rpx + env(safe-area-inset-bottom)); box-sizing: border-box; } .age-body { width: 100%; box-sizing: border-box; } /* 横向年龄 Tab — Stitch 为你推荐版 */ .age-tab-scroll { width: 100%; white-space: nowrap; padding: @section-gap-sm 0 @section-gap-xs; box-sizing: border-box; margin-top: -@age-tab-shadow-bleed-t; margin-bottom: -@age-tab-shadow-bleed-b; } .age-tab-scroll__inner { padding: @age-tab-shadow-bleed-t 0 @age-tab-shadow-bleed-b; box-sizing: border-box; } .age-tab-row { display: inline-flex; flex-direction: row; align-items: center; gap: @age-tab-gap; padding: 0 @page-padding-x; } .age-tab { position: relative; width: @age-tab-w; height: @age-tab-h; flex-shrink: 0; padding: 24rpx 16rpx; border-radius: @radius-lg; background: @bg-muted; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8rpx; border: 2rpx solid transparent; } .age-tab--active { background: @brand; border-color: @bg-white; box-shadow: 0 16rpx 48rpx rgba(255, 215, 9, 0.38); transform: scale(1.05); z-index: 1; } .age-tab__current { position: absolute; top: -8rpx; right: -8rpx; padding: 4rpx 14rpx; border-radius: 999rpx; font-size: 18rpx; font-weight: 700; color: @text-white; background: @age-badge-current; line-height: 1.2; } .age-tab__range { font-size: 36rpx; font-weight: 800; color: @text-title; line-height: 1.2; } .age-tab--active .age-tab__range { color: @text-selected-btn; } .age-tab__sub { font-size: 22rpx; color: @text-light; line-height: 1.3; font-weight: 600; } .age-tab--active .age-tab__sub { color: fade(@text-selected-btn, 85%); } .age-panel { margin: 0 @page-padding-x; background: @bg-white; border-radius: @radius-lg; border: 1rpx solid fade(@bg-gray, 90%); box-shadow: @shadow; overflow: hidden; } .age-goal-panel { padding: 36rpx @page-padding-x 40rpx; box-sizing: border-box; } .age-goal-head { display: flex; flex-direction: row; align-items: center; gap: 12rpx; margin-bottom: @section-gap-sm; } .age-goal-head__icon-wrap { width: 56rpx; height: 56rpx; border-radius: 50%; background: @brand-light; display: flex; align-items: center; justify-content: center; } .age-goal-head__icon { font-size: 28rpx; line-height: 1; } .age-goal-head__title { font-size: @fs-section-head-title; font-weight: 800; color: @text-selected-btn; letter-spacing: -0.02em; } .age-goal-list { display: flex; flex-direction: column; gap: 24rpx; } .age-goal-item { display: flex; flex-direction: column; align-items: flex-start; gap: 12rpx; padding: 28rpx @page-padding-inner-x; border-radius: @radius; background: @bg-header; box-sizing: border-box; border: 1rpx solid rgba(229, 220, 201, 0.55); } .age-goal-item__top { display: flex; flex-direction: row; align-items: center; gap: 12rpx; } .age-goal-item__emoji { font-size: 40rpx; line-height: 1; flex-shrink: 0; } .age-goal-item__title { font-size: 28rpx; font-weight: 700; color: @text-selected-btn; line-height: 1.2; } .age-goal-item__desc { font-size: 24rpx; line-height: 1.5; color: @text-secondary; } .age-path-head { margin: @section-gap-lg @page-padding-x @section-gap-xs; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 16rpx; } .age-path-head__left { display: flex; flex-direction: row; align-items: center; gap: 20rpx; min-width: 0; } .age-path-head__bar { width: 16rpx; height: 64rpx; border-radius: 999rpx; background: @text-selected-btn; flex-shrink: 0; } .age-path-head__title { font-size: 40rpx; font-weight: 800; color: @text-title; letter-spacing: -0.03em; line-height: 1.2; } .age-path-head__badge { flex-shrink: 0; font-size: 20rpx; font-weight: 700; color: @text-secondary; background: @bg-header; padding: 10rpx 20rpx; border-radius: 999rpx; border: @border; } .age-week-list { padding: 0 @page-padding-x; display: flex; flex-direction: column; gap: @section-gap-lg; } .age-week-card { background: @bg-white; border-radius: @radius-lg; overflow: hidden; border: 1rpx solid rgba(50, 46, 37, 0.08); box-shadow: @shadow; } .age-week-card__head { padding: 28rpx @page-padding-x; background: @bg-week-head; display: flex; flex-direction: row; align-items: baseline; gap: 16rpx; } .age-week-card__week { font-size: @fs-section-head-title; font-weight: 800; color: @text-title; } .age-week-card__theme { font-size: 26rpx; font-weight: 600; color: @text-gray; } .age-week-card__body { padding: 0 @page-padding-x 8rpx; } .age-week-row { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 20rpx; padding: 32rpx 0; border-bottom: 1rpx solid #f2f2f2; } .age-week-row:last-child { border-bottom: none; } .age-week-row__title { flex: 1; min-width: 0; font-size: 28rpx; font-weight: 700; color: @text-title; } .age-week-row__btn { flex-shrink: 0; display: flex; flex-direction: row; align-items: center; gap: 6rpx; padding: 14rpx 28rpx; border-radius: 999rpx; background: @brand; font-size: 24rpx; font-weight: 700; color: @text-selected-btn; box-shadow: 0 4rpx 12rpx rgba(255, 215, 9, 0.35); } .age-week-row__btn-arrow { font-size: 22rpx; font-weight: 700; } /* [为你推荐] — Stitch 栅格 */ .age-rec { margin-top: @section-gap-lg; padding: 0 @page-padding-x @section-gap-xs; box-sizing: border-box; } .age-rec__head { display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between; margin-bottom: @section-gap-xs; } .age-rec__title { font-size: @fs-section-head-title; font-weight: 800; color: @text-title; letter-spacing: -0.02em; } .age-rec__more { font-size: 26rpx; font-weight: 700; color: @text-selected-btn; padding: 8rpx 0 8rpx 24rpx; } .age-rec__grid { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; row-gap: 32rpx; } .age-rec__card { width: calc(50% - 16rpx); background: @bg-white; border-radius: @radius-lg; overflow: hidden; border: 1rpx solid rgba(50, 46, 37, 0.08); box-shadow: @shadow; box-sizing: border-box; } .age-rec__img { width: 100%; height: 200rpx; display: block; background: fade(@brand, 15%); } .age-rec__body { padding: 20rpx 20rpx 24rpx; } .age-rec__card-title { font-size: 26rpx; font-weight: 700; color: @text-title; line-height: 1.35; }