init logo
@@ -7,11 +7,12 @@
|
||||
<meta name="theme-color" content="#09090b" />
|
||||
<link rel="manifest" href="/manifest.webmanifest" />
|
||||
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<!-- iOS : le Web Push n'est disponible qu'en PWA installée (« Ajouter à l'écran d'accueil ») -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Arboretum" />
|
||||
<link rel="apple-touch-icon" href="/icon.svg" />
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
||||
<title>Arboretum</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
BIN
packages/web/public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
packages/web/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
packages/web/public/icon-192.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
packages/web/public/icon-512.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
@@ -1,18 +1,46 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-label="Arboretum">
|
||||
<defs>
|
||||
<!-- glow néon : flou doux derrière les traits et les nœuds -->
|
||||
<filter id="glow" x="-30%" y="-30%" width="160%" height="160%">
|
||||
<feGaussianBlur stdDeviation="6" result="b"/>
|
||||
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
<linearGradient id="branch" x1="256" y1="430" x2="256" y2="90" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#10b981"/>
|
||||
<stop offset="1" stop-color="#34d399"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<rect width="512" height="512" fill="#09090b"/>
|
||||
<!-- arbre / branches (worktrees) — tracé dans la zone sûre maskable (~80% central) -->
|
||||
<g fill="none" stroke="#34d399" stroke-width="22" stroke-linecap="round" stroke-linejoin="round">
|
||||
<!-- tronc -->
|
||||
<path d="M256 420 V232"/>
|
||||
<!-- branche gauche -->
|
||||
<path d="M256 300 L168 212"/>
|
||||
<!-- branche droite -->
|
||||
<path d="M256 268 L344 180"/>
|
||||
|
||||
<!-- branches / circuit (tronc + fourches symétriques), tracées dans la zone sûre maskable -->
|
||||
<g fill="none" stroke="url(#branch)" stroke-width="17" stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)">
|
||||
<!-- tronc : du nœud sommet jusqu'à la base avec le curseur >_ -->
|
||||
<path d="M256 96 V392"/>
|
||||
<!-- paire haute -->
|
||||
<path d="M256 232 L150 232 V150"/>
|
||||
<path d="M256 232 L362 232 V150"/>
|
||||
<!-- paire médiane -->
|
||||
<path d="M256 300 L104 300 V214"/>
|
||||
<path d="M256 300 L408 300 V214"/>
|
||||
<!-- paire basse -->
|
||||
<path d="M256 356 L150 356 V300"/>
|
||||
<path d="M256 356 L362 356 V300"/>
|
||||
<!-- base : invite de commande >_ -->
|
||||
<path d="M232 404 L246 418 L232 432" stroke-width="14"/>
|
||||
<path d="M258 434 H286" stroke-width="14"/>
|
||||
</g>
|
||||
<!-- nœuds (sessions) -->
|
||||
<g fill="#34d399">
|
||||
<circle cx="256" cy="156" r="34"/>
|
||||
<circle cx="160" cy="196" r="26"/>
|
||||
<circle cx="352" cy="164" r="26"/>
|
||||
|
||||
<!-- nœuds (sessions) : anneaux cyan lumineux, centre sombre -->
|
||||
<g filter="url(#glow)">
|
||||
<g fill="#09090b" stroke="#22d3ee" stroke-width="9">
|
||||
<circle cx="256" cy="96" r="20"/>
|
||||
<circle cx="150" cy="150" r="16"/>
|
||||
<circle cx="362" cy="150" r="16"/>
|
||||
<circle cx="104" cy="214" r="16"/>
|
||||
<circle cx="408" cy="214" r="16"/>
|
||||
<circle cx="150" cy="300" r="16"/>
|
||||
<circle cx="362" cy="300" r="16"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 727 B After Width: | Height: | Size: 1.9 KiB |
BIN
packages/web/public/logo.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
@@ -8,6 +8,8 @@
|
||||
"background_color": "#09090b",
|
||||
"theme_color": "#09090b",
|
||||
"icons": [
|
||||
{ "src": "/icon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any maskable" }
|
||||
{ "src": "/icon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any" },
|
||||
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
|
||||
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
@submit.prevent="onSubmit"
|
||||
>
|
||||
<div class="flex items-center justify-between">
|
||||
<h1 class="text-lg font-semibold text-zinc-100">{{ t('common.appName') }}</h1>
|
||||
<div class="flex items-center gap-2.5">
|
||||
<img src="/icon.svg" alt="" class="h-9 w-9" />
|
||||
<h1 class="text-lg font-semibold text-zinc-100">{{ t('common.appName') }}</h1>
|
||||
</div>
|
||||
<LanguageSwitcher />
|
||||
</div>
|
||||
<p class="text-sm text-zinc-400">{{ t('login.title') }}</p>
|
||||
|
||||