Commit Graph
75 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
phranck 0103a32a5b cleanup: Remove leftover VitePress docs files 2026-01-30 09:55:45 +01:00
phranck 1d05de80d0 cleanup: Migrate from DocC/MkDocs to VitePress documentation
- Remove old DocC-generated documentation files (HTML, JS, CSS, JSON)
- Remove mkdocs.yml configuration file
- Add new VitePress configuration and documentation structure
- Add GitHub Actions workflow for automated VitePress deployment
- Update .gitignore to exclude node_modules and dist folders
- All documentation content migrated with modern layout and styling
- VitePress provides faster builds and better developer experience
2026-01-29 18:15:01 +01:00
phranck cef4083829 cleanup: Remove remaining old DocC-generated JSON files from docs/ 2026-01-30 07:46:09 +01:00
phranck c66a53de66 feat: Replace all documentation with DocC + GitHub Pages deployment
- Remove old VitePress, MkDocs, and legacy DocC workflows and files
- Add swift-docc-plugin dependency to Package.swift
- Create DocC catalog at Sources/TUIKit/TUIKit.docc/ with:
  - Main landing page with full API topic organization
  - Getting Started guide
  - Architecture overview
  - State Management guide
  - Theming guide
- Add GitHub Actions workflow for DocC → GitHub Pages (macos-15)
- CNAME for tuikit.layered.work injected during CI build
- Clean up .gitignore (remove MkDocs/VitePress entries, add docs-output/)
2026-01-30 07:41:53 +01:00
phranck 97eec53ccb cleanup: Migrate from DocC/MkDocs to VitePress documentation
- Remove old DocC-generated documentation files (HTML, JS, CSS, JSON)
- Remove mkdocs.yml configuration file
- Add new VitePress configuration and documentation structure
- Add GitHub Actions workflow for automated VitePress deployment
- Update .gitignore to exclude node_modules and dist folders
- All documentation content migrated with modern layout and styling
- VitePress provides faster builds and better developer experience
2026-01-29 18:15:01 +01:00
phranck cacc951cec docs: Generate DocC documentation 2026-01-29 17:55:49 +00:00
phranck e901661689 Create CNAME 2026-01-29 18:55:28 +01:00
phranck 5ac97652f9 docs: Generate DocC documentation 2026-01-29 15:52:26 +00:00
phranck 1173a86db5 docs: Generate DocC documentation 2026-01-29 15:37:45 +00:00
phranck 544d84a21a feat: Replace DocC with MkDocs documentation
- Add MkDocs with Material theme for reliable documentation
- Create comprehensive markdown documentation:
  - Home page with quick start guide
  - Getting started with code examples
  - Complete API reference with Swift code samples
  - Contributing guidelines
