A Million Little Secrets The article describes the creation of a highly detailed landing page for the author's upcoming course, "Whimsical Animations," which contains over 14,000 lines of code and 200 files. A key feature is the "Chaos Toolbar," which allows users to manipulate page elements using tools like a grabber and bomb, with animated SVG icons. The post explains how to animate Lucide icon SVGs by grouping specific paths and applying CSS transforms to bring the UI to life. Introduction For the past few months, I’ve been hard at work on my upcoming third course, Whimsical Animations. For each course, I create a custom landing page, and for a course about I knew the landing page needed to be very extra . It took longer than I’d care to admit, but the course’s landing page opens in new tab https://whimsy.joshwcomeau.com/ is now live. 😄 At first glance, it looks pretty straightforward, even minimal… but there’s a lot going on under the surface. This landing page contains 14,000+ lines of code and 200+ files In today’s blog post, I want to dig into some of the more interesting details and share how I built them. It won’t be a full-blown tutorial, but my goal is to give you a few solid techniques you can start using right away in your own work. ✨ Link to this heading some-quick-context-1 Some quick context If you’re familiar with my work, you know I love including whimsical lil’ details. Every week, I get questions around how I built a particular animation or interaction. Whimsical Animations is my attempt to bottle up all of that knowledge and experience into a comprehensive interactive online course. You’ll learn the set of core techniques I use to design and create all sorts of different effects. It covers some of the most popular animations and interactions from this blog and my other projects, but my goal is much more broad than that. I want to give you the tools you can use to come up with your own unique effects. You’ll learn how to build animations and interactions using vanilla web technologies: CSS, JavaScript, SVG, and 2D Canvas. There will also be some extra content focused on React integration which should translate reasonably well to other JS frameworks . The bulk of the course focuses on implementation, but we’ll cover the design process as well. After more than 18 months of work, registration is finally open You can learn more and sign up here: Link to this heading chaos-toolbar-2 Chaos toolbar The main thing that makes this page interesting is the “Chaos Toolbar”, a set of buttons in the top-right that allow the user to manipulate the page. For example, the grabber tool lets you pluck and throw individual elements: There’s also the bomb tool, which does exactly what you’d expect: Each tool has an icon, and each icon has unique animations. Let’s enlarge these icons so that we can examine these animations more closely. Hover or focusTap each icon to see it in action: Most of these icons come from Lucide Icons opens in new tab https://lucide.dev/icons/ , my favourite icon pack. The only exception is the bomb, which I created myself in Figma. These icons are nice as-is, but in my opinion, it’s the animations that really bring them to life, adding so much character to our UI. Let’s talk about how we can add these sorts of animations. Lucide icons are distributed as SVGs. If you open one of these suckers up in your IDE, you’ll see something like this: php < -- /user/Downloads/eraser.svg --