Skip to content

feat: redesign with new typography, /videos route, RSS, SEO#37

Open
aanogueira wants to merge 1 commit into
mainfrom
redesign/2026-05
Open

feat: redesign with new typography, /videos route, RSS, SEO#37
aanogueira wants to merge 1 commit into
mainfrom
redesign/2026-05

Conversation

@aanogueira
Copy link
Copy Markdown
Contributor

Typography:

  • Body font swapped from Fira Code to Inter Variable (mono stays Fira Mono so arrow animations and code blocks are unchanged)
  • Body font-weight 300 → 400 for proper Inter rendering

New routes and content:

  • /videos index + /videos/[slug] dynamic route with embedded YouTube player (youtube-nocookie); back link to /videos
  • /videos/rss.xml feed mirroring blog/projects RSS structure
  • Sample video content file for the welcome placeholder

Navigation & UI:

  • /about rewritten with intro + Phosphor icons on external links (GitHub, LinkedIn, Medium, dev.to, BMC) and a single global RSS link
  • /contact icons before the platform label
  • Per-section RSS chip on /blog, /projects, /videos with [N] count
  • Project carousel arrows hidden when slides fit; per-image aspect ratio (16:9 default, 9:16 for tall variant)
  • Projects index uses 110rem container, explicit 3/2/1 col grid
  • Back links: global a.back rule with mono <- arrow that slides on hover
  • Logo click toggles theme (replaces removed standalone Toggle); h1 text still navigates home
  • Theme attribute set from prefers-color-scheme on load (no localStorage), console override still possible via setAttribute

SEO:

  • VideoObject JSON-LD added on /videos/[slug] (uses YouTube thumbnail, embed and watch URLs)
  • PageHead handles absolute image URLs (YouTube thumbnails for video pages)
  • robots.txt allows /videos/rss.xml
  • Sitemap includes /videos and per-video URLs
  • WebSite JSON-LD wired on home page

Spacing & polish:

  • Top spacing unified to 24px from header across every page (index, about/contact, slug pages)
  • Skip-to-content link background fixed (was referencing undefined --bg-1)
  • /about icon color matches /contact icon color

Pull Request

Description

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📝 Documentation update
  • 🎨 Code style update (formatting, renaming)
  • ♻️ Code refactoring (no functional changes)
  • ⚡ Performance improvement
  • ✅ Test update
  • 🔧 Build/CI configuration change
  • 🔒 Security fix

Related Issues

Fixes #(issue number)
Related to #(issue number)

Changes Made

Testing

  • Existing tests pass (make test)
  • New tests added (if applicable)
  • Manual testing performed
  • Linter passes (make lint)

Test Coverage

  • Current coverage: __%
  • Coverage change: __% (increase/decrease)

Screenshots/Recordings

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Additional Notes

Typography:
- Body font swapped from Fira Code to Inter Variable (mono stays Fira Mono so arrow animations and code blocks are unchanged)
- Body font-weight 300 → 400 for proper Inter rendering

New routes and content:
- /videos index + /videos/[slug] dynamic route with embedded YouTube
  player (youtube-nocookie); back link to /videos
- /videos/rss.xml feed mirroring blog/projects RSS structure
- Sample video content file for the welcome placeholder

Navigation & UI:
- /about rewritten with intro + Phosphor icons on external links
  (GitHub, LinkedIn, Medium, dev.to, BMC) and a single global RSS link
- /contact icons before the platform label
- Per-section RSS chip on /blog, /projects, /videos with [N] count
- Project carousel arrows hidden when slides fit; per-image aspect
  ratio (16:9 default, 9:16 for tall variant)
- Projects index uses 110rem container, explicit 3/2/1 col grid
- Back links: global a.back rule with mono <- arrow that slides on hover
- Logo click toggles theme (replaces removed standalone Toggle); h1
  text still navigates home
- Theme attribute set from prefers-color-scheme on load (no localStorage),
  console override still possible via setAttribute

SEO:
- VideoObject JSON-LD added on /videos/[slug] (uses YouTube
  thumbnail, embed and watch URLs)
- PageHead handles absolute image URLs (YouTube thumbnails for
  video pages)
- robots.txt allows /videos/rss.xml
- Sitemap includes /videos and per-video URLs
- WebSite JSON-LD wired on home page

Spacing & polish:
- Top spacing unified to 24px from header across every page (index,
  about/contact, slug pages)
- Skip-to-content link background fixed (was referencing undefined
  --bg-1)
- /about icon color matches /contact icon color

Signed-off-by: Andre Nogueira <aanogueira@protonmail.com>
@github-actions
Copy link
Copy Markdown

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

package.json

PackageVersionLicenseIssue Type
@vitest/coverage-v8^4.1.5NullUnknown License
dompurify^3.4.2NullUnknown License
Allowed Licenses: MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, 0BSD

OpenSSF Scorecard

PackageVersionScoreDetails
npm/@iconify-json/ph ^1.2.2 UnknownUnknown
npm/@sveltejs/kit ^2.59.0 UnknownUnknown
npm/@vitest/coverage-v8 ^4.1.5 UnknownUnknown
npm/dompurify ^3.4.2 UnknownUnknown
npm/eslint-plugin-svelte ^3.17.1 UnknownUnknown
npm/jsdom ^29.1.1 UnknownUnknown
npm/prettier ^3.8.3 UnknownUnknown
npm/svelte ^5.55.5 UnknownUnknown
npm/vite ^8.0.10 UnknownUnknown
npm/vitest ^4.1.5 UnknownUnknown

Scanned Files

  • package.json

@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/lib/utils/structured-data.js 0.00% 9 Missing ⚠️

📢 Thoughts on this report? Let us know!

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