A collection of thoughts about HTML, CSS, JavaScript, UX, a11y, web standards, and related things. Posts by Cory LaViska.


Converting a URL Object to a Plain Object in JavaScript

Written on

I needed to convert a URL object to a plain object yesterday. You might have used it before. It's pretty handy for working with URLs!

Shoelace 2.0

Written on

It's been three years since I broke ground on Shoelace 2.0. Between then and now, the project has amassed over 300 million monthly hits on jsDelivr and, as of today, it is jsDelivr's 73rd most popular project.

Installing Shoelace in a React App

Written on

Although Shoelace is a web component library, it ships React wrappers that lets you use the library idiomatically in React. This video shows you how to install Shoelace in a brand new Create React App.

Why You Should Prefix Custom Events

Written on

Similar to how every custom element must contain a dash, I like to pretend that every custom event must also contain a dash. This removes all ambiguity between native events and custom events.

Custom Event Names and the Bubbling Problem

Written on

The topic of custom element event names comes up every now and then, especially from Shoelace users who get confused when events of the same name are emitted from different components.

The Future of Shoelace

Written on

It's been more than two years since the beta release of Shoelace 2.0, which was the first version of the project to ship Web Components. What started off as a fun side project has quickly grown to become one of the most recognized Web Component libraries in the world. As of today, Shoelace receives more than 100 million monthly CDN hits on jsDelivr, and that number continues to grow.

A Web Component Story

Written on

Gather 'round, it's story time.

Not Everything Can Be Feature Detected

Written on

In the early days of Web browsers, it was extremely common to see user agent checks in JavaScript. Sometimes, you'd write the same code in two or three different ways to support various browsers. Code such as that shown below allowed webpages to work in browsers like Netscape Navigator and Internet Explorer, who didn't always agree on how features should be implemented.

Buttons and Cursors

Written on

There's a post from 2016 entitled Buttons shouldn't have a hand cursor that's been making its way around social media this week. While the author is correct in his statement that operating system buttons don't have hand cursors, the pattern has become ubiquitous and somewhat expected on the Web.

My Stance on AI-generated Code

Written on

I recently added this to Shoelace's contribution guidelines, which sums up my position on AI-generated code.

Feeds available in Atom & JSON


Explore the archive for additional posts or press / to search.