feat: add Matrix rain + terminal hero with typing effect

- Matrix rain animation on homepage load (duration tied to page load)
- Sequential transition to terminal window with typing effect
- cat welcome.txt → title & tagline
- fastfetch → dual eagle-eye ASCII art (霍德爾之目)
- prefers-reduced-motion support
- SEO: sr-only h1 for accessibility

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-13 22:44:24 +08:00
parent d27cc01c87
commit 42a1d3cbbe
4 changed files with 468 additions and 8 deletions

View File

@@ -5,6 +5,7 @@ import { PostListItem } from '@/components/post-list-item';
import { TimelineWrapper } from '@/components/timeline-wrapper';
import { SidebarLayout } from '@/components/sidebar-layout';
import { JsonLd } from '@/components/json-ld';
import { HeroSection } from '@/components/hero-section';
export default function HomePage() {
const posts = getAllPostsSorted().slice(0, siteConfig.postsPerPage);
@@ -34,14 +35,13 @@ export default function HomePage() {
<JsonLd data={collectionPageSchema} />
<section className="space-y-6">
<SidebarLayout>
<header className="space-y-1 text-center">
<h1 className="type-title font-bold text-slate-900 dark:text-slate-50">
{siteConfig.name}
</h1>
<p className="type-small text-slate-600 dark:text-slate-300">
{siteConfig.tagline}
</p>
</header>
<h1 className="sr-only">
{siteConfig.name} {siteConfig.tagline}
</h1>
<HeroSection
title={`${siteConfig.name} 的最新動態`}
tagline={siteConfig.tagline}
/>
<div>
<div className="mb-3 flex items-baseline justify-between">