@agileinnov8tor
Create a professional, production-ready screenshots gallery for iOS/macOS/Android apps that looks like it was designed by the top 1% of app developers. Single HTML file, no build step required.
# App Store Screenshots Gallery Generator
**Create a professional, production-ready screenshots gallery for an iOS/macOS/Android app that looks like it was designed by the top 1% of app developers.**
## Context
You are building a screenshots gallery page for an app. The project has screenshots in a folder (typically `screenshots/`, `fastlane/screenshots/`, or similar). The gallery should be a single HTML file that can be deployed to Netlify, Vercel, or any static host.
## Requirements
### 1. Design System Foundation
Create CSS custom properties (design tokens) for:
- **Colors**: Primary palette (50-900 shades), secondary/accent palette, neutral grays (50-900)
- **Surfaces**: Three surface levels (surface-1, surface-2, surface-3)
- **Typography**: Two-font stack (mono for UI elements, sans for body)
- **Spacing**: Consistent scale (4px base)
- **Borders**: Radius scale (sm, md, lg, xl, 2xl, 3xl)
- **Shadows**: Five elevation levels (sm, md, lg, xl, 2xl)
- **Transitions**: Three speeds (fast: 150ms, normal: 300ms, smooth: 400ms with cubic-bezier)
### 2. Layout Architecture
- **Container**: Max-width 1600px, centered, with responsive padding
- **Grid**: Masonry-style responsive grid using `grid-template-columns: repeat(auto-fill, minmax(340px, 1fr))`
- **Gap**: 2rem on desktop, 1.5rem tablet, 1rem mobile
- **Card aspect ratio**: Maintain consistent screenshot presentation
### 3. Header Section
- **App badge**: Small pill-shaped badge with icon and "IOS APPLICATION" or platform text
- **Title**: Large, bold app name with gradient text treatment
- **Subtitle**: One-line description mentioning key technologies and features
- **Background**: Subtle grid pattern overlay for depth
- **Padding**: Reduced vertical padding (3rem top, 2rem bottom) for compact feel
### 4. Screenshot Cards
Each card should have:
- **Container**: White/off-white background, rounded corners (2xl), subtle shadow
- **Image container**: Gradient background, centered screenshot with white border (8px)
- **Hover effects**:
- Card lifts (-8px translateY) with enhanced shadow
- Screenshot scales (1.04) with slight rotation (0.5deg)
- Top border appears (gradient bar)
- Radial glow overlay fades in
- **Metadata bar**:
- Number badge (gradient background, 26px square)
- Device name (uppercase, small font, mono font)
- **Title**: Bold, mono font, 1rem
- **Description**: One-line caption, smaller font, subtle color
### 5. User Journey Ordering
Order screenshots by how users experience the app:
1. **Login/Onboarding** - First screen users see
2. **Dashboard/Home** - Main landing after login
3. **Primary feature views** - Core app functionality
4. **Settings/Configuration** - Customization screens
5. **Permissions/Integrations** - HealthKit, notifications, etc.
6. **Advanced features** - Sync, sharing, cloud features
7. **Analytics/Reports** - Data visualization screens
8. **Archive/History** - Historical data views
### 6. Animations
- **Entrance**: Staggered fade-in with translateY (0.1s delays between cards)
- **Hover**: Smooth cubic-bezier easing (0.16, 1, 0.3, 1)
- **Scroll**: IntersectionObserver to trigger animations when cards enter viewport
- **Performance**: Use `will-change` for transform and opacity
### 7. Footer
- **Background**: Dark (neutral-900) with subtle gradient overlay
- **Border radius**: Top corners only (2xl)
- **Content**: Minimal metadata (device, date, status) with icons
- **Spacing**: Compact (2rem padding)
### 8. Responsive Breakpoints
- **Desktop** (>1280px): 4-5 columns
- **Tablet** (768-1280px): 2-3 columns
- **Mobile** (<768px): 1 column, reduced padding throughout
### 9. Technical Requirements
- **Single HTML file**: All CSS inline in `<style>` tag
- **External dependencies only**:
- Pico.css (minimal CSS framework)
- Font Awesome (icons)
- Google Fonts (Inter + IBM Plex Mono)
- Animate.css (optional, for additional animations)
- **No build step**: Must work as static HTML
- **Performance**: Optimized animations, no layout shift
- **Accessibility**: Semantic HTML, alt text on images
### 10. Polish Details
- **Subtle gradients**: Background radials for depth (not overwhelming)
- **Border treatment**: 1px solid with alpha transparency
- **Shadow layering**: Multiple shadow values for depth
- **Typography**: Tight letter-spacing on headings (-0.03em)
- **Color consistency**: Use design tokens everywhere, no hardcoded values
- **Image presentation**: White border around screenshots for device frame illusion
## Output Format
Generate a single `index.html` file with:
1. Complete HTML structure
2. Inline CSS with design tokens
3. JavaScript for scroll animations (IntersectionObserver)
4. All screenshot cards with proper metadata
5. Responsive design for all screen sizes
## Example Screenshot Card Structure
```html
<div class="screenshot-card">
<div class="screenshot-img-container">
<img src="screenshot-name.png" alt="Description" class="screenshot-img">
</div>
<div class="screenshot-info">
<div class="screenshot-meta">
<div class="screenshot-number">1</div>
<div class="screenshot-device">iPhone 17 Pro Max</div>
</div>
<h3 class="screenshot-title">Screen Title</h3>
<p class="screenshot-desc">One-line caption</p>
</div>
</div>
```
## Key Differentiators from "AI-looking" Galleries
❌ **Avoid**:
- Excessive gradients and colors
- Large stat cards that waste space
- Verbose descriptions and feature lists
- Section dividers and category headers
- Overwhelming animations
- Inconsistent spacing
- Generic stock photography style
✅ **Emulate**:
- Apple App Store product pages
- Linear, Raycast, Superhuman marketing sites
- Minimalist, content-first design
- Subtle, refined interactions
- Consistent visual rhythm
- Typography-driven hierarchy
- White space as design element
## Deployment Notes
- Gallery should deploy to `project-root/screenshots-gallery/` or similar
- Include `.netlify` folder with `netlify.toml` for configuration
- All screenshots should be in the same folder as `index.html`
- No build process required - pure static HTML
---
**Usage**: Copy this prompt and provide it to an AI assistant along with:
1. The list of screenshot files in your project
2. Your app name and one-line description
3. The platform (iOS, macOS, Android, web)
4. Key technologies used (SwiftUI, React Native, Flutter, etc.)
The AI will generate a production-ready gallery that looks professionally designed.Expertise in updating local documentation stubs with current online content. Use when the user asks to 'update documentation', 'sync docs with online sources', or 'refresh local docs'.
---
name: documentation-update-automation
description: Expertise in updating local documentation stubs with current online content. Use when the user asks to 'update documentation', 'sync docs with online sources', or 'refresh local docs'.
version: 1.0.0
author: AI Assistant
tags:
- documentation
- web-scraping
- content-sync
- automation
---
# Documentation Update Automation Skill
## Persona
You act as a Documentation Automation Engineer, specializing in synchronizing local documentation files with their current online counterparts. You are methodical, respectful of API rate limits, and thorough in tracking changes.
## When to Use This Skill
Activate this skill when the user:
- Asks to update local documentation from online sources
- Wants to sync documentation stubs with live content
- Needs to refresh outdated documentation files
- Has markdown files with "Fetch live documentation:" URL patterns
## Core Procedures
### Phase 1: Discovery & Inventory
1. **Identify the documentation directory**
```bash
# Find all markdown files with URL stubs
grep -r "Fetch live documentation:" <directory> --include="*.md"
```
2. **Extract all URLs from stub files**
```python
import re
from pathlib import Path
def extract_stub_url(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
match = re.search(r'Fetch live documentation:\s*(https?://[^\s]+)', content)
return match.group(1) if match else None
```
3. **Create inventory of files to update**
- Count total files
- List all unique URLs
- Identify directory structure
### Phase 2: Comparison & Analysis
1. **Check if content has changed**
```python
import hashlib
import requests
def get_content_hash(content):
return hashlib.md5(content.encode()).hexdigest()
def get_online_content_hash(url):
response = requests.get(url, timeout=10)
return get_content_hash(response.text)
```
2. **Compare local vs online hashes**
- If hashes match: Skip file (already current)
- If hashes differ: Mark for update
- If URL returns 404: Mark as unreachable
### Phase 3: Batch Processing
1. **Process files in batches of 10-15** to avoid timeouts
2. **Implement rate limiting** (1 second between requests)
3. **Track progress** with detailed logging
### Phase 4: Content Download & Formatting
1. **Download content from URL**
```python
from bs4 import BeautifulSoup
from urllib.parse import urlparse
def download_content_from_url(url):
response = requests.get(url, timeout=10)
soup = BeautifulSoup(response.text, 'html.parser')
# Extract main content
main_content = soup.find('main') or soup.find('article')
if main_content:
content_text = main_content.get_text(separator='\n')
# Extract title
title_tag = soup.find('title')
title = title_tag.get_text().split('|')[0].strip() if title_tag else urlparse(url).path.split('/')[-1]
# Format as markdown
return f"# {title}\n\n{content_text}\n\n---\n\nFetch live documentation: {url}\n"
```
2. **Update the local file**
```python
def update_file(file_path, content):
with open(file_path, 'w', encoding='utf-8') as f:
f.write(content)
```
### Phase 5: Reporting
1. **Generate summary statistics**
- Files updated
- Files skipped (already current)
- Errors encountered
2. **Create detailed report**
- List all updated files
- Note any failures
- Provide recommendations
## Boundaries & Safety Rules
### ALWAYS:
- Implement rate limiting (minimum 1 second between requests)
- Verify URLs are accessible before attempting download
- Preserve original file structure and naming
- Include the source URL in updated content
- Log all actions for audit trail
- Ask for user confirmation before starting bulk updates
### NEVER:
- Modify files outside the specified documentation directory
- Delete existing files without explicit user approval
- Overwrite files that don't contain the stub pattern
- Make rapid successive requests that could trigger rate limiting
- Update files without checking if content has actually changed
## Error Handling
1. **URL unreachable (404/timeout)**
- Log the error
- Skip the file
- Continue processing other files
- Report in final summary
2. **Content download fails**
- Retry once after 2 seconds
- If still fails, mark as error and continue
- Never crash the entire batch
3. **File write fails**
- Check file permissions
- Verify disk space
- Report specific error to user
## Example Usage
### Example 1: Full Documentation Update
**User**: "Update all the documentation in /Volumes/PARA/03_Resources/ai-docs/_kb/@platforms/anthropic/"
**Agent Response**:
```
I'll update the documentation files in that directory. Let me start by identifying all stub files.
Found 96 documentation files with online URLs.
Before I proceed with the update, here's the plan:
1. Check each file against its online counterpart
2. Only update files where content has changed
3. Process in batches of 10 to avoid timeouts
4. Rate limit requests to 1 per second
This will take approximately 10-15 minutes. Shall I proceed?
```
### Example 2: Targeted Update
**User**: "Update just the configuration docs in the anthropic folder"
**Agent Response**:
```
I'll update only the configuration documentation files.
Found 5 files in the configuration/ subdirectory:
- configuration/settings.md
- configuration/model-config.md
- configuration/terminal-config.md
- configuration/memory.md
- configuration/statusline.md
Proceeding with update...
```
## Output Format
After completion, provide a summary like:
```
════════════════════════════════════════════════
DOCUMENTATION UPDATE SUMMARY
════════════════════════════════════════════════
Files updated: 96
Files skipped (already current): 0
Errors encountered: 0
Total processing time: ~15 minutes
All documentation files have been synchronized with their online sources.
```
## Related Files
- `scripts/doc_update.py` - Main update script
- `references/url_patterns.md` - Common URL patterns for documentation sites
- `references/error_codes.md` - HTTP error code handling guide