<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CSS on Nelson Figueroa</title><link>https://nelson.cloud/categories/css/</link><description>Recent content in CSS on Nelson Figueroa</description><image><title>Nelson Figueroa</title><url>https://nelson.cloud/apple-touch-icon.png</url><link>https://nelson.cloud/categories/css/</link></image><language>en</language><lastBuildDate>Sat, 24 Jan 2026 23:25:23 -0800</lastBuildDate><atom:link href="https://nelson.cloud/categories/css/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Disable CSS Animations and Transitions</title><link>https://nelson.cloud/how-to-disable-css-animations-and-transitions/?ref=rss</link><pubDate>Sun, 26 Jan 2025 00:00:00 +0000</pubDate><guid>https://nelson.cloud/how-to-disable-css-animations-and-transitions/?ref=rss</guid><description>Disable CSS animations and transitions with a few lines of CSS.</description><content:encoded><![CDATA[<p>If you&rsquo;re using a CSS library that comes with animations by default it may be a pain to maintain a modified version of it without animations. It&rsquo;s easier to write your own CSS to disable animations and transitions.</p>
<p>My motivation behind this post was disabling button animations when using 

<a href="https://daisyui.com/" target="_blank" rel="noopener">daisyUI</a> on a side project.</p>
<blockquote><p><strong>Note:</strong></p>I am not a CSS expert and there may be other ways of animating elements via CSS that I did not cover here. Also, this doesn&rsquo;t help if elements are being moved around by JavaScript. But you can easily disable JavaScript for any site through your browser :)</blockquote>

<p>To disable CSS animations and transitions you can try adding the following to your CSS:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="o">*</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">animation</span><span class="p">:</span> <span class="kc">none</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">transition</span><span class="p">:</span> <span class="kc">none</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>If that doesn&rsquo;t work, try using <code>!important</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="o">*</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">animation</span><span class="p">:</span> <span class="kc">none</span> <span class="cp">!important</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">transition</span><span class="p">:</span> <span class="kc">none</span> <span class="cp">!important</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>Animations may also be applied using the <code>::before</code> and <code>::after</code> pseudo elements. We can include those in the previous CSS:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="o">*,</span> <span class="o">*</span><span class="p">::</span><span class="nd">before</span><span class="o">,</span> <span class="o">*</span><span class="p">::</span><span class="nd">after</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">animation</span><span class="p">:</span> <span class="kc">none</span> <span class="cp">!important</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">transition</span><span class="p">:</span> <span class="kc">none</span> <span class="cp">!important</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>You can also put these into a CSS class and apply to HTML elements as needed if you still want animations in some places:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="c">/* style.css */</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">.</span><span class="nc">no-animations</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">animation</span><span class="p">:</span> <span class="kc">none</span> <span class="cp">!important</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">transition</span><span class="p">:</span> <span class="kc">none</span> <span class="cp">!important</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c">&lt;!-- index.html --&gt;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">html</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">head</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">    <span class="p">&lt;</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">&#34;stylesheet&#34;</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;style.css&#34;</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;/</span><span class="nt">head</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">     <span class="c">&lt;!-- add a class to whatever elements you want --&gt;</span>
</span></span><span class="line"><span class="cl">     <span class="p">&lt;</span><span class="nt">button</span> <span class="na">class</span><span class="o">=</span><span class="s">&#34;no-animations&#34;</span> <span class="na">type</span><span class="o">=</span><span class="s">&#34;button&#34;</span><span class="p">&gt;</span>No Animations on this Button<span class="p">&lt;/</span><span class="nt">button</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">     <span class="p">&lt;</span><span class="nt">button</span> <span class="na">type</span><span class="o">=</span><span class="s">&#34;button&#34;</span><span class="p">&gt;</span>Animations are ok here<span class="p">&lt;/</span><span class="nt">button</span><span class="p">&gt;</span> 
</span></span><span class="line"><span class="cl">  <span class="p">&lt;/</span><span class="nt">body</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">html</span><span class="p">&gt;</span></span></span></code></pre></div><h2 id="references">References</h2>
<ul>
<li>

<a href="https://stackoverflow.com/questions/11131875/what-is-the-cleanest-way-to-disable-css-transition-effects-temporarily" target="_blank" rel="noopener">https://stackoverflow.com/questions/11131875/what-is-the-cleanest-way-to-disable-css-transition-effects-temporarily</a></li>
<li>

