<?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>DEV Community: Astrit</title>
    <description>The latest articles on DEV Community by Astrit (@astrit).</description>
    <link>https://dev.to/astrit</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%2F285706%2F2674d2c2-8058-4bfe-9f51-a2fdf50dde2d.png</url>
      <title>DEV Community: Astrit</title>
      <link>https://dev.to/astrit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/astrit"/>
    <language>en</language>
    <item>
      <title>Config 2023 - auto layout wrap, developer mode, prototyping &amp; variables</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Thu, 22 Jun 2023 08:02:21 +0000</pubDate>
      <link>https://dev.to/astrit/config-2023-auto-layout-wrap-developer-mode-prototyping-variables-4m8b</link>
      <guid>https://dev.to/astrit/config-2023-auto-layout-wrap-developer-mode-prototyping-variables-4m8b</guid>
      <description>&lt;p&gt;Yesterday's Config 2023 update brought long-awaited features such as wrapped auto layout and variables. Here's a short recap from me.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.youtube.com/watch?v=qfp4gqrI-Mg"&gt;https://www.youtube.com/watch?v=qfp4gqrI-Mg&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>figma</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A deep dive into the CSS color-mix() function and future of colors on the web.</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Sat, 01 Apr 2023 16:54:56 +0000</pubDate>
      <link>https://dev.to/astrit/a-deep-dive-into-the-css-color-mix-function-and-future-of-colors-on-the-web-2pgi</link>
      <guid>https://dev.to/astrit/a-deep-dive-into-the-css-color-mix-function-and-future-of-colors-on-the-web-2pgi</guid>
      <description>&lt;p&gt;I have always been fascinated by the power of colors in shaping the visual appeal of websites even tho I always considered a very hard problem to tacle scientifically. With the upcoming CSS &lt;code&gt;color-mix()&lt;/code&gt; function, I am excited to share my insights and experiments with this groundbreaking feature that is set to change the way we work with colors in our projects and especially design systems.&lt;/p&gt;

&lt;p&gt;In this detailed and personal exploration, I will discuss the &lt;code&gt;color-mix()&lt;/code&gt; function from my perspective, delving into various color spaces, such as HSL, RGB, LCH, and sRGB, and providing in-depth examples to showcase the versatility and potential of this innovative addition to the CSS specification. Furthermore, we will explore the benefits of incorporating the &lt;code&gt;color-mix()&lt;/code&gt; function into design systems with tokens, along with examples showcasing how to work with colors and their alpha values, as well as using CSS custom properties on the &lt;code&gt;:root&lt;/code&gt; element.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Science Behind the CSS &lt;code&gt;color-mix()&lt;/code&gt; Function
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;color-mix()&lt;/code&gt; function is an upcoming addition to the CSS Color Module Level 5 specification. Its primary purpose is to blend two or more colors together, generating a new color based on specified ratios. The blending process is dependent on the color space in which the colors are combined.&lt;/p&gt;

&lt;h3&gt;
  
  
  Color Spaces: A Brief Overview
&lt;/h3&gt;

&lt;p&gt;A color space is a specific organization of colors that allows for reproducible representations of these colors in both digital and physical mediums. There are several color spaces used in web design, each with its own unique characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RGB&lt;/strong&gt;: The Red-Green-Blue color space is an additive color model in which red, green, and blue light are combined in various ways to produce a broad range of colors. It is the most commonly used color space for digital images and web design.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HSL&lt;/strong&gt;: The Hue-Saturation-Lightness color space represents colors using three components: hue, saturation, and lightness. This color model is designed to be more intuitive and perceptually relevant than the RGB model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LCH&lt;/strong&gt;: The Lightness-Chroma-Hue color space is a cylindrical representation of the CIELAB color space, which is designed to be perceptually uniform. LCH aims to provide a more accurate representation of how humans perceive color differences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sRGB&lt;/strong&gt;: The standard Red-Green-Blue color space is a widely-used RGB color space that provides consistent color reproduction across various devices and platforms.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Delving into the Syntax
&lt;/h2&gt;

&lt;p&gt;The syntax for the &lt;code&gt;color-mix()&lt;/code&gt; function is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;color-mix&lt;/span&gt;&lt;span class="o"&gt;(&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;colorspace&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;color&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;percentage&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;color&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;percentage&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;,&lt;/span&gt; &lt;span class="o"&gt;...);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;colorspace&amp;gt;&lt;/code&gt;: The color space in which the blending will occur. It can be one of the following: &lt;code&gt;srgb&lt;/code&gt;, &lt;code&gt;display-p3&lt;/code&gt;, &lt;code&gt;lab&lt;/code&gt;, or &lt;code&gt;lch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;color&amp;gt;&lt;/code&gt;: The colors to be mixed together. These can be specified using various color models, such as RGB, HSL, or LCH.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;percentage&amp;gt;&lt;/code&gt;: The weight of each color in the mix. The sum of all percentages must equal 100%.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Comprehensive Exploration of Examples
&lt;/h2&gt;

&lt;p&gt;To better understand the power and versatility of the &lt;code&gt;color-mix()&lt;/code&gt; function, let's examine examples across various color spaces and color models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 1: Blending RGB Colors in sRGB Color Space
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-red&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;rgb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;145&lt;/span&gt; &lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-blue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;rgb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.rgb-srgb-mix&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-red&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-blue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we're blending equal parts saturated azure and blue (50% each) in the sRGB color space. The resulting color will be a neon blue.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Example 2: Blending HSL Colors in LCH Color Space
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-red&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-blue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;240&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.hsl-lch-mix&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;lch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-red&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;70%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-blue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;30%&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we're blending 70% red and 30% blue, represented in HSL, in the LCH color space. The resulting color will be a vibrant shade of pinkish-purple.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Example 3: Blending LCH Colors in LCH Color Space
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-one&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;lch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;50%&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-two&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;lch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;50%&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt; &lt;span class="m"&gt;180&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.lch-lch-mix&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-one&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;60%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-two&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;40%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we're blending 60% of an LCH color with a lightness of 50%, chroma of 100, and hue of 0 degrees, with 40% of another LCH color with a lightness of 50%, chroma of 100, and hue of 180 degrees. The resulting color will be a bright shade of greenish-cyan.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Example 4: Working with Colors and Their Alpha Values
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.alpha-mix&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we're blending equal parts red and blue with 50% alpha values in the sRGB color space. The resulting color will be a semi-transparent shade of purple.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Example 5: Using CSS Custom Properties on the &lt;code&gt;:root&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--cm-brand-accent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;lightseagreen&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsla&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;96&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;78%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;45%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;90%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a20&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;80%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a30&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;70%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a40&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;60%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a50&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a60&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;40%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a70&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;30%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a80&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;20%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-a90&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt; &lt;span class="m"&gt;10%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color-dark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-brand-accent&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt; &lt;span class="m"&gt;10%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.cm-a10&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a20&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a30&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a40&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a50&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a60&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a70&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a70&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a80&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a80&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a90&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color-a90&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.cm-a00&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we're using CSS custom properties to define our base colors on the &lt;code&gt;:root&lt;/code&gt; element. We then use the &lt;code&gt;color-mix()&lt;/code&gt; function to change the transaprency based from the HSL color space, but it can be any color for that matter.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Examole 6: Using calc function
&lt;/h3&gt;

