Search
Build a Decentralized Web Chat in 15 Minutes
25.3.2019
In this 15 minute tutorial we’re going to build a simple decentralized chat application which runs entirely in a web browser. All you will need is a text editor, a web browser, and a basic knowledge of how to save HTML files and open them in the browser. We’re going...
Set Commit Author with git or hg
24.3.2019
Knowing who authored a code patch is a sacred and important practice in the world of software engineering. Knowing the author gives the reviewer an idea of trust level, know who to ask questions about the patch, and gives credit to the genius of an important fix. There have been times when...
Advanced Tooling for Web Components
22.3.2019
Over the course of the last four articles in this five-part series, we’ve taken a broad look at the technologies that make up the Web Components standards. First, we looked at how to create HTML templates that could be consumed at a later time. Second, we dove into creating our own custom element....
Using <details> for Menus and Dialogs is an Interesting Idea
21.3.2019
One of the most empowering things you can learn as a new front-end developer who is starting to learn JavaScript is to change classes. If you can change classes, you can use your CSS skills to control a lot on a page. Toggle a class to one thing, style it this way, toggle to another class...
Encapsulating Style and Structure with Shadow DOM
21.3.2019
This is part four of a five-part series discussing the Web Components specifications. In part one, we took a 10,000-foot view of the specifications and what they do. In part two, we set out to build a custom modal dialog and created the HTML template for what would evolve into our very own custom...
Creating a Custom Element from Scratch
20.3.2019
In the last article, we got our hands dirty with Web Components by creating an HTML template that is in the document but not rendered until we need it.
Next up, we’re going to continue our quest to create a custom element version of the dialog component below which currently only uses...
Adding Search to Your Site with JavaScript
20.3.2019
Static website generators like Gatsby and Jekyll are popular because they allow the creation of complex, templated pages that can be hosted anywhere. But the awesome simplicity of website generators is also limiting. Search is particularly hard. How do you allow users to search when you have...
I Don’t Hate Arrow Functions
19.3.2019
TL;DR Arrow functions are fine for certain usages, but they have so many variations that they need to be carefully controlled to not break down the readability of the code. While arrow functions clearly have a ubiquitous community consensus (though not unanimous support!), it turns...
Write Your First Service Worker in 5 Minutes
18.3.2019
What is a service worker? A service worker is a little file that will allow you to cache files and other assets on a user’s machine. How is this different from server-side caching? Because the assets are stored on a user’s machine, rather than a server, there is no need to go across...
Web Standards Meet User-Land: Using CSS-in-JS to Style Custom Elements
15.3.2019
The popularity of CSS-in-JS has mostly come from the React community, and indeed many CSS-in-JS libraries are React-specific. However, Emotion, the most popular library in terms of npm downloads, is framework agnostic.
Using the shadow DOM is common when creating custom elements, but there’s...
How to Set Commit Author
13.3.2019
I’ve worn dozens of hats on a dozen different teams during my time at Mozilla, but none has been as rewarding and challenging as community management. Whether it’s mentoring students, welcoming new contributors, or reviewing pull requests, there’s always so much to be done....
Styling Based on Scroll Position
7.3.2019
Rik Schennink documents a system for being able to write CSS selectors that style a page when it has scrolled to a certain point. If you're like me, you're already on the lookout for document.addEventListener('scroll' ... and being terrified about performance. Rik gets to that right away by both...
Do CSS Custom Properties Beat Sass Loops?
2.3.2019
I reckon that a lot of our uses of Sass maps can be replaced with CSS Custom properties – but hear me out for a sec.
When designing components we often need to use the same structure of a component but change its background or text color based on a theme. For example, in an alert, we might need...
Get File MIME Type from Command Line
28.2.2019
I’ve gotten skilled at shell scripting over the years. I love a good GUI but knowing how to automate makes you a much more powerful engineer. Much of my scripting requires recursing over directories and processing a file if it meets a given criteria, which is often file extension or MIME...
WorldWideWeb
27.2.2019
For the 30th anniversary of the web, CERN brought nine web nerds together to recreate the very first web browser — Or a working replication of it anyway, as you use it from your web browser, inception style.
Well done, Mark Boulton, John Allsopp, Kimberly Blessing, Jeremy Keith, Remy Sharp...
Control Icons with Font Size
27.2.2019
Here’s a nifty trick from Andy Bell that now seems a little obvious in hindsight: if you set an SVG to have a width and height of 1em then you can change the size of it with the font-size property.
Try and change the font-size on the body element below to see the icon scale with the text:
...
List USB Devices from Command Line
27.2.2019
I was recently creating a Recalbox with my 5 year old son and it was an awesome experience; I saw the excitement and curiosity in his eyes while helping him put together a video game machine. We added NES, SNES, and Nintendo 64 games to the device but it became apparent that the N64 controller...
What We Want from Grid
27.2.2019
We felt spoiled with CSS grid for a minute there. It arrived hot and fast in all the major browsers all at once. Now that we're seeing a lot more usage, we're seeing people want more from grid.
Michelle Barker lists hers wants (and I'll put my commentary after):
Styling row and column gaps. I've...
JavaScript Proxy
26.2.2019
I’ve always loved the flexibility of Objects and prototypes in JavaScript, but for a long time, I felt that a level of dynamism was lacking. JavaScript eventually added get and set methods for object properties, which was an awesome step, but there was still room for improvement....
Chris Coyier’s Favorite CodePen Demos IV
25.2.2019
Did you know you can triple-heart things on CodePen? We’ve had that little not-so-hidden feature forever. You can click that little heart button on any Pen (or Project, Collection, or Post) on CodePen to show the creator a little love, but you can click it again and again to heart it just that...