Commit Graph
20 Commits
Author SHA1 Message Date
phranck f8c5ea3b6e Fix: Remove duplicate crt-scanline keyframes (old fast version)
The old 'background-position' animation was still present and
overriding the new slower 'translateY' version. Now only the
30s animation remains active.
2026-02-02 00:41:13 +01:00
phranck 8193335039 Fix: Slow down CRT scanline animation from 8s to 30s 2026-02-02 00:39:30 +01:00
phranck 3cbcce9b88 Feat: Add CRT monitor visual effects to terminal
Inspired by cool-retro-term, implements vintage CRT display effects:

**New Component: CRTEffects.tsx**
- Scanlines (horizontal raster lines)
- Screen curvature simulation (vignette)
- Glow/bloom effect
- Subtle flicker animation
- Animated noise overlay (Canvas API)
- Moving scanline sweep

**CSS Animations (globals.css)**
- @keyframes crt-flicker: Subtle brightness variation (0.15s loop)
- @keyframes crt-scanline: Horizontal line sweep (8s loop)

**Integration (HeroTerminal.tsx)**
- CRT effects only active when terminal is powered+zoomed
- Optimized parameters:
  - scanlineIntensity: 0.12
  - curvature: 0.08
  - glowIntensity: 0.25
  - flickerIntensity: 0.02
  - noiseIntensity: 0.04

Effects layer at z-index 200 with mix-blend-mode screen.
All effects are pointer-events-none to preserve interactivity.
2026-02-02 00:37:35 +01:00
phranck e7d68fd4cc Remove: CRT power-on sound completely
- Removed AudioContext setup and management
- Removed playCrtPowerOnSound() function (95 lines)
- Removed audio unlock listeners
- Cleaned up handlePowerOn comment

Audio caused issues with browser autoplay policies and added
unnecessary complexity. Terminal animation works fine without it.
2026-02-02 00:33:59 +01:00
phranck ae552adfce Fix: CRT power-on sound blocked by browser autoplay policy
- Make playCrtPowerOnSound() async with proper AudioContext.resume()
- Add AudioContext unlock on first user interaction (click/touchstart)
- Add error handling for audio failures
- Ensures sound works in all browsers with autoplay restrictions
2026-02-02 00:28:01 +01:00
phranck dc2f0992f4 Feat: Replace SN Pro with Nunito font on landing page
- Remove SN Pro Google Font import from globals.css
- Add Nunito font import with weights 400, 500, 600, 700
- Update CSS variables to use --font-nunito
- Apply Nunito as primary font family for body text
- Keep Geist Mono for monospace elements
2026-02-01 22:15:03 +01:00
phranck 42b0597075 Feat: Comprehensive SEO improvements for landing page
- Add robots.txt and sitemap.xml (static files for export mode)
- Add OG image (1200x630) with terminal icon + branding
- Add Twitter Card meta tags (summary_large_image)
- Add canonical URL via metadataBase
- Add JSON-LD structured data (SoftwareSourceCode schema)
- Add <main> landmark and skip-navigation link for accessibility
- Add preconnect hints for Google Fonts, Google Static, and Umami
- Add web app manifest (site.webmanifest)
- Add meta keywords for secondary search engines
- Add aria-hidden on decorative SF Symbol icons
2026-02-01 04:00:02 +01:00
phranck 0ba791c1eb Feat: Cropped terminal favicon and keyboard theme cycling
- Generate cropped favicon from tuikit-logo.png (transparent edges removed)
- Add multi-size favicons (16, 32, 192, 512px + .ico)
- Update metadata.icons in layout.tsx with proper sizes
- Add global 't' keydown listener in ThemeProvider to cycle themes
- Fix TUIKit → TUIkit typo in palette-preview.html
2026-02-01 03:50:00 +01:00
phranck 58140d78fc Feat: Blinking cursor in headline and Umami analytics
- Add blinking terminal cursor (_) to headline via @utility and @keyframes
- Add Umami analytics script to layout head
2026-02-01 03:23:57 +01:00
phranck 620c62c2e8 Feat: Blade Runner atmosphere effects, System V terminal rewrite, and visual polish
- Add full-screen canvas rain overlay (RainOverlay) with theme-colored drops
- Add random-position pulsing spinner lights (SpinnerLights) with drift effect
- Add anamorphic lens flares to HeroTerminal CRT screen
- Rewrite all ~65 terminal interactions for AT&T UNIX System V accuracy (1984)
- Add human-like variable typing speed for David (Joshua sequence)
- Fix AudioContext leak with shared lazy instance
- Fix SpinnerLights timer leak with Set-based cleanup
- Fix stale lineRefsRef in clearScreen, canvas lineWidth jitter
- Fix uncontrolled HeroTerminal timeout refs
- Remove redundant mounted state, WIND_DRIFT constant, opacity no-op
- Replace getComputedStyle polling with MutationObserver for theme changes
- Fix unstable React key causing DOM remounts
- Fix pickInteraction off-by-two for full exhaustion
- Add frosted glass effect to FeatureCards, CodePreview, and Built right box
- Add glowing text to PackageBadge, simplify ThemeSwitcher logic
- Layer content above atmosphere effects with z-index stacking
2026-02-01 02:50:58 +01:00
phranck 4af5d1cfc4 Feat: Remove static welcome text and add CRT glass sheen overlay
- Powered-off terminal shows no text (realistic CRT behavior)
- Add permanent glass sheen with diagonal specular highlight in theme color
- Glass overlay covers full screen area with vignette effect
2026-02-01 01:32:29 +01:00
phranck 106eb5b1cd Feat: UNIX System V boot sequence, Joshua easter egg, CRT effects and theme fixes
- Replace Swift/TUIKit boot content with authentic System V Release 3.2 boot sequence
- Rewrite all ~53 terminal interactions as classic UNIX commands
- Add complete WarGames/Joshua easter egg with film-accurate screenplay dialog
- Add CRT power-on sound (degauss thump, mains hum, flyback whine)
- Add scanline sweep animation and random scanline glitch effect
- Restructure CRT layers: black backing, terminal content, inner glow, frame mask
- Update logo to frame-only PNG with transparent center
- Fix theme hydration flash (null initial state, localStorage-first reading)
- Add cursor-pointer and null-safe active indicator to ThemeSwitcher
2026-02-01 01:26:40 +01:00
phranck 713323dded Feat: Add CRT power-on hum and delay boot until zoom animation completes 2026-01-31 23:19:23 +01:00
phranck b8028e83e0 Feat: Replace static logo with interactive CRT terminal animation 2026-01-31 23:09:37 +01:00
phranck 142221627d Refactor: Restructure Palette background properties for semantic clarity
Replace generic backgroundSecondary/backgroundTertiary with purpose-specific
background properties (containerBodyBackground, containerCapBackground,
buttonBackground, appHeaderBackground, overlayBackground).

