/* * oaer.css * Copyright (C) 2024 veypi * * Distributed under terms of the MIT license. */ @import "./animate.scss"; div[voa] { box-sizing: border-box; --oabg-base: var(--bg-base, #efefef); --oafg-base: var(--fg-base, #090909); --oaheader-bg: linear-gradient(90deg, #6849E1, #b09ef4); div { box-sizing: border-box; } } .voa { user-select: none; cursor: pointer; height: inherit; width: inherit; display: flex; justify-content: center; align-items: center; .voa-off { // color: var(--oafg-base); font-size: 0.9rem; } .voa-on { border-radius: 100%; background: #999; height: inherit; width: inherit; img { height: inherit; width: inherit; vertical-align: middle; border-radius: 50%; } } :hover { opacity: 0.9; } } .voa-modal { user-select: none; position: fixed; top: 50%; left: 50%; translate: -50% -50%; padding: 2rem; z-index: 10000; width: 40%; min-width: 20rem; &::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 2rem; background-color: rgba(240, 240, 240, 0.5); backdrop-filter: blur(20px); /* 模糊效果 */ z-index: -1; } } .voa-slide-mask { position: fixed; visibility: hidden; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 999; &::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.11); /* 半透明白色遮罩 */ backdrop-filter: blur(1px); /* 模糊效果 */ } .voa-slide { position: absolute; top: 0; right: 0; height: 100vh; width: 20rem; .voa-slide-header { position: relative; width: 100%; height: 4rem; background: var(--oaheader-bg); z-index: 1; } .voa-slide-body { position: relative; width: 100%; height: calc(100% - 4rem); background: var(--oabg-base); color: var(--oafg-base); transform: translateY(-140%); .voa-slide-main { height: calc(100% - 3rem); overflow: auto; padding: 1rem; .voa-sm-separate { height: 1px; margin: 1rem 0; background: var(--oafg-base); width: 100%; opacity: 0.4; } } .voa-slide-footer { border-top: solid 2px #000; height: 3rem; font-size: 1.5rem; line-height: 3rem; text-align: center; cursor: pointer; box-sizing: border-box; opacity: 0.6; &:hover { opacity: 1; } } } } } .voa-account { .voa-account-header { display: flex; justify-content: start; align-items: center; gap: 0.5rem; } .voa-account-body { width: 100%; height: 7rem; display: flex; align-items: center; gap: 2rem; .voa-ab-ico { display: contents; img { width: 4rem; height: 4rem; vertical-align: middle; border-radius: 50%; } } .voa-ab-info { height: 100%; width: calc(100% - 6rem); display: flex; justify-content: space-between; flex-direction: column; div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } } } .voa-item { padding: 0 1rem; .voa-item-header { display: flex; margin: 0 -1rem; height: 3rem; align-items: center; .voa-item-title { line-height: 3rem; font-size: 1.25rem; cursor: pointer; user-select: none; font-weight: 500; } } .voa-item-body { margin: 0.5rem 0; } } .voa-apps { .voa-apps-header {} .voa-apps-body { flex-wrap: wrap; gap: 1rem; } .voa-apps-box { img { border-radius: 50%; width: 3rem; height: 3rem; object-fit: cover; } } } .voa-fs { .voa-fs-header {} .fsdir { width: 100%; cursor: pointer; user-select: none; .fsdir-header { width: 100%; display: flex; justify-content: start; gap: 4px; align-items: center; height: 1.5rem; line-height: 1.5rem; border-radius: 0.5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; &:hover { background: rgba(0, 0, 0, 0.1); } } .fsdir-body { width: 100%; .fsdir-item { width: 100%; display: flex; justify-content: start; gap: 4px; border-radius: 0.5rem; height: 1.5rem; line-height: 1.5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; &:hover { background: rgba(0, 0, 0, 0.1); } } } } } .voa-logo { background-image: url("../favicon.svg"); background-size: cover; background-position: center; } .voa-btn { position: relative; text-align: center; display: block; border: none; &::after { content: ""; position: absolute; inset: 0; border-radius: inherit; transition: 0.3s; } &:active::after { box-shadow: 0 1px 0px 0px rgba(0, 0, 0, 0.5); /* opacity: 0; */ } &:active { opacity: 0.8; } } .vflex { display: flex; } .vflex-center { display: flex; justify-content: center; align-items: center; } .vflex-grow { flex-grow: 1; }