Explore My Notes

The making of Netlify's million devs animated website | Sarah Drasner

Netlify's microsite celebrating their millionth user is a brilliant experiment, so it's great to see them immediately posting a "making of" article on CSS Tricks. It's a beautifully rendered SVG illustration showing the service's history, popping in key milestones as you scroll. There are also some really nice-to-see features, such as the prominent animation toggle that is always visible, for those who may not enjoy the various movement effects.

Sarah covers all the various technologies that they used. I was surprised to see the entire site is a VueJS app comprised almost entirely of a single SVG element, with animations handled with GreenScok. Cool! Better yet, the article has a ton of advice on making SVGs as accessible as possible, including a video showing what it's like to browse with a screen reader. Really interesting to see their use of role="presentation" in particular.

I'm number 496,180 by the way. Quite surprised to be in the top 500,000!

Racial discrimination is not inherently racist | Ibram X. Kendi

... if racial discrimination is defined as treating, considering, or making a distinction in favor or against an individual based on that person’s race, then racial discrimination is not inherently racist. The defining question is whether the discrimination is creating equity or inequity. If discrimination is creating equity, then it is antiracist. If discrimination is creating inequity, then it is racist.

Someone reproducing inequity through permanently assisting an overrepresented racial group into wealth and power is entirely different than someone challenging that inequity by temporarily assisting an underrepresented racial group into relative wealth and power until equity is reached. The only remedy to racist discrimination is antiracist discrimination. The only remedy to past discrimination is present discrimination. The only remedy to present discrimination is future discrimination.

As President Lyndon B. Johnson said in 1965, “You do not take a person who, for years, has been hobbled by chains and liberate him, bring him up to the starting line of a race and then say, ‘You are free to compete with all the others,’ and still justly believe that you have been completely fair.” As U.S. Supreme Court Justice Harry Blackmun wrote in 1978, “In order to get beyond racism, we must first take account of race. There is no other way. And in order to treat some persons equally, we must treat them differently.”

An excerpt from How to be an Antiracist by Ibram X. Kendi, which I really need to pick up.

Memorise scroll position across page loads | CSS Tricks

A neat trick (now third hand) for storing the scroll position of a sidebar or other element in local storage, allowing you to keep it constant across pages without the user seeing it flash into place:

let sidebar = document.querySelector(".sidebar");

let top = localStorage.getItem("sidebar-scroll");
if (top !== null) {
  sidebar.scrollTop = parseInt(top, 10);
}

window.addEventListener("beforeunload", () => {
  localStorage.setItem("sidebar-scroll", sidebar.scrollTop);
});

The initial pitch for After Man | Tetrapod Zoology

I'm a huge fan of Dougal Dixon's After Man and even managed to attend the 2018 (re)-launch party for the reprint of the book. That means I was lucky enough to see the original pitch document for the book, but only briefly (there were a lot of people and I was more interested in meeting Dougal himself, getting books signed, etc.). Luckily, Darren has done a great job writing up the pitch document, including scanning a number of the pages. Very cool and I agree that the biome dioramas being cut was a real shame 😮

Illustrated modular people | Open Peeps

What a cool idea 😎 A set of line illustrations (SVG etc. goodness) that you can mix'n'match to create avatars, all fully modular. Currently it's an open-source graphics resource, but I could totally see this becoming an API that you can query for a pseudo-random avatar generator.

Hey now | adactio

Can you use progressive enhancement when building a web app (whatever that is)? Of course you can, HEY have proven so (not that it should have needed proving).

It’s not either resilient or modern—it’s resilient and modern. Have your cake and eat it.
They’ve taken a human-centric approach to their product and a human-centric approach to web development …because ultimately, that’s what progressive enhancement is.

Common mistakes with React Testing Library | Kent C. Dodds

I've been getting a lot of hands-on time with React Testing Library recently and, for the most part, I really like it. Still, I get caught out from time-to-time, and this article has a lot of great advice on best practices. In particular (as I tweeted this week) I've found that following this guidance doesn't just make writing tests easier, it also gives you accessibility coverage for free, which is just awesome 😎

CSS only carousel | CSS Tricks