- Update Palette protocol and all 7 palette implementations
- Update SemanticColor, Color.Semantic namespace, and view consumers
- Rewrite background hierarchy tests with luminance assertions
- Update DocC articles (PaletteReference, ThemingGuide, AppearanceAndColors)
- Sync landing page CSS variables and components to new naming
- Update palette-preview.html with new property names
- Replace landing page logo with tuikit-logo-blank.png
2026-01-31 19:44:46 +01:00
phranck 971190be23 Feat: Add Violet theme to landing page, match SDK cycling order 2026-01-31 19:03:15 +01:00
phranck 2c4e6cc8dc Feat: Add Blue/Violet palettes, sync landing page colors with Swift, fix theme switcher FOUC
- Add BluePalette (VFD-style, #00AAFF base) and VioletPalette (HSL-generated from hue 270°)
- Remove GeneratedPalette entirely (replaced by dedicated VioletPalette)
- Reorder palette cycling: Green → Amber → Red → Violet → Blue → White → NCurses
- Sync all landing page CSS theme colors with exact Swift palette values
- Add blue theme to landing page with matching VFD colors
- Fix theme switcher FOUC: useEffect syncs React state after hydrate
- Update default theme to Green (was Amber)
- Update landing page logo to latest DocC version
2026-01-31 19:01:48 +01:00
phranck d2a2f0376a Fix: Eliminate theme flash (FOUC) on page reload by applying stored theme before first paint 2026-01-31 16:57:56 +01:00
phranck c8041df3ac Feat: Update footer layout — centered with location details and small license link 2026-01-31 16:43:11 +01:00
phranck ba92c10863 Feat: Add custom landing page with theme switcher and auto-versioned SPM badge
- Next.js static site in docs/ with SN Pro font and WarText headline
- 4 phosphor themes (Green, Amber, White, Red) with localStorage persistence
- Animated cloud background tinted to active theme
- SF Symbols icons via sf-symbols-lib/hierarchical
- PackageBadge with copy-to-clipboard, version from CI tag
- CI workflow builds landing page + DocC, deploys to GitHub Pages
- Version auto-resolved from git tags on deploy
2026-01-31 16:33:32 +01:00