ReMe/docs/.vitepress/theme/custom.css
jinliyl 0eba6ea831
Some checks failed
CI / Python tests / Unit Tests - py3.13 (push) Has been cancelled
CI / ReMe Studio / Studio checks (push) Has been cancelled
CI / TypeScript integrations / Type-check, test, and pack (push) Has been cancelled
CI / Windows / CLI smoke - py3.11 (push) Has been cancelled
Security / CodeQL / Analyze javascript-typescript (push) Has been cancelled
CI / Python tests / Unit Tests - py3.11 (push) Has been cancelled
CI / Documentation / Test and build documentation (push) Has been cancelled
CI / Python packages / Build and verify distributions (push) Has been cancelled
CI / Python quality / Pre-commit (push) Has been cancelled
CI / Python tests / Unit Tests - py3.12 (push) Has been cancelled
Deploy / Documentation / Build documentation (push) Has been cancelled
Security / CodeQL / Analyze python (push) Has been cancelled
Deploy / Documentation / deploy (push) Has been cancelled
feat(docs): redesign homepage and add traffic dashboard (#522)
* feat(docs): redesign homepage and add traffic dashboard

* feat(docs): publish readmes as project overview
2026-09-05 00:53:32 +08:00

370 lines
8.9 KiB
CSS

:root {
--vp-layout-max-width: 1560px;
--vp-c-brand-1: #087f6a;
--vp-c-brand-2: #086554;
--vp-c-brand-3: #19a98f;
--vp-c-brand-soft: rgba(8, 127, 106, 0.14);
--vp-c-bg: #ffffff;
--vp-c-bg-alt: #f4f7f5;
--vp-c-bg-elv: #ffffff;
--vp-c-bg-soft: #f1f6f3;
--vp-c-text-1: #17221d;
--vp-c-text-2: #526159;
--vp-c-text-3: #718078;
--vp-c-divider: #dce5e0;
--vp-font-family-base: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--vp-font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
--reme-blue: #3156d9;
--reme-green: #087f6a;
}
.dark {
--vp-c-brand-1: #57dfc3;
--vp-c-brand-2: #35c6a9;
--vp-c-brand-3: #087f6a;
--vp-c-brand-soft: rgba(87, 223, 195, 0.14);
--vp-c-bg: #0d1512;
--vp-c-bg-alt: #09100d;
--vp-c-bg-elv: #14201b;
--vp-c-bg-soft: #17251f;
--vp-c-text-1: #edf7f3;
--vp-c-text-2: #bacbc4;
--vp-c-text-3: #91a49c;
--vp-c-divider: #283a33;
}
body {
background:
radial-gradient(circle at 8% 8%, rgba(25, 201, 176, 0.055), transparent 28rem),
var(--vp-c-bg);
}
.VPNav {
border-bottom: 1px solid color-mix(in srgb, var(--vp-c-divider) 84%, transparent);
background: color-mix(in srgb, var(--vp-c-bg) 88%, transparent);
backdrop-filter: blur(18px) saturate(140%);
}
.VPNavBarTitle .logo {
width: 30px;
height: 30px;
}
.VPNavBarTitle .title {
font-weight: 780;
letter-spacing: -0.02em;
}
.VPNavBarSearch .DocSearch-Button,
.VPNavBarSearch button {
min-width: 190px;
border: 1px solid var(--vp-c-divider);
border-radius: 10px;
background: var(--vp-c-bg-alt);
}
@media (min-width: 960px) {
.VPNavBar.has-sidebar .container > .title {
width: 113px !important;
padding-right: 0 !important;
}
.VPNavBar.has-sidebar .content {
padding-left: 113px !important;
}
.VPNavBarSearch {
padding-left: 24px !important;
}
}
@media (min-width: 1496px) {
.VPNavBar.has-sidebar .container {
position: relative !important;
max-width: 1496px !important;
margin: 0 auto !important;
}
.VPNavBar.has-sidebar .container > .title {
width: 81px !important;
padding-left: 0 !important;
}
.VPNavBar.has-sidebar .content {
padding-right: 0 !important;
padding-left: 81px !important;
}
}
.VPSidebar {
border-right: 1px solid var(--vp-c-divider);
background: color-mix(in srgb, var(--vp-c-bg-alt) 82%, transparent);
}
.VPSidebarItem .text {
font-size: 14px;
}
.VPSidebarItem.level-0 > .item > .text {
color: var(--vp-c-text-1);
font-weight: 750;
}
.VPSidebarItem.is-active > .item .link > .text {
color: var(--vp-c-brand-1);
}
.VPDocAsideOutline {
border-left-color: var(--vp-c-divider);
}
.VPDoc .container > .content {
min-width: 0;
}
.VPDoc .content-container {
max-width: 900px !important;
}
.vp-doc {
color: var(--vp-c-text-1);
font-size: 16px;
line-height: 1.78;
}
.vp-doc h1 {
margin-bottom: 28px;
font-size: clamp(36px, 5vw, 52px);
line-height: 1.08;
letter-spacing: -0.045em;
}
.vp-doc h2 {
margin-top: 52px;
border-top-color: var(--vp-c-divider);
font-size: 27px;
letter-spacing: -0.025em;
}
.vp-doc h3 {
margin-top: 34px;
font-size: 20px;
}
.vp-doc :not(pre) > code {
border-radius: 5px;
color: color-mix(in srgb, var(--vp-c-brand-1) 82%, var(--vp-c-text-1));
}
.vp-doc div[class*="language-"] {
border: 1px solid var(--vp-c-divider);
border-radius: 12px;
box-shadow: inset 3px 0 0 color-mix(in srgb, var(--vp-c-brand-1) 62%, transparent);
}
.copy-markdown-wrap {
display: flex;
justify-content: flex-end;
margin-bottom: 18px;
}
.copy-markdown {
display: inline-flex;
align-items: center;
gap: 7px;
min-height: 34px;
padding: 6px 12px;
border: 1px solid var(--vp-c-divider);
border-radius: 9px;
color: var(--vp-c-text-2);
background: var(--vp-c-bg-soft);
cursor: pointer;
font-size: 13px;
font-weight: 650;
}
.copy-markdown:hover,
.copy-markdown.copied {
border-color: var(--vp-c-brand-1);
color: var(--vp-c-brand-1);
}
.copy-markdown svg {
width: 15px;
height: 15px;
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.source-link-wrap {
margin-top: 48px;
padding-top: 20px;
border-top: 1px solid var(--vp-c-divider);
font-size: 13px;
}
.source-link-wrap a {
color: var(--vp-c-text-3);
text-decoration: none;
}
.source-link-wrap a:hover {
color: var(--vp-c-brand-1);
}
.VPHome {
overflow: hidden;
background:
radial-gradient(circle at 14% 14%, rgba(25, 201, 176, 0.14), transparent 30rem),
radial-gradient(circle at 86% 10%, rgba(49, 86, 217, 0.11), transparent 28rem);
}
.VPHero .name {
background: linear-gradient(120deg, var(--reme-green), var(--reme-blue));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.VPHero .name,
.VPHero .text {
letter-spacing: -0.05em;
}
.VPHero .image-bg {
width: min(88%, 420px);
height: 220px;
border-radius: 42%;
background: linear-gradient(125deg, rgba(25, 201, 176, 0.34), rgba(49, 86, 217, 0.25));
filter: blur(52px);
}
.VPHero .image-container {
isolation: isolate;
perspective: 900px;
}
.VPHero .image-container::before,
.VPHero .image-container::after {
position: absolute;
content: "";
pointer-events: none;
}
.VPHero .image-container::before {
z-index: 0;
top: 50%;
left: 50%;
width: min(88%, 430px);
height: 210px;
border: 1px solid color-mix(in srgb, var(--vp-c-bg-elv) 64%, var(--reme-blue));
border-radius: 30px;
background:
linear-gradient(135deg, color-mix(in srgb, var(--vp-c-bg-elv) 92%, transparent), color-mix(in srgb, var(--vp-c-bg-soft) 76%, transparent)),
radial-gradient(circle at 15% 15%, rgba(25, 201, 176, 0.14), transparent 42%);
box-shadow:
0 30px 70px rgba(19, 70, 91, 0.16),
inset 0 1px 0 color-mix(in srgb, white 72%, transparent);
backdrop-filter: blur(22px) saturate(135%);
transform: translate(-50%, -50%) rotate(-1.5deg);
}
.VPHero .image-container::after {
z-index: -1;
top: 50%;
left: 50%;
width: min(78%, 380px);
height: 210px;
border: 1px solid rgba(49, 86, 217, 0.17);
border-radius: 30px;
background: linear-gradient(135deg, rgba(25, 201, 176, 0.1), rgba(49, 86, 217, 0.11));
transform: translate(-46%, -48%) rotate(7deg);
}
.VPHero .image-src {
z-index: 1;
width: min(76%, 380px);
max-width: 380px !important;
max-height: 150px !important;
object-fit: contain;
filter: drop-shadow(0 12px 20px rgba(18, 78, 105, 0.16));
}
.VPHomeFeatures .item:nth-child(1) { --feature-accent: #18b99e; }
.VPHomeFeatures .item:nth-child(2) { --feature-accent: #25a8dc; }
.VPHomeFeatures .item:nth-child(3) { --feature-accent: #6575e8; }
.VPHomeFeatures .item:nth-child(4) { --feature-accent: #e69a42; }
.VPHomeFeatures .VPFeature {
border-color: color-mix(in srgb, var(--feature-accent) 28%, var(--vp-c-divider));
border-radius: 16px;
background:
radial-gradient(circle at 10% 4%, color-mix(in srgb, var(--feature-accent) 16%, transparent), transparent 52%),
linear-gradient(150deg, var(--vp-c-bg-elv), color-mix(in srgb, var(--feature-accent) 7%, var(--vp-c-bg-soft)));
box-shadow:
inset 0 1px 0 color-mix(in srgb, white 76%, transparent),
0 8px 24px color-mix(in srgb, var(--feature-accent) 7%, transparent);
transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.VPHomeFeatures .VPFeature .box {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
grid-template-rows: auto 1fr;
column-gap: 12px;
align-items: center;
}
.VPHomeFeatures .VPFeature .icon {
grid-column: 1;
grid-row: 1;
width: auto;
height: auto;
margin: 0;
border: 0;
background: transparent;
box-shadow: none;
font-size: 25px;
}
.VPHomeFeatures .VPFeature .title {
grid-column: 2;
grid-row: 1;
color: color-mix(in srgb, var(--feature-accent) 22%, var(--vp-c-text-1));
}
.VPHomeFeatures .VPFeature .details {
grid-column: 1 / -1;
grid-row: 2;
align-self: start;
padding-top: 18px;
}
.VPHomeFeatures .VPFeature .link-text {
grid-column: 1 / -1;
}
.VPHomeFeatures .VPFeature:hover {
transform: translateY(-3px);
border-color: color-mix(in srgb, var(--feature-accent) 48%, var(--vp-c-divider));
box-shadow: 0 18px 38px color-mix(in srgb, var(--feature-accent) 15%, transparent);
}
.dark .VPHomeFeatures .VPFeature {
background:
radial-gradient(circle at 10% 4%, color-mix(in srgb, var(--feature-accent) 18%, transparent), transparent 54%),
linear-gradient(150deg, var(--vp-c-bg-elv), color-mix(in srgb, var(--feature-accent) 8%, var(--vp-c-bg-soft)));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
@media (max-width: 768px) {
.vp-doc h1 { font-size: 34px; }
.vp-doc h2 { margin-top: 44px; font-size: 24px; }
.copy-markdown-wrap { margin-top: -8px; }
.VPHero .image-container::before,
.VPHero .image-container::after { height: 176px; border-radius: 24px; }
.VPHero .image-src { width: 72%; max-height: 120px !important; }
}