<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>leininger.tech</title>
	<subtitle>A web development blog written by @davidleininger.</subtitle>
	
	<link href="https://leininger.tech/feed/feed.xml" rel="self"/>
	<link href="https://leininger.tech"/>
	<updated>2024-04-19T00:00:00Z</updated>
	<id>https://example.com/</id>
	<author>
		<name>David Leininger</name>
		<email>david@leininger.tech</email>
	</author>
	
	<entry>
		<title>Concatenating items in aria-labelledby</title>
		<link href="https://leininger.tech/words/aria-labelledby-concat/"/>
		<updated>2024-04-19T00:00:00Z</updated>
		<id>https://leininger.tech/words/aria-labelledby-concat/</id>
		<content type="html">&lt;p&gt;I feel like I should have known this one, but it was news to me. Today I learned that you can concatenate values in an &lt;code&gt;aria-labelledby&lt;/code&gt; attribute. I can only think of a few times where I would have really wanted to use this instead of just writing out the &lt;code&gt;aria-label&lt;/code&gt;, but it&#39;s nice to have it in my back pocket. It&#39;s simple just add multiple IDs in the order you want them to be concatenated. Like this:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;article&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h2&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;wordle-heading&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Wordle&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Quick Description about Wordle&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://www.nytimes.com/games/wordle/index.html&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;wordle-play&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;aria-labelledby&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;wordle-play wordle-heading&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Play&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;article&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;See &lt;a href=&quot;https://codepen.io/davidleininger/pen/rNbQBrY/1bb6cbaf7f3762e708dc95bb3d21dda1&quot;&gt;example on CodePen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;By doing this, screen readers will announce something like &lt;code&gt;link, Play Wordle&lt;/code&gt; instead of just &lt;code&gt;link, Play&lt;/code&gt; and requiring someone to remember what card or item they are on.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: this works for &lt;code&gt;aria-describedby&lt;/code&gt; as well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;when-should-i-use-aria-label-or-aria-labelledby&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/aria-labelledby-concat/#when-should-i-use-aria-label-or-aria-labelledby&quot;&gt;&lt;span&gt;When should I use &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&gt;?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Basically it comes down to two paths. It&#39;s a little more complicated than this but in general you should use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aria-labelledby&lt;/code&gt; when the text is available some where else on the page&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aria-label&lt;/code&gt; when the text doesn&#39;t exist on the page and you need to write something custom&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	
	<entry>
		<title>Where to use :where()</title>
		<link href="https://leininger.tech/words/where-pseudo-class/"/>
		<updated>2022-04-28T00:00:00Z</updated>
		<id>https://leininger.tech/words/where-pseudo-class/</id>
		<content type="html">&lt;p&gt;At first, when I saw &lt;code&gt;:where()&lt;/code&gt;, I didn’t see how different it was from &lt;code&gt;:is()&lt;/code&gt;, and I didn’t give it much of a second thought. To be fair, it is very similar. Just like &lt;code&gt;:is()&lt;/code&gt;, &lt;code&gt;:where()&lt;/code&gt; can take multiple arguments, and it won’t blow up if one of the arguments is invalid, as a standard list of selectors would. The critical difference is that &lt;code&gt;:is()&lt;/code&gt; has the specificity of the most specific selector in its arguments, while &lt;code&gt;:where()&lt;/code&gt; is always &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;a-quick-overview-of-specificity&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/where-pseudo-class/#a-quick-overview-of-specificity&quot;&gt;&lt;span&gt;A Quick Overview of Specificity&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A selector&#39;s specificity helps determine which styles should be applied when multiple selectors target a single element. The applied styles come from the most specific selector that contains each declaration. Each selector has its own specificity “score” determined by the contents of the selector: ids, classes, elements, etc... These scores are broken down into three levels:&lt;/p&gt;