&lt;p&gt;The relative color syntax allows you to use channel keywords in any position for various purposes, such as creating a simple grayscale approximation of a color:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--cm-red-to-gray&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;rgb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.3&lt;/span&gt; &lt;span class="err"&gt;+&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.59&lt;/span&gt; &lt;span class="err"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.3&lt;/span&gt; &lt;span class="err"&gt;+&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.59&lt;/span&gt; &lt;span class="err"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.11&lt;/span&gt;
      &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.3&lt;/span&gt; &lt;span class="err"&gt;+&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.59&lt;/span&gt; &lt;span class="err"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="err"&gt;*&lt;/span&gt; &lt;span class="m"&gt;0.11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.cm-red-gray&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-red-to-gray&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method converts colors like red to &lt;code&gt;rgb(30% 30% 30%)&lt;/code&gt;, lime to &lt;code&gt;rgb(59% 59% 59%)&lt;/code&gt;, and blue to &lt;code&gt;rgb(11% 11% 11%)&lt;/code&gt;. However, this approach is not entirely accurate as it uses gamma-encoded space and obsolete NTSC color space weighting factors.&lt;/p&gt;

&lt;p&gt;A more accurate and simpler way to grayscale a color is to use the &lt;code&gt;oklch()&lt;/code&gt; function, which is better suited to human perception:&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--cm-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--cm-oklch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;oklch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;l&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.cm-oklch&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--cm-oklch&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method preserves the lightness while zeroing out the chroma, which determines the colorfulness of the color.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Leveraging the Color-Mix Function in Design Systems with Tokens and Figma Integration
&lt;/h2&gt;

&lt;p&gt;Design systems are essential for maintaining visual consistency and streamlining the design process across large-scale projects. By incorporating the &lt;code&gt;color-mix()&lt;/code&gt; function into a design system, we can enhance the flexibility and adaptability of color management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits of Incorporating the Color-Mix Function into a Design System
&lt;/h3&gt;

&lt;p&gt;Incorporating the &lt;code&gt;color-mix()&lt;/code&gt; function into a design system can significantly improve the design process and provide various benefits for designers. Here are some advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dynamic color manipulation&lt;/strong&gt;: The &lt;code&gt;color-mix()&lt;/code&gt; function allows designers to create a wide range of color variations based on predefined color tokens. This flexibility makes it easier to manage and adjust colors within the design system, reducing the need for manual color adjustments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adaptive color themes&lt;/strong&gt;: The &lt;code&gt;color-mix()&lt;/code&gt; function can be used to generate color themes that adapt to different contexts, such as light and dark modes, by blending base colors with varying ratios. This adaptability simplifies the creation of context-aware designs and ensures visual consistency across different environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved color consistency&lt;/strong&gt;: Using the &lt;code&gt;color-mix()&lt;/code&gt; function to blend colors ensures consistency across the design system, as colors are derived from a set of predefined tokens. This consistency makes it easier for designers to maintain a cohesive visual language throughout the project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Efficient color exploration&lt;/strong&gt;: The &lt;code&gt;color-mix()&lt;/code&gt; function enables designers to quickly explore various color combinations and find the perfect balance for their designs. This efficiency reduces the time spent on trial and error, allowing designers to focus on other aspects of the design process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easier collaboration&lt;/strong&gt;: By integrating the &lt;code&gt;color-mix()&lt;/code&gt; function into a design system, designers can share and collaborate on color schemes more effectively. This integration promotes a unified approach to color management and helps maintain visual coherence across large-scale projects involving multiple designers.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In conclusion, incorporating the &lt;code&gt;color-mix()&lt;/code&gt; function into a design system can greatly enhance the design process, making it easier for designers to manage colors, create adaptive themes, and maintain visual consistency. By leveraging this powerful function, designers can focus on delivering a more polished and cohesive user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser Support for the CSS Color-Mix Function
&lt;/h2&gt;

&lt;p&gt;As the &lt;code&gt;color-mix()&lt;/code&gt; function is a relatively new addition to the CSS specification, it's important to be aware of the current state of browser support. Ensuring compatibility across different browsers is crucial for providing a consistent user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Current Browser Support
&lt;/h3&gt;

&lt;p&gt;At the time of writing (knowledge cutoff in September 2021), the &lt;code&gt;color-mix()&lt;/code&gt; function is not yet widely supported by major browsers. However, browser vendors are actively working on implementing this feature, and support is expected to improve over time.&lt;/p&gt;

&lt;p&gt;To stay up-to-date with the latest browser support information, you can refer to resources such as &lt;a href="https://caniuse.com/"&gt;Can I use&lt;/a&gt; and the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color-mix"&gt;MDN Web Docs&lt;/a&gt;. These platforms provide accurate and current details on browser compatibility for various web technologies, including the &lt;code&gt;color-mix()&lt;/code&gt; function.&lt;/p&gt;

&lt;h3&gt;
  
  
  Strategies for Handling Limited Browser Support
&lt;/h3&gt;

&lt;p&gt;While waiting for broader browser support, you can employ several strategies to ensure your designs remain functional and visually consistent for users on unsupported browsers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fallback styles&lt;/strong&gt;: Provide alternative color definitions for browsers that do not support the &lt;code&gt;color-mix()&lt;/code&gt; function. Use the &lt;code&gt;@supports&lt;/code&gt; rule in your CSS to detect support for the function and apply fallback styles accordingly.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;   &lt;span class="nc"&gt;.example&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;purple&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* Fallback color for unsupported browsers */&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;

   &lt;span class="k"&gt;@supports&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="nc"&gt;.example&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;color-mix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;srgb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Progressive enhancement&lt;/strong&gt;: Design your website with a basic color scheme that works well on all browsers, and then enhance the design with the &lt;code&gt;color-mix()&lt;/code&gt; function for browsers that support it. This approach ensures that all users have a functional and visually appealing experience, regardless of their browser's capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Polyfills&lt;/strong&gt;: Although there aren't any widely-used polyfills for the &lt;code&gt;color-mix()&lt;/code&gt; function at the moment, you can keep an eye out for future developments in this area. Polyfills can help bridge the gap in browser support by providing a JavaScript-based implementation of the function for unsupported browsers.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;While browser support for the CSS &lt;code&gt;color-mix()&lt;/code&gt; function is currently limited, it's essential to keep track of the latest developments in browser compatibility. By employing strategies such as fallback styles and progressive enhancement, you can ensure that your designs remain visually consistent and functional across different browsers. As support for the &lt;code&gt;color-mix()&lt;/code&gt; function improves, it's expected to become an invaluable tool for web designers and developers in creating dynamic and adaptable color schemes.&lt;/p&gt;

