Skip to content

Modernize site UX and fix navigation/theme/event behavior#337

Merged
Ky7m merged 8 commits into
mainfrom
modernization
Jun 16, 2026
Merged

Modernize site UX and fix navigation/theme/event behavior#337
Ky7m merged 8 commits into
mainfrom
modernization

Conversation

@Ky7m

@Ky7m Ky7m commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Why

This refresh modernizes the site experience and resolves key usability issues that appeared during exploratory testing: event filtering/navigation regressions, unclear theme control behavior, broken social icon rendering, and inconsistent hero/profile structure.

What changed

  • Reworked the top-level experience into a single #home About hero with updated navigation (About, Events, Certifications) and simplified information hierarchy.
  • Refined the About hero presentation:
    • removed duplicate visible name in hero
    • switched to static tagline text
    • changed avatar treatment to portrait-style presentation and tightened section spacing
    • removed redundant profile-contact/quick-info section and folded MVP link into social actions
  • Rebuilt theme handling for clarity and correctness:
    • improved visual toggle with sun/moon affordance
    • fixed OS theme alignment behavior and explicit user override persistence semantics
    • added pre-paint theme initialization (theme.js) to avoid flash and preserve consistent state
  • Fixed navigation and interaction logic:
    • corrected smooth-scroll interception so query-based event filters continue to work
    • replaced active-link observer behavior with scroll-position scrollspy to avoid incorrect "last section" selection when multiple sections are visible
  • Restored/fixed content integrity:
    • corrected X/Twitter icon path usage
    • fixed event loading guard logic and period switching behavior
    • added 2026 events and updated event/content data
  • Updated styling/system assets as part of modernization:
    • migrated layout/styling in app.css, removed obsolete font/image assets, and aligned sitemap/instructions/docs with the current structure
    • added launch settings to pin a non-conflicting local dev port (5247)

