Homepage: add stable intro copy; mark footer utility links data-nosnippet; add render test

This commit is contained in:
2026-05-08 21:51:28 +02:00
parent 6b83d76cd1
commit 8d108b8a76
3 changed files with 49 additions and 9 deletions

View File

@@ -6,7 +6,7 @@
<span class="sr-only">Skinbase</span>
</div>
<div class="flex flex-wrap gap-x-6 gap-y-2 text-sm text-neutral-400">
<div class="flex flex-wrap gap-x-6 gap-y-2 text-sm text-neutral-400" data-nosnippet>
<a class="hover:text-white" href="/contact">Contact / Apply</a>
<a class="hover:text-white" href="/help">Help</a>
<a class="hover:text-white" href="/rss-feeds">RSS Feeds</a>
@@ -22,6 +22,6 @@
>Cookie Preferences</button>
</div>
<div class="text-xs text-neutral-400">© 2026 Skinbase.org</div>
<div class="text-xs text-neutral-400" data-nosnippet>© 2026 Skinbase.org</div>
</div>
</footer>

View File

@@ -8,11 +8,14 @@
<section class="relative flex min-h-[62vh] max-h-[420px] w-full items-end overflow-hidden bg-nova-900 md:min-h-[38vh] md:max-h-[460px]">
<div class="pointer-events-none absolute inset-0 bg-gradient-to-t from-nova-900 via-nova-900/60 to-transparent"></div>
<div class="relative z-10 w-full px-6 pb-7 sm:px-10 lg:px-16">
<p class="mb-1.5 text-xs font-semibold uppercase tracking-widest text-accent">
Skinbase
</p>
<h1 class="text-2xl font-bold tracking-tight text-white sm:text-4xl">
Skinbase
</h1>
<p class="mt-2 max-w-xl text-sm text-soft">
Discover. Create. Inspire.
<p class="mt-2 max-w-2xl text-sm text-soft sm:text-base">
Discover digital art, wallpapers, skins, and photography from a global creator community. Explore trending work, fresh uploads, and long-time classics in one place.
</p>
<div class="mt-4 flex flex-wrap gap-3">
<a href="/discover/trending" class="btn-accent-solid rounded-xl px-5 py-2 text-sm font-semibold">Explore Trending</a>
@@ -39,15 +42,18 @@
<div class="relative z-10 w-full px-6 pb-7 sm:px-10 lg:px-16">
<p class="mb-1.5 text-xs font-semibold uppercase tracking-widest text-accent">
Featured Artwork
Skinbase
</p>
<h1 class="text-2xl font-bold tracking-tight text-white drop-shadow sm:text-4xl lg:text-5xl">
{{ $heroArtwork['title'] ?? 'Untitled' }}
Digital Art & Wallpapers
</h1>
<p class="mt-1.5 text-sm text-soft">
by
<p class="mt-2 max-w-2xl text-sm text-soft sm:text-base">
Discover digital art, wallpapers, skins, and photography from a global creator community. Browse trending work, fresh uploads, and timeless favorites.
</p>
<p class="mt-3 text-sm text-soft">
Featured artwork:
<a href="{{ $heroArtwork['url'] ?? '#' }}" class="text-nova-200 transition hover:text-white">
{{ $heroArtwork['author'] ?? 'Artist' }}
{{ $heroArtwork['title'] ?? 'Untitled' }} by {{ $heroArtwork['author'] ?? 'Artist' }}
</a>
</p>
<div class="mt-4 flex flex-wrap gap-3">

View File

@@ -228,6 +228,40 @@ it('homepage payload includes the announcement prop', function (): void {
expect($html)->toContain('"announcement":{"id":42');
});
it('homepage renders stable intro copy and excludes footer utility text from snippets', function (): void {
$html = view('web.home', [
'seo' => [],
'useUnifiedSeo' => true,
'meta' => [],
'props' => [
'hero' => [
'title' => 'Featured Example',
'author' => 'CreatorName',
'url' => '/art/1/featured-example',
],
'announcement' => null,
'community_favorites' => [],
'hall_of_fame' => [],
'rising' => [],
'trending' => [],
'fresh' => [],
'collections_featured' => [],
'collections_trending' => [],
'collections_editorial' => [],
'collections_community' => [],
'world_spotlight' => null,
'groups' => [],
'tags' => [],
'creators' => [],
'news' => [],
],
])->render();
expect($html)
->toContain('Discover digital art, wallpapers, skins, and photography from a global creator community.')
->toContain('data-nosnippet');
});
it('preview sanitizes html content', function (): void {
$admin = adminUser();