@strategicnerds/slide-nerds 0.1.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.
Files changed (101) hide show
  1. package/dist/cli/commands/analytics.d.ts +6 -0
  2. package/dist/cli/commands/analytics.d.ts.map +1 -0
  3. package/dist/cli/commands/analytics.js +44 -0
  4. package/dist/cli/commands/analytics.js.map +1 -0
  5. package/dist/cli/commands/create.d.ts +4 -0
  6. package/dist/cli/commands/create.d.ts.map +1 -0
  7. package/dist/cli/commands/create.js +87 -0
  8. package/dist/cli/commands/create.js.map +1 -0
  9. package/dist/cli/commands/export.d.ts +6 -0
  10. package/dist/cli/commands/export.d.ts.map +1 -0
  11. package/dist/cli/commands/export.js +109 -0
  12. package/dist/cli/commands/export.js.map +1 -0
  13. package/dist/cli/index.d.ts +3 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +12 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/cli/template-path.d.ts +4 -0
  18. package/dist/cli/template-path.d.ts.map +1 -0
  19. package/dist/cli/template-path.js +13 -0
  20. package/dist/cli/template-path.js.map +1 -0
  21. package/dist/runtime/export-api.d.ts +15 -0
  22. package/dist/runtime/export-api.d.ts.map +1 -0
  23. package/dist/runtime/export-api.js +21 -0
  24. package/dist/runtime/export-api.js.map +1 -0
  25. package/dist/runtime/index.d.ts +12 -0
  26. package/dist/runtime/index.d.ts.map +1 -0
  27. package/dist/runtime/index.js +8 -0
  28. package/dist/runtime/index.js.map +1 -0
  29. package/dist/runtime/light-table.d.ts +8 -0
  30. package/dist/runtime/light-table.d.ts.map +1 -0
  31. package/dist/runtime/light-table.js +104 -0
  32. package/dist/runtime/light-table.js.map +1 -0
  33. package/dist/runtime/presenter-view.d.ts +7 -0
  34. package/dist/runtime/presenter-view.d.ts.map +1 -0
  35. package/dist/runtime/presenter-view.js +62 -0
  36. package/dist/runtime/presenter-view.js.map +1 -0
  37. package/dist/runtime/slide-context.d.ts +16 -0
  38. package/dist/runtime/slide-context.d.ts.map +1 -0
  39. package/dist/runtime/slide-context.js +18 -0
  40. package/dist/runtime/slide-context.js.map +1 -0
  41. package/dist/runtime/slide-controls.d.ts +3 -0
  42. package/dist/runtime/slide-controls.d.ts.map +1 -0
  43. package/dist/runtime/slide-controls.js +177 -0
  44. package/dist/runtime/slide-controls.js.map +1 -0
  45. package/dist/runtime/slide-dom.d.ts +17 -0
  46. package/dist/runtime/slide-dom.d.ts.map +1 -0
  47. package/dist/runtime/slide-dom.js +89 -0
  48. package/dist/runtime/slide-dom.js.map +1 -0
  49. package/dist/runtime/slide-runtime.d.ts +7 -0
  50. package/dist/runtime/slide-runtime.d.ts.map +1 -0
  51. package/dist/runtime/slide-runtime.js +125 -0
  52. package/dist/runtime/slide-runtime.js.map +1 -0
  53. package/dist/runtime/slide-shape.d.ts +21 -0
  54. package/dist/runtime/slide-shape.d.ts.map +1 -0
  55. package/dist/runtime/slide-shape.js +115 -0
  56. package/dist/runtime/slide-shape.js.map +1 -0
  57. package/dist/runtime/types.d.ts +150 -0
  58. package/dist/runtime/types.d.ts.map +1 -0
  59. package/dist/runtime/types.js +38 -0
  60. package/dist/runtime/types.js.map +1 -0
  61. package/dist/runtime/use-presenter-mode.d.ts +14 -0
  62. package/dist/runtime/use-presenter-mode.d.ts.map +1 -0
  63. package/dist/runtime/use-presenter-mode.js +52 -0
  64. package/dist/runtime/use-presenter-mode.js.map +1 -0
  65. package/dist/runtime/use-slide-navigation.d.ts +13 -0
  66. package/dist/runtime/use-slide-navigation.d.ts.map +1 -0
  67. package/dist/runtime/use-slide-navigation.js +230 -0
  68. package/dist/runtime/use-slide-navigation.js.map +1 -0
  69. package/package.json +64 -0
  70. package/skills/accessibility/SKILL.md +236 -0
  71. package/skills/advanced-layouts/SKILL.md +429 -0
  72. package/skills/analytics/SKILL.md +97 -0
  73. package/skills/animation/SKILL.md +364 -0
  74. package/skills/brand/SKILL.md +200 -0
  75. package/skills/data-visualization/SKILL.md +533 -0
  76. package/skills/deck-templates/SKILL.md +93 -0
  77. package/skills/diagrams/SKILL.md +395 -0
  78. package/skills/export/SKILL.md +119 -0
  79. package/skills/interactive/SKILL.md +292 -0
  80. package/skills/layout/SKILL.md +178 -0
  81. package/skills/narrative-frameworks/SKILL.md +250 -0
  82. package/skills/react-component-embeds/SKILL.md +73 -0
  83. package/skills/slide-types/SKILL.md +384 -0
  84. package/skills/slidenerds-runtime/SKILL.md +163 -0
  85. package/skills/speaker-notes/SKILL.md +128 -0
  86. package/skills/strategic-frameworks/SKILL.md +392 -0
  87. package/skills/visual-design/SKILL.md +373 -0
  88. package/templates/analytics/custom.tsx.tmpl +20 -0
  89. package/templates/analytics/ga4.tsx.tmpl +15 -0
  90. package/templates/analytics/gtm.tsx.tmpl +9 -0
  91. package/templates/analytics/plausible.tsx.tmpl +10 -0
  92. package/templates/analytics/posthog.tsx.tmpl +14 -0
  93. package/templates/next-app/CLAUDE.md.tmpl +574 -0
  94. package/templates/next-app/README.md.tmpl +35 -0
  95. package/templates/next-app/app/globals.css.tmpl +274 -0
  96. package/templates/next-app/app/layout.tsx.tmpl +31 -0
  97. package/templates/next-app/app/page.tsx.tmpl +38 -0
  98. package/templates/next-app/brand.config.ts.tmpl +32 -0
  99. package/templates/next-app/package.json.tmpl +25 -0
  100. package/templates/next-app/postcss.config.mjs.tmpl +8 -0
  101. package/templates/next-app/tsconfig.json.tmpl +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-slide-navigation.js","sourceRoot":"","sources":["../../src/runtime/use-slide-navigation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@strategicnerds/slide-nerds",