Notes for reviewers

  • This PR is intentionally broad because it combines the modernization pass with subsequent user-driven UX refinements and bugfixes validated in-session.
  • Events and Certifications content behavior was preserved while improving surrounding navigation and hero structure.
  • Local run behavior now uses launchSettings.json defaults (http://localhost:5247).

Ky7m and others added 7 commits June 14, 2026 13:23
- Drop Bootstrap 5.3.3 CDN; replace with hand-crafted modern CSS system
- Implement design tokens via CSS custom properties (color, typography, spacing, shadows)
- Add light/dark mode support with prefers-color-scheme + localStorage persistence
- Replace fixed-px type with fluid clamp() typography scale for responsive design
- Remove Fontello icon font; replace with inline SVG icons (GitHub, LinkedIn, X, etc.)
- Build custom accessible navbar with hamburger menu + IntersectionObserver active link
- Add scroll-reveal animations honoring prefers-reduced-motion
- Implement theme-toggle button with no flash (pre-paint script in head)
- Redesign hero as typographic section (drop background photo) with improved scroll cue
- Update all Razor components with modern markup (Profile, Events, Certifications, etc.)
- Add OG/Twitter card meta, canonical, JSON-LD Person schema, improved SEO
- Improve accessibility: fix link hover contrast, add :focus-visible, aria-labels
- Update index.html: remove Bootstrap CDN, add theme script, modernize meta tags
- Rewrite site.js: custom nav, modern JS without Bootstrap.Collapse dependency
- CSS file size: 12K → 23K (feature-rich vs legacy bloat)
- Zero external CDN dependencies (everything self-hosted)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix dark theme toggle: Add CSS rules for html[data-theme="dark"] to properly support manual theme switching via JavaScript
- Fix dark theme flash: Remove hardcoded data-theme="light" from body element, let theme.js control it
- Fix X/Twitter icon: Update SVG path from old Twitter bird logo to modern X symbol
- Fix events scroll reveal: Add .section class to profile-contact section for IntersectionObserver tracking
- All fixes verified with clean build (0 errors, 0 warnings)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Updated X icon SVG path in QuickInformation.razor to modern X logo
- Was still using old Twitter bird logo in profile-item section
- Both Profile.razor and QuickInformation.razor now have consistent X logo

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 15, 2026 22:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the Blazor WebAssembly SPA’s UX and fixes navigation/theme/event-filtering behavior by updating the app shell (HTML/CSS/JS), simplifying the Home/About structure, and extending in-memory event data.

Changes:

  • Reworked UI shell: new design-token-based app.css, updated layout/components for Home/About, Events, and Certifications.
  • Rebuilt theme + navigation behaviors: pre-paint theme initialization (theme.js), theme toggle, mobile menu, smooth scroll guard, section reveal, and scrollspy.
  • Updated content/data and tooling/config: added 2026 events (and more 2025 entries), updated sitemap, and introduced agent/APM configuration files.

Reviewed changes

Copilot reviewed 41 out of 49 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
src/PersonalWebApp/wwwroot/sitemap.xml Updates sitemap entries for new section structure.
src/PersonalWebApp/wwwroot/js/theme.js Adds pre-paint theme initialization to avoid flash.
src/PersonalWebApp/wwwroot/js/site.js Reworks client-side shell behavior (menu, theme toggle, scroll/scrollspy, reveal).
src/PersonalWebApp/wwwroot/index.html Updates metadata/SEO tags, loader markup, and includes theme pre-paint script.
src/PersonalWebApp/wwwroot/fonts/fontello.svg Removes legacy icon font asset.
src/PersonalWebApp/wwwroot/fonts/config.json Removes legacy fontello config.
src/PersonalWebApp/wwwroot/css/app.css Major CSS modernization with tokens, utilities, new section styles, and loader/reveal styles.
src/PersonalWebApp/Services/InMemoryStorageService.cs Extends event storage to include 2026 and refactors backing dictionary naming.
src/PersonalWebApp/Properties/launchSettings.json Adds local dev port/profile settings.
src/PersonalWebApp/Pages/Home.razor Updates top-level layout/nav and event loading guard; wires JS shell init/dispose.
src/PersonalWebApp/Extensions/CommonStrings.cs Adds NewYork location constant.
src/PersonalWebApp/EventsList/Events2026.cs Adds 2026 events list.
src/PersonalWebApp/EventsList/Events2025.cs Adds 2025 events entries and collateral.
src/PersonalWebApp/Components/QuickInformation.razor Removes the old quick-info/profile-contact strip.
src/PersonalWebApp/Components/Profile.razor Rebuilds About/Profile hero (portrait avatar, social actions, bio).
src/PersonalWebApp/Components/EventsSection.razor Modernizes events UI (timeline/cards, chips, period filter).
src/PersonalWebApp/Components/ErrorPage.razor Updates error page layout and adds a “Go Home” action.
src/PersonalWebApp/Components/Certifications.razor Converts certifications list into a responsive badge grid.
PersonalWebApp.sln.DotSettings Adds a Rider/ReSharper user dictionary entry.
apm.yml Adds APM project configuration.
apm.lock.yaml Adds APM lockfile for marketplace plugin/skill dependencies.
.gitignore Ignores APM dependency directory.
.github/github-app.yml Adds GitHub app automation/dev-server script config.
.github/copilot-instructions.md Updates agent instructions to reflect new navigation/JS behavior.
.agents/skills/use-js-interop/SKILL.md Adds Blazor JS interop guidance skill content.
.agents/skills/support-prerendering/SKILL.md Adds prerendering guidance skill content.
.agents/skills/plan-ui-change/SKILL.md Adds UI planning/decomposition guidance skill content.
.agents/skills/fetch-and-send-data/SKILL.md Adds Blazor data-fetching lifecycle guidance skill content.
.agents/skills/create-blazor-project/SKILL.md Adds Blazor project scaffolding guidance skill content.
.agents/skills/create-blazor-project/assets/agents-md/webassembly-per-page.md Adds AGENTS.md template for WASM per-page mode.
.agents/skills/create-blazor-project/assets/agents-md/webassembly-global.md Adds AGENTS.md template for WASM global mode.
.agents/skills/create-blazor-project/assets/agents-md/ssr-none.md Adds AGENTS.md template for static SSR mode.
.agents/skills/create-blazor-project/assets/agents-md/server-per-page.md Adds AGENTS.md template for Server per-page mode.
.agents/skills/create-blazor-project/assets/agents-md/server-global.md Adds AGENTS.md template for Server global mode.
.agents/skills/create-blazor-project/assets/agents-md/auto-per-page.md Adds AGENTS.md template for Auto per-page mode.
.agents/skills/create-blazor-project/assets/agents-md/auto-global.md Adds AGENTS.md template for Auto global mode.
.agents/skills/coordinate-components/SKILL.md Adds shared-state coordination guidance skill content.
.agents/skills/configure-auth/SKILL.md Adds auth configuration guidance skill content.
.agents/skills/collect-user-input/SKILL.md Adds forms/input/validation guidance skill content.
.agents/skills/author-component/SKILL.md Adds component authoring guidance skill content.
.agents/skills/author-component/references/component-disposal.md Adds disposal guidance reference.
.agents/skills/author-component/references/breaking-down-components.md Adds decomposition guidance reference.
.agents/skills/author-component/references/async-programming-rules.md Adds async rules reference.

Comment thread src/PersonalWebApp/wwwroot/index.html Outdated
Comment thread src/PersonalWebApp/wwwroot/sitemap.xml Outdated
Comment thread src/PersonalWebApp/wwwroot/js/theme.js
Comment thread src/PersonalWebApp/wwwroot/js/site.js
Comment thread src/PersonalWebApp/wwwroot/js/site.js
Comment thread src/PersonalWebApp/Pages/Home.razor Outdated
Comment thread src/PersonalWebApp/Components/EventsSection.razor Outdated
Comment thread src/PersonalWebApp/Components/EventsSection.razor
Comment thread apm.yml
Comment thread PersonalWebApp.sln.DotSettings Outdated
…d sync, sitemap query URL, remove missing assets, fix YAML/namespace typos, use CSS utility classes
@github-actions

Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://happy-meadow-096172110-337.centralus.7.azurestaticapps.net

@Ky7m Ky7m merged commit f8b1a94 into main Jun 16, 2026
3 of 4 checks passed
@Ky7m Ky7m deleted the modernization branch June 16, 2026 01:29
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