feat(desktop): embed BoosAPI Desktop client as a subproject
Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
:root {
|
||||
--vp-c-brand-1: #309731;
|
||||
--vp-c-brand-2: #27802a;
|
||||
--vp-c-brand-3: #1f6922;
|
||||
--vp-c-brand-soft: rgba(48, 151, 49, 0.14);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-brand-1: #3fba40;
|
||||
--vp-c-brand-2: #309731;
|
||||
--vp-c-brand-3: #27802a;
|
||||
--vp-c-brand-soft: rgba(63, 186, 64, 0.16);
|
||||
}
|
||||
|
||||
/* Hero name gradient with brand green */
|
||||
:root {
|
||||
--vp-home-hero-name-color: transparent;
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #309731 30%, #56c457);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #3fba40 30%, #7ade7b);
|
||||
}
|
||||
|
||||
/* Hero: center text, hide image area */
|
||||
.VPHero .VPImage,
|
||||
.VPHero .image-container,
|
||||
.VPHero .image {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Override default hero layout for centered text-only hero */
|
||||
.VPHero .container {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.VPHero .main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
.VPHero .heading {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.VPHero .name,
|
||||
.VPHero .text {
|
||||
margin: 0 auto !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
.VPHero .tagline {
|
||||
margin: 0 auto !important;
|
||||
text-align: center !important;
|
||||
max-width: 576px !important;
|
||||
}
|
||||
|
||||
/* Remove default hero actions (we use custom ones) */
|
||||
.VPHero .actions {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Hide default VitePress features (we render custom FeaturesGrid) */
|
||||
.VPFeatures {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Reduce hero vertical space */
|
||||
@media (min-width: 960px) {
|
||||
.VPHero {
|
||||
padding-top: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) !important;
|
||||
padding-bottom: 32px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Nav icons via ::before pseudo-elements */
|
||||
.VPNavBarMenuLink[href="/"],
|
||||
.VPNavBarMenuLink[href="/zh/"],
|
||||
.VPNavBarMenuLink[href="/zh-tw/"],
|
||||
.VPNavBarMenuLink[href="/ja/"],
|
||||
.VPNavBarMenuLink[href="/ko/"],
|
||||
.VPNavBarMenuLink[href="/fr/"],
|
||||
.VPNavBarMenuLink[href="/de/"],
|
||||
.VPNavBarMenuLink[href="/es/"],
|
||||
.VPNavBarMenuLink[href="/ru/"],
|
||||
.VPNavBarMenuLink[href="/hi/"],
|
||||
.VPNavBarMenuLink[href="/ar/"] {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
.VPNavBarMenuLink[href="/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh-tw/"]::before,
|
||||
.VPNavBarMenuLink[href="/ja/"]::before,
|
||||
.VPNavBarMenuLink[href="/ko/"]::before,
|
||||
.VPNavBarMenuLink[href="/fr/"]::before,
|
||||
.VPNavBarMenuLink[href="/de/"]::before,
|
||||
.VPNavBarMenuLink[href="/es/"]::before,
|
||||
.VPNavBarMenuLink[href="/ru/"]::before,
|
||||
.VPNavBarMenuLink[href="/hi/"]::before,
|
||||
.VPNavBarMenuLink[href="/ar/"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
}
|
||||
|
||||
/* Home icon (nav item 1) */
|
||||
.VPNavBarMenuLink[href="/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh-tw/"]::before,
|
||||
.VPNavBarMenuLink[href="/ja/"]::before,
|
||||
.VPNavBarMenuLink[href="/ko/"]::before,
|
||||
.VPNavBarMenuLink[href="/fr/"]::before,
|
||||
.VPNavBarMenuLink[href="/de/"]::before,
|
||||
.VPNavBarMenuLink[href="/es/"]::before,
|
||||
.VPNavBarMenuLink[href="/ru/"]::before,
|
||||
.VPNavBarMenuLink[href="/hi/"]::before,
|
||||
.VPNavBarMenuLink[href="/ar/"]::before {
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Features icon (nav item 2) */
|
||||
.VPNavBarMenuLink[href*="/features"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Download icon (nav item 3) */
|
||||
.VPNavBarMenuLink[href*="/download"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Docs icon (nav item 4) */
|
||||
.VPNavBarMenuLink[href*="/guide/"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6c41.3-26.6 89.3-40.7 138.4-40.7H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6c41.3-26.6 89.3-40.7 138.4-40.7H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Features/download/docs links also need flex layout */
|
||||
.VPNavBarMenuLink[href*="/features"],
|
||||
.VPNavBarMenuLink[href*="/download"],
|
||||
.VPNavBarMenuLink[href*="/guide/"] {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
/* Nav icon color follows link text: default muted, active = brand color */
|
||||
.VPNavBarMenuLink:hover::before,
|
||||
.VPNavBarMenuLink.active::before {
|
||||
background-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
Reference in New Issue
Block a user