Building a Tennis Trivia App With Next.js and Netlify

Today we will be learning how to build a tennis trivia app using Next.js and Netlify. This technology stack has become my go-to on many projects. It | Continue reading


@css-tricks.com | 3 years ago

Comparing Google Analytics and Plausible Numbers

I saw this blog post the other day: 58% of Hacker News, Reddit and tech-savvy audiences block Google Analytics. That's an enticing title to me. I've had | Continue reading


@css-tricks.com | 3 years ago

Writing Your Own Code Rules

There comes a time on a project when it's worth investing in tooling to protect the codebase. I'm not sure how to articulate when, but it's somewhere | Continue reading


@css-tricks.com | 3 years ago

CSS in TypeScript with vanilla-extract

vanilla-extract is a new framework-agnostic CSS-in-TypeScript library. It’s a lightweight, robust, and intuitive way to write your styles. vanilla-extract | Continue reading


@css-tricks.com | 3 years ago

A Themeable React Data Grid With Great UX-Focused Features

KendoReact can save you boatloads of time because it offers pre-built componentry you can use in your app right away. They look nice, but more | Continue reading


@css-tricks.com | 3 years ago

Websites We Like: MD Nichrome

Here’s a beautiful website: it’s a type specimen for Mass-Driver’s ever-so-lovely type family MD Nichrome. There’s a ton of nifty animations and graphics | Continue reading


@css-tricks.com | 3 years ago

Considerations for Using Markdown Writing Apps on Static Sites

If you run or have recently switched to a static site generator, you might find yourself writing a lot of Markdown. And the more you write it, the more | Continue reading


@css-tricks.com | 3 years ago

The Options for Password Revealing Inputs

In HTML, there is a very clear input type for dealing with passwords: If you use that, you get the obfuscated bullet-points | Continue reading


@css-tricks.com | 3 years ago

Scroll Shadows With JavaScript

Scroll shadows are when you can see a little inset shadow on elements if (and only if) you can scroll in that direction. It's just good UX. You can | Continue reading


@css-tricks.com | 3 years ago

Branching Strategies in Git

In this article I'm going to talk about branching strategies and different types of Git branches. I’m also going to introduce you to two common branching workflows: Git Flow and GitHub Flow. | Continue reading


@css-tricks.com | 3 years ago

Quickly Testing CSS Fallbacks

Dumb trick alert! Not all browsers support all features. Say you want to write a fallback for browsers that doesn't support CSS Grid. Not very common | Continue reading


@css-tricks.com | 3 years ago

Animation Techniques for Adding and Removing Items From a Stack

Animating elements with CSS can either be quite easy or quite difficult depending on what you are trying to do. Changing the background color of a button | Continue reading


@css-tricks.com | 3 years ago

ShopTalk Goes Video

Dave and I slapped up a little videos section of the ShopTalk website. Twelve so far! They are short-ish, between 10-20 minutes, each focused on one | Continue reading


@css-tricks.com | 3 years ago

Links on React and JavaScript II

How To Use The Vite Build Tool with React — Vite is hot, in part, because it's based on esbuild and wickedly fast. It's from Evan You of Vue fame, but | Continue reading


@css-tricks.com | 3 years ago

Working With Built-in GraphQL Directives

Directives are one of GraphQL’s best — and most unspoken — features. Let's explore working with GraphQL’s built-in schema and operation directives that | Continue reading


@css-tricks.com | 3 years ago

Comparing HTML Preprocessor Features

Of the languages that browsers speak, I'd wager that the very first one that developers decided needed some additional processing was HTML. Every single | Continue reading


@css-tricks.com | 3 years ago

Creating the Perfect Commit in Git

A commit can be something that helps us stay on top of things. It can be a container for related changes that belong to one and only one topic, and thereby make it easier for us to understand what happened. In this post, we’re talking about what it takes to produce the "perfect" … | Continue reading


@css-tricks.com | 3 years ago

Reverse engineering the HTML range input

You may have already seen a bunch of tutorials on how to style the range input. While this is another article on that topic, it's not about how to get any | Continue reading


@css-tricks.com | 3 years ago

Web Streams Everywhere (and Fetch for Node.js)

Chrome developer advocate Jake Archibald called 2016 "the year of web streams." Clearly, his prediction was somewhat premature. The Streams Standard was | Continue reading


@css-tricks.com | 3 years ago

Front-End Dev Shortcuts in iOS 15

I was pretty stoked when Chris shared a way to "View Source" on mobile. Sure, it's not the same as a built-in feature but it allows iOS users like myself | Continue reading


@css-tricks.com | 3 years ago

So many little design helper sites!

Continue reading


@css-tricks.com | 3 years ago

So many little design helper sites!