&lt;h4&gt;
  
  
  Ref:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://w3c.github.io/csswg-drafts/css-color-5/#color-mix"&gt;CSS Color Module Level 5&lt;/a&gt; — &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix"&gt;MDN color-mix()&lt;/a&gt; — &lt;a href="https://caniuse.com/mdn-css_types_color_color-mix"&gt;Browser Support&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow me: &lt;a href="https://github.com/astrit"&gt;Github&lt;/a&gt; — &lt;a href="https://youtube.com/@astrit"&gt;Youtube&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>programming</category>
      <category>html</category>
    </item>
    <item>
      <title>Full Page: 20 Advanced CSS &amp; HTML techniques: clip-path, @property, aspect-ratio and blend-mode</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Sat, 20 Mar 2021 23:32:57 +0000</pubDate>
      <link>https://dev.to/astrit/full-page-20-advanced-css-html-techniques-clip-path-property-aspect-ratio-and-blend-mode-2p31</link>
      <guid>https://dev.to/astrit/full-page-20-advanced-css-html-techniques-clip-path-property-aspect-ratio-and-blend-mode-2p31</guid>
      <description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=PpheLuPbP5Y"&gt;https://www.youtube.com/watch?v=PpheLuPbP5Y&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>🔴 CSS Battle #13 - Live March 18, 20:00 CET</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Wed, 17 Mar 2021 16:24:01 +0000</pubDate>
      <link>https://dev.to/astrit/css-battle-13-live-march-18-20-00-cet-51i9</link>
      <guid>https://dev.to/astrit/css-battle-13-live-march-18-20-00-cet-51i9</guid>
      <description>&lt;p&gt;Tomorrow, Thu 18 - 20:00 CET &lt;br&gt;
The new #13 CSSBattle.dev is going down live. &lt;/p&gt;

&lt;p&gt;🔴 &lt;a href="https://a.st/live"&gt;https://a.st/live&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't let this one flop be there and don't forget to "SET REMINDER" &lt;/p&gt;

&lt;p&gt;Let's show Dev Ed, Kevin Powell, Jh3y how this is done 💪 &lt;/p&gt;

&lt;p&gt;This is Spartaaaa !!! &lt;/p&gt;

&lt;p&gt;😅 not really Jh3y especially would make those pixels bleed. &lt;/p&gt;

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

</description>
      <category>webdev</category>
      <category>cssbattle</category>
      <category>css</category>
    </item>
    <item>
      <title>Full Page: 20 Advanced CSS &amp; HTML techniques: clip-path, @property, aspect-ratio and blend-mode</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Sat, 06 Mar 2021 15:58:45 +0000</pubDate>
      <link>https://dev.to/astrit/full-page-20-advanced-css-html-techniques-clip-path-property-aspect-ratio-and-blend-mode-1ee7</link>
      <guid>https://dev.to/astrit/full-page-20-advanced-css-html-techniques-clip-path-property-aspect-ratio-and-blend-mode-1ee7</guid>
      <description>&lt;p&gt;Today I am sharing with you this advanced CSS &amp;amp; HTML tutorial where we are going to go through some of the best techniques to achieve the effect that you see on this landing page like mix-blend-mode, clip-path, position: sticky, css grid and what not. &lt;/p&gt;

&lt;p&gt;This is a 2hr long tutorial where I explain how I build that demo landing page start to finnish and along the way you can find some very interesting things.&lt;/p&gt;

&lt;p&gt;We are going to build an entire landing page with a hero, gallery, list, object rotation and the final section position sticky horizontally. &lt;/p&gt;

&lt;p&gt;Note that time to time I might have mixed the words but please don't mind me this has been a very long tutorial and just my second video. &lt;/p&gt;

&lt;p&gt;Source:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/astrit/youtube"&gt;https://github.com/astrit/youtube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo:&lt;br&gt;
&lt;a href="https://css.gg/epic/index.html"&gt;https://css.gg/epic/index.html&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>css</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>CSS.GG + Vercel  &amp; Updates</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Wed, 24 Feb 2021 12:52:21 +0000</pubDate>
      <link>https://dev.to/astrit/css-gg-vercel-updates-fjk</link>
      <guid>https://dev.to/astrit/css-gg-vercel-updates-fjk</guid>
      <description>&lt;p&gt;Hello everyone, &lt;/p&gt;

&lt;p&gt;Long time no see. Short update. &lt;/p&gt;

&lt;p&gt;First of all thank you to every single one of you who has contributed for this project to be where it is, with a single like, star or using it on your project. &lt;/p&gt;

&lt;p&gt;So far this has been incredible&lt;br&gt;
7,140 Stars on Github&lt;br&gt;
17,000 Figma copies&lt;/p&gt;

&lt;p&gt;And much more that I can't even track&lt;/p&gt;

&lt;p&gt;Thank you. &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/astrit"&gt;
        astrit
      &lt;/a&gt; / &lt;a href="https://github.com/astrit/css.gg"&gt;
        css.gg
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      700+ Pure CSS, SVG &amp;amp; Figma UI Icons Available in SVG Sprite, styled-components, NPM &amp;amp; API
    &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 href="https://css.gg" rel="nofollow"&gt;Demo&lt;/a&gt; - &lt;a href="https://css.gg/fig" rel="nofollow"&gt;Figma&lt;/a&gt; - &lt;a href="https://twitter.com/astritmalsija" rel="nofollow"&gt;Twitter&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Open-source CSS, SVG and Figma UI Icons &lt;br&gt;