- Material theme with automatic dark/light mode support
- Colors: Emerald (primary), Indigo (accent)
- Add GitHub Actions workflow to build and deploy to GitHub Pages
- Markdown-based docs are easier to maintain and customize
- Generates static HTML without complex framework dependencies
2026-01-29 14:57:07 +01:00
phranck 83a02dcfe2 docs: Generate DocC documentation 2026-01-29 13:54:27 +00:00
phranck 9d08460c40 cleanup: Remove old DocC generated files 2026-01-29 14:54:10 +01:00
phranck 0ebf0d2825 docs: Generate DocC documentation 2026-01-29 13:32:15 +00:00
phranck 7ce981e787 docs: Regenerate DocC to docs root with correct structure 2026-01-29 14:32:00 +01:00
phranck 7c54d82b65 Cleanup: Remove landing page temporarily 2026-01-29 14:30:43 +01:00
phranck d419f175d5 docs: Generate DocC documentation 2026-01-29 13:23:46 +00:00
phranck eea73aee10 Cleanup: Remove path-fixing script and commit asset files
- Delete unnecessary fix-docc-paths.sh script (no longer needed)
- Add favicon and OG image assets to docs directory
- Simplify DocC deployment workflow
2026-01-29 14:22:45 +01:00
phranck 569c971d27 docs: Generate DocC documentation 2026-01-29 13:20:15 +00:00
phranck 28a9f75e60 Refactor: Simplify DocC deployment workflow
- Generate DocC directly to docs/api/ (simpler approach)
- Workflow commits generated docs to repository
- Remove path conversion complexity
- Update .gitignore to track docs/api/
- Update landing page links to api/ endpoint
- Removes unnecessary path fixing script
2026-01-29 14:19:57 +01:00
phranck c4b5c502fd Fix: Update DocC links in landing page
- Change relative paths from ../docs-api/ to docs-api/
- Links now correctly point to documentation from website root
- Works with new GitHub Pages deployment structure
2026-01-29 14:03:31 +01:00
phranck 129d0e255b Cleanup: Remove old docs/api/ directory
- Delete deprecated docs/api/ with old DocC generation
- All documentation now generated to docs-api/ with relative paths
- Simplifies repository structure and avoids confusion
2026-01-29 13:59:49 +01:00
phranck 0b3cedf522 Refactor: Move DocC to docs-api/ with relative paths
- Generate DocC to docs-api/ instead of docs/api/ for cleaner separation
- Add post-processing script to convert absolute paths to relative
- Ensures documentation works independently of hosting path
- Update .gitignore to ignore docs-api/ generated files
- Update landing page links to use relative paths to ../docs-api/
- Makes the site more portable and resilient to path changes
2026-01-29 13:58:29 +01:00
phranck 972b96f562 Fix: Add hosting-base-path to DocC generation for correct asset URLs
- Add --hosting-base-path /api flag to docc convert command
- Ensures CSS and JS assets load from /api/ subdirectory
- Fixes 404 errors when accessing documentation at docs-tuikit.layered.work/api/
2026-01-29 13:54:10 +01:00
phranck b7a2ab4ed8 Style: Remove border and background from hero image
- Remove rounded border around hero image
- Remove border styling and gradient background
- Make hero image full width for cleaner presentation
2026-01-29 13:50:35 +01:00
phranck dac3404b28 feat: Add real hero section image - Spotnik TUIKit demo
- Replace SVG placeholder with professional Spotnik terminal UI screenshot
- Shows real TUIKit application built for music management
- Green and black color scheme matching TUIKit theme
- Demonstrates interactive terminal UI with playlists and controls
- Image: docs/images/hero-demo.png (3.9MB)
2026-01-29 13:45:34 +01:00
phranck 894ca152aa style: Change font from Inter to Roboto Flex
- Replace Inter with Roboto Flex Google Font
- Import weights: 400, 500, 600, 700
- Modern, flexible typography with better proportions
- Applies to all body text and headings
2026-01-29 13:33:58 +01:00
phranck d30b63d1ce feat: Add animated gradient blob backgrounds to landing page
- 4 animated blobs with green and indigo gradients
- Floating animations with different durations and directions
- Fixed background layer below content
- Blobs positioned strategically across viewport
- Smooth fade and scale animations
- Matches dark theme and modern SaaS aesthetic
- Non-blocking (pointer-events: none)
2026-01-29 13:30:34 +01:00
phranck 946ad0ca1e feat: Add professional SVG placeholder images for landing page
- Hero Section: Terminal UI mockup showing TUIKit application with menu
  - Terminal window with title bar and colored buttons
  - Example menu with navigation and selected items
  - Monaco monospace font with terminal colors

- Advanced Section: Advanced TUIKit Demo showing features
  - Terminal window with two feature boxes (Theme and Components)
  - Live example section with interactive menu
  - Color-coded borders (green + indigo)

- Testimonial Avatars: Gradient avatars with initials (ready for replacement)
  - 6 unique gradient combinations
  - 40x40px size with initials

All placeholders match dark theme and are easily replaceable with real images
2026-01-29 13:28:08 +01:00
phranck 7015d639cd design: Redesign landing page to match open.cruip.com template style
- Dark theme with gray-950 background
- Animated gradient text on hero heading
- Modern card designs with hover effects and glow shadows
- Feature grid with 6 cards (declarative, appearance, themes, components, focus, state)
- Advanced section with 2-column layout and 6 feature blocks
- Code example section with syntax highlighting
- 6 Testimonials with avatars and gradients
- Smooth navigation and scroll behavior
- Inter font and modern color palette (green + indigo)
- Fully responsive design for mobile, tablet, desktop
2026-01-29 13:26:38 +01:00
phranck e8b8a948ca fix: Update landing page docs links to point to /api/ subdirectory 2026-01-29 13:21:09 +01:00