feat: logo

This commit is contained in:
2026-02-10 17:54:01 +01:00
parent d11b3c031b
commit 2b934d22f8
7 changed files with 92 additions and 11 deletions

18
app/assets/logo.svg Normal file
View File

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 176 174"
fill="currentColor"
role="img"
aria-label="Logo">
<path fill-rule="evenodd" d="
M47.0,154.5 L8.5,153.0 L8.5,105.0 L28.0,90.5 L29.0,95.5 L68.0,95.5 L107.5,66.0
L107.5,31.0 L110.0,28.5 L128.0,15.5 L166.0,15.5 L167.5,65.0 L148.0,79.5
L147.0,74.5 L105.0,76.5 L68.5,104.0 L68.5,139.0 Z
M29.0,89.5 L28.5,46.0 L32.0,42.5 L69.0,15.5 L107.5,16.0 L107.5,30.0
L87.5,46.0 L87.0,74.5 L49.0,74.5 Z
M107.0,154.5 L68.5,154.0 L68.5,140.0 L88.5,124.0 L88.5,96.0 L127.0,95.5
L147.0,80.5 L147.5,124.0 Z
"/>
</svg>

After

Width:  |  Height:  |  Size: 611 B

View File

@@ -12,6 +12,7 @@ import {
SheetTrigger,
} from "@/components/ui/sheet";
import { Menu } from "lucide-vue-next";
import LogoSvg from "~/assets/logo.svg?component";
const { t } = useI18n();
const mobileMenuOpen = ref(false);
@@ -30,11 +31,11 @@ const navLinks = [
<div class="flex items-center space-x-4 md:space-x-6">
<NuxtLink
to="/"
class="text-xl font-semibold hover:opacity-80 transition-opacity"
class="inline-flex items-center gap-2 text-lg font-semibold leading-none hover:opacity-80 transition-opacity"
>
helium
<LogoSvg class="block w-8 h-8 shrink-0" />
<span class="leading-none">helium</span>
</NuxtLink>
<!-- Desktop Navigation -->
<nav class="hidden md:flex space-x-4">
<template v-for="link in navLinks" :key="link.to">
<ClientOnly v-if="link.requiresAuth">
@@ -60,7 +61,6 @@ const navLinks = [
</nav>
</div>
<!-- Desktop Right Side -->
<div class="hidden md:flex items-center space-x-4">
<LanguageSwitcher />
<ThemeDropdown />
@@ -74,7 +74,6 @@ const navLinks = [
</ClientOnly>
</div>
<!-- Mobile Menu -->
<div class="md:hidden">
<Sheet v-model:open="mobileMenuOpen">
<SheetTrigger as-child>

BIN
build/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
build/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -1,12 +1,13 @@
import tailwindcss from "@tailwindcss/vite";
import { shadcn } from "@clerk/themes";
import svgLoader from "vite-svg-loader";
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: "2025-07-15",
devtools: { enabled: true },
css: ["~/assets/css/tailwind.css"],
vite: {
plugins: [tailwindcss()],
plugins: [tailwindcss(), svgLoader()],
},
modules: [
"shadcn-nuxt",

View File

@@ -1,6 +1,6 @@
{
"name": "helium",
"version": "0.1.0",
"version": "0.1.1",
"author": {
"email": "helium@srizan.dev",
"name": "eth0 software",
@@ -53,6 +53,7 @@
"tailwind-merge": "^3.3.1",
"tailwindcss": "^4.1.16",
"tw-animate-css": "^1.4.0",
"vite-svg-loader": "^5.1.0",
"vue": "^3.5.26",
"vue-router": "^4.6.3",
"vue-sonner": "^2.0.9",
@@ -96,16 +97,24 @@
],
"mac": {
"category": "public.app-category.utilities",
"target": ["dmg", "zip"],
"target": [
"dmg",
"zip"
],
"hardenedRuntime": true,
"entitlements": "electron/entitlements.mac.plist",
"entitlementsInherit": "electron/entitlements.mac.plist"
},
"win": {
"target": ["nsis", "portable"]
"target": [
"nsis",
"portable"
]
},
"linux": {
"target": ["AppImage"],
"target": [
"AppImage"
],
"category": "Utility"
},
"publish": {

54
pnpm-lock.yaml generated
View File

@@ -80,6 +80,9 @@ importers:
tw-animate-css:
specifier: ^1.4.0
version: 1.4.0
vite-svg-loader:
specifier: ^5.1.0
version: 5.1.0(vue@3.5.26(typescript@5.9.3))
vue:
specifier: ^3.5.26
version: 3.5.26(typescript@5.9.3)
@@ -2212,6 +2215,10 @@ packages:
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
engines: {node: '>= 10'}
'@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@tybys/wasm-util@0.10.1':
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
@@ -2880,6 +2887,10 @@ packages:
resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
engines: {node: '>= 6'}
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
@@ -2991,6 +3002,10 @@ packages:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-tree@3.1.0:
resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
@@ -4304,6 +4319,9 @@ packages:
mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
mdn-data@2.12.2:
resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
@@ -5489,6 +5507,11 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
svgo@3.3.2:
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
engines: {node: '>=14.0.0'}
hasBin: true
svgo@4.0.0:
resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==}
engines: {node: '>=16'}
@@ -5896,6 +5919,11 @@ packages:
vite: ^6.0.0 || ^7.0.0
vue: ^3.5.0
vite-svg-loader@5.1.0:
resolution: {integrity: sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==}
peerDependencies:
vue: '>=3.2.13'
vite@7.3.1:
resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -8131,6 +8159,8 @@ snapshots:
'@tootallnate/once@2.0.0': {}
'@trysound/sax@0.2.0': {}
'@tybys/wasm-util@0.10.1':
dependencies:
tslib: 2.8.1
@@ -9051,6 +9081,8 @@ snapshots:
commander@5.1.0: {}
commander@7.2.0: {}
commondir@1.0.1: {}
compare-version@0.1.2: {}
@@ -9168,6 +9200,11 @@ snapshots:
mdn-data: 2.0.28
source-map-js: 1.2.1
css-tree@2.3.1:
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.1
css-tree@3.1.0:
dependencies:
mdn-data: 2.12.2
@@ -10540,6 +10577,8 @@ snapshots:
mdn-data@2.0.28: {}
mdn-data@2.0.30: {}
mdn-data@2.12.2: {}
memory-stream@1.0.0:
@@ -11986,6 +12025,16 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
svgo@3.3.2:
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 5.2.2
css-tree: 2.3.1
css-what: 6.2.2
csso: 5.0.5
picocolors: 1.1.1
svgo@4.0.0:
dependencies:
commander: 11.1.0
@@ -12417,6 +12466,11 @@ snapshots:
vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)
vue: 3.5.26(typescript@5.9.3)
vite-svg-loader@5.1.0(vue@3.5.26(typescript@5.9.3)):
dependencies:
svgo: 3.3.2
vue: 3.5.26(typescript@5.9.3)
vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
esbuild: 0.27.1