Available in SVG Sprite, styled-components, NPM &amp;amp; API&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/eab3a11f4bfa0cc078076bc876f1c57fe0645109a2fbffcd65b66366d4186ce8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/eab3a11f4bfa0cc078076bc876f1c57fe0645109a2fbffcd65b66366d4186ce8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/40f2bf6d3510de34875ab2a0ad290ea61b6ef8c234f5cb216cee1de4e81878db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/40f2bf6d3510de34875ab2a0ad290ea61b6ef8c234f5cb216cee1de4e81878db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767" alt="GitHub last commit"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/092962b860e395c418a45a3904b0b46a5ec8a1c06bcd10650b2af8cd3c9bdad5/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/092962b860e395c418a45a3904b0b46a5ec8a1c06bcd10650b2af8cd3c9bdad5/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767" alt="Website"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/6c2f91353a272d23e28b4d41a1bd365211a6a367b95e510f49bdde3c98e41f04/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/6c2f91353a272d23e28b4d41a1bd365211a6a367b95e510f49bdde3c98e41f04/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/a6b53d404b0346a798ec60fdc6db19bf30482134727f07e0b3dc5e3ff76dc1ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/a6b53d404b0346a798ec60fdc6db19bf30482134727f07e0b3dc5e3ff76dc1ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767" alt="GitHub issues"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0575b985747f740bae106343a9b1490f73cb56d84b8386581cce5ca8d2628c07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/0575b985747f740bae106343a9b1490f73cb56d84b8386581cce5ca8d2628c07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767" alt="GitHub stars"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/d5a470aac1672a1890a506a40b1e536442315631d34883df3b10399735d36adc/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/d5a470aac1672a1890a506a40b1e536442315631d34883df3b10399735d36adc/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/5c69a8d8db3dfcf691ddec01ecf854d67071fe79e9313ca3c7c988d6d2136f94/68747470733a2f2f6373732e67672f6661762f6f6769742e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/5c69a8d8db3dfcf691ddec01ecf854d67071fe79e9313ca3c7c988d6d2136f94/68747470733a2f2f6373732e67672f6661762f6f6769742e706e67" alt="css.gg"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/52fcd0da1c13bb89b2b5390dd6e07cfe634537157d33f60106164c396311043b/68747470733a2f2f6373732e67672f696d672f616c6c2e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/52fcd0da1c13bb89b2b5390dd6e07cfe634537157d33f60106164c396311043b/68747470733a2f2f6373732e67672f696d672f616c6c2e706e67" alt="css.gg icons"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
New in 2.0&lt;/h1&gt;
&lt;h4&gt;
🥳 200 New Icons&lt;/h4&gt;
&lt;h4&gt;
🚀 SVG Icons&lt;/h4&gt;
&lt;h4&gt;
🔥 SVG Sprite&lt;/h4&gt;
&lt;h4&gt;
💅 Styled Components&lt;/h4&gt;
&lt;h4&gt;
⚛️ React Local Styled Components&lt;/h4&gt;
&lt;h4&gt;
🦄 Figma Components&lt;/h4&gt;
&lt;h4&gt;
🔮 Adobe XD Components&lt;/h4&gt;
&lt;h1&gt;
Table of Contents&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#get-started"&gt;Get Started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#html-include"&gt;HTML include&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection"&gt;3. Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#4-markup"&gt;4. Markup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#5-example"&gt;5. Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#css--import"&gt;CSS @import&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons-1"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon-1"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection-1"&gt;3. Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#4-resizing"&gt;4. Resizing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#5-coloring"&gt;5. Coloring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#svg"&gt;SVG&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#1-svg-sprite---download-path"&gt;1. SVG Sprite - Download Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#11-example"&gt;1.1. Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#2-svg-single-icon---download-path"&gt;2. SVG Single Icon - Download Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#21-example---svg-sprite"&gt;2.1. Example - SVG Sprite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#22-example---inline-svg-sprite-symbol"&gt;2.2. Example - Inline SVG Sprite/Symbol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#23-example-single-copy-paste-icon"&gt;2.3. Example Single copy/paste icon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#3-encode-svg-for-css"&gt;3. Encode SVG for CSS&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#31-example---encoded-svg-for-css-icon"&gt;3.1. Example - Encoded SVG for CSS icon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#4-coloring-a-svg-icon"&gt;4. Coloring a SVG icon&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#41-directly-on-the-icon"&gt;4.1. Directly on the icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#42-using-class"&gt;4.2. using class&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#json---paths"&gt;JSON - paths&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons-2"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon-2"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection-2"&gt;3. Collection&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/astrit/css.gg"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;Now to the fun stuff. &lt;/p&gt;

&lt;p&gt;I have been working on the new version and trying to listen to the feedback that people got and also checking the analytics on what people are using most. &lt;/p&gt;

&lt;p&gt;As a conclusion the SVG version naturally is being used more, after that the Figma version mainly by UI Designers. &lt;/p&gt;

&lt;p&gt;Based on this I decided to do the new version on SVG primarily with the CSS version being there as a downloadable option.&lt;/p&gt;

&lt;p&gt;Also I have been developing some other modules* that are going to be part of the project so stay tuned for this when I announce on &lt;a href="https://twitter.com/astrit"&gt;twitter&lt;/a&gt; and &lt;a href="https://youtube.com/astrit"&gt;youtube&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;🍒 And the cherry on top. &lt;/p&gt;

&lt;p&gt;Getting sponsored by Vercel.&lt;/p&gt;

&lt;p&gt;I totally forgot to announce since I was working on the project and wanted to do it on the release but not here we go.&lt;/p&gt;

&lt;p&gt;So I would like to personally thank Guillermo from Vercel for making this happen and enabling me to use my favourite framework and platform on the new version. &lt;/p&gt;




&lt;p&gt;Plug: &lt;br&gt;
As you might already know I have started to create videos on youtube and if you like my work or you want to learn how to do CSS animations please make sure to &lt;a href="http://bit.ly/astritsub"&gt;subscribe&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>CSS Animation: translate3d, backdrop-filter and custom tags
</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Thu, 18 Feb 2021 19:31:09 +0000</pubDate>
      <link>https://dev.to/astrit/css-animation-translate3d-backdrop-filter-and-custom-tags-i77</link>
      <guid>https://dev.to/astrit/css-animation-translate3d-backdrop-filter-and-custom-tags-i77</guid>
      <description>&lt;p&gt;Hello everyone, &lt;/p&gt;

&lt;p&gt;On this tutorial we are going to learn on how to create a smooth animation using CSS transform translate3d prop, why to use cubic-bezier transition timing function and its benefits. &lt;/p&gt;

&lt;p&gt;How and why to use custom tags. And if you watch the video by the end I also did a bonus tip using backdrop-filter to have some frost/blur style on background. &lt;/p&gt;

&lt;p&gt;Topics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why and how to use the translate3d &lt;/li&gt;
&lt;li&gt;Why and how to use cubic-bezier &lt;/li&gt;
&lt;li&gt;Using custom tags &lt;/li&gt;
&lt;li&gt;Apply color by using currentColor&lt;/li&gt;
&lt;li&gt;Using backdrop-filter&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't forget to subscribe ✌️&lt;/p&gt;

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

&lt;p&gt;Source:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/astrit/youtube%E2%80%8B"&gt;https://github.com/astrit/youtube​&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demos:&lt;br&gt;
Blackhole: &lt;a href="https://codepen.io/astrit/pen/KKMjZEz"&gt;https://codepen.io/astrit/pen/KKMjZEz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Links:&lt;br&gt;
&lt;a href="https://github.com/astrit%E2%80%8B"&gt;https://github.com/astrit​&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/astritmalsija%E2%80%8B"&gt;https://twitter.com/astritmalsija​&lt;/a&gt;&lt;br&gt;
&lt;a href="https://codepen.io/astrit"&gt;https://codepen.io/astrit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>css.gg 2.0</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Thu, 23 Apr 2020 11:29:16 +0000</pubDate>
      <link>https://dev.to/astrit/css-gg-2-0-4o7c</link>
      <guid>https://dev.to/astrit/css-gg-2-0-4o7c</guid>
      <description>&lt;p&gt;css.gg 2.0 is out now&lt;br&gt;
700 UI Icons in Pure CSS, SVG &amp;amp; Figma&lt;/p&gt;

&lt;p&gt;🔥 200 New Icons&lt;br&gt;
🔥 SVG Icons by figma.com/&lt;a class="mentioned-user" href="https://dev.to/lona"&gt;@lona&lt;/a&gt;&lt;br&gt;
🔥 SVG Sprite by figma.com/&lt;a class="mentioned-user" href="https://dev.to/lona"&gt;@lona&lt;/a&gt;&lt;br&gt;
🔥 Styled Components - ⚛ React JS&lt;br&gt;
🔥 Local Styled Components&lt;br&gt;
🔥 Figma Components - css.gg/fig&lt;br&gt;
🔥 Adobe XD Components - css.gg/xd&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/astrit" rel="noopener noreferrer"&gt;
        astrit
      &lt;/a&gt; / &lt;a href="https://github.com/astrit/css.gg" rel="noopener noreferrer"&gt;
        css.gg
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      700+ Pure CSS, SVG &amp;amp; Figma UI Icons, 6000+ glyphs, patterns, colors and layouts.
    &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;h2 class="heading-element"&gt;&lt;a href="https://css.gg" rel="nofollow noopener noreferrer"&gt;CSS＊GG&lt;/a&gt;&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;A comprehensive, open-source CSS icons library. &lt;br&gt;
