# Themes
gh-action-readme includes 5 built-in themes, each optimized for different use cases and visual preferences.
## 🎨 Available Themes
### GitHub Theme
**Best for:** GitHub Marketplace actions, open source projects
```bash
gh-action-readme gen --theme github
```
**Features:**
- GitHub-style badges and shields
- Collapsible sections for better organization
- Table-based parameter documentation
- Action marketplace optimization
- GitHub-specific styling and layout
**Example output:**
- ✅ Professional badges
- 📊 Clean input/output tables
- 🔧 Copy-paste usage examples
- 📁 Collapsible troubleshooting sections
### GitLab Theme
**Best for:** GitLab CI/CD integration, GitLab-hosted projects
```bash
gh-action-readme gen --theme gitlab
```
**Features:**
- GitLab CI/CD pipeline examples
- GitLab-specific badge integration
- Pipeline configuration snippets
- GitLab Pages optimization
### Minimal Theme
**Best for:** Simple actions, lightweight documentation
```bash
gh-action-readme gen --theme minimal
```
**Features:**
- Clean, distraction-free layout
- Essential information only
- Faster loading and parsing
- Mobile-friendly design
- Minimal dependencies
### Professional Theme
**Best for:** Enterprise actions, comprehensive documentation
```bash
gh-action-readme gen --theme professional
```
**Features:**
- Comprehensive table of contents
- Detailed troubleshooting sections
- Advanced usage examples
- Security and compliance notes
- Enterprise-ready formatting
### Default Theme
**Best for:** Basic needs, backward compatibility
```bash
gh-action-readme gen --theme default
```
**Features:**
- Original simple template
- Basic parameter documentation
- Minimal formatting
- Guaranteed compatibility
## 🎯 Theme Comparison
| Feature | GitHub | GitLab | Minimal | Professional | Default |
| --------- | -------- | -------- | --------- | ------------- | --------- |
| **Badges** | ✅ Rich | ✅ GitLab | ❌ None | ✅ Comprehensive | ❌ None |
| **TOC** | ✅ Yes | ✅ Yes | ❌ No | ✅ Advanced | ❌ No |
| **Examples** | ✅ GitHub | ✅ CI/CD | ✅ Basic | ✅ Comprehensive | ✅ Basic |
| **Troubleshooting** | ✅ Collapsible | ✅ Pipeline | ❌ Minimal | ✅ Detailed | ❌ None |
| **File Size** | Medium | Medium | Small | Large | Small |
| **Load Time** | Fast | Fast | Fastest | Slower | Fast |
## 🛠️ Theme Examples
### Input Action
```yaml
name: Deploy to AWS
description: Deploy application to AWS using GitHub Actions
inputs:
aws-region:
description: AWS region to deploy to
required: true
default: us-east-1
environment:
description: Deployment environment
required: false
default: production
outputs:
deployment-url:
description: URL of the deployed application
runs:
using: composite
steps:
- run: echo "Deploying to AWS..."
```
### GitHub Theme Output
```markdown
# Deploy to AWS
[](https://github.com/marketplace)
> Deploy application to AWS using GitHub Actions
## 🚀 Usage
```yaml
- uses: your-org/deploy-aws@v1
with:
aws-region: us-west-2
environment: staging
```
📋 Inputs
| Input | Description | Required | Default |
| ------------- | ------------------------ | -------- | ------------- |
| `aws-region` | AWS region to deploy to | Yes | `us-east-1` |
| `environment` | Deployment environment | No | `production` |
```
### Minimal Theme Output
```markdown
# Deploy to AWS
Deploy application to AWS using GitHub Actions
## Usage
```yaml
- uses: your-org/deploy-aws@v1
with:
aws-region: us-west-2
```
## Inputs
- `aws-region` (required): AWS region to deploy to
- `environment` (optional): Deployment environment (default: production)
## Outputs
- `deployment-url`: URL of the deployed application
```text
## 🎨 Custom Themes
### Creating Custom Themes
1. **Copy existing theme:**
```bash
cp -r templates/themes/github templates/themes/my-theme
```
1. **Edit template files:**
```bash
# Main template
vim templates/themes/my-theme/readme.tmpl
# Optional partials
vim templates/themes/my-theme/partials/header.tmpl
```
1. **Use custom theme:**
```bash
gh-action-readme gen --theme my-theme
```
### Theme Structure
```text
templates/themes/my-theme/
├── readme.tmpl # Main template (required)
├── partials/ # Partial templates (optional)
│ ├── header.tmpl # Header section
│ ├── inputs.tmpl # Inputs table
│ ├── outputs.tmpl # Outputs table
│ ├── examples.tmpl # Usage examples
│ └── footer.tmpl # Footer section
└── assets/ # Theme assets (optional)
├── styles.css # Custom CSS
└── images/ # Theme images
```
### Template Variables
Available variables in templates:
```go
type ActionData struct {
Name string // Action name
Description string // Action description
Inputs map[string]ActionInput // Input parameters
Outputs map[string]ActionOutput // Output parameters
Runs map[string]interface{} // Runs configuration
Branding *Branding // Branding info
// Enhanced data
Repository *Repository // GitHub repo info
Dependencies []Dependency // Analyzed dependencies
Examples []Example // Usage examples
}
```
### Template Functions
Built-in template functions:
```go
// String functions
{{ .Name | title }} // Title case
{{ .Description | truncate 100 }} // Truncate to 100 chars
{{ .Name | slug }} // URL-friendly slug
// Formatting functions
{{ .Inputs | toTable }} // Generate input table
{{ .Dependencies | toList }} // Generate dependency list
{{ .Examples | toYAML }} // Format as YAML
// Conditional functions
{{ if hasInputs }}...{{ end }} // Check if inputs exist
{{ if .Branding }}...{{ end }} // Check if branding exists
```
### Advanced Template Example
```go-template
{{/* Custom theme header */}}
# {{ .Name }}
{{ if .Branding }}
{{ end }}
> {{ .Description }}
## 🚀 Quick Start
```yaml
- uses: {{ .Repository.FullName }}@{{ .Repository.DefaultBranch }}
with:
{{- range $key, $input := .Inputs }}
{{- if $input.Required }}
{{ $key }}: # {{ $input.Description }}
{{- end }}
{{- end }}
```
{{ if .Inputs }}
## 📋 Configuration
{{ template "inputs-table" . }}
{{ end }}
{{ if .Dependencies }}
## 🔗 Dependencies
This action uses the following dependencies:
{{ range .Dependencies }}
- [{{ .Name }}]({{ .SourceURL }}) - {{ .Description }}
{{ end }}
{{ end }}
{{/*Include footer partial if it exists*/}}
{{ template "footer" . }}
```go-template
## 🔧 Theme Configuration
### Set Default Theme
```bash
# Set globally
gh-action-readme config set theme professional
# Use environment variable
export GH_ACTION_README_THEME=github
```
### Theme-Specific Settings
```yaml
# ~/.config/gh-action-readme/config.yaml
theme: github
theme_settings:
github:
show_badges: true
collapse_sections: true
show_toc: true
minimal:
show_examples: true
compact_tables: true
professional:
detailed_examples: true
show_troubleshooting: true
```
### Dynamic Theme Selection
```bash
# Select theme based on repository type
if [[ -f ".gitlab-ci.yml" ]]; then
gh-action-readme gen --theme gitlab
elif [[ -f "package.json" ]]; then
gh-action-readme gen --theme github
else
gh-action-readme gen --theme minimal
fi
```
## 📱 Responsive Design
All themes support responsive design:
- **Desktop**: Full-width tables and detailed sections
- **Tablet**: Condensed tables with horizontal scrolling
- **Mobile**: Stacked layouts and collapsible sections
## 🎨 Theme Customization Tips
### Colors and Styling
```css
/* Custom CSS for HTML output */
.action-header { color: #0366d6; }
.input-table { border-collapse: collapse; }
.example-code { background: #f6f8fa; }
```
### Badge Customization
```go-template
{{/* Custom badges */}}



```
### Conditional Content
```go-template
{{/* Show different content based on action type */}}
{{ if eq .Runs.Using "composite" }}
## Composite Action Steps
{{ range .Runs.Steps }}
- {{ .Name }}: {{ .Run }}
{{ end }}
{{ else if eq .Runs.Using "docker" }}
## Docker Configuration
- Image: `{{ .Runs.Image }}`
- Args: `{{ join .Runs.Args " " }}`
{{ end }}
```