Search
designMode
1.10.2019
Every once in a while I stumble upon an API or browser setting that I can’t believe ever existed. Such examples can be seen in the numerous String.prototype properties such as bold, italics, and even blink, which wrap given string text in their representative HTML tags. Bizarre. It...
Filtering Data Client-Side: Comparing CSS, jQuery, and React
24.9.2019
Say you have a list of 100 names:
<ul>
<li>Randy Hilpert</li>
<li>Peggie Jacobi</li>
<li>Ethelyn Nolan Sr.</li>
<!-- and then some -->
</ul>
...or file names, or phone numbers, or whatever. And you want to filter them...
Random Notes from a JAMstack Roundtable
23.9.2019
I hosted a JAMstack roundtable discussion at Web Unleashed this past weekend. Just a few random notes from that experience.
I was surprised at first that there really is confusion that the "M" in Jamstack stands for "Markdown" (the language that compiles to HTML) rather than "Markup" (the "M"...
Some HTML is “Optional”
11.9.2019
There is a variety of HTML that you can just leave out of the source HTML and it's still valid markup.
Doesn't this look weird?
<p>Paragraph one.
<p>Paragraph two.
<p>Paragraph three.
It does to me, but the closing </p> tags are optional. The browser will detect...
Need to scroll to the top of the page?
2.9.2019
Perhaps the easiest way to offer that to the user is a link that targets an ID on the <html> element. So like...
<html id="top">
<body>
<!-- the entire document -->
<a href="#top">Jump to top of page</a>
...
Let’s Build a JAMstack E-Commerce Store with Netlify Functions
20.8.2019
A lot of people are confused about what JAMstack is. The acronym stands for JavaScript, APIs, and Markup, but truly, JAMstack doesn’t have to include all three. What defines JAMstack is that it’s served without web servers. If you consider the history of computing, this type of abstraction isn’t...
Data URIs
18.8.2019
We’re all familiar with traditional URI protocols like https, http, ftp, and file, but data URIs have become a large part of our online strategy. We can use them to display images, the Mac camera and webcams, and more. But what if we simply want to use a data URI to convey basic data? Typing...
The Simplest Way to Load CSS Asynchronously
30.7.2019
Scott Jehl:
One of the most impactful things we can do to improve page performance and resilience is to load CSS in a way that does not delay page rendering. That’s because by default, browsers will load external CSS synchronously—halting all page rendering while the CSS is downloaded...
Responsive Iframes
25.7.2019
Say you wanted to put the CSS-Tricks website in an <iframe>. You'd do that like this:
<iframe src="https://css-tricks.com"></iframe>
Without any other styling, you'd get a rectangle that is 300x150 pixels in size. That's not even in the User Agent stylesheet, it's just some...
Weekly Platform News: HTML Inspection in Search Console, Global Scope of Scripts, Babel env Adds defaults Query
11.7.2019
In this week's look around the world of web platform news, Google Search Console makes it easier to view crawled markup, we learn that custom properties aren't computing hogs, variables defined at the top-level in JavaScript are global to other page scripts, and Babel env now supports the defaults...
A Little Reminder That Pseudo Elements are Children, Kinda.
8.7.2019
Here's a container with some child elements:
<div class="container">
<div>item</div>
<div>item</div>
<div>item</div>
</div>
If I do:
.container::before {
content: "x"
}
I'm essentially doing:
<div class="container">
...
Restricting a (pseudo) element to its parent’s border-box
2.7.2019
Have you ever wanted to ensure that nothing of a (pseudo) element gets displayed outside its parent's border-box? In case you're having trouble picturing what that looks like, let's say we wanted to get the following result with minimal markup and avoiding brittle CSS.
The desired result.
This...
Grid, content re-ordering and accessibility
13.6.2019
Take this:
<ol>
<li>Get hungry</li>
<li>Order pizza</li>
<li>Eat pizza</li>
</ol>
That HTML ends up in the DOM that way (and thus how it is is exposed to assistive technology), and by default, those list items are also visually...
Detect if Element is a Web Component
5.6.2019
I’ve advocated for web components since before they became a spec, mostly inspired by the Dojo Toolkit’s dijit framework. Empowering first class JavaScript widgets, as opposed to a mess of DIVs and templates, always made the most sense. Now that web components exist, and awesome...
Reducing motion with the picture element
31.5.2019
Here’s a bonafide CSS/HTML trick from Brad Frost and Dave Rupert where they use the <picture> element to switch out a GIF file with an image if the user has reduced motion enabled. This is how Brad goes about implementing that:
<picture>
<!-- This image will be loaded if...
The Browser Can Remember Edited Content
22.5.2019
You can make the text inside any HTML element editable by adding the contenteditable attribute.
<div contenteditable>
Hey, I'm like a textarea kinda now!
</div>
I wouldn't say there are wheelbarrows full of use-cases for that, but it's neat. One possible use might be...
Footnotes That Work in RSS Readers
17.5.2019
Feedbin is the RSS reader I'm using at the moment. I was reading one of Harry's blog posts on it the other day, and I noticed a nice little interactive touch right inside Feedbin. There was a button-looking element with the number one which, as it turned out, was a footnote. I hovered over it,...
10 React Challenges (Beginner): Display Simple Data with JSX
10.5.2019
One of the building blocks of React is the ability to use HTML elements when developing components.
JSX allows us to write simple markup in HT
10 Days of React Challenges (Beginner): Display Simple Data with JSX
10.5.2019
One of the building blocks of React is the ability to use HTML elements when developing components.
JSX allows us to write simple markup in HT
Naming things to improve accessibility
2.5.2019
I like the this wrap-up statement from Hidde de Vries:
In modern browsers, our markup becomes an accessibility tree that ultimately informs what our interface looks like to assistive technologies. It doesn’t matter as much whether you’ve written this markup:
in a .html file
in Twig, Handlebars...