<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Buttons on Socle</title><link>https://socle.uncinq.dev/docs/css-components/buttons/</link><description>Recent content in Buttons on Socle</description><generator>Hugo</generator><language>en</language><atom:link href="https://socle.uncinq.dev/docs/css-components/buttons/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview</title><link>https://socle.uncinq.dev/docs/css-components/buttons/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/overview/</guid><description>&lt;p&gt;Eight files: one base class, and seven single-purpose buttons.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Page&lt;/th&gt;
 &lt;th&gt;Class&lt;/th&gt;
 &lt;th&gt;Needs &lt;code&gt;.btn&lt;/code&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn/"&gt;Button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-close/"&gt;Close button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-close&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-menu/"&gt;Menu button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-menu&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-search/"&gt;Search button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-search&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-filter/"&gt;Filter button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-filter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-share/"&gt;Share button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-share&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-toc/"&gt;Table of contents button&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-toc&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="../btn-toggle-video/"&gt;Video toggle&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.btn-toggle-video&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="two-kinds-of-specialised-button"&gt;Two kinds of specialised button&lt;/h2&gt;
&lt;p&gt;Read the third column before using one, because the two kinds behave differently when the base class is missing.&lt;/p&gt;</description></item><item><title>Button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn/</guid><description>&lt;p&gt;&lt;code&gt;.btn&lt;/code&gt; is the base class. It works on &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&lt;/code&gt;, and reads &lt;code&gt;--btn-*&lt;/code&gt; from &lt;a href="../../../component-tokens/reference/"&gt;@uncinq/component-tokens&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn&amp;#34;&lt;/span&gt;&amp;gt;Send&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;a&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn btn-secondary&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;href&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;/contact&amp;#34;&lt;/span&gt;&amp;gt;Contact&amp;lt;/&lt;span style="color:#f92672"&gt;a&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Variants compose freely: &lt;code&gt;class=&amp;quot;btn btn-danger btn-sm btn-ghost&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="colour-variants"&gt;Colour variants&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Class&lt;/th&gt;
 &lt;th&gt;Intent&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-primary&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Primary action&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-secondary&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Secondary action&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-brand&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Brand-coloured&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-neutral&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Neutral emphasis&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-dark&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Dark surface&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-light&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Light surface&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-success&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Confirmation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-danger&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Destructive action&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-warning&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Warning&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.btn-info&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Informational&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Each sets its background, border and text colour, with their hover values.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#a6e22e"&gt;btn-danger&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --btn-color-background: &lt;span style="color:#a6e22e"&gt;var&lt;/span&gt;(&lt;span style="color:#f92672"&gt;--&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;danger);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --btn-color-background-hover: &lt;span style="color:#a6e22e"&gt;var&lt;/span&gt;(&lt;span style="color:#f92672"&gt;--&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;danger&lt;span style="color:#f92672"&gt;-&lt;/span&gt;hover);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --btn-color-border: &lt;span style="color:#a6e22e"&gt;var&lt;/span&gt;(&lt;span style="color:#f92672"&gt;--&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;danger);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --btn-color-border-hover: &lt;span style="color:#a6e22e"&gt;var&lt;/span&gt;(&lt;span style="color:#f92672"&gt;--&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;danger&lt;span style="color:#f92672"&gt;-&lt;/span&gt;hover);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --btn-color-text: &lt;span style="color:#a6e22e"&gt;var&lt;/span&gt;(&lt;span style="color:#f92672"&gt;--&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;on&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;danger);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --btn-color-text-hover: &lt;span style="color:#a6e22e"&gt;var&lt;/span&gt;(&lt;span style="color:#f92672"&gt;--&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;color&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;on&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;danger);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The text colour always comes from the matching &lt;code&gt;--color-on-*&lt;/code&gt; semantic token, so contrast survives a change to the underlying colour. That pairing is the reason to rebrand by redefining &lt;code&gt;--color-brand&lt;/code&gt; rather than &lt;code&gt;--btn-color-background&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Close button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-close/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-close/</guid><description>&lt;p&gt;A close control. It is &lt;strong&gt;self-contained&lt;/strong&gt;: &lt;code&gt;.btn&lt;/code&gt; is not required.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn-close&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Close&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Its main use is the header of a &lt;a href="../../overlays/panel/"&gt;panel&lt;/a&gt;, where it usually carries the &lt;code&gt;.js-dialog-close&lt;/code&gt; hook as well:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;div&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;p&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;title&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;contactLabel&amp;#34;&lt;/span&gt;&amp;gt;Contact&amp;lt;/&lt;span style="color:#f92672"&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn-close js-dialog-close&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Close&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;/&lt;span style="color:#f92672"&gt;div&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="why-it-stands-alone"&gt;Why it stands alone&lt;/h2&gt;
