Weekly Digest 21/2021
Tags: css, javascript, react, webdev
Published: 2021-05-30 17:00:00

Welcome to my Weekly Digest #21.

This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.

---

## Interesting articles to read

### A New Way To Reduce Font Loading Impact: CSS Font Descriptors

Font loading has long been a bugbear of web performance, and there really are no good choices here. If you want to use web fonts your choices are basically Flash of Invisible Text (aka FOIT) where the text is hidden until the font downloads or Flash of Unstyled Text (FOUT) where you use the fallback system font initially and then upgrade it to the web font when it downloads.

[A New Way To Reduce Font Loading Impact: CSS Font Descriptors - Smashing Magazine](https://smashingmagazine.com/2021/05/reduce-font-loading-impact-css-descriptors/)

### A Guide To Undoing Mistakes With Git

Mistakes. These cruel villains do not even stop at the beautiful world of software development. But although we cannot avoid making mistakes, we can learn to undo them! This article will show the right tools for your daily work with Git.

[A Guide To Undoing Mistakes With Git (Part 1) - Smashing Magazine](https://www.smashingmagazine.com/2021/05/undoing-mistakes-git-part1/)

[A Guide To Undoing Mistakes With Git (Part 2) - Smashing Magazine](https://www.smashingmagazine.com/2021/05/undoing-mistakes-git-part2/)

### Converting tables to grids with React compound components

Using React compound components, learn how to dynamically switch from a table to grid layout for an interactive interface.

[Converting tables to grids with React compound components - LogRocket Blog](https://blog.logrocket.com/converting-tables-to-grids-with-react-compound-components/)

### State Management: How to tell a bad boolean from a good boolean

Bad booleans represent state. Good booleans are derived from state.
When you're managing state in your app, it's easy to fall prey to bad booleans

[State Management: How to tell a bad boolean from a good boolean](https://dev.to/mpocock1/state-management-how-to-tell-a-bad-boolean-from-a-good-boolean-260n)

### A couple of ways to highlight code syntax in Apple Keynote slides

Apple Keynote doesn’t come with code syntax highlighting built in. I really wish it did, and hope that Apple would at some point add this feature, especially considering how many developers and engineers use Keynote to create talk slides.

[A couple of ways to highlight code syntax in Apple Keynote slides](https://www.sarasoueidan.com/blog/copy-paste-from-vscode-to-keynote/)

---

## Some great videos I watched this week

### React useState hook (with TypeScript)

React Hooks are amazing. A key feature that allows Function components to be THE WAY to create new React Projects.

{% youtube qBiJTXjqeQE %}

by [Basarat Ali](https://twitter.com/basarat)

### CI #2 - Starting out with GitHub Actions

Github Actions are an easy way to get started with Continuous Integration. You used to have to rely on services like Travis CI, Circle CI, etc. but now the main repository hosts have CI built into their platform.

{% youtube GehPUersUcA %}

by [Jimmy Cleveland](https://twitter.com/JimmyDCleveland)

### New in Chrome 91: File System Access API improvements, Google IO, and more

Chrome 91 is rolling out now. Web apps that interact with files, can now suggest file names and directories when using the file system access API. Plus, you can now read files from the clipboard. If your site has more than one domain, and shares the same account management backend, you can tell Chrome they’re the same, allowing the password manager to suggest the right credentials. All the videos from I/O are now available. And there’s plenty more.

{% youtube vy6FXa0n1r0 %}

by [Google Chrome Developers](https://twitter.com/ChromiumDev)

### Chrome 91 - What’s New in DevTools

Web vitals information pop up, visualize CSS scroll-snap, new Memory inspector and more.

{% youtube Givhtk3rObE %}

by [Google Chrome Developers](https://twitter.com/ChromiumDev)

### Requesting color from CSS in 2021 and beyond

From a limited set of web safe colors to more colors than your eye can distinguish, follow me as we play and toy with color from CSS and reach into the most vibrant colors of your screens.

{% youtube mAw75_quIf8 %}

by [Adam Argyle](https://twitter.com/argyleink)

---

## Useful GitHub repositories

### Awesome Privacy

List of free, open source and privacy respecting services and alternatives to privative services.

{% github pluja/awesome-privacy %}

### Boring Avatars

Boring avatars is a tiny JavaScript React library that generates custom, SVG-based, round avatars from any username and color palette.

{% github boringdesigners/boring-avatars %}

---

## dribbble shots

### Trickle Landing Page

![https://cdn.dribbble.com/users/3534089/screenshots/15700257/media/7c0217fadef9478e55486042d19c1a5a.png](https://cdn.dribbble.com/users/3534089/screenshots/15700257/media/7c0217fadef9478e55486042d19c1a5a.png)

by [Pizzathehut](https://dribbble.com/shots/15700257-Trickle-Landing-Page)

### Digital Banking Dashboard Clean UI

![https://cdn.dribbble.com/users/2253180/screenshots/15744173/media/eafa6141a860fd435ec61d594a5f5b51.jpg](https://cdn.dribbble.com/users/2253180/screenshots/15744173/media/eafa6141a860fd435ec61d594a5f5b51.jpg)

by [AR Shakir](https://dribbble.com/shots/15744173-Digital-Banking-Dashboard-Clean-UI)

### Home Rent

![https://cdn.dribbble.com/users/4684322/screenshots/15745734/media/830926709dc9ccfc3b3c5eb7e0df99a5.jpg](https://cdn.dribbble.com/users/4684322/screenshots/15745734/media/830926709dc9ccfc3b3c5eb7e0df99a5.jpg)

by [Andri.](https://dribbble.com/shots/15745734-Home-Rent)

### mujer

![https://cdn.dribbble.com/users/5554868/screenshots/15749690/media/508c1ff51d41e8a8352e7179590ebc77.jpg](https://cdn.dribbble.com/users/5554868/screenshots/15749690/media/508c1ff51d41e8a8352e7179590ebc77.jpg)

by [Shayan Umar](https://dribbble.com/shots/15749690-mujer)

### Shoes App

![https://cdn.dribbble.com/users/1770471/screenshots/15749695/media/83ce4cd1cf08d5c59d36900714838b51.jpg](https://cdn.dribbble.com/users/1770471/screenshots/15749695/media/83ce4cd1cf08d5c59d36900714838b51.jpg)

by [Abdullah Sajol](https://dribbble.com/shots/15749695-Shoes-App)

---

## Tweets

{% twitter 1396469761366659075 %}

{% twitter 1396842158452248581 %}

{% twitter 1397156805017587714 %}

{% twitter 1398566292605575177 %}

{% twitter 1398668839177568259 %}

---

## Picked Pens

### CSS mouse-out transition effect

{% codepen https://codepen.io/argyleink/pen/poEjvpd %}

by [Adam Argyle](https://twitter.com/argyleink)

### Colorful Noise

{% codepen https://codepen.io/zimjs/pen/jOMZjOy %}

by [ZIM](https://twitter.com/ZimLearn)

### The Very Hungry Caterpillar

{% codepen https://codepen.io/cobra_winfrey/pen/wvJreKx %}

by [Adam Kuhn](https://twitter.com/cobra_winfrey)

---

## Podcasts worth listening

### The CSS Podcast - Containment

The CSS contain property can give you some serious performance gains by adjusting how and when the browser renders elements. In this episode, we go over all the different types of containment, and where you might use them.

{% spotify spotify:episode:67Cm2VoDbtAmOMLlf8g5Z1 %}

### Syntax - JavaScript's Drag and Drop API

In this Hasty Treat, Scott and Wes talk about JavaScript's drag and drop API — how it works, concerns, best practices, and more!

{% spotify spotify:episode:1VrhKcOzNKYN4wLq93xrec %}

### 3 Minutes with Kent - Fixating on fixing rerenders

{% spotify spotify:episode:1U1yK9lncUYcMn2chibEUF %}

---

Thank you for reading, talk to you next week, and stay safe! 👋