I had one of those little single-serving designer helper sites bookmarked the other day: getwaves.io. Randomized SVG waves! Lots of cool options! Easy to | Continue reading


@css-tricks.com | 3 years ago

iOS Browser Choice

Just last week I got one of those really?! 🤨 faces when this fact came up in conversation amongst smart and engaged fellow web developers: there | Continue reading


@css-tricks.com | 3 years ago

Tonic (Component Framework)

I enjoy little frameworks like Tonic. It's essentially syntactic sugar over to make them feel easier to use. Define a Class, | Continue reading


@css-tricks.com | 3 years ago

Collecting Email Signups With the Notion API

A lot of people these days are setting up their own newsletters. You’ve got the current big names like Substack and MailChimp, companies like Twitter are | Continue reading


@css-tricks.com | 3 years ago

Systems for z-index

Say you have a z-index bug. Something is being covered up by something else. In my experience, a typical solution is to put position: relative on the | Continue reading


@css-tricks.com | 3 years ago

Comparing Methods for Appending and Inserting With JavaScript

Let's say we want to add something to a webpage after the initial load. JavaScript gives us a variety of tools. Perhaps you've used some of them, like | Continue reading


@css-tricks.com | 3 years ago

Our Learning Partner: Frontend Masters

Frontend Masters has been our learning partner for a couple of years now. I love it. If you need structured learning to up your web development skills, | Continue reading


@css-tricks.com | 3 years ago

What is Your Page Title on a Google Search Engine Results Page?

