Search
2019 CSS Wishlist
17.1.2019
What do you wish CSS could do natively that it can't do now? First, let's review the last time we did this in 2013.
❌ "I'd like to be able to select an element based on if it contains another particular selector"
❌ "I'd like to be able to select an element based on the content...
How I Built a GPS-Powered Weather Clock With My Old iPhone 4
17.1.2019
My first smartphone was an iPhone 4s. I remember the excitement of exploring its capabilities at a time when it was the coolest thing around. Eventually, of course, I replaced it with a newer model and the old iPhone, still in mint condition, gathered dust for two years. What a waste!
But was...
In Defense of Utility-First CSS
15.1.2019
A rather full-throated argument (or rather, response to arguments against) utility (atomic) CSS from Sarah Dayan. I wondered recently if redesigns were potentially a weakness of these types of systems (an awful lot of tearing down classes) which Sarah acknowledges and recommends more abstraction...
Design v17
14.1.2019
We rolled out a new site design on January 1! This is the 17th version of CSS-Tricks if you can believe that. The versions tend to evolve a decent amount beyond the initial launch, but we archive screenshots on this design history page. Like I said in our 2018 thank you post:
This is easily...
Colorized Brackets for IDE
13.1.2019
Coders treat their text editors and IDE’s like fragile beings, and for good reason: we spend a ton of time in them and having our tweaks and extensions can make us incredibly productive for our personal workflows. I always love hearing about what extensions and workflows other developers...
Building Responsive WordPress Forms
10.1.2019
(This is a sponsored post.)
Within the arsenal of every WordPress developer exists a toolbox of plugins used to implement key features on a website. Forms, up until now, have been a point of contention for most developers, given that no form plugins have offered seamless integration with existing...
Building Responsive WordPress Forms
10.1.2019
Within the arsenal of every WordPress developer exists a toolbox of plugins used to implement key features on a website. Forms, up until now, have been a point of contention for most developers, given that no form plugins have offered seamless integration with existing website code. Therefore...
Git Checkout at Previous Timeframe
9.1.2019
In the past I’ve blogged about checking out branches created on a specific date as well as sorting git branches by date, but one frequent usage of git and dates is checking out a commit at a given time in the past. For example, I often say “Weird, this feature was working a month...
WordCamp US 2018
4.1.2019
I recently attended and had the chance to speak at WordCamp US 2018 in Nashville. I had a great time. I love conferences that bring people together around a tight theme because it's very likely you'll have something to talk about with every person there. Plus, I rather like WordPress and...
Quicklink
3.1.2019
We're in the future now so, of course, we're working on ways to speed up the web with fancy new tactics above and beyond the typical make-pages-slimmer-and-cached-like-crazy techniques.
One tactic, from years ago, was InstantClick:
Before visitors click on a link, they hover over that link. Between...
Goals for 2019
31.12.2018
Every turn of the year is a new opportunity to start over, set goals, and renew optimism that time can heal wounds and drive us to change and achieve. I did really well with my 2018 goals: I started a fun podcast with TrackJS’ Todd Gardener I found my passion again by joining Mozilla’s...
How to Send an iMessage From Command Line
30.12.2018
As somewhat of a recluse, believe me when I say that text messages, instant messenger, and iMessage have relieved me of loads of anxiety and wasted time with short, meaningless voice chat. It’s been a decade since these communication types have become popular so we’ve moved on from...
Force Download with JavaScript
24.12.2018
Force download scripts have been an important part of internet usability for a long time.  I can attest to that by the number of times I’ve implemented this feature on the server side and the popularity of my PHP Force Download post, even to this day.  With the web world having...
Regarding CSS’s Global Scope
20.12.2018
html {
font-family: Roboto, sans-serif;
}
With the except of some form elements, you've just set a font on every bit of text on a site! Nice! That's probably what you were trying to do, because of the probably hundreds of elements all over your site, setting that font-family every time would...
Annotated Build Processes
14.12.2018
When you're putting together a build process for a site, it's so dang useful to look at other people's processes. I ran across Andrew Welch's "An Annotated webpack 4 Config for Frontend Web Development" the other day and was glad he blogged it. If I was kicking off a new site where I wanted...
Making SVG icon libraries for React apps
14.12.2018
Nicolas Gallagher:
At Twitter I used the approach described here to publish the company’s SVG icon library in several different formats: optimized SVGs, plain JavaScript modules, React DOM components, and React Native components.
There is no One True Way© to make an SVG icon system. The only...
Level up your JavaScript error monitoring
13.12.2018
(This is a sponsored post.)
Automatically detect and diagnose JavaScript errors impacting your users with Bugsnag. Get comprehensive diagnostic reports, know immediately which errors are worth fixing, and debug in a fraction of the time.
Bugsnag detects every single error and prioritizes errors...
Keep Math in the CSS
12.12.2018
There is a sentiment that leaving math calculations in your CSS is a good idea that I agree with. This is for math that you could calculate at authoring time, but specifically chose not to. For instance, if you needed a 7-column float-based grid (don't ask), it's cleaner and more intuitive:
.col...
JavaScript waitForever
10.12.2018
Writing mochitests for new features in DevTools can be difficult and time-consuming. There are so many elements interacting in an async manner that I oftentimes find myself using the debugger to debug the debugger! In the case where it’s unclear what interaction isn’t working...
An Introduction and Guide to the CSS Object Model (CSSOM)
10.12.2018
If you've been writing JavaScript for some time now, it's almost certain you've written some scripts dealing with the Document Object Model (DOM). DOM scripting takes advantage of the fact that a web page opens up a set of APIs (or interfaces) so you can manipulate and otherwise deal with elements...