Stapxs-QQ-Lite-2.0/src/assets/css/view.css

1103 lines
24 KiB
CSS

html, body {
overflow: hidden;
height: 100%;
padding: 0;
margin: 0;
}
.top-bar {
-webkit-app-region: drag;
box-shadow: 0 0 10px 0 rgb(0 0 0 / 28%);
background: var(--color-card-2);
margin-bottom: 10px;
flex-direction: row;
position: absolute;
display: flex;
height: 40px;
width: 100%;
z-index: 99;
}
.top-bar > img {
margin: 10px 15px;
height: 20px;
}
.top-bar > span {
color: var(--color-font);
font-weight: bold;
font-size: 0.9rem;
line-height: 40px;
}
.top-bar > div.space {
flex: 1;
}
.top-bar > div.controller {
-webkit-app-region: no-drag;
display: flex;
}
.top-bar > div.controller > div {
transition: background .2s;
justify-content: center;
border-radius: 7px;
display: flex;
margin: 4px 1px;
padding: 9px;
width: 26px;
}
.top-bar > div.controller > div.min > svg {
transform: scale(0.9);
}
.top-bar > div.controller > div.close {
margin-right: 4px;
}
.top-bar > div.controller > div:hover {
background: var(--color-card-1);
}
.top-bar > div.controller > div.close:hover {
background: #f20000dd;
}
.top-bar > div.controller > div > svg {
fill: var(--color-font);
height: 16px;
}
#app, #base-app {
background-color: var(--color-bg);
height: 100%;
}
#base-app.withBar {
height: calc(100% - 40px);
padding-top: 40px;
}
.main-body {
flex-direction: row;
margin-top: 0;
display: flex;
height: 100%;
}
.main-body > ul {
background: var(--color-card-2);
flex-direction: column;
display: flex;
height: 100%;
border: none;
width: 75px;
}
.main-body > ul > li {
padding: 0 3px;
}
.main-body > ul > li:first-child {
padding-top: 15px;
}
.main-body > ul > li::after {
display: none;
}
.main-body > ul > li.layui-this > svg {
background-color: var(--color-main);
fill: var(--color-font-r);
}
.main-body > ul > li > svg {
transition: background .3s, fill .3s;
fill: var(--color-font-1);
border-radius: 7px;
padding: 15px;
height: 20px;
width: 20px;
}
.main-body > div {
height: 100%;
width: 100%;
padding: 0;
flex: 1;
}
.main-body > div > div {
height: 100%;
}
.home-body {
justify-content: center;
flex-direction: row;
align-items: center;
display: flex;
height: 100%;
width: 100%;
}
.login-pan-card {
background: var(--color-card);
padding: 40px 30px;
text-align: center;
max-width: 310px;
overflow: hidden;
}
.login-pan-card > svg {
fill: var(--color-main);
width: 25%;
}
.login-pan-card p {
color: var(--color-main);
font-size: 1rem;
margin: 20px;
}
.login-pan-card label {
background: var(--color-card-1);
width: calc(100% - 42px);
transition: all .3s;
border-radius: 50px;
margin-top: 10px;
padding: 0 20px;
display: flex;
}
.login-pan-card label:focus-within {
background: var(--color-card-2);
}
.login-pan-card label:focus-within > svg {
fill: var(--color-main);
}
.login-pan-card label:focus-within > input {
outline: none;
}
.login-pan-card label > input {
background: transparent;
width: 100%;
height: 40px;
flex: 1;
}
.login-pan-card label > svg {
fill: var(--color-font);
transition: fill .3s;
width: 15px;
}
.login-pan-card label.default {
background: unset;
border: none;
}
.login-pan-card label.default > input {
background: unset;
height: auto;
flex: unset;
width: auto;
}
.login-pan-card label.default > a {
margin-left: 10px;
margin-top: 0;
}
.login-pan-card button {
margin-top: 30px;
height: 40px;
width: 100%;
}
.login-pan-card a {
color: var(--color-font);
font-size: 0.9rem;
margin-top: 10px;
cursor: pointer;
display: block;
opacity: 0.7;
}
.wave-pan {
width: calc(100% + 60px);
margin-bottom: -50px;
margin-top: -90px;
overflow: hidden;
z-index: -1;
float: left;
}
.wave-pan > svg {
fill: var(--color-card-2);
}
.wave-pan > svg > g > use {
opacity: 0.5;
}
.wave-pan > svg > g > use:last-child {
opacity: 1;
}
.friend-view {
flex-direction: row;
display: flex;
height: 100%;
width: 100%;
}
.friend-view > div:last-child {
justify-content: center;
align-items: center;
display: flex;
flex: 1;
}
.friend-view > div:last-child > div {
background: var(--color-card-1);
text-align: center;
padding: 40px;
}
.friend-view > div:last-child > div > svg {
fill: var(--color-main);
width: 50px;
}
.friend-view > div:last-child > div > span {
font-size: 0.9rem;
margin-top: 10px;
display: block;
}
.friend-list {
background: var(--color-card-1);
flex-direction: column;
overflow: hidden;
display: flex;
width: 300px;
}
.friend-list > div:first-child {
margin: 15px;
}
.friend-list > div:first-child > div.base {
background: var(--color-main);
border-radius: 7px 7px 0 0;
color: var(--color-font-r);
align-items: center;
font-size: 1rem;
padding: 10px;
display: flex;
}
.friend-list > div:first-child > div.base.only {
border-radius: 7px;
}
.friend-list > div:first-child > div.small {
display: none;
}
.friend-list > div:first-child > div.small > span {
background: var(--color-main);
color: var(--color-font-r);
align-items: center;
margin-right: 10px;
border-radius: 7px;
padding: 0 20px;
font-size: 1rem;
display: flex;
height: 50px;
flex: 1;
}
.friend-list > div:first-child > div > svg {
fill: var(--color-font-r);
cursor: pointer;
opacity: 0.7;
height: 1rem;
}
.friend-list > div:first-child label {
background: var(--color-card-2);
border-radius: 0 0 7px 7px;
height: calc(1rem + 20px);
align-items: center;
display: flex;
width: 100%;
}
.friend-list > div:first-child label > svg {
fill: var(--color-font-1);
margin: 0 10px;
height: 0.9rem;
}
.friend-list > div:first-child label > input {
background: transparent;
padding: 0 15px;
height: 100%;
width: 100%;
margin: 0;
border: 0;
flex: 1;
}
.friend-list > div:last-child {
width: calc(100% - 5px);
padding: 0 7px 0 5px;
-webkit-box-flex: 1;
overflow-y: scroll;
font-size: 1rem;
height: 100%;
flex: 1;
}
.friend-list > div:last-child.open > div.active {
background: var(--color-main) !important;
color: var(--color-font-r) !important;
}
.friend-body {
user-select: none;
cursor: pointer;
display: flex;
flex-direction: row;
color: var(--color-font);
margin: 10px;
padding: 10px;
border-radius: 7px;
transform: translate(0, 0);
transition: background .2s, color .2s, transform .2s;
}
.friend-body.active {
background: var(--color-main);
color: var(--color-font-r);
}
.friend-body:hover {
background: var(--color-card-2) !important;
}
.friend-body.active:hover {
background: var(--color-main) !important;
}
.friend-body img {
border: 2px solid var(--color-card-2);
pointer-events: none;
border-radius: 7px;
height: 50px;
width: 50px;
}
.friend-body > svg {
background: var(--color-main);
fill: var(--color-font-1-r);
pointer-events: none;
border-radius: 7px;
padding: 15px;
height: 25px;
width: 25px;
}
.friend-body > div {
flex: 1;
margin-left: 10px;
overflow: hidden;
}
.friend-body > div:nth-child(1) {
flex: unset;
width: 4px;
background: var(--color-main);
border-radius: 4px;
margin-right: 10px;
transform: scaleY(0);
margin-left: 3px;
transition: transform .3s;
display: unset !important;
}
.friend-body.active > div:nth-child(1) {
background: var(--color-font);
}
.friend-body > div:nth-child(1).new {
transform: scaleY(0.5);
}
.friend-body > div p {
font-weight: bold;
margin-bottom: 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.friend-body > div > div {
align-items: center;
display: flex;
}
.friend-body > div > div a {
color: var(--color-font-1);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 0.9rem;
flex: 1;
}
.friend-body.active > div > div a {
color: var(--color-font-1-r);
}
.friend-body > div > div a.time {
flex: unset;
margin-left: 15px;
font-size: 0.8rem;
opacity: 0.7;
overflow: unset;
}
.friend-body > div > div svg {
width: 0.6rem;
fill: var(--color-font);
opacity: 0.7;
transform: rotate(45deg);
margin-right: 5px;
}
.friend-body.active > div > div svg {
fill: var(--color-font-r);
}
.friend-body > a {
font-size: 0.9rem;
color: var(--color-font-2);
}
.friend-body.active > a {
color: var(--color-font-1-r);
}
/* TODO: BCUI - 这段 css 将在将来迁移到 Border Card UI 中合并 */
.menu {
background: rgba(var(--color-bg-rgb), 0.7);
box-shadow: 0 0 5px var(--color-shader);
backdrop-filter: blur(50px);
transition: transform .1s;
transform-origin: top;
transform: scaleY(0);
pointer-events: all;
min-height: unset;
min-width: 100px;
max-width: 150px;
padding: 10px;
width: 20%;
}
.menu.topOut {
transition: transform .1s, margin-top .1s;
}
.menu.show {
transform: scaleY(1);
}
.menu > div {
transition: background .3s;
background: transparent;
align-items: center;
border-radius: 7px;
padding: 3px 15px;
cursor: pointer;
display: flex;
}
.menu > div:hover {
background: var(--color-main);
}
.menu > div > div > svg {
fill: var(--color-font-1);
transition: fill .3s;
margin-right: 10px;
margin-top: 7px;
height: 1rem;
width: 1rem;
}
.menu > div:hover > div > svg {
fill: var(--color-font-r);
}
.menu > div > a {
color: var(--color-font);
transition: color .3s;
}
.menu > div:hover > a {
color: var(--color-font-r);
}
/* TODO: BCUI - 这段 css 将在将来迁移到 Border Card UI 中合并 */
.ss-range {
--range-dot-height: 26px;
--range-height: 26px;
flex-direction: row !important;
display: flex !important;
}
.ss-range input {
background-image: linear-gradient(var(--color-main), var(--color-main));
background-color: var(--color-card-1);
background-repeat: no-repeat;
height: var(--range-height);
background-size: 0% 100%;
border-radius: 7px;
min-width: 100%;
-webkit-appearance: none;
}
.ss-range input::-webkit-slider-thumb,
.ss-range input::-moz-range-thumb {
-webkit-appearance: none;
height: calc(var(--range-dot-height) - 8px);
width: calc(var(--range-dot-height) - 8px);
box-shadow:0 0 5px var(--color-shader);
background:var(--color-main);
border: 5px solid #FFF;
border-radius: 100%;
cursor: pointer;
}
.ss-range span {
line-height: var(--range-height);
transform: translateX(-50%);
color: var(--color-font);
pointer-events: none;
margin-left: -50%;
}
.app-msg {
flex-direction: column-reverse;
justify-content: flex-start;
height: calc(100% - 20px);
width: calc(100% - 20px);
pointer-events: none;
position: absolute;
padding-left: 90px;
display: flex;
z-index: 10;
left: 0;
top: 0;
}
.app-msg > div {
box-shadow: 0 0 5px var(--color-shader);
background: var(--color-main);
overflow-wrap: anywhere;
align-items: center;
pointer-events: all;
width: fit-content;
border-radius: 7px;
padding: 10px 20px;
margin-top: 5px;
max-width: 20%;
display: flex;
}
.app-msg > div svg {
fill: var(--color-font-r);
}
.app-msg > div > div:first-child > svg {
color: var(--color-font-r);
margin-top: 5px;
height: 1rem;
}
.app-msg > div > a {
color: var(--color-font-r);
user-select: none;
margin: 0 10px;
}
.app-msg > div > div:last-child {
border-radius: 7px;
cursor: pointer;
height: 20px;
width: 20px;
}
.app-msg > div > div:last-child:hover {
background: rgba(0, 0, 0, 0.03);
}
.app-msg > div > div:last-child > svg {
color: var(--color-font-1-r);
margin-left: 5px;
margin-top: 3px;
height: 1rem;
height: 1rem;
}
.pop-box {
position: absolute;
height: 100%;
z-index: 20;
width: 100%;
left: 0;
top: 0;
}
.pop-box > div:last-child {
background: var(--color-card-2);
opacity: 0.7;
height: 100%;
width: 100%;
}
.pop-box-body {
transform: translate(-50%, -50%);
margin-top: calc(50vh - 35px);
transition: all .3s;
position: absolute;
margin-left: 50%;
width: 360px;
z-index: 20;
}
.pop-box-body > header {
align-items: center;
display: flex;
}
.pop-box-body > header > div:first-child {
background: transparent;
margin-right: 10px;
height: 1rem;
width: unset;
}
.pop-box-body > header svg {
fill: var(--color-font);
height: 1rem;
}
.pop-box-body > header svg:last-child {
cursor: pointer;
}
.pop-box-body > header a {
color: var(--color-font);
font-weight: bold;
font-size: 1rem;
flex: 1;
}
.pop-box-body > div:not(:last-child) {
padding: 20px;
}
.pop-box-body > div.button {
background: var(--color-card-1);
margin: 0 -20px -20px -20px;
border-radius: 0 0 7px 7px;
justify-content: flex-end;
flex-direction: row;
align-items: center;
padding: 15px;
display: flex;
}
.pop-box-body > div.button > button {
background: var(--color-card-2);
color: var(--color-font);
margin-left: 10px;
padding: 0 15px;
cursor: pointer;
}
.pop-box-body > div.button > button.master {
background: var(--color-main);
color: var(--color-font-r);
}
.pop-box-more {
position: absolute;
margin-left: -20px;
margin-top: 20px;
z-index: -1;
width: 100%;
}
.pop-box-more > div {
box-shadow: 0 0 3px var(--color-bg);
background: var(--color-card);
border-radius: 0 0 7px 7px;
margin: 0 10px;
height: 10px;
}
.pop-box-more > div.hid {
height: 0;
}
.update-info {
margin: -20px -20px 0px;
flex-direction: column;
align-items: center;
display: flex;
}
.update-info > span {
color: var(--color-main);
font-weight: bold;
font-size: 1rem;
}
.update-info > a {
color: var(--color-font-2);
font-size: 0.8rem;
}
.update-info > div {
width: calc(100% - 30px);
}
.update-info > div.title {
align-items: center;
margin-top: 10px;
display: flex;
}
.update-info > div.title > img {
outline: 2px solid var(--color-main);
border: 1px solid var(--color-bg);
height: calc(1.5rem - 3px);
border-radius: 100%;
}
.update-info > div.title > a {
color: var(--color-main);
margin-left: 10px;
flex: 1;
}
.update-info > div.title > span {
color: var(--color-font-2);
font-size: 0.8rem;
}
.update-info > div.info {
background: var(--color-bg);
flex-direction: column;
align-items: flex-start;
border-radius: 7px;
margin-top: 15px;
padding: 15px;
display: flex;
}
.update-info > div.info > span {
color: var(--color-main);
}
.update-info > div.info > span::before {
content: '\2022';
}
.update-info > div.info > div {
overflow-y: scroll;
max-height: 20vh;
margin-top: 10px;
width: 100%;
}
.update-info > div.info > div > div > span {
color: var(--color-font);
}
/* 图片预览器覆盖样式 */
.viewer {
overflow: hidden;
}
.viewer-button {
background-color: var(--color-card-2);
border-radius: 7px;
height: 40px;
width: 40px !important;
right: 0;
top: 0;
margin-top: 10px;
margin-right: 10px;
}
.viewer-button:focus,
.viewer-button:hover {
background-color: var(--color-card-2);
}
.viewer-button::before {
bottom: 10px;
left: 11px;
position: absolute;
}
.viewer-toolbar > ul > li {
background-color: var(--color-main);
justify-content: center;
align-items: center;
border-radius: 7px;
margin: 0 10px;
display: flex;
height: 45px;
width: 45px;
float: left;
}
.viewer-toolbar > ul > li:hover {
background-color: var(--color-main);
}
.viewer-toolbar > ul > li:focus {
background-color: var(--color-main);
box-shadow: 0 0 3px transparent;
}
.viewer-toolbar > ul > li::before {
margin: 7px;
}
.viewer-list > .viewer-active {
border-bottom: 2px solid var(--color-main);
}
.viewer-list > li {
width: 50px;
border-radius: 7px 7px 0 0;
border-bottom: 2px solid transparent;
}
.viewer-tooltip {
display: none;
}
.viewer-backdrop {
background: rgba(var(--color-card-2-rgb), 0.7);
/* backdrop-filter: blur(10px); */
}
.viewer-navbar {
background-color: transparent;
}
.viewer-footer {
height: 100%;
pointer-events: none;
display: flex;
flex-direction: column;
}
.viewer-footer > div {
margin: 20px;
}
.viewer-footer > div:last-child {
align-items: flex-end;
display: flex;
flex: 1;
}
.viewer-footer ul {
pointer-events: all;
height: 55px;
}
.hiden-home {
margin-top: calc(-100% + 5px);
transform: translateY(-100%);
}
.qq-err-card {
margin: -40px -30px -20px -30px;
}
.qq-err-card > div:first-child {
display: flex;
flex-direction: row;
align-items: center;
margin: -5px;
height: 2rem;
}
.qq-err-card > div:first-child img {
margin-right: 10px;
}
.qq-err-card > div:first-child span {
font-size: 0.9rem;
color: var(--color-font);
flex: 1;
}
.qq-err-card > div:first-child span span {
opacity: 0.1;
margin-left: 5px;
color: var(--color-font-2);
}
.qq-err-card > div:first-child svg {
cursor: pointer;
height: 1.5rem;
width: 1.5rem;
fill: var(--color-font-2);
}
.qq-err-card > div:last-child {
margin: 0 -8px;
padding: 10px;
color: var(--color-font);
margin: 0 -8px -3px -8px;
}
.qq-err-card > div:last-child hr {
margin: 5px 0;
background: var(--color-font-2);
opacity: 0.7;
border-bottom: 1px solid #fff;
}
.qq-err-card > div:last-child > div:first-child {
display: flex;
flex-direction: row;
align-items: center;
padding: 10px;
}
.qq-err-card > div:last-child > div:first-child img {
margin-right: 15px;
}
.qq-err-card > div:last-child > div:first-child span {
font-size: 0.7rem;
}
.qq-err-card > div:last-child > div:last-child {
display: flex;
flex-direction: column;
font-size: 0.7rem;
}
.qq-err-card > div:last-child > div:last-child div {
display: flex;
align-items: center;
margin: 5px 0;
}
.qq-err-card > div:last-child > div:last-child textarea {
max-height: 100px;
height: 100px;
border: 0;
margin: 10px 0;
border-bottom: 1px solid var(--color-font-2);
border-radius: 3px;
background: var(--color-bg);
padding: 10px;
color: var(--color-font-2);
}
.qq-err-card > div:last-child > div:last-child button {
width: 90px;
border: 1px solid #007bff;;
border-radius: 7px;
background: var(--color-bg);
color: var(--color-font);
}
.qq-err-card-err {
color: var(--color-font-2);
margin-bottom: 10px;
}
.qq-err-card-err span:last-child {
flex: 1;
text-align: center;
}
.qq-err-card-err a {
color: #007bff;
position: absolute;
right: 15px;
cursor: pointer;
}
.qq-err-card-err a span:first-child {
transform: rotate(90deg);
display: inline-block;
margin-right: 5px;
}
@media (max-width: 700px) {
/* 侧栏及主布局自适应 */
.main-body {
flex-direction: column-reverse;
}
.main-body > div {
height: calc(100% - 75px);
}
.main-body > ul {
justify-content: center;
align-items: center;
flex-direction: row;
height: 75px;
width: 100%;
z-index: 20;
}
.main-body > ul > li {
padding-top: 15px !important;
}
.side-bar-space {
display: none;
}
.hiden-home {
margin-top: calc(100% + 5px);
transform: translateY(0);
margin-left: -70px;
}
/* 二级侧栏 */
.friend-list {
transition: width .3s;
width: 80px;
}
.friend-list.open {
width: 300px !important;
}
.friend-list > div:first-child > div.base {
display: none;
}
.friend-list > div:first-child > div.small {
align-items: center;
display: flex;
height: 50px;
width: 100%;
}
.friend-list > div:first-child > div.small > div.reload {
display: none;
}
.friend-list.open > div:first-child > div.small > div.reload {
background: var(--color-card-2);
display: flex !important;
margin-right: 10px;
}
.friend-list.open > div:first-child > div.small > div.reload > svg {
fill: var(--color-font);
}
.friend-list > div:first-child > div.small > div {
background: var(--color-main);
justify-content: center;
align-items: center;
border-radius: 7px;
cursor: pointer;
display: flex;
height: 100%;
width: 50px;
}
.friend-list > div:first-child > div.small > label {
margin-right: 10px;
height: 50px;
flex: 1;
}
.friend-list.open > div:first-child > div.small > label {
display: flex !important;
}
.friend-list > div:first-child > div.small > div > svg {
fill: var(--color-font-r);
height: 17px;
opacity: 1;
}
.friend-list > div:first-child label {
display: none;
}
.friend-list > div:last-child.open > div {
padding: 10px !important;
margin: 10px !important;
}
.friend-list > div:last-child.open > div > div {
display: block !important;
}
.friend-body {
background: transparent !important;
justify-content: center;
margin: 0 5px 0 0;
padding: 10px 0;
}
.friend-body > div {
display: none;
}
.friend-body img {
height: 45px;
width: 45px;
}
.friend-body > svg {
height: 20px;
width: 20px;
}
.friend-body.active:hover {
background: var(--color-card-2) !important;
}
.friend-body.active img {
border: 2px solid var(--color-main);
}
.friend-body > div:nth-child(1) {
transform: scaleY(1) !important;
position: absolute;
}
.friend-body > div:nth-child(1).new {
border-radius: 100%;
height: 15px;
width: 15px;
right: -3px;
top: 4px;
}
/* 应用消息 */
.app-msg {
height: calc(100% - 20px - 70px);
padding-left: 20px;
}
.app-msg > div {
max-width: calc(100% - 80px);
}
/* 右击菜单 */
.menu {
width: 30%;
}
.menu > div {
padding: 5px 15px;
}
}
/* 全局通用弹窗 */
@media (max-width: 500px) {
.pop-box-body {
width: calc(100% - 80px);
transform: unset !important;
margin: 20px;
bottom: 0;
}
.pop-box-more {
display: none;
}
}
/* 其他覆盖样式 */
.layui-tab-bar {
display: none;
}
/* 全局淡入淡出动画 */
.v-enter-active,
.v-leave-active {
transition: all 0.4s ease;
}
.v-enter-active>div.ss-card,
.v-leave-active>div.ss-card {
transition: all 0.2s ease;
}
.v-enter-from,
.v-leave-to {
opacity: 0;
}
/* 如果里面有卡片,触发卡片浮入浮出动画 */
/* TODO: 对于本来就使用 translate 定位的卡片会失效(或者出问题) */
.v-enter-from > div.ss-card {
transform: translateY(-20px);
}
.v-leave-to > div.ss-card {
transform: translateY(20px);
}