feat: new logo, fixed layout, misc
This commit is contained in:
parent
5f2984824d
commit
5c78528f4c
15 changed files with 52 additions and 111 deletions
|
|
@ -8,16 +8,7 @@
|
|||
<div class="hidden sm:block"></div>
|
||||
<div class="hidden sm:block"></div>
|
||||
<aside>
|
||||
<svg
|
||||
width="50"
|
||||
height="50"
|
||||
viewBox="0 0 24 24"
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
class="fill-current">
|
||||
<path
|
||||
d="M22.672 15.226l-2.432.811.841 2.515c.33 1.019-.209 2.127-1.23 2.456-1.15.325-2.148-.321-2.463-1.226l-.84-2.518-5.013 1.677.84 2.517c.391 1.203-.434 2.542-1.831 2.542-.88 0-1.601-.564-1.86-1.314l-.842-2.516-2.431.809c-1.135.328-2.145-.317-2.463-1.229-.329-1.018.211-2.127 1.231-2.456l2.432-.809-1.621-4.823-2.432.808c-1.355.384-2.558-.59-2.558-1.839 0-.817.509-1.582 1.327-1.846l2.433-.809-.842-2.515c-.33-1.02.211-2.129 1.232-2.458 1.02-.329 2.13.209 2.461 1.229l.842 2.515 5.011-1.677-.839-2.517c-.403-1.238.484-2.553 1.843-2.553.819 0 1.585.509 1.85 1.326l.841 2.517 2.431-.81c1.02-.33 2.131.211 2.461 1.229.332 1.018-.21 2.126-1.23 2.456l-2.433.809 1.622 4.823 2.433-.809c1.242-.401 2.557.484 2.557 1.838 0 .819-.51 1.583-1.328 1.847m-8.992-6.428l-5.01 1.675 1.619 4.828 5.011-1.674-1.62-4.829z"></path>
|
||||
</svg>
|
||||
<svg class="size-14" viewBox="-2 -2 139 157"><path style="fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:11px" d="M130.887 54.969 67.444 78.214 4 54.969l13.51-35.9L67.444 4l49.934 15.069zm-5.273 39.517-58.17 22.969-58.17-22.969h-.01m111.93 33.229-53.75 21.68-53.75-21.68m-.001 0L4.004 54.967m126.88 0-9.689 72.748M67.444 78.214v71.182"/></svg>
|
||||
<p>
|
||||
© 2025-{year} HexName
|
||||
<br/>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
import { goto } from "$app/navigation";
|
||||
import { PUBLIC_BACKEND_API_HOST } from "$env/static/public";
|
||||
import { auth, setUserLoggedOut } from "./auth.svelte";
|
||||
|
||||
|
||||
async function toggleMfa() {
|
||||
try {
|
||||
const res = await fetch(`${PUBLIC_BACKEND_API_HOST}/api/v1/user/update-mfa`, {
|
||||
|
|
@ -27,9 +27,23 @@
|
|||
}
|
||||
}
|
||||
|
||||
let { sideMenuOpen = $bindable(), isMobile } = $props()
|
||||
let { sideMenuOpen = $bindable() } = $props()
|
||||
|
||||
let innerWidth: number | null | undefined = $state();
|
||||
|
||||
let isMobile: boolean = $derived.by(() =>{
|
||||
if (!innerWidth) return false;
|
||||
return innerWidth < 768;
|
||||
});
|
||||
|
||||
let isXs: boolean = $derived.by(() =>{
|
||||
if (!innerWidth) return false;
|
||||
return innerWidth < 480;
|
||||
});
|
||||
</script>
|
||||
|
||||
<svelte:window bind:innerWidth/>
|
||||
|
||||
<div class="backdrop-blur bg-white/6 fixed navbar shadow-sm top-0 z-40 py-0" id="main-navbar">
|
||||
<div class="navbar-start md:min-w-60">
|
||||
{#if auth.isAuthenticated || isMobile}
|
||||
|
|
@ -41,7 +55,14 @@
|
|||
</li></ul>
|
||||
</button>
|
||||
{/if}
|
||||
<ul class="menu pl-0"><li><a href="/" class="text-xl font-semibold">HexName</a></li></ul>
|
||||
<ul class="menu pl-0">
|
||||
<li class="flex flex-row">
|
||||
<a href="/" class="text-xl font-semibold pl-2 ml-1">
|
||||
<svg class="size-6.5 translate-x-0.5 translate-y-0.25 stroke-primary-content" viewBox="-2 -2 139 157"><path style="fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:11px" d="M130.887 54.969 67.444 78.214 4 54.969l13.51-35.9L67.444 4l49.934 15.069zm-5.273 39.517-58.17 22.969-58.17-22.969h-.01m111.93 33.229-53.75 21.68-53.75-21.68m-.001 0L4.004 54.967m126.88 0-9.689 72.748M67.444 78.214v71.182"/></svg>
|
||||
HexName
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navbar m-0 md:min-w-50 p-0">
|
||||
<ul class="menu menu-horizontal not-md:hidden m-auto justify-center items-center">
|
||||
|
|
@ -82,8 +103,12 @@
|
|||
</div>
|
||||
{:else}
|
||||
<div class="xs:gap-4 flex">
|
||||
<a href="/register"><button style="box-shadow: 0 0 10px rgba(0,0,0,0.6)" class="btn btn-primary break-keep whitespace-nowrap rounded-lg">Create an account</button></a>
|
||||
<a href="/login"><button style="box-shadow: 0 0 10px rgba(0,0,0,0.6)" class="btn btn-outline btn-secondary whitespace-nowrap border-2 rounded-lg not-xs:hidden">Log in</button></a>
|
||||
{#if isXs}
|
||||
<a href="/register"><button style="box-shadow: 0 0 10px rgba(0,0,0,0.6)" class="btn btn-primary break-keep whitespace-nowrap rounded-lg">Register</button></a>
|
||||
{:else}
|
||||
<a href="/register"><button style="box-shadow: 0 0 10px rgba(0,0,0,0.6)" class="btn btn-primary break-keep whitespace-nowrap rounded-lg">Create an account</button></a>
|
||||
{/if}
|
||||
<a href="/login"><button style="box-shadow: 0 0 10px rgba(0,0,0,0.6)" class="btn btn-outline btn-secondary whitespace-nowrap border-2 rounded-lg not-xs:hidden">Log in</button></a>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -24,6 +24,11 @@
|
|||
{#if isDashboard}
|
||||
<li class="bg-base-300 opacity-0 lg:opacity-100 h-screen fixed -z-1 w-60 top-0 left-0 m-0"></li>
|
||||
{/if}
|
||||
<li class="xs:hidden block">
|
||||
<a href="/register">Register</a>
|
||||
<a href="/login">Log in</a>
|
||||
</li>
|
||||
<div class="xs:hidden divider m-0"></div>
|
||||
<li class="md:hidden block">
|
||||
<a href="/">Home</a>
|
||||
<a href="/about">About us</a>
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="107"
|
||||
height="128"
|
||||
viewBox="0 0 107 128"
|
||||
>
|
||||
<title>svelte-logo</title><path
|
||||
d="M94.157 22.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282 29.608A29.92 29.92 0 0 0 8.764 49.65a31.5 31.5 0 0 0 3.108 20.231 30 30 0 0 0-4.477 11.183 31.9 31.9 0 0 0 5.448 24.116c10.402 14.887 30.942 19.297 45.791 9.835l26.083-16.624A29.92 29.92 0 0 0 98.235 78.35a31.53 31.53 0 0 0-3.105-20.232 30 30 0 0 0 4.474-11.182 31.88 31.88 0 0 0-5.447-24.116"
|
||||
style="fill: #ff3e00"
|
||||
/><path
|
||||
d="M45.817 106.582a20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.503 18 18 0 0 1 .624-2.435l.49-1.498 1.337.981a33.6 33.6 0 0 0 10.203 5.098l.97.294-.09.968a5.85 5.85 0 0 0 1.052 3.878 6.24 6.24 0 0 0 6.695 2.485 5.8 5.8 0 0 0 1.603-.704L69.27 76.28a5.43 5.43 0 0 0 2.45-3.631 5.8 5.8 0 0 0-.987-4.371 6.24 6.24 0 0 0-6.698-2.487 5.7 5.7 0 0 0-1.6.704l-9.953 6.345a19 19 0 0 1-5.296 2.326 20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.502 17.99 17.99 0 0 1 8.13-12.052l26.081-16.623a19 19 0 0 1 5.3-2.329 20.72 20.72 0 0 1 22.237 8.243 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-.624 2.435l-.49 1.498-1.337-.98a33.6 33.6 0 0 0-10.203-5.1l-.97-.294.09-.968a5.86 5.86 0 0 0-1.052-3.878 6.24 6.24 0 0 0-6.696-2.485 5.8 5.8 0 0 0-1.602.704L37.73 51.72a5.42 5.42 0 0 0-2.449 3.63 5.79 5.79 0 0 0 .986 4.372 6.24 6.24 0 0 0 6.698 2.486 5.8 5.8 0 0 0 1.602-.704l9.952-6.342a19 19 0 0 1 5.295-2.328 20.72 20.72 0 0 1 22.237 8.242 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-8.13 12.053l-26.081 16.622a19 19 0 0 1-5.3 2.328"
|
||||
style="fill: #fff"
|
||||
/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
BIN
src/lib/assets/favicon.webp
Normal file
BIN
src/lib/assets/favicon.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
src/lib/assets/home-og.png
Normal file
BIN
src/lib/assets/home-og.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 139 KiB |
BIN
src/lib/assets/logo-white.webp
Normal file
BIN
src/lib/assets/logo-white.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
1
src/lib/assets/logo.svg
Normal file
1
src/lib/assets/logo.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg viewBox="-18 -9 170 170"><path style="fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:11px" d="M130.887 54.969 67.444 78.214 4 54.969l13.51-35.9L67.444 4l49.934 15.069zm-5.273 39.517-58.17 22.969-58.17-22.969h-.01m111.93 33.229-53.75 21.68-53.75-21.68m-.001 0L4.004 54.967m126.88 0-9.689 72.748M67.444 78.214v71.182"/></svg>
|
||||
|
After Width: | Height: | Size: 368 B |
BIN
src/lib/assets/logo.webp
Normal file
BIN
src/lib/assets/logo.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
|
|
@ -3,7 +3,7 @@ export function slideIn(node: HTMLElement) {
|
|||
([entry]) => {
|
||||
if (entry.isIntersecting) {
|
||||
node.classList.add("opacity-100");
|
||||
node.classList.remove("opacity-0", "lg:translate-x-60", "lg:-translate-x-60", "translate-x-30", "-translate-x-30", "lg:-translate-x-60", "not-lg:translate-y-40");
|
||||
node.classList.remove("opacity-0", "lg:translate-x-60", "lg:-translate-x-60", "translate-x-25", "-translate-x-25", "lg:-translate-x-60", "not-lg:translate-y-40");
|
||||
observer.unobserve(node);
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
<script lang="ts">
|
||||
import './layout.css';
|
||||
import { onMount } from 'svelte';
|
||||
import favicon from '$lib/assets/favicon.svg';
|
||||
// import homeOg from '$lib/assets/home-og.png';
|
||||
import favicon from '$lib/assets/favicon.webp';
|
||||
|
||||
import homeOg from '$lib/assets/home-og.png';
|
||||
import MainNavbar from '$lib/MainNavbar.svelte';
|
||||
import SideMenu from '$lib/SideMenu.svelte';
|
||||
import { auth, initUserAuthStatus } from '$lib/auth.svelte';
|
||||
|
|
@ -33,49 +34,27 @@
|
|||
afterNavigate(() => {
|
||||
sideMenuOpen = isDashboard && window.matchMedia('(min-width: 1024px)').matches;
|
||||
})
|
||||
|
||||
let innerWidth: number | null | undefined = $state();
|
||||
let isMobile: boolean = $derived.by(() =>{
|
||||
if (!innerWidth) return false;
|
||||
return innerWidth < 768;
|
||||
});
|
||||
</script>
|
||||
|
||||
<svelte:window bind:innerWidth/>
|
||||
|
||||
<svelte:head>
|
||||
<link rel="icon" href={favicon}/>
|
||||
<link rel="apple-touch-icon" href={favicon}>
|
||||
<!-- <meta name="twitter:image" content={homeOg}>
|
||||
<meta property="og:image" content={homeOg}> -->
|
||||
<meta name="twitter:image" content={homeOg}>
|
||||
<meta property="og:image" content={homeOg}>
|
||||
<meta property="og:url" content="{page.url.toString()}">
|
||||
<meta name="twitter:url" content="{page.url.toString()}">
|
||||
</svelte:head>
|
||||
|
||||
|
||||
<main class="bg-base-300">
|
||||
<MainNavbar bind:sideMenuOpen {isMobile}/>
|
||||
<MainNavbar bind:sideMenuOpen/>
|
||||
<div class="flex flex-row min-h-0 flex-grow">
|
||||
<!-- {#if auth.isAuthenticated} -->
|
||||
<div class={sideMenuOpen && isDashboard ? "w-0 lg:w-60" : "w-0"}>
|
||||
<SideMenu bind:sideMenuOpen={sideMenuOpen} {isDashboard}/>
|
||||
</div>
|
||||
<!-- {/if} -->
|
||||
<div class={sideMenuOpen && isDashboard ? "w-0 lg:w-60" : "w-0"}>
|
||||
<SideMenu bind:sideMenuOpen={sideMenuOpen} {isDashboard}/>
|
||||
</div>
|
||||
<div class="flex-grow mt-16 bg-base-300 not-sm:overflow-auto">
|
||||
{@render children()}
|
||||
<Footer/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<!-- <div class="flex flex-col h-screen">
|
||||
<MainNavbar/>
|
||||
<div class="flex flex-row min-h-0 flex-grow">
|
||||
{#if auth.isAuthenticated}
|
||||
<SideMenu/>
|
||||
{/if}
|
||||
<div class="flex-grow overflow-auto sm:p-12 bg-base-300">
|
||||
{@render children()}
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 lg:grid-cols-[1fr_auto_1fr] overflow-none -mt-4 lg:my-8 justify-items-center items-center not-lg:max-w-120 max-w-full justify-items-stretch">
|
||||
<div use:slideIn class="flex flex-col stats w-50 max-w-72 h-100 not-lg:-mt-14 lg:pt-10 opacity-0 -translate-x-30 lg:-translate-x-60 ease-out transition-[transform, opacity] will-change-transform duration-1300 not-lg:order-1">
|
||||
<div use:slideIn class="flex flex-col stats w-50 max-w-72 h-100 not-lg:-mt-14 lg:pt-10 opacity-0 -translate-x-25 lg:-translate-x-60 ease-out transition-[transform, opacity] will-change-transform duration-1300 not-lg:order-1">
|
||||
<div class="stat place-items-center border-none">
|
||||
<div class="stat-title">Our domains</div>
|
||||
<div class="stat-value">3</div>
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
</div>
|
||||
</figure>
|
||||
|
||||
<div use:slideIn class="flex flex-col stats w-50 max-w-72 h-100 not-lg:-mt-14 lg:pt-10 opacity-0 translate-x-30 lg:translate-x-60 ease-out transition-[transform, opacity] will-change-transform duration-1300 not-lg:order-1">
|
||||
<div use:slideIn class="flex flex-col stats w-50 max-w-72 h-100 not-lg:-mt-14 lg:pt-10 opacity-0 translate-x-25 lg:translate-x-60 ease-out transition-[transform, opacity] will-change-transform duration-1300 not-lg:order-1">
|
||||
<div class="stat place-items-center border-none">
|
||||
<div class="stat-title">Cost</div>
|
||||
<div class="stat-value">0$</div>
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@
|
|||
|
||||
<div class="hero bg-base-200 mb-16">
|
||||
<div class="hero-content flex-col sm:flex-row-reverse">
|
||||
<div class="skeleton h-32 w-32"></div>
|
||||
<img
|
||||
class="max-w-sm rounded-lg shadow-2xl"
|
||||
alt="man in suit"
|
||||
|
|
|
|||
|
|
@ -57,13 +57,6 @@
|
|||
<div class="divider"></div>
|
||||
<h2 class="legend text-2xl font-bold p-4 m-4">Questions about our services</h2>
|
||||
|
||||
<!-- <div class="flex justify-center p-4 m-4">
|
||||
<h2 class="text-4xl font-semibold max-w-2xl">
|
||||
<span class="bg-gradient-to-t from-primary to-base-300">Questions</span> about our services
|
||||
</h2>
|
||||
</div> -->
|
||||
|
||||
|
||||
<div class="collapse collapse-arrow bg-base-200 border border-base-300">
|
||||
<input type="radio"/>
|
||||
<div class="collapse-title font-semibold">What is HexName?</div>
|
||||
|
|
@ -100,7 +93,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="collapse collapse-arrow bg-base-200 border border-base-300">
|
||||
<input type="radio"/>
|
||||
<div class="collapse-title font-semibold">How do I use my DDNS token to update my A/AAAA record?</div>
|
||||
|
|
@ -129,9 +121,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="collapse collapse-arrow bg-base-200 border border-base-300">
|
||||
<input type="radio"/>
|
||||
<div class="collapse-title font-semibold">Is this service really free?</div>
|
||||
|
|
@ -216,7 +205,7 @@
|
|||
<div class="collapse-title font-semibold">How does HexName make money?</div>
|
||||
<div class="collapse-content text-sm">
|
||||
<div class="p-2">
|
||||
I don't make a cent lol
|
||||
I don't lol
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -38,44 +38,8 @@
|
|||
--noise: 0;
|
||||
}
|
||||
|
||||
|
||||
@plugin "daisyui/theme" {
|
||||
name: "light";
|
||||
default: false;
|
||||
prefersdark: false;
|
||||
color-scheme: "light";
|
||||
--color-font: oklch(14% 0.005 285.823);
|
||||
--color-base-100: oklch(100% 0 0);
|
||||
--color-base-200: oklch(98% 0 0);
|
||||
--color-base-300: oklch(95% 0 0);
|
||||
--color-base-content: oklch(92% 0.013 255.508);
|
||||
--color-primary: oklch(48% 0.243 264.376);
|
||||
--color-primary-content: oklch(93% 0.032 255.585);
|
||||
--color-secondary: #ff0076;
|
||||
--color-secondary-content: oklch(94% 0.028 342.258);
|
||||
--color-accent: oklch(77% 0.152 181.912);
|
||||
--color-accent-content: oklch(38% 0.063 188.416); --color-neutral: oklch(14% 0.005 285.823);
|
||||
--color-neutral-content: oklch(92% 0.004 286.32);
|
||||
--color-info: oklch(74% 0.16 232.661);
|
||||
--color-info-content: oklch(29% 0.066 243.157);
|
||||
--color-success: oklch(79% 0.209 151.711);
|
||||
--color-success-content: oklch(39% 0.095 152.535);
|
||||
--color-warning: oklch(90% 0.182 98.111);
|
||||
--color-warning-content: oklch(42% 0.095 57.708);
|
||||
--color-error: oklch(64% 0.246 16.439);
|
||||
--color-error-content: oklch(27% 0.105 12.094);
|
||||
--radius-selector: 0.5rem;
|
||||
--radius-field: 0.25rem;
|
||||
--radius-box: 0.5rem;
|
||||
--size-selector: 0.25rem;
|
||||
--size-field: 0.25rem;
|
||||
--border: 1px;
|
||||
--depth: 0;
|
||||
--noise: 0;
|
||||
}
|
||||
|
||||
@theme {
|
||||
--breakpoint-xs: 410px;
|
||||
--breakpoint-xs: 390px;
|
||||
|
||||
--animate-fadeInDown: fadeInDown 1s ease-in;
|
||||
@keyframes fadeInDown {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue