loopwind 0.12.1 → 0.12.2

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 CHANGED
@@ -3,18 +3,15 @@
3
3
  > The Shadcn for design and marketing. A template-based CLI tool for generating images and videos using React + Tailwind CSS + Satori.
4
4
 
5
5
  ## Features
6
-
7
- - 🎨 **shadcn/ui Design System**: Beautiful, semantic colors out of the box (`text-primary`, `bg-card`, etc.)
8
- - **Template-based**: Install design templates like you install UI components
9
- - 🖼️ **Serverless Image Rendering**: Pure JavaScript rendering with Satori - works on Vercel, Netlify, Cloudflare Workers
10
- - 🎬 **Serverless Video Rendering**: WASM-based MP4 encoding - 12x faster than traditional approaches
11
- - 🎨 **Tailwind CSS Support**: Style templates with Tailwind utility classes + opacity modifiers (`bg-primary/50`)
12
- - 📱 **Built-in Helpers**: QR codes, image embedding, video backgrounds, template composition
13
- - **Smart Validation**: Automatic prop and template validation with helpful error messages
14
- - 🚀 **Framework-agnostic**: Works with Node, Bun, Deno, Laravel, Python, and more
15
- - 🤖 **Agent-friendly**: Machine-readable metadata for LLMs
16
- - 📦 **Easy installation**: `npx loopwind add template-name`
17
- - 🌐 **Pure JavaScript/WASM**: No native dependencies, works everywhere
6
+ - **Template-based**: Install templates and get full control over code.
7
+ - **Serverless Video Rendering**: Extremely fast WASM-based MP4 encoding.
8
+ - **Serverless Image Rendering**: Pure JavaScript rendering with Satori - works on Vercel, Netlify, Cloudflare Workers
9
+ - **Tailwind CSS & shadcn/ui styling**: Style templates with Tailwind & shadcn/ui utility classes (`text-foreground bg-primary/50`)
10
+ - **Animate with classes**: Tailwind-style animation classes for video templates. (enter-fade-in/0/500, exit-fade-out/2500/500, loop-ping/500)
11
+ - **Built-in Helpers**: QR codes, image embedding, video backgrounds, template composition
12
+ - **Agent-friendly**: Machine-readable metadata for LLMs
13
+ - **Easy installation**: `npx loopwind add image-template`
14
+ - **Pure JavaScript/WASM**: No native dependencies, works everywhere
18
15
 
19
16
  ## Quick Start
20
17
 
@@ -32,64 +29,14 @@ npx loopwind --help
32
29
 
33
30
  ### Install a Template
34
31
 
35
- Templates can be installed from multiple sources:
36
-
37
- #### 1. Official Registry (Coming Soon)
38
-
39
- ```bash
40
- loopwind add banner-hero
41
- loopwind add og-image --registry https://custom-registry.com/r
42
- ```
43
-
44
- #### 2. GitHub Repositories
32
+ #### 1. Officials
45
33
 
46
34
  ```bash
47
- # From a GitHub repo (looks for template.json in repo root)
48
- loopwind add github:username/repo
49
-
50
- # From a specific path in the repo
51
- loopwind add github:username/repo/templates/banner-hero
52
-
53
- # From an organization
54
- loopwind add github:myorg/design-templates/social-media/og-image
35
+ loopwind add image-template
36
+ loopwind add video-template
55
37
  ```
56
38
 
57
- **How it works:**
58
- - Converts to raw GitHub URLs
59
- - Fetches `template.json` from the specified path
60
- - Downloads all referenced files
61
- - Uses `main` branch by default
62
-
63
- #### 3. Direct URLs
64
-
65
- ```bash
66
- # Install from any publicly accessible URL
67
- loopwind add https://example.com/templates/my-template.json
68
- loopwind add https://cdn.example.com/templates/awesome-banner.json
69
- ```
70
-
71
- **Requirements:**
72
- - URL must return JSON in the registry template format
73
- - Must be publicly accessible (no authentication)
74
-
75
- #### 4. Local Filesystem
76
-
77
- ```bash
78
- # Relative path
79
- loopwind add ./my-templates/banner-hero
80
- loopwind add ../shared-templates/product-card
81
-
82
- # Absolute path
83
- loopwind add /Users/you/templates/social-card
84
- ```
85
-
86
- **Use cases:**
87
- - Development and testing
88
- - Private templates
89
- - Shared team templates (monorepo)
90
- - Before publishing to registry
91
-
92
- Templates are installed to: `_loopwind/templates/<template>/` (customizable in `_loopwind/loopwind.json`)
39
+ Templates are installed to: `_loopwind/templates/<template>/`.
93
40
 
94
41
  **Benefits:**
95
42
  - Templates are local to your project (like npm packages)
@@ -100,6 +47,32 @@ Templates are installed to: `_loopwind/templates/<template>/` (customizable in `
100
47
 
101
48
  See `REGISTRY_SETUP.md` to create your own registry.
102
49
 
50
+ ### Video Rendering
51
+
52
+ ```typescript
53
+ import { defineTemplate, renderVideo } from 'loopwind/sdk';
54
+
55
+ const introTemplate = defineTemplate({
56
+ name: 'intro-video',
57
+ type: 'video',
58
+ size: { width: 1920, height: 1080 },
59
+ video: { fps: 30, duration: 3 },
60
+ render: ({ tw, progress, title }) => {
61
+ const opacity = progress; // 0 to 1 animation
62
+
63
+ return (
64
+ <div style={tw('flex items-center justify-center w-full h-full bg-black')}>
65
+ <h1 style={{ ...tw('text-8xl font-bold text-white'), opacity }}>
66
+ {title}
67
+ </h1>
68
+ </div>
69
+ );
70
+ },
71
+ });
72
+
73
+ const mp4 = await renderVideo(introTemplate, { title: 'Welcome!' });
74
+ ```
75
+
103
76
  ### Render an Image
104
77
 
105
78
  ```bash
@@ -205,32 +178,6 @@ export default async function handler(req, res) {
205
178
  }
206
179
  ```
207
180
 
208
- ### Video Rendering
209
-
210
- ```typescript
211
- import { defineTemplate, renderVideo } from 'loopwind/sdk';
212
-
213
- const introTemplate = defineTemplate({
214
- name: 'intro-video',
215
- type: 'video',
216
- size: { width: 1920, height: 1080 },
217
- video: { fps: 30, duration: 3 },
218
- render: ({ tw, progress, title }) => {
219
- const opacity = progress; // 0 to 1 animation
220
-
221
- return (
222
- <div style={tw('flex items-center justify-center w-full h-full bg-black')}>
223
- <h1 style={{ ...tw('text-8xl font-bold text-white'), opacity }}>
224
- {title}
225
- </h1>
226
- </div>
227
- );
228
- },
229
- });
230
-
231
- const mp4 = await renderVideo(introTemplate, { title: 'Welcome!' });
232
- ```
233
-
234
181
  ### Key Features
235
182
 
236
183
  - ✅ **No file system dependencies** - templates defined in code
@@ -12,7 +12,7 @@ Creates `loopwind.json` config file. Run this first in new projects.
12
12
 
13
13
  ### 2. Add Templates
14
14
  ```bash
15
- loopwind add <template> # From registry ('image' or 'video' default)
15
+ loopwind add <template> # From registry ('image-template' or 'video-template' default)
16
16
  ```
17
17
 
18
18
  ### 3. List Installed Templates
@@ -24,14 +24,6 @@ loopwind list
24
24
  ```bash
25
25
  # With inline props (JSON string)
26
26
  loopwind render banner-hero '{"title":"Hello World"}'
27
-
28
- # With props file
29
- loopwind render banner-hero props.json
30
-
31
- # Specify output path and format
32
- loopwind render banner-hero props.json --out output.png --format png
33
-
34
- # Supported formats: png (default), svg, webp, jpg, jpeg
35
27
  ```
36
28
 
37
29
  ### 5. Render Videos
@@ -42,14 +34,6 @@ loopwind render my-video '{"title":"Video Title"}'
42
34
  # Render to GIF (great for emails, GitHub, Slack)
43
35
  loopwind render my-video '{"title":"Video Title"}' --format gif
44
36
 
45
- # With quality options
46
- loopwind render my-video props.json --crf 23
47
-
48
- # Export frames only
49
- loopwind render my-video props.json --frames-only
50
-
51
- # Keep frames after encoding
52
- loopwind render my-video props.json --keep-frames
53
37
  ```
54
38
 
55
39
  **Formats:** MP4 (default), GIF
@@ -63,11 +47,11 @@ loopwind validate [template] # Validate one or all templates
63
47
 
64
48
  ```
65
49
  project/
66
- ├── loopwind.json # Config (colors, fonts, paths)
67
50
  └── _loopwind/
68
51
  ├── AGENTS.md # This file
69
52
  ├── templates/ # Installed templates
70
53
  └── outputs/ # Generated files
54
+ └── loopwind.json # Config (colors, fonts, paths)
71
55
  ```
72
56
 
73
57
  ## Template Types
@@ -78,7 +62,7 @@ project/
78
62
  export const meta = {
79
63
  name: "my-template",
80
64
  type: "image",
81
- size: { width: 1200, height: 630 },
65
+ size: { width: 1200, height: 630, scale: 2 },
82
66
  props: { title: "string" }
83
67
  };
84
68
 
@@ -178,8 +162,7 @@ export default function Template({
178
162
 
179
163
  ## Animation Classes (Video Only)
180
164
 
181
- Tailwind-style animation classes for video templates. No manual `progress` calculations needed!
182
-
165
+ Tailwind-style animation classes for video templates.
183
166
  ### Format
184
167
 
185
168
  ```
@@ -205,7 +188,7 @@ loop-{animation}/{durationMs}
205
188
  <p style={tw('ease-out enter-fade-in-up/200/400')}>Second</p>
206
189
  ```
207
190
 
208
- **Available:** `fade-in`, `fade-in-up`, `fade-in-down`, `fade-in-left`, `fade-in-right`, `slide-up`, `slide-down`, `slide-left`, `slide-right`, `bounce-in`, `bounce-in-up`, `bounce-in-down`, `bounce-in-left`, `bounce-in-right`, `scale-in`, `zoom-in`, `rotate-in`, `flip-in-x`, `flip-in-y`
191
+ **Available:** `enter-fade-in`, `enter-fade-in-up`, `enter-fade-in-down`, `enter-fade-in-left`, `enter-fade-in-right`, `enter-slide-up`, `enter-slide-down`, `enter-slide-left`, `enter-slide-right`, `enter-bounce-in`, `enter-bounce-in-up`, `enter-bounce-in-down`, `enter-bounce-in-left`, `enter-bounce-in-right`, `enter-scale-in`, `enter-zoom-in`, `enter-rotate-in`, `enter-flip-in-x`, `enter-flip-in-y`
209
192
 
210
193
  ### Exit Animations
211
194
 
@@ -219,7 +202,7 @@ loop-{animation}/{durationMs}
219
202
  </h1>
220
203
  ```
221
204
 
222
- **Available:** Same as enter animations but with "out" suffix (e.g., `fade-out`, `bounce-out-up`)
205
+ **Available:** Same as enter animations but with "out" suffix (e.g., `exit-fade-out`, `exit-bounce-out-up`)
223
206
 
224
207
  ### Loop Animations
225
208
 
@@ -1,4 +1,4 @@
1
-
1
+ import React from 'react';
2
2
 
3
3
  export const meta = {
4
4
  "name": "image",
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+
3
+ export const meta = {
4
+ "name": "video-intro",
5
+ "description": "Animated video intro with title reveal",
6
+ "type": "video",
7
+ "size": {
8
+ "width": 1920,
9
+ "height": 1080
10
+ },
11
+ "props": {
12
+ "title": "string",
13
+ "subtitle": "string?"
14
+ },
15
+ "video": {
16
+ "fps": 60,
17
+ "duration": 3
18
+ }
19
+ };
20
+
21
+ export default function Template({ title, subtitle, tw }) {
22
+ return (
23
+ <div style={tw('w-full h-full flex flex-col justify-center items-center bg-background')}>
24
+ <h1 style={tw('text-8xl font-black text-foreground tracking-tight ease-out enter-slide-left/0/400')}>
25
+ {title}
26
+ </h1>
27
+
28
+ <div style={tw('h-1 w-96 bg-primary mt-6 rounded-full ease-out enter-scale-in/200/500')} />
29
+
30
+ {subtitle && (
31
+ <p style={tw('text-2xl text-muted-foreground mt-6 font-light tracking-wide ease-out enter-fade-in-up/400/600')}>
32
+ {subtitle}
33
+ </p>
34
+ )}
35
+ </div>
36
+ );
37
+ }
@@ -1,4 +1,4 @@
1
-
1
+ import React from 'react';
2
2
 
3
3
  export const meta = {
4
4
  "name": "video",
@@ -18,32 +18,15 @@ export const meta = {
18
18
  }
19
19
  };
20
20
 
21
- export default function Template({ title, description, frame, progress, tw }) {
22
- // Fade in animation
23
- const opacity = Math.min(1, progress * 2);
24
-
25
- // Slide up animation
26
- const translateY = 20 - (progress * 20);
27
-
21
+ export default function Template({ title, description, tw }) {
28
22
  return (
29
23
  <div style={tw('w-full h-full flex flex-col justify-center items-center bg-background p-16')}>
30
24
  <div style={tw('bg-card border rounded-xl p-12 flex flex-col max-w-4xl')}>
31
- <h1
32
- style={{
33
- ...tw('text-7xl font-bold text-foreground mb-4'),
34
- opacity,
35
- transform: `translateY(${translateY}px)`
36
- }}
37
- >
25
+ <h1 style={tw('text-7xl font-bold text-foreground mb-4 ease-out enter-fade-in-up/0/500')}>
38
26
  {title}
39
27
  </h1>
40
28
  {description && (
41
- <p
42
- style={{
43
- ...tw('text-3xl text-muted-foreground'),
44
- opacity: Math.min(1, (progress - 0.3) * 2)
45
- }}
46
- >
29
+ <p style={tw('text-3xl text-muted-foreground ease-out enter-fade-in-up/300/500')}>
47
30
  {description}
48
31
  </p>
49
32
  )}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/lib/renderer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiB1D;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAqFhD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CA0NjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAGD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAwKD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAClD;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CA8B7E"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/lib/renderer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiB1D;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAqFhD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAoOjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,aAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAGD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAwKD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAClD;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CA8B7E"}
@@ -205,9 +205,12 @@ export async function renderToSVG(templateName, props = {}) {
205
205
  // Create a new template helper with the embedded template's path as context
206
206
  const embeddedFrame = templateProps?.frame ?? props.frame ?? 0;
207
207
  const embeddedProgress = templateProps?.progress ?? props.progress ?? 0;
208
+ // Calculate animation context for embedded template
209
+ const embeddedTotalFrames = cached.meta.video ? Math.floor(cached.meta.video.fps * cached.meta.video.duration) : undefined;
210
+ const embeddedDurationMs = cached.meta.video ? cached.meta.video.duration * 1000 : undefined;
208
211
  const embeddedFullProps = {
209
212
  ...(templateProps || {}),
210
- tw: (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress: embeddedProgress, frame: embeddedFrame }),
213
+ tw: (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress: embeddedProgress, frame: embeddedFrame, totalFrames: embeddedTotalFrames, durationMs: embeddedDurationMs }),
211
214
  qr: qrHelper,
212
215
  image: imageHelper,
213
216
  video: videoHelper,
@@ -265,12 +268,15 @@ export async function renderToSVG(templateName, props = {}) {
265
268
  // Add frame, progress, config, tw, qr, image, video, and template utilities
266
269
  const frame = props.frame ?? 0;
267
270
  const progress = props.progress ?? 0;
271
+ // Calculate animation context for video templates
272
+ const totalFrames = meta.video ? Math.floor(meta.video.fps * meta.video.duration) : undefined;
273
+ const durationMs = meta.video ? meta.video.duration * 1000 : undefined;
268
274
  const fullProps = {
269
275
  ...props,
270
276
  frame,
271
277
  progress,
272
278
  config: loopwindConfig, // Pass the design config to the template
273
- tw: (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress, frame }), // Tailwind class converter with animation context
279
+ tw: (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress, frame, totalFrames, durationMs }), // Tailwind class converter with animation context
274
280
  qr: qrHelper, // QR code generator (cached)
275
281
  image: imageHelper, // Image loader (cached)
276
282
  video: videoHelper, // Video frame loader (cached)
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/lib/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/lib/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loopwind",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "A CLI tool for AI code agents and developers for generating images and videos.",
5
5
  "type": "module",
6
6
  "bin": {
package/FONTS.md DELETED
@@ -1,160 +0,0 @@
1
- # Font Handling in loopwind
2
-
3
- loopwind has a two-part font system:
4
- 1. **Font Data** (template-specific) - Actual font files loaded by Satori
5
- 2. **Font Classes** (project-wide) - CSS font-family applied via `tw()`
6
-
7
- ## Font Data (Loaded by Satori)
8
-
9
- Templates can bundle custom fonts or use the default font.
10
-
11
- ### Default Font (No Setup Required)
12
-
13
- If a template doesn't specify fonts, **Noto Sans** is automatically fetched from jsDelivr CDN.
14
-
15
- ### Custom Fonts (Template-Bundled)
16
-
17
- Templates can bundle their own fonts for:
18
- - **Brand-specific fonts** (e.g., company brand guidelines)
19
- - **Offline rendering** (no CDN dependency)
20
- - **Custom typography** (special display fonts)
21
-
22
- **Template Structure with Fonts:**
23
-
24
- ```
25
- my-template/
26
- ├── template.tsx
27
- └── fonts/
28
- ├── Inter-Regular.woff
29
- ├── Inter-Bold.woff
30
- └── Playfair-Bold.woff
31
- ```
32
-
33
- **Template with Custom Fonts:**
34
-
35
- ```tsx
36
- export const meta = {
37
- name: "my-template",
38
- type: "image",
39
- size: { width: 1200, height: 630 },
40
- props: { title: "string" },
41
- fonts: [
42
- {
43
- name: "Inter",
44
- path: "fonts/Inter-Regular.woff",
45
- weight: 400,
46
- style: "normal"
47
- },
48
- {
49
- name: "Inter",
50
- path: "fonts/Inter-Bold.woff",
51
- weight: 700,
52
- style: "normal"
53
- }
54
- ]
55
- };
56
-
57
- export default function Template({ title, tw }) {
58
- return (
59
- <h1 style={tw('font-sans font-bold text-6xl')}>{title}</h1>
60
- );
61
- }
62
- ```
63
-
64
- **Supported Formats:**
65
- - ✅ **WOFF** (`.woff`) - Recommended
66
- - ✅ **WOFF2** (`.woff2`) - Best compression
67
- - ✅ **TTF** (`.ttf`) - Also supported
68
- - ✅ **OTF** (`.otf`) - Also supported
69
-
70
- ## Font Classes (from loopwind.json)
71
-
72
- Use Tailwind font-family classes in templates. These reference the font stacks in `loopwind.json`:
73
-
74
- **loopwind.json:**
75
- ```json
76
- {
77
- "fonts": {
78
- "sans": ["Inter", "system-ui", "-apple-system", "sans-serif"],
79
- "serif": ["Georgia", "serif"],
80
- "mono": ["JetBrains Mono", "Courier New", "monospace"]
81
- }
82
- }
83
- ```
84
-
85
- **Template usage:**
86
- ```tsx
87
- export default function({ title, tw }) {
88
- return (
89
- <div style={tw('w-full h-full')}>
90
- {/* Uses fonts.sans from loopwind.json */}
91
- <h1 style={tw('font-sans text-6xl font-bold')}>
92
- {title}
93
- </h1>
94
-
95
- {/* Uses fonts.mono from loopwind.json */}
96
- <code style={tw('font-mono text-sm')}>
97
- Hello World
98
- </code>
99
- </div>
100
- );
101
- }
102
- ```
103
-
104
- **Available classes:**
105
- - `font-sans` - Uses `fonts.sans` from loopwind.json (default: system-ui, -apple-system, sans-serif)
106
- - `font-serif` - Uses `fonts.serif` from loopwind.json (default: Georgia, serif)
107
- - `font-mono` - Uses `fonts.mono` from loopwind.json (default: monospace)
108
-
109
- ## How It Works Together
110
-
111
- 1. **Font data** is loaded from template's exported `meta` (or default Noto Sans)
112
- 2. **Font classes** (`font-sans`) apply CSS `fontFamily` from `loopwind.json`
113
- 3. The font name in CSS must match a loaded font for Satori to use it
114
-
115
- **Example:**
116
-
117
- ```tsx
118
- // template.tsx - Loads the actual font files
119
- export const meta = {
120
- name: "my-template",
121
- // ...
122
- fonts: [
123
- { name: "Inter", path: "fonts/Inter-Regular.woff", weight: 400, style: "normal" },
124
- { name: "Inter", path: "fonts/Inter-Bold.woff", weight: 700, style: "normal" }
125
- ]
126
- };
127
-
128
- export default function Template({ title, tw }) {
129
- return (
130
- <h1 style={tw('font-sans font-bold')}>
131
- {/* font-sans → fontFamily: "Inter, system-ui, sans-serif" */}
132
- {/* Satori uses loaded "Inter" font from meta */}
133
- {title}
134
- </h1>
135
- );
136
- }
137
- ```
138
-
139
- ```json
140
- // loopwind.json - Defines font stacks for CSS
141
- {
142
- "fonts": {
143
- "sans": ["Inter", "system-ui", "sans-serif"]
144
- }
145
- }
146
- ```
147
-
148
- ## Fallback Behavior
149
-
150
- - If template fonts fail to load → falls back to Noto Sans from CDN
151
- - If `font-sans` used but no fonts defined → uses system font stack
152
- - If CSS font-family doesn't match loaded fonts → Satori uses fallback
153
-
154
- ## Best Practices
155
-
156
- 1. **For most templates:** Use default Noto Sans, no font setup needed
157
- 2. **For branded templates:** Bundle custom fonts in template's `fonts/` folder
158
- 3. **Use font classes:** `tw('font-sans')` instead of raw `fontFamily: 'Inter'`
159
- 4. **Match names:** Ensure `loopwind.json` font names match template's loaded fonts
160
- 5. **Include fallbacks:** Always include system fallbacks in font stacks