Reusable pieces for slides and static web content in the style of the “learn anything” lightning-lesson slides. Every piece is plain HTML, CSS or SVG.
Add sketchbook.css and sketchbook.js to a page, then paste in any chunk. Drop the icons and characters in as images anywhere.
<div class="sk-slide sk-paper"><div class="sk-slide-body">
<h1 class="sk-title" style="font-size:2.7em"><span class="sk-burst"><span class="sk-hl">How to get the agent</span><br><span class="sk-hl">to teach you anything</span></span></h1>
<h2 class="sk-section" style="font-size:1.7em;margin:.4em 0 .5em">The learning loop</h2>
<div class="sk-row" style="font-size:.78em">
<div class="sk-panel sk-mustard">
<div class="sk-step"><span class="sk-num">1</span><span class="sk-label">Add sources</span></div>
<img src="icons/books.svg" alt="">
<p>books, manuals, transcripts, code</p>
</div>
<svg class="sk-arrow" viewBox="0 0 40 20" aria-hidden="true"><line x1="4" y1="10" x2="30" y2="10" stroke-width="4" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-line)"/></svg>
<div class="sk-panel sk-teal">
<div class="sk-step"><span class="sk-num">2</span><span class="sk-label">Filter + focus</span></div>
<img src="icons/magnifier.svg" alt="">
<p>use a lens: <span class="sk-em">“what do I care about?”</span></p>
</div>
<svg class="sk-arrow" viewBox="0 0 40 20" aria-hidden="true"><line x1="4" y1="10" x2="30" y2="10" stroke-width="4" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-line)"/></svg>
<div class="sk-panel sk-forest sk-dashed">
<div class="sk-step"><span class="sk-num">3</span><span class="sk-label">Create new source</span></div>
<img src="icons/page-pencil.svg" alt="">
<p>pull out just the parts that matter</p>
</div>
<svg class="sk-arrow" viewBox="0 0 40 20" aria-hidden="true"><line x1="4" y1="10" x2="30" y2="10" stroke-width="4" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-line)"/></svg>
<div class="sk-panel sk-coral">
<div class="sk-step"><span class="sk-num">4</span><span class="sk-label">Create a projection</span></div>
<img src="icons/headphones.svg" alt="">
<p>audio summary, infographic, quiz</p>
</div>
<svg class="sk-arrow" viewBox="0 0 40 20" aria-hidden="true"><line x1="4" y1="10" x2="30" y2="10" stroke-width="4" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-line)"/></svg>
<div class="sk-panel sk-blue">
<div class="sk-step"><span class="sk-num">5</span><span class="sk-label">Validate + iterate</span></div>
<img src="icons/checklist.svg" alt="">
<p>teach back, quiz me, spaced repetition</p>
</div>
</div>
<div style="margin:0 7% 0 7%"><svg class="sk-loop" viewBox="0 0 1000 70" aria-hidden="true"><path d="M960 6 C 950 50, 820 54, 500 54 C 180 54, 50 50, 40 8" fill="none" stroke-width="5" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-soft)"/></svg></div>
<div style="display:flex;align-items:center;justify-content:center;gap:1.5em;margin-top:-.6em">
<div class="sk-ribbon" style="font-size:1.3em"><img src="icons/car.svg" alt=""><span class="sk-kicker">Insight:</span> “I want to learn a book while driving.”</div>
<img src="characters/learner.svg" alt="" style="height:6.2em;margin-top:.6em">
</div>
</div></div>Big marker caps on a yellow highlighter swash. Wrap each line's words in .sk-hl; add .sk-burst for the tick marks.
<h1 class="sk-title"><span class="sk-burst"><span class="sk-hl">How to get the agent</span><br><span class="sk-hl">to teach you anything</span></span></h1>Label caps in deep teal with a rule either side.
<h2 class="sk-section">The learning loop</h2>A numbered step in one of the five main colours. Add .sk-dashed for a dotted outline, to highlight the step you're talking about. Use .sk-em for accent text.
use a lens: “what do I care about?”
pull out just the parts that matter
<div class="sk-row">
<div class="sk-panel sk-teal">
<div class="sk-step"><span class="sk-num">2</span><span class="sk-label">Filter + focus</span></div>
<img src="icons/magnifier.svg" alt="">
<p>use a lens: <span class="sk-em">“what do I care about?”</span></p>
</div>
<div class="sk-panel sk-forest sk-dashed">
<div class="sk-step"><span class="sk-num">3</span><span class="sk-label">Create new source</span></div>
<img src="icons/page-pencil.svg" alt="">
<p>pull out just the parts that matter</p>
</div>
</div>Something a person says or asks. Add .sk-tail-right to move the tail to the right.
<div class="sk-bubble">“I want to learn <span class="sk-em">Chapter 1 of Shape Up</span>, while I’m driving.”</div>An insight or takeaway. The kicker word goes in .sk-kicker, and an icon is optional.
<div class="sk-ribbon"><img src="icons/car.svg" alt=""><span class="sk-kicker">Insight:</span> “I want to learn a book while driving.”</div>A short slate connector between steps, and the blue loop-back arrow that sits under a row of panels. Their colours come from the CSS.
<svg class="sk-arrow" viewBox="0 0 40 20" aria-hidden="true"><line x1="4" y1="10" x2="30" y2="10" stroke-width="4" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-line)"/></svg>
<svg class="sk-loop" viewBox="0 0 1000 70" aria-hidden="true"><path d="M960 6 C 950 50, 820 54, 500 54 C 180 54, 50 50, 40 8" fill="none" stroke-width="5" stroke-linecap="round" marker-end="url(#sk-head)" filter="url(#sk-wobble-soft)"/></svg>Add .sk-wash to a panel for a pale wash of its accent colour mixed with the page, about 9%. Use it to set a card apart from the page.
books, manuals, transcripts, code
use a lens: “what do I care about?”
<div class="sk-row">
<div class="sk-panel sk-mustard sk-wash">
<div class="sk-step"><span class="sk-num">1</span><span class="sk-label">Add sources</span></div>
<img src="icons/books.svg" alt="">
<p>books, manuals, transcripts, code</p>
</div>
<div class="sk-panel sk-teal sk-wash">
<div class="sk-step"><span class="sk-num">2</span><span class="sk-label">Filter + focus</span></div>
<img src="icons/magnifier.svg" alt="">
<p>use a lens: <span class="sk-em">“what do I care about?”</span></p>
</div>
</div>.sk-hl works outside a title too: on a phrase, or on a whole row to mark the one you're on. Add .sk-sweep to sweep it in once, for a moment worth marking; it stays still for people who ask for less motion.
Next is the lesson leads your coach thread.
<p style="font-size:1.4em;margin:0 0 .6em">Next is <span class="sk-hl">the lesson leads your coach thread</span>.</p>
<div style="font-size:1.4em">
<div>The course outline shows where you are</div>
<div class="sk-hl sk-sweep">You can ask your coach anything</div>
<div>A side question goes in a side chat</div>
</div>A hand-drawn tick for something done or passing. It takes the size of the text around it, and the forest text colour; set color to change it. Give it a label when it stands alone.
Three Examples hold.
<p style="font-size:1.4em;margin:0"><span class="sk-tick" role="img" aria-label="done"></span> Three Examples hold.</p>
<p style="font-size:2.6em;margin:0"><span class="sk-tick" role="img" aria-label="passing"></span></p>.sk-btn is the one main action on a screen: deep teal with paper lettering. Add .sk-secondary for the others: an ink outline.
<button class="sk-btn" type="button">Start the course →</button>
<button class="sk-btn sk-secondary" type="button">Use a different project</button>A wobbly bar. Set --sk-value from 0% to 100%; the fill takes the accent, so a colour modifier changes it. Put the count in words next to it.
<div style="display:flex;align-items:center;gap:.8em;font-size:1.3em">
<div class="sk-meter" role="progressbar" aria-label="Examples that hold" aria-valuemin="0" aria-valuemax="10" aria-valuenow="3" style="--sk-value:30%;width:10em"></div>
<span>3 of 10 Examples hold</span>
</div>
<div class="sk-meter sk-mustard" role="progressbar" aria-label="Lessons done" aria-valuemin="0" aria-valuemax="9" aria-valuenow="6" style="--sk-value:66%;width:10em;margin-top:1em"></div>characters/learner.svgcharacters/explainer.svgcharacters/waver.svgcharacters/coffee.svgcharacters/pointer.svgcharacters/cat.svgcharacters/dog.svgcharacters/group.svgOne colour for simple objects; up to three when the object has distinct parts. Always from the palette.
icons/mug.svgicons/kite.svgicons/owl.svgicons/books.svgicons/page-pencil.svgicons/magnifier.svgicons/lightbulb.svgicons/checklist.svgicons/headphones.svgicons/chat.svgicons/puzzle.svgicons/sticky-note.svgicons/compass.svgicons/laptop.svgicons/robot.svgicons/robot-scan.svgicons/robot-report.svgicons/gear.svgicons/sprout.svgicons/car.svgUse these rather than the palette when you build something new.
--sk-font-title--sk-font-label--sk-font-body