<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Bestax-Bulma Blog</title>
        <link>https://bestax.io/blog</link>
        <description>Bestax-Bulma Blog</description>
        <lastBuildDate>Tue, 13 Jan 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Introducing Extra Components: Advanced UI & Form Controls]]></title>
            <link>https://bestax.io/blog/extra-components</link>
            <guid>https://bestax.io/blog/extra-components</guid>
            <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We're excited to announce a major addition to bestax-bulma: Extra Components. This release adds 15 new components that extend the core library with advanced UI controls and form inputs.]]></description>
            <content:encoded><![CDATA[<p>We're excited to announce a major addition to bestax-bulma: <strong>Extra Components</strong>. This release adds 15 new components that extend the core library with advanced UI controls and form inputs.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="whats-new">What's New<a href="https://bestax.io/blog/extra-components#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="ui-components-8">UI Components (8)<a href="https://bestax.io/blog/extra-components#ui-components-8" class="hash-link" aria-label="Direct link to UI Components (8)" title="Direct link to UI Components (8)" translate="no">​</a></h3>
<table><thead><tr><th>Component</th><th>Description</th></tr></thead><tbody><tr><td><strong>Loading</strong></td><td>Full-page or container loading overlay with spinner</td></tr><tr><td><strong>Collapse</strong></td><td>Expandable/collapsible content panels with animation</td></tr><tr><td><strong>Tooltip</strong></td><td>Hover tooltips for displaying helpful information</td></tr><tr><td><strong>Steps</strong></td><td>Multi-step progress indicator for wizard flows</td></tr><tr><td><strong>Sidebar</strong></td><td>Slide-out navigation panel from left or right</td></tr><tr><td><strong>Toast</strong></td><td>Brief notification messages with auto-dismiss and action buttons</td></tr><tr><td><strong>Dialog</strong></td><td>Confirmation and alert dialogs</td></tr><tr><td><strong>Carousel</strong></td><td>Image/content slider with navigation</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="form-components-6">Form Components (6)<a href="https://bestax.io/blog/extra-components#form-components-6" class="hash-link" aria-label="Direct link to Form Components (6)" title="Direct link to Form Components (6)" translate="no">​</a></h3>
<table><thead><tr><th>Component</th><th>Description</th></tr></thead><tbody><tr><td><strong>Switch</strong></td><td>Toggle switch for on/off states</td></tr><tr><td><strong>Slider</strong></td><td>Range slider for value selection</td></tr><tr><td><strong>Numberinput</strong></td><td>Number input with +/- buttons</td></tr><tr><td><strong>Rate</strong></td><td>Star/icon-based rating component</td></tr><tr><td><strong>Autocomplete</strong></td><td>Input with dropdown suggestions</td></tr><tr><td><strong>Taginput</strong></td><td>Tag/chip input for multiple values</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="quick-start">Quick Start<a href="https://bestax.io/blog/extra-components#quick-start" class="hash-link" aria-label="Direct link to Quick Start" title="Direct link to Quick Start" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="installation">Installation<a href="https://bestax.io/blog/extra-components#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no">​</a></h3>
<p>Extra components are included in the main package:</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm install @allxsmith/bestax-bulma</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="css-setup">CSS Setup<a href="https://bestax.io/blog/extra-components#css-setup" class="hash-link" aria-label="Direct link to CSS Setup" title="Direct link to CSS Setup" translate="no">​</a></h3>
<p>Import the extras CSS after Bulma:</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'bulma/css/bulma.min.css'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@allxsmith/bestax-bulma/dist/extras.css'</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="basic-usage">Basic Usage<a href="https://bestax.io/blog/extra-components#basic-usage" class="hash-link" aria-label="Direct link to Basic Usage" title="Direct link to Basic Usage" translate="no">​</a></h3>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Switch</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Slider</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Toast</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Steps</span><span class="token imports"> </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="feature-highlights">Feature Highlights<a href="https://bestax.io/blog/extra-components#feature-highlights" class="hash-link" aria-label="Direct link to Feature Highlights" title="Direct link to Feature Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="programmatic-notifications">Programmatic Notifications<a href="https://bestax.io/blog/extra-components#programmatic-notifications" class="hash-link" aria-label="Direct link to Programmatic Notifications" title="Direct link to Programmatic Notifications" translate="no">​</a></h3>
<p>Toast and Dialog provide programmatic APIs for triggering notifications from anywhere:</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> toast</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> dialog </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Success toast</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">toast</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">success</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'Changes saved!'</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Toast with undo action</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">toast</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">show</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">message</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Item deleted'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">actionText</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Undo'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">actionType</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'info'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token function-variable function" style="color:#d73a49">onAction</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">restoreItem</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Confirmation dialog</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> confirmed </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:#00009f">await</span><span class="token plain"> dialog</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">confirm</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">title</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Delete?'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">message</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'This cannot be undone.'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token literal-property property" style="color:#36acaa">type</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'danger'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="controlled--uncontrolled-modes">Controlled &amp; Uncontrolled Modes<a href="https://bestax.io/blog/extra-components#controlled--uncontrolled-modes" class="hash-link" aria-label="Direct link to Controlled &amp; Uncontrolled Modes" title="Direct link to Controlled &amp; Uncontrolled Modes" translate="no">​</a></h3>
<p>All form components support both patterns:</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Controlled</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">value</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> setValue</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">useState</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">50</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Slider</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">value</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:#393A34">=</span><span class="token tag script language-javascript punctuation" style="color:#393A34">{</span><span class="token tag script language-javascript" style="color:#00009f">value</span><span class="token tag script language-javascript punctuation" style="color:#393A34">}</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">onChange</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:#393A34">=</span><span class="token tag script language-javascript punctuation" style="color:#393A34">{</span><span class="token tag script language-javascript" style="color:#00009f">setValue</span><span class="token tag script language-javascript punctuation" style="color:#393A34">}</span><span class="token tag" style="color:#00009f"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Uncontrolled</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Slider</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">defaultValue</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:#393A34">=</span><span class="token tag script language-javascript punctuation" style="color:#393A34">{</span><span class="token tag script language-javascript number" style="color:#36acaa">50</span><span class="token tag script language-javascript punctuation" style="color:#393A34">}</span><span class="token tag" style="color:#00009f"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="full-accessibility">Full Accessibility<a href="https://bestax.io/blog/extra-components#full-accessibility" class="hash-link" aria-label="Direct link to Full Accessibility" title="Direct link to Full Accessibility" translate="no">​</a></h3>
<p>Every component includes:</p>
<ul>
<li class="">Proper ARIA attributes</li>
<li class="">Keyboard navigation</li>
<li class="">Screen reader support</li>
<li class="">Focus management</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="bulma-helper-props">Bulma Helper Props<a href="https://bestax.io/blog/extra-components#bulma-helper-props" class="hash-link" aria-label="Direct link to Bulma Helper Props" title="Direct link to Bulma Helper Props" translate="no">​</a></h3>
<p>All components support Bulma's helper props system:</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Switch</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">color</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">success</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">isRounded</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  Dark Mode</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Switch</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Steps</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">color</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">size</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">medium</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">  ...</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Steps</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="interactive-examples">Interactive Examples<a href="https://bestax.io/blog/extra-components#interactive-examples" class="hash-link" aria-label="Direct link to Interactive Examples" title="Direct link to Interactive Examples" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="switch">Switch<a href="https://bestax.io/blog/extra-components#switch" class="hash-link" aria-label="Direct link to Switch" title="Direct link to Switch" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">SwitchDemo</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">enabled</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setEnabled</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token maybe-class-name">React</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token boolean" style="color:rgb(255, 88, 116)">false</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Switch</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">checked</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">enabled</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onChange</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">e </span><span class="token tag script language-javascript arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript function" style="color:rgb(130, 170, 255)">setEnabled</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">e</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token tag script language-javascript property-access" style="color:rgb(127, 219, 202)">target</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token tag script language-javascript property-access" style="color:rgb(127, 219, 202)">checked</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">success</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">isRounded</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      Notifications: </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">enabled </span><span class="token operator" style="color:rgb(127, 219, 202)">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'On'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'Off'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Switch</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="slider">Slider<a href="https://bestax.io/blog/extra-components#slider" class="hash-link" aria-label="Direct link to Slider" title="Direct link to Slider" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">SliderDemo</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">volume</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setVolume</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token maybe-class-name">React</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token number" style="color:rgb(247, 140, 108)">50</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">div</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Slider</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">        </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">value</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">volume</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">        </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onChange</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">setVolume</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">        </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">showOutput</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">        </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">        </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">isRounded</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">div</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="steps">Steps<a href="https://bestax.io/blog/extra-components#steps" class="hash-link" aria-label="Direct link to Steps" title="Direct link to Steps" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">StepsDemo</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">step</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setStep</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token maybe-class-name">React</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token number" style="color:rgb(247, 140, 108)">1</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Steps</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">value</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">step</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">items</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">        </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> label</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript string" style="color:rgb(173, 219, 103)">'Cart'</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> clickable</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript boolean" style="color:rgb(255, 88, 116)">true</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">        </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> label</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript string" style="color:rgb(173, 219, 103)">'Shipping'</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> clickable</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript boolean" style="color:rgb(255, 88, 116)">true</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">        </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> label</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript string" style="color:rgb(173, 219, 103)">'Payment'</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> clickable</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript boolean" style="color:rgb(255, 88, 116)">true</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">        </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> label</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript string" style="color:rgb(173, 219, 103)">'Complete'</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> clickable</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">:</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript boolean" style="color:rgb(255, 88, 116)">true</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">      </span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onStepClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">setStep</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">success</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="documentation">Documentation<a href="https://bestax.io/blog/extra-components#documentation" class="hash-link" aria-label="Direct link to Documentation" title="Direct link to Documentation" translate="no">​</a></h2>
<p>For complete documentation and more examples:</p>
<ul>
<li class=""><a class="" href="https://bestax.io/docs/guides/getting-started/installation">Installation</a> - Setup instructions (extras are bundled into <code>bestax.css</code>)</li>
<li class=""><a class="" href="https://bestax.io/docs/guides/library/components">UI Components</a> - Toast, Dialog, Steps, etc.</li>
<li class=""><a class="" href="https://bestax.io/docs/guides/library/form">Form Components</a> - Switch, Slider, Rate, etc.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="whats-next">What's Next<a href="https://bestax.io/blog/extra-components#whats-next" class="hash-link" aria-label="Direct link to What's Next" title="Direct link to What's Next" translate="no">​</a></h2>
<p>We're continuing to expand bestax-bulma with more components and features. Coming soon:</p>
<ul>
<li class="">DateInput - Calendar date selection</li>
<li class="">TimeInput - Time selection dropdown</li>
<li class="">Colorpicker - Color selection with presets</li>
</ul>
<p>Stay tuned for more updates!</p>]]></content:encoded>
            <category>release</category>
            <category>components</category>
            <category>forms</category>
            <category>bulma</category>
        </item>
        <item>
            <title><![CDATA[New HTML Element Wrappers]]></title>
            <link>https://bestax.io/blog/html-element-wrappers</link>
            <guid>https://bestax.io/blog/html-element-wrappers</guid>
            <pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[We've added 12 new HTML element wrapper components that bring Bulma's helper props to everyday HTML elements like links, paragraphs, lists, and code blocks.]]></description>
            <content:encoded><![CDATA[<p>We've added 12 new HTML element wrapper components that bring Bulma's helper props to everyday HTML elements like links, paragraphs, lists, and code blocks.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="why">Why?<a href="https://bestax.io/blog/html-element-wrappers#why" class="hash-link" aria-label="Direct link to Why?" title="Direct link to Why?" translate="no">​</a></h2>
<p>Previously, styling basic HTML elements required manual class management. Now you get full Bulma helper prop support on semantic HTML elements:</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Before: manual classes</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">a</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">href</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">#</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">has-text-primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Link</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">a</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// After: props-based styling</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Link</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">href</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">#</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">textColor</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Link</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Link</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Key Benefit</div><div class="admonitionContent_QemZ"><p>No more string manipulation for classes. Use type-safe props that your IDE can autocomplete.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="the-components">The Components<a href="https://bestax.io/blog/html-element-wrappers#the-components" class="hash-link" aria-label="Direct link to The Components" title="Direct link to The Components" translate="no">​</a></h2>
<table><thead><tr><th>Category</th><th>Components</th><th>HTML Elements</th></tr></thead><tbody><tr><td><strong>Text</strong></td><td><code>Link</code>, <code>Span</code>, <code>Paragraph</code>, <code>Strong</code>, <code>Emphasis</code></td><td><code>&lt;a&gt;</code>, <code>&lt;span&gt;</code>, <code>&lt;p&gt;</code>, <code>&lt;strong&gt;</code>, <code>&lt;em&gt;</code></td></tr><tr><td><strong>Lists</strong></td><td><code>UnorderedList</code>, <code>OrderedList</code>, <code>ListItem</code></td><td><code>&lt;ul&gt;</code>, <code>&lt;ol&gt;</code>, <code>&lt;li&gt;</code></td></tr><tr><td><strong>Code</strong></td><td><code>Code</code>, <code>Pre</code></td><td><code>&lt;code&gt;</code>, <code>&lt;pre&gt;</code></td></tr><tr><td><strong>Media</strong></td><td><code>Figure</code>, <code>Figure.Caption</code></td><td><code>&lt;figure&gt;</code>, <code>&lt;figcaption&gt;</code></td></tr><tr><td><strong>Layout</strong></td><td><code>Divider</code></td><td><code>&lt;hr&gt;</code></td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="examples">Examples<a href="https://bestax.io/blog/html-element-wrappers#examples" class="hash-link" aria-label="Direct link to Examples" title="Direct link to Examples" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="styled-text">Styled Text<a href="https://bestax.io/blog/html-element-wrappers#styled-text" class="hash-link" aria-label="Direct link to Styled Text" title="Direct link to Styled Text" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Paragraph</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textColor</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">info</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textAlign</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">centered</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  Centered info text</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Paragraph</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="colored-lists">Colored Lists<a href="https://bestax.io/blog/html-element-wrappers#colored-lists" class="hash-link" aria-label="Direct link to Colored Lists" title="Direct link to Colored Lists" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">UnorderedList</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">ListItem</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textColor</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">success</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Green item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">ListItem</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">ListItem</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textColor</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">danger</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Red item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">ListItem</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">UnorderedList</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="figures-with-captions">Figures with Captions<a href="https://bestax.io/blog/html-element-wrappers#figures-with-captions" class="hash-link" aria-label="Direct link to Figures with Captions" title="Direct link to Figures with Captions" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Figure</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textAlign</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">centered</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Image</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">    </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">src</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">/img/bestax-solar-system-3d.png</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">    </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">alt</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Bestax Solar System</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">    </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">16by9</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Figure.Caption</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textColor</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">grey</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textSize</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">7</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    Bestax Solar System</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Figure.Caption</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Figure</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="code-blocks">Code Blocks<a href="https://bestax.io/blog/html-element-wrappers#code-blocks" class="hash-link" aria-label="Direct link to Code Blocks" title="Direct link to Code Blocks" translate="no">​</a></h3>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Pre</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">bgColor</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">dark</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textColor</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">white</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">p</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token template-string template-punctuation string" style="color:rgb(173, 219, 103)">`</span><span class="token template-string string" style="color:rgb(173, 219, 103)">const hello = "world";</span><span class="token template-string template-punctuation string" style="color:rgb(173, 219, 103)">`</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text"></span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Pre</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<div class="theme-admonition theme-admonition-info admonition_zGgO alert alert--info"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>All Bulma Helpers Supported</div><div class="admonitionContent_QemZ"><p>Every component supports the full range of Bulma helper props: <code>textColor</code>, <code>bgColor</code>, <code>m</code>, <code>p</code>, <code>textAlign</code>, <code>textSize</code>, and more.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="get-started">Get Started<a href="https://bestax.io/blog/html-element-wrappers#get-started" class="hash-link" aria-label="Direct link to Get Started" title="Direct link to Get Started" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">import { Link, Paragraph, Code, Figure } from '@allxsmith/bestax-bulma';</span><br></div></code></pre></div></div>
<p>Check out the <a class="" href="https://bestax.io/docs/guides/library/elements">Elements guide</a> for full documentation.</p>]]></content:encoded>
            <category>bulma</category>
            <category>elements</category>
            <category>html</category>
            <category>semantic</category>
        </item>
        <item>
            <title><![CDATA[Install Bulma and React in 30 Seconds]]></title>
            <link>https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast</link>
            <guid>https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast</guid>
            <pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[One command gets you a production-ready React + Bulma app in under 30 seconds. Skip the setup, start coding with create-bestax.]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Blog Main image create-bestax" src="https://bestax.io/assets/images/create-bestax-blog-main-1ae80021359a7343daa34bcbcb9a2d59.png" width="1968" height="570" class="img_Kagv"></p>
