Skip to content

Instantly share code, notes, and snippets.

@git2358
Created May 10, 2019 00:48
Show Gist options
  • Select an option

  • Save git2358/c8241af7563786b859d6fe312e7e0947 to your computer and use it in GitHub Desktop.

Select an option

Save git2358/c8241af7563786b859d6fe312e7e0947 to your computer and use it in GitHub Desktop.
Gradient Shapes
<main>
<header>
<h1>Gradient Shapes</h1>
<p>Shapes generated with CSS background gradients.</p>
</header>
<div id="examples">
<div class="shape" data-name="rectangular" data-type="linear">
<div class="preview">
<div style="background:
linear-gradient(currentColor, currentColor)
50% / 50% 50%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">linear-gradient</span><span class="p">(</span><span class="n">currentColor</span><span class="p">,</span> <span class="n">currentColor</span><span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">50%</span> <span class="m">50%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-rectangular)"></css-doodle>
</div>
</div>
<div class="shape" data-name="parallelogram" data-type="linear">
<div class="preview">
<div style="background:
linear-gradient(
110deg,
transparent 30%, currentColor 30%,
currentColor 70%, transparent 70%
)
50% / 90% 40%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">linear-gradient</span><span class="p">(</span>
<span class="m">110deg</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="m">30%</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">30%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">70%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">70%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">90%</span> <span class="m">40%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-parallelogram)"></css-doodle>
</div>
</div>
<div class="shape" data-name="circle" data-type="radial">
<div class="preview">
<div style="background:
radial-gradient(currentColor 50%, transparent 50%)
50% / 75% 75%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">radial-gradient</span><span class="p">(</span><span class="n">currentColor</span> <span class="m">50%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">50%</span><span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">75%</span> <span class="m">75%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-circle)"></css-doodle>
</div>
</div>
<div class="shape" data-name="semi-circle" data-type="radial">
<div class="preview">
<div style="background:
radial-gradient(
circle at 50% 0%,
currentColor 40%, transparent 40%
)
50% 100% / 60% 60%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">radial-gradient</span><span class="p">(</span>
<span class="nb">circle</span> <span class="n">at</span> <span class="m">50%</span> <span class="m">0%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">40%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">40%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="m">100%</span> <span class="p">/</span> <span class="m">60%</span> <span class="m">60%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-semi-circle)"></css-doodle>
</div>
</div>
<div class="shape" data-name="oval" data-type="radial">
<div class="preview">
<div style="background:
radial-gradient(currentColor 50%, transparent 50%)
50% / 75% 45%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">radial-gradient</span><span class="p">(</span><span class="n">currentColor</span> <span class="m">50%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">50%</span><span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">75%</span> <span class="m">45%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-oval)"></css-doodle>
</div>
</div>
<div class="shape" data-name="ring" data-type="radial">
<div class="preview">
<div style="background:
radial-gradient(
transparent calc(50% - 1px),
currentColor calc(50% - 1px),
currentColor calc(50% + 1px),
transparent calc(50% + 1px)
)
50% / 75% 75%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">radial-gradient</span><span class="p">(</span>
<span class="nb">transparent</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="n">-</span> <span class="m">1px</span><span class="p">),</span>
<span class="n">currentColor</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="n">-</span> <span class="m">1px</span><span class="p">),</span>
<span class="n">currentColor</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="err">+</span> <span class="m">1px</span><span class="p">),</span>
<span class="nb">transparent</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="err">+</span> <span class="m">1px</span><span class="p">)</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">75%</span> <span class="m">75%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-ring)"></css-doodle>
</div>
</div>
<div class="shape" data-name="line1" data-type="linear">
<div class="preview">
<div style="background:
linear-gradient(90deg, currentColor, currentColor)
50% / 2px 75%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">linear-gradient</span><span class="p">(</span><span class="m">90deg</span><span class="p">,</span> <span class="n">currentColor</span><span class="p">,</span> <span class="n">currentColor</span><span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">2px</span> <span class="m">75%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-line1)"></css-doodle>
</div>
</div>
<div class="shape" data-name="line2" data-type="linear">
<div class="preview">
<div style="background:
linear-gradient(
-60deg,
transparent calc(50% - 1px),
currentColor calc(50% - 1px),
currentColor calc(50% + 1px),
transparent calc(50% + 1px)
)
50% / 75% 75%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">linear-gradient</span><span class="p">(</span>
<span class="m">-60deg</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="n">-</span> <span class="m">1px</span><span class="p">),</span>
<span class="n">currentColor</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="n">-</span> <span class="m">1px</span><span class="p">),</span>
<span class="n">currentColor</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="err">+</span> <span class="m">1px</span><span class="p">),</span>
<span class="nb">transparent</span> <span class="n">calc</span><span class="p">(</span><span class="m">50%</span> <span class="err">+</span> <span class="m">1px</span><span class="p">)</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">75%</span> <span class="m">75%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-line2)"></css-doodle>
</div>
</div>
<div class="shape" data-name="triangle1" data-type="linear">
<div class="preview">
<div style="background:
linear-gradient(
-135deg, currentColor 50%, transparent 50%
)
50% / 50% 50%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">linear-gradient</span><span class="p">(</span>
<span class="m">-135deg</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">50%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">50%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">50%</span> <span class="m">50%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-triangle1)"></css-doodle>
</div>
</div>
<div class="shape" data-name="triangle2" data-type="conic">
<div class="preview">
<div style="background:
conic-gradient(
from 145deg,
currentColor 0, currentColor 20%, transparent 20%
)
50% -50% / 80% 80%
no-repeat;" class="graph"></div>
<div class="info">
<button type="button" class="info-handle">!</button>
<span class="info-content">Your browser doesn't support conic-gradient yet. </span>
</div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">conic-gradient</span><span class="p">(</span>
<span class="n">from</span> <span class="m">145deg</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">0</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">20%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">20%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="m">-50%</span> <span class="p">/</span> <span class="m">80%</span> <span class="m">80%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-triangle2)"></css-doodle>
</div>
</div>
<div class="shape" data-name="trapezoid" data-type="conic">
<div class="preview">
<div style="background:
conic-gradient(
from 165deg at 50% -86%,
currentColor 0, currentColor 8%, transparent 8%
)
50% / 50% 50%
no-repeat;" class="graph"></div>
<div class="info">
<button type="button" class="info-handle">!</button>
<span class="info-content">Your browser doesn't support conic-gradient yet. </span>
</div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">conic-gradient</span><span class="p">(</span>
<span class="n">from</span> <span class="m">165deg</span> <span class="n">at</span> <span class="m">50%</span> <span class="m">-86%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">0</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">8%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">8%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">50%</span> <span class="m">50%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-trapezoid)"></css-doodle>
</div>
</div>
<div class="shape" data-name="tag" data-type="conic">
<div class="preview">
<div style="background:
conic-gradient(
from -45deg,
currentColor 25%, currentColor 50%,
transparent 50%, transparent 75%,
currentColor 75%
)
50% 120% / 30% 80%
no-repeat;" class="graph"></div>
<div class="info">
<button type="button" class="info-handle">!</button>
<span class="info-content">Your browser doesn't support conic-gradient yet. </span>
</div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">conic-gradient</span><span class="p">(</span>
<span class="n">from</span> <span class="m">-45deg</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">25%</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">50%</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="m">50%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">75%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">75%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="m">120%</span> <span class="p">/</span> <span class="m">30%</span> <span class="m">80%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-tag)"></css-doodle>
</div>
</div>
<div class="shape" data-name="spaceship" data-type="conic">
<div class="preview">
<div style="background:
conic-gradient(
from 90deg at 0 0,
transparent 25deg, currentColor 25deg,
currentColor 65deg, transparent 65deg
)
50% / 50% 50%
no-repeat;" class="graph"></div>
<div class="info">
<button type="button" class="info-handle">!</button>
<span class="info-content">Your browser doesn't support conic-gradient yet. </span>
</div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">conic-gradient</span><span class="p">(</span>
<span class="n">from</span> <span class="m">90deg</span> <span class="n">at</span> <span class="m">0</span> <span class="m">0</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="m">25deg</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">25deg</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">65deg</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">65deg</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">50%</span> <span class="m">50%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-spaceship)"></css-doodle>
</div>
</div>
<div class="shape" data-name="sandglass" data-type="conic">
<div class="preview">
<div style="background:
conic-gradient(
from 90deg,
transparent 12.5%, currentColor 12.5%,
currentColor 37.5%, transparent 37.5%,
transparent 62.5%, currentColor 62.5%,
currentColor 87.5%, transparent 87.5%
)
50% / 32% 50%
no-repeat;" class="graph"></div>
<div class="info">
<button type="button" class="info-handle">!</button>
<span class="info-content">Your browser doesn't support conic-gradient yet. </span>
</div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">conic-gradient</span><span class="p">(</span>
<span class="n">from</span> <span class="m">90deg</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="m">12.5%</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">12.5%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">37.5%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">37.5%</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="m">62.5%</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">62.5%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">87.5%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">87.5%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">32%</span> <span class="m">50%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-sandglass)"></css-doodle>
</div>
</div>
<div class="shape" data-name="tie" data-type="conic">
<div class="preview">
<div style="background:
conic-gradient(
transparent 60deg, currentColor 60deg,
currentColor 120deg, transparent 120deg,
transparent 240deg, currentColor 240deg,
currentColor 300deg, transparent 300deg
)
50% / 50% 50%
no-repeat;" class="graph"></div>
<div class="info">
<button type="button" class="info-handle">!</button>
<span class="info-content">Your browser doesn't support conic-gradient yet. </span>
</div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">conic-gradient</span><span class="p">(</span>
<span class="nb">transparent</span> <span class="m">60deg</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">60deg</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">120deg</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">120deg</span><span class="p">,</span>
<span class="nb">transparent</span> <span class="m">240deg</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">240deg</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">300deg</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">300deg</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">50%</span> <span class="m">50%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-tie)"></css-doodle>
</div>
</div>
<div class="shape" data-name="hamburger" data-type="linear">
<div class="preview">
<div style="background:
repeating-linear-gradient(
transparent -1%, transparent 14%,
currentColor 14%, currentColor 28%
)
50% / 50% 60%
no-repeat;" class="graph"></div>
</div>
<div class="code">
<figure class="highlight"><pre><code class="language-css" data-lang="css"><span class="nt">div</span> <span class="p">{</span>
<span class="nl">background</span><span class="p">:</span>
<span class="n">repeating-linear-gradient</span><span class="p">(</span>
<span class="nb">transparent</span> <span class="m">-1%</span><span class="p">,</span> <span class="nb">transparent</span> <span class="m">14%</span><span class="p">,</span>
<span class="n">currentColor</span> <span class="m">14%</span><span class="p">,</span> <span class="n">currentColor</span> <span class="m">28%</span>
<span class="p">)</span>
<span class="m">50%</span> <span class="p">/</span> <span class="m">50%</span> <span class="m">60%</span>
<span class="nb">no-repeat</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure>
<css-doodle use="var(--doodle-hamburger)"></css-doodle>
</div>
</div>
</div>
</main>
<footer>
Created by <a target="_blank" href="https://twitter.com/yuanchuan23">yuanchuan</a>
</footer>
<!-- Credit: https://github.com/tholman/github-corners -->
<a target="_blank" href="https://github.com/yuanchuan/gradient-shapes" class="github-corner" aria-label="View source on GitHub"><svg width="65" height="65" viewBox="0 0 250 250" style="fill:#4B4E68; color:#fff; position: fixed; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/css-doodle/0.4.9/css-doodle.min.js"></script>
<link href="https://yuanchuan.name/gradient-shapes/assets/highlight.css" rel="stylesheet" />
<link href="https://yuanchuan.name/gradient-shapes/assets/doodles.css?1" rel="stylesheet" />
<link href="https://yuanchuan.name/gradient-shapes/assets/style.css?3" rel="stylesheet" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment