feat: Rebrand from CS2.WTF to teamflash.rip with full pun mode

Complete site rebrand with flash-themed humor throughout:

- Update logo to "team" + "flash.rip" two-color design
- Add flash-themed error pages (404 = "You've Been Full-Blind")
- Revamp homepage hero with "Stop Flashing Your Teammates" tagline
- Update flash statistics page with playful labels ("Friendly Crimes", "Self-Inflicted L")
- Add loading messages store with flash-themed text
- Update all page meta titles and descriptions
- Update sitemap.xml and robots.txt with new domain
- Update package.json name and description

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-07 15:30:41 +01:00
parent 49033560fa
commit 3383302225
25 changed files with 208 additions and 112 deletions

View File

@@ -2,47 +2,78 @@
import { page } from '$app/stores';
import Button from '$lib/components/ui/Button.svelte';
import Card from '$lib/components/ui/Card.svelte';
import { Home, ArrowLeft } from 'lucide-svelte';
import { Home, ArrowLeft, Zap } from 'lucide-svelte';
// Get error information
const error = $page.error;
const status = $page.status;
// Determine error message
// Flash-themed error messages
const getErrorMessage = (status: number): string => {
switch (status) {
case 404:
return "We couldn't find the page you're looking for.";
return "This page got pop-flashed out of existence. Even we can't see it.";
case 500:
return 'Something went wrong on our end. Please try again later.';
return "The server got flashbanged. It's currently rubbing its eyes. Please wait.";
case 503:
return 'Service temporarily unavailable. Please check back soon.';
return 'Service temporarily blinded. Someone threw a flash into the server room.';
case 400:
return 'Bad request? More like bad flash lineup. Try again.';
case 401:
return "You need to authenticate. Unlike flashes, you can't just walk through this.";
case 403:
return 'Forbidden. This area is as off-limits as throwing flashes at your own spawn.';
default:
return 'An unexpected error occurred.';
return 'Something went white. Very white. Flash-in-the-face white.';
}
};
const getErrorTitle = (status: number): string => {
switch (status) {
case 404:
return 'Page Not Found';
return "You've Been Full-Blind";
case 500:
return 'Internal Server Error';
return 'Server Got Flashbanged';
case 503:
return 'Service Unavailable';
return 'Temporarily Blinded';
case 400:
return 'Bad Flash Lineup';
case 401:
return 'Flash Authentication Required';
case 403:
return 'Flash Access Denied';
default:
return 'Error';
return 'Unexpected Flash';
}
};
// Rotating flash puns for extra fun
const flashPuns = [
"At least this error didn't team flash you.",
"Error logging: You've been added to the wall of shame.",
'Did you try turning off the flashbang and turning it back on?',
'This error is brighter than your flash lineups.',
'404: Your aim, also not found.',
"The page didn't peek, but got flashed anyway.",
'Server.exe has stopped responding to flash inputs.',
'Have you considered not running into your own flashes?'
];
const randomPun = flashPuns[Math.floor(Math.random() * flashPuns.length)];
</script>
<svelte:head>
<title>{status} - {getErrorTitle(status)} | CS2.WTF</title>
<title>{status} - {getErrorTitle(status)} | teamflash.rip</title>
</svelte:head>
<div class="container mx-auto flex min-h-[60vh] items-center justify-center px-4 py-16">
<Card padding="lg" class="w-full max-w-2xl">
<div class="text-center">
<!-- Flash Icon -->
<div class="mb-4 flex justify-center">
<Zap class="h-16 w-16 animate-pulse text-warning" />
</div>
<!-- Error Code -->
<div class="mb-4 text-8xl font-bold text-primary">
{status}
@@ -54,15 +85,20 @@
</h1>
<!-- Error Message -->
<p class="mb-8 text-lg text-base-content/70">
<p class="mb-4 text-lg text-base-content/70">
{getErrorMessage(status)}
</p>
<!-- Random Flash Pun -->
<p class="mb-8 text-sm italic text-base-content/50">
"{randomPun}"
</p>
<!-- Debug Info (only in development) -->
{#if import.meta.env?.DEV && error}
<div class="mb-8 rounded-lg bg-base-300 p-4 text-left">
<p class="mb-2 font-mono text-sm text-error">
<strong>Debug Info:</strong>
<strong>Flash Report (Debug):</strong>
</p>
<pre class="overflow-x-auto text-xs text-base-content/80">{JSON.stringify(
error,
@@ -76,21 +112,22 @@
<div class="flex flex-col justify-center gap-4 sm:flex-row">
<Button variant="secondary" href="javascript:history.back()">
<ArrowLeft class="mr-2 h-5 w-5" />
Go Back
Peek Again
</Button>
<Button variant="primary" href="/">
<Home class="mr-2 h-5 w-5" />
Go Home
Return to Spawn
</Button>
</div>
<!-- Help Text -->
<p class="mt-8 text-sm text-base-content/50">
If this problem persists, please
If this flash keeps happening, please
<a href="https://somegit.dev/CSGOWTF/csgowtf/issues" class="link-hover link text-primary">
report it on GitHub
</a>
(we won't flash you, we promise)
</p>
</div>
</Card>