Whatever Google wants it to be. I always thought it was exactly what your element was. Perhaps in lieu of that, what the first <h1> on <span class="text-muted"> | </span> <a href="https://css-tricks.com/what-is-your-page-title-on-a-google-search-engine-results-page/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/working-with-graphql-caching/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73990502&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F352381'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Working With GraphQL Caching</h2> </header> <p> If you’ve recently started working with GraphQL, or reviewed its pros and cons, you’ve no doubt heard things like “GraphQL doesn’t support caching” or <span class="text-muted"> | </span> <a href="https://css-tricks.com/working-with-graphql-caching/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/learn-how-to-build-true-edge-apps-with-cloudflare-workers-and-fauna/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73990504&url=https%253A%252F%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F09%252F1_sYt3j9oAKPbaBaNtc0exTQ.png'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Learn How to Build True Edge Apps With Cloudflare Workers and Fauna</h2> </header> <p> There is a lot of buzz around apps running on the edge instead of on a centralized server in web development. Running your app on the edge allows your <span class="text-muted"> | </span> <a href="https://css-tricks.com/learn-how-to-build-true-edge-apps-with-cloudflare-workers-and-fauna/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/container-units-should-be-pretty-handy/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73989474&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F352210'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Container Units Should Be Pretty Handy</h2> </header> <p> Container queries are going to solve this long-standing issue in web design where we want to make design choices based on the size of an element (the <span class="text-muted"> | </span> <a href="https://css-tricks.com/container-units-should-be-pretty-handy/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/how-to-implement-logging-in-a-node-js-application-with-pino-logger/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73988738&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F352074'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">How to Implement Logging in a Node.js Application With Pino-logger</h2> </header> <p> Logging, on its own, is a key aspect of any application. Logging helps developers comprehend what it is that their code is doing. It also helps save <span class="text-muted"> | </span> <a href="https://css-tricks.com/how-to-implement-logging-in-a-node-js-application-with-pino-logger/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/proposal-for-css-when/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73987636&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F352328'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Proposal for CSS @when</h2> </header> <p> CSS is on a tear lately. Again, I've heard of a brand new thing I've never seen before, and again it's via Miriam: CSS Conditionals. <span class="text-muted"> | </span> <a href="https://css-tricks.com/proposal-for-css-when/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/cascade-layers/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73987436&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F352140'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Cascade Layers?</h2> </header> <p> There is a new thing coming in CSS: @layer. As with all new things, it takes time to really wrap your head around it. And despite me tapping at my <span class="text-muted"> | </span> <a href="https://css-tricks.com/cascade-layers/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/7-practical-uses-for-the-before-and-after-pseudo-elements-in-css/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73986890&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351992'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">7 Practical Uses for the ::before and ::after Pseudo-Elements in CSS</h2> </header> <p> CSS ::before and ::after pseudo-elements allow you to insert "content" before and after any non-replaced element (e.g. they work on a <div> but not <span class="text-muted"> | </span> <a href="https://css-tricks.com/7-practical-uses-for-the-before-and-after-pseudo-elements-in-css/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/resources-arent-requested-by-css-but-by-the-dom/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73985812&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F352089'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Resources aren’t requested by CSS, but by the DOM</h2> </header> <p> This is a good tweet from Harry: https://twitter.com/csswizardry/status/1436361516534620168?s=12 I like it because, as he says, it's the correct way to <span class="text-muted"> | </span> <a href="https://css-tricks.com/resources-arent-requested-by-css-but-by-the-dom/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/exploring-the-css-paint-api-polygon-border/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73985134&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351917'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Exploring the CSS Paint API: Polygon Border</h2> </header> <p> Nowadays, creating complex shapes is an easy task using clip-path, but adding a border to the shapes is always a pain. There is no robust CSS solution and <span class="text-muted"> | </span> <a href="https://css-tricks.com/exploring-the-css-paint-api-polygon-border/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/computer-science-unleashed-chapter-1-connections/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73981496&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F350843'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Computer Science Unleashed, Chapter 1: Connections</h2> </header> <p> Humans crave connections, and the advent of the digital revolution has empowered us to be more connected than ever before. The Internet has unleashed upon billions of people unprecedented economic and political freedom, as well as powerful means of control and domination. Yet, th … <span class="text-muted"> | </span> <a href="https://css-tricks.com/computer-science-unleashed-chapter-1-connections/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/minding-the-gap/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73979310&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351481'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Minding the “Gap” via CSS-Tricks</h2> </header> <p> You might already know about the CSS gap property. It isn’t exactly new, but it did gain an important new ability last year: it now works in Flexbox in <span class="text-muted"> | </span> <a href="https://css-tricks.com/minding-the-gap/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/static-site-generators-vs-cms-powered-websites-how-to-keep-marketers-and-devs-happy/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73979394&url=https%253A%252F%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F09%252FDeveloper-Header.png'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Static Site Generators vs. CMS-powered Websites: How to Keep Marketers and Devs Happy</h2> </header> <p> Many developers love working with static site generators like Gatsby and Hugo. These powerful yet flexible systems help create beautiful websites using <span class="text-muted"> | </span> <a href="https://css-tricks.com/static-site-generators-vs-cms-powered-websites-how-to-keep-marketers-and-devs-happy/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/an-intro-to-javascript-proxy/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73977341&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351767'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">An Intro to JavaScript Proxy</h2> </header> <p> Have you ever been in a situation where you wish you could have some control over the values in an object or array? Maybe you wanted to prevent certain <span class="text-muted"> | </span> <a href="https://css-tricks.com/an-intro-to-javascript-proxy/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/on-the-dl/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73976235&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351518'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">On the `dl`</h2> </header> <p> Blogging about HTML elements¹? *chefs kiss* Here's Ben Myers on the (aptly described) "underrated" Definition List (<dl>) element in HTML: You might <span class="text-muted"> | </span> <a href="https://css-tricks.com/on-the-dl/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/grainy-gradients/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73974077&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351302'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Grainy Gradients</h2> </header> <p> Browse through Dribbble or Behance, and you’ll find designers using a simple technique to add texture to an image: noise. Adding noise makes otherwise <span class="text-muted"> | </span> <a href="https://css-tricks.com/grainy-gradients/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/social-image-generator-jetpack/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73973497&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351726'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Social Image Generator + Jetpack</h2> </header> <p> I feel like my quest to make sure this site had pretty sweet (and automatically-generated) social media images (e.g. Open Graph) came to a close once I <span class="text-muted"> | </span> <a href="https://css-tricks.com/social-image-generator-jetpack/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/just-in-time-css/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73972673&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351562'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">“Just in Time” CSS</h2> </header> <p> I believe acss.io is the first usage of "Atomic CSS" where the point of it is to be a compiler. You write CSS like this: <div class="C(#333) P(20px)"> <span class="text-muted"> | </span> <a href="https://css-tricks.com/just-in-time-css/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 left"> <a href="https://css-tricks.com/fun-times-styling-checkbox-states/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73972675&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351034'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">Fun Times Styling Checkbox States</h2> </header> <p> We might leave a text input unstyled. We might leave a link unstyled. Even a button. But checkboxes… we don’t leave them alone. That’s why styling <span class="text-muted"> | </span> <a href="https://css-tricks.com/fun-times-styling-checkbox-states/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <!-- Feature 1 --> <article class="container box style1 right"> <a href="https://css-tricks.com/eyedropper-api-dropped/" class="image fit"> <div style="background-image: url('/imageurl?width=800&id=73972677&url=https%253A%252F%252Fcss-tricks.com%252Fwp-json%252Fsocial-image-generator%252Fv1%252Fimage%252F351697'); background-position: center center; background-size: cover; background-repeat: no-repeat; height: 100%"> </div> </a> <div class="inner"> <header> <h2 class="tt-none">EyeDropper API Dropped</h2> </header> <p> I had no idea this was coming but it's pretty neat! Chrome has shipped the EyeDropper API in v95 (Canary, as I write). <span class="text-muted"> | </span> <a href="https://css-tricks.com/eyedropper-api-dropped/" target="_blank" href="">Continue reading</a> </p> <hr> <a class="img" href="/latest?query=%2Cfacet_who%3Acss-tricks.com"> <div class="item-avatar"> <div lazy-load class="inner-avatar-placeholder" data-original="/imageavatarurl?width=64&url=https%253A%252F%252Fi1.wp.com%252Fcss-tricks.com%252Fwp-content%252Fuploads%252F2021%252F07%252Fstar.png%253Ffit%253D180%25252C180%2526ssl%253D1&username=%40css-tricks.com"> </div> </div> </a> <small> @css-tricks.com <span class="text-muted"> | 3 years ago</span> </small> </div> </article> <section id="footer"> <div class="icons"> <h2>Page 13</h2> <ul> <li class="page-item"> <a title="Go to first page" class="page-link track-fragment" href="?query=,facet_who:css-tricks.com&page=1"><i class="icon fa-angle-double-left"></i> First</a> </li> <li class="page-item"> <a title="Go to previous page" class="page-link track-fragment" href="?query=,facet_who:css-tricks.com&page=12"><i class="icon fa-angle-left"></i> Prev</a> </li> <li class="page-item"> <a title="Go to next page" class="page-link track-fragment" href="?query=,facet_who:css-tricks.com&page=14"><i class="icon fa-angle-right"></i> Next</a> </li> <li class="page-item"> <a title="Go to last page" class="page-link track-fragment" href="?query=,facet_who:css-tricks.com&page=44"><i class="icon fa-angle-double-right"></i> Last</a> </li> </ul> </div> <hr> <div class="copyright"> <ul class="menu"> <li> © 2005-2024 <a target="_blank" href="https://in-two.com">IN2</a> </li> <li> <a href="mailto:metablog@in-two.com"><span class="label">Say hello</span></a> </li> <li> Design: <a href="http://html5up.net">HTML5 UP</a> </li> </ul> </div> </section> <!-- Template Scripts --> <script src="/public/templates/overflow/assets/js/jquery.min.js"></script> <script src="/public/templates/overflow/assets/js/jquery.scrolly.min.js"></script> <script src="/public/templates/overflow/assets/js/jquery.poptrox.min.js"></script> <script src="/public/templates/overflow/assets/js/browser.min.js"></script> <script src="/public/templates/overflow/assets/js/breakpoints.min.js"></script> <script src="/public/templates/overflow/assets/js/util.js"></script> <script src="/public/templates/overflow/assets/js/main.js"></script> <!-- Bootstrap and necessary plugins --> <script src="/public/javascripts/vendor.dist.js"></script> <script src="/public/javascripts/app_frontend.dist.js"></script> <script type="text/javascript"> angular.module('Frontend').factory('APIPaths', function() { return { getGetConnectedSetsPath : function(options) {var pattern = '/organise/api/sets/connected?itemId=:itemId';for(key in options) {var val = options[key];pattern = pattern.replace(':' + encodeURIComponent(key), ( (val===undefined || val===null)?'': val));}return pattern;} , getCheckUniqueUsernamePath : function(options) {var pattern = '/check/unique/username';for(key in options) {var val = options[key];pattern = pattern.replace(':' + encodeURIComponent(key), ( (val===undefined || val===null)?'': val));}return pattern;} , getCheckUniqueEmailPath: function(options) {var pattern = '/check/unique/email';for(key in options) {var val = options[key];pattern = pattern.replace(':' + encodeURIComponent(key), ( (val===undefined || val===null)?'': val));}return pattern;} , getCheckExistsEmailPath: function(options) {var pattern = '/check/exists/email';for(key in options) {var val = options[key];pattern = pattern.replace(':' + encodeURIComponent(key), ( (val===undefined || val===null)?'': val));}return pattern;} , getRecordConsentPath: function(options) {var pattern = '/application/consent';for(key in options) {var val = options[key];pattern = pattern.replace(':' + encodeURIComponent(key), ( (val===undefined || val===null)?'': val));}return pattern;} } }) </script> <script> (function(w,d,t,u,n,a,m) { w['MauticTrackingObject']=n; w[n] = w[n] || function() { (w[n].q = w[n].q || []).push(arguments) }, a = d.createElement(t), m = d.getElementsByTagName(t)[0] a.async=1; a.src=u; m.parentNode.insertBefore(a,m) }) (window,document,'script','https://mautic.in-two.com/mtc.js','mt'); mt('send', 'pageview'); </script> <!-- Plausible Analytics --> <script defer data-domain="metablog.co" src="https://plausible.in-two.com/js/plausible.js"></script> </body> </html>