407 lines
7.0 KiB
Plaintext
407 lines
7.0 KiB
Plaintext
@import '../../style/theme3.less';
|
||
|
||
@fav-seg-track: #f0e7d6;
|
||
@fav-thumb-placeholder: #e5dcc9;
|
||
@fav-secondary-cta-bg: #ffc697;
|
||
@fav-secondary-cta-text: #6d3b00;
|
||
@fav-heart: #b02500;
|
||
|
||
.fav-page {
|
||
min-height: 100vh;
|
||
background: @bg-page;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
|
||
.fav-nav__clear {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: fade(@text-selected-btn, 65%);
|
||
padding: 12rpx 20rpx;
|
||
border-radius: 999rpx;
|
||
}
|
||
|
||
.fav-scroll {
|
||
box-sizing: border-box;
|
||
width: 100%;
|
||
}
|
||
|
||
.fav-body {
|
||
padding: @section-gap-xs @page-padding-x;
|
||
padding-bottom: calc(48rpx + env(safe-area-inset-bottom) + 120rpx);
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* Segmented(Stitch 胶囊) */
|
||
.fav-seg {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: stretch;
|
||
padding: 12rpx;
|
||
margin-bottom: @section-gap-sm;
|
||
border-radius: 999rpx;
|
||
background: @fav-seg-track;
|
||
box-shadow: @shadow;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.fav-seg__pill {
|
||
flex: 1;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 22rpx 16rpx;
|
||
border-radius: 999rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.fav-seg__pill--active {
|
||
background: @brand;
|
||
box-shadow: @shadow;
|
||
}
|
||
|
||
.fav-seg__text {
|
||
font-size: 26rpx;
|
||
font-weight: 700;
|
||
color: @text-secondary;
|
||
}
|
||
|
||
.fav-seg__pill--active .fav-seg__text {
|
||
color: @text-selected-btn;
|
||
}
|
||
|
||
/* 收藏列表卡片 */
|
||
.fav-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 32rpx;
|
||
}
|
||
|
||
.fav-card {
|
||
border-radius: @radius-lg;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.fav-card--row {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
gap: 32rpx;
|
||
padding: 32rpx;
|
||
background: @bg-header;
|
||
box-shadow: @shadow;
|
||
}
|
||
|
||
.fav-card__thumb {
|
||
width: 160rpx;
|
||
height: 160rpx;
|
||
border-radius: @radius;
|
||
flex-shrink: 0;
|
||
background: @fav-thumb-placeholder;
|
||
}
|
||
|
||
.fav-card__main {
|
||
flex: 1;
|
||
min-width: 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.fav-card__title {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: @text-title;
|
||
line-height: 1.25;
|
||
}
|
||
|
||
.fav-card__meta {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
gap: 4rpx;
|
||
}
|
||
|
||
.fav-card__meta-text {
|
||
font-size: 22rpx;
|
||
color: @text-secondary;
|
||
}
|
||
|
||
.fav-card__stars {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
gap: 2rpx;
|
||
}
|
||
|
||
.fav-card__badge {
|
||
margin-top: 4rpx;
|
||
font-size: 18rpx;
|
||
font-weight: 600;
|
||
color: @text-gray;
|
||
letter-spacing: 0.06em;
|
||
text-transform: uppercase;
|
||
padding: 6rpx 16rpx;
|
||
border-radius: 999rpx;
|
||
background: @fav-seg-track;
|
||
}
|
||
|
||
.fav-card__heart {
|
||
flex-shrink: 0;
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
/* Bento 大卡 */
|
||
.fav-card--bento {
|
||
position: relative;
|
||
overflow: hidden;
|
||
padding: 48rpx 140rpx 48rpx 40rpx;
|
||
background: @fav-seg-track;
|
||
box-shadow: @shadow;
|
||
}
|
||
|
||
.fav-bento__content {
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
.fav-bento__title {
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.fav-bento__meta {
|
||
font-size: 26rpx;
|
||
color: @text-secondary;
|
||
margin-top: 8rpx;
|
||
margin-bottom: 28rpx;
|
||
line-height: 1.4;
|
||
}
|
||
|
||
.fav-bento__tags {
|
||
display: flex;
|
||
flex-direction: row;
|
||
flex-wrap: wrap;
|
||
gap: 16rpx;
|
||
}
|
||
|
||
.fav-bento__tag {
|
||
padding: 8rpx 22rpx;
|
||
border-radius: 999rpx;
|
||
font-size: 20rpx;
|
||
font-weight: 700;
|
||
color: @fav-secondary-cta-text;
|
||
background: rgba(255, 255, 255, 0.55);
|
||
}
|
||
|
||
.fav-bento__deco {
|
||
position: absolute;
|
||
right: -40rpx;
|
||
bottom: -48rpx;
|
||
z-index: 0;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.fav-bento__heart {
|
||
position: absolute;
|
||
top: 40rpx;
|
||
right: 32rpx;
|
||
z-index: 2;
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
/* 底部去发现 */
|
||
.fav-cta {
|
||
margin-top: @section-gap;
|
||
padding: 48rpx 0 24rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
}
|
||
|
||
.fav-cta__hint {
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
color: @text-gray;
|
||
}
|
||
|
||
.fav-cta__btn {
|
||
margin-top: 32rpx;
|
||
padding: 22rpx 64rpx;
|
||
border-radius: 999rpx;
|
||
font-size: 26rpx;
|
||
font-weight: 700;
|
||
background: @fav-secondary-cta-bg !important;
|
||
color: @fav-secondary-cta-text !important;
|
||
border: none !important;
|
||
box-shadow: @shadow;
|
||
}
|
||
|
||
.fav-cta__btn::after {
|
||
border: none;
|
||
}
|
||
|
||
/* 下载历史 */
|
||
.fav-dl {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 16rpx;
|
||
}
|
||
|
||
.fav-dl__section-label {
|
||
display: block;
|
||
font-size: 22rpx;
|
||
font-weight: 700;
|
||
color: @text-gray;
|
||
letter-spacing: 0.2em;
|
||
text-transform: uppercase;
|
||
padding: 8rpx 16rpx 16rpx;
|
||
}
|
||
|
||
.fav-dl__items {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 32rpx;
|
||
margin-bottom: 32rpx;
|
||
}
|
||
|
||
.fav-dl-row {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
gap: 32rpx;
|
||
padding: 32rpx;
|
||
background: @bg-header;
|
||
border-radius: @radius-lg;
|
||
box-shadow: @shadow;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.fav-dl-row--muted {
|
||
opacity: 0.92;
|
||
}
|
||
|
||
.fav-dl-row__thumb {
|
||
width: 160rpx;
|
||
height: 160rpx;
|
||
border-radius: @radius;
|
||
flex-shrink: 0;
|
||
background: @fav-thumb-placeholder;
|
||
}
|
||
|
||
.fav-dl-row__thumb--ph {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: linear-gradient(145deg, @fav-secondary-cta-bg 0%, fade(@brand, 35%) 100%);
|
||
}
|
||
|
||
.fav-dl-row__main {
|
||
flex: 1;
|
||
min-width: 0;
|
||
}
|
||
|
||
.fav-dl-row__title {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: @text-title;
|
||
line-height: 1.25;
|
||
margin-bottom: 12rpx;
|
||
}
|
||
|
||
.fav-dl-row__meta {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
gap: 12rpx;
|
||
font-size: 26rpx;
|
||
color: fade(@text-secondary, 88%);
|
||
}
|
||
|
||
.fav-dl-row__time {
|
||
color: fade(@text-secondary, 88%);
|
||
}
|
||
|
||
.fav-dl-row__dot {
|
||
width: 8rpx;
|
||
height: 8rpx;
|
||
border-radius: 50%;
|
||
background: @text-gray;
|
||
opacity: 0.45;
|
||
}
|
||
|
||
.fav-dl-row__status {
|
||
color: fade(@text-secondary, 65%);
|
||
}
|
||
|
||
.fav-dl-row__status--hi {
|
||
color: #006b1b;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.fav-dl-row__more {
|
||
flex-shrink: 0;
|
||
width: 72rpx;
|
||
height: 72rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
/* 空状态 */
|
||
.fav-empty {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 120rpx 32rpx 64rpx;
|
||
}
|
||
|
||
.fav-empty__emoji {
|
||
font-size: 100rpx;
|
||
margin-bottom: 24rpx;
|
||
}
|
||
|
||
.fav-empty__icon {
|
||
margin-bottom: 24rpx;
|
||
}
|
||
|
||
.fav-empty__msg {
|
||
font-size: 30rpx;
|
||
font-weight: 600;
|
||
color: @text-title;
|
||
margin-bottom: 12rpx;
|
||
}
|
||
|
||
.fav-empty__sub {
|
||
font-size: 26rpx;
|
||
color: @text-secondary;
|
||
margin-bottom: 40rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.fav-empty__btn {
|
||
padding: 20rpx 56rpx;
|
||
border-radius: 999rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 700;
|
||
background: @brand;
|
||
color: @text-selected-btn;
|
||
border: none;
|
||
}
|
||
|
||
.fav-empty__btn::after {
|
||
border: none;
|
||
} |