ZZZ-Plugin/resources/panel/card.scss

782 lines
18 KiB
SCSS

.card {
padding-top: 0.8em;
overflow: hidden;
position: relative;
.uid {
font-size: 0.6em;
text-align: center;
position: absolute;
border-image-source: url('./images/CurseBG08.png');
border-image-slice: 30 60 30 60 fill;
border-image-width: 0.5em 1em 0.5em 1em;
border-image-outset: 0em 0em 0em 0em;
border-image-repeat: stretch stretch;
padding: 0.5em 1.2em;
font-size: 1em;
top: 0.5em;
left: 0.5em;
color: rgb(255, 255, 255);
stroke: 0.05em rgba(0, 0, 0, 0.6);
-webkit-text-stroke: 0.05em rgba(0, 0, 0, 0.6);
z-index: 1;
}
.star {
width: 5.5em;
height: 1.5em;
@for $i from 0 through 5 {
&.star#{$i} {
background-size: cover;
background-repeat: no-repeat;
background-position: center;
background-image: url('./images/star/#{$i}.png');
}
}
}
.basic {
display: flex;
align-items: stretch;
overflow: hidden;
.char {
width: 55%;
position: relative;
flex-grow: 1;
.avatar {
height: 100%;
padding-top: 1em;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top center;
position: absolute;
}
}
.skills {
position: absolute;
width: 120%;
height: 3.5em;
background: url('./images/skill_bg.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
bottom: 3em;
right: -1.6em;
display: flex;
align-items: flex-end;
padding-left: 2.5em;
padding-bottom: 0.2em;
.skill {
width: 1.4em;
aspect-ratio: 1;
margin-right: 1.38em;
display: flex;
justify-content: center;
align-items: center;
}
}
}
.info {
width: 45%;
flex-grow: 0;
flex-shrink: 0;
font-size: 1.2em;
position: relative;
z-index: 2;
.char_info {
width: 140%;
position: relative;
right: 20%;
padding: 0.3em 0.2em;
padding-right: 20%;
padding-left: 8%;
border-image-slice: 0 30 0 40 fill;
border-image-width: 0em 1.5em 0em 2em;
border-image-outset: 0 0 0 0;
border-image-repeat: stretch stretch;
border-image-source: url('./images/CurseBG04.png');
filter: drop-shadow(0 0 0.1em rgb(0, 0, 0));
.base {
display: flex;
align-items: center;
gap: 0.2em;
overflow: hidden;
.rank {
width: 1.2em;
flex-grow: 0;
flex-shrink: 0;
}
.property {
width: 1em;
flex-grow: 0;
flex-shrink: 0;
}
.name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.addition {
display: flex;
align-items: center;
font-size: 0.7em;
gap: 0.2em;
padding-left: 1em;
.level {
background-color: #000;
padding: 0em 0.7em;
border-radius: 1em;
}
.role_ranks {
display: flex;
gap: 0.1em;
span {
width: 1.2em;
aspect-ratio: 1;
border-radius: 1em;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
opacity: 0.4;
}
@for $i from 1 through 7 {
span:nth-child(#{$i}) {
background-image: url('./images/ranks/#{$i}.png');
}
&.r#{$i} {
@for $j from 1 through $i {
span:nth-child(#{$j}) {
opacity: 1 !important;
}
}
}
}
}
}
}
.property_info {
background-color: rgb(47, 47, 47);
border-left: 0.1em solid rgb(0, 0, 0);
padding-top: 0.2em;
background: url('./images/BgFrame01.png') center / 150% no-repeat;
.title {
font-size: 0.6em;
.special-title {
margin-bottom: 0;
padding-bottom: 0;
}
}
.list {
display: flex;
flex-direction: column;
gap: 0.2em;
padding-bottom: 0.2em;
.properties {
display: flex;
align-items: center;
gap: 0.4em;
padding: 0.05em 1em 0em 0.05em;
&:nth-child(odd) {
background-color: rgba(221, 224, 221, 0.25);
}
.prop-icon {
width: 1em;
flex-grow: 0;
flex-shrink: 0;
margin: 0 0.4em;
}
.label {
flex-grow: 1;
flex-shrink: 1;
font-size: 0.65em;
color: rgb(166, 166, 166);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&.yellow {
color: rgb(247, 199, 54);
}
&.blue {
color: rgb(65, 147, 237);
}
&.white {
color: rgb(233, 233, 233);
}
}
.value {
flex-grow: 0;
flex-shrink: 0;
font-size: 0.8em;
}
}
}
}
.weapon_info {
border-image-slice: 118 0 68 43 fill;
border-image-width: 4.5em 0em 2.7em 1.7em;
border-image-outset: 0em 0em 0em 0em;
border-image-repeat: stretch stretch;
border-image-source: url('./images/weapon_bg.png');
margin-top: -0.8em;
width: 115%;
margin-left: -15%;
font-size: 0.8em;
padding: 2em 1.2em;
padding-bottom: 3em;
position: relative;
overflow: hidden;
.info {
width: 100%;
position: relative;
z-index: 2;
.base {
width: 100%;
display: flex;
align-items: center;
gap: 0.5em;
.rarity-icon {
width: 2em;
}
.name {
text-shadow: 0 0 0.2em rgb(0, 0, 0);
}
}
.main {
display: flex;
flex-direction: column;
justify-content: stretch;
width: max-content;
.addition {
font-size: 0.8em;
display: flex;
align-items: center;
gap: 0.4em;
.level {
$label-width: 0.2em;
-webkit-clip-path: polygon(
$label-width 0%,
calc(100% - $label-width) 0%,
100% $label-width,
100% calc(100% - $label-width),
calc(100% - $label-width) 100%,
$label-width 100%,
0% calc(100% - $label-width),
0% $label-width
);
clip-path: polygon(
$label-width 0%,
calc(100% - $label-width) 0%,
100% $label-width,
100% calc(100% - $label-width),
calc(100% - $label-width) 100%,
$label-width 100%,
0% calc(100% - $label-width),
0% $label-width
);
padding: 0 0.4em;
font-size: 0.9em;
display: flex;
justify-content: center;
align-items: center;
color: rgb(43, 38, 40);
margin: 0.1em 0;
background-color: rgb(243, 203, 69);
}
}
.properties {
display: flex;
align-items: center;
background-color: rgb(65, 147, 237);
gap: 0.2em;
padding: 0 0.5em;
border-radius: 1em;
margin: 0.2em 0;
&.sub {
background-color: rgb(0, 0, 0);
}
.prop-icon {
width: 1em;
flex-grow: 0;
flex-shrink: 0;
}
.label {
flex-grow: 1;
flex-shrink: 1;
font-size: 0.7em;
color: rgb(222, 222, 222);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
}
.icon {
position: absolute;
top: 1.2em;
right: 0;
z-index: 1;
height: 70%;
margin-right: -1em;
img {
height: 100%;
}
}
}
}
}
.other {
border-image-source: url('./images/BgFrame01.png');
border-image-slice: 200 100 70 280 fill;
border-image-width: 2em 1em 0.7em 2.8em;
border-image-outset: 2em 1em 0.7em 2.8em;
border-image-repeat: stretch stretch;
padding-bottom: 3.3em;
margin-top: -1.4em;
position: relative;
z-index: 5;
}
.c,
.C {
.comment {
background: linear-gradient(
0deg,
rgba(39, 211, 30, 0.3),
rgba(39, 211, 30, 1)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.b,
.B {
.comment {
background: linear-gradient(
0deg,
rgba(94, 189, 249, 0.3),
rgba(94, 189, 249, 1)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.a,
.A {
.comment {
background: linear-gradient(
0deg,
rgba(210, 86, 255, 0.3),
rgb(210, 86, 255)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.s,
.S {
.comment {
background: linear-gradient(
0deg,
rgba(255, 218, 190, 0.3),
rgba(255, 218, 190, 1)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.ss,
.SS {
.comment {
background: linear-gradient(
0deg,
rgba(255, 225, 116, 0.4),
rgba(255, 225, 116, 1)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.sss,
.SSS {
.comment {
background: linear-gradient(
0deg,
rgba(255, 163, 59, 0.4),
rgba(255, 163, 59, 1)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.ace,
.ACE {
.comment {
background: linear-gradient(
0deg,
rgba(255, 59, 59, 0.4),
rgb(255, 59, 59)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.equip-score {
display: flex;
justify-content: center;
font-size: 1.2em;
align-items: center;
gap: 0.2em;
.comment-box {
font-size: 1.2em;
width: 2em;
display: flex;
justify-content: center;
align-items: center;
aspect-ratio: 1;
border-radius: 50%;
background-color: rgba(32, 32, 32, 0.4);
box-shadow: 0 0 1em rgba(0, 0, 0, 0.4);
border: 0.2em solid rgb(216, 216, 216);
position: relative;
z-index: 1;
}
.value {
border: 0.1em solid rgba(155, 155, 155);
border-left: none;
padding: 0.1em 1em 0.1em 1em;
margin-left: -0.6em;
border-radius: 0 1em 1em 0;
.subt {
font-size: 0.8em;
}
}
}
.equip-list {
width: 100%;
display: grid;
gap: 1em;
grid-template-columns: repeat(auto-fill, minmax(30%, 1fr));
padding: 0 1.8em;
align-items: stretch;
margin-top: 1em;
overflow: hidden;
.box {
$size: 3em;
border-image-source: url('./images/equip_bg.png');
border-image-slice: 190 90 110 170 fill;
border-image-width: 1.9 * $size 0.9 * $size 1.1 * $size 1.7 * $size;
border-image-outset: 0.6 * $size 0.5 * $size 0.6 * $size 0.5 * $size;
border-image-repeat: stretch stretch;
position: relative;
margin-top: 1.3em;
padding-bottom: 1em;
min-height: 10em;
&.empty {
&::after {
content: '';
position: absolute;
width: 2.5em;
height: 2.5em;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-image: url('./images/empty_equip_07.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
}
@for $i from 1 through 6 {
&:nth-child(#{$i}) {
&::before {
content: '0#{$i}';
position: absolute;
font-size: 2em;
left: 50%;
top: -0.85em;
transform: translate(-50%, 0);
z-index: -1;
}
}
}
.icon {
width: 0.9 * $size;
aspect-ratio: 1;
position: relative;
left: -0.3 * $size;
top: -0.4 * $size;
background-color: rgb(0, 0, 0);
background-image: url('./images/empty_equip_03.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
border-radius: 50%;
img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}
}
.info {
display: flex;
padding-left: 2.2em;
margin-top: -2.5em;
gap: 0.5em;
align-items: center;
.level {
flex-grow: 1;
flex-shrink: 1;
text-align: center;
font-size: 0.76em;
background-color: #000;
padding: 0.1em 0.5em;
border-radius: 1em;
margin-bottom: 0.3em;
}
.rarity-icon {
width: 2.2em;
}
}
.name {
padding: 0 0.5em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
}
.score {
display: flex;
justify-content: center;
gap: 0.2em;
font-size: 0.9em;
align-items: flex-end;
.value {
font-size: 0.9em;
background: linear-gradient(
0deg,
rgba(255, 255, 255, 0.1),
rgba(255, 255, 255, 1)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
.property-list {
padding: 0 0.5em;
overflow: hidden;
.properties {
display: flex;
align-items: center;
background-color: rgb(0, 0, 0);
gap: 0.2em;
padding: 0 0.5em;
border-radius: 1em;
margin: 0.2em 0;
.prop-icon {
width: 1em;
flex-grow: 0;
flex-shrink: 0;
}
.count {
display: flex;
align-items: center;
gap: 0.1em;
flex-grow: 0;
flex-shrink: 0;
span {
// 箭头样式
width: 0.3em;
aspect-ratio: 1;
border-right: 0.1em solid rgb(255, 255, 255);
border-top: 0.1em solid rgb(255, 255, 255);
transform: rotate(45deg);
margin-left: -0.15em;
}
}
.label {
flex-grow: 1;
flex-shrink: 1;
font-size: 0.7em;
color: rgb(222, 222, 222);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
opacity: 1;
&.hit0 {
opacity: 0.6;
}
&.hit25 {
opacity: 0.8;
}
&.hit50 {
opacity: 1;
}
&.hit75 {
opacity: 1;
color: rgb(238, 207, 139);
}
&.hit100 {
opacity: 1;
color: rgb(249, 189, 64);
}
}
.value {
color: rgb(249, 189, 64);
font-size: 0.7em;
margin-left: auto;
}
&.main {
background-color: rgb(65, 147, 237);
.prop-icon {
width: 1.2em;
margin-bottom: 0.2em;
filter: drop-shadow(0 0 0.4em rgba(0, 0, 0, 0.3));
}
.label {
color: rgb(255, 255, 255);
text-shadow: 0 0 0.4em rgba(0, 0, 0, 0.3);
font-size: 0.8em;
opacity: 1;
}
.value {
color: rgb(255, 255, 255);
text-shadow: 0 0 0.4em rgba(0, 0, 0, 0.3);
font-size: 1em;
}
}
}
}
}
}
.damage-title {
padding-top: 1.2em;
}
.damagelist {
margin: 0 2em;
margin-top: 1em;
text-align: center;
display: grid;
backdrop-filter: blur(0.2em);
border-radius: 0.5em;
overflow: hidden;
box-shadow: 0 0 3em rgba(0, 0, 0, 0.6);
border: 0.1em solid rgba(255, 255, 255, 0.2);
.dmg-tr {
display: grid;
grid-template-columns: 1.5fr 1fr 1fr;
border-bottom: 0.1em solid rgba(255, 255, 255, 0.2);
&:first-child {
border-top: 0.2em solid rgba(255, 255, 255, 0.2);
border-bottom: 0.2em solid rgba(255, 255, 255, 0.2);
font-size: 1.1em;
background: rgba(0, 0, 0, 0.2);
text-shadow: 0 0 0.2em rgba(0, 0, 0, 0.6);
color: rgb(206, 190, 149);
.dmg-td {
text-align: center !important;
background: none !important;
}
}
}
.dmg-td {
padding: 0.5em 0.5em;
font-size: 0.9em;
border-right: 0.1em solid rgba(255, 255, 255, 0.2);
&:first-child {
text-align: left;
background: rgba(0, 0, 0, 0.2);
color: rgb(206, 190, 149);
}
&:last-child {
border-right: none;
}
}
}
}
.copyright {
margin-top: -3.3em;
position: relative;
z-index: 5;
}