-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
featureNew feature implementationNew feature implementationpriority: highShould be done soonShould be done soonuiUser interface and componentsUser interface and components
Description
Create the main header component for GhostPaste with navigation and branding.
Requirements
Branding & Logo
- GhostPaste logo/text on the left (ghost emoji 👻 + "GhostPaste" text)
- Logo links to home page (/)
- Use consistent font and sizing from design system
Navigation Items
- "Create" - Links to /create (or just / if that's the create page)
- "About" - Links to /about or opens modal with project info
- "GitHub" - External link to https://github.com/nullcoder/ghostpaste
Theme Toggle
- Theme toggle button on the right side
- Use existing ThemeToggle component from feat: implement Web Crypto API encryption/decryption utilities #36
- Persist theme preference
Mobile Responsiveness
- Hamburger menu for screens < 768px
- Slide-out navigation drawer
- Close on outside click or escape key
- Smooth animations
Sticky Behavior
- Header becomes sticky on scroll
- Optional: Add subtle shadow when scrolled
- Ensure z-index properly layers over content
Accessibility
- Proper ARIA labels for navigation
- Skip to main content link
- Keyboard navigation support
- Focus management for mobile menu
Implementation Notes
// Use shadcn/ui components
import { NavigationMenu } from "@/components/ui/navigation-menu"
import { Sheet } from "@/components/ui/sheet" // for mobile drawer
import { ThemeToggle } from "@/components/theme-toggle"Acceptance Criteria
- Header displays GhostPaste branding with ghost emoji
- Navigation links work correctly
- Theme toggle integrated and functional
- Mobile hamburger menu opens/closes smoothly
- Sticky header on scroll with proper z-index
- Keyboard navigation fully supported
- ARIA labels and accessibility features implemented
- Skip to main content link included
- Tested on multiple screen sizes
Technical Notes
- Use Next.js Link component for client-side navigation
- Implement with shadcn/ui NavigationMenu for desktop
- Use Sheet component for mobile drawer
- Support both light and dark themes
- Consider using CSS sticky positioning with fallback
- Test on actual mobile devices, not just browser DevTools
Metadata
Metadata
Assignees
Labels
featureNew feature implementationNew feature implementationpriority: highShould be done soonShould be done soonuiUser interface and componentsUser interface and components