Featuring Vanilla CSS, SVG and Figma UI icons&lt;/p&gt;
&lt;p&gt;Now also a collection of well organised &lt;a href="https://glyf.app" rel="nofollow noopener noreferrer"&gt;6000 Unique Glyphs&lt;/a&gt;, &lt;br&gt;
easy copy paste and available on the raycast extension.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Update 2024-08-26&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The new version is live on the website, with a new design and a new way to browse the icons. &lt;br&gt;
Soon to be released as a Figma plugin and the new version of the library.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Other resources: &lt;a href="https://youtube.com/@astrit" rel="nofollow noopener noreferrer"&gt;YouTube&lt;/a&gt;, &lt;a href="https://www.figma.com/community/file/1284635132283811437/glyf-app-6000-variable-glyphs" rel="nofollow noopener noreferrer"&gt;Figma&lt;/a&gt;, &lt;a href="https://www.raycast.com/astrit/css-gg" rel="nofollow noopener noreferrer"&gt;Raycast&lt;/a&gt;, &lt;a href="https://glyf.app" rel="nofollow noopener noreferrer"&gt;GLYF＊APP&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1f7ed0d09f41661f48abf6c415ce80540c32ad09d80bfe5949fab01c60b42c16/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/1f7ed0d09f41661f48abf6c415ce80540c32ad09d80bfe5949fab01c60b42c16/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3fa996ca1d7a2700db25a9498059ec6aa988f80b1ee207ec587fbc185b1d51b0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/3fa996ca1d7a2700db25a9498059ec6aa988f80b1ee207ec587fbc185b1d51b0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767" alt="GitHub last commit"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f9f1c704e848a6a2a0b138d1715e67ba46d757a1ad9ecec17816617285e2e79d/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/f9f1c704e848a6a2a0b138d1715e67ba46d757a1ad9ecec17816617285e2e79d/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767" alt="Website"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b27d96419154773b776b2aed6aa22a3fc9c5684cb4e8bceea9da76be9a77912e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/b27d96419154773b776b2aed6aa22a3fc9c5684cb4e8bceea9da76be9a77912e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c498abd82cae725002efb559772dec040dffe40c70aab3dd9ccfc3d0ce94aaf2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/c498abd82cae725002efb559772dec040dffe40c70aab3dd9ccfc3d0ce94aaf2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767" alt="GitHub issues"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/fe0d02fc4ad2f9f2fffd86b68be6a87537202f6356b8a91e1181bc6764a2e034/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/fe0d02fc4ad2f9f2fffd86b68be6a87537202f6356b8a91e1181bc6764a2e034/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767" alt="GitHub stars"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/d7e1ede50412935b6d5b1285a81c667e472576d04e850398cfc3e080ef8e45f6/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/d7e1ede50412935b6d5b1285a81c667e472576d04e850398cfc3e080ef8e45f6/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://css.gg" 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%2Fprivate-user-images.githubusercontent.com%2F2398447%2F361591138-b7b72681-de31-4568-ace1-939ce6ef1272.png%3Fjwt%3DeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg0OTA1MjgsIm5iZiI6MTcyODQ5MDIyOCwicGF0aCI6Ii8yMzk4NDQ3LzM2MTU5MTEzOC1iN2I3MjY4MS1kZTMxLTQ1NjgtYWNlMS05MzljZTZlZjEyNzIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTAwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEwMDlUMTYxMDI4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzdlMDBiNjkxYTE5MGRkOTY4MjQ3NDUxMzg2NDM2NmU5MWM0YTQwZGRlYTlhMzcwNjhmOTE5ZTJkMWUwZjdhZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.1MhMz6T-bs5vpKhR3tGZGEhauTmdyFEjg2dhpGgzzaw" alt="css.gg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Support&lt;/h4&gt;

&lt;/div&gt;
&lt;p&gt;If you want to support further development of this project consider becoming a sponsor&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;a href="https://github.com/sponsors/astrit" rel="noopener noreferrer"&gt;Github Sponsor — github.com/sponsors/astrit&lt;/a&gt;&lt;/h3&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/astrit/css.gg" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>css</category>
      <category>react</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Pure CSS &amp; SVG text cursor </title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Tue, 24 Mar 2020 17:11:44 +0000</pubDate>
      <link>https://dev.to/astrit/pure-css-svg-text-cursor-4fka</link>
      <guid>https://dev.to/astrit/pure-css-svg-text-cursor-4fka</guid>
      <description>&lt;p&gt;Hello friends 👋,&lt;/p&gt;

&lt;p&gt;I just made this little tutorial on how to create a custom cursor with text using only CSS and SVG.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check it out:
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7FYyJxLQgvI"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/astrit/embed/QWbZgpR?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
    </item>
    <item>
      <title>500 ⭐'s on Github - css.gg</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Wed, 26 Feb 2020 14:39:15 +0000</pubDate>
      <link>https://dev.to/astrit/css-gg-scores-500-s-on-github-1o6j</link>
      <guid>https://dev.to/astrit/css-gg-scores-500-s-on-github-1o6j</guid>
      <description>&lt;p&gt;css.gg just reached 500 ⭐️ on Github.&lt;/p&gt;

&lt;p&gt;Thank you very much from the bottom of my ❤️ to every single one of you who supported me all this time. &lt;/p&gt;

&lt;p&gt;Cheers 🎉🍾🥂🥳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W3KaRoVY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wkb8s2jxr4wr1bvk89sr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W3KaRoVY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wkb8s2jxr4wr1bvk89sr.gif" alt="css.gg" width="720" height="720"&gt;&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/astrit"&gt;
        astrit
      &lt;/a&gt; / &lt;a href="https://github.com/astrit/css.gg"&gt;
        css.gg
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      700+ Pure CSS, SVG &amp;amp; Figma UI Icons Available in SVG Sprite, styled-components, NPM &amp;amp; API
    &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 href="https://css.gg" rel="nofollow"&gt;Demo&lt;/a&gt; - &lt;a href="https://css.gg/fig" rel="nofollow"&gt;Figma&lt;/a&gt; - &lt;a href="https://twitter.com/astritmalsija" rel="nofollow"&gt;Twitter&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Open-source CSS, SVG and Figma UI Icons &lt;br&gt;