&lt;div class=&quot;ldt-list&quot; data-variant=&quot;article&quot;&gt;
&lt;ol&gt;
&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors&quot;&gt;ID selectors&lt;/a&gt;: These are IDs (&lt;code&gt;#example&lt;/code&gt;)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors&quot;&gt;Class selectors&lt;/a&gt;: These are classes (&lt;code&gt;.example&lt;/code&gt;), attributes selectors (&lt;code&gt;[type=&amp;quot;radio&amp;quot;]&lt;/code&gt;) and pseudo-classes (&lt;code&gt;:hover&lt;/code&gt;)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors&quot;&gt;Type selectors&lt;/a&gt;: These are tags (&lt;code&gt;h1&lt;/code&gt;, &lt;code&gt;p&lt;/code&gt;, &lt;code&gt;main&lt;/code&gt;) and pseudo-elements (&lt;code&gt;::before&lt;/code&gt;)&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;Each level has its own “score” which looks like &lt;code&gt;0, 0, 0&lt;/code&gt; for no specificity. The order of the specificity score is &lt;code&gt;id, class, type&lt;/code&gt;. The &amp;quot;score&amp;quot; is a count of each selector type in a rule. For example, &lt;code&gt;.header nav h1#sitetitle &amp;gt; .logo&lt;/code&gt; has a score of &lt;code&gt;1, 2, 2&lt;/code&gt;.  A &lt;code&gt;1&lt;/code&gt; in the ID Selector level won’t be able to be overridden by the other two types. It will need another ID to be more specific.&lt;/p&gt;
&lt;h2 id=&quot;back-to-:is()-and-:where()&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/where-pseudo-class/#back-to-:is()-and-:where()&quot;&gt;&lt;span&gt;Back to :is() and :where()&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Let’s take a look at how this specificity plays out for &lt;code&gt;:is()&lt;/code&gt; and &lt;code&gt;:where()&lt;/code&gt;. First let’s look at &lt;code&gt;:is()&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;is&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;.sidebar&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footer&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; #feature&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; section a&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using &lt;code&gt;:is()&lt;/code&gt; gives us a specificity of &lt;code&gt;1, 0, 2&lt;/code&gt;.  Since &lt;code&gt;:is()&lt;/code&gt; takes the specificity of the most specific argument, &lt;code&gt;#feature&lt;/code&gt; ID gives us the &lt;code&gt;1&lt;/code&gt; in the ID Selector level, and the trailing &lt;code&gt;section a&lt;/code&gt; gives us the &lt;code&gt;2&lt;/code&gt; in the Type Selector level.&lt;/p&gt;
&lt;p&gt;Let’s compare that to the same example with &lt;code&gt;:where()&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;.sidebar&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footer&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; #feature&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; section a&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We get a specificity of &lt;code&gt;0, 0, 2&lt;/code&gt; this time. This is where &lt;code&gt;:where()&lt;/code&gt; shines and is different. The only part of this selector to score points is the &lt;code&gt;section a&lt;/code&gt; selectors giving the Type Selector level a score of &lt;code&gt;2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We can take it a step further and wrap that whole thing in a &lt;code&gt;:where()&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;is&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;.sidebar&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; footer&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; #feature&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; section a&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The score here is &lt;code&gt;0, 0, 0&lt;/code&gt; because everything is wrapped in a &lt;code&gt;:where()&lt;/code&gt; pseudo class. The &lt;code&gt;:is()&lt;/code&gt; value even gets set to &lt;code&gt;0&lt;/code&gt;. That means that &lt;code&gt;:where()&lt;/code&gt; selectors are easier to override and work well in larger systems.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Take a look and try out different selectors at &lt;a href=&quot;https://polypane.app/css-specificity-calculator/&quot;&gt;https://polypane.app/css-specificity-calculator/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;how-i-use-:where()-in-a-design-system&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/where-pseudo-class/#how-i-use-:where()-in-a-design-system&quot;&gt;&lt;span&gt;How I use :where() in a Design System&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For the past few weeks, I&#39;ve been working on rebuilding and rethinking the development of the design system at WWT. Instead of waiting for us to rebuild a bunch of custom components, we decided that phase 1 should be a global CSS file — or set of files — as a baseline for all of our components. This can be imported into all current and future projects as we work towards making a set of components for each framework. We have many goals for this project, but one of the main ones is to make it easy to import and override as needed. That&#39;s where &lt;code&gt;:where()&lt;/code&gt; comes in. Let’s take a look at some examples.&lt;/p&gt;
&lt;h3 id=&quot;example-1:-body-copy&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/where-pseudo-class/#example-1:-body-copy&quot;&gt;&lt;span&gt;Example 1: Body Copy&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;At WWT, we build two main types of applications, content-driven websites and data-driven web apps with a lot of tables and data. These two types are best displayed with a different structure for handling typography and spacing. Content-driven websites are great candidates for fluid type and spacing, and data-driven apps are better candidates for static type and spacing.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; lightslategray&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;body:where(.fluid)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;1rem&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0.88rem + 0.51vw&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 1.25rem&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It may not seem like a lot here, but dropping that extra specificity point is important. If a developer needs to update the color or change up the styles for their app, they don’t have to fight the specificity to make the change. We can give a branded baseline without causing headaches for the developers. Let’s dive in a little further.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;h1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;h2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.5rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;h3&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.25rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:where(.fluid) h1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;1.6rem&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0.9rem + 2.99vw&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 3.05rem&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:where(.fluid) h2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;1.42rem&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0.93rem + 2.1vw&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 2.44rem&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:where(.fluid) h3&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;1.27rem&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0.93rem + 1.42vw&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 1.95rem&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is where things get a little bit more interesting. At first glance, you might say, &lt;em&gt;“Sure, but I could just use the &lt;code&gt;.fluid&lt;/code&gt; class before the tag selectors and it would be the same thing.”&lt;/em&gt; That isn’t entirely true. It would have the same effect on the base styles, but it would mean that every time the user wanted to override a size in their app, they would need to prefix that size with &lt;code&gt;.fluid&lt;/code&gt;. It’s not major, but it would get annoying really quickly.&lt;/p&gt;
&lt;p&gt;Here’s a look at why it’s important:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* ----&lt;br /&gt;	Design System Styles&lt;br /&gt;---- */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 1, 1 -- no where pseudo-class */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;.fluid h1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;1.6rem&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0.9rem + 2.99vw&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 3.05rem&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:where(.fluid) h2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;1.42rem&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0.93rem + 2.1vw&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 2.44rem&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* ----&lt;br /&gt;	In-App Styles - Lower in the cascade&lt;br /&gt;---- */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 this loses to .fluid h1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;h1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 4rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 this overrides :where(.fluid) h2 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;h2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 3rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open &lt;a href=&quot;https://codepen.io/davidleininger/pen/xxpmOpd&quot;&gt;example on CodePen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For WWT, using &lt;code&gt;:where()&lt;/code&gt; in the design system styles is vital because it makes updating the “In-App” styles easier. There is no fighting code with a &lt;code&gt;0, 0, 0&lt;/code&gt; specificity or the selector&#39;s default specificity.&lt;/p&gt;
&lt;h3 id=&quot;example-2:-link-styles&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/where-pseudo-class/#example-2:-link-styles&quot;&gt;&lt;span&gt;Example 2: Link Styles&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In my mind, we’re creating something that is like a WWT CSS reset, so I stole this selector from &lt;a href=&quot;https://twitter.com/hankchizljaw&quot;&gt;Andy Bell’s&lt;/a&gt; &lt;a href=&quot;https://github.com/hankchizljaw/modern-css-reset&quot;&gt;Modern Reset&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 1, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;a:not([class])&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; cornflowerblue&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This works, but I think we can do a little more with &lt;code&gt;:where()&lt;/code&gt; for a reset. I’m not the only one who thinks using &lt;code&gt;:where()&lt;/code&gt; makes a lot of sense in a reset. Take a look at &lt;a href=&quot;https://twitter.com/bramus&quot;&gt;Bramus’&lt;/a&gt; conveniently named post &lt;a href=&quot;https://www.bram.us/2021/07/20/using-the-specificity-of-where-as-a-css-reset/&quot;&gt;Using the Specificity of &lt;code&gt;:where()&lt;/code&gt; as a CSS Reset&lt;/a&gt;. Anywho, let’s look at the above example if we use &lt;code&gt;:where()&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;a:where(:not([class]))&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; cornflowerblue&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here is another example where dropping that extra specificity point is a big deal. If an app using this system needs to adjust the color or change up the styles for their app, they don’t have to fight the specificity like they would in the first example. Using &lt;code&gt;:where()&lt;/code&gt; in this example means that a simple &lt;code&gt;a&lt;/code&gt; selector will override the specified styles. For example:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* ----&lt;br /&gt;	Design System Styles&lt;br /&gt;---- */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;a:where(:not([class]))&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; cornflowerblue&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* ----&lt;br /&gt;	In-App Styles - Lower in the cascade&lt;br /&gt;---- */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* specificity score: 0, 0, 1 */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hotpink&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open &lt;a href=&quot;https://codepen.io/davidleininger/pen/ZErzKeg&quot;&gt;example on CodePen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Because the specificity scores are the same and the “In-App” styles are lower in the cascade, the “In-App” styles will be applied.&lt;/p&gt;
&lt;p&gt;A link is a straightforward example, but this becomes more powerful when used throughout the whole system.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/where-pseudo-class/#conclusion&quot;&gt;&lt;span&gt;Conclusion&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I love the idea of creating global styles that are extremely easy to override and change. I like it when I don’t have to fight the code I’m working on to make it do what I want, and &lt;code&gt;:where()&lt;/code&gt; is starting to help with that.&lt;/p&gt;
&lt;p&gt;There are many use cases for &lt;code&gt;:where()&lt;/code&gt; like grouping and chaining, and I only scratched the surface here. Specifically, I like the patterns of &lt;code&gt;:where(:not([class]))&lt;/code&gt; and &lt;code&gt;:where(.class) tag&lt;/code&gt;. I think these patterns give us a lot of opportunities to create reusable systems that can are easy to modify.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Terminal: Previous Shortcut</title>
		<link href="https://leininger.tech/words/terminal-previous-shortcut/"/>
		<updated>2022-04-20T00:00:00Z</updated>
		<id>https://leininger.tech/words/terminal-previous-shortcut/</id>
		<content type="html">&lt;p&gt;Being a front-end dev, I have some kind of relationship with the terminal. Sometimes, I have a desire to learn more and be a hacker, but most of the time what I know gets me by. That said, sometimes I find something that is so simple that it instantly becomes a part of my workflow.&lt;/p&gt;
&lt;p&gt;That happened again today when &lt;a href=&quot;https://twitter.com/joshwcomeau&quot;&gt;Josh Comeau&lt;/a&gt; shared his post: &lt;a href=&quot;https://www.joshwcomeau.com/javascript/terminal-for-js-devs/&quot;&gt;The Front-End Developer&#39;s Guide to the Terminal&lt;/a&gt;. Like any good front-end dev, I &lt;s&gt;read the article&lt;/s&gt; read all of Josh&#39;s articles. I don&#39;t know if I expected to pick anything up or just confirm I knew what I needed to know, but I didn&#39;t expect to grab this little nugget.&lt;/p&gt;
&lt;h2 id=&quot;previous-shortcut&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/terminal-previous-shortcut/#previous-shortcut&quot;&gt;&lt;span&gt;Previous Shortcut&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So I&#39;m in the terminal minding my own business in &lt;code&gt;project-a&lt;/code&gt;, and I need to look at something in &lt;code&gt;project-b&lt;/code&gt;, so I run &lt;code&gt;cd ../project-b&lt;/code&gt;. Now I&#39;m &lt;code&gt;project-b&lt;/code&gt; and I need to get back to &lt;code&gt;project-a&lt;/code&gt;. This time I run &lt;code&gt;cd ../project-a&lt;/code&gt;. I could keep doing this or, I could use the previous working directory shortcut (no idea what it&#39;s actually called) like this &lt;code&gt;cd -&lt;/code&gt;. This will take me back to the previous working directory. When I leave one directory for another, the one I left becomes the previous working directory. So, this gives you a type of toggle back and forth between directories.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://leininger.tech/words/terminal-previous-shortcut/toggle-pwd.jpg&quot; alt=&quot;terminal example of toggling directories&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;it-works-in-git-too!&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/terminal-previous-shortcut/#it-works-in-git-too!&quot;&gt;&lt;span&gt;It works in git, too!&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is where things get really spicy, you can use this to toggle between git branches! It&#39;s helpful to be able to swap between directories, but usually, I just have a terminal session up for both. Branches, on the other hand, I go back and forth all day. So, how does it work?&lt;/p&gt;
&lt;p&gt;If you&#39;re in the &lt;code&gt;main&lt;/code&gt; branch and you want to check out a &lt;code&gt;feature/rad-thing&lt;/code&gt; then you&#39;d run &lt;code&gt;git checkout feature/rad-thing&lt;/code&gt;. Now that you&#39;re in &lt;code&gt;feature/rad-thing&lt;/code&gt;, &lt;code&gt;main&lt;/code&gt; is your previous branch. This means you can just run &lt;code&gt;git checkout -&lt;/code&gt; to get back to &lt;code&gt;main&lt;/code&gt;. If you have aliases set up for git then you can probably just run &lt;code&gt;gco -&lt;/code&gt;. I am so pumped about this.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://leininger.tech/words/terminal-previous-shortcut/toggle-branch.jpg&quot; alt=&quot;terminal example of toggling branches&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Thank you, Josh Comeau. You never disappoint.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Reordering Markdown Ordered List</title>
		<link href="https://leininger.tech/words/reordering-markdown-ordered-lists/"/>
		<updated>2022-02-22T00:00:00Z</updated>
		<id>https://leininger.tech/words/reordering-markdown-ordered-lists/</id>
		<content type="html">&lt;p&gt;I&#39;ve been making ordered lists in markdown for a long time. It&#39;s great to be able to use ordered lists just by writing the list out using numbers: &lt;code&gt;1. List item&lt;/code&gt; etc... Until recently, I&#39;ve always hated reordering these lists and I&#39;d default to unordered lists so I could reorder easier. That ends today.&lt;/p&gt;
&lt;p&gt;With ordered lists in markdown, you can just use &lt;code&gt;1.&lt;/code&gt; for each item. This will start the list at 1 and go up from there, and when you reorder it you don&#39;t have to change each number. If they all start with &lt;code&gt;1.&lt;/code&gt; then it will just work.&lt;/p&gt;
&lt;pre class=&quot;language-md&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token list punctuation&quot;&gt;1.&lt;/span&gt; List item number one&lt;br /&gt;&lt;span class=&quot;token list punctuation&quot;&gt;1.&lt;/span&gt; Another list item&lt;br /&gt;&lt;span class=&quot;token list punctuation&quot;&gt;1.&lt;/span&gt; This one is number three&lt;br /&gt;&lt;span class=&quot;token list punctuation&quot;&gt;1.&lt;/span&gt; You only need to do use 1&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;result&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reordering-markdown-ordered-lists/#result&quot;&gt;&lt;span&gt;Result&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ol class=&quot;demo-list&quot;&gt;
  &lt;li&gt;List item number one&lt;/li&gt;
  &lt;li&gt;Another list item&lt;/li&gt;
  &lt;li&gt;This one is number three&lt;/li&gt;
  &lt;li&gt;You only need to do use 1&lt;/li&gt;
&lt;/ol&gt;
&lt;style&gt;
ol.demo-list {
  list-style: none;
  counter-reset: list_counter;
}
ol.demo-list li {
  align-items: baseline;
  display: flex;
  counter-increment: list_counter;
}
ol.demo-list[reversed] li {
  counter-increment: list_counter -1;
}
ol.demo-list li::before {
  content: counter(list_counter);
  color: var(--accent);
  font-family: &#39;Cartograph&#39;, mono;
  font-size: 1.5em;
  font-variant-numeric: tabular-nums;
  margin-right: 1rem;
}
&lt;/style&gt;
</content>
	</entry>
	
	<entry>
		<title>Specificity: Animation Declarations</title>
		<link href="https://leininger.tech/words/specificity-animation-declarations/"/>
		<updated>2022-01-28T00:00:00Z</updated>
		<id>https://leininger.tech/words/specificity-animation-declarations/</id>
		<content type="html">&lt;p&gt;Specificity can be super confusing, and just when I think I have it really nailed down I learn something new. I&#39;m not sure that I&#39;m going to use this very often, but I didn&#39;t know that you can override style declarations with animation declarations. For example:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Animation declarations take precedence over normal declarations */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;animation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; bg 0s forwards&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@keyframes&lt;/span&gt; bg&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token selector&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; yellow&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This is overridden by the animation declaration above */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; crimson&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this example the background would be &lt;code&gt;yellow&lt;/code&gt; because body has the animation declaration on it that overrides the &lt;code&gt;crimson&lt;/code&gt; lower in the file eventough they have the same level of specificity.&lt;/p&gt;
&lt;h2 id=&quot;learn-more&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/specificity-animation-declarations/#learn-more&quot;&gt;&lt;span&gt;Learn More&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I picked up this wonderful bit of knowledge from &lt;a href=&quot;https://twitter.com/mmatuzo&quot;&gt;Manuel Matuzović&lt;/a&gt; on his blog post about &lt;a href=&quot;https://www.matuzo.at/blog/2022/specificity/&quot;&gt;CSS Specificity&lt;/a&gt;. You should take a look at it, too.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>SVG Overflow Visible</title>
		<link href="https://leininger.tech/words/svg-overflow-visible/"/>
		<updated>2021-12-23T00:00:00Z</updated>
		<id>https://leininger.tech/words/svg-overflow-visible/</id>
		<content type="html">&lt;p&gt;I did not know that you can could set an SVG to &lt;code&gt;overflow: visible;&lt;/code&gt;. I did not know that by default, SVGs were &lt;code&gt;overflow: hidden;&lt;/code&gt;. I just thought that was how it worked. Only things inside the viewBox could be seen. More to come on this.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Active Element Console Live Expression</title>
		<link href="https://leininger.tech/words/active-element-console-expression/"/>
		<updated>2021-11-12T00:00:00Z</updated>
		<id>https://leininger.tech/words/active-element-console-expression/</id>
		<content type="html">&lt;p&gt;Lately, I&#39;ve been focusing more and more on accessibility. The past few weeks I attended &lt;a href=&quot;https://twitter.com/mmatuzo&quot;&gt;Manuel Matuzović&#39;s&lt;/a&gt; accessibility testing workshop hosted by Smashing Magazine. I learned a lot of gems in that workshop, but the Active Element Live Expression stands out as one of the simplest and most helpful.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: As far as I&#39;m aware, this only works in Chromium browsers.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I didn&#39;t even know that you could add Live Expressions to the Console. Live Expressions run every time something changes in the browsers, and checking the active element (what is focused) is perfect for this!&lt;/p&gt;
&lt;h2 id=&quot;set-up&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/active-element-console-expression/#set-up&quot;&gt;&lt;span&gt;Set Up&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;ldt-list&quot;&gt;
&lt;ol&gt;
&lt;li&gt;Open the console (&lt;code&gt;cmd + option + j&lt;/code&gt; on a mac)&lt;/li&gt;
&lt;li&gt;Click on the eye icon&lt;br /&gt;
&lt;img src=&quot;https://leininger.tech/words/active-element-console-expression/console-eye.jpg&quot; alt=&quot;Console Expression Icon&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;document.activeElement&lt;/code&gt; in the expression field&lt;br /&gt;
&lt;img src=&quot;https://leininger.tech/words/active-element-console-expression/active-element.jpg&quot; alt=&quot;Active Element Example&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h2 id=&quot;that&#39;s-all-there-is-to-it&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/active-element-console-expression/#that&#39;s-all-there-is-to-it&quot;&gt;&lt;span&gt;That&#39;s all there is to it&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now every time your focus updates, this field will tell you what element has the current focus. This trick is a winner. Give it a try.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Search Element in Inspector</title>
		<link href="https://leininger.tech/words/search-element-in-inspector/"/>
		<updated>2021-11-05T00:00:00Z</updated>
		<id>https://leininger.tech/words/search-element-in-inspector/</id>
		<content type="html">&lt;p&gt;The search inside of the &lt;code&gt;Elements&lt;/code&gt; tab in the inspector isn&#39;t very helpful if you&#39;re trying to find specific tags. There is a really simple solution for this, use &lt;code&gt;* tag&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For example, if you&#39;re searching for an &lt;code&gt;h2&lt;/code&gt;, use the search term &lt;code&gt;* h2&lt;/code&gt;. This will pull find all of the elements instead of finding random &lt;code&gt;h2&lt;/code&gt; text in styles or svgs.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Reverse Ordered List</title>
		<link href="https://leininger.tech/words/reverse-ordered-list/"/>
		<updated>2021-10-25T00:00:00Z</updated>
		<id>https://leininger.tech/words/reverse-ordered-list/</id>
		<content type="html">&lt;p&gt;So I&#39;ve got this whole &lt;a href=&quot;https://leininger.tech/lists&quot;&gt;lists&lt;/a&gt; section of the site where I list all of my opinions about things like the best sodas, broadway shows, pizzas in STL, and wives. Spoiler alert the last one is only one item.&lt;/p&gt;
&lt;p&gt;Fast forward to Halloween, and I realized that I needed to add a new list, a list of our family &lt;a href=&quot;https://leininger.tech/lists/halloween&quot;&gt;Halloween Costumes&lt;/a&gt;. This list needed to be grouped by year and starting from the most recent year and going down.&lt;/p&gt;
&lt;p&gt;So there&#39;s the problem: an ordered list, that starts as the &amp;quot;current&amp;quot; year, and counts down.&lt;/p&gt;
&lt;h2 id=&quot;first-attempt:-reversed-attribute&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#first-attempt:-reversed-attribute&quot;&gt;&lt;span&gt;First Attempt: Reversed Attribute&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The first attempt was probably the simpliest. Ordered lists have a few properties that allow you to change their interactions.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ol&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;reversed&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2021&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Star Wars Portmanteaus&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Jurassic Park&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;The Magic School Bus&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Rubber Ducky&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Lobster Fishermen&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Dairy Queen and Burger King&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Brawny Man and Paper Towels&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;result&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#result&quot;&gt;&lt;span&gt;Result&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ol reversed=&quot;&quot; start=&quot;2021&quot; class=&quot;list-inside list-decimal&quot;&gt;
  &lt;li&gt;Star Wars Portmanteaus&lt;/li&gt;
  &lt;li&gt;Jurassic Park&lt;/li&gt;
  &lt;li&gt;The Magic School Bus&lt;/li&gt;
  &lt;li&gt;Rubber Ducky&lt;/li&gt;
  &lt;li&gt;Lobster Fishermen&lt;/li&gt;
  &lt;li&gt;Dairy Queen and Burger King&lt;/li&gt;
  &lt;li&gt;Brawny Man and Paper Towels&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This works, and if all I wanted was a list it would be ideal. That said, for a few reasons, it&#39;s not exactly the end goal for me. First while this does give you good clean semantic markup, it doesn&#39;t give you much of a chance to style the list items, and that&#39;s just happens to be what I did on the &lt;a href=&quot;https://leininger.tech/lists&quot;&gt;/lists&lt;/a&gt; page. So we press on.&lt;/p&gt;
&lt;h2 id=&quot;second-attempt:-set-the-value-in-the-list-item&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#second-attempt:-set-the-value-in-the-list-item&quot;&gt;&lt;span&gt;Second Attempt: Set the Value in the List Item&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Setting the value inside the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; would work in this case, but it has the same issue with being unstyled. Not to mention then I have to keep all of those numbers up-to-date. I&#39;m not looking to put each year in 15 years. I think we can do better, because that&#39;s a lot to manage:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2021&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Star Wars Portmanteaus&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2020&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Jurassic Park&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2019&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;The Magic School Bus&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2018&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Rubber Ducky&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2017&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Lobster Fishermen&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2016&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Dairy Queen and Burger King&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;2015&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Brawny Man and Paper Towels&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;result-1&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#result-1&quot;&gt;&lt;span&gt;Result&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ol class=&quot;list-inside list-decimal&quot;&gt;
  &lt;li value=&quot;2021&quot;&gt;Star Wars Portmanteaus&lt;/li&gt;
  &lt;li value=&quot;2020&quot;&gt;Jurassic Park&lt;/li&gt;
  &lt;li value=&quot;2019&quot;&gt;The Magic School Bus&lt;/li&gt;
  &lt;li value=&quot;2018&quot;&gt;Rubber Ducky&lt;/li&gt;
  &lt;li value=&quot;2017&quot;&gt;Lobster Fishermen&lt;/li&gt;
  &lt;li value=&quot;2016&quot;&gt;Dairy Queen and Burger King&lt;/li&gt;
  &lt;li value=&quot;2015&quot;&gt;Brawny Man and Paper Towels&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;third-attempt:-using-a-custom-counter&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#third-attempt:-using-a-custom-counter&quot;&gt;&lt;span&gt;Third Attempt: Using a Custom Counter&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now we&#39;re talking, styling those &lt;code&gt;::markers&lt;/code&gt; like a boss. This is a little more complicated, but getting those sweet styled lists make designers happy - in this case, I&#39;m the designer.&lt;/p&gt;
&lt;p&gt;In this case, since we normally want the lists to count up, we still want to add the &lt;code&gt;reversed&lt;/code&gt; attribute so we know to count down in this circumstance. In order to keep the starting point dynamic, we also need to set the &lt;code&gt;counter-reset&lt;/code&gt; directly on the &lt;code&gt;ol&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: the starting point for the counter-reset needs to be 1 number lower than the starting number if the list is ascending and 1 number higher if the list is descending. The counter-increment runs on each list item.&lt;/em&gt;&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;ol&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;reversed&lt;/span&gt; &lt;span class=&quot;token special-attr&quot;&gt;&lt;span class=&quot;token attr-name&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token value css language-css&quot;&gt;&lt;span class=&quot;token property&quot;&gt;counter-reset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; list_counter 2022&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Star Wars Portmanteaus&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Jurassic Park&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;The Magic School Bus&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Rubber Ducky&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Lobster Fishermen&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Dairy Queen and Burger King&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Brawny Man and Paper Towels&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;ol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;ol&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;list-style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;counter-reset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; list_counter&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;ol li&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; baseline&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;counter-increment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; list_counter&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;ol[reversed] li&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;counter-increment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; list_counter -1&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;ol li::before&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;list_counter&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--accent&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;theme&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;fontFamily.mono&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-variant-numeric&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; tabular-nums&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.5rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;result-2&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#result-2&quot;&gt;&lt;span&gt;Result&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ol class=&quot;demo-list&quot; reversed=&quot;&quot; style=&quot;counter-reset: list_counter 2022;&quot;&gt;
  &lt;li value=&quot;2021&quot;&gt;Star Wars Portmanteaus&lt;/li&gt;
  &lt;li value=&quot;2020&quot;&gt;Jurassic Park&lt;/li&gt;
  &lt;li value=&quot;2019&quot;&gt;The Magic School Bus&lt;/li&gt;
  &lt;li value=&quot;2018&quot;&gt;Rubber Ducky&lt;/li&gt;
  &lt;li value=&quot;2017&quot;&gt;Lobster Fishermen&lt;/li&gt;
  &lt;li value=&quot;2016&quot;&gt;Dairy Queen and Burger King&lt;/li&gt;
  &lt;li value=&quot;2015&quot;&gt;Brawny Man and Paper Towels&lt;/li&gt;
&lt;/ol&gt;
&lt;style&gt;
ol.demo-list {
  list-style: none;
  counter-reset: list_counter;
}
ol.demo-list li {
  align-items: baseline;
  display: flex;
  counter-increment: list_counter;
}
ol.demo-list[reversed] li {
  counter-increment: list_counter -1;
}
ol.demo-list li::before {
  content: counter(list_counter);
  color: var(--accent);
  font-family: &#39;Cartograph&#39;, mono;
  font-size: 1.5em;
  font-variant-numeric: tabular-nums;
  margin-right: 1rem;
}
&lt;/style&gt;
&lt;p&gt;There we go. A reversed list with custom styles that should work from any starting point. I&#39;m pretty happy with where we ended.&lt;/p&gt;
&lt;h2 id=&quot;helpful-sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/reverse-ordered-list/#helpful-sources&quot;&gt;&lt;span&gt;Helpful Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://css-tricks.com/how-to-reverse-css-custom-counters/&quot;&gt;CSS Tricks&lt;/a&gt;: How to Reverse CSS Custom Counters&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.matuzo.at/blog/reverse-ordered-lists/&quot;&gt;Manuel Matuzovic&lt;/a&gt;: Reverse Ordered Lists&lt;/li&gt;
&lt;/ol&gt;
</content>
	</entry>
	
	<entry>
		<title>No Shadow Screenshot</title>
		<link href="https://leininger.tech/words/no-shadow-screenshot/"/>
		<updated>2021-08-10T00:00:00Z</updated>
		<id>https://leininger.tech/words/no-shadow-screenshot/</id>
		<content type="html">&lt;p&gt;You know what really grinds my gears? When you take a screenshot on a Mac, hit the space bar for the whole app, and the dang screenshot comes with a shadow. I didn&#39;t want the app with its shadow, I just wanted the app window. I&#39;ve known for a long time that you could just hold the &lt;code&gt;option&lt;/code&gt; key and it would remove the shadow. If only there was a way to make it so none of my screenshots had shadows...&lt;/p&gt;
&lt;p&gt;Well, guess what? There is. Here&#39;s how. Open your terminal and put in this command:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;defaults &lt;span class=&quot;token function&quot;&gt;write&lt;/span&gt; com.apple.screencapture disable-shadow &lt;span class=&quot;token parameter variable&quot;&gt;-bool&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;killall&lt;/span&gt; SystemUIServer&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voilà! Take your screenshots without shadows like God meant them to be.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Fast Click</title>
		<link href="https://leininger.tech/words/fast-click/"/>
		<updated>2021-06-18T00:00:00Z</updated>
		<id>https://leininger.tech/words/fast-click/</id>
		<content type="html">&lt;p&gt;By default, when tapping on an element, browsers wait 300ms for a potential double-tap to zoom.&lt;/p&gt;
&lt;p&gt;This can be sped up with a single css declaration:&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token property&quot;&gt;touch-action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; manipulation&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It would be great for links and buttons:&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;a, button &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;touch-action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; manipulation&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using this declaration, browser &lt;em&gt;immediately&lt;/em&gt; responds to taps instead of waiting 300ms for a &lt;em&gt;&amp;quot;potential&amp;quot;&lt;/em&gt; second tap. This is great for buttons and links.&lt;/p&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/fast-click/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://caniuse.com/mdn-css_properties_touch-action_manipulation&quot;&gt;Basically All&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Scaling Text in Figma</title>
		<link href="https://leininger.tech/words/scaling-text-in-figma/"/>
		<updated>2020-11-16T00:00:00Z</updated>
		<id>https://leininger.tech/words/scaling-text-in-figma/</id>
		<content type="html">&lt;p&gt;I have been angry at Figma for a while not for not allowing me to scale type and the bouding box at the same time. This is one of those moments where I was angry thinking they didn&#39;t have a solution instead of looking. One quick google on the google machine later, and &lt;code&gt;k&lt;/code&gt; is my new best friend.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;k&lt;/code&gt; allows you to scale the selected items including fonts. This for me is nice because I can scale to a point that I think works, and then adjust it to my type scape. Figma, thank you for being awesome.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: don&#39;t forget to turn off scale by pressing &lt;code&gt;v&lt;/code&gt;, otherwise you&#39;ll scale things you don&#39;t mean to. The cursor isn&#39;t too obviously different.&lt;/em&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Netlify Functions Query Params</title>
		<link href="https://leininger.tech/words/netlify-functions-query-params/"/>
		<updated>2020-11-14T00:00:00Z</updated>
		<id>https://leininger.tech/words/netlify-functions-query-params/</id>
		<content type="html">&lt;p&gt;To access query parameters in your Netlify Functions, you can access the &lt;code&gt;event.queryStringParameters&lt;/code&gt; object available inside the &lt;code&gt;handler&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;For example if you have an &lt;code&gt;email&lt;/code&gt; query string, you can access it using&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;exports&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;handler&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;event&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; callback&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  event&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;queryStringParameters&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;email&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;//do something with it&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Tailwind PostCSS Config Flag</title>
		<link href="https://leininger.tech/words/tailwind-postcss-config/"/>
		<updated>2020-09-28T00:00:00Z</updated>
		<id>https://leininger.tech/words/tailwind-postcss-config/</id>
		<content type="html">&lt;p&gt;If you use &lt;code&gt;-p&lt;/code&gt; when initializing &lt;a href=&quot;https://tailwindcss.com/&quot;&gt;Tailwind&lt;/a&gt; for your project it will generate a PostCSS config file at the same time.&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# creates both a tailwind.config.js and postcss.config.js&lt;/span&gt;&lt;br /&gt;npx tailwindcss init &lt;span class=&quot;token parameter variable&quot;&gt;-p&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Emulate Focused page</title>
		<link href="https://leininger.tech/words/emulate-focused-page/"/>
		<updated>2020-09-15T00:00:00Z</updated>
		<id>https://leininger.tech/words/emulate-focused-page/</id>
		<content type="html">&lt;p&gt;Ever tried debugging an element that keeps disappearing when it loses focus once you start using devtools?&lt;/p&gt;
&lt;p&gt;Emulate a focused page - you can get it from the [⌘]+[P] Command Menu, or Global Preferences&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Empty Selector</title>
		<link href="https://leininger.tech/words/empty-selector/"/>
		<updated>2020-09-10T00:00:00Z</updated>
		<id>https://leininger.tech/words/empty-selector/</id>
		<content type="html">&lt;p&gt;Use the &lt;code&gt;:empty {}&lt;/code&gt; selector to hide empty paragraphs (often created by users within content management systems)&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;p:empty&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Grayscale Accessibilty Test</title>
		<link href="https://leininger.tech/words/grayscale-accessibilty-test/"/>
		<updated>2020-09-08T00:00:00Z</updated>
		<id>https://leininger.tech/words/grayscale-accessibilty-test/</id>
		<content type="html">&lt;p&gt;It’s important that color is not used as the only visual means of conveying information.&lt;/p&gt;
&lt;p&gt;Add this class to your CSS to switch to grayscale mode and check if your user interface is still comprehensible and visual elements distinguishable.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.a11y-grayscale&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grayscale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;100%&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token important&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;a11y-gray&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;en&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Input Autocomplete</title>
		<link href="https://leininger.tech/words/input-autocomplete/"/>
		<updated>2020-09-07T00:00:00Z</updated>
		<id>https://leininger.tech/words/input-autocomplete/</id>
		<content type="html">&lt;p&gt;Autofill inputs using security codes sent by SMS!&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;autocomplete&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;one-time-code&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/input-autocomplete/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Working on iOS!&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Input Mode</title>
		<link href="https://leininger.tech/words/input-mode/"/>
		<updated>2020-08-21T00:00:00Z</updated>
		<id>https://leininger.tech/words/input-mode/</id>
		<content type="html">&lt;p&gt;Help users by giving them the correct keyboard to use on touch screen devices.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- No virtual keyboard. For when the page&lt;br /&gt;implements its own keyboard input control. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;none&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Standard input keyboard for the user&#39;s current locale. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Fractional numeric input keyboard containing&lt;br /&gt;the digits and decimal separator for the user&#39;s locale --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;decimal&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- Numeric input keyboard, but only requires the&lt;br /&gt;digits 0–9. Devices may or may not show a minus key. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;numeric&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- A telephone keypad input, including the digits 0–9,&lt;br /&gt;the asterisk (*), and the pound (#) key. Inputs that&lt;br /&gt;require a telephone number should typically use&lt;br /&gt;&amp;lt;input type=&quot;tel&quot;&gt;instead. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;tel&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- A virtual keyboard optimized for search input.&lt;br /&gt;For instance, the return/submit key may be labeled&lt;br /&gt;“Search”. Inputs that require a search query should&lt;br /&gt;typically use &amp;lt;input type=&quot;search&quot;&gt; instead. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;search&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- A virtual keyboard optimized for entering email&lt;br /&gt;addresses. Typically includes the @ character as well as&lt;br /&gt;other optimizations. Inputs that require email addresses&lt;br /&gt;should typically use &amp;lt;input type=&quot;email&quot;&gt; instead. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;email&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- A keypad optimized for entering URLs. This&lt;br /&gt;may have the / key more prominent, for example.&lt;br /&gt;Enhanced features could include history access&lt;br /&gt;and so on. Inputs that require a URL should&lt;br /&gt;typically use &amp;lt;input type=&quot;url&quot;&gt; instead. --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;inputmode&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;url&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Fix Bold on Hover Styles</title>
		<link href="https://leininger.tech/words/fix-bold-hover/"/>
		<updated>2020-07-28T00:00:00Z</updated>
		<id>https://leininger.tech/words/fix-bold-hover/</id>
		<content type="html">&lt;p&gt;Add a hidden pseudo element with the same text string but set it to the bold font size&lt;/p&gt;
&lt;p&gt;example: &lt;a href=&quot;https://codepen.io/hexagoncircle/pen/WNrYPLo&quot;&gt;https://codepen.io/hexagoncircle/pen/WNrYPLo&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.menu.fix .menu-link::after &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;attr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data-text&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;attr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data-text&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;visibility&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hidden&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hidden&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;user-select&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;pointer-events&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--bold&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; speech&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Event Listener - Once True</title>
		<link href="https://leininger.tech/words/once-true/"/>
		<updated>2020-07-24T00:00:00Z</updated>
		<id>https://leininger.tech/words/once-true/</id>
		<content type="html">&lt;p&gt;You can add the option &lt;code&gt;{ once: true }&lt;/code&gt; to an event listener to automatically remove it when has been invoked.&lt;/p&gt;
&lt;p&gt;example: &lt;a href=&quot;https://codepen.io/matuzo/pen/wvMOpXp?editors=1010&quot;&gt;https://codepen.io/matuzo/pen/wvMOpXp?editors=1010&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;.always&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;click&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token function&quot;&gt;alert&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;always&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;// after this fires it&#39;s removed from the dom&lt;/span&gt;&lt;br /&gt;document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;.once&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;click&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token function&quot;&gt;alert&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;once&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token literal-property property&quot;&gt;once&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Background Repeat Round</title>
		<link href="https://leininger.tech/words/background-repeat/"/>
		<updated>2020-06-23T00:00:00Z</updated>
		<id>https://leininger.tech/words/background-repeat/</id>
		<content type="html">&lt;p&gt;Background repeat &lt;code&gt;round&lt;/code&gt; and &lt;code&gt;space&lt;/code&gt; repeat background images without clipping the images.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pro Tip: It really helps if your images are square, round stretches in both directions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token property&quot;&gt;background-repeat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; round&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token property&quot;&gt;background-repeat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; space&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p class=&quot;codepen&quot; data-height=&quot;265&quot; data-theme-id=&quot;dark&quot; data-default-tab=&quot;css,result&quot; data-user=&quot;davidleininger&quot; data-slug-hash=&quot;bGpyeGp&quot; style=&quot;height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;&quot; data-pen-title=&quot;Background Repeat Options&quot;&gt;
  &lt;span&gt;See the Pen &lt;a href=&quot;https://codepen.io/davidleininger/pen/bGpyeGp&quot;&gt;
  Background Repeat Options&lt;/a&gt; by David Leininger (&lt;a href=&quot;https://codepen.io/davidleininger&quot;&gt;@davidleininger&lt;/a&gt;)
  on &lt;a href=&quot;https://codepen.io/&quot;&gt;CodePen&lt;/a&gt;.&lt;/span&gt;
&lt;/p&gt;
&lt;script async=&quot;&quot; src=&quot;https://cpwebassets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;
</content>
	</entry>
	
	<entry>
		<title>Lint HTML in CSS</title>
		<link href="https://leininger.tech/words/lint-html-with-css/"/>
		<updated>2020-06-20T00:00:00Z</updated>
		<id>https://leininger.tech/words/lint-html-with-css/</id>
		<content type="html">&lt;p&gt;Linting HTML with CSS is a great tool to help find problematic markup.&lt;/p&gt;
&lt;h3 id=&quot;empty-links&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/lint-html-with-css/#empty-links&quot;&gt;&lt;span&gt;Empty Links&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This selector hunts for links that have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no href&lt;/li&gt;
&lt;li&gt;an empty href&lt;/li&gt;
&lt;li&gt;a &amp;quot;#&amp;quot; href (button perhaps?)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;a:is(:not([href]), [href=&quot;&quot;], [href=&quot;#&quot;])&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;outline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2px dotted red&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;missing-alt-text&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/lint-html-with-css/#missing-alt-text&quot;&gt;&lt;span&gt;Missing Alt Text&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Highlight images missing alt text with:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;img:not([alt])&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;outline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2px dotted red&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>IE 11 Only Styles</title>
		<link href="https://leininger.tech/words/ie11-styles/"/>
		<updated>2020-06-15T00:00:00Z</updated>
		<id>https://leininger.tech/words/ie11-styles/</id>
		<content type="html">&lt;p&gt;IE10 and IE11 specific style media query.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; all &lt;span class=&quot;token keyword&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;-ms-high-contrast&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;-ms-high-contrast&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; active&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;/* IE10+ CSS styles go here... */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Inset 0</title>
		<link href="https://leininger.tech/words/inset-0/"/>
		<updated>2020-05-19T00:00:00Z</updated>
		<id>https://leininger.tech/words/inset-0/</id>
		<content type="html">&lt;p&gt;The &amp;quot;inset&amp;quot; logical property gem is shorthand for all the sides of your box.&lt;/p&gt;
&lt;p&gt;This sets all sides to 0, snapping each corner to the corner of it&#39;s parent.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.full&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; absolute&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;inset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/inset-0/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://caniuse.com/?search=inset&quot;&gt;Pretty green&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Hover Media Quesries</title>
		<link href="https://leininger.tech/words/hover-media-queries/"/>
		<updated>2020-04-21T00:00:00Z</updated>
		<id>https://leininger.tech/words/hover-media-queries/</id>
		<content type="html">&lt;p&gt;Style if mobile&lt;br /&gt;
Style if desktop&lt;br /&gt;
Style if stylus&lt;br /&gt;
Style if controller&lt;br /&gt;
Combine together&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// laptop/desktop styles&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hover&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;// smartphones/touchscreens&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; coarse&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;// device with stylus&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; fine&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;// Wii/Kinect/etc&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hover&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; coarse&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;// mouse/touchpad&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hover&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; fine&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/hover-media-queries/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://t.co/ig9ONaQJAI?amp=1&quot;&gt;Pretty Darn Good&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Scroll Margins</title>
		<link href="https://leininger.tech/words/scroll-margins/"/>
		<updated>2020-04-13T00:00:00Z</updated>
		<id>https://leininger.tech/words/scroll-margins/</id>
		<content type="html">&lt;p&gt;Prevent anchor links from scrolling behind a sticky header.&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;#anchor &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;	&lt;span class=&quot;token property&quot;&gt;scroll-margin-top&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/scroll-margins/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The scroll-margin-top property works in all modern browsers, but has no IE support.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Counter</title>
		<link href="https://leininger.tech/words/counter/"/>
		<updated>2020-04-02T00:00:00Z</updated>
		<id>https://leininger.tech/words/counter/</id>
		<content type="html">&lt;p&gt;CSS has built-in operators to count the number of elements rendered.&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;ol &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;/* Give our counter a name, any name will do */&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;counter-reset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ordered-list&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;ol li &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;/* Indicate that we should increment the count&lt;br /&gt;     for every list item */&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;counter-increment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; counts&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;list-style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;ol li:before &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;/* Use the count in the :before pseudoelement */&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;counts&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;. &#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; inline-block&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; deeppink&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;Pacifico&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; cursive&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 32px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/counter/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;All&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Placeholder Shown</title>
		<link href="https://leininger.tech/words/placeholder-shown/"/>
		<updated>2020-03-30T00:00:00Z</updated>
		<id>https://leininger.tech/words/placeholder-shown/</id>
		<content type="html">&lt;p&gt;Change the input style and apperance if the the placeholder is visible.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://codepen.io/argyleink/pen/dyoaabK&quot;&gt;:placeholder-shown&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;input &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;// styles&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;input:placeholder-shown &lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token comment&quot;&gt;// specific styles if placeholder is shown&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/placeholder-shown/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://caniuse.com/?search=placeholder-shown&quot;&gt;Great - Partial IE&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Attribute Selectors</title>
		<link href="https://leininger.tech/words/attribute-selectors/"/>
		<updated>2020-01-30T00:00:00Z</updated>
		<id>https://leininger.tech/words/attribute-selectors/</id>
		<content type="html">&lt;p&gt;It&#39;s always funny when people say to me, &amp;quot;I hate CSS.&amp;quot; Sometimes I ask why, but most of the time I just move on disgusted. CSS is fun and I love learning more and more and more about it. I think one of the reasons people don&#39;t CSS is because there is so much to it, and so much nuance. It&#39;s similar to the english language: there, they&#39;re, their.&lt;/p&gt;
&lt;p&gt;One example of that nuance is Attribute Selectors. While pretty much everyone know you and use classes &lt;code&gt;.item&lt;/code&gt;, ids &lt;code&gt;#logo&lt;/code&gt;, and tags &lt;code&gt;div&lt;/code&gt;, not everyone knows there are other ways to select elements. Attribute selectors allow you to select an item if it has a certain attribute or that that attribute has a certain value. Attribute selectors can give you a special treatment if a linke has &lt;code&gt;target=&amp;quot;_blank&amp;quot;&lt;/code&gt; to let a user know they are leaving your site. They can change a style if the file name you&#39;re linking to ends in &lt;code&gt;.pdf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Attribute selectors are very powerful, and I often forget about them So here are the things I&#39;ve learned and found in different places, put together, and referenced so I&#39;d have a simple place to come back to. Because really this &amp;quot;blog&amp;quot; is for me anyways.&lt;/p&gt;
&lt;h2 id=&quot;eight-different-types-of-css-attribute-selectors&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/attribute-selectors/#eight-different-types-of-css-attribute-selectors&quot;&gt;&lt;span&gt;Eight different types of CSS attribute selectors&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute exists on the element */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute has a specific value of cool */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value=&#39;cool&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute value contains the word cool somewhere in it */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value*=&#39;cool&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute value contains the word cool in a space-separated list */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value~=&#39;cool&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute value starts with the word cool */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value^=&#39;cool&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute value starts with cool in a dash-separated list */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value|=&#39;cool&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute value ends with the word cool */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value$=&#39;cool&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;token comment&quot;&gt;/* This does not have an attribute with the value of cool */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;:not([value=&#39;cool&#39;])&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;The above code is sniped from &lt;a href=&quot;https://gist.github.com/emmabostian/ed933bc7f9711acdc565f42f1b159407&quot;&gt;Emma Bostian&#39;s gist&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;multiple-selectors&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/attribute-selectors/#multiple-selectors&quot;&gt;&lt;span&gt;Multiple Selectors&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;One thing to note is that these attribute selectors can be chained to be more specific or require more matches.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* This attribute has a specific value of cool and a name of david */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[value=&#39;cool&#39;][name=&#39;david&#39;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;case-insensitve-attribute-selectors&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/attribute-selectors/#case-insensitve-attribute-selectors&quot;&gt;&lt;span&gt;Case-Insensitve Attribute Selectors&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By default, the strings inside attribute selectors are case sensitive. Simply adding &lt;code&gt;i&lt;/code&gt; to the end of the attribute selector will allow you to select the strings regardless of case. That seems super helpful in a large group project.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Will match&lt;br /&gt;&amp;lt;div data-state=&quot;open&quot;&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;div data-state=&quot;Open&quot;&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;div data-state=&quot;OPEN&quot;&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;div data-state=&quot;oPeN&quot;&gt;&amp;lt;/div&gt;&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token selector&quot;&gt;[data-state=&quot;open&quot; i]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;The above code is sniped from &lt;a href=&quot;https://css-tricks.com/attribute-selectors/#case-insensitve-attribute-selectors&quot;&gt;CSS Tricks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;specificity-(specificity)&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/attribute-selectors/#specificity-(specificity)&quot;&gt;&lt;span&gt;Specificity (spec·i·fic·i·ty)&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Attribute selectors are the same weight in specificity as a class. Specificity seems complicated, but it&#39;s pretty simple when you see it broken down. There are three different levels of specificity: &lt;code&gt;id, classes, tags&lt;/code&gt;. It&#39;s important to note that these are separate values and aren&#39;t numbers. This means that using 10 classes does not equal 1 id, and 11 classes isn&#39;t more specific than an id.&lt;/p&gt;
&lt;p&gt;Looking at an example using this understand: &lt;code&gt;#page a.link[href$=&#39;.pdf&#39;]&lt;/code&gt; would equate to &lt;code&gt;1, 2, 1&lt;/code&gt;. It does not equal 121, but rather three distinct levels, where each level has it&#39;s own specificity. For example &lt;code&gt;#page.home a.link[href$=&#39;.pdf&#39;]&lt;/code&gt; would equate to &lt;code&gt;1, 3, 1&lt;/code&gt; and be more specific than &lt;code&gt;#page a.link[href$=&#39;.pdf&#39;]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;And there you have it, Attribute Selectors. They are are super powerful and super under utilized. I&#39;m hoping to use them more in my work.&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Place Content</title>
		<link href="https://leininger.tech/words/place-content/"/>
		<updated>2020-01-22T00:00:00Z</updated>
		<id>https://leininger.tech/words/place-content/</id>
		<content type="html">&lt;p&gt;Simplify flexbox positioning with using one property instead of two.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.item&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;place-content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&#39;s also works with grid.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.item&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; grid&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;place-content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;support&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://leininger.tech/words/place-content/#support&quot;&gt;&lt;span&gt;Support&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Not IE&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Truncate Multi-line Text</title>
		<link href="https://leininger.tech/words/truncate-text/"/>
		<updated>2019-09-20T00:00:00Z</updated>
		<id>https://leininger.tech/words/truncate-text/</id>
		<content type="html">&lt;p&gt;This exact set of properties now actually works to do multiple-line truncation in a fairly well supported way.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.box p&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; -webkit-box&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;-webkit-line-clamp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/* # of lines to truncate */&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;-webkit-box-orientation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; vertical&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; hidden&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Overscroll Contain</title>
		<link href="https://leininger.tech/words/overflow-scroll/"/>
		<updated>2019-09-20T00:00:00Z</updated>
		<id>https://leininger.tech/words/overflow-scroll/</id>
		<content type="html">&lt;p&gt;Disable parent scrolling when child container (like sidebar) reaches scroll end.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.child&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;token property&quot;&gt;overscroll-behavior&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; contain&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	
	<entry>
		<title>Save Snippets in Dev Tools</title>
		<link href="https://leininger.tech/words/dev-tools/"/>
		<updated>2019-01-14T00:00:00Z</updated>
		<id>https://leininger.tech/words/dev-tools/</id>
		<content type="html">&lt;p&gt;You can save JavaScript snippets in Chrome Dev Tools for future use.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=N4zO_E2xt94&quot;&gt;https://www.youtube.com/watch?v=N4zO_E2xt94&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
</feed>