<a href="https://stackoverflow.com/questions/31576156/what-does-animationnone-do-exactly" target="_blank" rel="noopener">https://stackoverflow.com/questions/31576156/what-does-animationnone-do-exactly</a></li>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/animation" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/animation</a></li>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/transition" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/transition</a></li>
</ul>
]]></content:encoded></item><item><title>Render HTML and CSS if JavaScript Is Disabled Using the `&lt;noscript&gt;` Tag</title><link>https://nelson.cloud/render-html-and-css-if-javascript-is-disabled-using-the-noscript-tag/?ref=rss</link><pubDate>Sat, 30 Nov 2024 00:00:00 +0000</pubDate><guid>https://nelson.cloud/render-html-and-css-if-javascript-is-disabled-using-the-noscript-tag/?ref=rss</guid><description>Render HTML and apply CSS styles if JavaScript is disabled.</description><content:encoded><![CDATA[<p>I recently learned about the 

<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/noscript" target="_blank" rel="noopener"><code>&lt;noscript&gt;</code> HTML tag</a>. HTML and CSS contained within <code>&lt;noscript&gt;</code> tags will be rendered if JavaScript is disabled in the browser.</p>
<p>For example, try reloading this page with JavaScript disabled and you&rsquo;ll see a new message below:</p>
<noscript>
    <blockquote>This message only shows up when JavaScript is disabled!</blockquote>
</noscript>
<p>The HTML for the message above looks like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">noscript</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">    <span class="p">&lt;</span><span class="nt">blockquote</span><span class="p">&gt;</span>This message only shows up when JavaScript is disabled!<span class="p">&lt;/</span><span class="nt">blockquote</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">noscript</span><span class="p">&gt;</span></span></span></code></pre></div><p>Here&rsquo;s an example where CSS styles within <code>&lt;noscript&gt;</code> tags are applied when JavaScript is disabled. Try reloading this page without JavaScript and the message below will be italicized.</p>
<noscript>
    <style>
        blockquote#example {
            font-style: italic;
        }
    </style>
</noscript>
<blockquote id="example">The text within this blockquote element is italicized when JavaScript is disabled!</blockquote>
<p>And this is what the HTML and CSS looks like for the example above:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">noscript</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">    <span class="p">&lt;</span><span class="nt">style</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">        <span class="nt">blockquote</span><span class="p">#</span><span class="nn">example</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">            <span class="k">font-style</span><span class="p">:</span> <span class="kc">italic</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="p">&lt;/</span><span class="nt">style</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">noscript</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">blockquote</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;example&#34;</span><span class="p">&gt;</span>The text within this blockquote element is italicized when JavaScript is disabled!<span class="p">&lt;/</span><span class="nt">blockquote</span><span class="p">&gt;</span></span></span></code></pre></div><h2 id="references">References</h2>
<ul>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/noscript" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/noscript</a></li>
</ul>
]]></content:encoded></item><item><title>The prefers-reduced-motion CSS Media Query</title><link>https://nelson.cloud/the-prefers-reduced-motion-css-media-query/?ref=rss</link><pubDate>Wed, 27 Nov 2024 00:00:00 +0000</pubDate><guid>https://nelson.cloud/the-prefers-reduced-motion-css-media-query/?ref=rss</guid><description>Apply CSS styles conditionally when a user enables reduced motion on their device.</description><content:encoded><![CDATA[<p>I recently learned about the <code>prefers-reduced-motion</code> 

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion" target="_blank" rel="noopener">CSS media query</a>. In a nutshell, if a user enables reduced motion on their device/browser, the CSS styles within this media query will be applied.</p>
<p>For example, if buttons have animations when they&rsquo;re clicked like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="nt">button</span><span class="p">:</span><span class="nd">active</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="k">transform</span><span class="p">:</span> <span class="nb">translateY</span><span class="p">(</span><span class="mi">4</span><span class="kt">px</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>We can disable those animations if a user has enabled reduced motion on their device by using the <code>prefers-reduced-motion</code> media query like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="p">@</span><span class="k">media</span> <span class="o">(</span><span class="nt">prefers-reduced-motion</span><span class="o">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="c">/* anything in here will apply on devices with reduced motion enabled */</span>
</span></span><span class="line"><span class="cl">    <span class="nt">button</span><span class="p">:</span><span class="nd">active</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">transform</span><span class="p">:</span> <span class="kc">none</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>Technically, the CSS being applied under <code>prefers-reduced-motion</code> doesn&rsquo;t need to be related to motions or animations. It&rsquo;s possible to do other things, like changing the background color, if a user prefers reduced motion. So something like this is possible too:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="nt">body</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="k">background-color</span><span class="p">:</span> <span class="kc">red</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">@</span><span class="k">media</span> <span class="o">(</span><span class="nt">prefers-reduced-motion</span><span class="o">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">body</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">background-color</span><span class="p">:</span> <span class="kc">blue</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>The Mozilla docs cover how to enable reduced motion on several browsers:</p>
<ul>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion</a></li>
</ul>
<h2 id="references">References</h2>
<ul>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media</a></li>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion</a></li>
<li>

<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Media_queries/Using" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Media_queries/Using</a></li>
</ul>
]]></content:encoded></item></channel></rss>