appshot-cli 0.9.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +208 -98
- package/dist/cli.js +6 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +9 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/frame.d.ts.map +1 -1
- package/dist/commands/frame.js +11 -2
- package/dist/commands/frame.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +19 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/skill.d.ts +3 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +119 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/core/compose.d.ts +1 -0
- package/dist/core/compose.d.ts.map +1 -1
- package/dist/core/compose.js +85 -140
- package/dist/core/compose.js.map +1 -1
- package/dist/core/layout-utils.d.ts +12 -0
- package/dist/core/layout-utils.d.ts.map +1 -0
- package/dist/core/layout-utils.js +28 -0
- package/dist/core/layout-utils.js.map +1 -0
- package/dist/core/text-utils.d.ts +1 -1
- package/dist/core/text-utils.d.ts.map +1 -1
- package/dist/core/text-utils.js +5 -9
- package/dist/core/text-utils.js.map +1 -1
- package/dist/mcp/cli-options.d.ts +112 -0
- package/dist/mcp/cli-options.d.ts.map +1 -0
- package/dist/mcp/cli-options.js +158 -0
- package/dist/mcp/cli-options.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +1149 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +2 -1
- package/dist/services/doctor.js.map +1 -1
- package/dist/templates/registry.d.ts.map +1 -1
- package/dist/templates/registry.js +49 -159
- package/dist/templates/registry.js.map +1 -1
- package/dist/utils/filename-caption.d.ts +9 -0
- package/dist/utils/filename-caption.d.ts.map +1 -0
- package/dist/utils/filename-caption.js +19 -0
- package/dist/utils/filename-caption.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +7 -4
- package/skill/SKILL.md +225 -0
- package/skill/references/fonts.md +55 -0
- package/skill/references/gradients.md +69 -0
- package/skill/references/templates.md +170 -0
- package/skill/references/troubleshooting.md +228 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filename-caption.d.ts","sourceRoot":"","sources":["../../src/utils/filename-caption.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS1D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
/**
|
|
3
|
+
* Convert a filename to a human-readable caption.
|
|
4
|
+
* Examples:
|
|
5
|
+
* "hello-world.png" → "Hello World"
|
|
6
|
+
* "my_screenshot.png" → "My Screenshot"
|
|
7
|
+
* "app-home_screen.PNG" → "App Home Screen"
|
|
8
|
+
*/
|
|
9
|
+
export function filenameToCaption(filename) {
|
|
10
|
+
const name = path.basename(filename, path.extname(filename));
|
|
11
|
+
return name
|
|
12
|
+
.replace(/[-_]/g, ' ')
|
|
13
|
+
.replace(/\s+/g, ' ')
|
|
14
|
+
.trim()
|
|
15
|
+
.split(' ')
|
|
16
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
17
|
+
.join(' ');
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=filename-caption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filename-caption.js","sourceRoot":"","sources":["../../src/utils/filename-caption.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI;SACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAyB,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appshot-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Generate App Store–ready screenshots with frames, gradients, and captions",
|
|
5
5
|
"bin": {
|
|
6
6
|
"appshot": "bin/appshot.js"
|
|
@@ -23,13 +23,15 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@inquirer/prompts": "^7.8.3",
|
|
26
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
26
27
|
"commander": "^12.0.0",
|
|
27
28
|
"fuzzy": "^0.1.3",
|
|
28
29
|
"inquirer": "^12.0.0",
|
|
29
30
|
"inquirer-autocomplete-standalone": "^0.8.1",
|
|
30
|
-
"openai": "^
|
|
31
|
+
"openai": "^6.16.0",
|
|
31
32
|
"picocolors": "^1.0.0",
|
|
32
|
-
"sharp": "^0.33.5"
|
|
33
|
+
"sharp": "^0.33.5",
|
|
34
|
+
"zod": "^4.3.5"
|
|
33
35
|
},
|
|
34
36
|
"devDependencies": {
|
|
35
37
|
"@types/node": "^24.3.0",
|
|
@@ -47,7 +49,8 @@
|
|
|
47
49
|
"dist",
|
|
48
50
|
"bin",
|
|
49
51
|
"frames",
|
|
50
|
-
"fonts"
|
|
52
|
+
"fonts",
|
|
53
|
+
"skill"
|
|
51
54
|
],
|
|
52
55
|
"license": "MIT",
|
|
53
56
|
"homepage": "https://github.com/chrisvanbuskirk/appshot",
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: appshot
|
|
3
|
+
description: Create and manage App Store screenshot projects using appshot MCP tools. This skill should be used when users want to generate professional App Store screenshots with device frames, gradients, and captions. Triggers include requests to create screenshot projects, add captions, apply styling, or build final screenshots.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AppShot Screenshot Generator
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
AppShot generates App Store-ready screenshots with device frames, gradient backgrounds, and captions. This skill orchestrates the appshot MCP tools to create complete screenshot projects.
|
|
11
|
+
|
|
12
|
+
## Available MCP Tools
|
|
13
|
+
|
|
14
|
+
| Tool | Purpose |
|
|
15
|
+
|------|---------|
|
|
16
|
+
| `appshot.init` | Initialize new project structure |
|
|
17
|
+
| `appshot.captions` | Read/write/auto-generate caption text |
|
|
18
|
+
| `appshot.gradients` | List/apply gradient presets |
|
|
19
|
+
| `appshot.backgrounds` | Configure background images |
|
|
20
|
+
| `appshot.fonts` | List/validate available fonts |
|
|
21
|
+
| `appshot.config` | Modify device-specific settings |
|
|
22
|
+
| `appshot.build` | Generate final screenshots |
|
|
23
|
+
| `appshot.validate` | Check App Store compliance |
|
|
24
|
+
| `appshot.specs` | View App Store specifications |
|
|
25
|
+
| `appshot.doctor` | System diagnostics |
|
|
26
|
+
| `appshot.presets` | App Store preset configurations |
|
|
27
|
+
| `appshot.localize` | AI-powered caption translation |
|
|
28
|
+
| `appshot.languages` | Discover available translations |
|
|
29
|
+
| `appshot.frame` | Apply device frames only |
|
|
30
|
+
| `appshot.export` | Export for Fastlane |
|
|
31
|
+
| `appshot.clean` | Remove generated files |
|
|
32
|
+
|
|
33
|
+
## Project Workflow
|
|
34
|
+
|
|
35
|
+
### 1. Initialize Project
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
appshot.init with force: true
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Creates the project structure:
|
|
42
|
+
```
|
|
43
|
+
.appshot/
|
|
44
|
+
├── config.json # Main configuration
|
|
45
|
+
└── captions/
|
|
46
|
+
├── iphone.json # Caption files per device
|
|
47
|
+
├── ipad.json
|
|
48
|
+
├── mac.json
|
|
49
|
+
└── watch.json
|
|
50
|
+
screenshots/
|
|
51
|
+
├── iphone/ # Place screenshots here
|
|
52
|
+
├── ipad/
|
|
53
|
+
├── mac/
|
|
54
|
+
└── watch/
|
|
55
|
+
final/ # Generated output
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 2. Add Captions
|
|
59
|
+
|
|
60
|
+
List existing captions:
|
|
61
|
+
```
|
|
62
|
+
appshot.captions with device: "iphone", action: "list"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Set a caption:
|
|
66
|
+
```
|
|
67
|
+
appshot.captions with device: "iphone", action: "set", filename: "home.png", caption: "Welcome Home", language: "en"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Auto-generate captions from filenames:
|
|
71
|
+
```
|
|
72
|
+
appshot.captions with device: "iphone", action: "auto"
|
|
73
|
+
```
|
|
74
|
+
This converts filenames like `home-screen.png` → "Home Screen"
|
|
75
|
+
|
|
76
|
+
Bulk set multiple captions:
|
|
77
|
+
```
|
|
78
|
+
appshot.captions with device: "iphone", action: "bulk-set", captions: "{\"home.png\": \"Welcome\", \"settings.png\": \"Settings\"}"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Add translations:
|
|
82
|
+
```
|
|
83
|
+
appshot.captions with device: "iphone", action: "set", filename: "home.png", caption: "Bienvenido", language: "es"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 3. Apply Styling
|
|
87
|
+
|
|
88
|
+
List gradient presets:
|
|
89
|
+
```
|
|
90
|
+
appshot.gradients with action: "list"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Apply a gradient:
|
|
94
|
+
```
|
|
95
|
+
appshot.gradients with action: "apply", preset: "ocean"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Set background image:
|
|
99
|
+
```
|
|
100
|
+
appshot.backgrounds with action: "set", image: "./bg.jpg", fit: "cover"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Configure device settings:
|
|
104
|
+
```
|
|
105
|
+
appshot.config with device: "iphone", frameScale: 0.85, captionPosition: "above"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 4. Build Screenshots
|
|
109
|
+
|
|
110
|
+
Build all devices and languages:
|
|
111
|
+
```
|
|
112
|
+
appshot.build
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Build specific devices:
|
|
116
|
+
```
|
|
117
|
+
appshot.build with devices: ["iphone", "ipad"]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Build with App Store presets:
|
|
121
|
+
```
|
|
122
|
+
appshot.build with presets: ["iphone-6-9", "ipad-13"]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 5. Frame Only (No Background)
|
|
126
|
+
|
|
127
|
+
Apply device frames without gradients or captions:
|
|
128
|
+
```
|
|
129
|
+
appshot.frame with input: "./screenshots/iphone"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Frame with output directory:
|
|
133
|
+
```
|
|
134
|
+
appshot.frame with input: "./screenshots/iphone", outputDir: "./framed"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Frame recursively:
|
|
138
|
+
```
|
|
139
|
+
appshot.frame with input: "./screenshots", recursive: true
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Preview what would be framed:
|
|
143
|
+
```
|
|
144
|
+
appshot.frame with input: "./screenshots/iphone", dryRun: true
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 6. Validate
|
|
148
|
+
|
|
149
|
+
Check App Store compliance:
|
|
150
|
+
```
|
|
151
|
+
appshot.validate
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Common Scenarios
|
|
155
|
+
|
|
156
|
+
### New iPhone-Only Project
|
|
157
|
+
|
|
158
|
+
1. `appshot.init` with `force: true`
|
|
159
|
+
2. User adds screenshots to `screenshots/iphone/`
|
|
160
|
+
3. `appshot.captions` - set captions for each screenshot
|
|
161
|
+
4. `appshot.gradients` - apply preferred gradient
|
|
162
|
+
5. `appshot.build` with `devices: ["iphone"]`
|
|
163
|
+
|
|
164
|
+
### Multi-Language App Store Submission
|
|
165
|
+
|
|
166
|
+
1. `appshot.init` with `force: true`
|
|
167
|
+
2. `appshot.captions` - add English captions
|
|
168
|
+
3. `appshot.localize` with `languages: ["es", "fr", "de", "ja"]`
|
|
169
|
+
4. `appshot.build` with `languages: ["en", "es", "fr", "de", "ja"]`
|
|
170
|
+
5. `appshot.validate`
|
|
171
|
+
|
|
172
|
+
### Quick Styling Update
|
|
173
|
+
|
|
174
|
+
1. `appshot.gradients` with `action: "list"` to see options
|
|
175
|
+
2. `appshot.gradients` with `action: "apply", preset: "sunset"`
|
|
176
|
+
3. `appshot.build`
|
|
177
|
+
|
|
178
|
+
### Quick Auto-Caption Project
|
|
179
|
+
|
|
180
|
+
When filenames are descriptive (e.g., `home-screen.png`, `settings_page.png`):
|
|
181
|
+
|
|
182
|
+
1. `appshot.init` with `force: true`
|
|
183
|
+
2. User adds screenshots to `screenshots/iphone/`
|
|
184
|
+
3. `appshot.captions` with `device: "iphone", action: "auto"`
|
|
185
|
+
4. `appshot.gradients` with `action: "apply", preset: "ocean"`
|
|
186
|
+
5. `appshot.build` with `devices: ["iphone"]`
|
|
187
|
+
|
|
188
|
+
Captions are auto-generated from filenames (hyphens/underscores become spaces, title case applied).
|
|
189
|
+
|
|
190
|
+
### Frame Only (Design Mockups)
|
|
191
|
+
|
|
192
|
+
For quick device mockups without backgrounds or captions:
|
|
193
|
+
|
|
194
|
+
1. `appshot.frame` with `input: "./screenshots/iphone", outputDir: "./framed"`
|
|
195
|
+
|
|
196
|
+
Output has transparent background - perfect for presentations, design comps, or overlaying on custom backgrounds.
|
|
197
|
+
|
|
198
|
+
## Device Resolutions
|
|
199
|
+
|
|
200
|
+
### Required for App Store
|
|
201
|
+
- **iPhone 6.9"**: 1290x2796 or 1320x2868
|
|
202
|
+
- **iPad 13"**: 2064x2752 or 2048x2732
|
|
203
|
+
|
|
204
|
+
### Optional
|
|
205
|
+
- **Mac**: 2880x1800 (16:10)
|
|
206
|
+
- **Watch Ultra**: 410x502
|
|
207
|
+
|
|
208
|
+
## Configuration Options
|
|
209
|
+
|
|
210
|
+
### Frame Positioning
|
|
211
|
+
- `frameScale`: 0.1-1.5 (default: 0.9)
|
|
212
|
+
- `framePosition`: 0-100 or "center"
|
|
213
|
+
- `captionPosition`: "above", "below", "overlay"
|
|
214
|
+
|
|
215
|
+
### Caption Styling
|
|
216
|
+
- `captionSize`: Font size in pixels
|
|
217
|
+
- `marginTop`: Top margin for caption
|
|
218
|
+
- `marginBottom`: Bottom margin for caption
|
|
219
|
+
|
|
220
|
+
## Resources
|
|
221
|
+
|
|
222
|
+
- `references/templates.md` - All 8 templates with styles, colors, and recommendations
|
|
223
|
+
- `references/gradients.md` - All 24 gradient presets with colors
|
|
224
|
+
- `references/fonts.md` - All 10 embedded font families
|
|
225
|
+
- `references/troubleshooting.md` - Common errors and solutions
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Embedded Fonts
|
|
2
|
+
|
|
3
|
+
10 font families bundled with appshot, always available without system installation.
|
|
4
|
+
|
|
5
|
+
## Modern UI Fonts
|
|
6
|
+
|
|
7
|
+
| Font | Variants | Best For |
|
|
8
|
+
|------|----------|----------|
|
|
9
|
+
| **Inter** | Regular, Bold, Italic, Bold Italic | Clean, modern interfaces |
|
|
10
|
+
| **Poppins** | Regular, Bold, Italic, Bold Italic | Friendly, geometric headings |
|
|
11
|
+
| **Montserrat** | Regular, Bold, Italic, Bold Italic | Professional, versatile |
|
|
12
|
+
| **DM Sans** | Regular | Modern, geometric |
|
|
13
|
+
|
|
14
|
+
## Web-Safe Fonts
|
|
15
|
+
|
|
16
|
+
| Font | Variants | Best For |
|
|
17
|
+
|------|----------|----------|
|
|
18
|
+
| **Roboto** | Regular, Bold, Italic, Bold Italic | Android-style, neutral |
|
|
19
|
+
| **Open Sans** | Regular | Highly readable body text |
|
|
20
|
+
| **Lato** | Regular, Bold, Italic, Bold Italic | Warm, humanist sans-serif |
|
|
21
|
+
| **Work Sans** | Regular | Modern web typography |
|
|
22
|
+
|
|
23
|
+
## Monospace Fonts
|
|
24
|
+
|
|
25
|
+
| Font | Variants | Best For |
|
|
26
|
+
|------|----------|----------|
|
|
27
|
+
| **JetBrains Mono** | Regular, Bold, Italic, Bold Italic | Code, technical apps |
|
|
28
|
+
| **Fira Code** | Regular, Bold | Code with ligatures |
|
|
29
|
+
|
|
30
|
+
## Font Recommendations by App Type
|
|
31
|
+
|
|
32
|
+
| App Category | Recommended Font |
|
|
33
|
+
|--------------|------------------|
|
|
34
|
+
| Finance/Business | Inter, Montserrat |
|
|
35
|
+
| Social/Lifestyle | Poppins, Lato |
|
|
36
|
+
| Productivity | Open Sans, Work Sans |
|
|
37
|
+
| Developer Tools | JetBrains Mono, Fira Code |
|
|
38
|
+
| Health/Fitness | Roboto, DM Sans |
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
List embedded fonts:
|
|
43
|
+
```
|
|
44
|
+
appshot.fonts with action: "embedded"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Validate a font:
|
|
48
|
+
```
|
|
49
|
+
appshot.fonts with action: "validate", font: "Inter"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Configure font in project:
|
|
53
|
+
```
|
|
54
|
+
appshot.config with device: "iphone", font: "Montserrat Bold"
|
|
55
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Gradient Presets
|
|
2
|
+
|
|
3
|
+
24 built-in gradient presets organized by category.
|
|
4
|
+
|
|
5
|
+
## Warm
|
|
6
|
+
|
|
7
|
+
| ID | Name | Colors | Direction |
|
|
8
|
+
|----|------|--------|-----------|
|
|
9
|
+
| `sunset` | Sunset | #FF5733 → #FFC300 | top-bottom |
|
|
10
|
+
| `sunrise` | Sunrise | #F37335 → #FDC830 | diagonal |
|
|
11
|
+
| `autumn` | Autumn | #D38312 → #A83279 | top-bottom |
|
|
12
|
+
| `peach` | Peach | #FFCCCC → #FF6B6B | top-bottom |
|
|
13
|
+
|
|
14
|
+
## Cool
|
|
15
|
+
|
|
16
|
+
| ID | Name | Colors | Direction |
|
|
17
|
+
|----|------|--------|-----------|
|
|
18
|
+
| `ocean` | Ocean | #0077BE → #33CCCC | top-bottom |
|
|
19
|
+
| `arctic` | Arctic | #72EDF2 → #5151E5 | diagonal |
|
|
20
|
+
| `mint` | Mint | #00B09B → #96C93D | left-right |
|
|
21
|
+
| `lavender` | Lavender | #9796F0 → #FBC7D4 | top-bottom |
|
|
22
|
+
|
|
23
|
+
## Vibrant
|
|
24
|
+
|
|
25
|
+
| ID | Name | Colors | Direction |
|
|
26
|
+
|----|------|--------|-----------|
|
|
27
|
+
| `rainbow` | Rainbow | #FF0080 → #FF8C00 → #40E0D0 | left-right |
|
|
28
|
+
| `neon` | Neon | #FF006E → #8338EC → #3A86FF | diagonal |
|
|
29
|
+
| `tropical` | Tropical | #FA709A → #FEE140 | top-bottom |
|
|
30
|
+
| `candy` | Candy | #FF61D2 → #FE9090 → #FFCC5C | left-right |
|
|
31
|
+
|
|
32
|
+
## Subtle
|
|
33
|
+
|
|
34
|
+
| ID | Name | Colors | Direction |
|
|
35
|
+
|----|------|--------|-----------|
|
|
36
|
+
| `pastel` | Pastel | #E8D8F5 → #D6E6FF | top-bottom |
|
|
37
|
+
| `mist` | Mist | #E0EAFC → #CFDEF3 | top-bottom |
|
|
38
|
+
| `pearl` | Pearl | #F5F5F5 → #E8E8E8 → #F0F0F0 | diagonal |
|
|
39
|
+
| `cloud` | Cloud | #FFFFFF → #F0F0F0 | top-bottom |
|
|
40
|
+
|
|
41
|
+
## Monochrome
|
|
42
|
+
|
|
43
|
+
| ID | Name | Colors | Direction |
|
|
44
|
+
|----|------|--------|-----------|
|
|
45
|
+
| `noir` | Noir | #000000 → #434343 | top-bottom |
|
|
46
|
+
| `graphite` | Graphite | #283048 → #859398 | diagonal |
|
|
47
|
+
| `charcoal` | Charcoal | #1C1C1C → #494949 | top-bottom |
|
|
48
|
+
| `silver` | Silver | #B8B8B8 → #E8E8E8 | diagonal |
|
|
49
|
+
|
|
50
|
+
## Brand
|
|
51
|
+
|
|
52
|
+
| ID | Name | Colors | Direction |
|
|
53
|
+
|----|------|--------|-----------|
|
|
54
|
+
| `instagram` | Instagram | #833AB4 → #FD1D1D → #FCB045 | diagonal |
|
|
55
|
+
| `twitter` | Twitter Blue | #1DA1F2 → #14171A | top-bottom |
|
|
56
|
+
| `spotify` | Spotify | #1DB954 → #191414 | diagonal |
|
|
57
|
+
| `apple` | Apple | #A1C4FD → #C2E9FB | diagonal |
|
|
58
|
+
|
|
59
|
+
## Usage
|
|
60
|
+
|
|
61
|
+
To apply a gradient:
|
|
62
|
+
```
|
|
63
|
+
appshot.gradients with action: "apply", preset: "<id>"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
To list gradients by category:
|
|
67
|
+
```
|
|
68
|
+
appshot.gradients with action: "list", category: "warm"
|
|
69
|
+
```
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Template Reference
|
|
2
|
+
|
|
3
|
+
8 professional templates for App Store screenshots.
|
|
4
|
+
|
|
5
|
+
## Template Selection Guide
|
|
6
|
+
|
|
7
|
+
| App Type | Recommended Template |
|
|
8
|
+
|----------|---------------------|
|
|
9
|
+
| Developer tools, CLI, OSS | `nerdy` |
|
|
10
|
+
| Business, productivity | `corporate` |
|
|
11
|
+
| Games, entertainment | `playful` |
|
|
12
|
+
| Lifestyle, premium | `elegant` |
|
|
13
|
+
| Finance, fintech | `bold` |
|
|
14
|
+
| Social, consumer | `modern` |
|
|
15
|
+
| Health, wellness | `minimal` |
|
|
16
|
+
| Custom backgrounds | `showcase` |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## modern
|
|
21
|
+
|
|
22
|
+
**Modern Vibrant** - Eye-catching gradient with floating device and clean captions
|
|
23
|
+
|
|
24
|
+
- **Category:** modern
|
|
25
|
+
- **Background:** Purple-pink diagonal gradient (`#667eea` → `#764ba2` → `#f093fb`)
|
|
26
|
+
- **Caption:** Above device, SF Pro Display, dark text (`#021d2f`)
|
|
27
|
+
- **Best for:** Consumer apps, social apps, general-purpose
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
appshot.template with template: "modern"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## minimal
|
|
36
|
+
|
|
37
|
+
**Minimal Clean** - Soft pastel background with elegant typography
|
|
38
|
+
|
|
39
|
+
- **Category:** minimal
|
|
40
|
+
- **Background:** Warm peach gradient (`#ffecd2` → `#fcb69f`)
|
|
41
|
+
- **Caption:** Above device, Helvetica Neue, dark text (`#1b2a3a`)
|
|
42
|
+
- **Best for:** Health apps, wellness, lifestyle
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
appshot.template with template: "minimal"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## bold
|
|
51
|
+
|
|
52
|
+
**Bold Impact** - Dark dramatic gradient with large device and overlay captions
|
|
53
|
+
|
|
54
|
+
- **Category:** bold
|
|
55
|
+
- **Background:** Dark purple diagonal gradient (`#0f0c29` → `#302b63` → `#24243e`)
|
|
56
|
+
- **Caption:** Overlay at bottom, SF Pro Display, white text
|
|
57
|
+
- **Best for:** Finance apps, security, premium features
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
appshot.template with template: "bold"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## nerdy
|
|
66
|
+
|
|
67
|
+
**Nerdy OSS** - Grid-lined midnight background with JetBrains Mono captions
|
|
68
|
+
|
|
69
|
+
- **Category:** bold
|
|
70
|
+
- **Background:** Auto-detect (uses background.png if present)
|
|
71
|
+
- **Caption:** Overlay at bottom, JetBrains Mono Bold, mint green (`#7CFFCB`)
|
|
72
|
+
- **Best for:** Developer tools, CLI apps, open source projects
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
appshot.template with template: "nerdy"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Note:** Place a grid/terminal background image at `screenshots/iphone/background.png` for best results.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## elegant
|
|
83
|
+
|
|
84
|
+
**Elegant Professional** - Sophisticated monochrome with floating device
|
|
85
|
+
|
|
86
|
+
- **Category:** elegant
|
|
87
|
+
- **Background:** Silver gradient (`#8e9eab` → `#eef2f3`)
|
|
88
|
+
- **Caption:** Below device, Georgia serif, dark text (`#132235`)
|
|
89
|
+
- **Best for:** Luxury apps, premium services, professional tools
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
appshot.template with template: "elegant"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## showcase
|
|
98
|
+
|
|
99
|
+
**Showcase** - Feature your app with custom backgrounds
|
|
100
|
+
|
|
101
|
+
- **Category:** professional
|
|
102
|
+
- **Background:** Auto-detect with cyan fallback (`#4facfe` → `#00f2fe`)
|
|
103
|
+
- **Caption:** Above device, SF Pro Display, white text
|
|
104
|
+
- **Best for:** Apps with strong visual branding, custom marketing assets
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
appshot.template with template: "showcase"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Tip:** Add your branded background to `screenshots/iphone/background.png`
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## playful
|
|
115
|
+
|
|
116
|
+
**Playful Energy** - Bright, fun gradients perfect for games and entertainment apps
|
|
117
|
+
|
|
118
|
+
- **Category:** playful
|
|
119
|
+
- **Background:** Pink-yellow diagonal gradient (`#fa709a` → `#fee140` → `#fa709a`)
|
|
120
|
+
- **Caption:** Above device, SF Pro Display, white text
|
|
121
|
+
- **Best for:** Games, kids apps, entertainment, social
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
appshot.template with template: "playful"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## corporate
|
|
130
|
+
|
|
131
|
+
**Corporate Professional** - Clean, professional look for business and productivity apps
|
|
132
|
+
|
|
133
|
+
- **Category:** professional
|
|
134
|
+
- **Background:** Blue-teal gradient (`#0077BE` → `#33CCCC`)
|
|
135
|
+
- **Caption:** Above device, Helvetica, dark text (`#0f1e2d`)
|
|
136
|
+
- **Best for:** Business apps, B2B, enterprise, productivity
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
appshot.template with template: "corporate"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Applying Templates
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
# Apply a template
|
|
148
|
+
appshot.template with template: "nerdy"
|
|
149
|
+
|
|
150
|
+
# Preview without applying
|
|
151
|
+
appshot.template with preview: "modern"
|
|
152
|
+
|
|
153
|
+
# List all templates
|
|
154
|
+
appshot.template with list: true
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Customizing After Template
|
|
158
|
+
|
|
159
|
+
Templates set a starting point. Customize further with:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
# Change gradient
|
|
163
|
+
appshot.gradients with action: "apply", preset: "sunset"
|
|
164
|
+
|
|
165
|
+
# Adjust device positioning
|
|
166
|
+
appshot.config with device: "iphone", frameScale: 0.85, framePosition: 30
|
|
167
|
+
|
|
168
|
+
# Change caption position
|
|
169
|
+
appshot.config with device: "iphone", captionPosition: "below"
|
|
170
|
+
```
|