/* calendar.wxss * 视觉方向:纸感编辑风(A 方案,与首页一致) * 与首页统一色板:浅米黄底 + 墨蓝文字 + 暖灰副文字 + 墨红强调 */ .container { min-height: 100vh; background-color: #FAF6ED; } /* ───── 月份头部 ───── */ .calendar-header { padding: 20rpx 24rpx 16rpx; display: flex; align-items: center; justify-content: space-between; } .month-navigation { display: flex; align-items: center; gap: 28rpx; } .nav-btn { font-size: 40rpx; color: #1F1D2B; font-weight: 300; width: 56rpx; height: 56rpx; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 1rpx solid #E8E2D5; background: #FFFFFF; transition: background 0.2s cubic-bezier(0.22, 1, 0.36, 1); line-height: 1; } .nav-btn:active { background: #F2EEE5; } .month-title { font-size: 40rpx; font-weight: 600; color: #1F1D2B; min-width: 240rpx; text-align: center; letter-spacing: -0.5rpx; } .today-btn { padding: 10rpx 24rpx; background: transparent; color: #1F1D2B; border: 1rpx solid #1F1D2B; border-radius: 36rpx; font-size: 24rpx; font-weight: 500; transition: background 0.2s cubic-bezier(0.22, 1, 0.36, 1); line-height: 1.5; } .today-btn:active { background: #1F1D2B; color: #FAF6ED; } .today-btn::after { border: none; } /* ───── 周标题 ───── */ .week-header { display: grid; grid-template-columns: repeat(7, 1fr); padding: 8rpx 24rpx 12rpx; gap: 12rpx; box-sizing: border-box; border-top: 1rpx solid #E8E2D5; border-bottom: 1rpx solid #E8E2D5; margin: 0 12rpx; } .week-title { display: flex; align-items: center; justify-content: center; height: 56rpx; font-size: 22rpx; color: #8A8278; font-weight: 500; letter-spacing: 2rpx; box-sizing: border-box; } .week-title text { display: block; } /* ───── 日历主体 ───── */ .calendar-content { height: calc(100vh - 220rpx); background-color: #FAF6ED; } .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); padding: 16rpx 24rpx; gap: 12rpx; box-sizing: border-box; } .calendar-cell { min-height: 96rpx; background-color: #FFFFFF; border-radius: 12rpx; border: 1rpx solid #E8E2D5; padding: 12rpx 8rpx; display: flex; flex-direction: column; align-items: center; justify-content: center; box-sizing: border-box; transition: background 0.15s cubic-bezier(0.22, 1, 0.36, 1); } .calendar-cell.other-month { background-color: transparent; border-color: transparent; } /* today:克制的墨红圆点圈定 date-num,不再大色块 + scale */ .calendar-cell.today { background: #FFF1EA; border-color: #E8BCA7; } .calendar-cell.today .date-num { color: #C8412F; font-weight: 700; } .date-num { font-size: 30rpx; color: #1F1D2B; margin-bottom: 8rpx; font-weight: 600; font-feature-settings: "tnum"; } .calendar-cell.other-month .date-num { color: #C8C2B4; font-weight: 400; } .events { display: flex; gap: 6rpx; flex-wrap: wrap; justify-content: center; max-width: 100%; } .event-dot { width: 8rpx; height: 8rpx; border-radius: 50%; } .more-text { font-size: 18rpx; color: #8A8278; margin-top: 4rpx; font-weight: 500; } .calendar-cell.today .more-text { color: #C8412F; } /* ───── 列表区 ───── */ .events-list { padding: 32rpx 24rpx 80rpx; } /* section-title 用纯排版,不用 6rpx border-left(绝对禁用项) */ .section-title { font-size: 28rpx; font-weight: 600; color: #1F1D2B; margin-bottom: 24rpx; letter-spacing: 1rpx; } .empty-state { text-align: center; padding: 120rpx 40rpx; } .empty-state .icon { font-size: 104rpx; display: block; margin-bottom: 24rpx; opacity: 0.7; } .empty-state .text { font-size: 26rpx; color: #A9A096; line-height: 1.6; } .event-card { background: #FFFFFF; border: 1rpx solid #E8E2D5; border-radius: 14rpx; padding: 24rpx 28rpx; margin-bottom: 16rpx; transition: transform 0.15s cubic-bezier(0.22, 1, 0.36, 1); } .event-card:active { transform: scale(0.985); } .event-header { display: flex; align-items: center; } .event-icon { font-size: 32rpx; margin-right: 14rpx; flex-shrink: 0; } .event-title { flex: 1; font-size: 28rpx; font-weight: 600; color: #1F1D2B; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .event-date { font-size: 24rpx; color: #8A8278; flex-shrink: 0; margin-left: 12rpx; } .event-info { display: flex; align-items: center; gap: 12rpx; margin-top: 14rpx; padding-left: 46rpx; } .lunar-badge { padding: 4rpx 14rpx; background: #F2EEE5; color: #8A8278; border-radius: 18rpx; font-size: 20rpx; font-weight: 500; } .status { font-size: 22rpx; padding: 4rpx 14rpx; border-radius: 18rpx; font-weight: 600; } .status.urgent { background: #FFE3D7; color: #C8412F; } .status.warning { background: #FFEFD9; color: #B36A1F; }