Available in SVG Sprite, styled-components, NPM &amp;amp; API&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/eab3a11f4bfa0cc078076bc876f1c57fe0645109a2fbffcd65b66366d4186ce8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/eab3a11f4bfa0cc078076bc876f1c57fe0645109a2fbffcd65b66366d4186ce8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/40f2bf6d3510de34875ab2a0ad290ea61b6ef8c234f5cb216cee1de4e81878db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/40f2bf6d3510de34875ab2a0ad290ea61b6ef8c234f5cb216cee1de4e81878db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767" alt="GitHub last commit"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/092962b860e395c418a45a3904b0b46a5ec8a1c06bcd10650b2af8cd3c9bdad5/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/092962b860e395c418a45a3904b0b46a5ec8a1c06bcd10650b2af8cd3c9bdad5/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767" alt="Website"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/6c2f91353a272d23e28b4d41a1bd365211a6a367b95e510f49bdde3c98e41f04/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/6c2f91353a272d23e28b4d41a1bd365211a6a367b95e510f49bdde3c98e41f04/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/a6b53d404b0346a798ec60fdc6db19bf30482134727f07e0b3dc5e3ff76dc1ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/a6b53d404b0346a798ec60fdc6db19bf30482134727f07e0b3dc5e3ff76dc1ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767" alt="GitHub issues"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0575b985747f740bae106343a9b1490f73cb56d84b8386581cce5ca8d2628c07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/0575b985747f740bae106343a9b1490f73cb56d84b8386581cce5ca8d2628c07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767" alt="GitHub stars"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/d5a470aac1672a1890a506a40b1e536442315631d34883df3b10399735d36adc/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/d5a470aac1672a1890a506a40b1e536442315631d34883df3b10399735d36adc/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/5c69a8d8db3dfcf691ddec01ecf854d67071fe79e9313ca3c7c988d6d2136f94/68747470733a2f2f6373732e67672f6661762f6f6769742e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/5c69a8d8db3dfcf691ddec01ecf854d67071fe79e9313ca3c7c988d6d2136f94/68747470733a2f2f6373732e67672f6661762f6f6769742e706e67" alt="css.gg"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/52fcd0da1c13bb89b2b5390dd6e07cfe634537157d33f60106164c396311043b/68747470733a2f2f6373732e67672f696d672f616c6c2e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/52fcd0da1c13bb89b2b5390dd6e07cfe634537157d33f60106164c396311043b/68747470733a2f2f6373732e67672f696d672f616c6c2e706e67" alt="css.gg icons"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
New in 2.0&lt;/h1&gt;
&lt;h4&gt;
🥳 200 New Icons&lt;/h4&gt;
&lt;h4&gt;
🚀 SVG Icons&lt;/h4&gt;
&lt;h4&gt;
🔥 SVG Sprite&lt;/h4&gt;
&lt;h4&gt;
💅 Styled Components&lt;/h4&gt;
&lt;h4&gt;
⚛️ React Local Styled Components&lt;/h4&gt;
&lt;h4&gt;
🦄 Figma Components&lt;/h4&gt;
&lt;h4&gt;
🔮 Adobe XD Components&lt;/h4&gt;
&lt;h1&gt;
Table of Contents&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#get-started"&gt;Get Started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#html-include"&gt;HTML include&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection"&gt;3. Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#4-markup"&gt;4. Markup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#5-example"&gt;5. Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#css--import"&gt;CSS @import&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons-1"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon-1"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection-1"&gt;3. Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#4-resizing"&gt;4. Resizing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#5-coloring"&gt;5. Coloring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#svg"&gt;SVG&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#1-svg-sprite---download-path"&gt;1. SVG Sprite - Download Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#11-example"&gt;1.1. Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#2-svg-single-icon---download-path"&gt;2. SVG Single Icon - Download Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#21-example---svg-sprite"&gt;2.1. Example - SVG Sprite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#22-example---inline-svg-sprite-symbol"&gt;2.2. Example - Inline SVG Sprite/Symbol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#23-example-single-copy-paste-icon"&gt;2.3. Example Single copy/paste icon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#3-encode-svg-for-css"&gt;3. Encode SVG for CSS&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#31-example---encoded-svg-for-css-icon"&gt;3.1. Example - Encoded SVG for CSS icon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#4-coloring-a-svg-icon"&gt;4. Coloring a SVG icon&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#41-directly-on-the-icon"&gt;4.1. Directly on the icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#42-using-class"&gt;4.2. using class&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#json---paths"&gt;JSON - paths&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons-2"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon-2"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection-2"&gt;3. Collection&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/astrit/css.gg"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>css</category>
      <category>php</category>
      <category>html</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Pure CSS outlined triangle using only borders △△△△△△△ </title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Thu, 20 Feb 2020 00:06:05 +0000</pubDate>
      <link>https://dev.to/astrit/css-only-outlined-triangle-1k8j</link>
      <guid>https://dev.to/astrit/css-only-outlined-triangle-1k8j</guid>
      <description>&lt;p&gt;Doing the new icons for &lt;a href="https://css.gg" rel="noopener noreferrer"&gt;css.gg&lt;/a&gt; has been more difficult than I expected because I am reaching the limits of what I can do purely on CSS, as it is well known you can't create a Triangle on CSS without hacks such as border and nonetheless a outlined one.  &lt;/p&gt;

&lt;p&gt;Knowing that this could be a bit harder for beginners and in fact to share with you guys my approach I decided to create this mini tutorial.&lt;/p&gt;

&lt;h3&gt;
  
  
  First
&lt;/h3&gt;

&lt;p&gt;Create the box with transparent borders on the side to create the angle which we will use later, for sake of demonstration will show side borders as semi transparent, on final step side borders should be transparent.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm1rtxy9lf2sfsrfv8k1u.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm1rtxy9lf2sfsrfv8k1u.png" alt="css.gg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Border style breakdown &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nc"&gt;.gg-shape-triangle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;box-sizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;border-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;22px&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;17px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  01  */&lt;/span&gt;
    &lt;span class="nl"&gt;border-left-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    
    &lt;span class="nl"&gt;border-left-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-left-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  02  */&lt;/span&gt;
    &lt;span class="nl"&gt;border-right-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-right-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-right-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  03  */&lt;/span&gt;
    &lt;span class="py"&gt;border-down-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;border-down-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;border-down-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;initial&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Now will use pseudo selector "::before" to build a rectangle with left &amp;amp; top border, rotate it and skew so it can fit exactly with the bottom border of the parent it will look like this:&lt;/p&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flb34ni4bqj922nunonhv.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flb34ni4bqj922nunonhv.png" alt="css.gg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nc"&gt;.gg-shape-triangle&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;box-sizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;border-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  Left Border */&lt;/span&gt;
    &lt;span class="nl"&gt;border-left-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-left-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-left-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;initial&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  Top Border */&lt;/span&gt;
    &lt;span class="nl"&gt;border-top-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-top-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-top-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;initial&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  Bottom Border */&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c"&gt;/*  Rotate it to 45deg and skew  */&lt;/span&gt;
    &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;45deg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;skew&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;10deg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;10deg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c"&gt;/*  Position it until you meet the corners  */&lt;/span&gt;
    &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-2px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-13px&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;This is how the borders will overlap&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fv9i360lcnnngals9vxhp.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fv9i360lcnnngals9vxhp.png" alt="css.gg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The final style
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nc"&gt;.gg-shape-triangle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--ggs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;22px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;17px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.gg-shape-triangle&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nc"&gt;.gg-shape-triangle&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;box-sizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;border-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.gg-shape-triangle&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;45deg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;skew&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;10deg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;10deg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-2px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-13px&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

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

&lt;p&gt;Benefits are that you can scale it with transform or use units such as "em".&lt;br&gt;
Also use it over any background. &lt;/p&gt;

