Skip to content

An advanced, professional banner generator for PyPI packages that creates stunning, corporate-friendly banners with multiple themes and styles.

License

Notifications You must be signed in to change notification settings

mrbeandev/PYPI-Banner-Generator

Repository files navigation

PyPI Banner Generator - Ultimate Professional & Minimal

Python 3.7+ License: MIT GitHub issues

An advanced, professional banner generator for PyPI packages that creates stunning, corporate-friendly banners with multiple themes and styles.

๐ŸŒŸ Features

  • โœจ 12 Professional Themes: From minimal to gradient to glassmorphism
  • ๐ŸŽจ Multiple Generation Modes: Single, batch, category-based generation
  • ๐Ÿ“ฆ PyPI Integration: Automatically fetches package metadata
  • ๏ฟฝ๏ธ Auto Logo Integration: Seamlessly includes package logos
  • ๐ŸŽฏ Interactive Interface: User-friendly prompts and selections
  • ๏ฟฝ Batch Generation: Generate multiple themes at once
  • ๐Ÿ“ Perfect Dimensions: 1200x630px optimized for social media
  • ๏ฟฝ Zero Configuration: Works out of the box

๐Ÿš€ Quick Start

Interactive Mode (Recommended)

python banner_generator.py

The interactive mode will guide you through:

  1. Package Selection: Enter any PyPI package name
  2. Generation Mode: Choose single, multiple, all, or category
  3. Theme Selection: Pick from 12 professional themes
  4. Automatic Generation: Sit back and watch the magic happen

Available Themes

๐Ÿข Professional Category

  1. Professional Light - Clean white background, corporate style
  2. Professional Dark - Dark slate background, modern tech style

๐ŸŽฏ Minimal Category

  1. Minimal Clean - Ultra-clean design, maximum whitespace
  2. Minimal Dark - Dark minimal design, subtle elegance

๐ŸŒˆ Gradient Category

  1. Gradient Blue - Blue to purple gradient, vibrant
  2. Gradient Purple - Purple to pink gradient, creative
  3. Gradient Sunset - Orange to yellow gradient, warm
  4. Gradient Ocean - Blue to cyan gradient, cool

๐Ÿ”ฎ Modern Category

  1. Modern Glassmorphism - Glassmorphism effect with blur, trendy
  2. Neon Cyber - Neon cyberpunk style, electric
  3. Material Design - Google Material Design inspired
  4. Retro Synthwave - 80s synthwave aesthetic, nostalgic

๐ŸŽจ Theme Showcase

Here are examples of all 12 themes using the popular requests package:

๐Ÿข Professional Category

Professional Light Professional Dark
Professional Light Professional Dark
Clean corporate style with white background Modern tech style with dark background

๐ŸŽฏ Minimal Category

Minimal Clean Minimal Dark
Minimal Clean Minimal Dark
Ultra-clean with maximum whitespace Sophisticated dark minimal design

๐ŸŒˆ Gradient Category

Gradient Blue Gradient Purple
Gradient Blue Gradient Purple
Vibrant blue to purple gradient Creative purple to pink gradient
Gradient Sunset Gradient Ocean
Gradient Sunset Gradient Ocean
Warm orange to yellow gradient Cool blue to cyan gradient

๐Ÿ”ฎ Modern Category

Modern Glassmorphism Neon Cyber
Modern Glassmorphism Neon Cyber
Trendy glassmorphism with blur effect Electric cyberpunk neon style
Material Design Retro Synthwave
Material Design Retro Synthwave
Google Material Design inspired 80s synthwave aesthetic with nostalgic vibes

Note: All banners are generated at 1200x630px resolution, perfect for social media platforms, GitHub README files, and documentation.

๐Ÿ“‹ Installation

# Clone the repository
git clone https://github.com/yourusername/PYPI-Banner-Generator.git
cd PYPI-Banner-Generator

# Install dependencies
pip install -r requirements.txt

# Run the generator
python banner_generator.py

๐ŸŽจ Generation Modes

Single Theme Mode

Perfect for specific branding requirements. Choose one theme and generate a focused banner.

Multiple Themes Mode

Select several themes to compare different styles. Great for A/B testing or providing options.

All Themes Mode

Generate all 12 themes at once. Perfect for comprehensive brand asset creation.

Category Mode

Generate all themes from a specific category (Professional, Minimal, Gradient, or Modern).

๐Ÿ“ Technical Specifications

  • Dimensions: 1200x630px (perfect for social media)
  • Format: PNG with high quality
  • Color: RGB color space
  • Typography: DejaVu Sans font family
  • Logo: Auto-integration if pypi_logo.png exists

