100 Commits
Author SHA1 Message Date
ssbg04 a169dc7d7d feat(links): redesign links directory to bryl-minimal aesthetic and add auto theme detection
- Redesign links page to clean 34rem narrow measure bryl-minimal layout
- Add automatic system theme detection (prefers-color-scheme) with live adaptation
- Add interactive theme toggle pill (Auto / Light / Dark) in the top navigation bar
- Display natural color day/night portraits, Geist Pixel typography, and clean bryl-cards
- Update navbar item ordering in Navbar.tsx
2026-10-23 00:57:19 +08:00
ssbg04 b7723b11d9 feat: redesign portfolio to bryl-minimal aesthetic and refine mobile/desktop UX
- Default theme to system mode with live OS color-scheme detection
- Fix custom dot-matrix sprite cursor for light/dark modes
- Preserve natural color portraits across all views
- Improve mobile hero layout with responsive portrait and Geist Pixel typography
- Add subtle color tint to perimeter background dots while keeping reading content clear
- Center certificate modal via createPortal and make verify button theme-responsive
- Make settings controls (magnifier toggle, lens button, zoom levels) theme-responsive
- Remove flagship badge and deep-dive technical sections from TIS-RMS case study
2026-10-23 00:50:38 +08:00
ssbg04 33a3f997e6 fix(seo): add HSTS headers, clean crawler directives, and exclude /links from sitemap 2026-10-22 23:16:44 +08:00
ssbg04 3c0654e030 fix(seo): block gallery from image indexing and remove facebook/tiktok from hero 2026-10-22 02:02:48 +08:00
ssbg04 974863e237 feat: revamp portfolio projects, skills, and nav
Upgrade project case studies to accurate stack, group skills into 5 domains, streamline homepage hierarchy, and fix mobile navigation.
2026-10-22 01:47:35 +08:00
ssbg04 5e5010c06c feat(analytics): add global background visitor geo telemetry to Layout 2026-10-22 01:08:40 +08:00
ssbg04 7852c64a26 fix(routing): eliminate redirect loop on links subdomain rewrite 2026-10-22 01:02:33 +08:00
ssbg04 a628246e0b feat(routing): route links page to links.crischarles.com subdomain 2026-10-22 00:49:38 +08:00
ssbg04 c3f9ab43ab feat(map): generate mathematically accurate 100x50 world dot matrix and align country pinpoint coordinates 2026-10-18 22:12:40 +08:00
ssbg04 eb09f43454 fix(map): add mobile pinch-to-zoom, counter-scale tooltips when zoomed in, and responsive mobile pinpoint card 2026-10-18 21:32:22 +08:00
ssbg04 fe5c4be198 feat(map): match world map fullscreen expand with photo gallery lightbox modal 2026-10-18 21:16:17 +08:00
ssbg04 05ccd4d81f feat(live-chat): enable instant 1-2s Telegram direct sync to eliminate 60s KV delay 2026-10-18 20:55:48 +08:00
ssbg04 316708130f chore(config): add wrangler.jsonc with explicit GEO_KV, SESSION, and IMAGES bindings 2026-10-18 20:42:40 +08:00
ssbg04 1bbff1c85c fix: declare GEO_KV binding in wrangler.json, fix service worker caching of API routes, and eliminate TypeError on blocked analytics 2026-10-18 20:40:00 +08:00
ssbg04 f1ff5e7073 fix(live-chat): enable KV persistence for live chat and auto-register Telegram webhook for instant two-way replies 2026-10-18 20:30:55 +08:00
ssbg04 63fe7eb717 fix(geo): import env from cloudflare:workers for KV binding and add storage telemetry indicator 2026-10-18 20:24:13 +08:00
ssbg04 0f514c3079 fix(geo): enhance GEO_KV resolution for Cloudflare Pages bindings 2026-10-18 20:05:22 +08:00
ssbg04 30b4764d5c fix(world-map): remove mock visitor data, adapt expanded modal to active theme, full viewport expansion, and fix dot hover readability 2026-10-18 19:57:47 +08:00
ssbg04 a0c2ccd1b7 fix: resolve Astro v6 runtime.env error and fix live visitor tracking 2026-10-18 19:47:27 +08:00
ssbg04 6d36b8ed29 feat: enable Cloudflare KV persistent storage support for visitor world map 2026-10-18 19:38:10 +08:00
ssbg04 963e4ac6b4 fix: confine chat auto-scroll to messages container to prevent window jump 2026-10-18 19:34:56 +08:00
ssbg04 b0c10dc389 feat: rebalance contact layout with full-width world map and war-room fullscreen modal 2026-10-18 19:31:54 +08:00
ssbg04 234c52739a feat: refine telemetry skeletons, badge tags, photo album clustering, and mobile FAB layout 2026-10-18 19:24:52 +08:00
ssbg04 20f61a0429 feat: streamline homepage executive dashboard and add interactive architecture diagram for TIS-RMS 2026-10-18 19:12:26 +08:00
ssbg04 f9a5f018c5 feat: complete dot-matrix landmass bitmask and fix telegram reply routing 2026-10-18 19:03:52 +08:00
ssbg04 75617ae49b fix: merge incoming live chat replies using map deduplication and reduce polling interval to 2.5s 2026-10-18 13:31:18 +08:00
ssbg04 7d270a63e3 fix: resolve 500 error by removing Astro.locals.runtime.env and switch to robust HTML parsing for telegram dispatch 2026-10-18 13:22:47 +08:00
ssbg04 21058cc9b2 fix: support cloudflare locals.runtime.env bindings and add telegram error telemetry in live-chat 2026-10-18 13:20:01 +08:00
ssbg04 a73c2aa8e5 feat: add telegram webhook handler to receive phone replies and push to visitor chat 2026-10-18 13:16:49 +08:00
ssbg04 1941064933 feat: add interactive visitor world map and telegram live chat on contact page 2026-10-18 13:05:06 +08:00
ssbg04 a1102a2e4d feat: harmonize mobile drawer active tab design with tech indicator dot and badge 2026-10-18 12:49:19 +08:00
ssbg04 ac2b366fd5 fix: lock background scroll and isolate touch gestures when certification modal is active 2026-10-18 12:47:49 +08:00
ssbg04 e164d80f75 fix: relocate certification modal close button to dedicated header bar to prevent overlap with image preview on mobile 2026-10-18 12:46:20 +08:00
ssbg04 17af7449ec feat: update desktop sidebar active tab with tech indicator dot and replace duplicate contact button with CV CTA 2026-10-18 12:42:45 +08:00
ssbg04 242864bd66 fix: improve light mode scrollbar visibility and hide custom cursor on text inputs 2026-10-18 12:39:17 +08:00
ssbg04 f9863e156a fix: sync emnapi dependencies in package.json and lockfile for cloudflare npm ci 2026-10-18 12:24:53 +08:00
ssbg04 81d58814f7 fix(deps): sync @emnapi/runtime dependency in package-lock for Cloudflare Pages npm ci 2026-10-18 12:17:05 +08:00
ssbg04 c1edea07ce feat(deploy): migrate to Cloudflare Pages, integrate Resend email API, and optimize contact form 2026-10-18 12:10:16 +08:00
ssbg04 c3ad31f28b perf(core): self-host fonts, eliminate Google Fonts CDN, defer API fetches, and convert utility islands to zero-JS 2026-10-18 11:15:58 +08:00
ssbg04 19b4f11fc9 refactor(links,tech-stack): pure fontawesome svg icons and streamline links directory 2026-10-18 10:48:32 +08:00
ssbg04 585b76137e feat: integrate FontAwesome React SVG v7 for techstack icons
- Install @fortawesome/react-fontawesome, @fortawesome/fontawesome-svg-core, @fortawesome/free-brands-svg-icons, and @fortawesome/free-solid-svg-icons
- Map Sanity IO skills and FontAwesome classes to tree-shaken <FontAwesomeIcon /> SVGs
- Fix icon precedence ensuring Tailwind CSS renders official faTailwindCss
- Support official vector fallbacks for modern platforms (Vercel, Netlify, Render, GCP)
2026-10-18 10:27:53 +08:00
ssbg04 c4caf4c13d perf: optimize page speed, accessibility, and activity chart
- Replace FontAwesome CDN with lightweight SVG TechIcon component (-317 KiB payload)
- Load Google Fonts asynchronously with preload and media=print to unblock render
- Add cdn.sanity.io preconnect for faster LCP image discovery
- Convert Hero to static server-rendered HTML and balance CTA button size
- Replace 480-node DOM contribution grid with lightweight SVG Activity Sparkline
- Use GPU-composited scaleY for Footer sound wave bars to prevent layout thrashing
- Fix accessibility: viewport zooming, ARIA list/listitem, link labels, and color contrast
- Cache and defer weather API calls using requestIdleCallback
2026-10-18 09:39:54 +08:00
ssbg04 5f3604bd2a perf: optimize mobile LCP, image delivery, font loading, and client hydration 2026-10-17 06:47:44 +08:00
ssbg04 383161ce78 feat: add dot matrix cursor, optimize theme switching, and fix hover performance 2026-10-16 20:04:28 +08:00
ssbg04 ce1135dd65 feat: optimize performance, add AMOLED theme, dot-matrix font, and fix tis-rms 301 redirect 2026-10-16 16:45:26 +08:00
ssbg04 afe834317b fix(seo): resolve Google Search Console indexing, canonical, heading, and redirect issues 2026-10-16 12:29:32 +08:00
ssbg04 39677e0e88 feat(seo): add SiteNavigationElement schema and optimize Google Sitelinks metadata 2026-09-27 02:27:21 +08:00
ssbg04 ba2f24b6f7 fix featured for projects and certifications at their pages 2026-09-23 12:34:40 +08:00
ssbg04 f26959a77f fix featured for projects and certifications 2026-09-23 12:11:43 +08:00
ssbg04 aabbe7e98d removed: todo and agent md 2026-09-22 21:54:18 +08:00
ssbg04 ec8b9da1ea removed: todo and agent md 2026-09-22 21:52:55 +08:00
ssbg04 bbb392576a update: from SSR to Hybrid SSR/SSG 2026-09-22 19:33:58 +08:00
ssbg04 cc876b9159 Merge branch 'main' of https://github.com/ssbg04/Portfolioo 2026-09-22 19:05:09 +08:00
ssbg04 422fd9fd25 fix fontawesome icons 2026-09-22 19:03:51 +08:00
ssbg04 6dd8fb8703 Stop tracking sripts folder 2026-09-22 18:16:08 +08:00
ssbg04 d723fe1854 improve SEO 2026-09-22 18:04:34 +08:00
ssbg04 89a1752f1f improve SEO 2026-09-22 17:59:30 +08:00
ssbg04 825a74f795 improve SEO 2026-09-22 17:40:56 +08:00
ssbg04 e3a646e3d0 add: bingapi 2026-09-22 17:08:57 +08:00
ssbg04 c228fff265 Fix mobile navbar disappearing issue and optimize image loading across all pages
- Fix: Removed undefined checkLite function in ControlsDropdown causing navbar to crash on menu close
- Fix: Add justClosedDrawerRef to prevent navbar auto-hide after closing mobile menu
- Optimize: Add loading and fetchPriority attributes to all images across components
- Optimize: Eagerly load above-the-fold images (gallery first 3, certifications first 1+2 badges)
- Optimize: Lazy load below-the-fold images with proper decoding async
- Improve: Better LCP performance and bandwidth usage across gallery, projects, and certifications pages
2026-09-20 20:04:44 +08:00
ssbg04 b1af4331fe feat: redesign portfolio into neo-brutalism design system
- adopt authentic neo-brutalist typography (Space Grotesk, Plus Jakarta Sans, Space Mono)
- default theme to light mode and remove lite mode/data saver
- redesign certification preview and fullscreen lightbox modals with frosted backdrop blur
- redesign photo gallery preview modal and grid into neo-brutalism
- update scroll animations to trigger at 1/4 bottom of viewport
- add spring pop-up entry and sticker slap animations to hero profile image
- overhaul section backgrounds and components into neo-brutalist cards and shadows
2026-09-20 00:52:16 +08:00
ssbg04 f24ba80cd0 feat(mobile): hide navbar and portfolio assistant button on scroll down, reveal on scroll up
- Mobile navbar slides out of view on scroll down and reveals on scroll up
- Portfolio assistant FAB slides down on mobile scroll down and reveals on scroll up
- Keep elements visible when drawer or chat window is open
- Reset visibility on ClientRouter page transitions
2026-09-13 22:50:10 +08:00
ssbg04 000a45f0f9 feat(ui): redesign navbar & footer glassmorphism, center spotify modal, and polish responsive layouts
- Redesign navbar and footer with modern glassmorphism styling
- Remove icons and monogram avatars from navigation links for clean typography
- Render Spotify modal via portal to ensure centered viewport positioning
- Fix navbar background handling at top scroll positions
- Optimize responsive spacing across all pages and update documentation
2026-09-13 22:37:09 +08:00
ssbg04 29017e84ba feat(nav): smooth page transitions, icon-free navigation, cross-page ultra-fast persistence, and optimized glassmorphism 2026-09-13 17:16:56 +08:00
ssbg04 164e3a6bbc fix(ui): tighten projects title spacing, improve gallery description readability, and make cert modal responsive 2026-09-13 15:37:28 +08:00
ssbg04 52cb837c28 feat(ui): update mobile nav full-screen drawer, links responsive layout, and gallery modal controls 2026-09-13 15:19:02 +08:00
ssbg04 6365b59a14 feat(mobile): hide 3D background objects and auto-activate gyroscope tilt without background tap
- Hide 3D floating section objects on mobile viewport to prevent clutter behind cards
- Immediately attach deviceorientation on mount for Android (0 taps needed)
- Capture iOS device orientation permission on any touch/scroll/click with capture: true
2026-09-13 14:49:40 +08:00
ssbg04 5a46a00827 feat(mobile): add gyroscope background parallax tilt and tighten hero top spacing
- Add DeviceOrientationEvent tilt to 3D wave mesh, section models, and dot grid on mobile
- Adjust mobile hero layout to eliminate excessive top whitespace below navbar
2026-09-13 14:09:21 +08:00
ssbg04 2b729fb213 feat(skills): update preview limit to 12 and deduplicate count label
- Set homepage skills limit to 12 for balanced grid rows across all viewports
- Remove redundant count from header when limited, showing count once in card footer
- Update TODO.md
2026-09-13 13:58:44 +08:00
ssbg04 1724aab396 feat(ui): refine navbar, settings modal, section headers, and mobile responsiveness
- Remove section numbering prefixes and duplicate title tags across all sections
- Update Navbar brand to name only and animate hamburger button to 'X' icon
- Refactor settings modal to body portal with system theme detection
- Compact mobile badge cards into 2-column grid and simplify active nav indicators
2026-09-13 13:44:43 +08:00
ssbg04 b6d26fcc42 feat(contact): implement Zoho SMTP with Nodemailer and 2 emails/day rate limit 2026-09-13 10:48:49 +08:00
ssbg04 39e2e6514f feat(ui): remove duplicate project action buttons and calibrate 3d wave background 2026-09-12 22:07:40 +08:00
ssbg04 64cc41e919 feat(projects): update project links to showcase page and redesign dedicated project layout 2026-09-12 20:41:36 +08:00
ssbg04 363fa64faf feat(cv): add simple in-page modal, fix cross-origin download, and resolve hydration warnings 2026-09-12 15:41:52 +08:00
ssbg04 b2a5ef1a31 feat(ui): simplify skills display and fix contact heading and static labels 2026-09-12 13:38:54 +08:00
ssbg04 5f2593db2a feat(ui): implement ultra-fast retro standard css design mode 2026-09-12 13:20:23 +08:00
ssbg04 325bddb528 feat(github): make contributions matrix responsive full width with mobile horizontal scroll 2026-09-12 10:42:16 +08:00
ssbg04 43293f2284 feat(ui): redesign cursor to single fluid ring and default magnifier off 2026-09-08 09:39:15 +08:00
ssbg04 ae76389178 feat(about): add local time/weather and remove unused components 2026-09-08 09:26:56 +08:00
ssbg04 286ec847fc feat(about): move github contributions from footer to about section 2026-09-08 09:07:34 +08:00
ssbg04 d30e15f3b9 feat: polish sections, optimize widgets, and fix chat assistant 2026-09-08 08:59:00 +08:00
ssbg04 bb98eabbde feat: fix lite mode reload blank sections, align mobile glass UI with PC, and add stutter/lag detection prompt 2026-09-08 00:02:27 +08:00
ssbg04 988d3089f0 fix(background): resolve WebGL shader crash and implement section-linked 3D reveal with static hero 2026-09-07 23:34:05 +08:00
ssbg04 1ec00327ac feat(background): add 3D Blender-style cybernetic constellation with scroll-down zoom animation 2026-09-07 22:53:21 +08:00
ssbg04 ec1fa185df feat(home): reorder sections and remove skill proficiency percentages 2026-09-07 20:49:52 +08:00
ssbg04 dd3bfac6f0 fix(certifications): fix mobile picture zoom/drag review modal and remove dummy credentials 2026-09-07 01:03:48 +08:00
ssbg04 ee7652ff09 feat: redesign spotify vinyl sleeve widget, add cert zoom modal & github contributions api 2026-09-06 23:34:39 +08:00
ssbg04 d5f5d96565 feat: default lite mode off, mobile magnifier, assistant anti-spam & footer github contributions with spotify modal 2026-09-06 23:15:40 +08:00
ssbg04 c97e37cdad Update & Commented: sitemap.xml 2026-09-05 11:22:15 +08:00
ssbg04 020221349e feat(testimonials): remove mock testimonials and add empty state note 2026-09-05 10:59:36 +08:00
ssbg04 92cff2878e feat(projects): redesign projects section with split modal & 5-item homepage limit 2026-09-05 10:49:37 +08:00
ssbg04 5824716e9c chore: untrack sanity-studio 2026-09-04 00:56:32 +08:00
ssbg04 ef5d35dbf4 feat(pwa): add offline support, network-first service worker, web manifest & e-business card mode 2026-09-04 00:49:17 +08:00
ssbg04 d8bc9f9f52 feat: implement ultra-fast alternate design for save-data, slow internet & manual lite mode 2026-09-04 00:40:00 +08:00
ssbg04 5d90407a41 fix(background): resolve landscape right-side collision, tailor portrait layout & increase mouse travel 2026-09-04 00:32:11 +08:00
ssbg04 3b7425c5b6 fix: resolve certifications visibility with referrerPolicy, merge sanity certs, and refine non-colliding zoom parallax 2026-09-04 00:18:01 +08:00
ssbg04 408f968e96 fix: use named createImageUrlBuilder from @sanity/image-url, make background parallax vibrant and clearly visible 2026-09-03 23:47:49 +08:00
ssbg04 a38e3b3e98 feat: implement multi-layer background parallax and mobile haptic vibration feedback 2026-09-03 23:41:08 +08:00
ssbg04 fc0e320532 del: lightrays 2026-09-03 23:33:14 +08:00
ssbg04 83aef0ec24 chore: update brand logo & favicon, remove unused favicon.svg, sync TODO.md 2026-09-03 23:26:57 +08:00