&lt;p&gt;Stay tuned for the update.&lt;br&gt;
Will share all what I learn along the way. &lt;/p&gt;

&lt;p&gt;For more check the repo with all the icons:&lt;br&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://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/astrit" rel="noopener noreferrer"&gt;
        astrit
      &lt;/a&gt; / &lt;a href="https://github.com/astrit/css.gg" rel="noopener noreferrer"&gt;
        css.gg
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      700+ Pure CSS, SVG &amp;amp; Figma UI Icons, 6000+ glyphs, patterns, colors and layouts.
    &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;h2 class="heading-element"&gt;&lt;a href="https://css.gg" rel="nofollow noopener noreferrer"&gt;CSS＊GG&lt;/a&gt;&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;A comprehensive, open-source CSS icons library. &lt;br&gt;
Featuring Vanilla CSS, SVG and Figma UI icons&lt;/p&gt;
&lt;p&gt;Now also a collection of well organised &lt;a href="https://glyf.app" rel="nofollow noopener noreferrer"&gt;6000 Unique Glyphs&lt;/a&gt;, &lt;br&gt;
easy copy paste and available on the raycast extension.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Update 2024-08-26&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;The new version is live on the website, with a new design and a new way to browse the icons. &lt;br&gt;
Soon to be released as a Figma plugin and the new version of the library.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Other resources: &lt;a href="https://youtube.com/@astrit" rel="nofollow noopener noreferrer"&gt;YouTube&lt;/a&gt;, &lt;a href="https://www.figma.com/community/file/1284635132283811437/glyf-app-6000-variable-glyphs" rel="nofollow noopener noreferrer"&gt;Figma&lt;/a&gt;, &lt;a href="https://www.raycast.com/astrit/css-gg" rel="nofollow noopener noreferrer"&gt;Raycast&lt;/a&gt;, &lt;a href="https://glyf.app" rel="nofollow noopener noreferrer"&gt;GLYF＊APP&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1f7ed0d09f41661f48abf6c415ce80540c32ad09d80bfe5949fab01c60b42c16/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/1f7ed0d09f41661f48abf6c415ce80540c32ad09d80bfe5949fab01c60b42c16/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3fa996ca1d7a2700db25a9498059ec6aa988f80b1ee207ec587fbc185b1d51b0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/3fa996ca1d7a2700db25a9498059ec6aa988f80b1ee207ec587fbc185b1d51b0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767" alt="GitHub last commit"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f9f1c704e848a6a2a0b138d1715e67ba46d757a1ad9ecec17816617285e2e79d/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/f9f1c704e848a6a2a0b138d1715e67ba46d757a1ad9ecec17816617285e2e79d/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767" alt="Website"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b27d96419154773b776b2aed6aa22a3fc9c5684cb4e8bceea9da76be9a77912e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/b27d96419154773b776b2aed6aa22a3fc9c5684cb4e8bceea9da76be9a77912e/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c498abd82cae725002efb559772dec040dffe40c70aab3dd9ccfc3d0ce94aaf2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/c498abd82cae725002efb559772dec040dffe40c70aab3dd9ccfc3d0ce94aaf2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767" alt="GitHub issues"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/fe0d02fc4ad2f9f2fffd86b68be6a87537202f6356b8a91e1181bc6764a2e034/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/fe0d02fc4ad2f9f2fffd86b68be6a87537202f6356b8a91e1181bc6764a2e034/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767" alt="GitHub stars"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/d7e1ede50412935b6d5b1285a81c667e472576d04e850398cfc3e080ef8e45f6/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/d7e1ede50412935b6d5b1285a81c667e472576d04e850398cfc3e080ef8e45f6/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://css.gg" 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%2Fprivate-user-images.githubusercontent.com%2F2398447%2F361591138-b7b72681-de31-4568-ace1-939ce6ef1272.png%3Fjwt%3DeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjgwNjkxMjgsIm5iZiI6MTcyODA2ODgyOCwicGF0aCI6Ii8yMzk4NDQ3LzM2MTU5MTEzOC1iN2I3MjY4MS1kZTMxLTQ1NjgtYWNlMS05MzljZTZlZjEyNzIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MTAwNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDEwMDRUMTkwNzA4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2M4MGM1ODE0NTQyMjBhYzcyY2JkMmFmYWQ4MzYwZjk1ZDRjMTdiNDI2OTFiNjY0ZDg1ZjcwY2M5YzI0YWVhNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.eB7IDxDK7OGvpWXllMTylBPlP6-S6u7wv-m8kKXW1n4" alt="css.gg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Support&lt;/h4&gt;

&lt;/div&gt;
&lt;p&gt;If you want to support further development of this project consider becoming a sponsor&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;a href="https://github.com/sponsors/astrit" rel="noopener noreferrer"&gt;Github Sponsor — github.com/sponsors/astrit&lt;/a&gt;&lt;/h3&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/astrit/css.gg" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;Inspired by:&lt;br&gt;
&lt;a href="https://dev.to/adriantwarog/learn-how-to-make-a-triangle-in-css-once-and-for-all-2pfe"&gt;https://dev.to/adriantwarog/learn-how-to-make-a-triangle-in-css-once-and-for-all-2pfe&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
      <category>howto</category>
    </item>
    <item>
      <title>Yin and yang - Pure CSS, transparent, single element icon</title>
      <dc:creator>Astrit</dc:creator>
      <pubDate>Fri, 07 Feb 2020 02:04:45 +0000</pubDate>
      <link>https://dev.to/astrit/yin-and-yang-pure-css-transparent-single-element-icon-214e</link>
      <guid>https://dev.to/astrit/yin-and-yang-pure-css-transparent-single-element-icon-214e</guid>
      <description>&lt;p&gt;As you might already know I have created recently &lt;a href="https://css.gg"&gt;css.gg&lt;/a&gt; a pure CSS Icon library. &lt;br&gt;
So now on the v2 I am trying to add 200 more icons for a 700 total. &lt;/p&gt;

&lt;p&gt;This library has some restrictions such as: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Single HTML tag&lt;/li&gt;
&lt;li&gt;No colored negative space, only transparent&lt;/li&gt;
&lt;li&gt;Scale Good&lt;/li&gt;
&lt;li&gt;No path&lt;/li&gt;
&lt;li&gt;No data-uri PNG or SVG &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So everything is harder as if I would do it on multiple tags and not transparent. &lt;/p&gt;

&lt;p&gt;So here is my approach. &lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1
&lt;/h3&gt;

&lt;p&gt;First I created as usual a circle with 2px border and note how I do not specify when not needed the color so it inherits from the parent, when is a must I use currentColor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.gg-yinyang&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;box-sizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;border-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c"&gt;/* ^ this is only to contain the icon as box is applied on all icons */&lt;/span&gt;

  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;22px&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 2
&lt;/h3&gt;

&lt;p&gt;Now second step to create pseudo elements with half of the parent width minus the border and positioned center vertically. I do always fixed pixels to contain it and for better cross-browser support.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;
&lt;span class="nc"&gt;.gg-yinyang&lt;/span&gt;&lt;span class="nd"&gt;::after&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nc"&gt;.gg-yinyang&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;box-sizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;border-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 3
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;::before&lt;/code&gt; pseudo selector needs to be on the left and with standard border&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.gg-yinyang&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 4
&lt;/h3&gt;

