You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

427 lines
9.4 KiB

/* color palette from <https://github.com/vuejs/theme> */
:root {
--vt-c-white: #ffffff;
--vt-c-white-soft: #f8f8f8;
--vt-c-white-mute: #f2f2f2;
--vt-c-black: #181818;
--vt-c-black-soft: #222222;
--vt-c-black-mute: #282828;
--vt-c-indigo: #2c3e50;
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
--vt-c-text-light-1: var(--vt-c-indigo);
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
--vt-c-text-dark-1: var(--vt-c-white);
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
}
/* semantic color variables for this project */
:root {
--color-background: var(--vt-c-white);
--color-background-soft: var(--vt-c-white-soft);
--color-background-mute: var(--vt-c-white-mute);
--color-border: var(--vt-c-divider-light-2);
--color-border-hover: var(--vt-c-divider-light-1);
--color-heading: var(--vt-c-text-light-1);
--color-text: var(--vt-c-text-light-1);
--section-gap: 160px;
}
@media (prefers-color-scheme: dark) {
:root {
--color-background: var(--vt-c-black);
--color-background-soft: var(--vt-c-black-soft);
--color-background-mute: var(--vt-c-black-mute);
--color-border: var(--vt-c-divider-dark-2);
--color-border-hover: var(--vt-c-divider-dark-1);
--color-heading: var(--vt-c-text-dark-1);
--color-text: var(--vt-c-text-dark-2);
}
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
font-weight: normal;
}
body {
min-height: 100vh;
color: var(--color-text);
background: var(--color-background);
transition: color 0.5s,
background-color 0.5s;
line-height: 1.6;
font-family: Inter,
-apple-system,
BlinkMacSystemFont,
'Segoe UI',
Roboto,
Oxygen,
Ubuntu,
Cantarell,
'Fira Sans',
'Droid Sans',
'Helvetica Neue',
sans-serif;
font-size: 15px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
margin: 0;
padding: 0;
overflow: hidden;
}
/*== layer提示框==*/
.yvan-msg {
min-width: 100px;
background-color: rgba(0, 0, 0, 0.6);
color: #fff;
border: none;
box-shadow: none;
margin: 0;
padding: 0;
border-radius: 2px;
position: fixed;
pointer-events: auto;
z-index: 10000;
}
.yvan-msg-content {
pointer-events: auto;
color: #fff;
padding: 12px 25px;
text-align: center;
position: relative;
line-height: 24px;
word-break: break-all;
overflow: hidden;
font-size: 14px;
overflow-x: hidden;
overflow-y: auto;
}
/*== 动画 ==*/
.yvan-anim {
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation-duration: 0.3s;
animation-duration: 0.3s;
}
@-webkit-keyframes yvan-bounceIn {
0% {
opacity: 0;
-webkit-transform: scale(0.5);
transform: scale(0.5);
}
100% {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes yvan-bounceIn {
0% {
opacity: 0;
-webkit-transform: scale(0.5);
-ms-transform: scale(0.5);
transform: scale(0.5);
}
100% {
opacity: 1;
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
}
.yvan-anim-00 {
-webkit-animation-name: yvan-bounceIn;
animation-name: yvan-bounceIn;
}
@-webkit-keyframes yvan-zoomInDown {
0% {
opacity: 0;
-webkit-transform: scale(0.1) translatey(-2000px);
transform: scale(0.1) translatey(-2000px);
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
}
60% {
opacity: 1;
-webkit-transform: scale(0.475) translatey(60px);
transform: scale(0.475) translatey(60px);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
}
@keyframes yvan-zoomInDown {
0% {
opacity: 0;
-webkit-transform: scale(0.1) translatey(-2000px);
-ms-transform: scale(0.1) translatey(-2000px);
transform: scale(0.1) translatey(-2000px);
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
}
60% {
opacity: 1;
-webkit-transform: scale(0.475) translatey(60px);
-ms-transform: scale(0.475) translatey(60px);
transform: scale(0.475) translatey(60px);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
}
.yvan-anim-01 {
-webkit-animation-name: yvan-zoomInDown;
animation-name: yvan-zoomInDown;
}
@-webkit-keyframes yvan-fadeInUpBig {
0% {
opacity: 0;
-webkit-transform: translatey(2000px);
transform: translatey(2000px);
}
100% {
opacity: 1;
-webkit-transform: translatey(0);
transform: translatey(0);
}
}
@keyframes yvan-fadeInUpBig {
0% {
opacity: 0;
-webkit-transform: translatey(2000px);
-ms-transform: translatey(2000px);
transform: translatey(2000px);
}
100% {
opacity: 1;
-webkit-transform: translatey(0);
-ms-transform: translatey(0);
transform: translatey(0);
}
}
.yvan-anim-02 {
-webkit-animation-name: yvan-fadeInUpBig;
animation-name: yvan-fadeInUpBig;
}
@-webkit-keyframes yvan-zoomInLeft {
0% {
opacity: 0;
-webkit-transform: scale(0.1) translatex(-2000px);
transform: scale(0.1) translatex(-2000px);
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
}
60% {
opacity: 1;
-webkit-transform: scale(0.475) translatex(48px);
transform: scale(0.475) translatex(48px);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
}
@keyframes yvan-zoomInLeft {
0% {
opacity: 0;
-webkit-transform: scale(0.1) translatex(-2000px);
-ms-transform: scale(0.1) translatex(-2000px);
transform: scale(0.1) translatex(-2000px);
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
}
60% {
opacity: 1;
-webkit-transform: scale(0.475) translatex(48px);
-ms-transform: scale(0.475) translatex(48px);
transform: scale(0.475) translatex(48px);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
}
.yvan-anim-03 {
-webkit-animation-name: yvan-zoomInLeft;
animation-name: yvan-zoomInLeft;
}
@-webkit-keyframes yvan-rollIn {
0% {
opacity: 0;
-webkit-transform: translatex(-100%) rotate(-120deg);
transform: translatex(-100%) rotate(-120deg);
}
100% {
opacity: 1;
-webkit-transform: translatex(0) rotate(0);
transform: translatex(0) rotate(0);
}
}
@keyframes yvan-rollIn {
0% {
opacity: 0;
-webkit-transform: translatex(-100%) rotate(-120deg);
-ms-transform: translatex(-100%) rotate(-120deg);
transform: translatex(-100%) rotate(-120deg);
}
100% {
opacity: 1;
-webkit-transform: translatex(0) rotate(0);
-ms-transform: translatex(0) rotate(0);
transform: translatex(0) rotate(0);
}
}
.yvan-anim-04 {
-webkit-animation-name: yvan-rollIn;
animation-name: yvan-rollIn;
}
@keyframes yvan-fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.yvan-anim-05 {
-webkit-animation-name: yvan-fadeIn;
animation-name: yvan-fadeIn;
}
@-webkit-keyframes yvan-shake {
0%,
100% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
10%,
30%,
50%,
70%,
90% {
-webkit-transform: translatex(-10px);
transform: translatex(-10px);
}
20%,
40%,
60%,
80% {
-webkit-transform: translatex(10px);
transform: translatex(10px);
}
}
@keyframes yvan-shake {
0%,
100% {
-webkit-transform: translatex(0);
-ms-transform: translatex(0);
transform: translatex(0);
}
10%,
30%,
50%,
70%,
90% {
-webkit-transform: translatex(-10px);
-ms-transform: translatex(-10px);
transform: translatex(-10px);
}
20%,
40%,
60%,
80% {
-webkit-transform: translatex(10px);
-ms-transform: translatex(10px);
transform: translatex(10px);
}
}
.yvan-anim-06 {
-webkit-animation-name: yvan-shake;
animation-name: yvan-shake;
}
@-webkit-keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/** flex多行容器 */
.flex-column-container {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
}
/** flex多列容器 */
.flex-row-container {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
/** flex自动填充 */
.flex-item-fill {
flex-grow: 1;
overflow: hidden;
}
/** flex固定大小 */
.flex-item-fixed {
flex-shrink: 0;
}
/** flex主轴上对齐方式 */
.flex-justify-content-center {
justify-content: center;
}
/** flex交叉轴上对齐方式 */
.flex-align-items-center {
align-items: center;
}
/** 内容居中 */
.content-center {
display: flex;
align-items: center;
justify-content: center;
}