<?xml version="1.0" encoding="utf-8"?>
  <rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:georss="http://www.georss.org/georss"
    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
  >
    <channel>
      <title>Piccalilli - Quick Tip topic archive</title>
      <link>https://piccalil.li/</link>
      <atom:link href="https://piccalil.li/category/quick-tip.xml" rel="self" type="application/rss+xml" />
      <description>We are Piccalilli. A publication dedicated to providing high quality educational content to level up your front-end skills.</description>
      <language>en-GB</language>
      <copyright>Piccalilli - Quick Tip topic archive 2026</copyright>
      <docs>https://www.rssboard.org/rss-specification</docs>
      <pubDate>Tue, 07 Apr 2026 01:02:02 GMT</pubDate>
      <lastBuildDate>Tue, 07 Apr 2026 01:02:02 GMT</lastBuildDate>

      
      <item>
        <title>How to stop Figma using your work to train their AI models</title>
        <link>https://piccalil.li/blog/how-to-stop-figma-using-your-work-to-train-their-ai-models/?ref=quick-tip-category-rss-feed</link>
        <dc:creator><![CDATA[Andy Bell]]></dc:creator>
        <pubDate>Mon, 01 Jul 2024 08:59:27 GMT</pubDate>
        <guid isPermaLink="true">https://piccalil.li/blog/how-to-stop-figma-using-your-work-to-train-their-ai-models/?ref=quick-tip-category-rss-feed</guid>
        <description><![CDATA[<p>Watch the <a href="https://www.loom.com/embed/efcad75538c840d2b156428125f4b53c?sid=ef7e25ec-75ac-4a37-a883-60e89c6c7be8">video</a>.</p>
<p>Let us know if there’s anything missed in this, but at a minimum, you want to <strong>turn off</strong> “Content training” in your Figma organisation’s admin area.</p>
<p>To reach the right section, from your organisation page in Figma, click <em>Admin</em> then the <em>Settings</em> tab. The AI settings are right at the bottom of the page.</p>
        
        ]]></description>
        
      </item>
    
      <item>
        <title>Define delay for each property in the transition shorthand</title>
        <link>https://piccalil.li/blog/define-delay-for-each-property-in-the-transition-shorthand/?ref=quick-tip-category-rss-feed</link>
        <dc:creator><![CDATA[Andy Bell]]></dc:creator>
        <pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://piccalil.li/blog/define-delay-for-each-property-in-the-transition-shorthand/?ref=quick-tip-category-rss-feed</guid>
        <description><![CDATA[<p>If you have a few properties that change with a <code>transition</code>, you can define a <code>transition-delay</code> for each of them, using the <code>transition</code> shorthand and separating each property with a comma.</p>
<pre><code>button:hover {
  transition: background 200ms linear, color 200ms linear 200ms,
    transform 500ms cubic-bezier(0.4, 0, 0.7, 1.8) 300ms, border-color 300ms cubic-bezier(
        0.4,
        0,
        0,
        1.1
      ) 600ms;
}
</code></pre>
<p>The order looks like this:</p>
<pre><code>/* With timing function */
transition: property duration timingFunction delay;
transition: color 200ms linear 200ms;

/* Without timing function */
transition: property duration delay;
transition: color 200ms 200ms;
</code></pre>
<p>You can make some pretty cool state changes by adding some space between each change.</p>
<p></p><p>See the Pen <a href="https://codepen.io/piccalilli/pen/bGgQExO">Demo: separate delays for each transitioned property</a> by Andy Bell (<a href="https://codepen.io/piccalilli/">@piccalilli</a>) on <a href="https://codepen.io">CodePen</a>.</p><p></p>
        
        ]]></description>
        
      </item>
    
      <item>
        <title>Prevent squishy elements with flex none</title>
        <link>https://piccalil.li/blog/prevent-squishy-elements-with-flex-none/?ref=quick-tip-category-rss-feed</link>
        <dc:creator><![CDATA[Andy Bell]]></dc:creator>
        <pubDate>Thu, 15 Apr 2021 00:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://piccalil.li/blog/prevent-squishy-elements-with-flex-none/?ref=quick-tip-category-rss-feed</guid>
        <description><![CDATA[<p>You can prevent elements like <code>&lt;svg&gt;</code> icons getting squished in a flexbox context by setting <code>flex</code> to <code>none</code>.</p>
<pre><code>.no-squish {
  flex: none;
}
</code></pre>
<p>This is really handy if you have a supporting icon because the default behaviour of a flex parent is to not wrap, which means elements will be forced to shrink as space runs out.</p>
<p>Setting <code>flex</code> to <code>none</code> gives you an inflexible item that can’t grow or shrink, based on the flex rules set on the parent, so it’s ideal for extrinsically sized elements, like icons.</p>
<p></p><p>See the Pen <a href="https://codepen.io/piccalilli/pen/xxgzOxZ">Flex none demo</a> by Andy Bell (<a href="https://codepen.io/piccalilli/">@piccalilli</a>) on <a href="https://codepen.io">CodePen</a>.</p><p></p>
<div><h2>FYI</h2>
<p>You can’t resize embedded CodePens, but toggle the HTML or CSS tabs on and off and you’ll see the effect.</p>
</div>
        
        ]]></description>
        
      </item>
    
      <item>
        <title>Use transparent borders and outlines to assist with high contrast mode</title>
        <link>https://piccalil.li/blog/use-transparent-borders-and-outlines-to-assist-with-high-contrast-mode/?ref=quick-tip-category-rss-feed</link>
        <dc:creator><![CDATA[Andy Bell]]></dc:creator>
        <pubDate>Thu, 11 Mar 2021 00:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://piccalil.li/blog/use-transparent-borders-and-outlines-to-assist-with-high-contrast-mode/?ref=quick-tip-category-rss-feed</guid>
        <description><![CDATA[<p>Say you’ve got this nice little button.</p>
<p></p><p>See the Pen <a href="https://codepen.io/piccalilli/pen/YzpdLRm">Button with shadow-based focus that’s not accessible in high contrast mode</a> by Andy Bell (<a href="https://codepen.io/piccalilli/">@piccalilli</a>) on <a href="https://codepen.io">CodePen</a>.</p><p></p>
<p>Because <code>outline</code> doesn’t clip to the shape of your button if you use <code>border-radius</code>, it can be tempting to use a sharp <code>box-shadow</code> for focus styles.</p>
<pre><code>button:focus {
  outline: none;
  box-shadow: 0px 0px 0px 3px #192a56;
}
</code></pre>
<p>With standard operating system and browser settings this looks fine. There’s plenty of contrast and the focus style is very clear. Job done, right? Unfortunately not because in <a href="https://support.microsoft.com/en-us/windows/use-high-contrast-mode-in-windows-10-fedc744c-90ac-69df-aed5-c8a90125e696">Windows High Contrast Mode</a>, both the background and focus styles probably won’t show up.</p>
<figure>
<video></video>
<figcaption><p>Because the background isn’t showing up in high contrast mode, the user has no visual indication of hover or focus events.</p></figcaption>
</figure>
<p>There is a solution to this: transparent borders and outlines! First, we add a transparent border to our button:</p>
<pre><code>button {
  border: 1px solid transparent;
  /* all the other CSS */
}
</code></pre>
<p>This border is completely invisible and you probably won’t even notice it, but the difference in Windows High Contrast Mode is huge.</p>
<p><img src="https://piccalil.b-cdn.net/images/quick-tips/high-contrast-button/good-button.jpg" alt="The much better button with styles as described in windows high contrast mode" /></p>
<p>This doesn’t fix the focus style though. It’s best to provide genuine contrast with focus styles so when a keyboard user <kbd>tab</kbd>s to your element, they can see that it is focused. To improve the initial focus style, we need to tweak it a bit:</p>
<pre><code>button:focus {
  outline: 2px solid transparent;
  outline-offset: 4px;
  box-shadow: 0px 0px 0px 3px #192a56;
}
</code></pre>
<p></p><p>See the Pen <a href="https://codepen.io/piccalilli/pen/VwmqXgd">Button with shadow-based focus that’s still accessible in high contrast mode</a> by Andy Bell (<a href="https://codepen.io/piccalilli/">@piccalilli</a>) on <a href="https://codepen.io">CodePen</a>.</p><p></p>
<p>We first set a 2 pixel <code>outline</code> and then using the ever-handy <code>outline-offset</code>, push it out by another 4 pixels. Now, when a user focuses our button, it looks great both in a standard operating system and browser configuration <strong>and</strong> it looks great in Windows High Contrast Mode.</p>
<figure>
<video></video>
<figcaption><p>The transparent border helps the button show up better to start with, then the outline adds an even better visual indicator that there has been a focus event.</p></figcaption>
</figure>
<p>Here’s all the CSS for the button:</p>
<pre><code>button {
  display: inline-block;
  padding: 0.5rem 2rem;
  font: inherit;
  font-weight: bold;
  border-radius: 2rem;
  border: 1px solid transparent;
  background: #3f25c4;
  color: #ffffff;
  min-width: 10rem;
  cursor: pointer;
}

button:hover,
button:focus {
  background: #8c7ae6;
  color: #000000;
}

button:focus {
  outline: 2px solid transparent;
  outline-offset: 4px;
  box-shadow: 0px 0px 0px 3px #192a56;
}
</code></pre>
<p>This is a quick win, for everyone: the visual design is left almost untouched <em>and</em> it’s accessible.</p>
        
        ]]></description>
        
      </item>
    
      <item>
        <title>Disable client-side React with Next JS</title>
        <link>https://piccalil.li/blog/disable-client-side-react-with-next-js/?ref=quick-tip-category-rss-feed</link>
        <dc:creator><![CDATA[Andy Bell]]></dc:creator>
        <pubDate>Thu, 11 Feb 2021 00:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://piccalil.li/blog/disable-client-side-react-with-next-js/?ref=quick-tip-category-rss-feed</guid>
        <description><![CDATA[<p><a href="https://nextjs.org/">Next JS</a> is a fantastic framework, but it produces some <em>eye-watering</em> client-side JavaScript bundles, thanks to <a href="https://reactjs.org/">React JS</a>’s notorious bundle sizes.</p>
<p>You can completely disable the client-side Javascript bundles with this little snippet:</p>
<pre><code>export const config = {
  unstable_runtimeJS: false
};
</code></pre>
<p>This is an experimental/beta feature, it seems, but I can vouch for how effective it is because <strong>every single page on this site is powered by Next JS and has 0kb of client-side React code</strong>!</p>
<p>Here’s an entire page component with this snippet in context, that you can use as a template for pages that you want client-side JavaScript to be disabled on:</p>
<pre><code>export const config = {
  unstable_runtimeJS: false
};

export default function MyLightweightPage({message}) {
  return (
    &lt;article&gt;
      &lt;p&gt;{message}&lt;/p&gt;
    &lt;/article&gt;
  );
}

export async function getStaticProps() {
  return {
    props: {
      message: 'Hello, world'
    }
  };
}
</code></pre>
        
        ]]></description>
        
      </item>
    
    </channel>
  </rss>
