Align desktop UI with Nova
|
|
@ -1,3 +1,5 @@
|
|||
@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap");
|
||||
|
||||
/*
|
||||
* Desktop window chrome — supplements the shared @repo/ui theme, which is
|
||||
* imported first in app/layout.tsx (`@ui/globals.css`) and provides the
|
||||
|
|
@ -17,21 +19,12 @@ body {
|
|||
isolation: isolate;
|
||||
background:
|
||||
radial-gradient(
|
||||
ellipse 90% 46% at 50% -4%,
|
||||
rgba(75, 160, 250, 0.22),
|
||||
transparent 60%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 52% 32% at 78% 12%,
|
||||
rgba(127, 108, 255, 0.14),
|
||||
ellipse 80% 60% at 50% 0%,
|
||||
rgba(75, 160, 250, 0.08) 0%,
|
||||
rgba(34, 97, 202, 0.04) 35%,
|
||||
transparent 70%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 42% 30% at 18% 20%,
|
||||
rgba(15, 240, 210, 0.08),
|
||||
transparent 74%
|
||||
),
|
||||
linear-gradient(180deg, #05080d 0%, #070b12 44%, #05070a 100%);
|
||||
#05080d;
|
||||
color: #fafafa;
|
||||
}
|
||||
|
||||
|
|
@ -42,21 +35,15 @@ body {
|
|||
content: "";
|
||||
background-image: radial-gradient(
|
||||
circle,
|
||||
rgba(255, 255, 255, 0.13) 1px,
|
||||
rgba(105, 167, 240, 0.18) 1px,
|
||||
transparent 1px
|
||||
);
|
||||
background-size: 18px 18px;
|
||||
mask-image: linear-gradient(
|
||||
to bottom,
|
||||
rgba(255, 255, 255, 0.72),
|
||||
rgba(255, 255, 255, 0.2) 44%,
|
||||
transparent 88%
|
||||
);
|
||||
-webkit-mask-image: linear-gradient(
|
||||
to bottom,
|
||||
rgba(255, 255, 255, 0.72),
|
||||
rgba(255, 255, 255, 0.2) 44%,
|
||||
transparent 88%
|
||||
background-size: 32px 32px;
|
||||
mask-image: radial-gradient(ellipse at center, black 55%, transparent 100%);
|
||||
-webkit-mask-image: radial-gradient(
|
||||
ellipse at center,
|
||||
black 55%,
|
||||
transparent 100%
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
|
@ -66,15 +53,7 @@ body {
|
|||
inset: 0;
|
||||
z-index: -1;
|
||||
content: "";
|
||||
background:
|
||||
radial-gradient(
|
||||
ellipse 86% 32% at 50% 100%,
|
||||
rgba(65, 115, 255, 0.1),
|
||||
transparent 70%
|
||||
),
|
||||
linear-gradient(90deg, transparent, rgba(75, 160, 250, 0.08), transparent)
|
||||
50% 0 / 60% 1px no-repeat,
|
||||
linear-gradient(180deg, rgba(5, 8, 13, 0), #05070a 92%);
|
||||
background: rgb(5 8 13 / 0.55);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
|
|
@ -87,15 +66,33 @@ body {
|
|||
|
||||
.desktop-login-page {
|
||||
display: grid;
|
||||
height: 100dvh;
|
||||
min-height: 100dvh;
|
||||
overflow: hidden;
|
||||
height: 100dvh;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-rows: auto minmax(0, 1fr);
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.desktop-login-page {
|
||||
grid-template-columns: minmax(0, 65fr) minmax(360px, 35fr);
|
||||
height: 100dvh;
|
||||
overflow: hidden;
|
||||
grid-template-columns: 65% 35%;
|
||||
grid-template-rows: minmax(0, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.desktop-login-mobile-bg {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.desktop-login-mobile-bg {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -103,6 +100,7 @@ body {
|
|||
position: relative;
|
||||
display: none;
|
||||
min-height: 0;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
border-right: 1px solid rgb(255 255 255 / 0.06);
|
||||
}
|
||||
|
|
@ -113,6 +111,14 @@ body {
|
|||
}
|
||||
}
|
||||
|
||||
.desktop-login-tools-panel::before {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
content: "";
|
||||
background: #030912;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.desktop-login-panel-orb {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
|
|
@ -131,26 +137,26 @@ body {
|
|||
);
|
||||
}
|
||||
|
||||
.desktop-login-panel-glow {
|
||||
.desktop-login-panel-orb-image {
|
||||
position: absolute;
|
||||
inset: -10%;
|
||||
background:
|
||||
radial-gradient(
|
||||
circle at 50% 52%,
|
||||
rgba(85, 150, 255, 0.24),
|
||||
transparent 24%
|
||||
),
|
||||
radial-gradient(
|
||||
circle at 48% 52%,
|
||||
rgba(255, 255, 255, 0.18),
|
||||
transparent 8%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 60% 38% at 52% 42%,
|
||||
rgba(40, 96, 255, 0.22),
|
||||
transparent 74%
|
||||
);
|
||||
opacity: 0.85;
|
||||
inset: -10% -15% -5% -15%;
|
||||
background-image: url("/onboarding/bg-gradient-0.png");
|
||||
background-size: cover;
|
||||
background-position: center 35%;
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.22;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.desktop-login-panel-orb-image-alt {
|
||||
position: absolute;
|
||||
inset: -10% -15% -5% -15%;
|
||||
background-image: url("/onboarding/bg-gradient-1.png");
|
||||
background-size: cover;
|
||||
background-position: center 35%;
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.11;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.desktop-login-panel-vignette {
|
||||
|
|
@ -167,8 +173,9 @@ body {
|
|||
.desktop-login-tools-network {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: 360px;
|
||||
min-height: 240px;
|
||||
}
|
||||
|
||||
.desktop-login-panel-caption {
|
||||
|
|
@ -388,8 +395,7 @@ body {
|
|||
}
|
||||
|
||||
.desktop-login-auth-header {
|
||||
height: 5.375rem;
|
||||
padding-inline: 1.5rem;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.desktop-login-memory-api-button {
|
||||
|
|
@ -402,14 +408,15 @@ body {
|
|||
display: flex;
|
||||
min-height: 0;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.75rem 1.5rem 2.5rem;
|
||||
padding: 0.25rem 2.5rem 2.5rem;
|
||||
}
|
||||
|
||||
.desktop-login-auth-stack {
|
||||
width: 100%;
|
||||
max-width: 24.375rem;
|
||||
max-width: 36.875rem;
|
||||
}
|
||||
|
||||
.desktop-login-headline {
|
||||
|
|
@ -417,17 +424,20 @@ body {
|
|||
}
|
||||
|
||||
.desktop-login-headline h1 {
|
||||
font-size: 1.75rem;
|
||||
font-size: 1.875rem;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.desktop-login-subtitle {
|
||||
margin-top: 1rem;
|
||||
font-family: "DM Sans", sans-serif;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
.desktop-login-card {
|
||||
border-radius: 1.375rem;
|
||||
padding: 2rem;
|
||||
padding: 3rem 3.625rem;
|
||||
}
|
||||
|
||||
.desktop-login-card-pending {
|
||||
|
|
@ -436,6 +446,8 @@ body {
|
|||
|
||||
.desktop-login-form {
|
||||
gap: 0.75rem;
|
||||
width: 29.5rem;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.desktop-login-email-form {
|
||||
|
|
@ -448,7 +460,9 @@ body {
|
|||
}
|
||||
|
||||
.desktop-login-terms {
|
||||
font-size: 0.875rem;
|
||||
font-family: "DM Sans", sans-serif;
|
||||
font-size: 0.75rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
@media (max-width: 1023px) {
|
||||
|
|
@ -467,26 +481,22 @@ body {
|
|||
}
|
||||
|
||||
.desktop-login-auth-stack {
|
||||
max-width: 25rem;
|
||||
max-width: 36.875rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1900px) and (min-width: 1024px) {
|
||||
.desktop-login-page {
|
||||
grid-template-columns: minmax(0, 60fr) minmax(390px, 40fr);
|
||||
}
|
||||
|
||||
.desktop-login-tool-node {
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
border-radius: 0.75rem;
|
||||
width: 2.875rem;
|
||||
height: 2.875rem;
|
||||
border-radius: 0.8125rem;
|
||||
}
|
||||
|
||||
.desktop-login-tool-node-icon {
|
||||
width: 1.125rem;
|
||||
height: 1.125rem;
|
||||
width: 1.375rem;
|
||||
height: 1.375rem;
|
||||
font-size: 0.5625rem;
|
||||
line-height: 1.125rem;
|
||||
line-height: 1.375rem;
|
||||
}
|
||||
|
||||
.desktop-login-tool-node-label {
|
||||
|
|
@ -495,13 +505,13 @@ body {
|
|||
}
|
||||
|
||||
.desktop-login-memory-chip {
|
||||
width: 2.375rem;
|
||||
height: 1.375rem;
|
||||
width: 2.75rem;
|
||||
height: 1.625rem;
|
||||
}
|
||||
|
||||
.desktop-login-memory-chip-lines {
|
||||
width: 1.25rem;
|
||||
gap: 0.16rem;
|
||||
width: 1.5rem;
|
||||
gap: 0.2rem;
|
||||
}
|
||||
|
||||
.desktop-login-nova-orb {
|
||||
|
|
@ -519,12 +529,11 @@ body {
|
|||
|
||||
.desktop-login-panel-caption {
|
||||
bottom: 1.5rem;
|
||||
font-size: 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.desktop-login-auth-header {
|
||||
height: 4.75rem;
|
||||
padding-inline: 1.25rem;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.desktop-login-memory-api-button {
|
||||
|
|
@ -534,45 +543,45 @@ body {
|
|||
}
|
||||
|
||||
.desktop-login-auth-content {
|
||||
padding: 0.5rem 1.25rem 1.5rem;
|
||||
padding: 0.25rem 2.5rem 2.5rem;
|
||||
}
|
||||
|
||||
.desktop-login-auth-stack {
|
||||
max-width: 22.5rem;
|
||||
max-width: 25rem;
|
||||
}
|
||||
|
||||
.desktop-login-headline {
|
||||
margin-bottom: 1.25rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.desktop-login-headline h1 {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.875rem;
|
||||
}
|
||||
|
||||
.desktop-login-subtitle {
|
||||
margin-top: 0.75rem;
|
||||
font-size: 0.8125rem;
|
||||
margin-top: 1rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.desktop-login-card {
|
||||
padding: 1.5rem;
|
||||
padding: 3rem 3.625rem;
|
||||
}
|
||||
|
||||
.desktop-login-card-pending {
|
||||
min-height: 27rem;
|
||||
min-height: 38rem;
|
||||
}
|
||||
|
||||
.desktop-login-email-form {
|
||||
gap: 1rem;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.desktop-login-email-input,
|
||||
.desktop-login-primary-button {
|
||||
height: 3rem;
|
||||
height: 3.5rem;
|
||||
}
|
||||
|
||||
.desktop-login-terms {
|
||||
font-size: 0.75rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -651,10 +660,6 @@ body {
|
|||
}
|
||||
|
||||
@media (max-width: 1180px) and (min-width: 1024px) {
|
||||
.desktop-login-page {
|
||||
grid-template-columns: minmax(0, 58fr) minmax(360px, 42fr);
|
||||
}
|
||||
|
||||
.desktop-login-panel-caption {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,7 +127,12 @@ export default function LoginPage() {
|
|||
const isAuthBusy = isBrowserAuthPending || isSubmitting
|
||||
|
||||
return (
|
||||
<main className="desktop-login-page bg-[#030912] text-foreground">
|
||||
<main className="desktop-login-page relative bg-[#030912] text-foreground">
|
||||
<div className="desktop-login-mobile-bg" aria-hidden>
|
||||
<div className="desktop-login-panel-orb h-full" />
|
||||
<div className="desktop-login-panel-orb-image h-full" />
|
||||
</div>
|
||||
|
||||
<DesktopLoginToolsPanel />
|
||||
|
||||
<section className="desktop-login-auth-pane relative z-10 min-w-0">
|
||||
|
|
@ -269,21 +274,28 @@ export default function LoginPage() {
|
|||
onChange={(event) => setEmail(event.target.value)}
|
||||
placeholder="your@email.com"
|
||||
type="email"
|
||||
required
|
||||
autoComplete="email"
|
||||
className="desktop-login-email-input rounded-xl border-[#17202e] bg-[#040a14]/70 px-6 text-base text-foreground placeholder:text-muted-foreground/45"
|
||||
/>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
className="desktop-login-primary-button rounded-xl bg-linear-to-r from-[#2935ff] to-[#2f78ff] text-lg text-white hover:from-[#3440ff] hover:to-[#3b83ff]"
|
||||
disabled={!email.trim() || isAuthBusy}
|
||||
className="desktop-login-primary-button flex w-full items-center justify-center gap-3 rounded-xl p-2 text-lg text-white"
|
||||
style={{
|
||||
background:
|
||||
"linear-gradient(182.37deg, #0ff0d2 -91.53%, #5bd3fb -67.8%, #1e0ff0 95.17%)",
|
||||
boxShadow:
|
||||
"1px 1px 2px 0px #1A88FF inset, 0 2px 10px 0 rgba(5, 1, 0, 0.20)",
|
||||
}}
|
||||
disabled={isAuthBusy}
|
||||
>
|
||||
{isSubmitting ? (
|
||||
<Loader2 className="size-5 animate-spin" />
|
||||
) : (
|
||||
<Logo className="size-5" />
|
||||
)}
|
||||
Send login link
|
||||
Log in with Supermemory
|
||||
</Button>
|
||||
</form>
|
||||
</>
|
||||
|
|
@ -340,7 +352,8 @@ type ToolNode = {
|
|||
name: string
|
||||
x: number
|
||||
y: number
|
||||
icon: (props: { className?: string }) => ReactNode
|
||||
icon?: (props: { className?: string }) => ReactNode
|
||||
iconSrc?: string
|
||||
}
|
||||
|
||||
type ContextConnection = {
|
||||
|
|
@ -368,12 +381,36 @@ const TOOL_NODES: ToolNode[] = [
|
|||
name: "Claude Code",
|
||||
x: 20,
|
||||
y: 36,
|
||||
icon: CodeMark,
|
||||
iconSrc: "/images/plugins/claude-code.svg",
|
||||
},
|
||||
{
|
||||
id: "codex",
|
||||
name: "Codex",
|
||||
x: 92,
|
||||
y: 28,
|
||||
iconSrc: "/images/plugins/codex.png",
|
||||
},
|
||||
{
|
||||
id: "opencode",
|
||||
name: "OpenCode",
|
||||
x: 58,
|
||||
y: 10,
|
||||
iconSrc: "/images/plugins/opencode.svg",
|
||||
},
|
||||
{
|
||||
id: "hermes",
|
||||
name: "Hermes",
|
||||
x: 36,
|
||||
y: 90,
|
||||
iconSrc: "/images/plugins/hermes.svg",
|
||||
},
|
||||
{
|
||||
id: "openclaw",
|
||||
name: "OpenClaw",
|
||||
x: 68,
|
||||
y: 68,
|
||||
iconSrc: "/images/plugins/openclaw.svg",
|
||||
},
|
||||
{ id: "codex", name: "Codex", x: 92, y: 28, icon: CodexMark },
|
||||
{ id: "opencode", name: "OpenCode", x: 58, y: 10, icon: OpenCodeMark },
|
||||
{ id: "hermes", name: "Hermes", x: 36, y: 90, icon: HermesMark },
|
||||
{ id: "openclaw", name: "OpenClaw", x: 68, y: 68, icon: OpenClawMark },
|
||||
]
|
||||
|
||||
const CONTEXT_FLOWS: [string, string][] = [
|
||||
|
|
@ -456,7 +493,8 @@ function DesktopLoginToolsPanel() {
|
|||
return (
|
||||
<aside className="desktop-login-tools-panel" aria-hidden>
|
||||
<div className="desktop-login-panel-orb" />
|
||||
<div className="desktop-login-panel-glow" />
|
||||
<div className="desktop-login-panel-orb-image" />
|
||||
<div className="desktop-login-panel-orb-image-alt" />
|
||||
<div className="desktop-login-panel-vignette" />
|
||||
|
||||
<div className="desktop-login-tools-network">
|
||||
|
|
@ -603,7 +641,16 @@ function FloatingToolNode({
|
|||
title={node.name}
|
||||
>
|
||||
<div className={`desktop-login-tool-node ${roleClass}`}>
|
||||
<Icon className="desktop-login-tool-node-icon" />
|
||||
{Icon ? (
|
||||
<Icon className="desktop-login-tool-node-icon" />
|
||||
) : node.iconSrc ? (
|
||||
<img
|
||||
src={node.iconSrc}
|
||||
alt=""
|
||||
className="desktop-login-tool-node-icon"
|
||||
aria-hidden
|
||||
/>
|
||||
) : null}
|
||||
</div>
|
||||
<span
|
||||
className={
|
||||
|
|
@ -630,26 +677,6 @@ function MemoryChip() {
|
|||
)
|
||||
}
|
||||
|
||||
function CodeMark({ className }: { className?: string }) {
|
||||
return <span className={`${className ?? ""} text-[#ff9a63]`}>CC</span>
|
||||
}
|
||||
|
||||
function CodexMark({ className }: { className?: string }) {
|
||||
return <span className={`${className ?? ""} text-[#d7e6ff]`}>CX</span>
|
||||
}
|
||||
|
||||
function OpenCodeMark({ className }: { className?: string }) {
|
||||
return <span className={`${className ?? ""} text-[#b8c4d8]`}>OC</span>
|
||||
}
|
||||
|
||||
function HermesMark({ className }: { className?: string }) {
|
||||
return <span className={`${className ?? ""} text-[#8ccfff]`}>HM</span>
|
||||
}
|
||||
|
||||
function OpenClawMark({ className }: { className?: string }) {
|
||||
return <span className={`${className ?? ""} text-[#8af0d8]`}>OP</span>
|
||||
}
|
||||
|
||||
function GoogleIcon() {
|
||||
return (
|
||||
<svg
|
||||
|
|
|
|||
11
apps/desktop/public/images/plugins/claude-code.svg
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<svg viewBox="0 0 66 52" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="0" y="13" width="6" height="13" fill="#CC785C"/>
|
||||
<rect x="60" y="13" width="6" height="13" fill="#CC785C"/>
|
||||
<rect x="6" y="39" width="6" height="13" fill="#CC785C"/>
|
||||
<rect x="18" y="39" width="6" height="13" fill="#CC785C"/>
|
||||
<rect x="42" y="39" width="6" height="13" fill="#CC785C"/>
|
||||
<rect x="54" y="39" width="6" height="13" fill="#CC785C"/>
|
||||
<rect x="6" width="54" height="39" fill="#CC785C"/>
|
||||
<rect x="12" y="13" width="6" height="6.5" fill="black"/>
|
||||
<rect x="48" y="13" width="6" height="6.5" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 618 B |
BIN
apps/desktop/public/images/plugins/codex.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
1
apps/desktop/public/images/plugins/hermes.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
86
apps/desktop/public/images/plugins/openclaw.svg
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 440.691 440.691" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#C93F3F;" d="M134.3,294.013L134.3,294.013c-5.092-4.546-5.534-12.36-0.988-17.452l14.418-16.149l33.092,2.725
|
||||
l-1.014,12.318l-26.958-2.219L134.3,294.013z"/>
|
||||
<path style="fill:#C93F3F;" d="M134.3,321.382L134.3,321.382c-5.092-4.546-5.534-12.36-0.988-17.452l14.418-16.148l33.092,2.725
|
||||
l-1.014,12.318l-26.958-2.219L134.3,321.382z"/>
|
||||
<path style="fill:#C93F3F;" d="M306.391,294.013L306.391,294.013c5.092-4.546,5.534-12.36,0.988-17.452l-14.418-16.149
|
||||
l-33.092,2.725l1.014,12.318l26.958-2.219L306.391,294.013z"/>
|
||||
<path style="fill:#C93F3F;" d="M134.3,266.639L134.3,266.639c-5.092-4.546-5.534-12.36-0.988-17.452l14.418-16.149l33.092,2.725
|
||||
l-1.014,12.318l-26.958-2.219L134.3,266.639z"/>
|
||||
<path style="fill:#C93F3F;" d="M306.391,266.639L306.391,266.639c5.092-4.546,5.534-12.36,0.988-17.452l-14.418-16.149
|
||||
l-33.092,2.725l1.014,12.318l26.958-2.219L306.391,266.639z"/>
|
||||
<path style="fill:#C93F3F;" d="M306.391,321.382L306.391,321.382c5.092-4.546,5.534-12.36,0.988-17.452l-14.418-16.148
|
||||
l-33.092,2.725l1.014,12.318l26.958-2.219L306.391,321.382z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#C93F3F;" d="M198.187,165.276c0,0,0.011-0.165,0.033-0.484c0.017-0.304,0.043-0.755,0.077-1.344
|
||||
c0.064-1.228,0.126-3.076,0.156-5.442c0.025-2.368,0.015-5.259-0.087-8.585c-0.104-3.325-0.283-7.084-0.615-11.181
|
||||
c-0.293-4.102-0.802-8.531-1.398-13.214c-0.662-4.671-1.42-9.6-2.464-14.649c-0.974-5.068-2.273-10.237-3.675-15.477
|
||||
c-1.503-5.204-3.129-10.479-5.086-15.633l-1.457-3.873c-0.533-1.27-1.066-2.539-1.597-3.806c-1.025-2.556-2.219-5.018-3.378-7.48
|
||||
l-0.867-1.844l-0.94-1.794c-0.627-1.195-1.251-2.383-1.871-3.565c-1.243-2.365-2.651-4.593-3.941-6.852
|
||||
c-1.351-2.218-2.797-4.323-4.152-6.433c-1.415-2.065-2.901-4.013-4.296-5.955c-2.934-3.764-5.796-7.281-8.677-10.314
|
||||
c-0.706-0.773-1.398-1.531-2.074-2.271c-0.716-0.701-1.415-1.386-2.096-2.053c-1.372-1.332-2.674-2.596-3.897-3.784
|
||||
c-2.592-2.21-4.809-4.21-6.726-5.744c-3.915-2.978-6.152-4.679-6.152-4.679s2.377,1.51,6.538,4.154
|
||||
c2.049,1.374,4.436,3.186,7.241,5.198c1.334,1.092,2.753,2.255,4.249,3.48c0.747,0.618,1.513,1.251,2.297,1.9
|
||||
c0.747,0.69,1.511,1.397,2.292,2.118c3.184,2.832,6.392,6.155,9.715,9.749c1.589,1.857,3.28,3.726,4.908,5.719
|
||||
c1.567,2.036,3.237,4.078,4.817,6.24c1.518,2.2,3.165,4.383,4.65,6.707c0.742,1.164,1.489,2.335,2.24,3.511l1.127,1.774
|
||||
l1.055,1.825c1.411,2.439,2.864,4.89,4.146,7.439c0.662,1.266,1.324,2.535,1.988,3.806l1.848,3.883
|
||||
c2.482,5.179,4.633,10.505,6.654,15.791c1.919,5.317,3.726,10.596,5.189,15.787c1.533,5.174,2.761,10.246,3.865,15.074
|
||||
c1.039,4.839,1.962,9.437,2.634,13.714c0.712,4.272,1.236,8.214,1.643,11.721c0.405,3.508,0.677,6.585,0.865,9.133
|
||||
c0.183,2.551,0.286,4.569,0.333,5.976c0.02,0.729,0.035,1.288,0.045,1.665c0.006,0.362,0.008,0.548,0.008,0.548L198.187,165.276z"
|
||||
/>
|
||||
<path style="fill:#C93F3F;" d="M227.335,165.732c0,0,0.003-0.187,0.008-0.548c0.01-0.377,0.025-0.936,0.045-1.665
|
||||
c0.047-1.407,0.149-3.425,0.333-5.976c0.188-2.548,0.46-5.625,0.865-9.133c0.407-3.508,0.931-7.45,1.643-11.721
|
||||
c0.672-4.277,1.596-8.875,2.634-13.714c1.104-4.828,2.331-9.9,3.865-15.074c1.462-5.191,3.27-10.47,5.189-15.787
|
||||
c2.021-5.286,4.173-10.613,6.654-15.791l1.848-3.883c0.663-1.27,1.326-2.539,1.988-3.806c1.283-2.549,2.735-5,4.146-7.439
|
||||
l1.055-1.825l1.127-1.774c0.751-1.177,1.497-2.347,2.24-3.511c1.485-2.324,3.132-4.507,4.65-6.707
|
||||
c1.581-2.161,3.25-4.203,4.817-6.24c1.628-1.993,3.319-3.862,4.908-5.719c3.323-3.595,6.531-6.918,9.715-9.749
|
||||
c0.78-0.721,1.545-1.428,2.292-2.118c0.784-0.649,1.55-1.282,2.297-1.9c1.496-1.226,2.915-2.388,4.249-3.48
|
||||
c2.805-2.011,5.192-3.824,7.241-5.198c4.161-2.643,6.538-4.154,6.538-4.154s-2.237,1.701-6.152,4.679
|
||||
c-1.916,1.534-4.134,3.535-6.726,5.744c-1.223,1.188-2.525,2.452-3.897,3.784c-0.681,0.668-1.38,1.352-2.096,2.053
|
||||
c-0.676,0.74-1.367,1.497-2.074,2.271c-2.882,3.033-5.743,6.55-8.677,10.314c-1.395,1.943-2.881,3.891-4.296,5.955
|
||||
c-1.355,2.11-2.801,4.215-4.152,6.433c-1.29,2.259-2.698,4.487-3.941,6.852c-0.62,1.182-1.244,2.37-1.871,3.565l-0.94,1.794
|
||||
l-0.867,1.844c-1.158,2.462-2.353,4.924-3.378,7.48c-0.532,1.267-1.064,2.536-1.597,3.806l-1.457,3.873
|
||||
c-1.957,5.154-3.583,10.429-5.086,15.633c-1.403,5.24-2.701,10.409-3.675,15.477c-1.045,5.048-1.803,9.978-2.464,14.649
|
||||
c-0.597,4.683-1.105,9.112-1.398,13.214c-0.332,4.097-0.511,7.856-0.615,11.181c-0.102,3.325-0.112,6.217-0.087,8.585
|
||||
c0.03,2.366,0.092,4.214,0.156,5.442c0.034,0.589,0.06,1.04,0.077,1.344c0.022,0.319,0.033,0.484,0.033,0.484L227.335,165.732z"/>
|
||||
</g>
|
||||
<path style="fill:#E24747;" d="M266.326,401.138h-91.962c-15.633,0-28.306,12.673-28.306,28.306v0
|
||||
c0,6.211,5.035,11.246,11.246,11.246h126.082c6.211,0,11.246-5.035,11.246-11.246v0
|
||||
C294.633,413.811,281.959,401.138,266.326,401.138z"/>
|
||||
<polygon style="fill:#C93F3F;" points="259.486,358.29 181.205,358.29 188.88,336.865 251.811,336.865 "/>
|
||||
<polygon style="fill:#C93F3F;" points="259.486,336.865 181.205,336.865 188.88,315.441 251.811,315.441 "/>
|
||||
<polygon style="fill:#C93F3F;" points="259.486,379.714 181.205,379.714 188.88,358.29 251.811,358.29 "/>
|
||||
<polygon style="fill:#C93F3F;" points="259.486,401.138 181.205,401.138 188.88,379.714 251.811,379.714 "/>
|
||||
<path style="fill:#F74B4B;" d="M258.265,315.665c5.709,0,10.337-4.628,10.337-10.337v-76.592c0-35.649-17.225-69.996-48.256-96.226
|
||||
c-31.032,26.229-48.256,60.576-48.256,96.226v76.592c0,5.709,4.628,10.337,10.337,10.337H258.265z"/>
|
||||
<g>
|
||||
<g>
|
||||
<circle style="fill:#FFFFFF;" cx="239.159" cy="181.127" r="12.173"/>
|
||||
<circle style="fill:#4D4D4D;" cx="239.159" cy="181.127" r="7.448"/>
|
||||
</g>
|
||||
<g>
|
||||
<circle style="fill:#FFFFFF;" cx="201.532" cy="181.127" r="12.173"/>
|
||||
<circle style="fill:#4D4D4D;" cx="201.532" cy="181.127" r="7.448"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#F74B4B;" d="M114.844,8.638l-5.329,65.495h0c-7.257-0.59-12.662-6.952-12.071-14.21L102.319,0
|
||||
C73.984,25.929,59.985,65.914,69.122,106.041c6.042,26.536,21.178,48.638,41.368,63.782
|
||||
c29.157-25.889,43.682-66.456,34.414-107.159C140.053,41.358,129.33,22.92,114.844,8.638z"/>
|
||||
<path style="fill:#F74B4B;" d="M198.833,222.122h-69.581c-16.407,0-29.755-13.348-29.755-29.755v-41.871h21.012v41.871
|
||||
c0,4.821,3.922,8.743,8.743,8.743h69.581V222.122z"/>
|
||||
<path style="fill:#F74B4B;" d="M325.847,8.638l5.329,65.495h0c7.257-0.59,12.662-6.952,12.071-14.21L338.372,0
|
||||
c28.336,25.929,42.334,65.914,33.198,106.041c-6.042,26.536-21.178,48.638-41.368,63.782
|
||||
c-29.157-25.889-43.682-66.456-34.414-107.159C300.638,41.358,311.361,22.92,325.847,8.638z"/>
|
||||
<path style="fill:#F74B4B;" d="M311.439,222.122h-69.581V201.11h69.581c4.821,0,8.743-3.922,8.743-8.743v-41.871h21.012v41.871
|
||||
C341.194,208.774,327.846,222.122,311.439,222.122z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7 KiB |
1
apps/desktop/public/images/plugins/opencode.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg width='240' height='300' viewBox='0 0 240 300' fill='none' xmlns='http://www.w3.org/2000/svg'><g clip-path='url(#clip0_1401_86274)'><mask id='mask0_1401_86274' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='0' y='0' width='240' height='300'><path d='M240 0H0V300H240V0Z' fill='white'/></mask><g mask='url(#mask0_1401_86274)'><path d='M180 240H60V120H180V240Z' fill='#CFCECD'/><path d='M180 60H60V240H180V60ZM240 300H0V0H240V300Z' fill='#211E1E'/></g></g><defs><clipPath id='clip0_1401_86274'><rect width='240' height='300' fill='white'/></clipPath></defs></svg>
|
||||
|
After Width: | Height: | Size: 577 B |
BIN
apps/desktop/public/onboarding/bg-gradient-0.png
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
apps/desktop/public/onboarding/bg-gradient-1.png
Normal file
|
After Width: | Height: | Size: 3.7 MiB |