<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Marco Biedermann</title>
    <description>The latest articles on Forem by Marco Biedermann (@marcobiedermann).</description>
    <link>https://forem.com/marcobiedermann</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F475173%2F81806ed8-65a8-450d-8601-d701f713c7cb.jpeg</url>
      <title>Forem: Marco Biedermann</title>
      <link>https://forem.com/marcobiedermann</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/marcobiedermann"/>
    <language>en</language>
    <item>
      <title>Weekly Digest 33/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 21 Aug 2022 18:43:58 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-332022-38bj</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-332022-38bj</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #33.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Communicating Effectively As A Tech Lead
&lt;/h3&gt;

&lt;p&gt;Here are Addy’s tips for communicating effectively as a technical lead, including tips for how to talk to your teams and stakeholders.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://addyosmani.com/blog/communication-tech-lead/"&gt;Communicating Effectively As A Tech Lead&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How and why we removed jQuery from &lt;a href="http://gov.uk/"&gt;GOV.UK&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Removing jQuery from GOV.UK was a huge yet manageable task that led to improved code and performance gains across the site. This is how and why we did this work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://insidegovuk.blog.gov.uk/2022/08/11/how-and-why-we-removed-jquery-from-gov-uk/"&gt;How and why we removed jQuery from GOV.UK&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are Chrome's origin trials?
&lt;/h3&gt;

&lt;p&gt;Origin trials are a way to test a new or experimental web platform feature. A third-party origin trial makes it possible for providers of embedded content to try out a new feature across multiple sites.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/v_gI8wcsPUA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Creative with Keyframes
&lt;/h3&gt;

&lt;p&gt;Working with keyframes can be difficult even if you only have one animation, but the real problems begin when you have 3 objects with 5 animations, each of which has different keyframes, duration, timing-function… and yet they all need to be exactly synchronized. So how do we do that?!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kXh3EMpaLFo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/amit_sheen"&gt;Amit Sheen&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Safely Handling Dynamic Data with TypeScript
&lt;/h3&gt;

&lt;p&gt;TypeScript makes JavaScript safer by adding static type definitions. Static definitions are wonderful; they prevent developers from making trivial mistakes by ensuring every assignment and invocation is done correctly.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/y5W3Fm9dpZE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ArrowoodTech"&gt;Ethan Arrowood&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Zodios
&lt;/h3&gt;

&lt;p&gt;Zodios is a TypeScript API client with auto-completion features backed by &lt;a href="https://axios-http.com/"&gt;Axios&lt;/a&gt; and &lt;a href="https://github.com/colinhacks/zod"&gt;zod&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ecyrbe"&gt;
        ecyrbe
      &lt;/a&gt; / &lt;a href="https://github.com/ecyrbe/zodios"&gt;
        zodios
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      typescript http client with zod validation
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt; &lt;h1&gt;
Zodios&lt;/h1&gt;
 &lt;p&gt;
   &lt;a href="https://github.com/ecyrbe/zodios"&gt;
     &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cnAzL8sK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/ecyrbe/zodios/main/docs/logo.svg" width="128px" alt="Zodios logo"&gt;
   &lt;/a&gt;
 &lt;/p&gt;
 &lt;p&gt;
    Zodios is a typescript api client with auto-completion features backed by &lt;a href="https://axios-http.com" rel="nofollow"&gt;axios&lt;/a&gt; and &lt;a href="https://github.com/colinhacks/zod"&gt;zod&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="https://ecyrbe.github.io/zodios/" rel="nofollow"&gt;Documentation&lt;/a&gt;
 &lt;/p&gt;
 &lt;p&gt;
   &lt;a href="https://www.npmjs.com/package/@zodios/core" rel="nofollow"&gt;
   &lt;img src="https://camo.githubusercontent.com/1f0f10b3517d01d229d82b27343b7c0433631ee0bb58f1054613215b63c21507/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f407a6f64696f732f636f72652e737667" alt="langue typescript"&gt;
   &lt;/a&gt;
   &lt;a href="https://www.npmjs.com/package/@zodios/core" rel="nofollow"&gt;
   &lt;img alt="npm" src="https://camo.githubusercontent.com/86474edd5ead2db6f2fc29bdb92cb26025a4146264f0d5726662ab819f4db4e9/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64772f407a6f64696f732f636f7265"&gt;
   &lt;/a&gt;
   &lt;a href="https://github.com/ecyrbe/zodios/blob/main/LICENSE"&gt;
    &lt;img alt="GitHub" src="https://camo.githubusercontent.com/252914c068202275f114402b6c392f22e50e96b5f9f0265c144d5bc37effad7d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6563797262652f7a6f64696f73"&gt;
   &lt;/a&gt;
   &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f44e51ff21929f304227042a2b0c9530196d9808f0c1301e69db545f8adbcd28/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6563797262652f7a6f64696f732f4349"&gt;&lt;img alt="GitHub Workflow Status" src="https://camo.githubusercontent.com/f44e51ff21929f304227042a2b0c9530196d9808f0c1301e69db545f8adbcd28/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6563797262652f7a6f64696f732f4349"&gt;&lt;/a&gt;
 &lt;/p&gt;
&lt;h1&gt;
What is it ?&lt;/h1&gt;
&lt;p&gt;It's an axios compatible API client, with the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;really simple centralized API declaration&lt;/li&gt;
&lt;li&gt;typescript autocompletion in your favorite IDE for URL and parameters&lt;/li&gt;
&lt;li&gt;typescript response types&lt;/li&gt;
&lt;li&gt;parameters and responses schema thanks to zod&lt;/li&gt;
&lt;li&gt;response schema validation&lt;/li&gt;
&lt;li&gt;bearer token injection and token renewal with simple token provider interface&lt;/li&gt;
&lt;li&gt;all axios features available&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Table of contents:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#what-is-it-"&gt;What is it ?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#install"&gt;Install&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ecyrbe/zodios#how-to-use-it-"&gt;How to use it ?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#declare-your-api-with-zodios"&gt;Declare your API with zodios&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#api-definition-format"&gt;API definition format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#api-creation-helpers"&gt;API creation helpers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#get-underlying-axios-instance"&gt;Get underlying axios instance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#give-your-own-axios-instance-to-zodios"&gt;Give your own axios instance to zodios&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#disable-zodios-validation"&gt;Disable zodios validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#use-zod-transformations"&gt;Use zod transformations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#send-multipartform-data-requests"&gt;Send multipart/form-data requests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#send-applicationx-www-form-urlencoded-requests"&gt;Send application/x-www-form-urlencoded requests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#crud-helper"&gt;CRUD helper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#react-helpers"&gt;React helpers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ecyrbe/zodios#plugin-system"&gt;Plugin system&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#use-fetch-on-browser"&gt;Use fetch on browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#use-token-provider-plugin"&gt;Use token provider plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#use-a-plugin-only-for-some-endpoints"&gt;Use a plugin only for some endpoints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#override-plugin"&gt;Override plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#plugin-execution-order"&gt;Plugin execution order&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ecyrbe/zodios#write-your-own-plugin"&gt;Write your own plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ecyrbe/zodios"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  The PBR Database API
&lt;/h3&gt;

&lt;p&gt;A database of physically based values for CG artists.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AntonPalmqvist"&gt;
        AntonPalmqvist
      &lt;/a&gt; / &lt;a href="https://github.com/AntonPalmqvist/physically-based-api"&gt;
        physically-based-api
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A database of physically based values for CG artists.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
The PBR Database API&lt;/h1&gt;
&lt;p&gt;A database of physically based values for CG artists.&lt;/p&gt;
&lt;p&gt;Access the API here: &lt;a href="https://api.physicallybased.info" rel="nofollow"&gt;https://api.physicallybased.info&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Implementations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Web &lt;a href="https://physicallybased.info" rel="nofollow"&gt;https://physicallybased.info&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Accuracy&lt;/h2&gt;
&lt;p&gt;These reference values are based on the most accurate data available at the time, and are continually updated whenever new measurements are available. Depending on the material and the property you're after, there is more or less variability to take into account. Use these values as a starting point, or as validation for your existing materials, and then tweak further using your artistic freedom.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AntonPalmqvist/physically-based-api"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  tsx
&lt;/h3&gt;

