Search
An Interactive Guide to CSS Transitions
26.2.2021
A wonderful post by Josh that both introduces CSS transitions and covers the nuances for using them effectively. I like the advice about transitioning the position of an element, leaving the original space it occupied alone so it doesn’t result …
The post An Interactive Guide to...
Clipping Scrollable Areas On The inline-start Side
19.2.2021
On a default left-to-right web page, “hanging” an element off the right side of the page (e.g. position: absolute; right: -100px;) triggers a horizontal scrollbar that scrolls as far as needed to make that whole element visible. But if …
The post Clipping Scrollable Areas On...
Let’s Create a Custom Audio Player
18.2.2021
HTML has a built-in native audio player interface that we get simply using the <audio> element. Point it to a sound file and that’s all there is to it. We even get to specify multiple files for better browser support, …
The post Let’s Create a Custom Audio Player appeared first...
Beautiful accessibility with Floating Focus
15.2.2021
Imagine if your :focus styles animated from element to element as you tab through a site. Like the focus ring up and flew across the page to the next element. The spirit of it is similar to smooth scrolling: it’s …
The post Beautiful accessibility with Floating Focus appeared first...
Simple CSS Line Hover Animations for Links
10.2.2021
A couple of simple & subtle CSS-based line hover animations for links.
The post Simple CSS Line Hover Animations for Links appeared first on Codrops
Dynamically Switching From One HTML Element to Another in Vue
2.2.2021
A friend once contacted me asking if I had a way to dynamically change one HTML element into another within Vue’s template block. For instance, shifting a <div> element to a <span> element based on some criteria. The trick was …
The post Dynamically Switching From One HTML...
Styling Web Components
29.1.2021
Nolan Lawson has a little emoji-picker-element that is awfully handy and incredibly easy to use. But considering you’d probably be using it within your own app, it should be style-able so it can incorporated nicely anywhere. How to allow …
The post Styling Web Components appeared first...
3 Approaches to Integrate React with Custom Elements
15.1.2021
In my role as a web developer who sits at the intersection of design and code, I am drawn to Web Components because of their portability. It makes sense: custom elements are fully-functional HTML elements that work in all modern …
The post 3 Approaches to Integrate React with Custom Elements...
Proper Tabbing to Interactive Elements in Firefox on macOS
15.1.2021
I just had to debug an issue with focusable elements in Firefox. Someone reported to me that when tabbing to a certain element within a CodePen embed, it shot the scroll position to the top of the page (WTF?!). So, …
The post Proper Tabbing to Interactive Elements in Firefox on macOS...
Two Issues Styling the Details Element and How to Solve Them
13.1.2021
In the not-too-distant past, even basic accordion-like interactions required JavaScript event listeners or some CSS… trickery. And, depending on the solution used, editing the underlying HTML could get complicated.
Now, the <details> and <summary> elements (which combine to form...
Careful When Changing the Display of `summary`
12.1.2021
I got a very helpful bug report the other day (thanks Kilian!) about the <details> element in a blog post of mine not showing the default ▶ icon, and thus looking rather like any ol’ random <p>.
It …
The post Careful When Changing the Display of `summary`...
Styling Code In and Out of Blocks
6.1.2021
There is a <code> tag in HTML. I literally just used it to wrap that tag in the previous sentence — so meta. It is an inline-by-default element that denotes any sort of code. It has default (user agent) styles …
The post Styling Code In and Out of Blocks appeared first...
clipPath vs. mask
27.12.2020
These things are so similar, I find it hard to keep them straight. This is a nice little explanation from viewBox (what a cool name and URL, I hope they keep it up).
The big thing is that clipPath (the element in SVG, as well as clip-path in CSS) is vector and when it is applied, whatever you...
A Utility Class for Covering Elements
26.12.2020
Big ol’ same to Michelle Barker here:
Here’s something I find myself needing to do again and again in CSS: completely covering one element with another. It’s the same CSS every time: the first element (the one that needs to be covered) has position: relative applied to it....
React.isValidElement
14.12.2020
Knowing what input type you’ve received is hugely important in JavaScript, which is a big reason for Flow and TypeScript’s rise. One such case where it’s useful to know what an object represents is if the input is a string or a React element. To detect if an object is a React...
How to Get Sticky and Full-Bleed Elements to Play Well Together
4.12.2020
I had a unique requirement the other day: to build a layout with full-bleed elements while one element stays stuck to the top. This ended up being rather tricky to pull off so I’m documenting it here in case anyone needs to re-create this same effect. Part of the trickiness was dealing with logical...
How to Add Text in Borders Using Basic HTML Elements
1.12.2020
Some HTML elements come with preset designs, like the inconveniently small squares of <input type="checkbox"> elements, the limited-color bars of <meter> elements, and the “something about them bothers me” arrows of the <details> elements. We can style them to match...
How You Might Build a Modern Day Webring
20.11.2020
I’m sure different people picture different things when they think about webrings, so let me clarify what I picture. I see an element on a website that:
Signifies this site is part of a webring
Allows you to move to the next or previous site of the webring
Maybe has other functionality like...
grid-auto-flow : CSS Grid :: flex-direction : Flexbox
19.11.2020
When setting a parent element to display: flex, its child elements align left-to-right like this:
CodePen Embed Fallback
Now, one of the neat things we can do with flexbox is change the direction so that child elements are stacked vertically on top of each other in a column. We can do that with...
Understanding flex-grow, flex-shrink, and flex-basis
11.11.2020
When you apply a CSS property to an element, there’s lots of things going on under the hood. For example, let’s say we have some HTML like this:
<div class="parent"<div class="child"Child</div<div class="child"Child</div<div class="child"Child</div</div
And...