Hook

Their other posts in the index, biggest breakout first.
Welcome back coders! Day 23 is going to be a fun one. We're creating a sleek slide-in side panel. Today we're building something really cool. A beautiful panel that smoothly appears off the screen. It's perfect for quick settings, theme controls, or even a hidden menu that keeps your design clean and minimal. The best part? All using only HTML and CSS. No JavaScript needed. Right in and start building our sleek and interactive side panel. Now let's create the panel itself. We'll wrap everything and a side tag that's perfect for content that sits alongside the main page, like menus or settings. I'll give it a class called side panel, which we'll use later to style and animate it. It more accessible. We'll also include role equals dialog and ariomodal equals truth. Next, we'll start adding some quick setting options inside our panel. The first one is a simple dark mode toggle. I'm using a users can easily theme on or off. Below that, we'll create another setting for font size. This one uses a select drop down, giving the user a few size options to choose from small, medium, or large. These kinds of panel feel more interactive and customizable. Now let's style a few more setting options to feel complete. First, we'll include an accent color picker, which lets users choose their favorite highlight color. Animations toggle, perfect for turning motion effects on or off. And finally, a notification switch. This one represents alerts or updates within your site. These details make your settings panel look more dynamic and realistic. Even with just HTML and CSS, adding a section like this gives a professional touch to your design. This section defines CSS variables inside the colon root selector, which acts like a global place to store colors for our entire project. Next, we style the body with zero margin to remove default spacing. We're using the Poppins font for a clean, modern look and adding a smooth vertical gradient from deep navy to dark blue. Creates contrast, of padding gives the layout room to breathe. The panel toggle checkbox is hidden. It's just used to close the panel. Now let's style our open and close panel buttons. We're giving it a beautiful diagonal gradient background that blends turquoise a fresh, modern feel. The text color is deep navy so it contrasts nicely against the bright background. And finally, we use our accent gradient as the border image source, which gives the button a subtle glowing edge that ties in perfectly with the overall theme. Now let's move on to styling our side panel, the main section that slides in from the right. We'll start by setting its position to fixed, so it stays users scroll the page. The panel is initially placed off screen by setting right to negative 90%, and when activated it will slide smoothly into view. We align it to the very top, make it full height, and give it a width of 380 pixels, max width. Of 90%, so it still looks great on smaller screens. Will add 28 pixels of padding content nicely spaced and readable. The overflowy property is set to auto, allowing scrolling when the content becomes longer than the panel itself. For the background, we're using a vertical gradient that fades from a deep navy to a slightly lighter shade. The border slice and width make the gradient wraps cleanly around the edges, while a solid border style keeps it sharp and defined. We'll add white text for contrast, a bit of padding to make the buttons easy to click, and slightly rounded corners for a softer look. Setting it as an inline block let it sit neatly under our content, with some margin create space. Here, we're making slide into view when the checkbox is checked. By setting the right position to zero, the panel smoothly moves from off-screen to fully visible, creating that clean slide in animation all without using any JavaScript. Now let's style each setting item. We're adding some vertical spacing with margin and using flexbox to position the labels and inputs side by side. A subtle bottom border helps separate each option, and the little padding gives the layout room to breathe. Now let's style the inputs inside our setting items. We're giving them background to match the panel theme and removing any default borders for a cleaner look. A six pixel border radius keeps the edges smooth, while white text ensures everything is easy to read. Finally, a bit of padding adds breathing room, and setting the cursor to pointer makes them feel interactive. Now, let's style the quick link section inside our panel. We'll remove the default list style along with any padding or margins to keep everything clean and aligned. Each list item gets vertical spacing for separation, the links themselves use our accent color with no underlines. Finally, we add a smooth transition so the hover animation feels natural when hovered. The button fills with our accent color, switches the text to a dark shade for readability, and scales up just a bit, giving it a clean, interactive feel that completes the design. Finally, we'll make the design responsive for smaller screens. We'll slightly reduce the padding and font size of both buttons and make the panel take up 90% of the width, ensuring it looks clean and fits comfortably on mobile devices. And that wraps up day 23. We just built a sleek, fully responsive slide in side panel, all with pure HTML and CSS. You can use this on your own projects for quick settings, menus, or even custom dashboards. If you found this helpful, don't forget to like, subscribe, and stay tuned for day 24. We've got another awesome design coming up!