&lt;p&gt;TypeScript Execute (tsx): Node.js enhanced with esbuild to run TypeScript &amp;amp; ESM&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/esbuild-kit"&gt;
        esbuild-kit
      &lt;/a&gt; / &lt;a href="https://github.com/esbuild-kit/tsx"&gt;
        tsx
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ⚡️ TypeScript Execute (tsx): Node.js enhanced with esbuild to run TypeScript &amp;amp; ESM
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
tsx &lt;a href="https://npm.im/tsx" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/df40139c87740d73f0c2280dd2ab51f3e54557beb3cce84c2a33ac53c377bbec/68747470733a2f2f62616467656e2e6e65742f6e706d2f762f747378"&gt;&lt;/a&gt; &lt;a href="https://npm.im/tsx" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/78de3088e8284ed73efe42699b909634c584ed8bfba214945ef8cf47607c5a45/68747470733a2f2f62616467656e2e6e65742f6e706d2f646d2f747378"&gt;&lt;/a&gt; &lt;a href="https://packagephobia.now.sh/result?p=tsx" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/d9e8e67955b1df44ae71f946be641860c5096c21b4ab41a71df7d6b08c731cc4/68747470733a2f2f7061636b61676570686f6269612e6e6f772e73682f62616467653f703d747378"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;TypeScript Execute (&lt;code&gt;tsx&lt;/code&gt;)&lt;/em&gt;: Node.js enhanced with &lt;a href="https://esbuild.github.io/" rel="nofollow"&gt;esbuild&lt;/a&gt; to run TypeScript &amp;amp; ESM files&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Blazing fast on-demand TypeScript &amp;amp; ESM compilation&lt;/li&gt;
&lt;li&gt;Works in both &lt;a href="https://nodejs.org/api/packages.html#type" rel="nofollow"&gt;CommonJS and ESM packages&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Supports next-gen TypeScript extensions (&lt;code&gt;.cts&lt;/code&gt; &amp;amp; &lt;code&gt;.mts&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Supports &lt;code&gt;node:&lt;/code&gt; import prefixes&lt;/li&gt;
&lt;li&gt;Hides experimental feature warnings&lt;/li&gt;
&lt;li&gt;TypeScript REPL&lt;/li&gt;
&lt;li&gt;Resolves &lt;code&gt;tsconfig.json&lt;/code&gt; &lt;a href="https://www.typescriptlang.org/tsconfig#paths" rel="nofollow"&gt;&lt;code&gt;paths&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Tested on Linux &amp;amp; Windows with Node.js v12~18&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Support this project by ⭐️ starring and sharing it. &lt;a href="https://github.com/privatenumber"&gt;Follow me&lt;/a&gt; to see what other cool projects I'm working on! ❤️&lt;/p&gt;
&lt;h2&gt;
About&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;tsx&lt;/code&gt; is a CLI command (alternative to &lt;code&gt;node&lt;/code&gt;) for seamlessly running TypeScript &amp;amp; ESM, in both &lt;code&gt;commonjs&lt;/code&gt; &amp;amp; &lt;code&gt;module&lt;/code&gt; package types.&lt;/p&gt;
&lt;p&gt;It's powered by &lt;a href="https://esbuild.github.io/" rel="nofollow"&gt;esbuild&lt;/a&gt; so it's insanely fast.&lt;/p&gt;
&lt;p&gt;Want to just run TypeScript code? Try tsx:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npx tsx ./script.ts&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;How does it compare to &lt;a href="https://github.com/TypeStrong/ts-node"&gt;ts-node&lt;/a&gt;? Checkout the &lt;a href="https://github.com/privatenumber/ts-runtime-comparison"&gt;comparison&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Install&lt;/h2&gt;
&lt;h3&gt;
Local installation&lt;/h3&gt;
&lt;p&gt;If you're using it in an npm project, install it as…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/esbuild-kit/tsx"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Phoveus Team Management Dashboard Design
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CKq4vdZP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3267270/file/original-ac74898870339761d10182c8c8f523fd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CKq4vdZP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3267270/file/original-ac74898870339761d10182c8c8f523fd.png" alt="by [Fariz Al Faridli](https://www.notion.so/Weekly-Digest-33-2022-4cc0fb9ac3c34500a561ef0f5209b5ff)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.notion.so/Weekly-Digest-33-2022-4cc0fb9ac3c34500a561ef0f5209b5ff"&gt;Fariz Al Faridli&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Restaurant food ordering dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nQ6z1pVZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3290255/file/original-84cdd6b0e6a7369d13d1fa032eef410d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nQ6z1pVZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3290255/file/original-84cdd6b0e6a7369d13d1fa032eef410d.png" alt="by [Ofspace LLC](https://dribbble.com/shots/19178423-Restaurant-food-ordering-dashboard)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/19178423-Restaurant-food-ordering-dashboard"&gt;Ofspace LLC&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Food Delivery Mobile Apps
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fLi4YnjC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/10175423/screenshots/19178238/media/ea22d7f2716c7253aa02cb670d8294f6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fLi4YnjC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/10175423/screenshots/19178238/media/ea22d7f2716c7253aa02cb670d8294f6.png" alt="by [MD. Ridoy Ahmed Tamim](https://www.notion.so/Weekly-Digest-33-2022-4cc0fb9ac3c34500a561ef0f5209b5ff)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.notion.so/Weekly-Digest-33-2022-4cc0fb9ac3c34500a561ef0f5209b5ff"&gt;MD. Ridoy Ahmed Tamim&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---FURI4sM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FaIOoikWYAAmE6m.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrqJXnpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1465780299380502537/pptBYF44_normal.jpg" alt="Stefan Judis profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Stefan Judis
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/stefanjudis"&gt;@stefanjudis&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      TIL you can force push git branches with `+`. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      14:35 PM - 14 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1558824620039585795" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1558824620039585795" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1558824620039585795" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gfjONQy7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1559305854775697411/pu/img/R8n6_0GFJe3B_HLb.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--JypAHx8g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1525202974175285254/Je-uuVaP_normal.jpg" alt="Elijah Manor profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Elijah Manor
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/elijahmanor"&gt;@elijahmanor&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      ⚡️ Quick 2-minute video!&lt;br&gt;&lt;br&gt;✅ Check out a PR from the terminal with search functionality and a live preview!&lt;br&gt;&lt;br&gt;📹 Video builds the command piece by piece using:&lt;br&gt;&lt;br&gt;• gh: GitHub CLI&lt;br&gt;• fzf: command-line fuzzy finder&lt;br&gt;• awk: text parsing tool &lt;br&gt;• xargs: converts stdin into arguments 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      13:00 PM - 16 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1559525388417503233" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1559525388417503233" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1559525388417503233" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VtEL76Vu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FaX-MdDWYAUQ9u4.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xMAhDI7---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1035818042037612544/Bru2vfvb_normal.jpg" alt="Pawel Grzybek profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Pawel Grzybek
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/pawelgrzybek"&gt;@pawelgrzybek&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      There is no better way to craft multi-line terminal commands than Composer in iTerm2.&lt;br&gt;&lt;br&gt;1. ⌘ + ⇧ + . to open a Composer&lt;br&gt;2. Type some cool multi-line command&lt;br&gt;3. ⇧ + Return to execute&lt;br&gt;&lt;br&gt;Nice, right? 😃 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:57 PM - 17 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1559932351836200960" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1559932351836200960" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1559932351836200960" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--JWO9jtUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/977873484759158784/mOItIR7M_normal.jpg" alt="Sarah Dayan profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Sarah Dayan
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/frontstuff_io"&gt;@frontstuff_io&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Do we really need more swag at tech events? A lot of it eventually becomes plastic waste after years gathering dust on a cluttered shelf.&lt;br&gt;&lt;br&gt;Could be nice for attendees to have options: either get your swag bag or have a donation in your name to an OSS project of your choice.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      11:30 AM - 18 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1560227588391452672" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1560227588391452672" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1560227588391452672" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Animated Star Rating
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jkantner/embed/BarvVNa?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jonkantner"&gt;Jon Kantner&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Tooltip
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Adir-SL/embed/VwXGPmy?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/adircode"&gt;Adir&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – CSS Proposals @when, CSS Masonry, Carets
&lt;/h3&gt;

&lt;p&gt;In this episode of Syntax, Wes and Scott talk about proposals to CSS including @when, CSS Masonry, CSS Caret, ENV Vars, and Media Query Ranges.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3mK9fVTtgp7voZQUnXQFOM" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>css</category>
      <category>react</category>
    </item>
    <item>
      <title>Weekly Digest 32/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 14 Aug 2022 16:29:11 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-322022-1987</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-322022-1987</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #32 of this year.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How Our Organization Improved Web Accessibility (Case Study)
&lt;/h3&gt;

&lt;p&gt;In this article, Catherine Houle and Ilknur Eren share how their organization “Understood” removes barriers for people who learn and think differently by combining accessibility and usability in their processes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.smashingmagazine.com/2022/08/organization-improved-web-accessibility-case-study/"&gt;How Our Organization Improved Web Accessibility (Case Study) - Smashing Magazine&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Study of Shaders with React Three Fiber
&lt;/h3&gt;

&lt;p&gt;A complete guide on how to use shaders with React Three Fiber, work with uniforms and varyings, and build dynamic, interactive and composable materials with them through 8 unique 3D scenes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.maximeheckel.com/posts/the-study-of-shaders-with-react-three-fiber"&gt;The Study of Shaders with React Three Fiber - Maxime Heckel's Blog&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Unicode, in friendly terms: ASCII, UTF-8, code points, character encodings, and more
&lt;/h3&gt;

&lt;p&gt;Ever been bit by a Unicode bug? Maybe you weren't treating UTF-8 encoded data correctly, or tried to read it as ASCII? Maybe you mixed up UTF-8 vs UTF-16? Unicode and character encoding might seem like a tricky topic, but let's break them down and learn about them piece by piece, from ASCII to code points to graphemes to combining character modifiers and more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ut74oHojxqo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.youtube.com/c/StudyingWithAlex"&gt;Alex&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to inspect animations
&lt;/h3&gt;

&lt;p&gt;You can use the Animations tab in DevTools to inspect, scrub and modify animations.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lVLzkleL_CE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creative CSS Layout
&lt;/h3&gt;

&lt;p&gt;CSS layout has moved along in leaps and bounds in the past few years. Beyond flexbox and Grid, there is aspect-ratio, min, max and clamp functions, custom properties, and logical properties, all of which can help us solve common layout challenges.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/tueTFd2TQUA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/MicheBarks"&gt;Michelle Barker&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hugo in 100 Seconds
&lt;/h3&gt;

&lt;p&gt;Hugo is an extremely fast static site generator for building websites with markdown. It is written in the Go programming language and provides a large collection of content management tools for developers.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0RKpf3rK57I"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lyra
&lt;/h3&gt;

&lt;p&gt;Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/nearform"&gt;
        nearform
      &lt;/a&gt; / &lt;a href="https://github.com/nearform/lyra"&gt;
        lyra
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🌌  Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/nearform/lyra./misc/lyra-logo.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ppSTVBze--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/nearform/lyra./misc/lyra-logo.png" alt="Lyra"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nearform/lyra/actions/workflows/tests.yml"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5oJt9_8m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/nearform/lyra/actions/workflows/tests.yml/badge.svg%3Fbranch%3Dmain" alt="Tests"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Try the &lt;a href="https://nearform.github.io/lyra/demo" rel="nofollow"&gt;live demo&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Installation&lt;/h1&gt;
&lt;p&gt;You can install Lyra using &lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;yarn&lt;/code&gt;, &lt;code&gt;pnpm&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm i &lt;a class="mentioned-user" href="https://dev.to/nearform"&gt;@nearform&lt;/a&gt;/lyra&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;yarn add &lt;a class="mentioned-user" href="https://dev.to/nearform"&gt;@nearform&lt;/a&gt;/lyra&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm add &lt;a class="mentioned-user" href="https://dev.to/nearform"&gt;@nearform&lt;/a&gt;/lyra&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
Usage&lt;/h1&gt;
&lt;p&gt;Lyra is quite simple to use. The first thing to do is to create a new database instance and set an indexing schema:&lt;/p&gt;
&lt;div class="highlight highlight-source-js notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; &lt;span class="pl-s1"&gt;create&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-s1"&gt;insert&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-s1"&gt;search&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-s1"&gt;remove&lt;/span&gt; &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;'&lt;a class="mentioned-user" href="https://dev.to/nearform"&gt;@nearform&lt;/a&gt;/lyra'&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;db&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;create&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt;
  &lt;span class="pl-c1"&gt;schema&lt;/span&gt;: &lt;span class="pl-kos"&gt;{&lt;/span&gt;
    &lt;span class="pl-c1"&gt;author&lt;/span&gt;: &lt;span class="pl-s"&gt;'string'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
    &lt;span class="pl-c1"&gt;quote&lt;/span&gt;: &lt;span class="pl-s"&gt;'string'&lt;/span&gt;
  &lt;span class="pl-kos"&gt;}&lt;/span&gt;
&lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Lyra will only index string properties, but will allow you to set and store additional data if needed.&lt;/p&gt;
&lt;p&gt;Once the db instance is created, you can start adding some documents:&lt;/p&gt;
&lt;div class="highlight highlight-source-js notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-en"&gt;insert&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;db&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
  &lt;span class="pl-c1"&gt;quote&lt;/span&gt;: &lt;span class="pl-s"&gt;'It is during our darkest moments that we must focus to see the light.'&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
  &lt;span class="pl-c1"&gt;author&lt;/span&gt;: &lt;span class="pl-s"&gt;'Aristotle'&lt;/span&gt;
&lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-en"&gt;insert&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;db&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
  &lt;span class="pl-c1"&gt;quote&lt;/span&gt;: &lt;span class="pl-s"&gt;'If you really&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/nearform/lyra"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Fluent Emoji
&lt;/h3&gt;

&lt;p&gt;Fluent Emoji are a collection of familiar, friendly, and modern emoji from Microsoft.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/microsoft"&gt;
        microsoft
      &lt;/a&gt; / &lt;a href="https://github.com/microsoft/fluentui-emoji"&gt;
        fluentui-emoji
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Fluent Emoji&lt;/h1&gt;
&lt;p&gt;Fluent Emoji are a collection of familiar, friendly, and modern emoji from Microsoft.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/microsoft/fluentui-emojiart/readme_banner.webp"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c6xmqG8_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/microsoft/fluentui-emojiart/readme_banner.webp" alt="Fluent Emoji"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Contact&lt;/h2&gt;
&lt;p&gt;Please feel free to &lt;a href="https://github.com/microsoft/fluentui-emoji/issues/new"&gt;open a GitHub issue&lt;/a&gt; and assign to the following points of contact with questions or requests.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jason Custer(&lt;a href="https://github.com/jasoncuster"&gt;@jasoncuster&lt;/a&gt;) / Spencer Nelson(&lt;a href="https://github.com/spencer-nelson"&gt;@spencer-nelson&lt;/a&gt;) - Design&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Code of Conduct&lt;/h2&gt;
&lt;p&gt;This project has adopted the &lt;a href="https://opensource.microsoft.com/codeofconduct" rel="nofollow"&gt;Microsoft Open Source Code of Conduct&lt;/a&gt;. For more information see the &lt;a href="https://opensource.microsoft.com/codeofconduct/faq/" rel="nofollow"&gt;Code of Conduct FAQ&lt;/a&gt; or contact &lt;a href="https://github.com/microsoft/fluentui-emojimailto:opencode@microsoft.com"&gt;opencode@microsoft.com&lt;/a&gt; with any additional questions or comments.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/microsoft/fluentui-emoji"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Birdies: Dream Team
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4NsOOM1C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3256838/file/original-aa38766dcf7a0788aa01b527578d7fa6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4NsOOM1C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3256838/file/original-aa38766dcf7a0788aa01b527578d7fa6.png" alt="by [Anna Kirilenko](https://dribbble.com/shots/19051338-Birdies-Dream-Team)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/19051338-Birdies-Dream-Team"&gt;Anna Kirilenko&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CosyPOS – restaurant POS system
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZUUGxe3P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3261378/file/still-257de2f1d3d1b2abe102e2c9b0cd1b41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZUUGxe3P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3261378/file/still-257de2f1d3d1b2abe102e2c9b0cd1b41.png" alt="by [Dmitry Lauretsky](https://dribbble.com/shots/19061261-CosyPOS-restaurant-POS-system)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/19061261-CosyPOS-restaurant-POS-system"&gt;Dmitry Lauretsky&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Niafty - NFT mobile app
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KWSS6JH6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/6013606/screenshots/19055182/media/affc7beee5550f6ff27e7f034cea229e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KWSS6JH6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/6013606/screenshots/19055182/media/affc7beee5550f6ff27e7f034cea229e.png" alt="by [Azhar Dwi](https://www.notion.so/Weekly-Digest-32-2022-32624e87bce047b096541f1c070e99a9)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.notion.so/Weekly-Digest-32-2022-32624e87bce047b096541f1c070e99a9"&gt;Azhar Dwi&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a2HQaIpi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1556644404361846787/pu/img/6oUB66cZ_SVeYBio.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ihOdCEGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1493939279256559622/iM1KTMLr_normal.jpg" alt="Daniel Velasquez profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Daniel Velasquez
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @anemolito
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      This is one of my favorite executions of motion in Webgl by &lt;a href="https://twitter.com/hellomondaycom"&gt;@hellomondaycom&lt;/a&gt; &lt;br&gt;&lt;br&gt;Not only it's satifying to flip pages, but it supports and guides you through a powerful message! &lt;br&gt;&lt;br&gt;See it here: &lt;a href="https://t.co/uWwiBL8LZn"&gt;howtotalktowhitekidsaboutracism.com&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      14:12 PM - 08 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1556644475509899266" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1556644475509899266" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1556644475509899266" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
    &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__two-pics"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7t6fGOoD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FZ8u-_PXkAM-4D2.png" alt="unknown tweet media content"&gt;
    &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--IxdUBQh4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1444369873325395969/krGB_JP7_normal.jpg" alt="Marco Biedermann profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Marco Biedermann
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @biedermannmarco
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Another great use-case for using the CSS `:has` selector: Adding an asterisk to a form label if the input field is required. No need to add any additional markup&lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/web"&gt;#web&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/web"&gt;#web&lt;/a&gt;development &lt;a href="https://twitter.com/hashtag/html"&gt;#html&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/css"&gt;#css&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      09:02 AM - 12 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1558016071982096384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1558016071982096384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1558016071982096384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Sparkly Shiny Text
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/oNqdmbW?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS Portal Ring
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/eYMPmJW?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 31/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 07 Aug 2022 16:51:53 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-312022-3cg7</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-312022-3cg7</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #31 of this year.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Exploring CSS Grid’s Implicit Grid and Auto-Placement Powers
&lt;/h3&gt;

&lt;p&gt;When working with CSS Grid there is an approach for creating grids without any explicit definition. We call this the implicit grid.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://css-tricks.com/exploring-css-grids-implicit-grid-and-auto-placement-powers/"&gt;Exploring CSS Grid's Implicit Grid and Auto-Placement Powers | CSS-Tricks&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;CSS border animations&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Looking at several ways to animate a border in CSS&lt;/p&gt;

&lt;p&gt;&lt;a href="https://web.dev/css-border-animations/"&gt;CSS border animations&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  New in Chrome 104: Region Capture, Media Queries, Shared Element Transitions, and more!
&lt;/h3&gt;

&lt;p&gt;Chrome 104 is rolling out now! With region capture, you can now specify a crop area when using getDisplayMedia to capture the current tab. Media query syntax can be written using mathematical comparison operators. Shared Element Transitions start a new origin trial. And there's plenty more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/GIt-g0nkt8w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TensorFlow in 100 Seconds
&lt;/h3&gt;

&lt;p&gt;TensorFlow is a tool for machine learning capable of building deep neural networks with high-level Python code. It provides developer-friendly APIs that help software engineers train, analyze, and deploy ML models.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/i8NETqtGHms"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  *&lt;strong&gt;&lt;em&gt;What are Chrome release channels?&lt;/em&gt;&lt;/strong&gt;*
&lt;/h3&gt;

&lt;p&gt;Chrome has four release channels: Canary, Dev, Beta, and Stable. This video explains why, and shows how you can make the most of each channel.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/WL1guL5n9PU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Oh, Snap! | CSS Day 2022
&lt;/h3&gt;

&lt;p&gt;CSS scroll-snap is a classic CSS property; a small, innocent-looking API with huge potential. Learn the basics and value essentials of CSS scroll-snap, the ancillary properties scroll-padding, and scroll-margin, debugging with DevTools, plus a bag of snap tricks and a glimpse into supporting future properties.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/34zcWFLCDIc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/argyleink"&gt;Adam Argyle&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GitHub City
&lt;/h3&gt;

&lt;p&gt;Create a 3D city from your GitHub contributions&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/honzaap"&gt;
        honzaap
      &lt;/a&gt; / &lt;a href="https://github.com/honzaap/GithubCity"&gt;
        GithubCity
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Create a 3D city from your GitHub contributions 🏙
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/honzaap/GithubCity./favicon.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--znHggea4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/honzaap/GithubCity./favicon.svg" width="100" height="100"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h1&gt;
GitHub City&lt;/h1&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2492bc75fc721ca9b693c7aed95772477e0396408f92adea0683ae764dff740c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f686f6e7a6161702f476974487562436974793f7374796c653d666c61742d737175617265"&gt;&lt;img alt="GitHub Repo stars" src="https://camo.githubusercontent.com/2492bc75fc721ca9b693c7aed95772477e0396408f92adea0683ae764dff740c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f686f6e7a6161702f476974487562436974793f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/bbb6a1ea050310eaa9ee6d811b77f2d579c92675bd245217c47a92e1c3be9d3f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f686f6e7a6161702f476974487562436974793f636f6c6f723d323431316564267374796c653d666c61742d737175617265"&gt;&lt;img alt="GitHub last commit" src="https://camo.githubusercontent.com/bbb6a1ea050310eaa9ee6d811b77f2d579c92675bd245217c47a92e1c3be9d3f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f686f6e7a6161702f476974487562436974793f636f6c6f723d323431316564267374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f363d52de0daaa1658fe2cd27a0af094c0ef97546bd34c31e90e7726616e6162/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f686f6e7a6161702f476974487562436974793f7374796c653d666c61742d737175617265"&gt;&lt;img alt="GitHub" src="https://camo.githubusercontent.com/f363d52de0daaa1658fe2cd27a0af094c0ef97546bd34c31e90e7726616e6162/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f686f6e7a6161702f476974487562436974793f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
What would Your city look like?&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://honzaap.github.io/GithubCity/" rel="nofollow"&gt;Create&lt;/a&gt; a 3D city from your GitHub contributions 🏙&lt;/p&gt;
&lt;h3&gt;
About&lt;/h3&gt;
&lt;p&gt;GitHub City uses ThreeJS to generate a 3D city from your GitHub contribution graph.&lt;/p&gt;
&lt;p&gt;Using hardware acceleration is highly recommended!&lt;/p&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Clone repository to your local machine&lt;/li&gt;
&lt;li&gt;Open terminal and &lt;code&gt;cd&lt;/code&gt; into repository folder&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;npm install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;npm run dev&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/honzaap/GithubCity"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;
&lt;h3&gt;
  
  
  *&lt;strong&gt;&lt;em&gt;Finance App&lt;/em&gt;&lt;/strong&gt;*
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4sfzNV1U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3245749/file/original-1c0193d96d10e32a5c3ea4fb26430f08.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4sfzNV1U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3245749/file/original-1c0193d96d10e32a5c3ea4fb26430f08.jpg" alt="by [Rakib Kowshar](https://dribbble.com/shots/19017329-Finance-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/19017329-Finance-App"&gt;Rakib Kowshar&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Food City Dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KEeYWYCF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/3991363/screenshots/19019037/media/d137a29ebb873ff2289d51476ca1e2f8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KEeYWYCF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/3991363/screenshots/19019037/media/d137a29ebb873ff2289d51476ca1e2f8.jpg" alt="by [Ella Moodi](https://dribbble.com/shots/19019037-Food-City-Dashboard)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/19019037-Food-City-Dashboard"&gt;Ella Moodi&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Joki - Job Finder App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gRPBxbo2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/10221461/screenshots/19016131/media/367f39e2a5b2531ca7e09f9325820e81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gRPBxbo2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/10221461/screenshots/19016131/media/367f39e2a5b2531ca7e09f9325820e81.png" alt="by [Rizal](https://dribbble.com/shots/19016131-Joki-Job-Finder-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/19016131-Joki-Job-Finder-App"&gt;Rizal&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C5O6zIOk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FZE95b-XkAUWWEK.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--7xN8W9xJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1539095852429774849/MSaFsfZD_normal.jpg" alt="Chris Staud profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Chris Staud
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @chrisstaud
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      📌 Git Workflow 🎨✨ 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      13:07 PM - 01 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1554091413272494080" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1554091413272494080" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1554091413272494080" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1qgn38DB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FZJO6OcWAAAvdGZ.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--A0ANdSf1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/965775897193275398/LLrUTVUs_normal.jpg" alt="Programmer Humor profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Programmer Humor
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @pr0grammerhum0r
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Some book recommendations for software engineers &lt;a href="https://t.co/J5PcwlNM1J"&gt;reddit.com/r/programmerhu…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      09:00 AM - 02 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1554391584728285189" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1554391584728285189" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1554391584728285189" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KUwQVIrp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FZXYts0WYAAUP5O.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xMAhDI7---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1035818042037612544/Bru2vfvb_normal.jpg" alt="Pawel Grzybek profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Pawel Grzybek
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/pawelgrzybek"&gt;@pawelgrzybek&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      🧠 TIL: There is a `brew autoremove` command that removes no longer needed formulas. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      02:58 AM - 05 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1555387620200423425" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1555387620200423425" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1555387620200423425" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--czLlKAYg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1555466123008770048/pu/img/JDgg_Mx8VLe24YJP.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrqJXnpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1465780299380502537/pptBYF44_normal.jpg" alt="Stefan Judis profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Stefan Judis
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/stefanjudis"&gt;@stefanjudis&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      The new VS Code version comes with an experimental "sticky" mode and I quite like it! 👏&lt;br&gt;&lt;br&gt;`"editor.experimental.stickyScroll.enabled": true`&lt;br&gt;&lt;br&gt;Video alt: Scrolling in VS Code showing that function signatures are sticky. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      08:10 AM - 05 Aug 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1555466217774882818" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1555466217774882818" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1555466217774882818" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Glowing Marbles
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/krautgti/embed/vYReorP?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://codepen.io/krautgti"&gt;KrautGTI&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Footer sorrow
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ste-vg/embed/PoQgvBK?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/steeevg"&gt;Steve Gardner&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hover Glide Image Gallery
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Hyperplexed/embed/VwXXPKJ?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/Hyperplexed"&gt;Hyperplexed&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Call Kent Podcast – Using userEvent vs fireEvent
&lt;/h3&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/4twv7Xykm2Wh9hTLQQc2Wc" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>css</category>
      <category>react</category>
    </item>
    <item>
      <title>Weekly Digest 30/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 31 Jul 2022 17:11:16 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-302022-ofa</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-302022-ofa</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #30.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Solving “The Dangler” Conundrum with Container Queries and &lt;code&gt;:has()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://daverupert.com/2022/07/solving-the-dangler-conundrum-with-has-and-container-queries"&gt;Solving "The Dangler" Conundrum with Container Queries and :has()&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Statements Vs. Expressions
&lt;/h3&gt;

&lt;p&gt;One of the most foundational things to understand about JavaScript is that programs are made up of statements, and statements have slots for expressions. In this blog post, we'll dig into how these two structures work, and see how building an intuition about this can help us solve practical problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.joshwcomeau.com/javascript/statements-vs-expressions/"&gt;Statements Vs. Expressions&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Thinking on ways to solve carousels
&lt;/h3&gt;

&lt;p&gt;In today's GUI Challenge, &lt;a href="https://www.youtube.com/channel/UCBGr3ZMcV5jke40_Wrv3fNA"&gt;@Adam Argyle&lt;/a&gt; shares the features and aspects of a carousel component: adaptive theming, adaptive to various user input types, adaptive to author time options, and adaptive to user preferences.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/CXJv6zM003M"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Chrome 104 - What’s New in DevTools
&lt;/h3&gt;

&lt;p&gt;Restart frame during debugging, slow replay options in the Recorder panel, and more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/4RXWfw7Xg_Y"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  I pressed ⌘B. You wouldn’t believe what happened next
&lt;/h3&gt;

&lt;p&gt;Whenever you press ⌘B in Figma, what happens is a choreography of events of surprising complexity. It’s a collision of two worlds – keyboard shortcuts and typography – each one with hundreds of years of history.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vUlnxjuYyzw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/mwichary"&gt;Marcin Wichary&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to log messages in the Console | DevTools Tips
&lt;/h3&gt;

&lt;p&gt;In this episode, Bramus and Jecelyn walk you through the different ways of logging and filtering messages in the Console.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/76U0gtuV9AY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  magic-regexp
&lt;/h3&gt;

&lt;p&gt;A compiled-away, type-safe, readable RegExp alternative&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/danielroe"&gt;
        danielroe
      &lt;/a&gt; / &lt;a href="https://github.com/danielroe/magic-regexp"&gt;
        magic-regexp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A compiled-away, type-safe, readable RegExp alternative
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
🦄 magic-regexp&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://npmjs.com/package/magic-regexp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/f39c8cab6e6e0600c476a1ddc7939749fb70f404c2530cca0c05e07eb096e2df/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6d616769632d7265676578703f7374796c653d666c61742d737175617265" alt="npm version"&gt;&lt;/a&gt;
&lt;a href="https://npmjs.com/package/magic-regexp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/0530eca017916653784aedccdb1a58d3ffd08c21f5c6eea62dc6a5a8d8ede754/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f6d616769632d7265676578703f7374796c653d666c61742d737175617265" alt="npm downloads"&gt;&lt;/a&gt;
&lt;a href="https://github.com/danielroe/magic-regexp/actions?query=workflow%3Aci"&gt;&lt;img src="https://camo.githubusercontent.com/aa6f390d26f5aea1650e5aa7b022f39ddc3a9c64b569243d54e4d93b434768d8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f64616e69656c726f652f6d616769632d7265676578702f63692f6d61696e3f7374796c653d666c61742d737175617265" alt="Github Actions"&gt;&lt;/a&gt;
&lt;a href="https://codecov.io/gh/danielroe/magic-regexp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/ab75cc8ddaca942719636c22a39739cd5f9d7791b402ac9eb328c2ab696c1cba/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f67682f64616e69656c726f652f6d616769632d7265676578702f6d61696e3f7374796c653d666c61742d737175617265" alt="Codecov"&gt;&lt;/a&gt;
&lt;a href="https://bundlephobia.com/package/magic-regexp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9bae51819d6d0e7a3f6167890b871de30a55d00a61056df8530f2c2e7f1df6e4/68747470733a2f2f696d672e736869656c64732e696f2f62756e646c6570686f6269612f6d696e7a69702f6d616769632d726567657870" alt="Bundlephobia"&gt;&lt;/a&gt;
&lt;a href="https://lgtm.com/projects/g/danielroe/magic-regexp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/5ce57f6b908889755038741f553dade9eb399ff7f1b70b8bb869bf4eb156ce58/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f67726164652f6a6176617363726970742f6769746875622f64616e69656c726f652f6d616769632d7265676578703f7374796c653d666c61742d737175617265" alt="LGTM"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A compiled-away, type-safe, readable RegExp alternative&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/danielroe/magic-regexp/blob/main/CHANGELOG.md"&gt;✨  Changelog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://regexp.dev" rel="nofollow"&gt;📖  Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackblitz.com/github/danielroe/magic-regexp/tree/main/playground" rel="nofollow"&gt;▶️  Online playground&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Runtime is zero-dependency and ultra-minimal&lt;/li&gt;
&lt;li&gt;Ships with transform to compile to pure RegExp&lt;/li&gt;
&lt;li&gt;Automatically typed capture groups&lt;/li&gt;
&lt;li&gt;Natural language syntax&lt;/li&gt;
&lt;li&gt;Generated RegExp displays on hover&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://regexp.dev" rel="nofollow"&gt;📖  Read more&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
💻 Development&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Clone this repository&lt;/li&gt;
&lt;li&gt;Enable &lt;a href="https://github.com/nodejs/corepack"&gt;Corepack&lt;/a&gt; using &lt;code&gt;corepack enable&lt;/code&gt; (use &lt;code&gt;npm i -g corepack&lt;/code&gt; for Node.js &amp;lt; 16.10)&lt;/li&gt;
&lt;li&gt;Install dependencies using &lt;code&gt;pnpm install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run interactive tests using &lt;code&gt;pnpm dev&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Similar packages&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://verbalexpressions.github.io/" rel="nofollow"&gt;verbal-expressions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/phenax/typed-regex/"&gt;typed-regex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
License&lt;/h2&gt;
&lt;p&gt;Made with ❤️&lt;/p&gt;
&lt;p&gt;Published under &lt;a href="https://github.com/danielroe/magic-regexp./LICENCE"&gt;MIT License&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/danielroe/magic-regexp"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Plop
&lt;/h3&gt;

&lt;p&gt;Consistency Made Simple&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/plopjs"&gt;
        plopjs
      &lt;/a&gt; / &lt;a href="https://github.com/plopjs/plop"&gt;
        plop
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Consistency Made Simple
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Plop&lt;/h1&gt;
&lt;p&gt;Micro-generator framework that makes it easy for an entire team to create files with a level of uniformity
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e6cd703c332e7041ee945d6c0ee75084bb19b485e10d4c6467a62a65e9a02071/68747470733a2f2f692e696d6775722e636f6d2f70656e55466b722e676966"&gt;&lt;img src="https://camo.githubusercontent.com/e6cd703c332e7041ee945d6c0ee75084bb19b485e10d4c6467a62a65e9a02071/68747470733a2f2f692e696d6775722e636f6d2f70656e55466b722e676966" alt="plop demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://plopjs.com/documentation/" rel="nofollow"&gt;Documentation also available on plopjs.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;
Getting Started&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/plop" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2f85a9b52fce50da7e477ac797ac4aae2e408793bc810582e4403f25a4ede809/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f706c6f702e737667" alt="npm"&gt;&lt;/a&gt;
 
&lt;a href="https://www.npmjs.com/package/plop" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c2d730d76d6826fbbd36254c7b6f2102711d9f89996cffdba48904afe9401f15/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f706c6f702e737667" alt="npm"&gt;&lt;/a&gt;
 
&lt;a href="https://join.slack.com/t/plopjs/shared_invite/zt-ehh69el1-2_DjgZRuMbpC9RnEa4M8cA" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9bcda033a3496037c3d813c7f879117eeb5327577efc45f25f14864d387af113/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736c61636b2d6a6f696e253230776f726b73706163652d677265656e" alt="plop on slack"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
What is Plop?&lt;/h2&gt;
&lt;p&gt;Plop is what I like to call a "micro-generator framework." Now, I call it that because it is a small tool that gives you a simple way to generate code or any other type of flat text files in a consistent way. You see, we all create structures and patterns in our code (routes, controllers, components, helpers, etc). These patterns change and improve over time so when you need to create a NEW &lt;em&gt;insert-name-of-pattern-here&lt;/em&gt;, it's not always easy to locate the files in your codebase that represent the current "best practice." That's where plop saves you. With plop, you have your "best practice" method of creating any given pattern in CODE. Code that can easily be run from the terminal…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/plopjs/plop"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Gum
&lt;/h3&gt;

&lt;p&gt;A tool for glamorous shell scripts&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/charmbracelet"&gt;
        charmbracelet
      &lt;/a&gt; / &lt;a href="https://github.com/charmbracelet/gum"&gt;
        gum
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A tool for glamorous shell scripts 🎀
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Gum&lt;/h1&gt;
&lt;p&gt;
    &lt;a href="https://stuff.charm.sh/gum/nutritional-information.png" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2abf7fae63e9572651937281c23ae73c61be8b01852bbcac7b5346a26ffd1566/68747470733a2f2f73747566662e636861726d2e73682f67756d2f67756d2e706e67" alt="Gum Image" width="450"&gt;&lt;/a&gt;
    &lt;br&gt;&lt;br&gt;
    &lt;a href="https://github.com/charmbracelet/gum/releases"&gt;&lt;img src="https://camo.githubusercontent.com/5cce8ba8122040ef35dc64ea9a868fabfeb2b6a7e23cc22a4252332c3a4d324e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f636861726d62726163656c65742f67756d2e737667" alt="Latest Release"&gt;&lt;/a&gt;
    &lt;a href="https://pkg.go.dev/github.com/charmbracelet/gum?tab=doc" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/376f038517a929a7fb4143c5b2330fb56346bd235028a14276be41747d94c2d0/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667" alt="Go Docs"&gt;&lt;/a&gt;
    &lt;a href="https://github.com/charmbracelet/gum/actions"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hf5-n75k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/charmbracelet/gum/workflows/build/badge.svg" alt="Build Status"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A tool for glamorous shell scripts. Leverage the power of
&lt;a href="https://github.com/charmbracelet/bubbles"&gt;Bubbles&lt;/a&gt; and &lt;a href="https://github.com/charmbracelet/lipgloss"&gt;Lip
Gloss&lt;/a&gt; in your scripts and aliases
without writing any Go code!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f820a22f7574d55e1d9ccd3bfb0d8c337811ff05ea07d8d4b504dd0dc09ee24e/68747470733a2f2f73747566662e636861726d2e73682f67756d2f64656d6f2e676966"&gt;&lt;img src="https://camo.githubusercontent.com/f820a22f7574d55e1d9ccd3bfb0d8c337811ff05ea07d8d4b504dd0dc09ee24e/68747470733a2f2f73747566662e636861726d2e73682f67756d2f64656d6f2e676966" width="600" alt="Shell running the ./demo.sh script"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The above example is running from a single shell script (&lt;a href="https://github.com/charmbracelet/gum./examples/demo.sh"&gt;source&lt;/a&gt;).&lt;/p&gt;
&lt;h2&gt;
Tutorial&lt;/h2&gt;
&lt;p&gt;Gum provides highly configurable, ready-to-use utilities to help you write
useful shell scripts and dotfiles aliases with just a few lines of code.&lt;/p&gt;
&lt;p&gt;Let's build a simple script to help you write &lt;a href="https://www.conventionalcommits.org/en/v1.0.0/#summary" rel="nofollow"&gt;Conventional
Commits&lt;/a&gt; for your
dotfiles.&lt;/p&gt;
&lt;p&gt;Start with a &lt;code&gt;#!/bin/sh&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#!&lt;/span&gt;/bin/sh&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Ask for the commit type with &lt;code&gt;gum choose&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;gum choose &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;fix&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;feat&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;docs&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;style&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;refactor&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;test&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;chore&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;revert&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Tip: this command itself will print to &lt;code&gt;stdout&lt;/code&gt; which is not all that useful
To make use of the command later on you can save the stdout to a &lt;code&gt;$VARIABLE&lt;/code&gt; or
&lt;code&gt;file.txt&lt;/code&gt;…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/charmbracelet/gum"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cyberpunk Dystopia 3D Icon Set
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I2nG1xQD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3179941/file/original-28242eb701f00a31ee2e7696b6bf84d2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I2nG1xQD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3179941/file/original-28242eb701f00a31ee2e7696b6bf84d2.png" alt="by [Krafted](https://dribbble.com/shots/18894095-Cyberpunk-Dystopia-3D-Icon-Set)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18894095-Cyberpunk-Dystopia-3D-Icon-Set"&gt;Krafted&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Food Delivery Maemlur - Mobile Apps.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W875AaZJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3223703/file/original-efd7e8d5932c254df73da86a7da5c661.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W875AaZJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3223703/file/original-efd7e8d5932c254df73da86a7da5c661.png" alt="by [Habibi](https://dribbble.com/shots/18928557-Food-Delivery-Maemlur-Mobile-Apps)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18928557-Food-Delivery-Maemlur-Mobile-Apps"&gt;Habibi&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Agriculture Assistant App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6sHV4Fz2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3216628/file/original-e9b3fcfea00eaf6795b64a80c7b77c6c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6sHV4Fz2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3216628/file/original-e9b3fcfea00eaf6795b64a80c7b77c6c.png" alt="by [Conceptzilla](https://dribbble.com/shots/18913570-Agriculture-Assistant-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18913570-Agriculture-Assistant-App"&gt;Conceptzilla&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Edr8xvmx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FYsg9s0aAAA1LO6.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrqJXnpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1465780299380502537/pptBYF44_normal.jpg" alt="Stefan Judis profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Stefan Judis
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/stefanjudis"&gt;@stefanjudis&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I feel like I saw a wild and complex CSS selector the last 5 days in a row. &lt;br&gt;&lt;br&gt;Today's edition – do you remember the quantity query, which allows to style elements only if there's X of them. 😲🙈 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      19:10 PM - 27 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1552370987613786112" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1552370987613786112" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1552370987613786112" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8l3d_-NC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FYvOSYlXoAI0Xwk.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--T6J1YPno--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1268171639331737602/M7kMlBuB_normal.jpg" alt="Chris Heilmann profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Chris Heilmann
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/codepo8"&gt;@codepo8&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Want to see all IDs in the current document in the Console?&lt;br&gt;console.table($$('*[id]'),['tagName','id']) 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      07:47 AM - 28 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1552561448919900160" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1552561448919900160" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1552561448919900160" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PNI_blks--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1552662687401873409/pu/img/fu7_1duzA3GfQUUG.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrqJXnpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1465780299380502537/pptBYF44_normal.jpg" alt="Stefan Judis profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Stefan Judis
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/stefanjudis"&gt;@stefanjudis&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Every time I discover that zsh/oh-my-zsh has auto path expansion on TAB, I'm so amazed. &lt;br&gt;&lt;br&gt;But it somehow doesn't stick. Maybe this time!&lt;br&gt;&lt;br&gt;Video alt: terminal command "cd p/g/s/d" which expands to "cd Projects/github.com/stefanjudis/dotfiles" after pressing tab. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      14:30 PM - 28 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1552662724332625920" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1552662724332625920" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1552662724332625920" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Responsive Faux 3D Content Scroller
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/gOeXgXv?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS only back to top button
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/t_afif/embed/poLWLJG?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChallengesCss"&gt;Temani Afif&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cascading CSS Text Effects
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/gOeGmRN?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;What is Bun? The New JS Runtime&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this Hasty Treat, Scott and Wes talk about Bun, a new all-in-one JavaScript runtime. What makes Bun so fast? What's on Bun's roadmap? And why do we need another JavaScript runtime?&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/35wlpIwrrbFkQjolF7jonw" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 29/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 24 Jul 2022 17:04:34 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-292022-hhi</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-292022-hhi</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #29 ☀️&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The case for using Sass in 2022
&lt;/h3&gt;

&lt;p&gt;With CSS adding a lot of equivalent features, is Sass relevant? The answer is still Yes, it is far from obsolete, despite what some folks might tell you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.mayank.co/the-case-for-using-sass-in-2022" rel="noopener noreferrer"&gt;The case for using Sass in 2022&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Help Me Help You: A Guide to Asking for Help
&lt;/h3&gt;

&lt;p&gt;It’s not overly difficult at the end of the day: be kind and provide relevant information so people have a good overview of the context. Then be patient until someone picks it up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kittygiraudel.com/2022/07/15/a-guide-to-asking-for-help/" rel="noopener noreferrer"&gt;Help Me Help You: A Guide to Asking for Help&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  CSS Variable Secrets
&lt;/h3&gt;

&lt;p&gt;By now most developers use CSS custom properties on the regular, but few understand them deeply enough to harness their full power. Lea will take you on a journey from the practical to the mind-blowing, and from the widely implemented to the cutting edge, demonstrating a host of tips, tricks, and gotchas relating to CSS variables.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ZuZizqDF4q8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/LeaVerou" rel="noopener noreferrer"&gt;Lea Verou&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Overloads vs generics: which is better?
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Vr1BUFw6dJM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/mattpocockuk" rel="noopener noreferrer"&gt;Matt Pocock&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Carbon Lang… The C++ killer?
&lt;/h3&gt;

&lt;p&gt;Carbon is a new early-stage programming language from Google designed as a successor to C++ for low level systems development. It has full interoperability with Cpp, along with improved memory safety, generics, and a cleaner syntax.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/-bHK0qmp06c"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev" rel="noopener noreferrer"&gt;Fireship&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ML Course Notes
&lt;/h3&gt;

&lt;p&gt;Sharing course notes on all topics related to machine learning, NLP, and AI.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dair-ai" rel="noopener noreferrer"&gt;
        dair-ai
      &lt;/a&gt; / &lt;a href="https://github.com/dair-ai/ML-Course-Notes" rel="noopener noreferrer"&gt;
        ML-Course-Notes
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🎓 Sharing machine learning course / lecture notes.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🎓 Machine Learning Course Notes&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A place to collaborate and share lecture notes on all topics related to machine learning, NLP, and AI.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WIP&lt;/code&gt; denotes work in progress.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Machine Learning Specialization (2022)&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/specializations/machine-learning-introduction" rel="nofollow noopener noreferrer"&gt;Website&lt;/a&gt; | Instructor: Andrew Ng&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tbody&gt;
&lt;tr&gt;
    &lt;th&gt;&lt;b&gt;Lecture&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Video&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Author&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Introduction to Machine Learning&lt;/td&gt;
    &lt;td&gt;Supervised Machine Learning: Regression and Classification&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://www.coursera.org/learn/machine-learning?specialization=machine-learning-introduction" rel="nofollow noopener noreferrer"&gt;Videos&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://dair-ai.notion.site/Course-1-Supervised-Machine-Learning-3a200719f58145dc8a701a2545bdf9f4" rel="nofollow noopener noreferrer"&gt;Notes&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
   &lt;tr&gt;
    &lt;td&gt;Advanced Learning Algorithms&lt;/td&gt;
    &lt;td&gt;Advanced Learning Algorithms&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://www.coursera.org/learn/advanced-learning-algorithms?specialization=machine-learning-introduction" rel="nofollow noopener noreferrer"&gt;Videos&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;WIP&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Unsupervised Learning, Recommenders, Reinforcement Learning&lt;/td&gt;
    &lt;td&gt;Unsupervised Learning, Recommenders, Reinforcement Learning&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://www.coursera.org/learn/unsupervised-learning-recommenders-reinforcement-learning?specialization=machine-learning-introduction" rel="nofollow noopener noreferrer"&gt;Videos&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;WIP&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;MIT 6.S191 Introduction to Deep Learning (2022)&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="http://introtodeeplearning.com/" rel="nofollow noopener noreferrer"&gt;Website&lt;/a&gt; | Lectures by: Alexander Amini and Ava Soleimany&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tbody&gt;
&lt;tr&gt;
    &lt;th&gt;&lt;b&gt;Lecture&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Video&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/th&gt;
    &lt;th&gt;&lt;b&gt;Author&lt;/b&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Introduction to Deep Learning&lt;/td&gt;
    &lt;td&gt;Basic fundamentals of neural networks and deep learning.&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://youtu.be/7sB052Pz0sQ" rel="nofollow noopener noreferrer"&gt;Video&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://dair-ai.notion.site/Lecture-1-Intro-to-DL-d4929997a7a34a33a163cf40ba00360b" rel="nofollow noopener noreferrer"&gt;Notes&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;RNNs and Transformers&lt;/td&gt;
    &lt;td&gt;Introduction to recurrent neural networks and transformers.&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://youtu.be/QvkQ1B3FBqA" rel="nofollow noopener noreferrer"&gt;Video&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://dair-ai.notion.site/Lecture-2-Recurrent-Neural-Networks-and-Transformers-71fb3ba2a24f4b6c8cc77281fc19cfab" rel="nofollow noopener noreferrer"&gt;Notes&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Deep Computer Vision&lt;/td&gt;
    &lt;td&gt;Deep Neural Networks for Computer Vision.&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://youtu.be/uapdILWYTzE" rel="nofollow noopener noreferrer"&gt;Video&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://dair-ai.notion.site/Lecture-3-Deep-Computer-Vision-e43a17b50f7e4b5f8393c070b22340a3" rel="nofollow noopener noreferrer"&gt;Notes&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Deep Generative Modeling&lt;/td&gt;
    &lt;td&gt;Autoencoders and GANs.&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://youtu.be/QcLlc9lj2hk" rel="nofollow noopener noreferrer"&gt;Video&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://dair-ai.notion.site/Lecture-4-Deep-Generative-Modeling-928d24a5764d4bf1bcf5fb4c4234f6ac" rel="nofollow noopener noreferrer"&gt;Notes&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;a href="https://twitter.com/omarsar0" rel="nofollow noopener noreferrer"&gt;Elvis&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Deep Reinforcement Learning&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/dair-ai/ML-Course-Notes" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  fireworks.js
&lt;/h3&gt;

&lt;p&gt;A simple fireworks library! Ready to use components available for React, Vue 3, Svelte, Angular, Preact, Solid, and Web Components.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/crashmax-dev" rel="noopener noreferrer"&gt;
        crashmax-dev
      &lt;/a&gt; / &lt;a href="https://github.com/crashmax-dev/fireworks-js" rel="noopener noreferrer"&gt;
        fireworks-js
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🎆 A simple fireworks library! Ready to use components available for React, Vue 3, Svelte, Angular, Preact, Solid, and Web Components.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://fireworks.js.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ad8899a53b4bb857c94b4facda0a0e430e00ea28d046fca47a009697a044c6d0/68747470733a2f2f66697265776f726b732e6a732e6f72672f696d616765732f66697265776f726b735f62616e6e65722e676966" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;b&gt;A simple fireworks library! | &lt;a href="https://fireworks.js.org" rel="nofollow noopener noreferrer"&gt;fireworks.js.org&lt;/a&gt;&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://www.upwork.com/o/companies/~01e5f1563365e3c1b5/" rel="nofollow noopener noreferrer"&gt;
    
      
      &lt;a href="https://camo.githubusercontent.com/970181612b4bc5e8e906c3de81aca15bfeebb68dfeae7284b4535233b1df3119/68747470733a2f2f72332d6465762e6769746875622e696f2f6272616e642f62616467652d6461726b2e737667" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/970181612b4bc5e8e906c3de81aca15bfeebb68dfeae7284b4535233b1df3119/68747470733a2f2f72332d6465762e6769746875622e696f2f6272616e642f62616467652d6461726b2e737667"&gt;&lt;/a&gt;
    
  &lt;/a&gt;
  &lt;a href="https://github.com/crashmax-dev/fireworks-js/actions" rel="noopener noreferrer"&gt;
    &lt;img alt="GitHub Workflow Status" src="https://camo.githubusercontent.com/7430b614b8cdf6a6010641f6af9f5ff0f810ffe8c20b3a8516a65b5dbc818b47/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f63726173686d61782d6465762f66697265776f726b732d6a732f67682d70616765732e796d6c3f6272616e63683d6d6173746572"&gt;
  &lt;/a&gt;
  &lt;a href="https://github.com/crashmax-dev/fireworks-js/blob/master/LICENSE" rel="noopener noreferrer"&gt;
    &lt;img alt="GitHub" src="https://camo.githubusercontent.com/7f7edb262d62f3c891928b0bac1ab8380ef68c5535a0f62be698ea6aa52f7fa3/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f63726173686d61782d6465762f66697265776f726b732d6a733f636f6c6f723d73756363657373"&gt;
  &lt;/a&gt;
  &lt;a href="https://www.npmjs.com/package/fireworks-js" rel="nofollow noopener noreferrer"&gt;
    &lt;img alt="npm" src="https://camo.githubusercontent.com/f0c53a52e99c072f35f2922d17a55ae8945f3e1d53a0ab0feab1a158b02a6a50/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f66697265776f726b732d6a733f636f6c6f723d6f72616e6765"&gt;
  &lt;/a&gt;
  &lt;a href="https://www.npmjs.com/package/fireworks-js" rel="nofollow noopener noreferrer"&gt;
    &lt;img alt="npm" src="https://camo.githubusercontent.com/cc40125c8626dffba8ef3a0afb34b7f2b4565168f3e7f51d85cfb24617ee69f0/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f66697265776f726b732d6a733f636f6c6f723d626c7565"&gt;
  &lt;/a&gt;
  &lt;a href="https://bundlephobia.com/package/fireworks-js@latest" rel="nofollow noopener noreferrer"&gt;
    &lt;img alt="npm bundle size" src="https://camo.githubusercontent.com/abec468724c63d78494e6db7f3e9999fe5cb34f204284d33834d4a525cf5bc88/68747470733a2f2f696d672e736869656c64732e696f2f62756e646c6570686f6269612f6d696e7a69702f66697265776f726b732d6a73"&gt;
  &lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt;&lt;br&gt;
This readme refers to upcoming v2 version, &lt;a href="https://github.com/crashmax-dev/fireworks-js/tree/v1" rel="noopener noreferrer"&gt;read here&lt;/a&gt; for v1 documentation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#features" rel="noopener noreferrer"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#browsers-support" rel="noopener noreferrer"&gt;Browsers support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#demo" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#installation" rel="noopener noreferrer"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#cdn" rel="noopener noreferrer"&gt;CDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/crashmax-dev/fireworks-js#usage" rel="noopener noreferrer"&gt;Usage&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-js" rel="noopener noreferrer"&gt;fireworks-js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsreact" rel="noopener noreferrer"&gt;@fireworks-js/react&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jspreact" rel="noopener noreferrer"&gt;@fireworks-js/preact&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jssolid" rel="noopener noreferrer"&gt;@fireworks-js/solid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsvue" rel="noopener noreferrer"&gt;@fireworks-js/vue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jssvelte" rel="noopener noreferrer"&gt;@fireworks-js/svelte&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsangular" rel="noopener noreferrer"&gt;@fireworks-js/angular&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsweb" rel="noopener noreferrer"&gt;@fireworks-js/web&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://github.com/crashmax-dev/fireworks-js#documentation" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#options" rel="noopener noreferrer"&gt;Options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#api" rel="noopener noreferrer"&gt;API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#community" rel="noopener noreferrer"&gt;Community&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;🔥 Zero &lt;a href="https://www.npmjs.com/package/fireworks-js?activeTab=dependencies" rel="nofollow noopener noreferrer"&gt;dependencies&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⚙️ Flexible &lt;a href="https://github.com/crashmax-dev/fireworks-js#options" rel="noopener noreferrer"&gt;configuration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 Lightweight (&lt;a href="https://bundlephobia.com/package/fireworks-js" rel="nofollow noopener noreferrer"&gt;~3.0kB gzipped&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;📜 Supports &lt;a href="https://www.typescriptlang.org" rel="nofollow noopener noreferrer"&gt;TypeScript&lt;/a&gt; type definition&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Browsers support&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Fedge%2Fedge_48x48.png" alt="IE / Edge" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;Edge&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Ffirefox%2Ffirefox_48x48.png" alt="Firefox" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;Firefox&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Fchrome%2Fchrome_48x48.png" alt="Chrome" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;Chrome&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Fsafari%2Fsafari_48x48.png" alt="Safari" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;Safari&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Fsafari-ios%2Fsafari-ios_48x48.png" alt="iOS Safari" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;iOS Safari&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Fopera%2Fopera_48x48.png" alt="Opera" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;Opera&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;
&lt;br&gt;
&lt;a href="http://godban.github.io/browsers-support-badges/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Falrra%2Fbrowser-logos%2Fmaster%2Fsrc%2Fyandex%2Fyandex_48x48.png" alt="Yandex" width="24px" height="24px"&gt;&lt;/a&gt;&lt;br&gt;Yandex&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✔&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;You can play with &lt;code&gt;fireworks-js&lt;/code&gt; at &lt;a href="https://fireworks.js.org" rel="nofollow noopener noreferrer"&gt;fireworks.js.org&lt;/a&gt; or &lt;a href="https://stackblitz.com/edit/fireworks-js-react?file=src%2FApp.tsx" rel="nofollow noopener noreferrer"&gt;stackblitz.com&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install fireworks-js&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;yarn add fireworks-js&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm add fireworks-js&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-js" rel="noopener noreferrer"&gt;fireworks-js&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/fireworks-js" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/652ea87da57f7add06a901395b422e257ab2543b0524809441ef06e4f4d3ec89/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f66697265776f726b732d6a73" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Vanilla JS&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsreact" rel="noopener noreferrer"&gt;@fireworks-js/react&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/react" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/76b0e2463e20d71c5f4b591ace0111b83f88308a1149cf775c216ec8dadd7f6e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f72656163742e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;React component&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jspreact" rel="noopener noreferrer"&gt;@fireworks-js/preact&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/preact" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d8afacb101c3594062082a44aa51340c6839d157dcd7acea7c4d6aaa5573e7ea/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f7072656163742e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Preact component&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jssolid" rel="noopener noreferrer"&gt;@fireworks-js/solid&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/solid" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/69b9ee7f304e174499c29a11766a22e85d38706f680800543f64067b9377c596/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f736f6c69642e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Solid component&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsvue" rel="noopener noreferrer"&gt;@fireworks-js/vue&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/vue" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ec05a7974cf3e716c4889f6f8823c7959306824e1a1b4b5dd9452b492a4f114f/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f7675652e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Vue 3 component&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jssvelte" rel="noopener noreferrer"&gt;@fireworks-js/svelte&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/svelte" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fd4e5d6a27cf310e25165667f5379bdfe2c28bdd0d814025407cc5fa3922b30a/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f7376656c74652e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Svelte component&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsangular" rel="noopener noreferrer"&gt;@fireworks-js/angular&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/angular" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/46d3cd9bc283c78bc92ea1a8ae1bae7ac6df076e6080085b6a9e570dc97d7317/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f616e67756c61722e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Angular component&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://github.com/crashmax-dev/fireworks-js#fireworks-jsweb" rel="noopener noreferrer"&gt;@fireworks-js/web&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;&lt;a href="https://npm.im/@fireworks-js/web" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4e8a41f6d8ec87a2f69abc46c91e079c62419f200c805a851ec654de46d1a545/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f4066697265776f726b732d6a732f7765622e737667" alt=""&gt;&lt;/a&gt;&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Web components&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CDN&lt;/h1&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&amp;lt;!-- jsDelivr  --&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;https://cdn.jsdelivr.net/npm/fireworks-js@2.x/dist/index.umd.js&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-c"&gt;&amp;lt;!-- UNPKG --&amp;gt;&lt;/span&gt;
&lt;span class="pl-kos"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt; &lt;span class="pl-c1"&gt;src&lt;/span&gt;="&lt;span class="pl-s"&gt;https://unpkg.com/fireworks-js@2.x/dist/index.umd.js&lt;/span&gt;"&lt;span class="pl-kos"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="pl-ent"&gt;script&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/crashmax-dev/fireworks-js" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;






&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Torial :: E-Learning Dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.dribbble.com%2Fuserupload%2F3171683%2Ffile%2Foriginal-c060d0d31d9640fb24c8fad83a3d7967.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.dribbble.com%2Fuserupload%2F3171683%2Ffile%2Foriginal-c060d0d31d9640fb24c8fad83a3d7967.png" alt="by [UnArshia](https://www.notion.so/Weekly-Digest-29-2022-b7ab8c7ddf064a9fa032869e4bfa5aa7)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.notion.so/Weekly-Digest-29-2022-b7ab8c7ddf064a9fa032869e4bfa5aa7" rel="noopener noreferrer"&gt;UnArshia&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Bumdek - Dating App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.dribbble.com%2Fuserupload%2F3168424%2Ffile%2Foriginal-7a9dcc2329bda58aaf3c1524df76349a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.dribbble.com%2Fuserupload%2F3168424%2Ffile%2Foriginal-7a9dcc2329bda58aaf3c1524df76349a.png" alt="by [Habibi](https://dribbble.com/shots/18870309-Bumdek-Dating-App)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18870309-Bumdek-Dating-App" rel="noopener noreferrer"&gt;Habibi&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Social Media App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.dribbble.com%2Fuserupload%2F3169181%2Ffile%2Foriginal-a06eacd333aa230824563be58139809d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.dribbble.com%2Fuserupload%2F3169181%2Ffile%2Foriginal-a06eacd333aa230824563be58139809d.png" alt="by [Sajon](https://www.notion.so/Weekly-Digest-29-2022-b7ab8c7ddf064a9fa032869e4bfa5aa7)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.notion.so/Weekly-Digest-29-2022-b7ab8c7ddf064a9fa032869e4bfa5aa7" rel="noopener noreferrer"&gt;Sajon&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1549415708928274434-701" src="https://platform.twitter.com/embed/Tweet.html?id=1549415708928274434"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1549415708928274434-701');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1549415708928274434&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1549785943837515776-381" src="https://platform.twitter.com/embed/Tweet.html?id=1549785943837515776"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1549785943837515776-381');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1549785943837515776&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1550061076594806785-623" src="https://platform.twitter.com/embed/Tweet.html?id=1550061076594806785"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1550061076594806785-623');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1550061076594806785&amp;amp;theme=dark"
  }



&lt;/p&gt;




&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pure CSS Woman With Long Earrings
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/AsyrafHussin/embed/wvmeGJj?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/asyrafhussin4" rel="noopener noreferrer"&gt;Asyraf Hussin&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What's really going on?
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/GRxmqEb?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy" rel="noopener noreferrer"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;p&gt;Call with Kent – Lack of experience when problem solving&lt;/p&gt;

&lt;p&gt;Is there anything that helped you "think better" or "think clearer" to solve issues?&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/2QKZgowaDkNRd3pjBr3rl3" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 28/222</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 17 Jul 2022 17:32:06 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-28222-29h0</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-28222-29h0</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #28&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Holograms, light-leaks, and how to build CSS-only shaders.
&lt;/h3&gt;

&lt;p&gt;Get a shiny WebGL look without actually using WebGL. In this article we take a look at how CSS blend modes unleash the potential of cool compositing effects without the need for JavaScript&lt;/p&gt;

&lt;p&gt;&lt;a href="https://robbowen.digital/wrote-about/css-blend-mode-shaders/"&gt;Holograms, light-leaks and how to build CSS-only shaders - Robb Owen&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoiding &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; layout shifts: &lt;code&gt;aspect-ratio&lt;/code&gt; vs &lt;code&gt;width&lt;/code&gt; &amp;amp; &lt;code&gt;height&lt;/code&gt; attributes
&lt;/h3&gt;

&lt;p&gt;By default, an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; takes up zero space until the browser loads enough of the image to know its dimensions&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jakearchibald.com/2022/img-aspect-ratio/"&gt;Avoiding img layout shifts: aspect-ratio vs width &amp;amp; height attributes&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A Previous Sibling Selector
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.jim-nielsen.com/2022/previous-sibling-selector/"&gt;A Previous Sibling Selector&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Demystifyingish SVG paths
&lt;/h3&gt;

&lt;p&gt;Cassie Evans chats to Jake about SVG paths, and what that mess of letters and numbers actually means.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/9qen5CKjUe8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cassandra in 100 Seconds
&lt;/h3&gt;

&lt;p&gt;Apache Cassandra is a wide-column store NoSQL database designed to scale globally with extreme speed and reliability. Try it out for free with the serverless AstraDB&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ziq7FUKpCS8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to emulate CSS user preference media features
&lt;/h3&gt;

&lt;p&gt;You can use DevTools to emulate user preferences like device orientation, light/dark themes, color contrast, reduced motion and more. DevTools is your best friend in building user adaptive interfaces.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gOkM1L6azEI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  gzip file compression in 100 Seconds
&lt;/h3&gt;

&lt;p&gt;Gzip is a file compression tool and popular Linux utility used to make files smaller. Learn how file compression works in 100 seconds.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NLtt4S9ErIA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  jqq
&lt;/h3&gt;

&lt;p&gt;jq Querier: an interactive wrapper around jq&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jcsalterego"&gt;
        jcsalterego
      &lt;/a&gt; / &lt;a href="https://github.com/jcsalterego/jqq"&gt;
        jqq
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      jq Querier: an interactive wrapper around jq
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
jqq&lt;/h1&gt;
&lt;p&gt;jq Querier: an interactive wrapper around &lt;code&gt;jq&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/stedolan/jq"&gt;jq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Modern-ish Ruby and &lt;a href="https://bundler.io" rel="nofollow"&gt;Bundler&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Clone this repository&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bundle install&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Optionally: add a nice alias to your &lt;code&gt;~/.profile&lt;/code&gt; or equivalent:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;alias jqq="/path/to/jqq.rb"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;Usage: jqq &amp;lt;expr&amp;gt; &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
Demo&lt;/h2&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/jcsalterego/jqqdemo.gif"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8gR7mljN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/jcsalterego/jqqdemo.gif" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Keybindings&lt;/h2&gt;
&lt;p&gt;jqq uses readline-like keybindings:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Keybinding&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;td&gt;re-evaluate expression&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ctrl-a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;goto beginning of line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ctrl-e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;goto end of line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ctrl-k&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;kill line (delete to end of line)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ctrl-d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;delete next character&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
Future Work&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;smart window resize support (re-run only if needed)&lt;/li&gt;
&lt;li&gt;stdin support&lt;/li&gt;
&lt;li&gt;rewrite in another language&lt;/li&gt;
&lt;li&gt;colors!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
License&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/jcsalterego/jqqLICENSE"&gt;BSD&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jcsalterego/jqq"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  React Hook Form Devtools
&lt;/h3&gt;

&lt;p&gt;Chrome extension devtools to help debug forms.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/react-hook-form"&gt;
        react-hook-form
      &lt;/a&gt; / &lt;a href="https://github.com/react-hook-form/devtools-extension"&gt;
        devtools-extension
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      📋 Chrome extension devtools to help debug forms.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
        &lt;a href="https://react-hook-form.com" title="React Hook Form - Simple React forms validation" rel="nofollow"&gt;
            &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q_efGo-t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/react-hook-form/react-hook-form/master/docs/logo.png" alt="React Hook Form Logo - React hook custom hook for form validation"&gt;
            &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zTlBieHg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/10513364/178235861-ff786497-1b0c-4095-afc5-21c49adae560.png" alt="dev tool screenshot"&gt;
        &lt;/a&gt;
&lt;/div&gt;
&lt;h2&gt;
Requirement&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/react-hook-form/react-hook-form"&gt;react-hook-form&lt;/a&gt; &amp;gt;= &lt;code&gt;7.33.1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/react-hook-form/devtools"&gt;@hookform/devtools&lt;/a&gt; &amp;gt;= &lt;code&gt;4.2.0&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Install extension in &lt;a href="https://github.com/react-hook-form/devtools-extension"&gt;Chrome Web Store&lt;/a&gt;
&lt;em&gt;Or &lt;a href="https://github.com/react-hook-form/devtools-extension#production"&gt;build it yourself&lt;/a&gt; / download the &lt;a href="https://github.com/react-hook-form/devtools-extension/releases"&gt;release&lt;/a&gt; file (then goto &lt;a href="https://github.com/react-hook-form/devtools-extension#run"&gt;Development Run &lt;strong&gt;third step&lt;/strong&gt;&lt;/a&gt;)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://github.com/react-hook-form/devtools"&gt;devtools&lt;/a&gt; in your project&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install @hookform/devtools -D&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Add &lt;a href="https://github.com/react-hook-form/devtools#quickstart"&gt;DevTool component&lt;/a&gt; in your code
&lt;em&gt;This won't show devtool component anymore! Just for extension detect your form&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;(Optional) Add custom form id: &lt;code&gt;&amp;lt;DevTool id="YourFormId" control={control} /&amp;gt;&lt;/code&gt;
&lt;em&gt;If you don't add it manually, it will be auto generated by uuid&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Enjoy!&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
Development&lt;/h2&gt;
&lt;h3&gt;
Install&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="color-fg-accent"&gt;Note&lt;/span&gt;
use &lt;a href="https://pnpm.io/"&gt;pnpm&lt;/a&gt; only&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm install&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
Run&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;a href="https://github.com/react-hook-form/devtools/tree/master/example"&gt;example webpage&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run extension in development mode&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm run dev&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;Open Chrome and navigate to &lt;code&gt;chrome://extensions&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable &lt;strong&gt;Developer mode&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Load unpacked&lt;/strong&gt; button and select &lt;code&gt;/dist&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
Messaging Flow&lt;/h3&gt;

  &lt;span class="js-render-enrichment-loader position-absolute top-0 left-0 p-2"&gt;
    

  &lt;/span&gt;
  
    &lt;pre&gt;sequenceDiagram
  participant Webpage
  participant Content Script
  participant Background
  participant Devtools
  participant Popup
  Background-&amp;amp;gt;&amp;amp;gt;Background: Cleanup Cache
  Content Script-&amp;amp;gt;&amp;amp;gt;Webpage: INIT
  Note left of Webpage: Browser has devtools extension
  Webpage-&amp;amp;gt;&amp;amp;gt;Content Script: WELCOME
  Content Script-&amp;amp;gt;&amp;amp;gt;Background: WELCOME&lt;/pre&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/react-hook-form/devtools-extension"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Outcloud - Cloud Storage Dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KyQT2J-r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/3613044/screenshots/18789153/media/76602d2150d87a12c4967021232057fd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KyQT2J-r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/3613044/screenshots/18789153/media/76602d2150d87a12c4967021232057fd.png" alt="by [Amirhosein Panahi](https://dribbble.com/shots/18789153-Outcloud-Cloud-Storage-Dashboard)" width="880" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18789153-Outcloud-Cloud-Storage-Dashboard"&gt;Amirhosein Panahi&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Travel App Design
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_V85d7av--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3133429/file/original-9d8e51cb59ee2fc3c9afb080824b6557.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_V85d7av--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3133429/file/original-9d8e51cb59ee2fc3c9afb080824b6557.png" alt="by [Hasnur Alam Ujjol](https://dribbble.com/shots/18798028-Travel-App-Design)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18798028-Travel-App-Design"&gt;Hasnur Alam Ujjol&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Music Streaming Web App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p5rjZAXC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3132019/file/original-819257d3af5f66b33d33de1d720a83a3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p5rjZAXC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3132019/file/original-819257d3af5f66b33d33de1d720a83a3.png" alt="by [11Daniyal](https://dribbble.com/shots/18790572-Music-Streaming-Web-App)" width="880" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18790572-Music-Streaming-Web-App"&gt;11Daniyal&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7_D7f4y6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FXfdkMvUYAAAsWZ.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--tkLomYr7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1484801712514748418/1Dq_msLM_normal.jpg" alt="James Ide profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        James Ide
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @ji
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      With the newest version of Git 2.37.0, you can run just "git push" to push new branches. No more "--set-upstream origin". Enable with:&lt;br&gt;&lt;br&gt;git config --global --add --bool push.autoSetupRemote true 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      20:05 PM - 12 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1546948817462800384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1546948817462800384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1546948817462800384" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--83ifC0rd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1521524816238546945/LFh9jlfX_normal.jpg" alt="Tim van der Lippe profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Tim van der Lippe
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @timvdlippe
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      It's been 0 days since I used &lt;a href="https://twitter.com/DasSurma"&gt;@DasSurma&lt;/a&gt;'s trick to remember the tar arguments to extract it:&lt;br&gt;&lt;br&gt;eXtract Zhe File (`tar -xzf file.tar.gz`)
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      09:34 AM - 15 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1547877295813120000" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1547877295813120000" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1547877295813120000" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  This site "has" a Dark Side
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/poLNavj?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pure CSS Desk Fan
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/abBedme?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  MobiTech – Graph Theory - from maths to MaaS
&lt;/h3&gt;

&lt;p&gt;This episode of our MobiTech podcast is all about graph theory. The hosts Sarah, and Mahmoud, talk to their colleagues and Björn and Daniel, about how we understand graph theory and how graphs and algorithms like Dijkstra's algorithm can be applied to plan users' routes from A to B. Sounds interesting?&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/7tj9OYclCTlFFx9tsRdSyw" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;70,000 Serverless Functions with Kristi Perreault of Liberty Mutual&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this supper club episode of Syntax, Wes and Scott talk with Kristi Perreault of Liberty Mutual about why they're using serverless functions, what languages they write in, managing security and montoring, and Kristi's journey into tech as a career.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/29uGBps2Y8NU1FiUpUooFj" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Call with Kent – Thinking process when reviewing code
&lt;/h3&gt;

&lt;p&gt;Code review is an important practice and increases code quality as well as develops your dev team. What's your thinking process when starting to review a new pull request?&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3nW2qG3R8NGZ2bAwIoKPjj" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 27/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 10 Jul 2022 16:13:00 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-272022-eh1</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-272022-eh1</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #27.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  An Accessibility-First Approach To Chart Visual Design
&lt;/h3&gt;

&lt;p&gt;Using a data visualization case study, we will explore how an accessibility-first approach led us down the path of creating a better visual design for charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.smashingmagazine.com/2022/07/accessibility-first-approach-chart-visual-design/"&gt;An Accessibility-First Approach To Chart Visual Design - Smashing Magazine&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conditionally Styling Selected Elements in a Grid Container
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://css-tricks.com/conditionally-styling-selected-elements-in-a-grid-container/"&gt;Conditionally Styling Selected Elements in a Grid Container | CSS-Tricks&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Horizontal Directional Drilling
&lt;/h3&gt;

&lt;p&gt;This is Daniel's attempt to code a simulation of Horizontal Directional Drilling, laparoscopic surgery for the earth!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/FfCBNL6lWK0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/shiffman"&gt;Daniel Shiffman&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript just got way faster
&lt;/h3&gt;

&lt;p&gt;First look at Bun - a fast new JavaScript runtime like Node.js or Deno. Explore the core features of Bun.js and how they might affect full-stack web developers in the future.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/FMhScnY0dME"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Is Just
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1qprF4BqSaM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/leveluptuts"&gt;LevelUpTuts&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Infracost VSCode Extension
&lt;/h3&gt;

&lt;p&gt;See cost estimates for Terraform right in your editor&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/infracost"&gt;
        infracost
      &lt;/a&gt; / &lt;a href="https://github.com/infracost/vscode-infracost"&gt;
        vscode-infracost
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      See cost estimates for Terraform right in your editor💰📉
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Infracost VSCode Extension&lt;/h1&gt;
&lt;p&gt;Infracost's VSCode extension shows you cost estimates for Terraform right in your editor! Prevent costly infrastructure changes before they get into production.&lt;/p&gt;
&lt;h2&gt;
Features&lt;/h2&gt;
&lt;p&gt;Infracost's extension shows a snapshot of the total cost of resources right above their Terraform definitions. Infracost's output updates on file save. This helps with a few use-cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compare configs, instance types, regions etc&lt;/strong&gt;: copy/paste a code block, make changes and compare them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick cost estimate&lt;/strong&gt;: write a code block and get a cost estimate without having to use AWS, Google or Azure cost calculators, or read the long/complicated pricing web pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Catch costly typos&lt;/strong&gt;: if you accidentally type 22 instead of 2 as the instance count, or 1000GB volume size instead of 100, the cost estimate will immediately pick that up and let you know.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/infracost/vscode-infracost/blob/master/.github/assets/resources.gif?raw=true"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0vRybyl2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/infracost/vscode-infracost/raw/master/.github/assets/resources.gif%3Fraw%3Dtrue" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Both &lt;code&gt;resource&lt;/code&gt; and &lt;code&gt;module&lt;/code&gt; blocks support showing cost estimates. Infracost's VSCode extension even supports showing…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/infracost/vscode-infracost"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  massCode
&lt;/h3&gt;

&lt;p&gt;Next version of massCode. A free and open-source code snippets manager for developers&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/massCodeIO"&gt;
        massCodeIO
      &lt;/a&gt; / &lt;a href="https://github.com/massCodeIO/massCode"&gt;
        massCode
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Next version of massCode. A free and open source code snippets manager for developers
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/massCodeIO/massCode./preview.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cwx2R67P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/massCodeIO/massCode./preview.png"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h1&gt;
massCode&lt;/h1&gt;

&lt;p&gt;
  &lt;strong&gt;Built with Electron, Vue 3 &amp;amp; Ace Editor.&lt;/strong&gt;
  &lt;br&gt;
  Inspired by applications like SnippetsLab and Quiver
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/1dea35156c4877cdf66542f241776832fd3abf0b4f5b2553e7f7d04a549ba510/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6d617373436f6465494f2f6d617373436f6465"&gt;&lt;img alt="GitHub package.json version" src="https://camo.githubusercontent.com/1dea35156c4877cdf66542f241776832fd3abf0b4f5b2553e7f7d04a549ba510/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6d617373436f6465494f2f6d617373436f6465"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/a32dc816b7bda0457832bb6aeb55705ee846cdc423c8569a6e2adbc5ac473828/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d617373436f6465494f2f6d617373436f64652f746f74616c"&gt;&lt;img alt="GitHub All Releases" src="https://camo.githubusercontent.com/a32dc816b7bda0457832bb6aeb55705ee846cdc423c8569a6e2adbc5ac473828/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d617373436f6465494f2f6d617373436f64652f746f74616c"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2085b33952f054364f3220359b02f9992de006174155787bd8fa478e163078bc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d617373436f6465494f2f6d617373436f6465"&gt;&lt;img alt="GitHub" src="https://camo.githubusercontent.com/2085b33952f054364f3220359b02f9992de006174155787bd8fa478e163078bc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d617373436f6465494f2f6d617373436f6465"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/massCodeIO/massCode/releases"&gt;Latest Release&lt;/a&gt; |
  &lt;a href="https://masscode.io/documentation/" rel="nofollow"&gt;Documentation&lt;/a&gt; |
  &lt;a href="https://github.com/massCodeIO/massCode/blob/master/CHANGELOG.md"&gt;Change Log&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  Extensions
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=AntonReshetov.masscode-assistant" rel="nofollow"&gt;VS Code&lt;/a&gt; |
  &lt;a href="https://www.raycast.com/antonreshetov/masscode" rel="nofollow"&gt;Raycast&lt;/a&gt; |
  &lt;a href="https://github.com/massCodeIO/assistant-alfred"&gt;Alfred&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
Support&lt;/h2&gt;
&lt;p&gt;massCode need your support, give a &lt;a href="https://github.com/massCodeIO/massCode/stargazers"&gt;star&lt;/a&gt; on this repo or &lt;a href="https://opencollective.com/masscode" rel="nofollow"&gt;donate&lt;/a&gt;. All of this is valuable and will inspire further development.&lt;/p&gt;
&lt;h2&gt;
Features&lt;/h2&gt;
&lt;h3&gt;
Organization&lt;/h3&gt;
&lt;p&gt;massCode allows you to organize snippets using multi-level folders as well as tags. Each snippet has fragments - tabs, which gives even greater level of organization.&lt;/p&gt;
&lt;h3&gt;
Editor&lt;/h3&gt;
&lt;p&gt;A snippet manager must not only provide organization of snippets but also have a good code editor. That's why under the hood of massCode there's &lt;a href="https://ace.c9.io" rel="nofollow"&gt;Ace&lt;/a&gt;. Ace is a high performance code editor which supports syntax highlighting for over 170 languages. We also added a &lt;a href="https://prettier.io" rel="nofollow"&gt;Prettier&lt;/a&gt; to code formatter.&lt;/p&gt;
&lt;h3&gt;
Markdown&lt;/h3&gt;
&lt;p&gt;massCode allows you to write in Markdown and provide support to syntax highlighting, tables, list and…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/massCodeIO/massCode"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;
  
  
  *&lt;strong&gt;&lt;em&gt;Playwright&lt;/em&gt;&lt;/strong&gt;*
&lt;/h3&gt;

&lt;p&gt;Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/microsoft"&gt;
        microsoft
      &lt;/a&gt; / &lt;a href="https://github.com/microsoft/playwright"&gt;
        playwright
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
🎭 Playwright&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/playwright" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/98ba5acb9987aa420bc704a93fdd60401dfd2d3defe9595ef38b310f760f89df/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f706c61797772696768742e7376673f7374796c653d666c6174" alt="npm version"&gt;&lt;/a&gt; &lt;a href="https://www.chromium.org/Home" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/02c120e7a390e2f2e38c24bf6abe97c8beec2dd268e5bfc72bac63c11df0d49f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6368726f6d69756d2d3130342e302e353131322e33392d626c75652e7376673f6c6f676f3d676f6f676c652d6368726f6d65" alt="Chromium version"&gt;&lt;/a&gt; &lt;a href="https://www.mozilla.org/en-US/firefox/new/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/d9521863cafac10d9a83baacadbc8a34127f9fa6d5555299fd8969a57d7ea834/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f66697265666f782d3130322e302d626c75652e7376673f6c6f676f3d6d6f7a696c6c612d66697265666f78" alt="Firefox version"&gt;&lt;/a&gt; &lt;a href="https://webkit.org/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/13d31e3178bb2dbe99e5652f75b639ca6d7c2b04900286639452a2a549eca9ac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7765626b69742d31352e342d626c75652e7376673f6c6f676f3d736166617269" alt="WebKit version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;a href="https://playwright.dev" rel="nofollow"&gt;Documentation&lt;/a&gt; | &lt;a href="https://playwright.dev/docs/api/class-playwright" rel="nofollow"&gt;API reference&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Playwright is a framework for Web Testing and Automation. It allows testing &lt;a href="https://www.chromium.org/Home" rel="nofollow"&gt;Chromium&lt;/a&gt;, &lt;a href="https://www.mozilla.org/en-US/firefox/new/" rel="nofollow"&gt;Firefox&lt;/a&gt; and &lt;a href="https://webkit.org/" rel="nofollow"&gt;WebKit&lt;/a&gt; with a single API. Playwright is built to enable cross-browser web automation that is &lt;strong&gt;ever-green&lt;/strong&gt;, &lt;strong&gt;capable&lt;/strong&gt;, &lt;strong&gt;reliable&lt;/strong&gt; and &lt;strong&gt;fast&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Linux&lt;/th&gt;
&lt;th&gt;macOS&lt;/th&gt;
&lt;th&gt;Windows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chromium 104.0.5112.39&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebKit 15.4&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox 102.0&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Headless execution is supported for all the browsers on all platforms. Check out &lt;a href="https://playwright.dev/docs/library#system-requirements" rel="nofollow"&gt;system requirements&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;Looking for Playwright for &lt;a href="https://playwright.dev/python/docs/intro" rel="nofollow"&gt;Python&lt;/a&gt;, &lt;a href="https://playwright.dev/dotnet/docs/intro" rel="nofollow"&gt;.NET&lt;/a&gt;, or &lt;a href="https://playwright.dev/java/docs/intro" rel="nofollow"&gt;Java&lt;/a&gt;?&lt;/p&gt;

&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;p&gt;Playwright has its own test runner for end-to-end tests, we call it Playwright Test.&lt;/p&gt;
&lt;h3&gt;
Using init command&lt;/h3&gt;
&lt;p&gt;The easiest way to get started with Playwright Test is to run the init command.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Run from your project's root directory&lt;/span&gt;
npm init playwright@latest
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Or create a new project&lt;/span&gt;
npm init playwright@latest new-project&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;This will create a configuration file…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/microsoft/playwright"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Marketplace Platform
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P51KdSAF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3082176/file/original-8eb4658615b3848cafff721f05e83f90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P51KdSAF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3082176/file/original-8eb4658615b3848cafff721f05e83f90.png" alt="by [Stanislav Lebedev](https://dribbble.com/shots/18739540-Marketplace-Platform)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18739540-Marketplace-Platform"&gt;Stanislav Lebedev&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Detku - Finance Mobile App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GvhpY0jq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/2589136/screenshots/18741399/media/25b104dec010a708de1efe41c2ccb04d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GvhpY0jq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/2589136/screenshots/18741399/media/25b104dec010a708de1efe41c2ccb04d.png" alt="by [Arfi Maulana](https://dribbble.com/shots/18741399-Detku-Finance-Mobile-App)" width="880" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18741399-Detku-Finance-Mobile-App"&gt;Arfi Maulana&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Track your parcel now!
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eQRLnTHI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3077058/file/original-150ae2fb91af0fc67e9fa9d3a49df5b9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eQRLnTHI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3077058/file/original-150ae2fb91af0fc67e9fa9d3a49df5b9.png" alt="by [Saber Ali](https://dribbble.com/shots/18708075--Track-your-parcel-now)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18708075--Track-your-parcel-now"&gt;Saber Ali&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v05qRJzL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FWxTBnbWYAEvkBQ.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--K0A4v4BX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1534700564810018816/anAuSfkp_normal.jpg" alt="Jhey 🔨🐻✨ profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jhey 🔨🐻✨
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @jh3yy
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      HTML/CSS Tips for &amp;lt;img&amp;gt; 🤳&lt;br&gt;&lt;br&gt;– Use "onerror" to catch and set a fallback "src" ✨&lt;br&gt;– Set a "subtle" background-color so users know something is coming 💀&lt;br&gt;– Use CSS aspect-ratio to avoid layout shifts 🖼️&lt;br&gt;- Remember your "alt" attribute where necessary 🙏 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      20:56 PM - 03 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1543700258018000896" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1543700258018000896" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1543700258018000896" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--iz1PmfdY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/842582724737163264/tFKLiJI5_normal.jpg" alt="Mark Erikson profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Mark Erikson
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @acemarke
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Bundlephobia has been the "JS bundle size report" tool of choice for years, but &lt;a href="https://t.co/4Y7bHYvHmn"&gt;bundlejs.com&lt;/a&gt; is now _wayyy_ better:&lt;br&gt;&lt;br&gt;- Define exactly what to export from packages&lt;br&gt;- Generates treemap analysis&lt;br&gt;- Configure ESBuild, incl externals and minification&lt;br&gt;&lt;br&gt;Highly recommended!
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      22:28 PM - 07 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1545172848842522626" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1545172848842522626" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1545172848842522626" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LLfWzJye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1545837846937980929/pu/img/QElfXOuCytnEybKM.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrqJXnpO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1465780299380502537/pptBYF44_normal.jpg" alt="Stefan Judis profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Stefan Judis
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/stefanjudis"&gt;@stefanjudis&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Quick CSS tip.🙈&lt;br&gt;&lt;br&gt;If you use `clamp` with `calc` for things like fluid typography, you can drop the `calc`.&lt;br&gt;&lt;br&gt;It's baked in! 💪&lt;br&gt;&lt;br&gt;1️⃣ font-size: clamp(1rem, calc(5vw + 1rem), 5rem);&lt;br&gt;2️⃣ font-size: clamp(1rem, 5vw + 1rem, 5rem);&lt;br&gt;&lt;br&gt;Video alt: Example showing that you can drop `calc`. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:31 PM - 09 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1545837995047243779" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1545837995047243779" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1545837995047243779" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fxMcKXqk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FXKhJ7RX0AUKpfC.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--KuwzksMY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/800705546756100097/TJWzh-T6_normal.jpg" alt="Sam Dutton profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Sam Dutton
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @sw12
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      🧐 To avoid seeing errors from extensions in Chrome DevTools, check 'Selected context only'. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:29 PM - 08 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1545475163201978368" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1545475163201978368" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1545475163201978368" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Noisy ghost
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ksenia-k/embed/QWmjgWX?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/uuuuuulala"&gt;Ksenia Kondrashova&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Checkbox Accent Color Pixel Art
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/shshaw/embed/bGROdEP?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/shshaw"&gt;Shaw&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – CSS5 Color Functions
&lt;/h3&gt;

&lt;p&gt;In this Hasty Treat, Scott and Wes talk about new CSS color functions, and tips for viewing the different options and ways of presenting color that are coming.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/1HQyFhle2enMFtFBMhj50Y" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 26/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 03 Jul 2022 17:09:24 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-262022-1b3b</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-262022-1b3b</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #26 which is the first one in July.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cleaning up deploys you no longer need
&lt;/h3&gt;

&lt;p&gt;Learn how to manually delete old deploys on Netlify to clean up your account history and prevent teammates from rolling back to undesirable states. Netlify automatically deletes errored and failed deploys after 6 months.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.netlify.com/blog/deploy-deletion/"&gt;How to delete deploys on Netlify | Netlify Blog&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  My Wonderful HTML Email Workflow
&lt;/h3&gt;

&lt;p&gt;A potent combination of MDX and MJML&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.joshwcomeau.com/react/wonderful-emails-with-mjml-and-mdx/"&gt;My Wonderful HTML Email Workflow&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  *&lt;strong&gt;&lt;em&gt;Storybook in 100 Seconds&lt;/em&gt;&lt;/strong&gt;*
&lt;/h3&gt;

&lt;p&gt;Storybook is a tool used for testing UI components in isolation that works with JS frameworks like React, Angular, Vue, and Svelte. It is especially useful for web developers building design systems and shared libraries.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gdlTFPebzAU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/fireship_dev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to inspect CSS container queries
&lt;/h3&gt;

&lt;p&gt;What are CSS container queries and why do we need them? Learn now on today’s episode of DevTools Tips with Jecelyn Yeen and Una Kravets.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/X4TYXlvbb2E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thinking on ways to solve FABs
&lt;/h3&gt;

&lt;p&gt;In today's GUI Challenge, &lt;a href="https://www.youtube.com/channel/UCBGr3ZMcV5jke40_Wrv3fNA"&gt;@Adam Argyle&lt;/a&gt; builds a couple of floating action buttons (FABs) and talks about the UX and CSS considerations for fixed position buttons on the web.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/RXopH5t2Kww"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  m-cli
&lt;/h3&gt;

&lt;p&gt;Swiss Army Knife for macOS&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/rgcr"&gt;
        rgcr
      &lt;/a&gt; / &lt;a href="https://github.com/rgcr/m-cli"&gt;
        m-cli
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
       Swiss Army Knife for macOS 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
 m-cli&lt;/h1&gt;
&lt;p&gt;💥 &lt;strong&gt;Swiss Army Knife for macOS !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/rgcr/m-cli#overview"&gt;Overview&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rgcr/m-cli#install"&gt;Install&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rgcr/m-cli#uninstall"&gt;Uninstall&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rgcr/m-cli#how-to-use"&gt;How To Use&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rgcr/m-cli#all-commands"&gt;All Commands&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rgcr/m-cli#contributing"&gt;Contributing&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;h1&gt;
Overview&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;m-cli&lt;/strong&gt; is a macOS command line tool that lets you interact with utilities and applications entirely in &lt;strong&gt;Terminal&lt;/strong&gt;. It differs from other macOS command line tools in the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can easily manage administrative tasks&lt;/li&gt;
&lt;li&gt;It doesn't install 3rd party tools since it doesn't have dependencies&lt;/li&gt;
&lt;li&gt;Installation is easy and doesn't require intervention&lt;/li&gt;
&lt;li&gt;It only uses macOS commands&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
Install&lt;/h1&gt;
&lt;p&gt;You can install &lt;strong&gt;m-cli&lt;/strong&gt; using &lt;a href="https://brew.sh/" rel="nofollow"&gt;Homebrew&lt;/a&gt;, or you can manually install it.&lt;/p&gt;
&lt;h3&gt;
Homebrew install&lt;/h3&gt;
&lt;p&gt;If you have Homebrew installed, run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;brew install m-cli&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
Manual install&lt;/h3&gt;
&lt;p&gt;If you want to manually install &lt;strong&gt;m-cli&lt;/strong&gt;, run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;curl -fsSL https://raw.githubusercontent.com/rgcr/m-cli/master/install.sh | sudo sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can also install it to a different path, shown below:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;INSTALL_DIR=$HOME/.m-cli sh &amp;lt;(curl -fsSL https://raw.githubusercontent.com/rgcr/m-cli/master/install.sh)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: Certain plugins, such as that for the "gatekeeper" command, will not work&lt;/em&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/rgcr/m-cli"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  cheat.sh
&lt;/h3&gt;

&lt;p&gt;the only cheat sheet you need&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/chubin"&gt;
        chubin
      &lt;/a&gt; / &lt;a href="https://github.com/chubin/cheat.sh"&gt;
        cheat.sh
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      the only cheat sheet you need
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/6fab428f3c8ba5dcb2e824cba62b4f1273cc6cb4dffc892b8384ff84cd0593bb/687474703a2f2f63686561742e73682f66696c65732f6269672d6c6f676f2d76322d66697865642e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/6fab428f3c8ba5dcb2e824cba62b4f1273cc6cb4dffc892b8384ff84cd0593bb/687474703a2f2f63686561742e73682f66696c65732f6269672d6c6f676f2d76322d66697865642e706e67" alt="cheat.sh logo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unified access to the best community driven cheat sheets repositories of the world.&lt;/p&gt;
&lt;p&gt;Let's imagine for a moment that there is such a thing as an ideal cheat sheet
What should it look like
What features should it have?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Concise&lt;/strong&gt; — It should only contain the things you need, and nothing else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast&lt;/strong&gt; — It should be possible to use it instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive&lt;/strong&gt; — It should contain answers for every possible question.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Universal&lt;/strong&gt; — It should be available everywhere, anytime, without any preparations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unobtrusive&lt;/strong&gt; — It should not distract you from your main task.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tutoring&lt;/strong&gt; — It should help you to learn the subject.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconspicuous&lt;/strong&gt; — It should be possible to use it completely unnoticed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Such a thing exists! It's easy to &lt;a href="https://github.com/chubin/cheat.sh#installation"&gt;install&lt;/a&gt; and there's even &lt;a href="https://github.com/chubin/cheat.sh#tab-completion"&gt;auto-complete&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Features&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;cheat.sh&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has a simple curl/browser/editor interface.&lt;/li&gt;
&lt;li&gt;Covers 56 programming languages, several DBMSes, and more than 1000 most important UNIX/Linux commands.&lt;/li&gt;
&lt;li&gt;Provides…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/chubin/cheat.sh"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Health App - Track daily steps
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BVaBGark--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3020702/file/original-247a693d53b527db2af25d20de1ca47c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BVaBGark--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3020702/file/original-247a693d53b527db2af25d20de1ca47c.png" alt="by [Wahab](https://dribbble.com/shots/18641236-Health-App-Track-daily-steps)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18641236-Health-App-Track-daily-steps"&gt;Wahab&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Plant Shop App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m_fTCI4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3055309/file/original-cf987d505a0d9f25e61d085675ca2cdf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m_fTCI4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3055309/file/original-cf987d505a0d9f25e61d085675ca2cdf.jpg" alt="by [Rakib Kowshar](https://dribbble.com/shots/18661272-Plant-Shop-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18661272-Plant-Shop-App"&gt;Rakib Kowshar&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Electricity Bill Pay App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O6KjGuNk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3055218/file/original-6001773b1bd92d6eff07b7d6afe0204b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O6KjGuNk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/3055218/file/original-6001773b1bd92d6eff07b7d6afe0204b.png" alt="by [Md. Nazmul Hasan](https://dribbble.com/shots/18660664-Electricity-Bill-Pay-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18660664-Electricity-Bill-Pay-App"&gt;Md. Nazmul Hasan&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fISwgXBt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1540748479307206658/pu/img/gtzKFdaM21CNr5qT.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--F9ZNrQ-U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1514628527596838914/csOZadQU_normal.jpg" alt="Jamon profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jamon
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/jamonholmgren"&gt;@jamonholmgren&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      How some developers think “separation of concerns” works. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      20:30 PM - 25 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1540794599630700545" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1540794599630700545" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1540794599630700545" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oNI5dRy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FWP4tN0XEAEFqmf.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--zpFIRa_b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1073244070833782784/xBa9ruz0_normal.jpg" alt="Matan Borenkraout 🥬 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Matan Borenkraout 🥬
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @matanbobi
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      New &lt;a href="https://twitter.com/hashtag/CSS"&gt;#CSS&lt;/a&gt; feature is rolling out in &lt;a href="https://twitter.com/googlechrome"&gt;@googlechrome&lt;/a&gt; 104, Individual properties for CSS Transforms!&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/xpjxXENnsy"&gt;drafts.csswg.org/css-transforms…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      09:14 AM - 27 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1541349182929248256" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1541349182929248256" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1541349182929248256" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gFqnGvG0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FWT8RUhXgAAcT0x.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--bP2aJYQY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1331240375265193986/on59ek6B_normal.jpg" alt="Jonathan Neal profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jonathan Neal
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @jon_neal
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      The fastest way to build DOM is just a few lines?&lt;br&gt;&lt;br&gt;Usage looks like:&lt;br&gt;let template = html(`&amp;lt;label&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;input /&amp;gt;`);&lt;br&gt;&lt;br&gt;See the benchmarks: &lt;a href="https://t.co/58LUzn3c5J"&gt;jsben.ch/JxusT&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      04:15 AM - 28 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1541636296224956416" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1541636296224956416" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1541636296224956416" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BOxJUjDL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FWgV2bGUYAAdjZT.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--0N-_8Cap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1463451268349890560/YcLho6Cv_normal.jpg" alt="Russell Goldenberg profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Russell Goldenberg
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @codenberg
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      just realized i can use a css variable for all transition durations to easily tap into the reduced motion media query! 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      13:58 PM - 30 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1542507873711755264" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1542507873711755264" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1542507873711755264" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9lSFelqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FWpdS3aXEAELFk2.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xMAhDI7---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1035818042037612544/Bru2vfvb_normal.jpg" alt="Pawel Grzybek profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Pawel Grzybek
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/pawelgrzybek"&gt;@pawelgrzybek&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      🧠 TIL 🧠&lt;br&gt;&lt;br&gt;Most of the Node.js fs methods take a file path as an argument. Did you know it also accepts an instance of URL? Now you know!&lt;br&gt;&lt;br&gt;Thanks &lt;a href="https://twitter.com/rauschma"&gt;@rauschma&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      08:24 AM - 02 Jul 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1543148517878808576" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1543148517878808576" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1543148517878808576" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  CSS Rooster Animation
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/mdusmanansari/embed/GRxKNKP?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/MdUsmanAnsari_"&gt;Md Usman Ansari&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  SVG play buttons
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Adir-SL/embed/zYRyaaN?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/adircode"&gt;Adir&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;Browser CSS Page Transitions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this Hasty Treat, Scott and Wes talk about the new Browser CSS Page Transitions API proposal and what features it opens up for developers on the web.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/69r4qSzqUGJ0j4Gkely2HY" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 25/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 26 Jun 2022 16:57:27 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-252022-469f</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-252022-469f</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #25.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Different Ways to Write CSS in React
&lt;/h3&gt;

&lt;p&gt;We’re all familiar with the standard way of linking up a stylesheet to the head of an HTML doc, right? That’s just one of several ways we’re able to write CSS. But what does it look like to style things in a single-page application?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://css-tricks.com/different-ways-to-write-css-in-react/"&gt;Different Ways to Write CSS in React | CSS-Tricks&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to add a theme switcher to Storybook
&lt;/h3&gt;

&lt;p&gt;Learn to control how a story renders by wiring it to a decorator and toolbar items&lt;/p&gt;

&lt;p&gt;&lt;a href="https://storybook.js.org/blog/how-to-add-a-theme-switcher-to-storybook/"&gt;How to add a theme switcher to Storybook&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ReactJS &lt;code&gt;useId&lt;/code&gt; Hook
&lt;/h3&gt;

&lt;p&gt;React 18 brings a lot of exciting features but one of the less celebrated but still extremely useful addition is the new &lt;code&gt;useId&lt;/code&gt; hook and that’s exactly what we will cover in this complete tutorial&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pPYwPJNonMc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/basarat"&gt;Basarat&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  New in Chrome 103: HTTP 103 early hints, Local Font Access, AbortSignal.timeout, and more!
&lt;/h3&gt;

&lt;p&gt;Chrome 103 is rolling out now! There’s a new HTTP status code that helps the browser decide what content to preload before the page has even started to arrive. The Local Font Access API gives web applications the ability to enumerate and use fonts installed on the user’s computer. There’s an easier way to implement timeouts on asynchronous APIs.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/e8LUoJClVo4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Power of JS Generators
&lt;/h3&gt;

&lt;p&gt;Generators have been around in JavaScript since ES2015, yet remain largely ignored by many JS devs, who don’t see why or how they’d use them in their day-to-day work.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gu3FfmgkwUc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/AnjanaVakil"&gt;Anjana Vakil&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Every Beginner React Developer Makes This Mistake With State
&lt;/h3&gt;

&lt;p&gt;By far one of the biggest beginner React mistakes I see is developers storing derived state. This is a huge problem that is incredibly hard to detect unless you know what you are looking for.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/tz0fDABt67g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/DevSimplified"&gt;Web Dev Simplified&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Data Structure &amp;amp; Algorithms 101 with doodles
&lt;/h3&gt;

&lt;p&gt;I am trying to describe complex matters in simple doodles!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/girliemac"&gt;
        girliemac
      &lt;/a&gt; / &lt;a href="https://github.com/girliemac/a-picture-is-worth-a-1000-words"&gt;
        a-picture-is-worth-a-1000-words
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      I am trying to describe complex matters in simple doodles!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/girliemac/a-picture-is-worth-a-1000-wordsheader.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nTWaqhjB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/girliemac/a-picture-is-worth-a-1000-wordsheader.png" alt="header image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Doodles-as-A-Service Repo&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/bdc6a3b8963aa99ff57dfd6e1e4b937bd2e752bcb1f1936f90368e5c3a38f670/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d434325323042592d2d5341253230342e302d6c69676874677265792e737667" alt="CC BY-SA 4.0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;👋 Aloha, this is where you can grab most of my tech doodles and sketchnotes.&lt;/p&gt;
&lt;p&gt;I have been posting my tech doodles on &lt;a href="https://twitter.com/girlie_mac" rel="nofollow"&gt;Twitter&lt;/a&gt; and &lt;a href="https://github.com/microsoft/"&gt;Microsoft open-source projects&lt;/a&gt; and I am repeatedly asked where to get the original images, especially from people who saw some of my works out of context on some social media, so I decided to put all together on one GitHub repo.&lt;/p&gt;
&lt;p&gt;Here are some of the latest giditally created handdrawn doodles, as well as photos of analog ones.&lt;/p&gt;
&lt;p&gt;All my doodles are under Creative Commons license. So please share with attributions. And I definitely don't want you to NFT them without my permission (and I won't permit you because you don't own them. They are open-sourced to be freely available for educational purpose only!)&lt;/p&gt;
&lt;p&gt;Enjoy 🌺&lt;/p&gt;

&lt;h2&gt;
Algorithms&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/girliemac/a-picture-is-worth-a-1000-words/algorithms"&gt;/algorithms&lt;/a&gt;&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;└── 📁algorithms
    ├── 📁png
    │   ├── 📄algorithm101_file.png
    │   └── 📄
    └── 📁tiff
        ├── 📄algorithm101_file.tiff
        └──&lt;/code&gt;&lt;/pre&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/girliemac/a-picture-is-worth-a-1000-words"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Dolt
&lt;/h3&gt;

&lt;p&gt;Dolt – It's Git for Data&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dolthub"&gt;
        dolthub
      &lt;/a&gt; / &lt;a href="https://github.com/dolthub/dolt"&gt;
        dolt
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Dolt – It's Git for Data
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/dolthub/dolt./docs/Dolt-Logo@3x.svg"&gt;&lt;img height="100" src="https://res.cloudinary.com/practicaldev/image/fetch/s--4xk7tlfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/dolthub/dolt./docs/Dolt-Logo%403x.svg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Dolt is Git for Data!&lt;/h1&gt;
&lt;p&gt;Dolt is a SQL database that you can fork, clone, branch, merge, push
and pull just like a git repository. Connect to Dolt just like any
MySQL database to run queries or update the data using SQL
commands. Use the command line interface to import CSV files, commit
your changes, push them to a remote, or merge your teammate's changes.&lt;/p&gt;
&lt;p&gt;All the commands you know for Git work exactly the same for Dolt. Git
versions files, Dolt versions tables. It's like Git and MySQL had a
baby.&lt;/p&gt;
&lt;p&gt;We also built &lt;a href="https://www.dolthub.com" rel="nofollow"&gt;DoltHub&lt;/a&gt;, a place to share
Dolt databases. We host public data for free. If you want to host
your own version of DoltHub, we have &lt;a href="https://www.doltlab.com" rel="nofollow"&gt;DoltLab&lt;/a&gt;. If you want us to run a Dolt server for you, we have &lt;a href="https://hosted.doltdb.com" rel="nofollow"&gt;Hosted Dolt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://discord.com/invite/RFwfYpu" rel="nofollow"&gt;Join us on Discord&lt;/a&gt; to say hi and
ask questions.&lt;/p&gt;
&lt;h2&gt;
What's&lt;/h2&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/dolthub/dolt"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  React Native Elements
&lt;/h3&gt;

&lt;p&gt;Cross-Platform React Native UI Toolkit&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/react-native-elements"&gt;
        react-native-elements
      &lt;/a&gt; / &lt;a href="https://github.com/react-native-elements/react-native-elements"&gt;
        react-native-elements
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Cross-Platform React Native UI Toolkit
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a href="https://reactnativeelements.com/" rel="nofollow"&gt;
    &lt;img alt="react-native-elements" src="https://res.cloudinary.com/practicaldev/image/fetch/s--SBbX5oei--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/5962998/65694309-a825f000-e043-11e9-8382-db0dba0851e3.png" width="200"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;div&gt;
&lt;p&gt;Cross Platform &lt;a href="https://reactnative.dev" rel="nofollow"&gt;React Native&lt;/a&gt; UI Toolkit&lt;/p&gt;
&lt;/div&gt;



&lt;p&gt;
  &lt;a href="https://opensource.org/licenses/MIT" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/880a4aeaf942f07170512a9e321860eff6847f529cabdef7aa7174d0224ce5e5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d73717561726526636f6c6f723d303038394533"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/react-native-elements/react-native-elements"&gt;&lt;img src="https://camo.githubusercontent.com/6a1255ec8c90c46b5571528ea60722f12cbe915ef65ac496a04aa78e194bc2a0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f72656163742d6e61746976652d656c656d656e74732f72656163742d6e61746976652d656c656d656e74733f6c6162656c3d7374617273266c6f676f267374796c653d666c61742d73717561726526636f6c6f723d303038394533"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/react-native-elements/react-native-elements/actions/workflows/dist.yml"&gt;&lt;img src="https://camo.githubusercontent.com/6e84eeb8e72438e6edf1bb33e6f1fdcd699f83e3b2356f83b53737f94a6fc999/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f72656163742d6e61746976652d656c656d656e74732f72656163742d6e61746976652d656c656d656e74732f426c656564696e672532304564676525323076657273696f6e3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/prettier/prettier"&gt;&lt;img src="https://camo.githubusercontent.com/a5678d7f5887725a255b4f49e8a238f256e19203f7175a173f4b936db47bd0fd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374796c65645f776974682d70726574746965722d4637423933452e7376673f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://codecov.io/gh/react-native-elements/react-native-elements" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9a1339b109de2f0be7915771db6ddbb85103f97e5f1a3fdda2cb66d86d9ee991/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f67682f72656163742d6e61746976652d656c656d656e74732f72656163742d6e61746976652d656c656d656e74733f636f6c6f723d463031463741267374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div&gt;
  &lt;a href="https://twitter.com/rn_elements" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/9c7fece90dba0cdbc746c34f580dd98b3a2586f90067c3148830247972cd6239/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f726e5f656c656d656e74733f7374796c653d666c61742d737175617265266c6162656c3d54776974746572266c6f676f3d5457495454455226636f6c6f723d303038394533"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/react-native-elements/react-native-elements/discussions"&gt;&lt;img src="https://camo.githubusercontent.com/70c7c37bdb572d66926f1ca59a14de35e5bd3c524321fa040314c4cc30ea6202/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f64697363757373696f6e732f72656163742d6e61746976652d656c656d656e74732f72656163742d6e61746976652d656c656d656e74733f6c6162656c3d44697363757373696f6e73266c6f676f3d676974687562267374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://react-native-elements-slack.herokuapp.com" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/966091d240daa7fdf937429fe6d91a4737635400fef93f63f6e500d239eac781/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e2d536c61636b2d3441313534423f7374796c653d666c61742d737175617265266c6f676f3d736c61636b26636f6c6f723d30303839453326"&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a href="https://github.com/react-native-elements/react-native-elements#backers"&gt;&lt;img src="https://camo.githubusercontent.com/83286a8b2bd398ee7d7e6791ca02de4ec49398c71a097a28db52812feddab3e5/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f72656163742d6e61746976652d656c656d656e74732f6261636b6572732f62616467652e7376673f7374796c653d666c61742d73717561726526636f6c6f723d303038394533"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/react-native-elements/react-native-elements#sponsors"&gt;&lt;img src="https://camo.githubusercontent.com/5d9fa68e30b889808c941af06ba7c61fcee6ef1c0cc9eaaf7c472dba467cca43/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f72656163742d6e61746976652d656c656d656e74732f73706f6e736f72732f62616467652e7376673f7374796c653d666c61742d73717561726526636f6c6f723d303038394533266c6f676f3d6f70656e636f6c6c656374697665"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/sponsors/react-native-elements"&gt;&lt;img src="https://camo.githubusercontent.com/a960e13fddc3e418ced72b56388929c3704f27582f83dc1b3b974b43573fc10d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73706f6e736f72732f72656163742d6e61746976652d656c656d656e74733f6c6162656c3d53706f6e736f72266c6f676f3d67697468756273706f6e736f7273267374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div&gt;
&lt;p&gt;&lt;a href="https://reactnativeelements.com" rel="nofollow"&gt;Getting Started 🚀&lt;/a&gt; - &lt;a href="https://reactnativeelements.com/docs" rel="nofollow"&gt;Documentation 📚&lt;/a&gt; - &lt;a href="https://expo.dev/@rne_org/react-native-elements" rel="nofollow"&gt;Expo demo &lt;/a&gt; - &lt;a href="https://reactnativeelements.com/blog" rel="nofollow"&gt;Blog&lt;/a&gt; - &lt;a href="https://github.com/react-native-elements/react-native-elements/releases"&gt;Releases&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install @rneui/themed @rneui/base&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Follow
&lt;a href="https://reactnativeelements.com/docs/installation" rel="nofollow"&gt;these instructions&lt;/a&gt;
to install React Native Elements!&lt;/p&gt;
&lt;h3&gt;
Packages&lt;/h3&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;th&gt;Downloads&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;@rneui/base&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/@rneui/base" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/754674d452ccd7ed80ec5e351a15dbf25ea5c1bf506f790f0595571b7bf9b0f9/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40726e6575692f626173652e7376673f7374796c653d666c61742d7371756172652d737175617265" alt="badge"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/3d0140889ab8eb9caace710811271220d329de226f9ebd7baa8071cff87d9607/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f40726e6575692f626173653f7374796c653d666c61742d7371756172652d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/3d0140889ab8eb9caace710811271220d329de226f9ebd7baa8071cff87d9607/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f40726e6575692f626173653f7374796c653d666c61742d7371756172652d737175617265" alt="npm"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;@rneui/themed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/@rneui/themed" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/3957d94c35fbbe0bf3b8a3e44712f7cef7de097764af7444f36421c47b5f7a09/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40726e6575692f7468656d65642e7376673f7374796c653d666c61742d7371756172652d737175617265" alt="badge"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/58f0d69cff1c5e33bf8d8ce51374eafec2dd2caa80498408b69d8cde779692f8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f40726e6575692f7468656d65643f7374796c653d666c61742d7371756172652d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/58f0d69cff1c5e33bf8d8ce51374eafec2dd2caa80498408b69d8cde779692f8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f40726e6575692f7468656d65643f7374796c653d666c61742d7371756172652d737175617265" alt="npm"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
Quick Start&lt;/h2&gt;
&lt;p&gt;Start using the components or try it on
&lt;a href="https://snack.expo.dev/@arpitbhalla/react-native-elements" rel="nofollow"&gt;Snack&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight highlight-source-tsx notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; &lt;span class="pl-smi"&gt;Button&lt;/span&gt; &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;'@rneui/base'&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-smi"&gt;App&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="pl-c1"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pl-smi"&gt;Button&lt;/span&gt; &lt;span class="pl-c1"&gt;title&lt;/span&gt;&lt;span class="pl-c1"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;"Hello World!"&lt;/span&gt; &lt;span class="pl-c1"&gt;/&lt;/span&gt;&lt;span class="pl-c1"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
React Native Web support&lt;/h2&gt;
&lt;p&gt;As a cross platform UI Toolkit, you can now use RNE on the web &amp;amp; share your codebase between your React Native + React web apps. RNE components are rendered perfectly on browser. You can achieve this to target iOS, Android and Web by collaborating RNE and &lt;a href="https://github.com/necolas/react-native-web"&gt;React Native for Web&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Click &lt;a href="https://reactnativeelements.com/blog/2018/12/13/react-native-web" rel="nofollow"&gt;here&lt;/a&gt; for a full walkthrough using React Native Elements + React Native Web.&lt;/p&gt;
&lt;h2&gt;
Expo demo app&lt;/h2&gt;
&lt;p&gt;Checkout the official
&lt;a href="https://expo.dev/@rne_org/react-native-elements" rel="nofollow"&gt;React Native&lt;/a&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/react-native-elements/react-native-elements"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Finance Dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ket7eyUt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2991783/file/original-7eeb5091765486f44a8468c8387ba9a0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ket7eyUt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2991783/file/original-7eeb5091765486f44a8468c8387ba9a0.jpg" alt="by [Rakib Kowshar](https://dribbble.com/shots/18581445-Finance-Dashboard)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18581445-Finance-Dashboard"&gt;Rakib Kowshar&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Improving health app
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ajRYNX0H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2986943/file/original-4e90179aa6faf76bd679cf5151c21f9a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ajRYNX0H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2986943/file/original-4e90179aa6faf76bd679cf5151c21f9a.jpg" alt="by [Taras Migulko](https://dribbble.com/shots/18578096-Improving-health-app)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18578096-Improving-health-app"&gt;Taras Migulko&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Fusen-System
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DkaQmk4j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2991974/file/original-58df72da830e2dd020347161f30ef82d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DkaQmk4j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2991974/file/original-58df72da830e2dd020347161f30ef82d.jpg" alt="by [Jabel Ahmed](https://dribbble.com/shots/18582097-Fusen-System)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18582097-Fusen-System"&gt;Jabel Ahmed&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---DfG62SO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1539308433748332551/pu/img/CL9ewRAXj3orryZp.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--y050eK4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1404973660511735809/yxeXiLG9_normal.jpg" alt="Chad profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Chad
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @dotdude
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Making a happy little input component in &lt;a href="https://twitter.com/figma"&gt;@figma&lt;/a&gt; using variants, component properties, auto layout, and absolute positioning. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:06 PM - 21 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1539308791153405956" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1539308791153405956" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1539308791153405956" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HHg-_E3f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FV4IfOGXoAEMuQm.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVRGKgqC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1276240813333401600/brd0hSfW_normal.jpg" alt="Bramus profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Bramus
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/bramus"&gt;@bramus&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      At today’s &lt;a href="https://twitter.com/csswg"&gt;@csswg&lt;/a&gt; meeting we unblocked the path forward to style based container queries. With these you can apply extra CSS based on a property value.&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/LhCWaZHS6A"&gt;drafts.csswg.org/css-contain-3/…&lt;/a&gt;&lt;br&gt;&lt;br&gt;Initial value of `container-type` will be `none` and all elements will be style containers by default. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      18:39 PM - 22 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1539679606596321281" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1539679606596321281" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1539679606596321281" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XjIzPE39--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FV8PW4gWYAUH1xi.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TfY0J4zD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1154081274946101253/x5FP9gGj_normal.jpg" alt="Bryan Robinson profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Bryan Robinson
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/brob"&gt;@brob&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      This is your regular reminder that you can import your environment variables from your .env file directly into your &lt;a href="https://twitter.com/Netlify"&gt;@Netlify&lt;/a&gt; config with the Netlify CLI. &lt;br&gt;&lt;br&gt;I regularly see this shock folks. It's possible and amazing&lt;br&gt;&lt;br&gt;Just run `netlify env:import .env` and save yourself a headache 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      13:41 PM - 23 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1539966946384429056" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1539966946384429056" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1539966946384429056" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fISwgXBt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1540748479307206658/pu/img/gtzKFdaM21CNr5qT.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--F9ZNrQ-U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1514628527596838914/csOZadQU_normal.jpg" alt="Jamon profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jamon
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/jamonholmgren"&gt;@jamonholmgren&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      How some developers think “separation of concerns” works. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      20:30 PM - 25 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1540794599630700545" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1540794599630700545" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1540794599630700545" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Generative Kong Summit Patterns
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/cobra_winfrey/embed/poaYpGV?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/cobra_winfrey"&gt;Adam Kuhn&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Squiggly Pencils
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/NWymKYz?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS House from "Up"
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/OJNeGoO?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;New Viewport Units&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this episode of Syntax, Wes and Scott talk about the new viewport units coming to the web - what are they and when can we use them?&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/7JRLnrxCA92COXHs4dXZAY" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>Weekly Digest 24/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 19 Jun 2022 17:49:00 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-242022-1il6</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-242022-1il6</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #24 of this year.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Accelerating GitHub theme creation with color tooling
&lt;/h3&gt;

&lt;p&gt;Learn why the GitHub Design Infrastructure team built a dedicated color tool and how they use it to create new color palettes for GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.blog/2022-06-14-accelerating-github-theme-creation-with-color-tooling/"&gt;Accelerating GitHub theme creation with color tooling | The GitHub Blog&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Go ahead, delete your .env.example file
&lt;/h3&gt;

&lt;p&gt;Learn how 1Password Developer Tools give you an alternative way to collaborate on configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.1password.com/delete-your-example-env-file/"&gt;Go ahead, delete your .env.example file | 1Password&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  *&lt;strong&gt;&lt;em&gt;The ins and outs of Core Web Vitals by Dan Shappir&lt;/em&gt;&lt;/strong&gt;*
&lt;/h3&gt;

&lt;p&gt;Ever since Google announced the webpage performance, as measured by Core Web Vitals (CWV) is a ranking factor starting May 2021, it has become the de-facto standard for measuring performance on the web.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/5Ox0nqa_pPc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/danshappir"&gt;Dan Shappir&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dry up your generic signatures with default generics
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/z7thLMrTrZs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/mattpocockuk"&gt;Matt Pocock&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Chrome 103 - What’s New in DevTools
&lt;/h3&gt;

&lt;p&gt;Record double-click and right-click events, new options to measure user flow in Lighthouse and more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/LyMts4yfQu8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://www.youtube.com/watch?v=LyMts4yfQu8"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Jest-Image-Snapshot
&lt;/h3&gt;

&lt;p&gt;Jest matcher for image comparisons. Most commonly used for visual regression testing.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/americanexpress"&gt;
        americanexpress
      &lt;/a&gt; / &lt;a href="https://github.com/americanexpress/jest-image-snapshot"&gt;
        jest-image-snapshot
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ✨ Jest matcher for image comparisons. Most commonly used for visual regression testing.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/americanexpress/jest-image-snapshot/raw/main/jest-image-snapshot.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qs-l8a1M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/americanexpress/jest-image-snapshot/raw/main/jest-image-snapshot.png" alt="Jest Image Snapshot - One Amex" width="50%"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/jest-image-snapshot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/d446ce88b55e369eec06172a33c5b0f173d4a44d7e5dc516ac636e160992d69e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6a6573742d696d6167652d736e617073686f74" alt="npm"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/americanexpress/jest-image-snapshot/workflows/Health%20Check/badge.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j6Bhq0EI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/americanexpress/jest-image-snapshot/workflows/Health%2520Check/badge.svg" alt="Health Check"&gt;&lt;/a&gt;
&lt;a href="https://github.com/jest-community/awesome-jest"&gt;&lt;img src="https://camo.githubusercontent.com/e5d3197f63169393ee5695f496402136b412d5e3b1d77dc5aa80805fdd5e7edb/68747470733a2f2f617765736f6d652e72652f6d656e74696f6e65642d62616467652e737667" alt="Mentioned in Awesome Jest"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Jest matcher that performs image comparisons using &lt;a href="https://github.com/mapbox/pixelmatch"&gt;pixelmatch&lt;/a&gt; and behaves just like &lt;a href="https://facebook.github.io/jest/docs/snapshot-testing.html" rel="nofollow"&gt;Jest snapshots&lt;/a&gt; do! Very useful for visual regression testing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
👩‍💻 Hiring 👨‍💻
&lt;/h2&gt;
&lt;p&gt;Want to get paid for your contributions to &lt;code&gt;jest-image-snapshot&lt;/code&gt;?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Send your resume to &lt;a href="https://github.com/americanexpress/jest-image-snapshotmailto:oneamex.careers@aexp.com"&gt;oneamex.careers@aexp.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
📖 Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/americanexpress/jest-image-snapshot#-features"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/americanexpress/jest-image-snapshot#-usage"&gt;Usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/americanexpress/jest-image-snapshot#-api"&gt;API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/americanexpress/jest-image-snapshot#-contributing"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
✨ Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Take image snapshots of your application&lt;/li&gt;
&lt;li&gt;Ability to compare snapshots from a baseline&lt;/li&gt;
&lt;li&gt;Update snapshots when you're good with changes&lt;/li&gt;
&lt;li&gt;Customize a difference threshold&lt;/li&gt;
&lt;li&gt;Add a Gaussian blur for noise&lt;/li&gt;
&lt;li&gt;Adjust the diff layout horizontal vs vertical&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
How it works&lt;/h3&gt;
&lt;p&gt;Given an image (Buffer instance with PNG image data) the &lt;code&gt;toMatchImageSnapshot()&lt;/code&gt; matcher will create a &lt;code&gt;__image_snapshots__&lt;/code&gt; directory in the directory the test is in and will store the baseline snapshot image there on the first run. Note that if &lt;code&gt;customSnapshotsDir&lt;/code&gt; option is given then it will store baseline snapshot there instead.&lt;/p&gt;
&lt;p&gt;On subsequent test runs the matcher will compare the image…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/americanexpress/jest-image-snapshot"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Vale
&lt;/h3&gt;

&lt;p&gt;A syntax-aware linter for prose built with speed and extensibility in mind.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/errata-ai"&gt;
        errata-ai
      &lt;/a&gt; / &lt;a href="https://github.com/errata-ai/vale"&gt;
        vale
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      📝 A syntax-aware linter for prose built with speed and extensibility in mind.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Vale: Your style, our editor &lt;a href="https://ci.appveyor.com/project/jdkato/vale" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/43e9cca9fcfaca95a3b165e2e1a0fbbc123f7e434026bba3094e86c5bb629e34/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f736e6b306f6f366968316e77756636723f7376673d74727565" alt="Build status"&gt;&lt;/a&gt; &lt;a href="https://goreportcard.com/report/github.com/errata-ai/vale" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/26b8aa2c03a82f520c3b5d8c4293571e19186e68b054cf26e6860f69615a4452/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f254630253946253933253944253230253230676f2532307265706f72742d412532422d3735433436423f636f6c6f723d303041434437" alt="Go Report Card"&gt;&lt;/a&gt; &lt;a href="https://github.com/errata-ai/vale/releases"&gt;&lt;img src="https://camo.githubusercontent.com/e4de21d7b7edf75ea63798d7475e18b438ee95ec11de4d8a7c613220b32371de/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6572726174612d61692f76616c652f746f74616c3f6c6f676f3d47697448756226636f6c6f723d666636396234" alt="GitHub All Releases"&gt;&lt;/a&gt; &lt;a href="https://hub.docker.com/r/jdkato/vale" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2b243af6b460f9402a46bc553fabedccbe1343afa148f81488f7ef4c1ab9e88d/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f6a646b61746f2f76616c653f636f6c6f723d6f72616e6765266c6f676f3d646f636b6572266c6f676f436f6c6f723d7768697465" alt="Docker Pulls"&gt;&lt;/a&gt; &lt;a href="https://community.chocolatey.org/packages/vale" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/e66cd4ad6f31607eebf100d596eb0330ac3721727135bec2448eede1c5379ba3/68747470733a2f2f696d672e736869656c64732e696f2f63686f636f6c617465792f64742f76616c653f636f6c6f723d7768697465266c6162656c3d63686f636f6c61746579266c6f676f3d63686f636f6c61746579" alt="Chocolatey"&gt;&lt;/a&gt; &lt;a href="https://formulae.brew.sh/formula/vale" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/99c3299db717bba9d32cf9106169912744731b8e3593238608b95ac766764a91/68747470733a2f2f696d672e736869656c64732e696f2f686f6d65627265772f696e7374616c6c732f64792f76616c653f636f6c6f723d79656c6c6f77266c6162656c3d686f6d6562726577266c6f676f3d686f6d6562726577" alt="Homebrew"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;
    &lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/8785025/96957750-5eab0d00-14b0-11eb-9f5f-52d862518ebf.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WmP1Jc7z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/8785025/96957750-5eab0d00-14b0-11eb-9f5f-52d862518ebf.png"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;b&gt;Vale&lt;/b&gt; is a command-line tool that brings code-like linting to prose. It's &lt;b&gt;&lt;a href="https://github.com/errata-ai/vale#mag-at-a-glance-vale-vs-"&gt;fast&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;cross-platform&lt;/b&gt; (Windows, macOS, and Linux), and &lt;b&gt;highly customizable&lt;/b&gt;
&lt;/p&gt;

&lt;div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href="https://vale.sh/docs/vale-cli/installation/" rel="nofollow"&gt;Documentation&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://vale.sh/#users" rel="nofollow"&gt;Case Studies&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://vale.sh/hub/" rel="nofollow"&gt;Package Hub&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://vale.sh/explorer/" rel="nofollow"&gt;Rule Explorer&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;&lt;a href="https://vale.sh/generator/" rel="nofollow"&gt;Config Generator&lt;/a&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;
❤️ Sponsors&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Hi there! I'm &lt;a href="https://github.com/jdkato"&gt;@jdkato&lt;/a&gt;, the sole developer of Vale. If you'd like to help me dedicate more time to &lt;em&gt;developing&lt;/em&gt;, &lt;em&gt;documenting&lt;/em&gt;, and &lt;em&gt;supporting&lt;/em&gt; Vale, feel free to donate through the &lt;a href="https://opencollective.com/vale" rel="nofollow"&gt;Open Collective&lt;/a&gt;. Any donation—big, small, one-time, or recurring—is greatly appreciated!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
Organizations&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://opencollective.com/vale/organization/0/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/93ecf77aa64014db7b98e9e7050818ff53d2a16bbb1a131136497ba6c2b5abc2/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f302f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/1/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/877b57d2e85698b4213f8695c9954bfba055bb72b53190842f33ad834233dd94/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f312f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/2/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c2bd406c64b9c34ff58f02476a0967daa03632826e9dcda0742307e13a15e525/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f322f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/3/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/8e1f8fae13b7433d899a5187199c310e80ab437e4e797751911d06e97f3b1871/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f332f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/4/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/06bc114cdf6f65dac8da3583a1da85df6528edf77cb56f68f6743b8ef0c0b4af/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f342f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/5/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c1dee304ef67aeb3d97ce1bbce6d2f88bff80eafe86b8bae3fd0b09355424b15/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f352f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/6/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/910d6ee2cc3d00fa07a666de4ce7217609fdf71e1d84bf389e0defb94e35b828/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f362f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/7/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/a86f0e147ca4c53e983442c4952eec8ad5da1c76a6b3a41b7ed8880e93e30b19/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f372f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/8/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7062a9be6772d2fa346ce1f985b8b85abb12614a0d0759f0ca00f2d320b03cc2/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f382f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;
&lt;a href="https://opencollective.com/vale/organization/9/website" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/530a3f39b4660a61f16a5999cda66272e66ead8374dce7cb5fe451d0b99a10a8/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f6f7267616e697a6174696f6e2f392f6176617461722e7376673f6176617461724865696768743d313030"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Individuals&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://opencollective.com/vale" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/e2e6e868b78fa80c42c84c163a9c38845824040bc39a3683b9232d1284cc3a70/68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f76616c652f696e646976696475616c732e7376673f77696474683d383930"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
💥 Key Features&lt;/h2&gt;
&lt;ul class="contains-task-list"&gt;
&lt;li class="task-list-item"&gt;
&lt;p&gt; &lt;strong&gt;Support for markup&lt;/strong&gt;: Vale has a rich understanding of many &lt;a href="https://docs.errata.ai/vale/scoping#formats" rel="nofollow"&gt;markup formats&lt;/a&gt;, allowing it to avoid syntax-related false positives and intelligently exclude code snippets from prose-related rules.&lt;/p&gt;
&lt;/li&gt;
&lt;li class="task-list-item"&gt;
&lt;p&gt; A &lt;strong&gt;highly customizable&lt;/strong&gt; &lt;a href="https://vale.sh/docs/topics/styles/" rel="nofollow"&gt;extension system&lt;/a&gt;: Vale is capable of enforcing &lt;em&gt;your style&lt;/em&gt;—be it a standard &lt;a href="https://github.com/errata-ai/styles#available-styles"&gt;editorial style guide&lt;/a&gt; or a custom in-house set of rules (such as those created by &lt;a href="https://docs.gitlab.com/ee/development/documentation/testing.html#vale" rel="nofollow"&gt;GitLab&lt;/a&gt;…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/errata-ai/vale"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;
  
  
  SVG Spinners
&lt;/h3&gt;

&lt;p&gt;A collection of 24 x 24 dp SVG spinners!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/n3r4zzurr0"&gt;
        n3r4zzurr0
      &lt;/a&gt; / &lt;a href="https://github.com/n3r4zzurr0/svg-spinners"&gt;
        svg-spinners
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A collection of 24 x 24 dp SVG spinners!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
SVG Spinners&lt;/h1&gt;
&lt;p&gt;All spinners are displayed as 24 x 24 dp. The main content rests inside the live area of 22 dp with a padding of 1dp.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://caniuse.com/#feat=svg-smil" rel="nofollow"&gt;Browser Support&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Preview&lt;/th&gt;
&lt;th&gt;File Name&lt;/th&gt;
&lt;th&gt;Size (Bytes)&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/12-dots-scale-rotate.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DUk1EWSW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/12-dots-scale-rotate-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/12-dots-scale-rotate.svg"&gt;12-dots-scale-rotate.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2450&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/180-ring-with-bg.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HZYX5mne--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/180-ring-with-bg-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/180-ring-with-bg.svg"&gt;180-ring-with-bg.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;493&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/180-ring.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CHgqE6VZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/180-ring-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/180-ring.svg"&gt;180-ring.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;390&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/270-ring-with-bg.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3pBzppR7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/270-ring-with-bg-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/270-ring-with-bg.svg"&gt;270-ring-with-bg.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;542&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/270-ring.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DzK7ySyK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/270-ring-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/270-ring.svg"&gt;270-ring.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;439&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-bounce.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--heeH2vsc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/3-dots-bounce-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-bounce.svg"&gt;3-dots-bounce.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;631&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-fade.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yjDZFLe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/3-dots-fade-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-fade.svg"&gt;3-dots-fade.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;544&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-moving.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VXAN_hye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/3-dots-moving-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-moving.svg"&gt;3-dots-moving.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2654&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-rotate.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rK07aygR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/3-dots-rotate-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-rotate.svg"&gt;3-dots-rotate.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;375&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-scale-middle.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xv2leLpq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/3-dots-scale-middle-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-scale-middle.svg"&gt;3-dots-scale-middle.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;459&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-scale.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dxYfUAz8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/3-dots-scale-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/3-dots-scale.svg"&gt;3-dots-scale.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;448&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/6-dots-rotate.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hMHsAkJc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/6-dots-rotate-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/6-dots-rotate.svg"&gt;6-dots-rotate.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;692&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/6-dots-scale-middle.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PTDUAMay--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/6-dots-scale-middle-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/6-dots-scale-middle.svg"&gt;6-dots-scale-middle.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2323&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/6-dots-scale.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--72OvCv9b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/6-dots-scale-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/6-dots-scale.svg"&gt;6-dots-scale.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2611&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/90-ring-with-bg.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Uv_6ePlW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/90-ring-with-bg-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/90-ring-with-bg.svg"&gt;90-ring-with-bg.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;487&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/90-ring.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OpaGVclH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/90-ring-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/90-ring.svg"&gt;90-ring.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;384&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-fade.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QFgXeAhj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/bars-fade-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-fade.svg"&gt;bars-fade.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;570&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-rotate-fade.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i8hXyS4c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/bars-rotate-fade-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-rotate-fade.svg"&gt;bars-rotate-fade.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;894&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-scale-fade.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X2FCsPFr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/bars-scale-fade-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-scale-fade.svg"&gt;bars-scale-fade.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1123&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-scale-middle.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hpryr2rQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/bars-scale-middle-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-scale-middle.svg"&gt;bars-scale-middle.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1759&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-scale.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9fkRJ672--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/bars-scale-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bars-scale.svg"&gt;bars-scale.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1759&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-scale.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0mnkLItd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/blocks-scale-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-scale.svg"&gt;blocks-scale.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1935&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-shuffle-2.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dyumhpje--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/blocks-shuffle-2-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-shuffle-2.svg"&gt;blocks-shuffle-2.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;906&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-shuffle-3.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UlmzTmEE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/blocks-shuffle-3-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-shuffle-3.svg"&gt;blocks-shuffle-3.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1315&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-wave.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6cTJ4GKN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/blocks-wave-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/blocks-wave.svg"&gt;blocks-wave.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3688&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bouncing-ball.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xtH30egF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/bouncing-ball-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/bouncing-ball.svg"&gt;bouncing-ball.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;798&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/clock.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zfk4IJ0j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/clock-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/clock.svg"&gt;clock.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;530&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/dot-revolve.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--85YeDpqD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/dot-revolve-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/dot-revolve.svg"&gt;dot-revolve.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;357&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/eclipse-half.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KoHRbHZO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/eclipse-half-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/eclipse-half.svg"&gt;eclipse-half.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;341&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/eclipse.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jwfOuKZY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/eclipse-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/eclipse.svg"&gt;eclipse.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;333&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/gooey-balls-1.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dV-BgAmr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/gooey-balls-1-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/gooey-balls-1.svg"&gt;gooey-balls-1.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1006&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/gooey-balls-2.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--52e0jGo4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/gooey-balls-2-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/gooey-balls-2.svg"&gt;gooey-balls-2.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;831&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-2.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--APiV367f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-2-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-2.svg"&gt;pulse-2.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;731&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-3.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L33EdTte--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-3-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-3.svg"&gt;pulse-3.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1050&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-multiple.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xxcC4AB7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-multiple-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-multiple.svg"&gt;pulse-multiple.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1036&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-ring.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--spyif9xo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-ring-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-ring.svg"&gt;pulse-ring.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;683&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-rings-2.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hFNPsLiH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-rings-2-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-rings-2.svg"&gt;pulse-rings-2.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1273&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-rings-3.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cw4EhOoN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-rings-3-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-rings-3.svg"&gt;pulse-rings-3.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1862&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-rings-multiple.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MV7wNXMr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-rings-multiple-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse-rings-multiple.svg"&gt;pulse-rings-multiple.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1841&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fAmac67S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/pulse-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/pulse.svg"&gt;pulse.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;381&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/tadpole.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vTgtfb1u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/tadpole-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/tadpole.svg"&gt;tadpole.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;354&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/wifi-fade.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aSjYUhKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/wifi-fade-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/wifi-fade.svg"&gt;wifi-fade.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1062&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/wifi.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GnM_Jq8X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/wifi-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/wifi.svg"&gt;wifi.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1128&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/wind-toy.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SKl0mhQE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/n3r4zzurr0/svg-spinners/main/preview/wind-toy-black-36.svg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/n3r4zzurr0/svg-spinners/blob/main/svg/wind-toy.svg"&gt;wind-toy.svg&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1276&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/n3r4zzurr0/svg-spinners"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Troovē - Landing Page Mobile Responsive
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--arjc9pQD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/4657225/screenshots/18519165/media/897c8f4fc7249a29ace9cd28bafc356e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--arjc9pQD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/4657225/screenshots/18519165/media/897c8f4fc7249a29ace9cd28bafc356e.jpg" alt="by [Ihya Fathurr](https://dribbble.com/shots/18519165-Troov-Landing-Page-Mobile-Responsive)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18519165-Troov-Landing-Page-Mobile-Responsive"&gt;Ihya Fathurr&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Food Delivery App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--36J_4zLj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2920790/file/original-84481e9cb1d54bbc7937a5d9b28e2df8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--36J_4zLj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2920790/file/original-84481e9cb1d54bbc7937a5d9b28e2df8.png" alt="by [Lasha Monaselidze](https://dribbble.com/shots/18517509-Food-Delivery-App-Case-Study)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18517509-Food-Delivery-App-Case-Study"&gt;Lasha Monaselidze&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Mobile App Design.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C4xRl7Gc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/7476807/screenshots/18520393/media/271f5d6e50077b79bcfd265dc50bfd54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C4xRl7Gc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/7476807/screenshots/18520393/media/271f5d6e50077b79bcfd265dc50bfd54.png" alt="by [Mishu](https://dribbble.com/shots/18520393-Mobile-App-Design)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18520393-Mobile-App-Design"&gt;Mishu&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Sekuterin - Scooter Rental App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vRDpBClu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2917373/file/original-9757bc6dbd63cac74f5ecff6b03d2c19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vRDpBClu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2917373/file/original-9757bc6dbd63cac74f5ecff6b03d2c19.png" alt="by [Asal Design](https://dribbble.com/shots/18508443-Sekuterin-Scooter-Rental-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18508443-Sekuterin-Scooter-Rental-App"&gt;Asal Design&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bZLU0TJS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1536455008337678336/pu/img/OAwc_l_ZzS0gGlQp.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xCj75Grc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1508731471003070467/1vlOmJvy_normal.jpg" alt="Jesper van Haaren profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Jesper van Haaren
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @jhaaren
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Nice detail on Ikea. When you open another product from the same series in a new tab, the page titles change from the name to the measurements. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      21:08 PM - 13 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1536455446747402240" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1536455446747402240" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1536455446747402240" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dlL_wdiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1536848971859210242/pu/img/1FVUK5rUomQKhV0e.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--YFnfaMM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1362053856247623680/q23Y_71D_normal.jpg" alt="☄︎ profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        ☄︎
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @0xca0a
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      added pointer events and clicking action, almost getting tempted adding real scrollable html to the phone screen now 😑&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/xYSgZsZW2u"&gt;codesandbox.io/s/interactive-…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      23:14 PM - 14 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1536849617786126336" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1536849617786126336" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1536849617786126336" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qoAwIZP---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/467581434434453504/iFzELOBn_normal.jpeg" alt="Axel Rauschmayer profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Axel Rauschmayer
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/rauschma"&gt;@rauschma&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      MacOS: You can copy ESM code (including top-level `await`) to the clipboard and execute it via Node.js as follows.&lt;br&gt;&lt;br&gt;pbpaste | node --input-type=module
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      10:18 AM - 16 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1537379105330561025" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1537379105330561025" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1537379105330561025" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Kill Internet Explorer but don't touch Chrome
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/t_afif/embed/zYRyENB?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChallengesCss"&gt;Temani Afif&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  SVG Image Mask
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/5t3ph/embed/GRQebrX?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/5t3ph/"&gt;Stephanie Eckles&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pure CSS The Queen's Gambit
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/AsyrafHussin/embed/YzeZKJZ?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/asyrafhussin4"&gt;Asyraf Hussin&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;Edge Functions and Deno with Eduardo Bouças of Netlify&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this supper club episode of Syntax, Wes and Scott talk edge functions and Deno with Eduardo Bouças of Netlify.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/2KNq6PdZrCihHxbEibfSBG" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>css</category>
      <category>react</category>
    </item>
    <item>
      <title>Weekly Digest 23/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 12 Jun 2022 19:32:35 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-232022-1kj9</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-232022-1kj9</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #23.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Better scrolling through modern CSS
&lt;/h3&gt;

&lt;p&gt;There's more to scrollbars than you might expect&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.mayank.co/better-scrolling-through-modern-css"&gt;Better scrolling through modern CSS&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to pick the least wrong colors
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;An algorithm for creating color palettes for data visualization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://matthewstrom.com/writing/how-to-pick-the-least-wrong-colors"&gt;How to pick the least wrong colors&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Monorepos in JavaScript &amp;amp; TypeScript&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is a comprehensive tutorial on Monorepos in JavaScript/TypeScript --- which is using state of the art tools for these kind of architectures in frontend applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.robinwieruch.de/javascript-monorepos/"&gt;Monorepos in JavaScript &amp;amp; TypeScript&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Redwood in 100 Seconds
&lt;/h3&gt;

&lt;p&gt;RedwoodJS is a full-stack JavaScript framework that combines the power of React, GraphQL, and Prisma into a single package. It is used to build serverless web applications with a relational SQL database for the storage layer.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/o5Mwa_TJ3HM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/firedev"&gt;Fireship&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  New in Chrome 102: PWAs as File Handlers, inert, the navigation API, and more!
&lt;/h3&gt;

&lt;p&gt;Chrome 102 is rolling out now! Installed PWAs can register as file handlers, making it easy for users to open files directly from disk. The inert attribute allows you to mark parts of the DOM as inert. The navigation API makes it easier for single-page apps to handle navigation and updates to the URL.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/AGyP85QEBzY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Lerna 5 Walkthrough
&lt;/h3&gt;

&lt;p&gt;A quick walkthrough of the latest release of Lerna 5 on an example repository with a Remix application and a couple of libraries. We're going to see how to set up Lerna, make tasks running in Lerna extremely fast (powered by Nx), and how to publish packages to an npm registry.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/WgO5iG57jeQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/nrwl_io"&gt;Nrwl&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Vitest Is Better Than Jest
&lt;/h3&gt;

&lt;p&gt;Vitest is a simple testing library built on top of Vite which takes everything I love about Jest and brings it to the modern age of JavaScript. Everyone that has worked with Jest knows how much of a pain it is to work with ES modules, but Vitest makes it trivial. Vitest also adds many additional features and quality of life changes that make it better than Jest in my opinion.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7f-71kYhK00"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/DevSimplified"&gt;Web Dev Simplified&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I DevTools
&lt;/h3&gt;

&lt;p&gt;Can I DevTools is like Can I Use but for the browser devtools.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/pankajparashar"&gt;
        pankajparashar
      &lt;/a&gt; / &lt;a href="https://github.com/pankajparashar/canidev.tools"&gt;
        canidev.tools
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      It's like @CanIUse but for the browser devtools. Created by &lt;a class="mentioned-user" href="https://dev.to/pankajparashar"&gt;@pankajparashar&lt;/a&gt; &amp;amp; curated by the community.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h2&gt;
How to Contribute?&lt;/h2&gt;
&lt;p&gt;The data is maintained in &lt;a href="https://airtable.com/shribstjEIVm2gw3o/tblVZ0IZTaIpMHbAU/viwivqMmv1n2q7DxL" rel="nofollow"&gt;Airtable&lt;/a&gt; exposed at the endpoint &lt;a href="https://www.canidev.tools/api/data.json" rel="nofollow"&gt;data.json&lt;/a&gt;. Use the "Add" or "File Issue" links in the web app to propose addition of new features or improve existing features using the Github issue tracker.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/38640616/151989996-9618c401-edb0-4ce8-9206-0e54a7bf2cce.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tNCt_0V6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/38640616/151989996-9618c401-edb0-4ce8-9206-0e54a7bf2cce.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/pankajparashar/canidev.tools"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  DALL·E
&lt;/h3&gt;

&lt;p&gt;PyTorch package for the discrete VAE used for DALL·E.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/openai"&gt;
        openai
      &lt;/a&gt; / &lt;a href="https://github.com/openai/DALL-E"&gt;
        DALL-E
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      PyTorch package for the discrete VAE used for DALL·E.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Overview&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://openai.com/blog/dall-e/" rel="nofollow"&gt;[Blog]&lt;/a&gt; &lt;a href="https://arxiv.org/abs/2102.12092" rel="nofollow"&gt;[Paper]&lt;/a&gt; &lt;a href="https://github.com/openai/DALL-Emodel_card.md"&gt;[Model Card]&lt;/a&gt; &lt;a href="https://github.com/openai/DALL-Enotebooks/usage.ipynb"&gt;[Usage]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the official PyTorch package for the discrete VAE used for DALL·E. The transformer used to generate the images from the text is not part of this code release.&lt;/p&gt;
&lt;h1&gt;
Installation&lt;/h1&gt;
&lt;p&gt;Before running &lt;a href="https://github.com/openai/DALL-Enotebooks/usage.ipynb"&gt;the example notebook&lt;/a&gt;, you will need to install the package using&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;pip install DALL-E
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/openai/DALL-E"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  1LOC
&lt;/h3&gt;

&lt;p&gt;What's your favorite JavaScript single LOC (line of code)?&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/1milligram"&gt;
        1milligram
      &lt;/a&gt; / &lt;a href="https://github.com/1milligram/1loc"&gt;
        1loc
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      What's your favorite JavaScript single LOC (line of code)?
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Favorite single line of code&lt;/h1&gt;
&lt;p&gt;What's your favorite JavaScript single LOC (line of code)? Let me know!&lt;/p&gt;
&lt;h2&gt;
Running it on local&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Clone the project:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;$ git clone git@github.com:1milligram/1loc.git&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Install the dependencies:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;$ &lt;span class="pl-c1"&gt;cd&lt;/span&gt; 1loc
$ npm install&lt;/pre&gt;

&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Run it on the local:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;$ npm run dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Look at the console to see the &lt;em&gt;Local URL&lt;/em&gt;. Open it in your browser to see it in action.&lt;/p&gt;
&lt;h2&gt;
Contributing&lt;/h2&gt;
&lt;p&gt;Pull requests are welcomed. To submit your favorite JavaScript single line of code, please create a markdown file, and put it in
a particular category of the &lt;a href="https://github.com/1milligram/1locsnippets"&gt;snippets&lt;/a&gt; folder.&lt;/p&gt;
&lt;h2&gt;
About&lt;/h2&gt;
&lt;p&gt;This project is developed by &lt;em&gt;Nguyen Huu Phuoc&lt;/em&gt;. I love building products and sharing knowledge.&lt;/p&gt;
&lt;p&gt;Be my friend on&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/nghuuphuoc" rel="nofollow"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/phuocng" rel="nofollow"&gt;dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/phuoc-ng"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/1milligram/1loc"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Travel Mobile App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bdL5Ud0U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2852301/file/original-b130c5174f2ea1100638156cc0bb17d1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bdL5Ud0U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2852301/file/original-b130c5174f2ea1100638156cc0bb17d1.png" alt="by [Wahab](https://dribbble.com/shots/18462387--Travel-Mobile-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18462387--Travel-Mobile-App"&gt;Wahab&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Task Management App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BltEswzY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2865454/file/original-513a0907bdaa6189fcfa803ea0cf32ab.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BltEswzY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2865454/file/original-513a0907bdaa6189fcfa803ea0cf32ab.jpg" alt="by [Rakib Kowshar](https://dribbble.com/shots/18468605-Task-Management-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18468605-Task-Management-App"&gt;Rakib Kowshar&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Plant Shop Mobile App Design
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ekxGRl2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/7245559/screenshots/18468647/media/364c5213b8aabb2a1883c62aa6ef742d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ekxGRl2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/users/7245559/screenshots/18468647/media/364c5213b8aabb2a1883c62aa6ef742d.png" alt="by [Mahmudul Hasan](https://dribbble.com/shots/18468647-Plant-Shop-Mobile-App-Design)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18468647-Plant-Shop-Mobile-App-Design"&gt;Mahmudul Hasan&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f4C6EFBv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FUfUouUWAAE8q7S.png" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--hUDzuI4m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/751696248047009792/_HiVTyjR_normal.jpg" alt="Matt Pocock profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Matt Pocock
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/mattpocockuk"&gt;@mattpocockuk&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Doing some thinking about my TS course - I'm leaning towards a creating a 'circle of types'.&lt;br&gt;&lt;br&gt;You can transform from (nearly) every type to every other type in TypeScript - but knowing how is tough.&lt;br&gt;&lt;br&gt;This would be an AMAZING visual reference for when you're doing TS in the wild. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      12:44 PM - 05 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1533429614194077696" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1533429614194077696" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1533429614194077696" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HhkczGfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FUfsbsQXoAIK5hl.png" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CMs6xEbW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1530967912252686336/vJaOQEtH_normal.jpg" alt="Alvin Bryan profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Alvin Bryan
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @alvinbnet
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      TIL: How to "reveal in finder" with the terminal&lt;br&gt;&lt;br&gt;Be mindful of the uppercase, otherwise it will scream at you 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      17:23 PM - 05 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1533499641857290252" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1533499641857290252" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1533499641857290252" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--QTRpwfmS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/522877975255986176/E_fCaAi6_normal.png" alt="CodeMirror profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        CodeMirror
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @codemirror
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Over 4 years in the making, a stable release of CodeMirror 6 🌟is now available🌟&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/ma3V4C1wt1"&gt;discuss.codemirror.net/t/codemirror-6…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      08:14 AM - 08 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1534448878120013824" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1534448878120013824" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1534448878120013824" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
    &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__two-pics"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---N3oTI70--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FUztRMaX0AEjUR3.jpg" alt="unknown tweet media content"&gt;
    &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--LQdMEJqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/481764787089440769/NNWc-S_V_normal.jpeg" alt="Álvaro Trigo  🐦🔥 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Álvaro Trigo  🐦🔥
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @imac2
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I couldn't find a CSS generator to create gradient shadows.&lt;br&gt;&lt;br&gt;So, I created one! 👇&lt;br&gt;&lt;a href="https://t.co/z1c45359tL"&gt;alvarotrigo.com/shadow-gradien…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      11:39 AM - 09 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1534862835871801355" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1534862835871801355" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1534862835871801355" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NDKyffmr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FUzfuWdXwAAkW2L.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-O_uJVh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1257985487546888193/yREzcePr_normal.jpg" alt="Josh Tumath profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Josh Tumath
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @joshtumath
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      CSS IS A PROGRAMMING LANGUAGE. BOOLEAN ALGEBRA. BOOM. &lt;a href="https://twitter.com/hashtag/cssday"&gt;#cssday&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      10:39 AM - 09 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1534847569234477057" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1534847569234477057" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1534847569234477057" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Configurable &lt;code&gt;&amp;lt;input type="range" mode="circular"/&amp;gt;&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/XWZERKL?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;Syntax Live at Reactathon&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this episode of Syntax, Wes and Scott are live from Reactathon 2022!&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/0a19OxwdBQDfTT5JDYQnkJ" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>weeklyretro</category>
    </item>
    <item>
      <title>Weekly Digest 22/2022</title>
      <dc:creator>Marco Biedermann</dc:creator>
      <pubDate>Sun, 05 Jun 2022 15:17:03 +0000</pubDate>
      <link>https://forem.com/marcobiedermann/weekly-digest-222022-37a5</link>
      <guid>https://forem.com/marcobiedermann/weekly-digest-222022-37a5</guid>
      <description>&lt;p&gt;Welcome to my Weekly Digest #22.&lt;/p&gt;

&lt;p&gt;This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.&lt;/p&gt;




&lt;h2&gt;
  
  
  Interesting articles to read
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Don’t Sink Your Website With Third Parties
&lt;/h3&gt;

&lt;p&gt;In this article, Ken Harker explains what third-party resource requests really are and which common optimization strategies can help reduce the impact on the user experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.smashingmagazine.com/2022/06/dont-sink-website-third-parties/"&gt;Don't Sink Your Website With Third Parties - Smashing Magazine&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Event-Driven Architecture. Part 1: Pros and cons with examples
&lt;/h3&gt;

&lt;p&gt;In this multipart series, we will go step by step in creating a simple event-driven system. In Part 1 we compare this approach with a classic point-to-point communication and look at the advantages and disadvantages of both.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://danoncoding.com/event-driven-architecture-part-1-pros-and-cons-with-examples-a2e5161fbcbd"&gt;Event-Driven Architecture. Part 1: Pros and cons with examples&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Some great videos I watched this week
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Chrome 102 - What’s New in DevTools
&lt;/h3&gt;

&lt;p&gt;New Performance insights panel, shortcuts to emulate light/dark themes, and more.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0V_ph7PA_aw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ChromiumDev"&gt;Google Chrome Developers&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Functional programming with 'compose’
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/D1a8OoBWi1g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/mattpocockuk"&gt;Matt Pocock&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using &lt;code&gt;extends&lt;/code&gt; to constrain generics
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xZ8BBBdMwQI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/mattpocockuk"&gt;Matt Pocock&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  When To Fetch: Remixing React Router
&lt;/h3&gt;

&lt;p&gt;We've learned that fetching in components is the quickest way to the worst UX. But it's not just the UX that suffers, the developer experience of fetching in components creates a lot of incidental complexity too&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/95B8mnhzoCM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/ryanflorence"&gt;Ryan Florence&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Useful GitHub repositories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AutoAnimate
&lt;/h3&gt;

&lt;p&gt;A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/formkit"&gt;
        formkit
      &lt;/a&gt; / &lt;a href="https://github.com/formkit/auto-animate"&gt;
        auto-animate
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f833469c55d9f6f6f1cd8e4b1500aa7bdfca481f5d75c0c67dd41b04916a95aa/68747470733a2f2f63646e2e666f726d6b2e69742f7765622d6173736574732f6c6f676f2d6175746f2d616e696d6174652e737667"&gt;&lt;img width="300" height="37" alt="AutoAnimate Logo" src="https://camo.githubusercontent.com/f833469c55d9f6f6f1cd8e4b1500aa7bdfca481f5d75c0c67dd41b04916a95aa/68747470733a2f2f63646e2e666f726d6b2e69742f7765622d6173736574732f6c6f676f2d6175746f2d616e696d6174652e737667"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/formkit/auto-animate/actions/workflows/main.yml/badge.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GSLngR7g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/formkit/auto-animate/actions/workflows/main.yml/badge.svg" alt="Latest Build"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/d2909212991340c52ff28477bd75e0593bea22810f366f4e532b3d23be4887dd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73706f6e736f72732f666f726d6b6974"&gt;&lt;img src="https://camo.githubusercontent.com/d2909212991340c52ff28477bd75e0593bea22810f366f4e532b3d23be4887dd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73706f6e736f72732f666f726d6b6974" alt="GitHub Sponsors"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/b40232439f888d8dc4c172e3732bc722f3df661650acd56a5f9316ea23ac1fb0/68747470733a2f2f696d672e626164676573697a652e696f2f68747470733a2f756e706b672e636f6d2f40666f726d6b69742f6175746f2d616e696d617465406c61746573742f696e6465782e6d696e2e6a732e7376673f6c6162656c3d62726f746c6926636f6d7072657373696f6e3d62726f746c69"&gt;&lt;img src="https://camo.githubusercontent.com/b40232439f888d8dc4c172e3732bc722f3df661650acd56a5f9316ea23ac1fb0/68747470733a2f2f696d672e626164676573697a652e696f2f68747470733a2f756e706b672e636f6d2f40666f726d6b69742f6175746f2d616e696d617465406c61746573742f696e6465782e6d696e2e6a732e7376673f6c6162656c3d62726f746c6926636f6d7072657373696f6e3d62726f746c69" alt="Package Size"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Add motion to your apps with a single line of code.&lt;/h1&gt;
&lt;p&gt;AutoAnimate is a zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with Vue, React, or any other JavaScript application.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://auto-animate.formkit.com" rel="nofollow"&gt;&lt;img width="180" height="42" src="https://camo.githubusercontent.com/d07383b6090592147e77600e4b2cabeef6e52391c2e91367abdfc02c8b93d7dc/68747470733a2f2f63646e2e666f726d6b2e69742f7765622d6173736574732f726561642d646f63732d6175746f2d616e696d6174652d76322e737667" alt="Examples &amp;amp; Docs"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With one line of code, you can improve your interfaces, for example:&lt;/p&gt;
&lt;a href="https://auto-animate.formkit.com" rel="nofollow"&gt;
  &lt;img src="https://camo.githubusercontent.com/54ec46af68baf2042a5a643b446b81ce3b1aa753b57e135c6aeb0e007a80e2cd/68747470733a2f2f63646e2e666f726d6b2e69742f7765622d6173736574732f6d6f74696f6e2e676966" alt="Simple example of AutoAnimation motion"&gt;
&lt;/a&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;p&gt;Install using your package manager of choice.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt;yarn&lt;/span&gt;
yarn add &lt;a class="mentioned-user" href="https://dev.to/formkit"&gt;@formkit&lt;/a&gt;/auto-animate
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt;npm&lt;/span&gt;
npm install &lt;a class="mentioned-user" href="https://dev.to/formkit"&gt;@formkit&lt;/a&gt;/auto-animate
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt;pnpm&lt;/span&gt;
pnpm add &lt;a class="mentioned-user" href="https://dev.to/formkit"&gt;@formkit&lt;/a&gt;/auto-animate&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Boom! Done. That was fast! 🐇&lt;/p&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;p&gt;📖 &lt;a href="https://auto-animate.formkit.com#usage" rel="nofollow"&gt;View the documentation site for usage instructions&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Examples&lt;/h2&gt;
&lt;p&gt;📖 &lt;a href="https://auto-animate.formkit.com#examples" rel="nofollow"&gt;View the documentation site for examples&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Plugins&lt;/h2&gt;
&lt;p&gt;📖 &lt;a href="https://auto-animate.formkit.com#plugins" rel="nofollow"&gt;View the documentation site for plugin instructions&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Support us&lt;/h2&gt;
&lt;p&gt;Is AutoAnimate saving you time?&lt;/p&gt;
&lt;p&gt;Please consider &lt;a href="https://github.com/sponsors/formkit"&gt;supporting us with a recurring or one-time donation&lt;/a&gt;! 🙏&lt;/p&gt;
&lt;h2&gt;
Contributing&lt;/h2&gt;
&lt;p&gt;Thank you for your willingness to contribute to this free and open source project! When contributing, consider first discussing your desired change…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/formkit/auto-animate"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Videogrep
&lt;/h3&gt;

&lt;p&gt;Videogrep is a command-line tool that searches through dialog in video files and makes supercuts based on what it finds.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/antiboredom"&gt;
        antiboredom
      &lt;/a&gt; / &lt;a href="https://github.com/antiboredom/videogrep"&gt;
        videogrep
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      automatic video supercuts with python
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Videogrep&lt;/h1&gt;
&lt;p&gt;Videogrep is a command line tool that searches through dialog in video files and makes supercuts based on what it finds. It will recognize &lt;code&gt;.srt&lt;/code&gt; or &lt;code&gt;.vtt&lt;/code&gt; subtitle tracks, or transcriptions that can be generated with vosk, pocketsphinx, and other tools.&lt;/p&gt;
&lt;h4&gt;
Examples&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=nGHbOckpifw" rel="nofollow"&gt;The Meta Experience&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=PQMzOUeprlk" rel="nofollow"&gt;All the instances of the phrase "time" in the movie "In Time"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=qEtEbXVbYJQ" rel="nofollow"&gt;All the one to two second silences in "Total Recall"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=D7pymdCU5NQ" rel="nofollow"&gt;A former press secretary telling us what he can tell us&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
Tutorial&lt;/h4&gt;
&lt;p&gt;See my blog for a short &lt;a href="https://lav.io/notes/videogrep-tutorial/" rel="nofollow"&gt;tutorial on videogrep and yt-dlp&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;p&gt;Videogrep is compatible with Python versions 3.6 to 3.10.&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;pip install videogrep
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If you want to transcribe videos, you also need to install &lt;a href="http://ffmpeg.org/" rel="nofollow"&gt;ffmpeg&lt;/a&gt; and &lt;a href="https://alphacephei.com/vosk/" rel="nofollow"&gt;vosk&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you're on a mac with homebrew you install ffmpeg with:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;brew install ffmpeg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To install vosk:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;pip install vosk
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note: the previous version of videogrep supported pocketsphinx for speech-to-text…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/antiboredom/videogrep"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  dribbble shots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Simple Food Delivery App Concept
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0oWwZZu5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2812287/file/original-3066a678febbde1cfa682bcf81e7816b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0oWwZZu5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2812287/file/original-3066a678febbde1cfa682bcf81e7816b.png" alt="by [Giorgi](https://dribbble.com/shots/18409200-Simple-Food-Delivery-App-Concept)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18409200-Simple-Food-Delivery-App-Concept"&gt;Giorgi&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Travel App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jXGBBtCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2810306/file/original-ed57a1b40d3061aa4da2eeb4c8a6897c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jXGBBtCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2810306/file/original-ed57a1b40d3061aa4da2eeb4c8a6897c.png" alt="by [App Ninja](https://dribbble.com/shots/18403432-Travel-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18403432-Travel-App"&gt;App Ninja&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Restaurant Waiter App
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QvyHH5eh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2801619/file/original-d2ab432fd53d62ef573e9e428efc6370.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QvyHH5eh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.dribbble.com/userupload/2801619/file/original-d2ab432fd53d62ef573e9e428efc6370.png" alt="by [Alexandr V](https://dribbble.com/shots/18389053-Restaurant-Waiter-App)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://dribbble.com/shots/18389053-Restaurant-Waiter-App"&gt;Alexandr V&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tweets
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--WtqGx4H6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1414990564408262661/r6YemvF9_normal.jpg" alt="GitHub profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        GitHub
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @github
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      GitHub is free for teams of any size working on private as well as open source projects. What cool things you are building? &lt;a href="https://t.co/GLpMpYhI6Y"&gt;github.blog/2020-04-14-git…&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:08 PM - 28 May 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1530566567959863304" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1530566567959863304" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1530566567959863304" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vNbCEXwG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FULaVQoUEAE4Unj.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--HaaSANyL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1524184008635998209/vOSCJXuk_normal.jpg" alt="Alex Xu profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Alex Xu
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @alexxubyte
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Linux file permission illustrated.&lt;br&gt;&lt;br&gt;To understand Linux file permissions, we need to understand Ownership and Permission. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      15:50 PM - 01 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1532026886359879681" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1532026886359879681" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1532026886359879681" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;



&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3YHSy4xC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/FUQJrk8VUAATjDr.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hn1ZjkBk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1380590094197919753/0MDHGDSQ_normal.jpg" alt="Khuyen Tran profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Khuyen Tran
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @khuyentran16
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      If you want to quickly extract a table on a website and turn it into a Pandas DataFrame, use &lt;a href="https://t.co/Jox8wPQvsR"&gt;pd.read&lt;/a&gt;_html. In the code below, I extracted the table from a Wikipedia page in one line of code.&lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/Python"&gt;#Python&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      13:56 PM - 02 Jun 2022
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1532360495780401154" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1532360495780401154" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1532360495780401154" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;





&lt;h2&gt;
  
  
  Picked Pens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pure CSS/SVG Tic Tac Toe
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/KKNwpzN?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pure CSS Animated Image Zoom
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jh3y/embed/QWQrVwj?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://twitter.com/jh3yy"&gt;Jhey&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Podcasts worth listening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Syntax – &lt;strong&gt;Cache Control Headers Explained&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this Hasty Treat, Scott and Wes answer a question about caching, cache control headers, an explanation of the fields for caching.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/5evsrN8PM7TWFKTyLhfNOM" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Smashing Podcast – &lt;strong&gt;Why does accessibility matter?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;We ask why accessibility really matters, and why is it so important to get it right? Smashing’s Vitaly Friedman talks in depth to Sara Soueidan to find out.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3Cpu4oT7twQNIcnil0cFqt" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;Thank you for reading, talk to you next week, and stay safe! 👋&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>css</category>
    </item>
  </channel>
</rss>
