Latest Lessons — Page 1
Browse our latest lessons below. Most of our lessons can be viewed in both written and screencast format.

Adding Conditional Icon, Headline, and Message Content
In this lesson, we'll make our alert's icon, headline, and message completely optional. We'll also allow our icon to be provided via slot and our headline and message via prop or slot.

Adding Alert Variants
In this lesson, we'll focus on adding a light, dark, blue, green, red, and yellow variant option to our base alert.

Creating Our Base Alert
In this lesson, we'll create our base alert to serve as our building block for our content, variant, and style options. We'll also fix a pseudo-selector issue.

Intro to the Query Builder & It's Where Statements
In this lesson, we'll introduce the query builder. We'll spend most of our time looking at its various where statement options and how we can use them to build queries.

Adding Button Inverse and Outline Styles
In this lesson, we'll add two new button style options, inverse and outline. Both styles will extend off the work we did with our base button to keep all functionality in one concise location

Adding Button Variants
In this lesson, we'll add variant options for our base button. These will provide light and dark options as well as stateful coloring blue, green, red, and yellow.

Adding Button Size Options
In this lesson, we'll add four size options to our base button large, base, small, and extra small. These sizes will then automatically be available as we add our button variants and styles.

Adding Interactivity to our Button
In this lesson, we'll add extendable interactivity to our button using AlpineJS. We'll also walk through a demonstration of how we can utilize event propagation in AlpineJS to our advantage.

Creating Our Base Button
In this lesson, we'll create our base button component which al our other button styles will derive from. It'll be in charge of building our classes, adding interactivity, and more.

Main Slot, Named Slots, and Slot Scopes
In this lesson, we'll learn all about the main slot, how to define and use named slots, as well as passing state information from within our components to our slots using slot scopes.

Serializing Props as Element Attributes
In this lesson, we'll learn about EdgeJS' serialize only and serialize except utility methods, which allow us to directly serialize key-value pairs from our props as element attributes within our components.

How To Get City and State Info from User’s IP Address using IP2Location
In this lesson, we'll learn how to get our user's city, region, and country location information using their IP address.