3
+ "version": "0.1.0",
4
+ "description": "Presentation runtime, CLI, and LLM skill library for Next.js",
5
+ "type": "module",
6
+ "main": "./dist/runtime/index.js",
7
+ "types": "./dist/runtime/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/runtime/index.d.ts",
11
+ "import": "./dist/runtime/index.js"
12
+ }
13
+ },
14
+ "bin": {
15
+ "slidenerds": "./dist/cli/index.js"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "templates",
20
+ "skills"
21
+ ],
22
+ "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/strategicnerds/slide-nerds.git",
26
+ "directory": "packages/slide-nerds"
27
+ },
28
+ "keywords": [
29
+ "presentation",
30
+ "slides",
31
+ "nextjs",
32
+ "react",
33
+ "keynote",
34
+ "magic-move",
35
+ "ai",
36
+ "llm",
37
+ "claude"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsc",
41
+ "typecheck": "tsc --noEmit",
42
+ "prepublishOnly": "npm run build"
43
+ },
44
+ "peerDependencies": {
45
+ "react": "^19.0.0",
46
+ "react-dom": "^19.0.0"
47
+ },
48
+ "dependencies": {
49
+ "commander": "^13.0.0",
50
+ "fs-extra": "^11.0.0",
51
+ "pptxgenjs": "^4.0.1",
52
+ "zod": "^3.24.0"
53
+ },
54
+ "devDependencies": {
55
+ "@testing-library/jest-dom": "^6.0.0",
56
+ "@testing-library/react": "^16.0.0",
57
+ "@testing-library/user-event": "^14.0.0",
58
+ "@types/fs-extra": "^11.0.0",
59
+ "@types/puppeteer": "^5.4.7",
60
+ "jsdom": "^25.0.0",
61
+ "react": "^19.0.0",
62
+ "react-dom": "^19.0.0"
63
+ }
64
+ }
@@ -0,0 +1,236 @@
1
+ ---
2
+ name: accessibility
3
+ description: WCAG compliance, contrast ratios, motion reduction, screen reader support, and projection readability for slidenerds slides
4
+ ---
5
+
6
+ # Accessibility skill
7
+
8
+ Use this skill when building or reviewing slides to ensure they are accessible to all audiences, including people with visual, motor, or cognitive disabilities, and audiences viewing on projectors in bright rooms.
9
+
10
+ ## Color contrast
11
+
12
+ ### WCAG 2.2 AA requirements
13
+
14
+ | Element | Minimum contrast ratio | Notes |
15
+ |---|---|---|
16
+ | Normal text (<24px) | 4.5:1 against background | All body text, labels, captions |
17
+ | Large text (>=24px or >=18.66px bold) | 3:1 against background | Titles, headings, hero stats |
18
+ | UI components and graphics | 3:1 against adjacent colors | Chart bars, shape borders, icons, buttons |
19
+ | Focus indicators | 3:1 against adjacent colors | Keyboard navigation outlines |
20
+
21
+ ### Projection adjustment
22
+
23
+ Projectors reduce contrast. Aim higher than WCAG minimums:
24
+
25
+ | Element | Target for projection |
26
+ |---|---|
27
+ | Body text | 7:1 or higher |
28
+ | Headings | 4.5:1 or higher |
29
+ | Chart elements | 4:1 or higher |
30
+
31
+ ### How to check contrast
32
+
33
+ Use the accent and text colors from `brand.config.ts` and verify against the background:
34
+
35
+ ```
36
+ Text (#e8e6e3) on Background (#111114) = 14.7:1 (passes)
37
+ Accent (#f59e0b) on Background (#111114) = 8.3:1 (passes)
38
+ Text-secondary (60% opacity) on Background = ~7.5:1 (passes)
39
+ Text-tertiary (40% opacity) on Background = ~4.2:1 (passes for large text only)
40
+ ```
41
+
42
+ When creating a new brand palette, verify these four combinations before building slides.
43
+
44
+ ### Color-blind safe palettes
45
+
46
+ 8% of men and 0.5% of women have some form of color vision deficiency. When using color to encode meaning (charts, status indicators, before/after):
47
+
48
+ - Never rely on color alone. Add text labels, patterns, or shapes.
49
+ - Avoid red/green as the only differentiator. Use red/blue or orange/blue instead.
50
+ - For chart series, use shapes (circle, square, triangle) alongside colors.
51
+ - Test with a color blindness simulator (Chrome DevTools > Rendering > Emulate vision deficiencies).
52
+
53
+ Safe color pairs for data visualization:
54
+
55
+ | Pair | Works for |
56
+ |---|---|
57
+ | Blue (#3b82f6) + Orange (#f59e0b) | All color vision types |
58
+ | Blue (#3b82f6) + Red (#ef4444) | Protanopia, tritanopia |
59
+ | Purple (#8b5cf6) + Yellow (#eab308) | All types |
60
+ | Teal (#14b8a6) + Pink (#ec4899) | Deuteranopia, protanopia |
61
+
62
+ ## Typography accessibility
63
+
64
+ ### Minimum font sizes
65
+
66
+ These are absolute minimums, not recommendations. See the visual-design skill for recommended sizes.
67
+
68
+ | Element | Minimum on screen | Minimum for projection |
69
+ |---|---|---|
70
+ | Body text | 16px (1rem) | 20px (1.25rem) |
71
+ | Captions / labels | 14px (0.875rem) | 16px (1rem) |
72
+ | Footnotes | 12px (0.75rem) | Never use on projected slides |
73
+
74
+ ### Line length
75
+
76
+ - Maximum 75 characters per line for body text.
77
+ - Use `max-w-3xl` (48rem) to constrain text blocks.
78
+ - Narrower is better for readability from distance.
79
+
80
+ ### Font weight
81
+
82
+ - Body text: 400 (regular) minimum. Never use 300 (light) for body text below 24px.
83
+ - Headings: 600-800. The weight contrast between heading and body aids scannability.
84
+
85
+ ## Motion and animation
86
+
87
+ ### prefers-reduced-motion
88
+
89
+ Some users experience vertigo, nausea, or seizures from animation. Respect the OS-level motion preference:
90
+
91
+ ```css
92
+ @media (prefers-reduced-motion: reduce) {
93
+ [data-step] {
94
+ transition: none !important;
95
+ animation: none !important;
96
+ }
97
+
98
+ [data-step].step-visible {
99
+ visibility: visible !important;
100
+ opacity: 1 !important;
101
+ transform: none !important;
102
+ }
103
+ }
104
+ ```
105
+
106
+ Add this to `globals.css` in every deck. It disables all step animations while preserving content visibility.
107
+
108
+ ### Animation safety rules
109
+
110
+ - No animation faster than 100ms (appears as a flash).
111
+ - No animation slower than 800ms for presenter-controlled steps (breaks pacing).
112
+ - No infinite loops on visible content.
113
+ - No more than 3 elements animating simultaneously.
114
+ - No flashing content (3 flashes per second is the WCAG seizure threshold).
115
+
116
+ ## Screen reader support
117
+
118
+ ### Slide structure
119
+
120
+ - Each slide is a `<section>` with `data-slide`. Add `role="region"` and `aria-label` for screen reader navigation:
121
+
122
+ ```tsx
123
+ <section data-slide="" role="region" aria-label="Quarterly revenue">
124
+ ```
125
+
126
+ - Use semantic heading hierarchy: one `<h1>` for the deck title (on the title slide), `<h2>` for slide titles, `<h3>` for sub-sections.
127
+
128
+ ### Speaker notes as descriptions
129
+
130
+ Speaker notes contain the verbal explanation of each slide. Make them available to screen readers:
131
+
132
+ ```tsx
133
+ <section data-slide="" role="region" aria-label="Revenue chart"
134
+ aria-describedby={`notes-${slideIndex}`}>
135
+ {/* Slide content */}
136
+ <div data-notes="" id={`notes-${slideIndex}`}>
137
+ Revenue grew 142% year over year, driven by enterprise contracts in Q3 and Q4.
138
+ </div>
139
+ </section>
140
+ ```
141
+
142
+ The `data-notes` elements are visually hidden but remain in the DOM for screen readers.
143
+
144
+ ### Images
145
+
146
+ Every `<img>` must have an `alt` attribute:
147
+
148
+ - **Decorative images** (backgrounds, textures): `alt=""`
149
+ - **Content images** (screenshots, photos of people): Descriptive alt text
150
+ - **Charts rendered as images**: Alt text should describe the key insight, not the raw data. "Bar chart showing revenue growing from $1.1M to $4.2M over five quarters" not "Bar chart with five bars."
151
+
152
+ ### Charts
153
+
154
+ Recharts renders SVG which is not screen-reader friendly. Add a visually hidden data table as an alternative:
155
+
156
+ ```tsx
157
+ <div data-step="" className="step-fade">
158
+ <div className="card-surface p-8">
159
+ <ResponsiveContainer width="100%" height={400}>
160
+ <BarChart data={data}>{/* ... */}</BarChart>
161
+ </ResponsiveContainer>
162
+ </div>
163
+ {/* Screen reader alternative */}
164
+ <table className="sr-only">
165
+ <caption>Quarterly ARR in millions</caption>
166
+ <thead><tr><th>Quarter</th><th>ARR</th></tr></thead>
167
+ <tbody>
168
+ {data.map((d) => (
169
+ <tr key={d.quarter}><td>{d.quarter}</td><td>${d.arr}M</td></tr>
170
+ ))}
171
+ </tbody>
172
+ </table>
173
+ </div>
174
+ ```
175
+
176
+ Add this utility class to `globals.css`:
177
+
178
+ ```css
179
+ .sr-only {
180
+ position: absolute;
181
+ width: 1px;
182
+ height: 1px;
183
+ padding: 0;
184
+ margin: -1px;
185
+ overflow: hidden;
186
+ clip: rect(0, 0, 0, 0);
187
+ white-space: nowrap;
188
+ border: 0;
189
+ }
190
+ ```
191
+
192
+ ## Keyboard navigation
193
+
194
+ The runtime already handles keyboard navigation (arrow keys, space, P, L, F, Escape). Additional accessibility requirements:
195
+
196
+ - All interactive elements (Light Table cards, controls menu) must be focusable with Tab.
197
+ - Focus must be visible (minimum 2px outline in accent color).
198
+ - Focus order must follow visual order (left-to-right, top-to-bottom).
199
+
200
+ ```css
201
+ :focus-visible {
202
+ outline: 2px solid var(--color-accent);
203
+ outline-offset: 2px;
204
+ }
205
+ ```
206
+
207
+ ## Language declaration
208
+
209
+ Set the `lang` attribute on `<html>`. This enables screen readers to use correct pronunciation:
210
+
211
+ ```tsx
212
+ <html lang="en">
213
+ ```
214
+
215
+ For multilingual decks, use `lang` on individual elements:
216
+
217
+ ```tsx
218
+ <p lang="fr">Bonjour le monde</p>
219
+ ```
220
+
221
+ ## Checklist
222
+
223
+ Before presenting, verify:
224
+
225
+ - [ ] All text meets contrast requirements (4.5:1 normal, 3:1 large)
226
+ - [ ] Accent color meets 3:1 against background
227
+ - [ ] No text below 16px on screen (20px for projection)
228
+ - [ ] `prefers-reduced-motion` media query added to `globals.css`
229
+ - [ ] All `<img>` tags have `alt` attributes
230
+ - [ ] Slide `<section>` elements have `aria-label`
231
+ - [ ] Charts have hidden data table alternatives
232
+ - [ ] Focus styles are visible on all interactive elements
233
+ - [ ] `lang` attribute set on `<html>`
234
+ - [ ] No content relies solely on color to convey meaning
235
+ - [ ] No flashing content (3+ flashes per second)
236
+ - [ ] Heading hierarchy is sequential (h1 > h2 > h3)