&lt;p&gt;Now comes the most challenging, tricky &amp;amp; ugly part where I cover the rest of the area with the box shadow of the &lt;code&gt;::after&lt;/code&gt; pseudo selector&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.gg-yinyang&lt;/span&gt;&lt;span class="nd"&gt;::after&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="nb"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;inset&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;-3px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="m"&gt;-2px&lt;/span&gt; &lt;span class="m"&gt;-4px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="m"&gt;-8px&lt;/span&gt; &lt;span class="m"&gt;-5px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;-1px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="m"&gt;-11px&lt;/span&gt; &lt;span class="m"&gt;-3px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;-2px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="m"&gt;-12px&lt;/span&gt; &lt;span class="m"&gt;-1px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;-3px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="m"&gt;-6px&lt;/span&gt; &lt;span class="m"&gt;-6px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;-1px&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Final Result
&lt;/h3&gt;

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

&lt;p&gt;This version also has as unit &lt;code&gt;em&lt;/code&gt; where I am looking to switch for all the icons, better performance specially on animation. &lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/astrit/embed/wvavNGb?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;For more please check the current icons on github and give it a ⭐ if you like it.&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/astrit"&gt;
        astrit
      &lt;/a&gt; / &lt;a href="https://github.com/astrit/css.gg"&gt;
        css.gg
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      700+ Pure CSS, SVG &amp;amp; Figma UI Icons Available in SVG Sprite, styled-components, NPM &amp;amp; API
    &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 href="https://css.gg" rel="nofollow"&gt;Demo&lt;/a&gt; - &lt;a href="https://css.gg/fig" rel="nofollow"&gt;Figma&lt;/a&gt; - &lt;a href="https://twitter.com/astritmalsija" rel="nofollow"&gt;Twitter&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;Open-source CSS, SVG and Figma UI Icons &lt;br&gt;
Available in SVG Sprite, styled-components, NPM &amp;amp; API&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/eab3a11f4bfa0cc078076bc876f1c57fe0645109a2fbffcd65b66366d4186ce8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/eab3a11f4bfa0cc078076bc876f1c57fe0645109a2fbffcd65b66366d4186ce8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/40f2bf6d3510de34875ab2a0ad290ea61b6ef8c234f5cb216cee1de4e81878db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/40f2bf6d3510de34875ab2a0ad290ea61b6ef8c234f5cb216cee1de4e81878db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f6173747269742f6373732e6767" alt="GitHub last commit"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/092962b860e395c418a45a3904b0b46a5ec8a1c06bcd10650b2af8cd3c9bdad5/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/092962b860e395c418a45a3904b0b46a5ec8a1c06bcd10650b2af8cd3c9bdad5/68747470733a2f2f696d672e736869656c64732e696f2f776562736974653f75726c3d68747470732533412532462532466373732e6767" alt="Website"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/6c2f91353a272d23e28b4d41a1bd365211a6a367b95e510f49bdde3c98e41f04/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/6c2f91353a272d23e28b4d41a1bd365211a6a367b95e510f49bdde3c98e41f04/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f6373732e6767" alt="npm"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/a6b53d404b0346a798ec60fdc6db19bf30482134727f07e0b3dc5e3ff76dc1ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/a6b53d404b0346a798ec60fdc6db19bf30482134727f07e0b3dc5e3ff76dc1ba/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6173747269742f6373732e6767" alt="GitHub issues"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0575b985747f740bae106343a9b1490f73cb56d84b8386581cce5ca8d2628c07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767"&gt;&lt;img src="https://camo.githubusercontent.com/0575b985747f740bae106343a9b1490f73cb56d84b8386581cce5ca8d2628c07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6173747269742f6373732e6767" alt="GitHub stars"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/d5a470aac1672a1890a506a40b1e536442315631d34883df3b10399735d36adc/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/d5a470aac1672a1890a506a40b1e536442315631d34883df3b10399735d36adc/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6173747269746d616c73696a613f6c6162656c3d666f6c6c6f77267374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/5c69a8d8db3dfcf691ddec01ecf854d67071fe79e9313ca3c7c988d6d2136f94/68747470733a2f2f6373732e67672f6661762f6f6769742e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/5c69a8d8db3dfcf691ddec01ecf854d67071fe79e9313ca3c7c988d6d2136f94/68747470733a2f2f6373732e67672f6661762f6f6769742e706e67" alt="css.gg"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/52fcd0da1c13bb89b2b5390dd6e07cfe634537157d33f60106164c396311043b/68747470733a2f2f6373732e67672f696d672f616c6c2e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/52fcd0da1c13bb89b2b5390dd6e07cfe634537157d33f60106164c396311043b/68747470733a2f2f6373732e67672f696d672f616c6c2e706e67" alt="css.gg icons"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
New in 2.0&lt;/h1&gt;
&lt;h4&gt;
🥳 200 New Icons&lt;/h4&gt;
&lt;h4&gt;
🚀 SVG Icons&lt;/h4&gt;
&lt;h4&gt;
🔥 SVG Sprite&lt;/h4&gt;
&lt;h4&gt;
💅 Styled Components&lt;/h4&gt;
&lt;h4&gt;
⚛️ React Local Styled Components&lt;/h4&gt;
&lt;h4&gt;
🦄 Figma Components&lt;/h4&gt;
&lt;h4&gt;
🔮 Adobe XD Components&lt;/h4&gt;
&lt;h1&gt;
Table of Contents&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#get-started"&gt;Get Started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#html-include"&gt;HTML include&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection"&gt;3. Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#4-markup"&gt;4. Markup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#5-example"&gt;5. Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#css--import"&gt;CSS @import&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons-1"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon-1"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection-1"&gt;3. Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#4-resizing"&gt;4. Resizing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#5-coloring"&gt;5. Coloring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#svg"&gt;SVG&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#1-svg-sprite---download-path"&gt;1. SVG Sprite - Download Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#11-example"&gt;1.1. Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#2-svg-single-icon---download-path"&gt;2. SVG Single Icon - Download Path&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#21-example---svg-sprite"&gt;2.1. Example - SVG Sprite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#22-example---inline-svg-sprite-symbol"&gt;2.2. Example - Inline SVG Sprite/Symbol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#23-example-single-copy-paste-icon"&gt;2.3. Example Single copy/paste icon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#3-encode-svg-for-css"&gt;3. Encode SVG for CSS&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#31-example---encoded-svg-for-css-icon"&gt;3.1. Example - Encoded SVG for CSS icon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#4-coloring-a-svg-icon"&gt;4. Coloring a SVG icon&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#41-directly-on-the-icon"&gt;4.1. Directly on the icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#42-using-class"&gt;4.2. using class&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrit/css.gg#json---paths"&gt;JSON - paths&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#1-all-icons-2"&gt;1. All icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#2-single-icon-2"&gt;2. Single icon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/astrit/css.gg#3-collection-2"&gt;3. Collection&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/astrit/css.gg"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;Would love to see your approach on this with as less CSS as possible.&lt;/p&gt;

&lt;p&gt;AM&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
