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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user