Skip to content

Add animated Logo component and replace static logo images#49

Merged
jfrench9 merged 7 commits intomainfrom
feature/logo-spinner
Feb 28, 2026
Merged

Add animated Logo component and replace static logo images#49
jfrench9 merged 7 commits intomainfrom
feature/logo-spinner

Conversation

@jfrench9
Copy link
Member

Summary

Introduces a new AnimatedLogo component (Logo.tsx) to replace static logo image files (logo.png, logo_black.png) across the application. This PR also integrates a NEXT_PUBLIC_APP_NAME environment variable (via CURRENT_APP constant) to drive dynamic app branding throughout layout and authentication components.

Changes

New Components & Assets

  • Logo.tsx (274 lines): New animated SVG-based logo component with spinner/animation capabilities, replacing the need for static PNG assets
  • Exported from ui-components/index.ts for shared usage across the core library

Static Asset Removal

  • Deleted public/images/logo.png and public/images/logo_black.png — no longer needed since the logo is now rendered programmatically via the AnimatedLogo component

Environment & CI Configuration

  • Added NEXT_PUBLIC_APP_NAME to .env.example and .github/workflows/build.yml to support dynamic app naming at build time

Component Updates

  • Header.tsx: Replaced <Image> (static logo) with <AnimatedLogo> for consistent animated branding in the landing header
  • CoreNavbar.tsx: Updated navbar to use the new Logo component
  • Spinner.tsx: Modified to align with the new logo/animation approach
  • SignInForm.tsx / SignUpForm.tsx / AppSwitcher.tsx: Integrated CURRENT_APP constant for dynamic app name rendering; refactored logo references
  • layout-wrapper.tsx / layout.tsx: Updated to use CURRENT_APP for page titles and metadata
  • login/content.tsx / register/content.tsx / maintenance.tsx: Replaced hardcoded app names and static logo references with the new constant and component

Config & Types

  • auth-core/config.ts: Added/updated CURRENT_APP constant sourced from NEXT_PUBLIC_APP_NAME
  • auth-core/types.ts: Extended types to support the new app name configuration
  • core/index.ts: Updated exports to include new Logo component and constants

Tests

  • Updated SignInForm.test.tsx and SignUpForm.test.tsx to account for the new dynamic app name and logo component changes

Key UI/UX Improvements

  • Animated logo replaces static PNGs, providing a polished spinner/loading feel and better visual consistency
  • Dynamic app branding via environment variable eliminates hardcoded app names, making the codebase more portable across deployments
  • Reduced asset payload — two PNG files (~75 KB combined) removed in favor of an SVG-based component

Breaking Changes

  • NEXT_PUBLIC_APP_NAME is now required: All deployment environments must set this variable. Without it, app name references may render as undefined or fallback values. Update .env files and CI/CD pipelines accordingly.
  • Removed static logo files: Any external references or components directly importing public/images/logo.png or public/images/logo_black.png will break. All logo rendering should now go through the AnimatedLogo / Logo component.

Testing Notes for Reviewers

  1. Verify NEXT_PUBLIC_APP_NAME is set in your local .env — confirm the app name renders correctly on login, register, maintenance, and main layout pages
  2. AnimatedLogo rendering: Check the header, navbar, sign-in, and sign-up forms for the new animated logo — confirm animation plays smoothly and the logo scales correctly at different viewport sizes
  3. Dark/light mode: The old assets included a logo_black.png variant — verify the new SVG-based component handles both themes appropriately
  4. Auth flow walkthrough: Navigate through login → register → app dashboard to ensure branding is consistent across all transitions
  5. Build pipeline: Confirm the GitHub Actions workflow passes with the new NEXT_PUBLIC_APP_NAME env var injected

Browser Compatibility Considerations

  • The new Logo.tsx component uses SVG animations (likely CSS keyframes or SVG <animate> elements) — these are well-supported in all modern browsers (Chrome, Firefox, Safari, Edge)
  • Verify SVG animation performance on Safari/iOS, which occasionally handles CSS transforms on SVGs differently
  • If the animation uses requestAnimationFrame or JS-driven animation, confirm there are no jank issues on lower-powered devices
  • No concerns with the environment variable changes — NEXT_PUBLIC_* vars are statically replaced at build time by Next.js

🤖 Generated with Claude Code

Branch Info:

  • Source: feature/logo-spinner
  • Target: main
  • Type: feature

Co-Authored-By: Claude noreply@anthropic.com

990b8fa Update environment configuration, replace logo references, and enhance UI components. Added NEXT_PUBLIC_APP_NAME to .env.example and build workflow. Changed JSX setting in tsconfig.json. Removed old logo images and integrated AnimatedLogo component across various UI components, including Navbar and authentication forms. Updated layout metadata and adjusted app name handling for consistency.

git-subtree-dir: src/lib/core
git-subtree-split: 990b8fa7d4270d7fd261818255dc3735411dfb13
…mproved UI consistency and animation integration.
…ks, enhancing flexibility and configuration management.
@jfrench9 jfrench9 merged commit ad5c46e into main Feb 28, 2026
3 checks passed
@jfrench9 jfrench9 deleted the feature/logo-spinner branch February 28, 2026 07:52
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.

1 participant