<p>Want to build a React app with Bulma CSS in 2025? Forget the 10-step tutorials. Skip the configuration hell. Just run one command and start coding.</p>
<p><strong>One command. Under 30 seconds. You're building.</strong></p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="tldr---the-fastest-way">TL;DR - The Fastest Way<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#tldr---the-fastest-way" class="hash-link" aria-label="Direct link to TL;DR - The Fastest Way" title="Direct link to TL;DR - The Fastest Way" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-app</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="wait-thats-it">Wait, that's it?<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#wait-thats-it" class="hash-link" aria-label="Direct link to Wait, that's it?" title="Direct link to Wait, that's it?" translate="no">​</a></h3>
<p>Okay there is one other thing, you have to install your dependencies and start the dev server.</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">cd my-app</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm install</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm run dev</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="Wow you made this react app with bestax-bulma, the easiest way to create a bulma app" src="https://bestax.io/assets/images/create-bestax-end-result-4d13fbff6545f9c2674df0e30ba31fca.png" width="3004" height="1574" class="img_Kagv"></p>
<div class="theme-admonition theme-admonition-note admonition_zGgO alert alert--secondary"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_QemZ"><p>npm install
npm run dev</p><p>This is typical of any react vite project.</p></div></div>
<p>That's it. You now have a production-ready React + Bulma application powered by Vite, with Javascript/TypeScript support, icon libraries, and the full power of <a href="https://bestax.io/" target="_blank" rel="noopener noreferrer" class="">@allxsmith/bestax-bulma</a> at your fingertips.</p>
<p>Or, if you want even less interaction:</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-app -y</span><br></div></code></pre></div></div>
<p>The <code>-y</code> flag uses all the defaults and gets you up and running in literal seconds.</p>
<p><strong>Want your AI agent to do it for you?</strong> Just tell Claude, ChatGPT, or your favorite coding assistant: "Use create-bestax to scaffold a new React + Bulma project" and watch it happen.</p>
<div class="theme-admonition theme-admonition-warning admonition_zGgO alert alert--warning"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Good Job!</div><div class="admonitionContent_QemZ"><p>I've held your attention so far...If you enjoy reading and learning, or like my soap boxing, keep on reading.</p><p><strong>If create-bestax saved you time, please star ⭐⭐⭐ the repository</strong>: <a href="https://github.com/allxsmith/bestax" target="_blank" rel="noopener noreferrer" class="">github.com/allxsmith/bestax</a></p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="the-death-of-create-react-app">The Death of create-react-app<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#the-death-of-create-react-app" class="hash-link" aria-label="Direct link to The Death of create-react-app" title="Direct link to The Death of create-react-app" translate="no">​</a></h2>
<p>Remember <code>create-react-app</code>? It was revolutionary when it launched. One command to bootstrap a React project with zero configuration. It democratized React development and became the de facto standard for years.</p>
<p>But in 2023, the React team deprecated it.</p>
<p>The ecosystem moved on. Webpack gave way to faster bundlers. The JavaScript landscape evolved. And developers were left asking: "So... what now?"</p>
<p>The answer isn't clear-cut anymore. You could use:</p>
<ul>
<li class="">Next.js (but that's for server-side rendering)</li>
<li class="">Vite directly (but you need to configure the CSS and Icon framework yourself)</li>
<li class="">Manual setup (do you really want to configure Babel, ESLint, and bundlers from scratch?)</li>
</ul>
<p><strong>This is where create-bestax comes in.</strong> It's the spiritual successor to create-react-app for developers who want React + a CSS framework, specifically Bulma, without the ceremony.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="why-react-bulma-and-vite">Why React, Bulma, and Vite?<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#why-react-bulma-and-vite" class="hash-link" aria-label="Direct link to Why React, Bulma, and Vite?" title="Direct link to Why React, Bulma, and Vite?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="react-the-king-of-frontend-frameworks">React: The King of Frontend Frameworks<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#react-the-king-of-frontend-frameworks" class="hash-link" aria-label="Direct link to React: The King of Frontend Frameworks" title="Direct link to React: The King of Frontend Frameworks" translate="no">​</a></h3>
<p>React remains the most popular frontend framework in 2025, and for good reason:</p>
<ul>
<li class=""><strong>Massive ecosystem</strong>: Libraries, tools, and solutions for every problem</li>
<li class=""><strong>Component-driven</strong>: Build encapsulated, reusable UI pieces</li>
<li class=""><strong>Declarative</strong>: Describe what you want, React handles the how</li>
<li class=""><strong>Industry standard</strong>: More jobs, more tutorials, more community support</li>
<li class=""><strong>Battle-tested</strong>: Used by Facebook, Netflix, Airbnb, and countless others</li>
</ul>
<p>Whether you're building a simple dashboard or a complex application, React's flexibility and ecosystem make it the go-to choice.</p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="bulma-the-css-framework-renaissance">Bulma: The CSS Framework Renaissance<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#bulma-the-css-framework-renaissance" class="hash-link" aria-label="Direct link to Bulma: The CSS Framework Renaissance" title="Direct link to Bulma: The CSS Framework Renaissance" translate="no">​</a></h3>
<p>Bulma sits proudly as the third most popular CSS framework, behind Tailwind and Bootstrap. But here's the thing: Bulma v1 just changed the game.</p>
<p>The 2024 release of Bulma v1 brought:</p>
<ul>
<li class=""><strong>CSS Grid support</strong>: Modern layouts without fighting the framework</li>
<li class=""><strong>HSL theming</strong>: Dynamic color customization with CSS variables</li>
<li class=""><strong>Skeleton components</strong>: Built-in loading states</li>
<li class=""><strong>Dark mode</strong>: First-class support out of the box</li>
<li class=""><strong>Prefix support</strong>: Use Bulma alongside other frameworks without conflicts</li>
</ul>
<p>This isn't your 2019 Bulma. This is a renaissance. Bulma is back, modernized, and ready for 2025.</p>
<p>Unlike Tailwind's utility-first approach (which some love, others find verbose), Bulma gives you semantic class names that are readable and maintainable. Unlike Bootstrap's JavaScript dependency, Bulma is pure CSS, giving you full control over behavior.</p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="vite-the-bundler-of-choice-in-2025">Vite: The Bundler of Choice in 2025<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#vite-the-bundler-of-choice-in-2025" class="hash-link" aria-label="Direct link to Vite: The Bundler of Choice in 2025" title="Direct link to Vite: The Bundler of Choice in 2025" translate="no">​</a></h3>
<p>If you're not using Vite in 2025, you're missing out. Period.</p>
<ul>
<li class=""><strong>Lightning fast</strong>: Cold starts in milliseconds, not seconds</li>
<li class=""><strong>Instant HMR</strong>: See changes instantly during development</li>
<li class=""><strong>Optimized builds</strong>: Production bundles that are lean and mean</li>
<li class=""><strong>Modern by default</strong>: ES modules, code splitting, tree shaking</li>
<li class=""><strong>Zero config</strong>: Works beautifully out of the box</li>
</ul>
<p>Vite has become the de facto standard for modern web development, replacing Webpack for new projects. Every create-bestax project uses Vite, so you get that blazing-fast developer experience from day one.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="introducing-allxsmithbestax-bulma">Introducing @allxsmith/bestax-bulma<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#introducing-allxsmithbestax-bulma" class="hash-link" aria-label="Direct link to Introducing @allxsmith/bestax-bulma" title="Direct link to Introducing @allxsmith/bestax-bulma" translate="no">​</a></h2>
<p>At the heart of create-bestax is <code>@allxsmith/bestax-bulma</code>, a modern React component library built specifically for Bulma v1.</p>
<p><strong>Why it's special:</strong></p>
<ul>
<li class=""><strong>99% test coverage</strong>: Every component thoroughly tested</li>
<li class=""><strong>TypeScript-first</strong>: Complete type safety and autocomplete</li>
<li class=""><strong>Feature-complete</strong>: All Bulma components as React components</li>
<li class=""><strong>Global configuration</strong>: Use <code>ConfigProvider</code> for prefixed classes</li>
<li class=""><strong>Dynamic theming</strong>: Runtime theme switching with CSS variables</li>
<li class=""><strong>Comprehensive docs</strong>: Full API documentation and guides at <a href="https://bestax.io/" target="_blank" rel="noopener noreferrer" class="">bestax.io</a></li>
<li class=""><strong>Active maintenance</strong>: Regular updates and responsive support</li>
</ul>
<p>Unlike older Bulma React libraries that are abandoned or haven't updated for v1, bestax-bulma is actively maintained and built for the modern Bulma ecosystem.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="the-create-bestax-interactive-experience">The create-bestax Interactive Experience<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#the-create-bestax-interactive-experience" class="hash-link" aria-label="Direct link to The create-bestax Interactive Experience" title="Direct link to The create-bestax Interactive Experience" translate="no">​</a></h2>
<p>When you run <code>npm create bestax@latest</code>, you get a friendly interactive CLI that asks you exactly what you want:</p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="1-project-name">1. Project Name<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#1-project-name" class="hash-link" aria-label="Direct link to 1. Project Name" title="Direct link to 1. Project Name" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-text codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">? Project name: my-awesome-app</span><br></div></code></pre></div></div>
<p>Simple. Straightforward. Uses validation to ensure your project name is npm-compatible.</p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="2-select-your-framework">2. Select Your Framework<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#2-select-your-framework" class="hash-link" aria-label="Direct link to 2. Select Your Framework" title="Direct link to 2. Select Your Framework" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-text codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">? Select a framework:</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  ❯ Vite</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Vite + TypeScript</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="Select your framework" src="https://bestax.io/assets/images/create-bestax-select-framework-ef263012e8e034f43d77f413f32db2e9.png" width="2000" height="294" class="img_Kagv"></p>
<p>Choose JavaScript or TypeScript. Both use Vite for that incredible developer experience.</p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="3-choose-your-bulma-flavor">3. Choose Your Bulma Flavor<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#3-choose-your-bulma-flavor" class="hash-link" aria-label="Direct link to 3. Choose Your Bulma Flavor" title="Direct link to 3. Choose Your Bulma Flavor" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-text codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">? Which Bulma CSS flavor would you like to use?</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  ❯ Complete (Recommended) - Full Bulma CSS with all components and helpers</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Prefixed - All classes prefixed with "bulma-" to avoid conflicts</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    No Helpers - Core components only, no utility classes</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    No Helpers, Prefixed - Core components only with "bulma-" prefix</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    No Dark Mode - Light mode only, smaller bundle size</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="Select Bulma Flavor " src="https://bestax.io/assets/images/create-bestax-bulma-flavor-f276e13b227a5911f4ab195cbcb8a7f1.png" width="2000" height="420" class="img_Kagv"></p>
<p>This is where create-bestax shines. Bulma v1 provides multiple CSS distributions, and create-bestax makes it trivial to choose the right one:</p>
<ul>
<li class=""><strong>Complete</strong>: The full Bulma experience (recommended for most projects)</li>
<li class=""><strong>Prefixed</strong>: Need to use Bulma with Bootstrap or another framework? This prefixes all classes with <code>bulma-</code></li>
<li class=""><strong>No Helpers</strong>: Want a smaller bundle? Drop the utility classes</li>
<li class=""><strong>No Helpers, Prefixed</strong>: Combination of the above</li>
<li class=""><strong>No Dark Mode</strong>: If you only need light mode, save some bytes</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="4-add-an-icon-library">4. Add an Icon Library<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#4-add-an-icon-library" class="hash-link" aria-label="Direct link to 4. Add an Icon Library" title="Direct link to 4. Add an Icon Library" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-text codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">? Would you like to add an icon library?</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  ❯ None (I'll add icons later)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Font Awesome</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Material Design Icons</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Ionicons</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Google Material Icons</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    Material Symbols</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="Select an Icon Framework" src="https://bestax.io/assets/images/create-bestax-icon-framework-bd6a071d02cb1aa0b33e67fc8cd7239d.png" width="2000" height="438" class="img_Kagv"></p>
<p>Icons are essential for modern UIs. create-bestax automatically installs and configures your chosen icon library. No more hunting through documentation to figure out how to import CSS files correctly.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="command-line-options-for-power-users">Command Line Options for Power Users<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#command-line-options-for-power-users" class="hash-link" aria-label="Direct link to Command Line Options for Power Users" title="Direct link to Command Line Options for Power Users" translate="no">​</a></h2>
<p>Don't want to answer questions? Use flags:</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain"># Create a TypeScript project with Font Awesome</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-app -t vite-ts -i fontawesome</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Use all defaults</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-app -y</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Prefixed Bulma with Material Design Icons</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-app -b prefixed -i mdi</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Full control</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-app -t vite-ts -b complete -i fontawesome</span><br></div></code></pre></div></div>
<p><strong>Available options:</strong></p>
<ul>
<li class=""><code>-t, --template &lt;template&gt;</code>: <code>vite</code> or <code>vite-ts</code></li>
<li class=""><code>-b, --bulma &lt;flavor&gt;</code>: <code>complete</code>, <code>prefixed</code>, <code>no-helpers</code>, <code>no-helpers-prefixed</code>, <code>no-dark-mode</code></li>
<li class=""><code>-i, --icon &lt;library&gt;</code>: <code>none</code>, <code>fontawesome</code>, <code>mdi</code>, <code>ionicons</code>, <code>material-icons</code>, <code>material-symbols</code></li>
<li class=""><code>-y, --yes</code>: Skip all prompts</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="what-you-get">What You Get<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#what-you-get" class="hash-link" aria-label="Direct link to What You Get" title="Direct link to What You Get" translate="no">​</a></h2>
<p>After running create-bestax, you get a fully configured project with:</p>
<ul>
<li class=""><strong>React</strong> with Vite for blazing-fast development</li>
<li class=""><strong>Bulma CSS v1</strong> in your chosen flavor</li>
<li class=""><strong>@allxsmith/bestax-bulma</strong> component library pre-installed</li>
<li class=""><strong>Icon library</strong> of your choice (optional)</li>
<li class=""><strong>Sample components</strong> demonstrating bestax-bulma usage</li>
<li class=""><strong>Development scripts</strong> ready to go</li>
<li class=""><strong>Production build</strong> configuration</li>
<li class=""><strong>TypeScript</strong> support (if you chose it)</li>
<li class=""><strong>Zero configuration</strong> needed</li>
</ul>
<p><img decoding="async" loading="lazy" alt="bestax-bulma CLI done" src="https://bestax.io/assets/images/create-bestax-cli-done-f425ac61c711ff2bfbb583fc4ed83ef8.png" width="2000" height="746" class="img_Kagv"></p>
<p>Just run <code>npm install &amp;&amp; npm run dev</code> and you're coding.</p>
<p><img decoding="async" loading="lazy" alt="Wow you made this react app with bestax-bulma, the easiest way to create a bulma app" src="https://bestax.io/assets/images/create-bestax-end-result-4d13fbff6545f9c2674df0e30ba31fca.png" width="3004" height="1574" class="img_Kagv"></p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="from-zero-to-running-in-under-30-seconds">From Zero to Running in Under 30 Seconds<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#from-zero-to-running-in-under-30-seconds" class="hash-link" aria-label="Direct link to From Zero to Running in Under 30 Seconds" title="Direct link to From Zero to Running in Under 30 Seconds" translate="no">​</a></h2>
<p>Let's time it:</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain"># Second 0-5: Scaffold the project</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-demo-app -y</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Second 5-25: Install dependencies</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">cd my-demo-app</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm install</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># Second 25-30: Start development server</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm run dev</span><br></div></code></pre></div></div>
<p><strong>Under 30 seconds from command to running application.</strong></p>
<p>Compare that to:</p>
<ol>
<li class="">Creating a Vite project manually</li>
<li class="">Installing React</li>
<li class="">Configuring React</li>
<li class="">Installing Bulma</li>
<li class="">Figuring out which Bulma CSS file to use</li>
<li class="">Installing bestax-bulma</li>
<li class="">Setting up icon libraries</li>
<li class="">Writing your first component</li>
</ol>
<p>You just saved yourself 30 minutes to 2 hours of setup time.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="for-the-ai-assisted-developers">For the AI-Assisted Developers<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#for-the-ai-assisted-developers" class="hash-link" aria-label="Direct link to For the AI-Assisted Developers" title="Direct link to For the AI-Assisted Developers" translate="no">​</a></h2>
<p>In 2025, many of us use AI coding assistants. Claude Code, GitHub Copilot, ChatGPT, Cursor - they're all incredible tools.</p>
<p>Here's the beauty of create-bestax: <strong>Your AI can use it too.</strong></p>
<p>Just tell your AI assistant:</p>
<blockquote>
<p>"Create a new React + Bulma project using create-bestax with TypeScript and Font Awesome icons"</p>
</blockquote>
<p>And watch it execute:</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm create bestax@latest my-project -t vite-ts -i fontawesome -y</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">cd my-project</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">npm install</span><br></div></code></pre></div></div>
<p>No ambiguity. No configuration decisions. Just working code.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="get-started-today">Get Started Today<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#get-started-today" class="hash-link" aria-label="Direct link to Get Started Today" title="Direct link to Get Started Today" translate="no">​</a></h2>
<p>Ready to build something amazing?</p>
<ol>
<li class=""><strong>Run the CLI</strong>: <code>npm create bestax@latest my-app</code></li>
<li class=""><strong>Install dependencies</strong>: <code>cd my-app &amp;&amp; npm install</code></li>
<li class=""><strong>Start developing</strong>: <code>npm run dev</code></li>
<li class=""><strong>Explore the docs</strong>: <a href="https://bestax.io/" target="_blank" rel="noopener noreferrer" class="">bestax.io</a></li>
<li class=""><strong>Star the repo</strong>: <a href="https://github.com/allxsmith/bestax" target="_blank" rel="noopener noreferrer" class="">github.com/allxsmith/bestax</a></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="support-the-project">Support the Project<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#support-the-project" class="hash-link" aria-label="Direct link to Support the Project" title="Direct link to Support the Project" translate="no">​</a></h2>
<p>Listen, I'll be honest with you. It's alot of work maintaining this entire ecosystem: the component library, the CLI, the documentation, the examples. I survive on a strict diet of GitHub stars and Diet Coke.</p>
<p><strong>If create-bestax saved you time, please star the repository</strong>: <a href="https://github.com/allxsmith/bestax" target="_blank" rel="noopener noreferrer" class="">github.com/allxsmith/bestax</a></p>
<p>It helps more developers discover the project, and it keeps me caffeinated and motivated to keep improving it.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="whats-next">What's Next?<a href="https://bestax.io/blog/2025/11/12/installing-bulma-react-super-fast#whats-next" class="hash-link" aria-label="Direct link to What's Next?" title="Direct link to What's Next?" translate="no">​</a></h2>
<p>This is just the beginning of your journey with React, Bulma, and bestax-bulma. Here's what to explore next:</p>
<ul>
<li class=""><strong>Component Documentation</strong>: Browse all available components at <a href="https://bestax.io/docs/components" target="_blank" rel="noopener noreferrer" class="">bestax.io/docs/components</a></li>
<li class=""><strong>Theming Guide</strong>: Learn how to customize your app's look with dynamic themes</li>
<li class=""><strong>API Reference</strong>: Dive deep into component props and TypeScript types</li>
</ul>
<hr>
<p><strong>Have questions?</strong> <a href="https://github.com/allxsmith/bestax/issues" target="_blank" rel="noopener noreferrer" class="">Open an issue</a> or <a href="https://github.com/allxsmith/bestax/discussions" target="_blank" rel="noopener noreferrer" class="">start a discussion</a> on GitHub.</p>
<p><strong>Want to contribute?</strong> PRs are always welcome! Check out the <a href="https://github.com/allxsmith/bestax/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">contributing guide</a>.</p>
<p><strong>View on npm</strong>: <a href="https://www.npmjs.com/package/create-bestax" target="_blank" rel="noopener noreferrer" class="">create-bestax on npm</a></p>
<p>Happy coding! Now stop reading and start building.</p>]]></content:encoded>
            <category>react</category>
            <category>bulma</category>
            <category>vite</category>
            <category>cli</category>
            <category>quickstart</category>
        </item>
        <item>
            <title><![CDATA[Meet bestax-bulma: Modern React Components for Bulma CSS v1]]></title>
            <link>https://bestax.io/blog/2025/09/24/meet-bestax-bulma</link>
            <guid>https://bestax.io/blog/2025/09/24/meet-bestax-bulma</guid>
            <pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Discover bestax-bulma, a TypeScript-first React component library with 99% test coverage, built for Bulma CSS v1 with modern features like CSS Grid and HSL theming]]></description>
            <content:encoded><![CDATA[<p>Hey React developers! 👋 Are you looking for a modern, actively maintained component library for Bulma CSS? Let me introduce you to <strong>bestax-bulma</strong> (pronounced "bee-stacks"), a TypeScript-first React component library that brings the full power of Bulma v1 to your React applications.</p>
<p><strong>Opensource! Free as in beer🍺</strong></p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="why-another-bulma-react-library">Why Another Bulma React Library?<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#why-another-bulma-react-library" class="hash-link" aria-label="Direct link to Why Another Bulma React Library?" title="Direct link to Why Another Bulma React Library?" translate="no">​</a></h2>
<p>Great question! While there are other Bulma React libraries out there, many haven't been updated for Bulma v1 or are no longer actively maintained. bestax-bulma fills this gap with:</p>
<ul>
<li class="">🎯 <strong>Full Bulma v1 Support</strong>: Built specifically for the latest Bulma version</li>
<li class="">📊 <strong>99% Test Coverage</strong>: Every component thoroughly tested with React Testing Library</li>
<li class="">🔷 <strong>TypeScript-First</strong>: Complete type safety with comprehensive TypeScript definitions</li>
<li class="">🚀 <strong>Modern Build</strong>: Tree-shakeable ESM and CJS builds for optimal bundle sizes</li>
<li class="">📚 <strong>Rich Documentation</strong>: Comprehensive <a href="https://bestax.io/docs/api" target="_blank" rel="noopener noreferrer" class="">API docs</a> and <a href="https://bestax.io/docs/guides/getting-started" target="_blank" rel="noopener noreferrer" class="">getting started guides</a> available at bestax.io</li>
<li class="">⚡ <strong>Active Development</strong>: Regular updates and responsive maintenance</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="quick-start-in-2-minutes">Quick Start in 2 Minutes<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#quick-start-in-2-minutes" class="hash-link" aria-label="Direct link to Quick Start in 2 Minutes" title="Direct link to Quick Start in 2 Minutes" translate="no">​</a></h2>
<p>Getting started is as simple as:</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm install @allxsmith/bestax-bulma</span><br></div></code></pre></div></div>
<p>Then import and use components:</p>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Card</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Hero</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'bulma/css/bulma.min.css'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">App</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Body</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Header</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Header.Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Welcome to bestax-bulma!</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Header.Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Header</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Modern React components for Bulma CSS v1</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">success</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Get Started</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Body</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="showcasing-bulma-v1s-new-features">Showcasing Bulma v1's New Features<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#showcasing-bulma-v1s-new-features" class="hash-link" aria-label="Direct link to Showcasing Bulma v1's New Features" title="Direct link to Showcasing Bulma v1's New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="-skeleton-loading-states">🦴 Skeleton Loading States<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#-skeleton-loading-states" class="hash-link" aria-label="Direct link to 🦴 Skeleton Loading States" title="Direct link to 🦴 Skeleton Loading States" translate="no">​</a></h3>
<p>Bulma v1 introduced the Skeleton component for beautiful loading states:</p>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Card</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> useState</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> useEffect </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'react'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">LoadingCard</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">isLoading</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setIsLoading</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token boolean" style="color:rgb(255, 88, 116)">true</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token function" style="color:rgb(130, 170, 255)">useEffect</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> timer </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">setInterval</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token function" style="color:rgb(130, 170, 255)">setIsLoading</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">prev </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">!</span><span class="token plain">prev</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">2000</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">clearInterval</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">timer</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">skeleton</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">isLoading</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Your content here!</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card.Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="-css-grid-support">🎨 CSS Grid Support<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#-css-grid-support" class="hash-link" aria-label="Direct link to 🎨 CSS Grid Support" title="Direct link to 🎨 CSS Grid Support" translate="no">​</a></h3>
<p>Take advantage of Bulma's new CSS Grid components for modern layouts:</p>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Grid</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Cell</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Card</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">Dashboard</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Grid</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 1</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 2</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 3</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 4</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 5</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 6</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 7</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 8</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Cell 9</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Cell</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Grid</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="-dynamic-hsl-theming">🌈 Dynamic HSL Theming<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#-dynamic-hsl-theming" class="hash-link" aria-label="Direct link to 🌈 Dynamic HSL Theming" title="Direct link to 🌈 Dynamic HSL Theming" translate="no">​</a></h3>
<p>Bulma v1's HSL color system enables dynamic theming:</p>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Theme</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">ThemedApp</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">280</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryS</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">100%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryL</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">45%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Themed Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="why-developers-love-bestax-bulma">Why Developers Love bestax-bulma<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#why-developers-love-bestax-bulma" class="hash-link" aria-label="Direct link to Why Developers Love bestax-bulma" title="Direct link to Why Developers Love bestax-bulma" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="1-compound-components-pattern">1. Compound Components Pattern<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#1-compound-components-pattern" class="hash-link" aria-label="Direct link to 1. Compound Components Pattern" title="Direct link to 1. Compound Components Pattern" translate="no">​</a></h3>
<p>We use the compound components pattern for intuitive, readable code:</p>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Modal</span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token imports"> useState </span><span class="token imports punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'react'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">ModalExample</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">showModal</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setShowModal</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token boolean" style="color:rgb(255, 88, 116)">false</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(130, 170, 255)">closeModal</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">setShowModal</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token boolean" style="color:rgb(255, 88, 116)">false</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript function" style="color:rgb(130, 170, 255)">setShowModal</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token tag script language-javascript boolean" style="color:rgb(255, 88, 116)">true</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        Open Modal</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">isActive</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">showModal</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Background</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">closeModal</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Head</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Intuitive API</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Close</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">closeModal</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Head</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Body</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Components that make sense!</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Body</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Foot</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">closeModal</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              Close</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card.Foot</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal.Card</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Modal</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="2-typescript-autocomplete-heaven">2. TypeScript Autocomplete Heaven<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#2-typescript-autocomplete-heaven" class="hash-link" aria-label="Direct link to 2. TypeScript Autocomplete Heaven" title="Direct link to 2. TypeScript Autocomplete Heaven" translate="no">​</a></h3>
<p>Every prop is fully typed, giving you incredible IDE support:</p>
<div class="language-typescript codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-typescript codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Full autocomplete for colors, sizes, and more</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Button</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  color</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"primary"</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// 'primary' | 'link' | 'info' | 'success' | ...</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  size</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"large"</span><span class="token plain">     </span><span class="token comment" style="color:#999988;font-style:italic">// 'small' | 'normal' | 'medium' | 'large'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  isLoading</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  isOutlined</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">/</span><span class="token operator" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="3-zero-configuration">3. Zero Configuration<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#3-zero-configuration" class="hash-link" aria-label="Direct link to 3. Zero Configuration" title="Direct link to 3. Zero Configuration" translate="no">​</a></h3>
<p>Unlike many CSS-in-JS solutions, bestax-bulma works with standard Bulma CSS. No build configuration, no CSS extraction, just import and go!</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="try-it-live">Try It Live<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#try-it-live" class="hash-link" aria-label="Direct link to Try It Live" title="Direct link to Try It Live" translate="no">​</a></h2>
<p>Want to see bestax-bulma in action? Check out <a href="https://bestax.io/" target="_blank" rel="noopener noreferrer" class="">bestax.io</a> for comprehensive examples and interactive documentation. Storybook is also available for browsing individual component variations.</p>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="comparison-with-alternatives">Comparison with Alternatives<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#comparison-with-alternatives" class="hash-link" aria-label="Direct link to Comparison with Alternatives" title="Direct link to Comparison with Alternatives" translate="no">​</a></h2>
<table><thead><tr><th>Feature</th><th>bestax-bulma</th><th>react-bulma-components</th><th>rbx</th><th>bulma-react</th></tr></thead><tbody><tr><td>Bulma v1 Support</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>TypeScript</td><td>✅ Built-in</td><td>⚠️ Separate</td><td>✅</td><td>❌</td></tr><tr><td>Test Coverage</td><td>99%</td><td>~70%</td><td>~100%</td><td>Unknown</td></tr><tr><td>Active Maintenance</td><td>✅ 2025</td><td>⚠️ 2021</td><td>❌ 2019</td><td>❌ 2015</td></tr><tr><td>Tree Shaking</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Compound Components</td><td>✅</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Comprehensive Docs</td><td>✅</td><td>❌</td><td>⚠️ Partial</td><td>❌</td></tr><tr><td>Real CSS Grids</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Configurable</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Theme Support</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr><tr><td>Quick Start CLI</td><td>✅</td><td>❌</td><td>❌</td><td>❌</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="get-started-today">Get Started Today<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#get-started-today" class="hash-link" aria-label="Direct link to Get Started Today" title="Direct link to Get Started Today" translate="no">​</a></h2>
<p>Ready to modernize your Bulma React experience?</p>
<ol>
<li class=""><strong>Install</strong>: <code>npm install @allxsmith/bestax-bulma</code></li>
<li class=""><strong>Explore</strong>: Check our <a href="https://bestax.io/" target="_blank" rel="noopener noreferrer" class="">documentation</a></li>
<li class=""><strong>Build</strong>: Start creating beautiful UIs with modern React patterns</li>
<li class=""><strong>Contribute</strong>: Join us on <a href="https://github.com/allxsmith/bestax" target="_blank" rel="noopener noreferrer" class="">GitHub</a></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="whats-next">What's Next?<a href="https://bestax.io/blog/2025/09/24/meet-bestax-bulma#whats-next" class="hash-link" aria-label="Direct link to What's Next?" title="Direct link to What's Next?" translate="no">​</a></h2>
<p>This is just the beginning! In the next parts of this series, we'll dive deep into:</p>
<ul>
<li class="">Part 2: Building Beautiful UIs with Core Components</li>
<li class="">Part 3: Forms, Data Display, and Advanced Patterns</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_QemZ"><p>👤 Follow me <a href="https://github.com/allxsmith" target="_blank" rel="noopener noreferrer" class="">@allxsmith</a> for updates!</p><p>⭐ Feel free to star the <a href="https://github.com/allxsmith/bestax" target="_blank" rel="noopener noreferrer" class="">repository</a> if you find it helpful!</p></div></div>
<hr>
<p><strong>Have questions or feedback?</strong> <a href="https://github.com/allxsmith/bestax/issues" target="_blank" rel="noopener noreferrer" class="">Create an issue</a> or <a href="https://github.com/allxsmith/bestax/discussions" target="_blank" rel="noopener noreferrer" class="">start a discussion</a> on GitHub for new ideas!</p>]]></content:encoded>
            <category>react</category>
            <category>bulma</category>
            <category>typescript</category>
            <category>components</category>
        </item>
        <item>
            <title><![CDATA[Configurable and Themeable]]></title>
            <link>https://bestax.io/blog/prefixed-bulma-and-theming</link>
            <guid>https://bestax.io/blog/prefixed-bulma-and-theming</guid>
            <pubDate>Mon, 04 Aug 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're excited to announce version 2.0.0 of @allxsmith/bestax-bulma, bringing powerful new configuration and theming capabilities that fully embrace Bulma v1's modern approach to CSS customization.]]></description>
            <content:encoded><![CDATA[<p>We're excited to announce version 2.0.0 of @allxsmith/bestax-bulma, bringing powerful new configuration and theming capabilities that fully embrace Bulma v1's modern approach to CSS customization.</p>
<p>This release introduces two major features that transform how you can customize and integrate Bulma components: <strong>ConfigProvider</strong> for global component configuration (including CSS class prefixing), and <strong>Theme</strong> for comprehensive CSS variable-based theming.</p>
<p><img decoding="async" loading="lazy" alt="Theming" src="https://bestax.io/assets/images/robot-painting-0109187878105cb1d4a9d172af9f6e29.png" width="2602" height="1536" class="img_Kagv"></p>
<p>With ConfigProvider, you can now globally configure all bestax-bulma components using the <code>useConfig</code> hook, enabling seamless integration with other CSS frameworks through class prefixing. The new Theme component allows you to customize Bulma's appearance using CSS variables at both global and scoped nested levels, giving you unprecedented control over your design system.</p>
<div class="theme-admonition theme-admonition-info admonition_zGgO alert alert--info"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>2.x.x compatible with 1.x.x</div><div class="admonitionContent_QemZ"><p>We need to address an important note about versioning: we accidentally bumped this release to 2.0.0 instead of the intended 1.2.0. This became a major release due to a semantic-release configuration issue, when it should have been a minor release.</p><p>However, <strong>all changes are completely backward compatible</strong> - version 2.x.x is fully compatible with 1.x.x. We decided it's easier to move forward with the new version number rather than create confusion with republishing.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="configprovider-global-component-configuration">ConfigProvider: Global Component Configuration<a href="https://bestax.io/blog/prefixed-bulma-and-theming#configprovider-global-component-configuration" class="hash-link" aria-label="Direct link to ConfigProvider: Global Component Configuration" title="Direct link to ConfigProvider: Global Component Configuration" translate="no">​</a></h2>
<p>The new <code>ConfigProvider</code> component addresses a critical need in modern web development: the ability to namespace CSS classes to avoid conflicts. This becomes especially important with Bulma v1's enhanced support for prefixed CSS classes.</p>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_QemZ"><p>While not ideal, you can use prefixed css classes when integrating multiple CSS frameworks. Prefixed css classes help avoid class name collisions.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="why-we-need-configprovider">Why We Need ConfigProvider<a href="https://bestax.io/blog/prefixed-bulma-and-theming#why-we-need-configprovider" class="hash-link" aria-label="Direct link to Why We Need ConfigProvider" title="Direct link to Why We Need ConfigProvider" translate="no">​</a></h3>
<p>When building applications, you may want to prefix your Bulma CSS classes with a custom namespace like "bulma-" or your own brand name. This provides better control over your CSS architecture and helps organize your styles. Bulma v1 recognized this need and now supports CSS class prefixing out of the box. While prefixing can also help in non-ideal situations where you need to integrate with other CSS frameworks like Bootstrap or Tailwind CSS, the primary benefit is having organized, namespaced CSS that follows your project's conventions.</p>
<p>The ConfigProvider enables you to:</p>
<ul>
<li class="">Prefix all Bulma CSS classes with a custom namespace (e.g., <code>bulma-</code>)</li>
<li class="">Integrate seamlessly with other CSS frameworks</li>
<li class="">Support custom Bulma builds with your own prefixes</li>
<li class="">Maintain consistent configuration across your entire component tree</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="supporting-prefixed-bulma-css">Supporting Prefixed Bulma CSS<a href="https://bestax.io/blog/prefixed-bulma-and-theming#supporting-prefixed-bulma-css" class="hash-link" aria-label="Direct link to Supporting Prefixed Bulma CSS" title="Direct link to Supporting Prefixed Bulma CSS" translate="no">​</a></h3>
<p>If you're using the official prefixed Bulma CSS file (<code>bulma-prefixed.min.css</code>), you can now use it seamlessly:</p>
<div class="language-tsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-tsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">ConfigProvider</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Box</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Title</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports"> </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'bulma/css/versions/bulma-prefixed.min.css'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">App</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">classPrefix</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">bulma-</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Box</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Title</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Prefixed Bulma Components</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Title</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Button</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">color</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">This uses bulma-button class</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Button</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Box</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>This renders the following HTML with prefixed CSS classes:</p>
<div class="language-html codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_yQJb">Html Markup from example above</div><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-html codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">class</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">bulma-box</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">h1</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">class</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">bulma-title</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">Prefixed Bulma Components</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">h1</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    All components inside this ConfigProvider will have their CSS classes</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    prefixed with "bulma-". This allows you to use Bulma alongside other CSS</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    frameworks without class name conflicts.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">button</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">class</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">bulma-button bulma-is-primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    This uses bulma-button class</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">button</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="custom-prefix-support">Custom Prefix Support<a href="https://bestax.io/blog/prefixed-bulma-and-theming#custom-prefix-support" class="hash-link" aria-label="Direct link to Custom Prefix Support" title="Direct link to Custom Prefix Support" translate="no">​</a></h3>
<p>For teams building their own Bulma CSS with custom prefixes, you can configure your SASS build and use the same prefix in ConfigProvider:</p>
<p>Setup Bulma and SASS</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm install bulma sass</span><br></div></code></pre></div></div>
<p>Create this custom Sass file</p>
<div class="language-scss codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_yQJb">src/styles/mycompany-bulma.scss</div><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-scss codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">// In your SASS build</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">@use 'bulma/sass' with (</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  $class-prefix: 'mycompany-'</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">);</span><br></div></code></pre></div></div>
<p>Finally, import the custom Sass file into your react entry point</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_yQJb">src/index.js</div><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">ConfigProvider</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Box</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Title</span><span class="token imports punctuation" style="color:#393A34">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports"> </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@allxsmith/bestax-bulma'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'./styles/mycompany-bulma.scss'</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:#d73a49">App</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword control-flow" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">classPrefix</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">mycompany-</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Box</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Title</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Prefixed Bulma Components</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Title</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Button</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">color</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">This uses bulma-button class</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Button</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Box</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="two-css-frameworks-example">Two CSS Frameworks Example<a href="https://bestax.io/blog/prefixed-bulma-and-theming#two-css-frameworks-example" class="hash-link" aria-label="Direct link to Two CSS Frameworks Example" title="Direct link to Two CSS Frameworks Example" translate="no">​</a></h3>
<p>Here's a comprehensive example showing ConfigProvider in action with the less ideal situation: <strong>two css frameworks coexisting together</strong>.</p>
<div class="language-tsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-tsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">FrameworkIntegration</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token comment" style="color:#999988;font-style:italic">/* Bootstrap section with equivalent markup */</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">div</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">card p-4 mb-4</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">h4</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">card-title</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Bootstrap Components</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">h4</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">p</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">card-text</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">          This section uses Bootstrap classes for styling.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">button</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">className</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">btn btn-info</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Bootstrap Button</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">button</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token comment" style="color:#999988;font-style:italic">/* Prefixed Bulma components to avoid conflicts */</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">classPrefix</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">bulma-</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Box</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Title</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">size</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">4</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Prefixed Components</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Title</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">            All components inside this ConfigProvider will have their CSS</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">            classes prefixed with "bulma-", preventing conflicts with other</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">            frameworks.</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">p</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Button</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">color</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text">Prefixed Bulma Button</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Button</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Box</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">div</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="theme-component-css-variable-based-theming">Theme Component: CSS Variable-Based Theming<a href="https://bestax.io/blog/prefixed-bulma-and-theming#theme-component-css-variable-based-theming" class="hash-link" aria-label="Direct link to Theme Component: CSS Variable-Based Theming" title="Direct link to Theme Component: CSS Variable-Based Theming" translate="no">​</a></h2>
<p>The new <code>Theme</code> component leverages CSS custom properties (CSS variables) to provide dynamic, runtime theming capabilities that were previously only possible with SASS preprocessing. This approach offers significant advantages over traditional methods.</p>
<p><img decoding="async" loading="lazy" alt="Runtime Theming" src="https://bestax.io/assets/images/themed-trees-20a0df078501b249e61666a056fe0f0e.png" width="2560" height="1536" class="img_Kagv"></p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="the-power-of-css-variables-vs-sass-variables">The Power of CSS Variables vs. SASS Variables<a href="https://bestax.io/blog/prefixed-bulma-and-theming#the-power-of-css-variables-vs-sass-variables" class="hash-link" aria-label="Direct link to The Power of CSS Variables vs. SASS Variables" title="Direct link to The Power of CSS Variables vs. SASS Variables" translate="no">​</a></h3>
<p>While SASS variables are compile-time constants, CSS variables are runtime values that can be:</p>
<ul>
<li class="">Changed dynamically with JavaScript</li>
<li class="">Inherited through the CSS cascade</li>
<li class="">Scoped to specific DOM elements</li>
<li class="">Modified without rebuilding your CSS</li>
</ul>
<p>This means you can create themes that respond to user preferences, time of day, or any other runtime condition:</p>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_QemZ"><p>These theme examples look best in dark mode. Switch to dark mode using the toggle in the top navigation for the optimal viewing experience.</p></div></div>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">DynamicTheming</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">isLunar</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setIsLunar</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token boolean" style="color:rgb(255, 88, 116)">false</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">signees</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> setSignees</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">useState</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token string" style="color:rgb(173, 219, 103)">'John Adams'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token string" style="color:rgb(173, 219, 103)">'Samuel Adams'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token string" style="color:rgb(173, 219, 103)">'Benjamin Franklin'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> theme </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token maybe-class-name">React</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">useMemo</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-scheme-h'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> isLunar </span><span class="token operator" style="color:rgb(127, 219, 202)">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'260'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'220'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// midnight: purple hue, sky: light blue hue</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-scheme-s'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> isLunar </span><span class="token operator" style="color:rgb(127, 219, 202)">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'30%'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'90%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// midnight: muted saturation, sky: vibrant</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-light-l'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> isLunar </span><span class="token operator" style="color:rgb(127, 219, 202)">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'8%'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'10%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// midnight: very dark, sky: very light</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-dark-l'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> isLunar </span><span class="token operator" style="color:rgb(127, 219, 202)">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'85%'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'90%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// midnight: light text, sky: dark text</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">isLunar</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(130, 170, 255)">handleSubmit</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> e </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    e</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">preventDefault</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> formData </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(127, 219, 202)">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 139)">FormData</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">e</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token property-access">target</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> name </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> formData</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">get</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(173, 219, 103)">'name'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token function" style="color:rgb(130, 170, 255)">setSignees</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token spread operator" style="color:rgb(127, 219, 202)">...</span><span class="token plain">signees</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      e</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token property-access">target</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">reset</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">bulmaVars</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">theme</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">isRoot</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)"> </span><span class="token tag script language-javascript function" style="color:rgb(130, 170, 255)">setIsLunar</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token tag script language-javascript operator" style="color:rgb(127, 219, 202)">!</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">isLunar</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">mb</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        Toggle </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">isLunar </span><span class="token operator" style="color:rgb(127, 219, 202)">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'Lunar'</span><span class="token plain"> </span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'Midnight'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain-text"> Theme</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Columns</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Column</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">A Call to Action</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">strong</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Fellow Citizens,</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">strong</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"> it is with great conviction</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                that we present this petition to secure the blessings of liberty</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                for ourselves and our posterity. As the immortal words of our</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                founding documents declare, when a long train of abuses and</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                usurpations evinces a design to reduce them under absolute</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                despotism, it is their right, it is their duty, to throw off</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                such government.</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                The experience of ages has proven that mankind are more disposed</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                to suffer, while evils are sufferable, than to right themselves</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                by abolishing the forms to which they are accustomed. But when</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                circumstances compel us to action, we must not hesitate to</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                secure our fundamental rights.</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">em</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  Join your fellow citizens in this righteous cause. Add your</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  name to this petition and let your voice be heard in the halls</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  of justice.</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">em</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">cite</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">-- Alexander Hamilton</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">cite</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Column</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Column</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">5</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Sign the Petition</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">form</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">onSubmit</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">handleSubmit</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">label</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Full Name</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Input</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">                      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">name</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">                      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">placeholder</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Enter your full name</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">                      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">required</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">label</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">State</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Input</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">state</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">placeholder</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Your state of residence</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">type</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">submit</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                      Add My Signature</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">form</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">6</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">mt</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                Current Signatories</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">ul</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">signees</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">map</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> index</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">li</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">key</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">index</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">li</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">                  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">ul</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Column</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Columns</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="css-variables-vs-utility-classes">CSS Variables vs. Utility Classes<a href="https://bestax.io/blog/prefixed-bulma-and-theming#css-variables-vs-utility-classes" class="hash-link" aria-label="Direct link to CSS Variables vs. Utility Classes" title="Direct link to CSS Variables vs. Utility Classes" translate="no">​</a></h3>
<p>While utility classes like Tailwind CSS provide granular control, CSS variables offer superior theming capabilities:</p>
<ul>
<li class=""><strong>Semantic theming</strong>: Define color roles (primary, secondary) rather than specific colors</li>
<li class=""><strong>Consistent relationships</strong>: Automatic hover/active states based on base colors</li>
<li class=""><strong>Global consistency</strong>: Change one variable, update entire design system</li>
<li class=""><strong>Performance</strong>: No class proliferation or CSS bloat</li>
</ul>
<div class="theme-admonition theme-admonition-note admonition_zGgO alert alert--secondary"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_QemZ"><p>Tailwind CSS is a fantastic framework with CSS variable support built into it's core theming.</p><p>Tailwind CSS primarily encourages the use of utility classes over directly manipulating CSS variables for styling, as its core philosophy is "utility-first,"</p></div></div>
<p><img decoding="async" loading="lazy" alt="Variables vs Utilities" src="https://bestax.io/assets/images/paint-brush-dual-9c539f84dbaa4a775990866b14b3aae2.png" width="2816" height="1536" class="img_Kagv"></p>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="global-and-scoped-theming">Global and Scoped Theming<a href="https://bestax.io/blog/prefixed-bulma-and-theming#global-and-scoped-theming" class="hash-link" aria-label="Direct link to Global and Scoped Theming" title="Direct link to Global and Scoped Theming" translate="no">​</a></h3>
<p>The Theme component supports both global theming (affecting your entire application) and scoped theming (affecting only specific sections):</p>
<h4 class="anchor anchorTargetStickyNavbar_azSN" id="global-theme-example">Global Theme Example<a href="https://bestax.io/blog/prefixed-bulma-and-theming#global-theme-example" class="hash-link" aria-label="Direct link to Global Theme Example" title="Direct link to Global Theme Example" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_QemZ"><p>These theme examples look best in dark mode. Switch to dark mode using the toggle in the top navigation for the optimal viewing experience.</p></div></div>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">GlobalSunsetTheme</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">const</span><span class="token plain"> sunsetTheme </span><span class="token operator" style="color:rgb(127, 219, 202)">=</span><span class="token plain"> </span><span class="token maybe-class-name">React</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">useMemo</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgb(127, 219, 202)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-scheme-h'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'18'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">// sunset orange hue</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-scheme-s'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'90%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-primary-h'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'25'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-primary-s'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'85%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token string-property property" style="color:rgb(128, 203, 196)">'--bulma-primary-l'</span><span class="token operator" style="color:rgb(127, 219, 202)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(173, 219, 103)">'55%'</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">App</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">3</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Contact Us</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">label</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Name</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Input</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">placeholder</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Your full name</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">label</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Email</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Input</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">type</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">email</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">placeholder</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">your.email@example.com</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">label</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">Message</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Input</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">placeholder</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">How can we help you?</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Send Message</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Control</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Field</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">bulmaVars</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(199, 146, 234)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token tag script language-javascript" style="color:rgb(127, 219, 202)">sunsetTheme</span><span class="token tag script language-javascript punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">App</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token comment" style="color:rgb(99, 119, 119);font-style:italic">/* Entire app uses sunset theme */</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h4 class="anchor anchorTargetStickyNavbar_azSN" id="scoped-theme-example">Scoped Theme Example<a href="https://bestax.io/blog/prefixed-bulma-and-theming#scoped-theme-example" class="hash-link" aria-label="Direct link to Scoped Theme Example" title="Direct link to Scoped Theme Example" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_QemZ"><p>These theme examples look best in dark mode. Switch to dark mode using the toggle in the top navigation for the optimal viewing experience.</p></div></div>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">ScopedTheming</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">div</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Standard Theme Header</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Block</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">120</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryS</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">100%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryL</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">40%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Forest Green Section</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Green Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Block</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Block</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">280</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryS</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">100%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryL</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">45%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Purple Section</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Purple Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Box</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Block</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">div</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="advanced-theming-with-complete-color-schemes">Advanced Theming with Complete Color Schemes<a href="https://bestax.io/blog/prefixed-bulma-and-theming#advanced-theming-with-complete-color-schemes" class="hash-link" aria-label="Direct link to Advanced Theming with Complete Color Schemes" title="Direct link to Advanced Theming with Complete Color Schemes" translate="no">​</a></h3>
<p>The Theme component supports all 500+ Bulma CSS variables, allowing for comprehensive design system customization:</p>
<div class="theme-admonition theme-admonition-tip admonition_zGgO alert alert--success"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_QemZ"><p>These theme examples look best in dark mode. Switch to dark mode using the toggle in the top navigation for the optimal viewing experience.</p></div></div>
<div class="live-preview light" data-theme="light"></div><div class="browserWindow_hz_A"><div class="browserWindowHeader_mpcG"><div class="buttons_jQ9H"><span class="dot_F0q0" style="background:#f25f58"></span><span class="dot_F0q0" style="background:#fbbe3c"></span><span class="dot_F0q0" style="background:#58cb42"></span></div><div class="browserWindowAddressBar_A9Wl"></div><div class="buttonGroup_xFFS"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_VvDU" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_v_3i"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_poOR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonErrorIcon_fRIh"><g stroke="#d53035" stroke-width="3"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></span></button></div></div><div class="browserWindowBody_w27R"><div style="background-color:var(--prism-background-color);font:var(--ifm-code-font-size) / var(--ifm-pre-line-height) var(--ifm-font-family-monospace)"><pre class="prism-code language-tsx" style="margin:0;outline:none;padding:10px;font-family:inherit;color:#d6deeb;background-color:#011627" spellcheck="false"><span class="token-line" style="color:#d6deeb"><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">ForestTheme</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">function</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">CompleteApp</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">medium</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Head</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Container</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Brand</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">as</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">a</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">5</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Forest Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Brand</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Menu</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.End</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">as</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">a</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Getting Started</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">as</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">a</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Components</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">as</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">a</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Themes</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">as</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">span</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">primary</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">isInverted</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                      Download</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                  </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Item</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.End</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar.Menu</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Container</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Navbar</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Head</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Body</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Container</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textAlign</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">centered</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Forest Green Design</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Title</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">SubTitle</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Experience nature-inspired theming</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">SubTitle</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">success</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">size</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">large</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              Explore Components</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Button</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Container</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Body</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Foot</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Container</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">textAlign</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">centered</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag" style="color:rgb(127, 219, 202)">strong</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text">Forest Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">strong</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"> demonstrates comprehensive CSS</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">                variable theming.</span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">              </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag" style="color:rgb(127, 219, 202)">p</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">            </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Content</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Container</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero.Foot</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Hero</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token keyword" style="color:rgb(127, 219, 202)">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">schemeH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">150</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag comment" style="color:rgb(99, 119, 119);font-style:italic">// forest green base</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">schemeS</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">50%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">lightL</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">80%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">darkL</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">18%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">160</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryS</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">60%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">primaryL</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">45%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">successH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">120</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">warningH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">45</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">dangerH</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">355</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">hoverBackgroundLDelta</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">4%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">activeBackgroundLDelta</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(199, 146, 234)">=</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag attr-value" style="color:rgb(127, 219, 202)">8%</span><span class="token tag attr-value punctuation" style="color:rgb(199, 146, 234)">"</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">      </span><span class="token tag attr-name" style="color:rgb(173, 219, 103);font-style:italic">isRoot</span><span class="token tag" style="color:rgb(127, 219, 202)"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token tag" style="color:rgb(127, 219, 202)">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">CompleteApp</span><span class="token tag" style="color:rgb(127, 219, 202)"> </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">/&gt;</span><span class="token plain-text"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 203, 139)">Theme</span><span class="token tag punctuation" style="color:rgb(199, 146, 234)">&gt;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb"><span class="token plain"></span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span>
</span><span class="token-line" style="color:#d6deeb">
</span></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_azSN" id="combining-configprovider-and-theme">Combining ConfigProvider and Theme<a href="https://bestax.io/blog/prefixed-bulma-and-theming#combining-configprovider-and-theme" class="hash-link" aria-label="Direct link to Combining ConfigProvider and Theme" title="Direct link to Combining ConfigProvider and Theme" translate="no">​</a></h3>
<p>The real power comes from combining both providers for maximum flexibility. <em>Okay maybe not real power per se...</em></p>
<div class="language-tsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-tsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">EnterpriseApp</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">classPrefix</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">mycompany-</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">Theme</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">primaryH</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">210</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">primaryS</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">100%</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">primaryL</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">45%</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">isRoot</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">App</span><span class="token tag" style="color:#00009f"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">      </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">Theme</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain-text"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag class-name" style="color:#00009f">ConfigProvider</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_azSN" id="summary-full-bulma-v1-support">Summary: Full Bulma v1 Support<a href="https://bestax.io/blog/prefixed-bulma-and-theming#summary-full-bulma-v1-support" class="hash-link" aria-label="Direct link to Summary: Full Bulma v1 Support" title="Direct link to Summary: Full Bulma v1 Support" translate="no">​</a></h2>
<p>With version 2.0.0, @allxsmith/bestax-bulma now fully supports the modern concepts introduced in Bulma v1, the latest version of Bulma in 2025. Our implementation provides:</p>
<ul>
<li class=""><strong>Complete CSS variable theming</strong> with 500+ supported variables</li>
<li class=""><strong>Class prefix configuration</strong> for framework integration</li>
<li class=""><strong>Runtime theme switching</strong> capabilities</li>
<li class=""><strong>Scoped and global theming</strong> options</li>
<li class=""><strong>TypeScript-first design</strong> with full type safety</li>
</ul>
<p>We're committed to continuing our support for Bulma as it evolves, and you can expect new modular configuration options in future releases of this package.</p>
<p>The foundation we've built with ConfigProvider and Theme components will serve as the basis for even more powerful customization features to come.</p>
<p>Whether you're building a simple website or a complex enterprise application, <strong>@allxsmith/bestax-bulma</strong> now provides the tools you need to create consistent, themeable, and maintainable user interfaces that leverage the full power of modern CSS.</p>]]></content:encoded>
            <category>release</category>
            <category>v2</category>
            <category>config</category>
            <category>theme</category>
            <category>bulma</category>
            <category>prefix</category>
        </item>
        <item>
            <title><![CDATA[First full release]]></title>
            <link>https://bestax.io/blog/first-full-release</link>
            <guid>https://bestax.io/blog/first-full-release</guid>
            <pubDate>Sat, 05 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We completed the first full release, with a react component per each Bulma component.]]></description>
            <content:encoded><![CDATA[<p>We completed the first full release, with a react component per each Bulma component.</p>
<p>The first release is published under @allxsmith/bestax-bulma.</p>
<div class="theme-admonition theme-admonition-info admonition_zGgO alert alert--info"><div class="admonitionHeading_rkBs"><span class="admonitionIcon_LkKs"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_QemZ"><p>The package name changed from bestax-lib to bestax-bulma to help users search and find the project.</p><p>We reset the package version number from 1.x and 2.x to 1.0.0 since this is the first true release under the new package name.</p></div></div>
<p>Checkout our storybook, it has complete examples.</p>
<p>Shortly, we will eventually have live examples in this docusaurus site.</p>]]></content:encoded>
            <category>release</category>
            <category>v1</category>
        </item>
        <item>
            <title><![CDATA[Generating docs with Typedoc]]></title>
            <link>https://bestax.io/blog/typedoc-generated-docs</link>
            <guid>https://bestax.io/blog/typedoc-generated-docs</guid>
            <pubDate>Thu, 05 Jun 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Guess what? We finally have typedoc running and generating documentation for our project.]]></description>
            <content:encoded><![CDATA[<p>Guess what? We finally have typedoc running and generating documentation for our project.</p>
<p>Eventually we'll start weaving in code examples with react-live for super cool live examples.</p>]]></content:encoded>
            <category>typedoc</category>
        </item>
        <item>
            <title><![CDATA[New Bulma Components - Delete, Icon, Image, Notification, Progress]]></title>
            <link>https://bestax.io/blog/delete-icon-image-notification-progress</link>
            <guid>https://bestax.io/blog/delete-icon-image-notification-progress</guid>
            <pubDate>Wed, 28 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We've added a few components representing Bulma elements]]></description>
            <content:encoded><![CDATA[<p>We've added a few components representing Bulma elements</p>
<ul>
<li class="">Delete</li>
<li class="">Icon</li>
<li class="">Image</li>
<li class="">Notication</li>
<li class="">Progress <em>bars</em></li>
</ul>
<p>Checkout the storybook stories for examples.</p>
<p>I decided to continue working on creating components before "working on generating markdown as part of the builds". I promise, it's coming, just not right now...</p>]]></content:encoded>
            <category>bulma</category>
            <category>delete</category>
            <category>icon</category>
            <category>image</category>
            <category>notification</category>
            <category>progress</category>
        </item>
        <item>
            <title><![CDATA[New Bulma Components - Block, Box, Content, Button]]></title>
            <link>https://bestax.io/blog/block-box-content-button</link>
            <guid>https://bestax.io/blog/block-box-content-button</guid>
            <pubDate>Tue, 27 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We've added a few components representing Bulma elements]]></description>
            <content:encoded><![CDATA[<p>We've added a few components representing Bulma elements</p>
<ul>
<li class="">Block</li>
<li class="">Box</li>
<li class="">Content</li>
<li class="">Button</li>
</ul>
<p>Checkout the storybook stories for examples.</p>
<p>Docusaurus documentation is forth coming. Our next steps will be generating markdown as part of the builds.</p>]]></content:encoded>
            <category>bulma</category>
            <category>block</category>
            <category>box</category>
            <category>content</category>
            <category>button</category>
        </item>
        <item>
            <title><![CDATA[Bulma Helper]]></title>
            <link>https://bestax.io/blog/bulma-hook-helper</link>
            <guid>https://bestax.io/blog/bulma-hook-helper</guid>
            <pubDate>Mon, 26 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We've add a react hook that turns properties into bulma helper classes. It's pretty cool. You can add this to any custom component to leverage Bulma helper classes through properties.]]></description>
            <content:encoded><![CDATA[<p>We've add a react hook that turns properties into bulma helper classes. It's pretty cool. You can add this to any custom component to leverage Bulma helper classes through properties.</p>
<p>All of the components in this package use this helper <code>useBulmaClasses</code>.</p>
<p>To implement this it's pretty simple.</p>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> bulmaHelperClasses rest </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">useBulmaClasses</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#36acaa">color</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> textColor </span><span class="token comment" style="color:#999988;font-style:italic">// Map to has-text-{color}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token literal-property property" style="color:#36acaa">backgroundColor</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> bgColor </span><span class="token comment" style="color:#999988;font-style:italic">// Map to has-background-{color}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token spread operator" style="color:#393A34">...</span><span class="token plain">props </span><span class="token comment" style="color:#999988;font-style:italic">// Spread remaining Bulma props</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<div class="language-jsx codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_yQJb">Implementation</div><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-jsx codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag class-name" style="color:#00009f">MyComponent</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">m</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">2</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">color</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">primary</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag punctuation" style="color:#393A34">/&gt;</span><br></div></code></pre></div></div>
<p>The available properties are:</p>
<ul>
<li class="">color</li>
<li class="">backgroundColor</li>
<li class="">colorShade</li>
<li class="">m</li>
<li class="">mt</li>
<li class="">mr</li>
<li class="">mb</li>
<li class="">ml</li>
<li class="">mx</li>
<li class="">my</li>
<li class="">p</li>
<li class="">pt</li>
<li class="">pr</li>
<li class="">pb</li>
<li class="">pl</li>
<li class="">px</li>
<li class="">py</li>
<li class="">textSize</li>
<li class="">textAlign</li>
<li class="">textTransform</li>
<li class="">textWeight</li>
<li class="">fontFamily</li>
<li class="">display</li>
<li class="">visibility</li>
<li class="">flexDirection</li>
<li class="">flexWrap</li>
<li class="">justifyContent</li>
<li class="">alignContent</li>
<li class="">alignItems</li>
<li class="">alignSelf</li>
<li class="">flexGrow</li>
<li class="">flexShrink</li>
<li class="">float</li>
<li class="">overflow</li>
<li class="">overlay</li>
<li class="">interaction</li>
<li class="">radius</li>
<li class="">shadow</li>
<li class="">responsive</li>
<li class="">viewport</li>
</ul>]]></content:encoded>
            <category>bulma</category>
            <category>css</category>
            <category>props</category>
            <category>hook</category>
            <category>helper</category>
        </item>
        <item>
            <title><![CDATA[Changeset Action Signed Pull Request]]></title>
            <link>https://bestax.io/blog/changeset-action-signed-pr</link>
            <guid>https://bestax.io/blog/changeset-action-signed-pr</guid>
            <pubDate>Sun, 25 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[After much suffering, GPG signing on the PRs is finally working.]]></description>
            <content:encoded><![CDATA[<p>After much suffering, GPG signing on the PRs is finally working.</p>
<p>Turns out changeset/action@v1 recently added this feature. Signed commits. To enable it, we enabled an option:</p>
<p>commitMode: 'github-api'</p>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>Component Library</category>
            <category>changeset</category>
            <category>publish</category>
            <category>version</category>
            <category>signed</category>
            <category>gpg</category>
        </item>
        <item>
            <title><![CDATA[Changeset Action]]></title>
            <link>https://bestax.io/blog/changeset-action</link>
            <guid>https://bestax.io/blog/changeset-action</guid>
            <pubDate>Thu, 22 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[As the second phase of versioning. We integrated changesets into the CI/CD.]]></description>
            <content:encoded><![CDATA[<p>As the second phase of versioning. We integrated changesets into the CI/CD.</p>
<p>In our github CI workflow, we changed the publish task to use the changeset action
to automatically version and publish.</p>
<p>Also, we configured <strong>GPG</strong> signed commits for the github bot.</p>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>Component Library</category>
            <category>changeset</category>
            <category>publish</category>
        </item>
        <item>
            <title><![CDATA[Changesets Added]]></title>
            <link>https://bestax.io/blog/changesets-added</link>
            <guid>https://bestax.io/blog/changesets-added</guid>
            <pubDate>Wed, 21 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We've added Changeset to our project to help with versioning.]]></description>
            <content:encoded><![CDATA[<p>We've added <a href="https://github.com/changesets/changesets" target="_blank" rel="noopener noreferrer" class="">Changeset</a> to our project to help with versioning.</p>
<p>So far, it's super basic, but we plan on building on it. We're super excited!</p>
<p>The project is configured with the new <strong>changeset</strong> package.</p>
<p>Npm scripts have been added:</p>
<ul>
<li class="">npm run changeset</li>
<li class="">npm run version</li>
<li class="">npm run publish</li>
</ul>
<p>Our current CI/CD logic hasn't changed, but it will in the near future. A build still occurs, and it still attempts to publish.</p>
<p>The key difference with <strong>changeset</strong> is: the publish command now checks to see if the version number is not already published, and it doesn't fail if the version number has already been published.</p>
<p>Our next steps are to integrate the <a href="https://github.com/changesets/action" target="_blank" rel="noopener noreferrer" class="">changeset action</a> into our CI/CD.</p>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>Component Library</category>
            <category>changesets</category>
            <category>publish</category>
        </item>
        <item>
            <title><![CDATA[Npm Publishing]]></title>
            <link>https://bestax.io/blog/npm-publish</link>
            <guid>https://bestax.io/blog/npm-publish</guid>
            <pubDate>Mon, 19 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Super basic npm publishing is now setup and working via the CLI and via CI/CD.]]></description>
            <content:encoded><![CDATA[<p>Super basic <strong>npm</strong> <strong>publish</strong>ing is now setup and working via the CLI and via CI/CD.</p>
<p>The next enhancements to publishing will involve changesets and pull requests.</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_yQJb">Run from main directory of the mono repo</div><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm run publish</span><br></div></code></pre></div></div>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>Component Library</category>
            <category>npm</category>
            <category>publish</category>
        </item>
        <item>
            <title><![CDATA[Storybook Added to the Lib project]]></title>
            <link>https://bestax.io/blog/storybook-added-to-lib-project</link>
            <guid>https://bestax.io/blog/storybook-added-to-lib-project</guid>
            <pubDate>Sat, 17 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Storybook has been added to the Component Library project. Starting from now, all components should have a corresponding story. Starting with the Button.]]></description>
            <content:encoded><![CDATA[<p>Storybook has been added to the Component Library project. Starting from now, all components should have a corresponding story. Starting with the Button.</p>
<p>We also added a perfom <strong>all</strong> kind of script to the parent package.</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">npm run all</span><br></div></code></pre></div></div>
<p>This <strong>all</strong> command is an alias for all the CI/CD commands, all in one.</p>
<div class="language-bash codeBlockContainer_RtWh theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_FxMx"><pre tabindex="0" class="prism-code language-bash codeBlock_YtTE thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_D2yC"><div class="token-line" style="color:#393A34"><span class="token plain">turbo run build typecheck test test:coverage bundle:stats lint format:check &amp;&amp; turbo run build-storybook --filter=@allxsmith/bestax-bulma</span><br></div></code></pre></div></div>
<p>We also added the building of the storybook to our CI/CD. The artifacts are saved each build.</p>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>Component Library</category>
            <category>Storybook</category>
        </item>
        <item>
            <title><![CDATA[Configuring the Component Library]]></title>
            <link>https://bestax.io/blog/configure-component-library</link>
            <guid>https://bestax.io/blog/configure-component-library</guid>
            <pubDate>Fri, 16 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We've started configuring the component library & the toolchain. It's a fresh start, trying some new things.]]></description>
            <content:encoded><![CDATA[<p>We've started configuring the component library &amp; the toolchain. It's a fresh start, trying some new things.</p>
<p>To speed up builds, and help manage our mono repository, we're trying <a href="https://vercel.com/solutions/turborepo" target="_blank" rel="noopener noreferrer" class="">Turbo</a> out.</p>
<p>I'm a longtime Babel/Webpack user, but this go around I'm using <a href="https://rollupjs.org/" target="_blank" rel="noopener noreferrer" class="">Rollup</a> to bundle the new module.</p>
<p>We've tested a basic the build of a basic Button component and a corresponding unit test to make sure the library is building correctly.</p>
<p>Lastly, this project is going to use Typescript instead of plain'ole Javascript. This is not us choosing sides between Javascript and Typescript. We are doing this to be different from our past projects. The code will be new and fresh.</p>
<p>I can't promise we'll stick with this new configuration. We will be improving and enhancing it as we "get this show on the road"!</p>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>Component Library</category>
            <category>turbo</category>
            <category>typescript</category>
            <category>rollup</category>
        </item>
        <item>
            <title><![CDATA[Github Actions Integrated]]></title>
            <link>https://bestax.io/blog/github-actions</link>
            <guid>https://bestax.io/blog/github-actions</guid>
            <pubDate>Tue, 13 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[If you are seeing this on bestax.io, that means our docusaurus site has successfully deployed on github pages with a github action workflow.]]></description>
            <content:encoded><![CDATA[<p>If you are seeing this on <strong>bestax.io</strong>, that means our docusaurus site has successfully deployed on github pages with a github action workflow.</p>
<p>We have two github actions configured, a test-deploy and deploy.</p>
<ul>
<li class="">
<p><strong>test-deploy</strong>: is run whenever a pull request is made on <em>main</em>. This action ensures the site can build successfully.</p>
</li>
<li class="">
<p><strong>deploy</strong>: is run whenever a pull request is merged into main, or when someone successfully pushes to main directly.</p>
</li>
</ul>
<p>Yay CI/CD!</p>]]></content:encoded>
            <category>github</category>
            <category>Github Actions</category>
            <category>pages</category>
        </item>
        <item>
            <title><![CDATA[Welcome]]></title>
            <link>https://bestax.io/blog/welcome</link>
            <guid>https://bestax.io/blog/welcome</guid>
            <pubDate>Tue, 13 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Welcome to the first of many blog posts for the Bestax Stack!]]></description>
            <content:encoded><![CDATA[<p>Welcome to the first of many blog posts for the Bestax Stack!</p>
<p>A little bit about myself...I've been a avid programmer for various corporations, and commercial organizations for most of my life.</p>
<p>Bestax is going to be a pure opensource project. Written in my favorite language "Javascript". With all original code.</p>]]></content:encoded>
            <category>hello</category>
            <category>Docusaurus</category>
            <category>bestax</category>
        </item>
    </channel>
</rss>