Files
PC-official/static/css/song-request-station.less
DESKTOP-RQ919RC\Pc f1aa3a5d4a feat(ui): 优化标签样式并添加播放状态高亮效果
- 重构标签HTML结构,添加.tag-text容器
- 为当前播放标签添加旋转渐变边框效果
- 调整标签尺寸和内边距
- 添加控制台日志输出当前播放数据
- 更新VSCode端口配置
2025-10-11 18:54:11 +08:00

671 lines
17 KiB
Plaintext

* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
}
.container {
width: 100%;
background-color: rgba(51, 51, 51, 1);
.flexflex {
display: flex;
}
.flexcenter {
display: flex;
justify-content: center;
align-items: center;
}
.flexjcenter {
display: flex;
justify-content: center;
}
.flexacenter {
display: flex;
align-items: center;
}
.flex1 {
flex: 1;
}
.flexcolumn {
display: flex;
flex-direction: column;
}
.mar1200 {
width: 1200px;
margin: 0 auto;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.container-box {
padding-top: 24px;
height: 100vh;
display: flex;
flex-direction: column;
.logo {
width: 121px;
height: 24px;
margin-bottom: 31px;
z-index: 1;
}
.header {
position: relative;
width: 1200px;
height: 320px;
// background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
border-radius: 20px;
margin-bottom: 20px;
&::after {
content: "";
width: 1200px;
height: 320px;
background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
border-radius: 20px;
position: absolute;
top: 0;
left: 0;
}
.halo {
width: 240px;
height: 214px;
position: absolute;
top: -71px;
left: -59px;
}
.star-icon {
position: absolute;
top: 46px;
left: 51px;
width: 56px;
height: 56px;
z-index: 1;
}
.love-little {
position: absolute;
top: 46px;
left: 51px;
width: 186px;
height: 160px;
transform: rotate(315deg);
top: 137px;
left: -10px;
z-index: 1;
}
.bj-2 {
width: 360px;
height: 128px;
position: absolute;
left: 25px;
bottom: 0;
z-index: 1;
}
.music-icon {
width: 34px;
height: 37px;
position: absolute;
top: 194px;
left: 40px;
transform: rotate(345deg);
z-index: 1;
}
.bj {
position: absolute;
bottom: 0;
right: 0;
width: 1064px;
height: 320px;
z-index: 1;
}
.love-big {
transform: rotate(44deg);
width: 321px;
height: 276px;
position: absolute;
top: 31px;
left: 69px;
z-index: 1;
}
.music-score {
width: 240px;
height: 240px;
position: absolute;
top: 1px;
left: 217px;
z-index: 1;
}
.robot {
width: 238px;
height: 238px;
position: absolute;
top: 42px;
left: 432px;
z-index: 1;
}
.text {
width: 224px;
height: 194px;
position: absolute;
top: 68px;
left: 694px;
z-index: 1;
}
.face {
width: 83px;
height: 83px;
position: absolute;
top: -27px;
left: 1080px;
z-index: 1;
}
.star-icon-2 {
width: 110px;
height: 110px;
position: absolute;
left: 953px;
top: 70px;
z-index: 1;
}
.ai-music {
width: 81px;
height: 28px;
position: absolute;
top: 282px;
left: 1106px;
z-index: 1;
}
.record-black {
width: 223px;
height: 233px;
position: absolute;
bottom: 0;
right: -1px;
z-index: 1;
}
.record-circle {
position: absolute;
top: 147px;
left: 1039px;
background-color: rgb(114, 219, 134);
width: 110px;
height: 110px;
border-radius: 50%;
z-index: 1;
&::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: block;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: #fff;
}
}
.green-glow {
width: 306px;
height: 62px;
position: absolute;
top: 285px;
left: 217px;
}
.shadow {
width: 240px;
height: 165px;
position: absolute;
top: 191px;
left: 997px;
}
}
.list-box {
width: 1200px;
height: 100%;
background-color: rgba(255, 255, 255, 0.109803921568627);
border-radius: 20px;
position: relative;
display: flex;
justify-content: center;
align-items: center;
padding: 3px 0;
margin-bottom: 40px;
flex: 1;
z-index: 1;
.left-icon {
width: 121px;
height: 144px;
position: absolute;
top: 61px;
left: 0;
z-index: 1;
}
.right-icon {
width: 57px;
height: 84px;
position: absolute;
top: 20px;
left: 1120px;
z-index: 1;
transform: rotate(15deg);
}
.list {
z-index: 100;
// background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
}
.list-fill {
.fill-item {
width: 33px;
height: 23px;
border-radius: 12px;
// background-color: rgba(255, 255, 255, 0.223529);
position: absolute;
cursor: pointer;
box-shadow: 0px 0 0 3px rgba(255, 255, 255, 0.223529);
background: rgba(255, 255, 255, 0.5);
// &::after {
// content: "";
// width: calc(100% - 6px);
// height: calc(100% - 6px);
// background: rgba(255, 255, 255, 0.5);
// position: absolute;
// top: 50%;
// left: 50%;
// transform: translate(-50%, -50%);
// border-radius: 100px;
// z-index: -1;
// }
&.item2 {
width: 48px;
height: 28px;
}
&.item3 {
width: 63px;
height: 33px;
}
&.item4 {
width: 78px;
height: 38px;
}
&.item5 {
width: 93px;
height: 43px;
}
}
}
.list,
.list-fill {
width: 1194px;
height: 100%;
border-radius: 18px;
position: absolute !important;
}
&::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: calc(100% - 6px);
height: calc(100% - 6px);
background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
z-index: -1;
border-radius: 18px;
}
}
}
}
.tag-item {
height: 66px;
// line-height: 60px;
border-radius: 12px;
// background: #d5e7f7;
position: absolute;
font-size: 20px !important;
color: #1c3e5e;
width: fit-content;
cursor: pointer;
// box-shadow: 0px 0 0 3px rgba(255, 255, 255, 0.223529);
background: rgba(255, 255, 255, 0.223529);
opacity: 1 !important;
// transition: background 0.3s, color 0.3s, z-index 0.3s, font-weight 0.3s;
padding: 3px;
&.show::after {
content: "";
width: 100%;
height: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 12px;
background: linear-gradient(var(--rotate), #db4743, #ffffff 43%, #c28846);
animation: bg 1.3s infinite linear;
}
@property --rotate {
syntax: "<angle>";
initial-value: 0deg;
inherits: false;
}
@keyframes bg {
0% {
--rotate: 0deg;
}
100% {
--rotate: 360deg;
}
}
.tag-text {
background: #d5e7f7;
padding: 0 25px;
border-radius: 10px;
height: 100%;
display: flex;
align-items: center;
transition: background 0.3s, color 0.3s, z-index 0.3s, font-weight 0.3s;
position: relative;
z-index: 1;
}
&:hover {
font-weight: 650;
color: #583a05 !important;
z-index: 100 !important;
.tag-text {
background: rgba(241, 154, 4, 1) !important;
}
}
&.item2 {
height: 56px;
color: #1c3e5e;
font-size: 18px !important;
.tag-text {
padding: 0 20px;
background: #d5e7f7;
}
}
&.item3 {
height: 53px;
color: #1c3e5e;
font-size: 16px !important;
.tag-text {
padding: 0 16px;
background: #d5e7f7;
}
}
&.item4 {
height: 36px;
color: #1c3e5e;
font-size: 14px !important;
.tag-text {
padding: 0 10px;
background: #d5e7f7;
}
}
&.red {
.tag-text {
color: #62263c !important;
background: linear-gradient(180deg, #ff8eba 0%, #f4458c 100%);
}
}
}
.bottom-play {
position: fixed;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
border-radius: 12px;
width: 100%;
padding: 12px 0;
background-color: #000;
z-index: 1000;
justify-content: space-between;
align-items: flex-end;
animation: fadeInUp 0.3s ease forwards;
// min-width: 1200px;
width: 800px;
@keyframes fadeInUp {
0% {
bottom: -76px;
}
100% {
bottom: 10px;
}
}
.bottom-left {
padding-left: 12px;
height: 24px;
line-height: 24px;
position: relative;
.img {
width: 56px;
height: 56px;
margin-right: 12px;
}
.name {
color: #fff;
font-size: 14px;
max-width: 300px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
position: absolute;
left: 12px;
bottom: 0;
}
}
.bottom-middle {
flex-direction: column;
.operate {
height: 24px;
.cut {
width: 14px;
height: 12px;
cursor: pointer;
}
.speed {
width: 16px;
height: 12px;
margin: 0 40px;
cursor: pointer;
}
.play {
width: 24px;
height: 24px;
cursor: pointer;
}
}
.time-display {
color: #fff;
font-size: 12px;
line-height: 10px;
}
.progress-bar {
height: 10px;
width: 500px;
margin: 0 10px;
.bar {
height: 4px;
background-color: rgba(255, 255, 255, 1);
border-radius: 10px;
position: relative;
cursor: pointer;
&.white {
width: 0;
border-radius: 10px 0 0 10px;
background-color: #5241b0;
&::before {
content: "";
width: 10px;
height: 10px;
background-color: #f3974b;
border-radius: 50%;
position: absolute;
top: 50%;
transform: translateY(-50%);
right: -5px;
cursor: pointer;
z-index: 1;
display: block;
}
}
&.black {
background-color: #f2f2f2;
border-radius: 0 10px 10px 0;
}
}
}
}
.bottom-right {
justify-content: flex-end;
padding-right: 12px;
height: 24px;
.item {
position: relative;
margin-right: 18px;
.svg {
display: block;
cursor: pointer;
}
// &:hover {
// .sound-control {
// display: flex;
// }
// }
.sound-control {
justify-content: center;
left: 50%;
transform: translateX(-50%);
height: 151px;
padding-bottom: 2px;
position: absolute;
top: -158px;
width: 42px;
align-items: center;
background: #1f1f1f;
border-radius: 8px;
flex-direction: column;
justify-content: space-between;
padding: 12px;
cursor: auto;
&::after {
content: "";
width: 100%;
height: 7px;
position: absolute;
bottom: -7px;
}
.value {
color: #fff;
font-size: 14px;
user-select: none;
}
.progress {
width: 4px;
height: 100px;
border-radius: 4px;
background-color: rgba(255, 255, 255, 0.2);
flex-direction: column;
justify-content: flex-end;
cursor: pointer;
.bar {
width: 100%;
height: 50px;
background-color: #fff;
border-radius: 4px;
position: relative;
&::before {
content: "";
width: 10px;
height: 10px;
background-color: #f3974b;
border-radius: 50%;
position: absolute;
top: 0;
transform: translate(-50%, -50%);
left: 50%;
z-index: 1;
display: block;
}
}
}
}
}
}
}