/* components/calendar/index.less */ .calendar { flex: 1; height: 100%; display: flex; overflow: hidden; flex-direction: column; .year { display: flex; padding: 16rpx 32rpx; align-items: center; margin-bottom: 24rpx; justify-content: space-between; .btn { width: 64rpx; height: 64rpx; display: flex; align-items: center; border-radius: 12rpx; justify-content: center; &:active { opacity: .7; } } .text { color: var(--theme-text); font-size: 32rpx; font-weight: 600; } } .weekdays { display: grid; padding: 0 32rpx; margin-bottom: 16rpx; grid-template-columns: repeat(7, 1fr); .weekday { color: var(--theme-text-secondary); padding: 16rpx 0; font-size: 24rpx; text-align: center; } } .months { flex: 1; height: 0; padding-bottom: 210rpx; .month { padding: 0 32rpx; .title { color: var(--theme-text); font-size: 32rpx; margin-top: 32rpx; font-weight: bold; } .days { display: grid; grid-gap: 8rpx; grid-template-columns: repeat(7, 1fr); .day { display: flex; position: relative; background: transparent; align-items: center; aspect-ratio: 1; border-radius: 12rpx; flex-direction: column; justify-content: center; .number { color: var(--theme-text); font-size: 28rpx; } .dot { width: 8rpx; height: 8rpx; border-radius: 50%; background: var(--theme-primary); } &.other-month { visibility: hidden; } &.has-journal { background: var(--theme-bg-journal); .number { color: var(--theme-wx); font-weight: bold; } &:active { opacity: .7; } } } } } } }