Carousels are the devil's work, but they remain incredibly useful and popular UI elements 😑 Having a solid implementation that will work without JavaScript, making it more lightweight and accessible, is therefore very useful and I've yet to find better examples than the options here, though I still can't quite get what I want with it. In particular, having the current slide visible on a tab menu (y'know, the bunch of dots that are often at the bottom of a carousel or numbers across the top) that works with both touch and scroll input appears to be one holy grail technique too far. At least, a week of attempting it at work never produced a solution... 😭

Ancestry and culture instead of race in fantasy | Into the Wonder

I'd never really considered the use of "race" as a term for species within fantasy settings (e.g. Dwarves, Elves etc.). Darrell has some interesting thoughts, written through the lens of his take on Eugene Marshall's Ancestry and Culture D&D supplement, which explicitly seeks to remove "race" from that game world, providing an alternative structure. The idea is that a character should have traits derived from their cultural upbringing (skills) and their ancestral lineage (physical properties/abilities, including stuff like propensity to magic or ability to see in low light). It's a cool idea and sounds like it does a solid enough job of expanding the world-building potential in and of itself to be adopted without further context.

But, the realisation that "race" is likely problematic is worthy of discussion and thought by itself. My immediate reaction was that it's incorrectly applied at a species level anyway; on Earth, we use race to differentiate within a species. But, as Darrell argues, that distinction for humans is largely invented and has a long, storied history bound to oppression, enslavement, genocide, and a whole host of other depressing and awful concepts/actions/deeds etc. In other words, even where used correctly, it may be better to rethink it. And that's before you consider that many fantasy "races" are just racist stereotypes dressed up in different, non-human skin tones. Lots to think about.

CSS animations within SVG | viewBox

A very neat little trick. Embedding @keyframes within your SVG <style> element makes it animate when it loads, whether rendered as an image or a background (or, I assume, inlined). It can even be used in favicons on Firefox 🤩 Example with corresponding <img>:

<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <style>
    circle {
      animation: bounce 2s infinite ease-in-out alternate;
      transform-origin: 50px 50px;
    }
    @keyframes bounce {
      to {
        transform: scale(0);
      }
    }
  </style>
  <circle cx="50" cy="50" r="25" />
</svg>

<img src="https://viewbox.club/tips/assets/img/CSS_Keyframes.svg" alt="">

📆 29 Jul 2020  | 🔗

  • Animation
  • CSS
  • SVG
  • animation
  • favicon
  • Firefox
  • keyframes 

Clever quote design and arrow use | The Markup

The Markup have recently been doing a great job of analysing some of the big names in the tech world and highlighting some less-than-stellar behaviour or situations. However, what's really caught my eye is their article design; it's beautiful 😍 I wanted to grab a few screenshots of one of their most recent articles (though these styles are used across the site):

Design of quote, highlighted from main article text through larger text and shifted into a side column.
There's something that's always attractive about a good three-column article layout.
Pullquote/statistic highlighted by larger text and moving into a right hand column.
The subtle differences between quotes and cited data are subtle but excellent; think I prefer the use of the citation within the border here.
Correction design, a simple box with an elegant border.
Corrections are very simple but they also jump out at the reader, plus it's always nice to see them at all.
Design of image annotation, offset to the side of the image but with key words highlighted in red and a bold red arrow arcing towards the image.
I adore these little arrows. I've been wanting to try something similar myself for a while so have been digging around the source code a bit.
Photo of Adam Goldstein offset slightly overlapping the text and with a small arrow pointing the description to the image.
Again, the arrows are subtle but really attention-grabbing and just look so nice.

As an FYI it looks like the layout is largely being done via absolute positioning. Arrows are ::before and ::after elements. I still find it a real shame that CSS Grid has yet to catch up to these layouts, but there are some interesting specs on the horizon. 🤞

📆 29 Jul 2020  | 🔗

  • Web Design
  • Google
  • journalism
  • design
  • quote
  • figure
  • citation
  • correction
  • article
  • grid
  • columns
  • layout
  • aside 

Made By Me, But Made Possible By:

CMS:

Build: Gatsby

Deployment: GitHub

Hosting: Netlify

Connect With Me:

Twitter Twitter

Instagram Instragram

500px 500px

GitHub GitHub

Keep Up To Date:

All Posts RSS feed.

Articles RSS feed.

Journal RSS feed.

Notes RSS feed.