[Feature]: Animated GIFs Gallery Feature with Custom GIF Support & Size Controls #950
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔄 Pull Request
📋 Type of Change (check all applicable)
📖 Description
This PR adds a comprehensive Animated GIFs Gallery feature to the GitHub Profile README Generator, allowing users to add personality and visual appeal to their GitHub profiles with carefully curated animated GIFs.
What changed?
<Image />component in GIF sectionsATTRIBUTION.mdWhy was this change made?
GitHub profiles with animated GIFs are more engaging, expressive, and memorable. However, finding high-quality, appropriate GIFs and integrating them into a README can be time-consuming. This feature:
How does this change help users?
For Non-Technical Users:
For Power Users:
For Everyone:
🔗 Related Issues
🧪 Testing & Quality Assurance
Testing Done (check all applicable)
Test Instructions
Enable GIFs Feature
Test Built-in Gallery
Test Custom URL Input
Test Individual GIF Controls
Test Custom Size Feature
Test Preview & Download
Test Persistence
Expected Behavior
📸 Screenshots/Recordings
Before
No GIF feature existed. Users had to manually add GIFs by:
After
Demo site: https://github-profile-readme-generator-pi.vercel.app/
DEMO:
Screen.Recording.2025-10-31.023519.1.1.mp4
Screen.Recording.2025-10-31.023648.mp4
1. GIF Gallery with Category Filtering

2. Selected GIFs with Individual Controls
3. Custom Size Inputs
4. Custom GIF URL Input
5. README Preview
6. Mobile Responsive Layout
7. Dark Theme
📋 Checklist
Code Quality
npm run type-check)npm run lint- 0 errors, 30 pre-existing warnings)npm run build)Accessibility
aria-label,aria-pressed,role="toolbar")Mobile & Responsive
Browser Compatibility
Documentation
Security & Privacy
🚀 Deployment Notes
📝 Additional Notes
Technical Implementation Highlights
New Files Created (4 files):
src/components/sections/gifs-section.tsx- Standalone GIF gallery component (408 lines)src/constants/gifs.ts- GIF data, categories, size mappings (240 lines)src/types/gifs.ts- TypeScript interfaces for GIF types (32 lines)ATTRIBUTION.md- MIT license attribution for Cool-GIFs-For-GitHub (37 lines)Modified Files (11 files):
src/app/globals.css- Added theme-aware scrollbar stylessrc/app/page.tsx- Integrated GIF feature into wizard flowsrc/components/sections/skills-section.tsx- Added GIF section to Skills stepsrc/components/ui/markdown-preview.tsx- Enhanced preview for GIF renderingsrc/constants/defaults.ts- Added DEFAULT_GIF constantsrc/lib/markdown-generator.ts- Generate GIF markdown with positioning logicsrc/lib/storage.ts- Serialize GIF data for localStoragesrc/lib/validations.ts- Zod schema for GIF validationsrc/types/profile.ts- Re-exported GIF types for conveniencepackage.json- Dependencies (note: jszip can be removed in cleanup)package-lock.json- Lock file updatesKey Features:
Bug Fixes:
gif.customWidth ?? '') allows empty stateAttribution:
Future Enhancements (out of scope for this PR):
Testing Commands Used
👀 Reviewers
🎃 Hacktoberfest 2025
If you're satisfied with this contribution, please consider:
hacktoberfest-acceptedlabel to this PRThank you for reviewing! 🙏
By submitting this PR, I confirm that: