figmatk 0.0.15 → 0.0.17

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.
@@ -13,7 +13,7 @@
13
13
  {
14
14
  "name": "figmatk",
15
15
  "description": "Swiss Army Knife for Figma Files (.deck)",
16
- "version": "0.0.15",
16
+ "version": "0.0.17",
17
17
  "author": {
18
18
  "name": "FigmaTK Contributors"
19
19
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "figmatk",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "description": "Create and edit Figma Slides .deck files programmatically — no Figma API required",
5
5
  "author": {
6
6
  "name": "FigmaTK Contributors"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "figmatk",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "description": "Figma Toolkit — Swiss-army knife CLI for Figma .deck and .fig files",
5
5
  "type": "module",
6
6
  "bin": {
@@ -6,7 +6,7 @@ description: >
6
6
  clone or remove slides, or produce a .deck file for Figma Slides.
7
7
  Powered by FigmaTK under the hood.
8
8
  metadata:
9
- version: "0.0.15"
9
+ version: "0.0.17"
10
10
  ---
11
11
 
12
12
  # Figma Slides Creator
@@ -145,7 +145,7 @@ slide.addDiamond(x, y, width, height, opts)
145
145
  slide.addTriangle(x, y, width, height, opts)
146
146
  slide.addStar(x, y, width, height, opts)
147
147
  slide.addLine(x1, y1, x2, y2, opts) // opts: color, weight
148
- slide.addImage(path, opts) // opts: x, y, width, height
148
+ slide.addImage(x, y, width, height, pathOrBuf, opts) // opts: cornerRadius, opacity
149
149
  slide.addTable(data, opts) // 2D string array; opts: x, y, width, colWidths, rowHeight
150
150
  slide.addSVG(x, y, width, svgPathOrBuf, opts)
151
151
  ```
@@ -184,7 +184,32 @@ Use this when the user provides a `.deck` file to modify.
184
184
 
185
185
  ## Design Philosophy
186
186
 
187
- Every deck must look **intentionally designed**, not AI-generated.
187
+ Think like a **professional PowerPoint designer**, not an AI generating slides. Every deck must feel like it was made by a human who spent a day on it.
188
+
189
+ ### Deck structure — use this template every time
190
+
191
+ A proper deck has a clear spine. Follow this slide order:
192
+
193
+ | # | Slide type | Purpose |
194
+ |---|-----------|---------|
195
+ | 1 | **Title** | Dark bg, big title, subtitle, presenter name |
196
+ | 2 | **Agenda / Overview** | 3–5 bullet topics, light bg |
197
+ | 3–N | **Content slides** | Vary layout each slide — see below |
198
+ | N+1 | **Section divider** (optional) | Bold colour block to signal a new chapter |
199
+ | Last | **Closing / CTA** | Dark bg mirrors title slide — "Thank you", next steps, contact |
200
+
201
+ The title and closing slides must use the **same dark background** — this creates the "sandwich" effect that makes decks feel complete.
202
+
203
+ ### Consistent visual motif — pick one and use it on every slide
204
+
205
+ Choose one repeating element and place it consistently across all content slides:
206
+
207
+ - **Top accent bar**: `addRectangle(0, 0, 1920, 8, { fill: hex('#...') })` — full-width coloured strip at top
208
+ - **Left colour panel**: tall rectangle on the left third, text floats right
209
+ - **Corner badge**: small filled circle or square in bottom-right with slide number or logo
210
+ - **Bottom rule**: thin full-width line at y=1040
211
+
212
+ Without a motif, slides look unrelated. With one, the deck feels designed.
188
213
 
189
214
  ### Colour
190
215
 
@@ -203,18 +228,27 @@ Every deck must look **intentionally designed**, not AI-generated.
203
228
  | Ocean | `'Blue'` | `hex('#21295C')` | `'White'` |
204
229
  | Minimal | `'White'` | `hex('#36454F')` | `'Black'` |
205
230
 
206
- ### Layout
231
+ ### Layout — vary every slide
232
+
233
+ Each content slide should use a **different layout type**. Never repeat the same structure back-to-back.
207
234
 
208
- - Every slide needs at least **one visual element** — shape, image, SVG, or table.
209
- - **Vary layouts** — never repeat the same structure slide after slide.
210
- - Carry one visual motif through every slide (coloured accent bar, icon circles, etc.).
235
+ | Layout | When to use |
236
+ |--------|------------|
237
+ | Two-column | Comparison, pros/cons, text + image |
238
+ | 2×2 or 2×3 grid | Features, icons, categories |
239
+ | Large stat callout | One big number + explanation |
240
+ | Half-background image | Photo-rich slides |
241
+ | Timeline / steps | Process, history, roadmap |
242
+ | Icon + text rows | Lists that need visual weight |
243
+ | Full-bleed image | Impact moment, section break |
211
244
 
212
- **Layout options:** two-column, icon+text rows, 2×2/2×3 grid, large stat callout, half-background image, timeline/steps.
245
+ Every slide needs at least **one visual element** shape, image, SVG, or table. No text-only slides.
213
246
 
214
247
  ### Typography
215
248
 
216
- - Left-align body text. Centre only titles.
249
+ - Left-align body text. Centre only titles on title/closing slides.
217
250
  - Minimum 64px margin from slide edges. 24–48px between content blocks.
251
+ - Use `Header 2` or `Header 3` for slide titles on content slides (not `Title` — that's for the title slide only).
218
252
 
219
253
  ### Never do
220
254
 
@@ -223,6 +257,7 @@ Every deck must look **intentionally designed**, not AI-generated.
223
257
  - Use accent lines under slide titles (hallmark of AI-generated slides)
224
258
  - Text-only slides
225
259
  - Low-contrast text against background
260
+ - Skip the closing slide — it makes the deck feel unfinished
226
261
 
227
262
  ---
228
263