๐ŸŽฏ What's Generated

Each banner includes:

  • Package Name: Prominently displayed title
  • Version Badge: Current version from PyPI
  • Description: Wrapped text with proper formatting
  • Python Requirements: Minimum Python version badge
  • Install Command: Terminal-style installation guide
  • Project URL: Clean URL display
  • Logo Integration: Automatic logo placement (if available)

Requirements

pip install -r requirements.txt

Dependencies:

  • pillow>=9.0.0 - Image processing
  • requests>=2.25.0 - PyPI API calls

๐Ÿ“ Project Structure

PYPI-Banner-Generator/
โ”œโ”€โ”€ .github/                 # GitHub configuration
โ”‚   โ”œโ”€โ”€ workflows/ci.yml     # CI/CD pipeline
โ”‚   โ””โ”€โ”€ ISSUE_TEMPLATE/      # Issue templates
โ”œโ”€โ”€ examples/                # Theme showcase images
โ”‚   โ”œโ”€โ”€ professional_light.png
โ”‚   โ”œโ”€โ”€ professional_dark.png
โ”‚   โ”œโ”€โ”€ minimal_clean.png
โ”‚   โ”œโ”€โ”€ minimal_dark.png
โ”‚   โ”œโ”€โ”€ gradient_blue.png
โ”‚   โ”œโ”€โ”€ gradient_purple.png
โ”‚   โ”œโ”€โ”€ gradient_sunset.png
โ”‚   โ”œโ”€โ”€ gradient_ocean.png
โ”‚   โ”œโ”€โ”€ modern_glassmorphism.png
โ”‚   โ”œโ”€โ”€ neon_cyber.png
โ”‚   โ”œโ”€โ”€ material_design.png
โ”‚   โ””โ”€โ”€ retro_synthwave.png
โ”œโ”€โ”€ banner_generator.py      # Main application
โ”œโ”€โ”€ requirements.txt         # Python dependencies
โ”œโ”€โ”€ setup.py                # Package configuration
โ”œโ”€โ”€ LICENSE                 # MIT license
โ”œโ”€โ”€ README.md               # This file
โ”œโ”€โ”€ CONTRIBUTING.md         # Contribution guidelines
โ”œโ”€โ”€ .gitignore              # Git ignore rules
โ”œโ”€โ”€ DejaVuSans-Bold.ttf     # Bold font
โ”œโ”€โ”€ DejaVuSans.ttf          # Regular font
โ”œโ”€โ”€ pypi_logo.png           # Default logo
โ””โ”€โ”€ output/                 # Generated banners directory

๐Ÿš€ Usage Examples

Example 1: Quick Single Banner

python banner_generator.py
# Enter: requests
# Choose: A (Single Theme)
# Select: 1 (Professional Light)

Example 2: Multiple Themes

python banner_generator.py
# Enter: numpy
# Choose: B (Multiple Themes)
# Select: 1,2,5,9

Example 3: All Gradients

python banner_generator.py
# Enter: django
# Choose: D (Category)
# Select: 3 (Gradient)

๐ŸŽจ Customization

Adding Custom Themes

Edit the ALL_THEMES dictionary in banner_generator.py:

'13': {
    'name': 'my_custom_theme',
    'description': 'My awesome custom theme',
    'type': 'custom',
    'bg': '#ffffff',
    'primary': '#000000',
    'secondary': '#666666',
    'accent': '#ff6b35',
    'card': '#f8f9fa',
    'border': '#dee2e6'
}

Custom Logo

Replace pypi_logo.png with your own logo. The generator will automatically detect and use it.

Custom Fonts

Replace the font files (DejaVuSans-Bold.ttf, DejaVuSans.ttf) with your preferred fonts.

Output

Generated banners are saved in the output/ directory with timestamps and include:

  • Main banner: 1200x630px (perfect for GitHub, social media)
  • High quality PNG: Optimized file size

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes
  4. Add tests if applicable
  5. Commit your changes: git commit -m 'Add feature'
  6. Push to the branch: git push origin feature-name
  7. Submit a pull request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Font: DejaVu Sans font family
  • Inspiration: Modern design trends and PyPI community
  • Built with: Python, Pillow (PIL), and lots of โ˜•

๐Ÿ“ž Support


โญ Star this repo if you find it useful! โญ

Made with โค๏ธ for the Python community

About

An advanced, professional banner generator for PyPI packages that creates stunning, corporate-friendly banners with multiple themes and styles.

Resources

License

Contributing

Stars

Watchers

Forks

Languages