&lt;p&gt;Every property is declared twice over, with &lt;code&gt;--btn-close-*&lt;/code&gt; falling back to the matching &lt;code&gt;--btn-*&lt;/code&gt; token:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;background-color&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-close-color-background&lt;/span&gt;&lt;span style="color:#f92672"&gt;,&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-control-color-background&lt;/span&gt;&lt;span style="color:#f92672"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;border-radius&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-close-border-radius&lt;/span&gt;&lt;span style="color:#f92672"&gt;,&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-border-radius&lt;/span&gt;&lt;span style="color:#f92672"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;font-size&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-close-font-size&lt;/span&gt;&lt;span style="color:#f92672"&gt;,&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-font-size&lt;/span&gt;&lt;span style="color:#f92672"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So it looks like the rest of the button family without inheriting from it, and a single &lt;code&gt;--btn-close-*&lt;/code&gt; override retargets it alone. Its default palette is &lt;code&gt;--btn-control-*&lt;/code&gt;, the same quiet colours as &lt;a href="../btn/#style-variants"&gt;&lt;code&gt;.btn-control&lt;/code&gt;&lt;/a&gt;, which is what keeps it from competing with the panel&amp;rsquo;s real actions.&lt;/p&gt;</description></item><item><title>Menu button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-menu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-menu/</guid><description>&lt;p&gt;A menu toggle, typically the burger control in a header. Like &lt;a href="../btn-close/"&gt;&lt;code&gt;.btn-close&lt;/code&gt;&lt;/a&gt;, it is &lt;strong&gt;self-contained&lt;/strong&gt;: &lt;code&gt;.btn&lt;/code&gt; is not required.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn-menu js-dialog-toggle&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;data-target&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;#menu&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Menu&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It is almost always the trigger for a &lt;a href="../../overlays/drawer/"&gt;drawer&lt;/a&gt;, which is why it usually carries &lt;code&gt;.js-dialog-toggle&lt;/code&gt; and a &lt;code&gt;data-target&lt;/code&gt; pointing at the panel&amp;rsquo;s &lt;code&gt;id&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="same-construction-as-the-close-button"&gt;Same construction as the close button&lt;/h2&gt;
&lt;p&gt;Every property falls back from &lt;code&gt;--btn-menu-*&lt;/code&gt; to the matching &lt;code&gt;--btn-*&lt;/code&gt; token, and the default palette is &lt;code&gt;--btn-control-*&lt;/code&gt;. See &lt;a href="../btn-close/#why-it-stands-alone"&gt;&lt;code&gt;.btn-close&lt;/code&gt;&lt;/a&gt; for the full explanation, which applies here unchanged.&lt;/p&gt;</description></item><item><title>Search button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-search/</guid><description>&lt;p&gt;A search control. &lt;strong&gt;It requires &lt;code&gt;.btn&lt;/code&gt;&lt;/strong&gt;: on its own it is nothing but a colour set and an icon.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn btn-search js-dialog-toggle&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;data-target&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;#search&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Search&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="what-it-declares"&gt;What it declares&lt;/h2&gt;
&lt;p&gt;Two things, and nothing else.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;--btn-color-*&lt;/code&gt; set is retargeted at the control palette, with a per-button escape hatch in front of it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;--btn-color-background&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-search-color-background&lt;/span&gt;&lt;span style="color:#f92672"&gt;,&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-control-color-background&lt;/span&gt;&lt;span style="color:#f92672"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;--btn-color-text&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-search-color-text&lt;/span&gt;&lt;span style="color:#f92672"&gt;,&lt;/span&gt; &lt;span style="color:#f92672"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#f92672"&gt;--btn-control-color-text&lt;/span&gt;&lt;span style="color:#f92672"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Override &lt;code&gt;--btn-search-color-*&lt;/code&gt; to restyle every search button, or &lt;code&gt;--btn-color-*&lt;/code&gt; directly on one instance.&lt;/p&gt;
&lt;p&gt;And the glyph, masked from &lt;code&gt;--icon-search&lt;/code&gt; on &lt;code&gt;::before&lt;/code&gt;, sized by &lt;code&gt;--btn-search-icon-size&lt;/code&gt; falling back to &lt;code&gt;--icon-size&lt;/code&gt;, which &lt;code&gt;.btn&lt;/code&gt; sets to its own font size.&lt;/p&gt;</description></item><item><title>Filter button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-filter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-filter/</guid><description>&lt;p&gt;The control that opens a filters panel. &lt;strong&gt;It requires &lt;code&gt;.btn&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn btn-filter panel-trigger-md js-dialog-toggle&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;data-target&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;#filters&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Filters&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Like &lt;a href="../btn-search/"&gt;&lt;code&gt;.btn-search&lt;/code&gt;&lt;/a&gt;, it declares only a &lt;code&gt;--btn-color-*&lt;/code&gt; set pointed at the control palette, with &lt;code&gt;--btn-filter-color-*&lt;/code&gt; in front of it as the override hook, and an icon masked from &lt;code&gt;--icon-filter&lt;/code&gt;. Everything else comes from &lt;code&gt;.btn&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="it-usually-needs-a-panel-trigger-"&gt;It usually needs a &lt;code&gt;.panel-trigger-*&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;A filters panel is the textbook case for &lt;a href="../../overlays/panel/#inline-variants"&gt;&lt;code&gt;.panel-inline-*&lt;/code&gt;&lt;/a&gt;: a drawer on mobile, a sidebar column on desktop. Once the panel is a column there is nothing left to open, so the button has to go with it.&lt;/p&gt;</description></item><item><title>Share button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-share/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-share/</guid><description>&lt;p&gt;A share control. &lt;strong&gt;It requires &lt;code&gt;.btn&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn btn-share&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Share&amp;#34;&lt;/span&gt;&amp;gt;Share&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Construction is identical to &lt;a href="../btn-search/"&gt;&lt;code&gt;.btn-search&lt;/code&gt;&lt;/a&gt;: a &lt;code&gt;--btn-color-*&lt;/code&gt; set pointed at the control palette, with &lt;code&gt;--btn-share-color-*&lt;/code&gt; as the per-variant override, and the glyph masked from &lt;code&gt;--icon-share&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="it-ships-no-behaviour"&gt;It ships no behaviour&lt;/h2&gt;
&lt;p&gt;The class is presentation only. Whether the button calls &lt;code&gt;navigator.share()&lt;/code&gt;, copies a URL to the clipboard or opens a &lt;a href="../../overlays/dropdown/"&gt;dropdown&lt;/a&gt; of destinations is entirely up to your script.&lt;/p&gt;
&lt;p&gt;If it opens a menu, the dropdown contract applies: the trigger needs &lt;code&gt;.dropdown-toggle&lt;/code&gt; and &lt;code&gt;.js-dropdown-toggle&lt;/code&gt;, and its next element sibling must be the &lt;code&gt;.dropdown-menu&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Table of contents button</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-toc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-toc/</guid><description>&lt;p&gt;The control that opens a table of contents. &lt;strong&gt;It requires &lt;code&gt;.btn&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn btn-toc panel-trigger-lg js-dialog-toggle&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;data-target&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;#toc&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Table of contents&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Construction is identical to &lt;a href="../btn-search/"&gt;&lt;code&gt;.btn-search&lt;/code&gt;&lt;/a&gt;: a &lt;code&gt;--btn-color-*&lt;/code&gt; set pointed at the control palette, with &lt;code&gt;--btn-toc-color-*&lt;/code&gt; as the per-variant override, and the glyph masked from &lt;code&gt;--icon-toc&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="it-behaves-like-the-filter-button"&gt;It behaves like the filter button&lt;/h2&gt;
&lt;p&gt;A table of contents follows the same responsive pattern as a filters panel: a drawer on small screens, a sticky column on large ones. Pair the panel&amp;rsquo;s &lt;a href="../../overlays/panel/#inline-variants"&gt;&lt;code&gt;.panel-inline-*&lt;/code&gt;&lt;/a&gt; with the matching &lt;code&gt;.panel-trigger-*&lt;/code&gt; on this button, or you keep a button that opens nothing at desktop width.&lt;/p&gt;</description></item><item><title>Video toggle</title><link>https://socle.uncinq.dev/docs/css-components/buttons/btn-toggle-video/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://socle.uncinq.dev/docs/css-components/buttons/btn-toggle-video/</guid><description>&lt;p&gt;A play and pause control overlaid on a video. &lt;strong&gt;It requires &lt;code&gt;.btn&lt;/code&gt;&lt;/strong&gt;, and it is the one specialised button that ships no icon of its own.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;div&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;video&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;video&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;autoplay&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;muted&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loop&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;playsinline&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;video&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;button&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;btn btn-toggle-video is-playing&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;aria-label&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Pause&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;span&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;icon-pause&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;span&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#f92672"&gt;span&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;icon-play&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style="color:#f92672"&gt;span&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;/&lt;span style="color:#f92672"&gt;button&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;/&lt;span style="color:#f92672"&gt;div&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="why-it-exists"&gt;Why it exists&lt;/h2&gt;
&lt;p&gt;A video that autoplays without native controls must be pausable to meet WCAG. This button is that pause control. If your video carries &lt;code&gt;controls&lt;/code&gt;, you do not need it.&lt;/p&gt;</description></item></channel></rss>