refactor: UX and styling improvements across frontend
- Fix login spinner (isLoading never set to true before await) - Extract PageHero component, replace copy-pasted hero sections on videos/models/tags pages - Replace inline plasma blobs with SexyBackground on videos/models/tags pages - Make video/model/tag cards fully clickable (wrap in <a>), remove redundant Watch/View Profile buttons - Convert inner overlay anchors to divs to avoid nested <a> elements - Fix home page model avatar preset: mini → thumbnail (correct size for 96px display) - Reduce home hero height: min-h-screen → min-h-[70vh] - Remove dead hideName prop from Logo, simplify component - Add brand name to mobile flyout panel header with gradient styling - Remove dead _relatedVideos array, isBookmarked state, _handleBookmark from video detail page - Clean up commented-out code blocks in video detail and models pages - Note: tag card inner tag links converted to spans to avoid nested anchors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
href="/"
|
||||
class="flex w-full items-center gap-3 hover:scale-105 transition-all duration-300"
|
||||
>
|
||||
<Logo hideName={true} />
|
||||
<Logo />
|
||||
</a>
|
||||
|
||||
<!-- Desktop Navigation -->
|
||||
@@ -191,8 +191,13 @@
|
||||
inert={!isMobileMenuOpen || undefined}
|
||||
>
|
||||
<!-- Panel header -->
|
||||
<div class="flex items-center px-5 h-16 shrink-0 border-b border-border/30">
|
||||
<Logo hideName={true} />
|
||||
<div class="flex items-center gap-3 px-5 h-16 shrink-0 border-b border-border/30">
|
||||
<Logo />
|
||||
<span
|
||||
class="text-xl font-extrabold bg-gradient-to-r from-primary to-accent bg-clip-text text-transparent"
|
||||
>
|
||||
{$_("brand.name")}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="flex-1 py-6 px-5 space-y-6">
|
||||
|
||||
@@ -2,6 +2,4 @@
|
||||
import SexyIcon from "../icon/icon.svelte";
|
||||
</script>
|
||||
|
||||
<div class="relative">
|
||||
<SexyIcon class="w-12 h-12" />
|
||||
</div>
|
||||
<SexyIcon class="w-12 h-12" />
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<script lang="ts">
|
||||
import type { Snippet } from "svelte";
|
||||
|
||||
interface Props {
|
||||
title: string;
|
||||
description?: string;
|
||||
children?: Snippet;
|
||||
}
|
||||
|
||||
let { title, description, children }: Props = $props();
|
||||
</script>
|
||||
|
||||
<section class="relative py-12 md:py-20 overflow-hidden">
|
||||
<div class="absolute inset-0 bg-gradient-to-br from-primary/10 via-accent/5 to-background"></div>
|
||||
<div class="relative container mx-auto px-4 text-center">
|
||||
<div class="max-w-5xl mx-auto">
|
||||
<h1
|
||||
class="text-5xl md:text-7xl font-bold mb-6 bg-gradient-to-r from-primary via-accent to-primary bg-clip-text text-transparent"
|
||||
>
|
||||
{title}
|
||||
</h1>
|
||||
{#if description}
|
||||
<p class="text-xl md:text-2xl text-muted-foreground mb-10 leading-relaxed max-w-4xl mx-auto">
|
||||
{description}
|
||||
</p>
|
||||
{/if}
|
||||
{#if children}
|
||||
{@render children()}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
Reference in New Issue
Block a user