Skip to content

SvelteKit port: feature parity with live Next.js site#22

Open
matticoli wants to merge 15 commits into
mainfrom
svelte
Open

SvelteKit port: feature parity with live Next.js site#22
matticoli wants to merge 15 commits into
mainfrom
svelte

Conversation

@matticoli
Copy link
Copy Markdown
Owner

@matticoli matticoli commented Apr 28, 2026

Summary

Ports the remaining features from the live Next.js site (matticoli.net) to the SvelteKit branch, achieving visual and functional parity. Playwright was used to drive automated comparison across all pages and interactions.

Changes

  • nav.svelte — Added "Mikel Matticoli / Full Stack Engineer • UX Designer" logo on the left; replaced emoji nav icons with Bootstrap SVG icons (house, person-lines, tools) to match live site
  • hi.svelte — Fixed typing cursor from | to _
  • fireflies.svelte — New component: 30 animated firefly particles, CSS ported from live site (src/styles/fireflies.css)
  • contact-popup.svelte — New component: sticky bottom toggle button (business-card/hand images), slide-in contact panel with /contact.html iframe, SVG social links (PDF/LinkedIn/GitHub), correct -rotate-90 closed-state animation with origin-right
  • +layout.svelte — Wired in <Fireflies>, <ContactPopup>, bouncing "Contact me 👉" label, SVG footer icons, SvelteKit View Transitions page transitions via onNavigate
  • +layout.tsexport const prerender = true so adapter-static builds cleanly
  • about/+page.svelte — Fixed self-closing <span /> tags (Svelte error), added title to resume <iframe> for a11y
  • src/.gitignore — Added /.svelte-kit/ to stop tracking generated build artifacts

Build

npm run build passes cleanly — adapter-static produces a fully prerendered static site. No warnings other than the pre-existing deprecated kit.files.assets option (functional, just flagged).


Visual Comparison — Live (matticoli.net) vs SvelteKit Port

Header / Nav

Live SvelteKit
live header svelte header

Home Page

Live SvelteKit
live home svelte home

Contact Popup (open)

Live SvelteKit
live contact svelte contact

About Page

Live SvelteKit
live about svelte about

Projects Page

Live SvelteKit
live projects svelte projects

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw

matticoli and others added 8 commits January 21, 2026 22:21
- Upgraded tailwindcss to v4.1.18 and added @tailwindcss/postcss plugin
- Fixed Tailwind v4 configuration with proper content paths and CSS import syntax
- Replaced react-typing-effect with custom React hook-based typing animation (React 19 compatible)
- Fixed Button component Link usage for React 19 compatibility
- Fixed Nav component layout for proper desktop alignment with logo and nav buttons on one line
- Fixed iconMap in project pages to use function references instead of direct JSX elements
- Removed non-existent script references from contact.html that were causing 404 errors
- Updated PostCSS config to use @tailwindcss/postcss plugin
- Fixed component barrel exports to use named re-exports instead of default object export
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
matticoli Error Error May 3, 2026 4:13am

- nav: add Mikel Matticoli logo/subtitle on left, replace emoji with Bootstrap SVG icons
- hi: fix typing cursor from | to _ to match live site
- fireflies: add 30-particle animated component with fireflies.css from live site
- contact-popup: new component with sticky toggle button, iframe form, SVG social links, correct -rotate-90 animation
- layout: wire in Fireflies, ContactPopup, bounce label, SVG footer icons, View Transitions page transitions
- layout.ts: export prerender=true for adapter-static build
- about: fix self-closing spans, add iframe title for a11y
- .gitignore: exclude .svelte-kit/ build artifacts

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
Side-by-side screenshots of matticoli.net (live) vs SvelteKit port
across home, header, contact popup, about, and projects pages.

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
@matticoli matticoli changed the title svelte migration SvelteKit port: feature parity with live Next.js site Apr 28, 2026
- fireflies: use {length: 30} iterable instead of sparse Array(30)
- nav: replace reactive label with plain function (reads $page store directly)
- contact-popup: remove redundant text-center on panel div

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
'Lexend, Helvetica, sans-serif' in a CSS style attribute treats the
entire comma-separated list as one invalid font name. Without the outer
quotes the browser correctly resolves the font stack.

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
- .github/workflows/pr-preview.yml: builds SvelteKit on PR open/sync/close
  and uses rossjrw/pr-preview-action to deploy/clean up previews on the
  gh-pages branch under /pr-preview/pr-{number}/
- svelte.config.js: read BASE_PATH env var into kit.paths.base so internal
  links and assets resolve correctly when served from a subdirectory

Preview URL pattern: https://matticoli.github.io/pr-preview/pr-{number}/

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
SvelteKit errors when paths.base is set and internal hrefs/srcs lack the
base prefix. Fix by importing `base` and `assets` from `$app/paths` across
all components and routes. Configure handleHttpError to warn (not throw) for
project markdown data that contains absolute asset paths not under base.

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 28, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://matticoli.github.io/pr-preview/pr-22/

Built to branch gh-pages at 2026-05-03 04:13 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

GitHub Pages uses Jekyll by default, which ignores directories starting
with _. Adding .nojekyll disables Jekyll so _app/ is served correctly.

https://claude.ai/code/session_012QUyTtg5yUBfbkbtzic3qw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants