]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Update button selectors and class usage (#42149)
authorMark Otto <markd.otto@gmail.com>
Wed, 11 Mar 2026 20:18:51 +0000 (13:18 -0700)
committerGitHub <noreply@github.com>
Wed, 11 Mar 2026 20:18:51 +0000 (13:18 -0700)
* Fix a ton of btn classes

* Update buttons class list, no need for .btn on any variants now, update classes across docs and examples

* fix

74 files changed:
config.yml
js/tests/integration/index.html
js/tests/visual/alert.html
js/tests/visual/button.html
js/tests/visual/datepicker.html
js/tests/visual/dialog.html
js/tests/visual/dropdown-submenu.html
js/tests/visual/dropdown.html
js/tests/visual/popover.html
js/tests/visual/toast.html
js/tests/visual/tooltip.html
scss/buttons/_button.scss
site/src/assets/examples/album/index.astro
site/src/assets/examples/blog/index.astro
site/src/assets/examples/buttons/index.astro
site/src/assets/examples/carousel/index.astro
site/src/assets/examples/cheatsheet/index.astro
site/src/assets/examples/checkout/index.astro
site/src/assets/examples/cover/index.astro
site/src/assets/examples/dashboard/index.astro
site/src/assets/examples/dialogs/index.astro
site/src/assets/examples/features/index.astro
site/src/assets/examples/footers/index.astro
site/src/assets/examples/headers/index.astro
site/src/assets/examples/heroes/index.astro
site/src/assets/examples/jumbotron/index.astro
site/src/assets/examples/jumbotrons/index.astro
site/src/assets/examples/navbar-bottom/index.astro
site/src/assets/examples/navbar-fixed/index.astro
site/src/assets/examples/navbar-static/index.astro
site/src/assets/examples/navbars-offcanvas/index.astro
site/src/assets/examples/navbars/index.astro
site/src/assets/examples/offcanvas-navbar/index.astro
site/src/assets/examples/pricing/index.astro
site/src/assets/examples/sign-in/index.astro
site/src/assets/examples/starter-template/index.astro
site/src/assets/examples/sticky-footer-navbar/index.astro
site/src/components/header/Navigation.astro
site/src/components/home/Plugins.astro
site/src/components/shortcodes/ButtonPlayground.astro
site/src/components/shortcodes/DropdownPlacementPlayground.astro
site/src/components/shortcodes/NavbarPlacementPlayground.astro
site/src/components/shortcodes/StepperPlayground.astro
site/src/content/docs/components/badge.mdx
site/src/content/docs/components/buttons.mdx
site/src/content/docs/components/card.mdx
site/src/content/docs/components/collapse.mdx
site/src/content/docs/components/dialog.mdx
site/src/content/docs/components/dropdown.mdx
site/src/content/docs/components/navbar.mdx
site/src/content/docs/components/offcanvas.mdx
site/src/content/docs/components/placeholder.mdx
site/src/content/docs/components/popover.mdx
site/src/content/docs/components/spinner.mdx
site/src/content/docs/components/toasts.mdx
site/src/content/docs/components/tooltip.mdx
site/src/content/docs/customize/color-modes.mdx
site/src/content/docs/customize/theme.mdx
site/src/content/docs/docsref.mdx
site/src/content/docs/forms/datepicker.mdx
site/src/content/docs/forms/form-control.mdx
site/src/content/docs/forms/layout.mdx
site/src/content/docs/forms/overview.mdx
site/src/content/docs/forms/validation.mdx
site/src/content/docs/getting-started/install.mdx
site/src/content/docs/getting-started/javascript.mdx
site/src/content/docs/guides/parcel.mdx
site/src/content/docs/guides/vite.mdx
site/src/content/docs/guides/webpack.mdx
site/src/content/docs/helpers/stretched-link.mdx
site/src/content/docs/utilities/position.mdx
site/src/layouts/DocsLayout.astro
site/src/layouts/partials/ThemeToggler.astro
site/src/pages/docs/[version]/examples/index.astro

index ac7ba6e14b7e468d441316ddcc6cac67561fe1fd..2715816227baa2c12a1ff46cc61c4e03cd7393e8 100644 (file)
@@ -50,4 +50,4 @@ anchors:
 
 toc:
   min:                  2
-  max:                  6
+  max:                  3
index 4c71bad9160d4bc543be7a00ee299300fad05205..3e3035d3c8e632545435ced1a2ab595c4b867eae 100644 (file)
@@ -15,7 +15,7 @@
       <h1>Hello, world!</h1>
 
       <div class="mt-5">
-        <button type="button" class="btn btn-secondary mb-3" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
+        <button type="button" class="btn-outline theme-secondary mb-3" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
           Tooltip on top
         </button>
 
index 2433b9e8e3508b6975943582bb8b5b77578fa945..c5b09b170ca7cf133a2b4d61bd200b5565368580 100644 (file)
@@ -21,8 +21,8 @@
           <strong>Oh snap!</strong> <a href="#" class="alert-link">Change a few things up</a> and try submitting again.
         </p>
         <p>
-          <button type="button" class="btn btn-danger">Danger</button>
-          <button type="button" class="btn btn-secondary">Secondary</button>
+          <button type="button" class="btn-solid theme-danger">Danger</button>
+          <button type="button" class="btn-solid theme-secondary">Secondary</button>
         </p>
       </div>
 
@@ -32,8 +32,8 @@
           <strong>Oh snap!</strong> <a href="#" class="alert-link">Change a few things up</a> and try submitting again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.
         </p>
         <p>
-          <button type="button" class="btn btn-danger">Take this action</button>
-          <button type="button" class="btn btn-primary">Or do this</button>
+          <button type="button" class="btn-solid theme-danger">Take this action</button>
+          <button type="button" class="btn-solid theme-primary">Or do this</button>
         </p>
       </div>
 
index 47c50889cae10f87e5d743404311d8de899b9894..054dcf034a9f492dd55019f9020b1842b039f1eb 100644 (file)
@@ -10,7 +10,7 @@
     <div class="container">
       <h1>Button <small>Bootstrap Visual Test</small></h1>
 
-      <button type="button" class="btn btn-primary" data-bs-toggle="button" aria-pressed="false" autocomplete="off">
+      <button type="button" class="btn-solid theme-primary" data-bs-toggle="button" aria-pressed="false" autocomplete="off">
         Single toggle
       </button>
 
       <p>Navigate to the checkboxes with the keyboard (generally, using <kbd>Tab</kbd> / <kbd><kbd>Shift</kbd> + <kbd>Tab</kbd></kbd>), and ensure that <kbd>Space</kbd> toggles the currently focused checkbox. Click on one of the checkboxes using the mouse, ensure that focus was correctly set on the actual checkbox, and that <kbd>Space</kbd> toggles the checkbox again.</p>
 
       <div class="btn-group" data-bs-toggle="buttons">
-        <label class="btn btn-primary active">
+        <label class="btn-solid theme-primary active">
           <input type="checkbox" checked autocomplete="off"> Checkbox 1 (pre-checked)
         </label>
-        <label class="btn btn-primary">
+        <label class="btn-solid theme-primary">
           <input type="checkbox" autocomplete="off"> Checkbox 2
         </label>
-        <label class="btn btn-primary">
+        <label class="btn-solid theme-primary">
           <input type="checkbox" autocomplete="off"> Checkbox 3
         </label>
       </div>
       <p>Navigate to the radio button group with the keyboard (generally, using <kbd>Tab</kbd> / <kbd><kbd>Shift</kbd> + <kbd>Tab</kbd></kbd>). If no radio button was initially set to be selected, the first/last radio button should receive focus (depending on whether you navigated "forward" to the group with <kbd>Tab</kbd> or "backwards" using <kbd><kbd>Shift</kbd> + <kbd>Tab</kbd></kbd>). If a radio button was already selected, navigating with the keyboard should set focus to that particular radio button. Only one radio button in a group should receive focus at any given time.  Ensure that the selected radio button can be changed by using the <kbd>←</kbd> and <kbd>→</kbd> arrow keys. Click on one of the radio buttons with the mouse,  ensure that focus was correctly set on the actual radio button, and that <kbd>←</kbd> and <kbd>→</kbd> change the selected radio button again.</p>
 
       <div class="btn-group" data-bs-toggle="buttons">
-        <label class="btn btn-primary active">
+        <label class="btn-solid theme-primary active">
           <input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
         </label>
-        <label class="btn btn-primary">
+        <label class="btn-solid theme-primary">
           <input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
         </label>
-        <label class="btn btn-primary">
+        <label class="btn-solid theme-primary">
           <input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
         </label>
       </div>
index 472f953f55499cf1262e1d516d13f85e6ce5776b..e50a9afd585e8109c2d67df14c2db7235aa219ea 100644 (file)
@@ -90,9 +90,9 @@
           <label for="jsDatepicker" class="form-label">Initialized via JavaScript</label>
           <input type="text" class="form-control" id="jsDatepicker" placeholder="Click to select">
           <div class="mt-2">
-            <button type="button" class="btn btn-primary btn-sm" id="showBtn">Show</button>
-            <button type="button" class="btn btn-secondary btn-sm" id="hideBtn">Hide</button>
-            <button type="button" class="btn btn-info btn-sm" id="getDatesBtn">Get Dates</button>
+            <button type="button" class="btn-solid theme-primary btn-sm" id="showBtn">Show</button>
+            <button type="button" class="btn-solid theme-secondary btn-sm" id="hideBtn">Hide</button>
+            <button type="button" class="btn-solid theme-info btn-sm" id="getDatesBtn">Get Dates</button>
           </div>
           <div id="selectedDatesOutput" class="mt-2 text-body-secondary"></div>
         </div>
index 68ed33612f16a5e874f622e30a8c655b089067af..ad31fc8c0551fb771445a3f01254ce01b0c87064 100644 (file)
@@ -26,7 +26,7 @@
           <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
 
           <h4>Popover in a dialog</h4>
-          <p>This <button type="button" class="btn btn-primary" data-bs-toggle="popover" data-bs-placement="left" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">button</button> should trigger a popover on click.</p>
+          <p>This <button type="button" class="btn-solid theme-primary" data-bs-toggle="popover" data-bs-placement="left" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">button</button> should trigger a popover on click.</p>
 
           <h4>Tooltips in a dialog</h4>
           <p><a href="#" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">This link</a> and <a href="#" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">that link</a> should have tooltips on hover.</p>
@@ -39,8 +39,8 @@
           <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
         </div>
         <div class="dialog-footer">
-          <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
-          <button type="button" class="btn btn-primary">Save changes</button>
+          <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+          <button type="button" class="btn-solid theme-primary">Save changes</button>
         </div>
       </dialog>
 
@@ -54,7 +54,7 @@
           <p>Press Escape or click the close button to dismiss.</p>
         </div>
         <div class="dialog-footer">
-          <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
+          <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
         </div>
       </dialog>
 
@@ -68,7 +68,7 @@
           <p>You must use the close button.</p>
         </div>
         <div class="dialog-footer">
-          <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
+          <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
         </div>
       </dialog>
 
@@ -82,8 +82,8 @@
           <p>Notice how the backdrop stays visible during the swap.</p>
         </div>
         <div class="dialog-footer">
-          <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
-          <button type="button" class="btn btn-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog2">Go to Second Dialog</button>
+          <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+          <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog2">Go to Second Dialog</button>
         </div>
       </dialog>
 
@@ -97,8 +97,8 @@
           <p>You can swap back to the first dialog or close this one.</p>
         </div>
         <div class="dialog-footer">
-          <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
-          <button type="button" class="btn btn-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog1">Back to First Dialog</button>
+          <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+          <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog1">Back to First Dialog</button>
         </div>
       </dialog>
 
           <p>Try clicking the buttons on the page behind this dialog!</p>
         </div>
         <div class="dialog-footer">
-          <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
+          <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
         </div>
       </dialog>
 
       <div class="d-flex flex-column gap-3">
         <div>
-          <button type="button" class="btn btn-primary btn-lg" data-bs-toggle="dialog" data-bs-target="#myDialog">
+          <button type="button" class="btn-solid theme-primary btn-lg" data-bs-toggle="dialog" data-bs-target="#myDialog">
             Launch demo dialog
           </button>
         </div>
 
         <div>
-          <button type="button" class="btn btn-secondary btn-lg" data-bs-toggle="dialog" data-bs-target="#staticBackdropDialog" data-bs-backdrop="static">
+          <button type="button" class="btn-solid theme-secondary btn-lg" data-bs-toggle="dialog" data-bs-target="#staticBackdropDialog" data-bs-backdrop="static">
             Launch static backdrop dialog
           </button>
         </div>
 
         <div>
-          <button type="button" class="btn btn-secondary btn-lg" data-bs-toggle="dialog" data-bs-target="#noKeyboardDialog" data-bs-keyboard="false">
+          <button type="button" class="btn-solid theme-secondary btn-lg" data-bs-toggle="dialog" data-bs-target="#noKeyboardDialog" data-bs-keyboard="false">
             Launch no-keyboard dialog
           </button>
         </div>
 
         <div>
-          <button type="button" class="btn btn-secondary btn-lg" data-bs-toggle="dialog" data-bs-target="#swapDialog1">
+          <button type="button" class="btn-solid theme-secondary btn-lg" data-bs-toggle="dialog" data-bs-target="#swapDialog1">
             Launch swap dialog demo
           </button>
         </div>
 
         <div>
-          <button type="button" class="btn btn-info btn-lg" data-bs-toggle="dialog" data-bs-target="#nonModalDialog" data-bs-modal="false">
+          <button type="button" class="btn-solid theme-info btn-lg" data-bs-toggle="dialog" data-bs-target="#nonModalDialog" data-bs-modal="false">
             Launch non-modal dialog
           </button>
           <small class="text-muted">(uses <code>show()</code> instead of <code>showModal()</code>)</small>
         </div>
 
         <div>
-          <button type="button" class="btn btn-secondary btn-lg" id="tall-toggle">
+          <button type="button" class="btn-solid theme-secondary btn-lg" id="tall-toggle">
             Toggle tall &lt;body&gt; content
           </button>
         </div>
 
         <div>
-          <button type="button" class="btn btn-secondary btn-lg" id="jsOpen">
+          <button type="button" class="btn-solid theme-secondary btn-lg" id="jsOpen">
             Open via JavaScript
           </button>
         </div>
index 351aa3478c16c3a62fd57788503572f27d179247..5212ba1e11fe0801d802ace5ec361c05cb21712a 100644 (file)
@@ -63,7 +63,7 @@
 
         <div class="demo-box">
           <div class="dropdown">
-            <button class="btn btn-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Dropdown with Submenu
             </button>
             <ul class="dropdown-menu">
@@ -93,7 +93,7 @@
 
         <div class="demo-box">
           <div class="dropdown">
-            <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Multi-level Menu
             </button>
             <ul class="dropdown-menu">
 
         <div class="demo-box">
           <div class="dropdown">
-            <button class="btn btn-info dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-info dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Multiple Submenus
             </button>
             <ul class="dropdown-menu">
 
         <div class="demo-box" style="justify-content: space-between;">
           <div class="dropdown">
-            <button class="btn btn-success dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-success dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Left Side (opens right)
             </button>
             <ul class="dropdown-menu">
           </div>
 
           <div class="dropdown">
-            <button class="btn btn-success dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-success dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Right Side (flips left)
             </button>
             <ul class="dropdown-menu">
 
         <div class="demo-box demo-box-center" style="min-height: 200px;">
           <div class="btn-group dropup">
-            <button type="button" class="btn btn-warning dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-warning dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
               Dropup Menu
             </button>
             <ul class="dropdown-menu">
 
         <div class="demo-box">
           <div class="dropdown">
-            <button class="btn btn-dark dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-dark dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Menu with Icons
             </button>
             <ul class="dropdown-menu">
 
         <div class="demo-box">
           <div class="dropdown">
-            <button class="btn btn-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Test on Mobile
             </button>
             <ul class="dropdown-menu">
 
         <div class="demo-box">
           <div class="dropdown">
-            <button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Menu with Disabled
             </button>
             <ul class="dropdown-menu">
index 8e55e4462266ab564b7c706425cca1214af789a8..971aad604e7ca85d49a3aab4b7032cae446e6b77 100644 (file)
       <div class="row">
         <div class="col-sm-12 mt-4">
           <div class="dropdown">
-            <button type="button" class="btn btn-secondary" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>
+            <button type="button" class="btn-solid theme-secondary" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>
             <div class="dropdown-menu">
               <input id="textField" type="text">
             </div>
           </div>
           <div class="btn-group dropup">
-            <button type="button" class="btn btn-secondary">Dropup split</button>
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-secondary">Dropup split</button>
+            <button type="button" class="btn-solid theme-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Dropup split</span>
             </button>
             <ul class="dropdown-menu">
@@ -82,7 +82,7 @@
 
         <div class="col-sm-12 mt-4">
           <div class="btn-group dropup">
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropup</button>
+            <button type="button" class="btn-solid theme-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropup</button>
             <ul class="dropdown-menu">
               <li><a class="dropdown-item" href="#">Action</a></li>
               <li><a class="dropdown-item" href="#">Another action</a></li>
@@ -91,7 +91,7 @@
           </div>
 
           <div class="btn-group">
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
               This dropdown's menu is end-aligned
             </button>
             <div class="dropdown-menu dropdown-menu-end">
 
         <div class="col-sm-12 mt-4">
           <div class="btn-group dropup">
-            <a href="#" class="btn btn-secondary">Dropup split align end</a>
-            <button type="button" id="dropdown-page-subheader-button-3" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <a href="#" class="btn-solid theme-secondary">Dropup split align end</a>
+            <button type="button" id="dropdown-page-subheader-button-3" class="btn-solid theme-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Product actions</span>
             </button>
             <div class="dropdown-menu dropdown-menu-end">
             </div>
           </div>
           <div class="btn-group dropup">
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropup align end</button>
+            <button type="button" class="btn-solid theme-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropup align end</button>
             <div class="dropdown-menu dropdown-menu-end">
               <button class="dropdown-item" type="button">Action</button>
               <button class="dropdown-item" type="button">Another action</button>
 
         <div class="col-sm-12 mt-4">
           <div class="btn-group dropend">
-            <a href="#" class="btn btn-secondary">Dropend split</a>
-            <button type="button" id="dropdown-page-subheader-button-4" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <a href="#" class="btn-solid theme-secondary">Dropend split</a>
+            <button type="button" id="dropdown-page-subheader-button-4" class="btn-solid theme-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Product actions</span>
             </button>
             <div class="dropdown-menu">
             </div>
           </div>
           <div class="btn-group dropend">
-            <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Dropend
             </button>
             <div class="dropdown-menu">
           </div>
           <!-- dropstart -->
           <div class="btn-group dropstart">
-            <a href="#" class="btn btn-secondary">Dropstart split</a>
-            <button type="button" id="dropdown-page-subheader-button-5" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <a href="#" class="btn-solid theme-secondary">Dropstart split</a>
+            <button type="button" id="dropdown-page-subheader-button-5" class="btn-solid theme-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Product actions</span>
             </button>
             <div class="dropdown-menu">
             </div>
           </div>
           <div class="btn-group dropstart">
-            <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Dropstart
             </button>
             <div class="dropdown-menu">
       <div class="row">
         <div class="col-sm-3 mt-4">
           <div class="btn-group dropdown">
-            <button type="button" class="btn btn-secondary">Dropdown reference</button>
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false" data-bs-reference="parent">
+            <button type="button" class="btn-solid theme-secondary">Dropdown reference</button>
+            <button type="button" class="btn-solid theme-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false" data-bs-reference="parent">
               <span class="visually-hidden">Dropdown split</span>
             </button>
             <ul class="dropdown-menu">
         </div>
         <div class="col-sm-3 mt-4">
           <div class="dropdown">
-            <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false">
+            <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false">
               Dropdown menu with static display
             </button>
             <ul class="dropdown-menu">
index 73edf998d48f7d1512b1fc6dc11fc7ed8314256f..36a20cac471f4ee9132fb9b13903f05cf2d5cd20 100644 (file)
     <div class="container">
       <h1>Popover <small>Bootstrap Visual Test</small></h1>
 
-      <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="auto" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+      <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="auto" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
         Popover on auto
       </button>
 
-      <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Default placement was on top but not enough place">
+      <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Default placement was on top but not enough place">
         Popover on top
       </button>
 
-      <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+      <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
         Popover on end
       </button>
 
-      <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+      <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
         Popover on bottom
       </button>
 
-      <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+      <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
         Popover on start
       </button>
     </div>
index e64fd1d880fb28f6e56e2f9fc5e64e652d133e54..a36b2e619da0fe235704557eb809647e5031ffc7 100644 (file)
@@ -19,8 +19,8 @@
 
       <div class="row mt-3">
         <div class="col-md-12">
-          <button id="btnShowToast" class="btn btn-primary">Show toast</button>
-          <button id="btnHideToast" class="btn btn-primary">Hide toast</button>
+          <button id="btnShowToast" class="btn-solid theme-primary">Show toast</button>
+          <button id="btnHideToast" class="btn-solid theme-primary">Hide toast</button>
         </div>
       </div>
     </div>
index d03d3b3bbddfc733f416c997b1d1a76c9ccb4bf3..532380a2ac8169957221f83af77a0cbd8322a91d 100644 (file)
 
       <div class="row">
         <p>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="auto" title="Tooltip on auto">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="auto" title="Tooltip on auto">
             Tooltip on auto
           </button>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">
             Tooltip on top
           </button>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" title="Tooltip on right">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="right" title="Tooltip on right">
             Tooltip on end
           </button>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">
             Tooltip on bottom
           </button>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip on left">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip on left">
             Tooltip on start
           </button>
         </p>
       </div>
       <div class="row">
         <p>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip with container (selector)" data-bs-container="#customContainer">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip with container (selector)" data-bs-container="#customContainer">
             Tooltip with container (selector)
           </button>
-          <button id="tooltipElement" type="button" class="btn btn-secondary" data-bs-placement="left" title="Tooltip with container (element)">
+          <button id="tooltipElement" type="button" class="btn-solid theme-secondary" data-bs-placement="left" title="Tooltip with container (element)">
             Tooltip with container (element)
           </button>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
             Tooltip with HTML
           </button>
-          <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip with XSS" data-bs-container="<img src=1 onerror=alert(123)>">
+          <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip with XSS" data-bs-container="<img src=1 onerror=alert(123)>">
             Tooltip with XSS
           </button>
         </p>
         <div class="h4">Test Selector triggered tooltips</div>
         <div id="wrapperTriggeredBySelector">
           <div class="py-2 selectorButtonsBlock">
-            <button type="button" class="btn btn-secondary bs-dynamic-tooltip" title="random title">Using title</button>
-            <button type="button" class="btn btn-secondary bs-dynamic-tooltip" data-bs-title="random title">Using bs-title</button>
+            <button type="button" class="btn-solid theme-secondary bs-dynamic-tooltip" title="random title">Using title</button>
+            <button type="button" class="btn-solid theme-secondary bs-dynamic-tooltip" data-bs-title="random title">Using bs-title</button>
           </div>
 
         </div>
         <div class="mt-3">
-          <button type="button" class="btn btn-primary" onclick="duplicateButtons()">Duplicate above two buttons</button>
+          <button type="button" class="btn-solid theme-primary" onclick="duplicateButtons()">Duplicate above two buttons</button>
         </div>
       </div>
     </div>
       if (typeof document.body.attachShadow === 'function') {
         const shadowRoot = document.getElementById('shadow').attachShadow({ mode: 'open' })
         shadowRoot.innerHTML =
-          '<button id="firstShadowTooltip" type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top in a shadow dom">' +
+          '<button id="firstShadowTooltip" type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top in a shadow dom">' +
           '  Tooltip on top in a shadow dom' +
           '</button>' +
-          '<button id="secondShadowTooltip" type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top in a shadow dom with container option">' +
+          '<button id="secondShadowTooltip" type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top in a shadow dom with container option">' +
           '  Tooltip on top in a shadow dom' +
           '</button>'
 
index 58ffe2e2f33a947835bc331f4ed07c25458c0136..3826471bb5a9ff8ea69519e70336ad4b6b206e66 100644 (file)
@@ -165,13 +165,14 @@ $button-variants: defaults(
 // Base styles
 //
 
-$btn-variant-selectors: () !default;
+// scss-docs-start btn-variant-selectors
+$btn-variant-selectors: (string.unquote(".btn"), string.unquote(".btn-link"), string.unquote(".btn-icon")) !default;
 @each $variant, $config in $button-variants {
   $btn-variant-selectors: list.append($btn-variant-selectors, string.unquote(".btn-#{$variant}"), comma);
 }
+// scss-docs-end btn-variant-selectors
 
 @layer components {
-  .btn,
   #{$btn-variant-selectors} {
     @include tokens($button-tokens);
 
index 6fe3d5fe6843b1d7988b0d077c02a07ebe91fbb0..b4dd5de4598e2e670224997f282a04c853d6e254 100644 (file)
@@ -45,8 +45,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
         <h1 class="fw-light">Album example</h1>
         <p class="lead text-body-secondary">Something short and leading about the collection below—its contents, the creator, etc. Make it short and sweet, but not too short so folks don’t simply skip over it entirely.</p>
         <p>
-          <a href="#" class="btn btn-primary my-2">Main call to action</a>
-          <a href="#" class="btn btn-secondary my-2">Secondary action</a>
+          <a href="#" class="btn-solid theme-primary my-2">Main call to action</a>
+          <a href="#" class="btn-solid theme-secondary my-2">Secondary action</a>
         </p>
       </div>
     </div>
@@ -63,8 +63,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -78,8 +78,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -93,8 +93,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -109,8 +109,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -124,8 +124,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -139,8 +139,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -155,8 +155,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -170,8 +170,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
@@ -185,8 +185,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
               <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
               <div class="d-flex justify-content-between align-items-center">
                 <div class="btn-group">
-                  <button type="button" class="btn btn-sm btn-outline-secondary">View</button>
-                  <button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">View</button>
+                  <button type="button" class="btn-outline theme-secondary btn-sm">Edit</button>
                 </div>
                 <small class="text-body-secondary">9 mins</small>
               </div>
index 0ed4da010989b47376c231ec3c4c1f4356812946..61fba9aa034cf2bb4bd28ae8a10c017528ebf04e 100644 (file)
@@ -30,7 +30,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
         <a class="link-secondary" href="#" aria-label="Search">
           <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="mx-3" role="img" viewBox="0 0 24 24"><title>Search</title><circle cx="10.5" cy="10.5" r="7.5"/><path d="M21 21l-5.2-5.2"/></svg>
         </a>
-        <a class="btn btn-sm btn-outline-secondary" href="#">Sign up</a>
+        <a class="btn-outline theme-secondary btn-sm" href="#">Sign up</a>
       </div>
     </div>
   </header>
@@ -221,8 +221,8 @@ import Placeholder from "@shortcodes/Placeholder.astro"
       </article>
 
       <nav class="blog-pagination" aria-label="Pagination">
-        <a class="btn btn-outline-primary rounded-pill" href="#">Older</a>
-        <a class="btn btn-outline-secondary rounded-pill disabled" aria-disabled="true">Newer</a>
+        <a class="btn-outline theme-primary rounded-pill" href="#">Older</a>
+        <a class="btn-outline theme-secondary rounded-pill disabled" aria-disabled="true">Newer</a>
       </nav>
 
     </div>
index a1dbfc6d74ea9e1a0cf753da7437f5a8f3f73ec7..e4ccd9c5f63b26792dad44437c34e8044209e9f1 100644 (file)
@@ -13,34 +13,35 @@ export const title = 'Buttons'
 </svg>
 
 <div class="d-flex gap-2 justify-content-center py-5">
-  <button class="btn btn-primary rounded-pill px-3" type="button">Primary</button>
-  <button class="btn btn-secondary rounded-pill px-3" type="button">Secondary</button>
-  <button class="btn btn-success rounded-pill px-3" type="button">Success</button>
-  <button class="btn btn-danger rounded-pill px-3" type="button">Danger</button>
-  <button class="btn btn-warning rounded-pill px-3" type="button">Warning</button>
-  <button class="btn btn-info rounded-pill px-3" type="button">Info</button>
-  <button class="btn btn-light rounded-pill px-3" type="button">Light</button>
-  <button class="btn btn-dark rounded-pill px-3" type="button">Dark</button>
-  <button class="btn btn-link rounded-pill px-3" type="button">Link</button>
+  <button class="btn-solid theme-primary rounded-pill px-3" type="button">Primary</button>
+  <button class="btn-solid theme-secondary rounded-pill px-3" type="button">Secondary</button>
+  <button class="btn-solid theme-accent rounded-pill px-3" type="button">Accent</button>
+  <button class="btn-solid theme-success rounded-pill px-3" type="button">Success</button>
+  <button class="btn-solid theme-danger rounded-pill px-3" type="button">Danger</button>
+  <button class="btn-solid theme-warning rounded-pill px-3" type="button">Warning</button>
+  <button class="btn-solid theme-info rounded-pill px-3" type="button">Info</button>
+  <button class="btn-solid theme-light rounded-pill px-3" type="button">Light</button>
+  <button class="btn-solid theme-inverse rounded-pill px-3" type="button">Dark</button>
+  <button class="btn btn-link" type="button">Link</button>
 </div>
 
 <div class="b-example-divider"></div>
 
 <div class="col-lg-6 col-2xl-4 my-5 mx-auto">
   <div class="d-grid gap-2">
-    <button class="btn btn-outline-secondary" type="button">Secondary action</button>
-    <button class="btn btn-primary" type="button">Primary action</button>
+    <button class="btn-solid theme-outline-secondary" type="button">Secondary action</button>
+    <button class="btn-solid theme-primary" type="button">Primary action</button>
   </div>
 </div>
 
 <div class="b-example-divider"></div>
 
 <div class="d-flex gap-2 justify-content-center py-5">
-  <button class="btn btn-primary d-inline-flex align-items-center" type="button">
+  <button class="btn-solid theme-primary" type="button">
     Primary icon
     <svg class="bi ms-1" width="20" height="20" aria-hidden="true"><use href="#arrow-right-short"/></svg>
   </button>
-  <button class="btn btn-outline-secondary d-inline-flex align-items-center" type="button">
+  <button class="btn-solid theme-outline-secondary" type="button">
     Secondary icon
     <svg class="bi ms-1" width="20" height="20" aria-hidden="true"><use href="#arrow-right-short"/></svg>
   </button>
@@ -49,11 +50,11 @@ export const title = 'Buttons'
 <div class="b-example-divider"></div>
 
 <div class="d-flex gap-2 justify-content-center py-5">
-  <button class="btn btn-primary" type="button" disabled>
+  <button class="btn-solid theme-primary" type="button" disabled>
     <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
     <span class="visually-hidden" role="status">Loading...</span>
   </button>
-  <button class="btn btn-primary" type="button" disabled>
+  <button class="btn-solid theme-primary" type="button" disabled>
     <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
     <span role="status">Loading...</span>
   </button>
@@ -62,22 +63,22 @@ export const title = 'Buttons'
 <div class="b-example-divider"></div>
 
 <div class="d-flex gap-2 justify-content-center pt-5 pb-4">
-  <button class="btn btn-primary rounded-circle p-2 lh-1" type="button">
+  <button class="btn-icon btn-solid theme-primary rounded-circle p-2 lh-1" type="button">
     <svg class="bi" width="16" height="16" aria-hidden="true"><use href="#x-lg"/></svg>
     <span class="visually-hidden">Dismiss</span>
   </button>
-  <button class="btn btn-outline-primary rounded-circle p-2 lh-1" type="button">
+  <button class="btn-icon btn-solid theme-outline-primary rounded-circle p-2 lh-1" type="button">
     <svg class="bi" width="16" height="16" aria-hidden="true"><use href="#x-lg"/></svg>
     <span class="visually-hidden">Dismiss</span>
   </button>
 </div>
 
 <div class="d-flex gap-2 justify-content-center pb-5">
-  <button class="btn btn-primary rounded-circle p-3 lh-1" type="button">
+  <button class="btn-icon btn-solid theme-primary rounded-circle p-3 lh-1" type="button">
     <svg class="bi" width="24" height="24" aria-hidden="true"><use href="#x-lg"/></svg>
     <span class="visually-hidden">Dismiss</span>
   </button>
-  <button class="btn btn-outline-primary rounded-circle p-3 lh-1" type="button">
+  <button class="btn-icon btn-solid theme-outline-primary rounded-circle p-3 lh-1" type="button">
     <svg class="bi" width="24" height="24" aria-hidden="true"><use href="#x-lg"/></svg>
     <span class="visually-hidden">Dismiss</span>
   </button>
index 8660d7458d4c18d7f13b95961da040d915ca5174..14db98c481e27f401611671ae5b0e35389272756 100644 (file)
@@ -25,7 +25,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
         </ul>
         <form class="d-flex" role="search">
           <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-          <button class="btn btn-outline-success" type="submit">Search</button>
+          <button class="btn-outline theme-success" type="submit">Search</button>
         </form>
       </div>
     </div>
@@ -47,7 +47,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
           <div class="carousel-caption text-start">
             <h1>Example headline.</h1>
             <p class="opacity-75">Some representative placeholder content for the first slide of the carousel.</p>
-            <p><a class="btn btn-lg btn-primary" href="#">Sign up today</a></p>
+            <p><a class="btn-solid theme-primary btn-lg" href="#">Sign up today</a></p>
           </div>
         </div>
       </div>
@@ -57,7 +57,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
           <div class="carousel-caption">
             <h1>Another example headline.</h1>
             <p>Some representative placeholder content for the second slide of the carousel.</p>
-            <p><a class="btn btn-lg btn-primary" href="#">Learn more</a></p>
+            <p><a class="btn-solid theme-primary btn-lg" href="#">Learn more</a></p>
           </div>
         </div>
       </div>
@@ -67,7 +67,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
           <div class="carousel-caption text-end">
             <h1>One more for good measure.</h1>
             <p>Some representative placeholder content for the third slide of this carousel.</p>
-            <p><a class="btn btn-lg btn-primary" href="#">Browse gallery</a></p>
+            <p><a class="btn-solid theme-primary btn-lg" href="#">Browse gallery</a></p>
           </div>
         </div>
       </div>
@@ -95,19 +95,19 @@ import Placeholder from "@shortcodes/Placeholder.astro"
         <Placeholder width="140" height="140" background="var(--bs-secondary-color)" text={false} class="rounded-circle" />
         <h2 class="fw-normal">Heading</h2>
         <p>Some representative placeholder content for the three columns of text below the carousel. This is the first column.</p>
-        <p><a class="btn btn-secondary" href="#">View details &raquo;</a></p>
+        <p><a class="btn-solid theme-secondary" href="#">View details &raquo;</a></p>
       </div><!-- /.col-lg-4 -->
       <div class="col-lg-4">
         <Placeholder width="140" height="140" background="var(--bs-secondary-color)" text={false} class="rounded-circle" />
         <h2 class="fw-normal">Heading</h2>
         <p>Another exciting bit of representative placeholder content. This time, we've moved on to the second column.</p>
-        <p><a class="btn btn-secondary" href="#">View details &raquo;</a></p>
+        <p><a class="btn-solid theme-secondary" href="#">View details &raquo;</a></p>
       </div><!-- /.col-lg-4 -->
       <div class="col-lg-4">
         <Placeholder width="140" height="140" background="var(--bs-secondary-color)" text={false} class="rounded-circle" />
         <h2 class="fw-normal">Heading</h2>
         <p>And lastly this, the third column of representative placeholder content.</p>
-        <p><a class="btn btn-secondary" href="#">View details &raquo;</a></p>
+        <p><a class="btn-solid theme-secondary" href="#">View details &raquo;</a></p>
       </div><!-- /.col-lg-4 -->
     </div><!-- /.row -->
 
index 60c91be15a887f71cdd26a94253f062588453f2b..e38895fd10ad47de1df05708ec8c6e202748977c 100644 (file)
@@ -360,7 +360,7 @@ export const body_class = 'bg-body-tertiary'
             <label for="customRange3" class="form-label">Example range</label>
             <input type="range" class="form-range" min="0" max="5" step="0.5" id="customRange3">
           </div>
-          <button type="submit" class="btn btn-primary">Submit</button>
+          <button type="submit" class="btn-solid theme-primary">Submit</button>
         </form>`} />
       </div>
     </article>
@@ -415,7 +415,7 @@ export const body_class = 'bg-body-tertiary'
               <label for="disabledRange" class="form-label">Disabled range</label>
               <input type="range" class="form-range" min="0" max="5" step="0.5" id="disabledRange">
             </div>
-            <button type="submit" class="btn btn-primary">Submit</button>
+            <button type="submit" class="btn-solid theme-primary">Submit</button>
           </fieldset>
         </form>`} />
       </div>
@@ -584,7 +584,7 @@ export const body_class = 'bg-body-tertiary'
             </div>
           </div>
           <div class="col-12">
-            <button class="btn btn-primary" type="submit">Submit form</button>
+            <button class="btn-solid theme-primary" type="submit">Submit form</button>
           </div>
         </form>
         `} />
@@ -717,18 +717,18 @@ export const body_class = 'bg-body-tertiary'
       <div>
         <Example showMarkup={false} code={[
           ...getData('theme-colors').map((themeColor) => `
-          <button type="button" class="btn btn-${themeColor.name}">${themeColor.title}</button>
+          <button type="button" class="btn-solid theme-${themeColor.name}">${themeColor.title}</button>
           `),
-          `<button type="button" class="btn btn-link">Link</button>`]} />
+          `<button type="button" class="btn-solid theme-link">Link</button>`]} />
 
         <Example showMarkup={false} code={getData('theme-colors').map((themeColor) => `
-          <button type="button" class="btn btn-outline-${themeColor.name}">${themeColor.title}</button>
+          <button type="button" class="btn-solid theme-outline-${themeColor.name}">${themeColor.title}</button>
           `)} />
 
         <Example showMarkup={false} code={`
-          <button type="button" class="btn btn-primary btn-sm">Small button</button>
-          <button type="button" class="btn btn-primary">Standard button</button>
-          <button type="button" class="btn btn-primary btn-lg">Large button</button>
+          <button type="button" class="btn-solid theme-primary btn-sm">Small button</button>
+          <button type="button" class="btn-solid theme-primary">Standard button</button>
+          <button type="button" class="btn-solid theme-primary btn-lg">Large button</button>
           `} />
       </div>
     </article>
@@ -742,18 +742,18 @@ export const body_class = 'bg-body-tertiary'
         <Example showMarkup={false} code={`
         <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
           <div class="btn-group me-2" role="group" aria-label="First group">
-            <button type="button" class="btn btn-secondary">1</button>
-            <button type="button" class="btn btn-secondary">2</button>
-            <button type="button" class="btn btn-secondary">3</button>
-            <button type="button" class="btn btn-secondary">4</button>
+            <button type="button" class="btn-solid theme-secondary">1</button>
+            <button type="button" class="btn-solid theme-secondary">2</button>
+            <button type="button" class="btn-solid theme-secondary">3</button>
+            <button type="button" class="btn-solid theme-secondary">4</button>
           </div>
           <div class="btn-group me-2" role="group" aria-label="Second group">
-            <button type="button" class="btn btn-secondary">5</button>
-            <button type="button" class="btn btn-secondary">6</button>
-            <button type="button" class="btn btn-secondary">7</button>
+            <button type="button" class="btn-solid theme-secondary">5</button>
+            <button type="button" class="btn-solid theme-secondary">6</button>
+            <button type="button" class="btn-solid theme-secondary">7</button>
           </div>
           <div class="btn-group" role="group" aria-label="Third group">
-            <button type="button" class="btn btn-secondary">8</button>
+            <button type="button" class="btn-solid theme-secondary">8</button>
           </div>
         </div>
         `} />
@@ -774,7 +774,7 @@ export const body_class = 'bg-body-tertiary'
                 <div class="card-body">
                   <h5 class="card-title">Card title</h5>
                   <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
-                  <a href="#" class="btn btn-primary">Go somewhere</a>
+                  <a href="#" class="btn-solid theme-primary">Go somewhere</a>
                 </div>
               </div>
             </div>
@@ -786,7 +786,7 @@ export const body_class = 'bg-body-tertiary'
                 <div class="card-body">
                   <h5 class="card-title">Card title</h5>
                   <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
-                  <a href="#" class="btn btn-primary">Go somewhere</a>
+                  <a href="#" class="btn-solid theme-primary">Go somewhere</a>
                 </div>
                 <div class="card-footer text-body-secondary">
                   2 days ago
@@ -887,10 +887,10 @@ export const body_class = 'bg-body-tertiary'
 
       <div>
         <Example showMarkup={false} code={`
-        <button type="button" class="btn btn-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialog">
+        <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialog">
           Launch demo dialog
         </button>
-        <button type="button" class="btn btn-primary" data-bs-toggle="dialog" data-bs-target="#staticBackdropDialog">
+        <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#staticBackdropDialog">
           Launch static backdrop dialog
         </button>
         `} />
@@ -905,7 +905,7 @@ export const body_class = 'bg-body-tertiary'
         <Example showMarkup={false} code={`
         <div class="btn-group w-100 align-items-center justify-content-between flex-wrap me-0">
           <div class="dropdown">
-            <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Dropdown button
             </button>
             <ul class="dropdown-menu">
@@ -918,7 +918,7 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div>
           <div class="dropdown">
-            <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Dropdown button
             </button>
             <ul class="dropdown-menu">
@@ -931,7 +931,7 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div>
           <div class="dropdown">
-            <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-secondary btn-lg dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
               Dropdown button
             </button>
             <ul class="dropdown-menu">
@@ -948,8 +948,8 @@ export const body_class = 'bg-body-tertiary'
 
         <Example showMarkup={false} code={`
           <div class="btn-group">
-            <button type="button" class="btn btn-primary">Primary</button>
-            <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-primary">Primary</button>
+            <button type="button" class="btn-solid theme-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Toggle Dropdown</span>
             </button>
             <ul class="dropdown-menu">
@@ -959,8 +959,8 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div><!-- /btn-group -->
           <div class="btn-group">
-            <button type="button" class="btn btn-secondary">Secondary</button>
-            <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-secondary">Secondary</button>
+            <button type="button" class="btn-solid theme-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Toggle Dropdown</span>
             </button>
             <ul class="dropdown-menu">
@@ -970,8 +970,8 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div><!-- /btn-group -->
           <div class="btn-group">
-            <button type="button" class="btn btn-success">Success</button>
-            <button type="button" class="btn btn-success dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-success">Success</button>
+            <button type="button" class="btn-solid theme-success dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Toggle Dropdown</span>
             </button>
             <ul class="dropdown-menu">
@@ -981,8 +981,8 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div><!-- /btn-group -->
           <div class="btn-group">
-            <button type="button" class="btn btn-info">Info</button>
-            <button type="button" class="btn btn-info dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-info">Info</button>
+            <button type="button" class="btn-solid theme-info dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Toggle Dropdown</span>
             </button>
             <ul class="dropdown-menu">
@@ -992,8 +992,8 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div><!-- /btn-group -->
           <div class="btn-group">
-            <button type="button" class="btn btn-warning">Warning</button>
-            <button type="button" class="btn btn-warning dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-warning">Warning</button>
+            <button type="button" class="btn-solid theme-warning dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Toggle Dropdown</span>
             </button>
             <ul class="dropdown-menu">
@@ -1003,8 +1003,8 @@ export const body_class = 'bg-body-tertiary'
             </ul>
           </div><!-- /btn-group -->
           <div class="btn-group">
-            <button type="button" class="btn btn-danger">Danger</button>
-            <button type="button" class="btn btn-danger dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+            <button type="button" class="btn-solid theme-danger">Danger</button>
+            <button type="button" class="btn-solid theme-danger dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
               <span class="visually-hidden">Toggle Dropdown</span>
             </button>
             <ul class="dropdown-menu">
@@ -1018,7 +1018,7 @@ export const body_class = 'bg-body-tertiary'
         <Example showMarkup={false} code={`
           <div class="btn-group w-100 align-items-center justify-content-between flex-wrap me-0">
             <div class="dropend">
-              <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+              <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
                 Dropend button
               </button>
               <ul class="dropdown-menu">
@@ -1031,7 +1031,7 @@ export const body_class = 'bg-body-tertiary'
               </ul>
             </div>
             <div class="dropup">
-              <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+              <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
                 Dropup button
               </button>
               <ul class="dropdown-menu">
@@ -1044,7 +1044,7 @@ export const body_class = 'bg-body-tertiary'
               </ul>
             </div>
             <div class="dropstart">
-              <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+              <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
                 Dropstart button
               </button>
               <ul class="dropdown-menu">
@@ -1062,7 +1062,7 @@ export const body_class = 'bg-body-tertiary'
         <Example showMarkup={false} code={`
           <div class="btn-group">
             <div class="dropdown">
-              <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+              <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
                 End-aligned menu
               </button>
               <ul class="dropdown-menu dropdown-menu-end">
@@ -1209,7 +1209,7 @@ export const body_class = 'bg-body-tertiary'
                 </ul>
                 <form class="d-flex" role="search">
                   <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-                  <button class="btn btn-outline-dark" type="submit">Search</button>
+                  <button class="btn-solid theme-outline-dark" type="submit">Search</button>
                 </form>
               </div>
             </div>
@@ -1248,7 +1248,7 @@ export const body_class = 'bg-body-tertiary'
                 </ul>
                 <form class="d-flex" role="search">
                   <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-                  <button class="btn btn-outline-light" type="submit">Search</button>
+                  <button class="btn-solid theme-outline-light" type="submit">Search</button>
                 </form>
               </div>
             </div>
@@ -1322,20 +1322,20 @@ export const body_class = 'bg-body-tertiary'
 
       <div>
         <Example showMarkup={false} code={`
-        <button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
+        <button type="button" class="btn-solid theme-danger btn-lg" data-bs-toggle="popover" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
         `} />
 
         <Example showMarkup={false} code={`
-        <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+        <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
           Popover on top
         </button>
-        <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+        <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
           Popover on end
         </button>
-        <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+        <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
           Popover on bottom
         </button>
-        <button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
+        <button type="button" class="btn-solid theme-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
           Popover on start
         </button>
         `} />
@@ -1471,11 +1471,11 @@ export const body_class = 'bg-body-tertiary'
 
       <div>
         <Example showMarkup={false} class="tooltip-demo" code={`
-        <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">Tooltip on top</button>
-        <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" title="Tooltip on end">Tooltip on end</button>
-        <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</button>
-        <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip on start">Tooltip on start</button>
-        <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">Tooltip with HTML</button>
+        <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip on top">Tooltip on top</button>
+        <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="right" title="Tooltip on end">Tooltip on end</button>
+        <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</button>
+        <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-placement="left" title="Tooltip on start">Tooltip on start</button>
+        <button type="button" class="btn-solid theme-secondary" data-bs-toggle="tooltip" data-bs-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">Tooltip with HTML</button>
         `} />
       </div>
     </article>
@@ -1491,8 +1491,8 @@ export const body_class = 'bg-body-tertiary'
     <p>This is a native dialog element using Bootstrap's Dialog component.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-primary">Save changes</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Save changes</button>
   </div>
 </dialog>
 
@@ -1505,7 +1505,7 @@ export const body_class = 'bg-body-tertiary'
     <p>I will not close if you click outside of me. Use the close button or press Escape.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-primary">Understood</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Understood</button>
   </div>
 </dialog>
index 029bc796bf85e32cdefb8f2b52cdc31295a5bd7c..c4185bc1f244146305fa5e8a3819149be7098860 100644 (file)
@@ -59,7 +59,7 @@ export const body_class = 'bg-body-tertiary'
         <form class="card p-2">
           <div class="input-group">
             <input type="text" class="form-control" placeholder="Promo code">
-            <button type="submit" class="btn btn-secondary">Redeem</button>
+            <button type="submit" class="btn-solid theme-secondary">Redeem</button>
           </div>
         </form>
       </div>
@@ -214,7 +214,7 @@ export const body_class = 'bg-body-tertiary'
 
           <hr class="my-4">
 
-          <button class="w-100 btn btn-primary btn-lg" type="submit">Continue to checkout</button>
+          <button class="w-100 btn-solid theme-primary btn-lg" type="submit">Continue to checkout</button>
         </form>
       </div>
     </div>
index 3af7315016173c1bed172dfd6de29ad247208706..1b84aa9608a4d938c6fe4ebea3ed41e526efa9b6 100644 (file)
@@ -21,7 +21,7 @@ export const body_class = 'd-flex h-100 text-center text-bg-dark'
     <h1>Cover your page.</h1>
     <p class="lead">Cover is a one-page template for building simple and beautiful home pages. Download, edit the text, and add your own fullscreen background photo to make it your own.</p>
     <p class="lead">
-      <a href="#" class="btn btn-lg btn-light fw-bold border-white bg-white">Learn more</a>
+      <a href="#" class="btn-solid theme-inverse btn-lg fw-bold">Learn more</a>
     </p>
   </main>
 
index d0f531659adc72ecbd6a0982c23973fb4eee8820..331e02decfc01763148b1528fdafbaac0153c79a 100644 (file)
@@ -184,10 +184,10 @@ export const extra_js = [
         <h1 class="h2">Dashboard</h1>
         <div class="btn-toolbar mb-2 mb-md-0">
           <div class="btn-group me-2">
-            <button type="button" class="btn btn-sm btn-outline-secondary">Share</button>
-            <button type="button" class="btn btn-sm btn-outline-secondary">Export</button>
+            <button type="button" class="btn-outline theme-secondary btn-sm">Share</button>
+            <button type="button" class="btn-outline theme-secondary btn-sm">Export</button>
           </div>
-          <button type="button" class="btn btn-sm btn-outline-secondary dropdown-toggle d-flex align-items-center gap-1">
+          <button type="button" class="btn-outline theme-secondary btn-sm dropdown-toggle">
             <svg class="bi" aria-hidden="true"><use href="#calendar3"/></svg>
             This week
           </button>
index 245dfe57d09047f5ded32ed92cc953d8579d48a2..5663101f8fdc940f3f15059287c0425ae2009c06 100644 (file)
@@ -36,8 +36,8 @@ export const extra_css = ['dialogs.css']
       <p>This is a modal sheet, a variation of the modal that docs itself to the bottom of the viewport like the newer share sheets in iOS.</p>
     </div>
     <div class="dialog-footer flex-column border-0 pt-0">
-      <button type="button" class="btn btn-solid theme-primary w-100">Save changes</button>
-      <button type="button" class="btn btn-solid theme-secondary w-100">Close</button>
+      <button type="button" class="btn-solid theme-primary w-100">Save changes</button>
+      <button type="button" class="btn-solid theme-secondary w-100">Close</button>
     </div>
   </dialog>
 </div>
@@ -92,7 +92,7 @@ export const extra_css = ['dialogs.css']
       </ul>
     </div>
     <div class="dialog-footer border-0 pt-3 pb-4">
-      <button type="button" class="btn btn-solid theme-primary w-100 py-2">Great, thanks!</button>
+      <button type="button" class="btn-solid theme-primary w-100 py-2">Great, thanks!</button>
     </div>
   </dialog>
 </div>
@@ -116,19 +116,19 @@ export const extra_css = ['dialogs.css']
           <input type="password" class="form-control rounded-3" id="floatingPassword" placeholder="Password">
           <label for="floatingPassword">Password</label>
         </div>
-        <button class="btn btn-solid theme-primary w-100 py-2 mb-2" type="submit">Sign up</button>
+        <button class="btn-solid theme-primary w-100 py-2 mb-2" type="submit">Sign up</button>
         <small class="text-body-secondary">By clicking Sign up, you agree to the terms of use.</small>
         <hr class="my-4">
         <h6 class="fw-bold mb-3">Or use a third-party</h6>
-        <button type="button" class="btn btn-outline theme-inverse w-100 py-2 mb-2">
+        <button type="button" class="btn-outline theme-inverse w-100 py-2 mb-2">
           <svg class="bi" width="16" height="16"><use href="#google"/></svg>
           Sign up with Google
         </button>
-        <button type="button" class="btn btn-outline theme-facebook w-100 py-2 mb-2">
+        <button type="button" class="btn-outline theme-primary w-100 py-2 mb-2">
           <svg class="bi" width="16" height="16" fill="currentColor"><use href="#facebook"/></svg>
           Sign up with Facebook
         </button>
-        <button type="button" class="btn btn-outline theme-success w-100 py-2">
+        <button type="button" class="btn-outline theme-success w-100 py-2">
           <svg class="bi" width="16" height="16"><use href="#github"/></svg>
           Sign up with GitHub
         </button>
index 5eecc49b450e22bb74d612c87b43d16e4576fee4..9b81e02bc5d45d016cf17a6bbfb02602015a7d53 100644 (file)
@@ -109,7 +109,7 @@ export const extra_css = ['features.css']
         <div>
           <h3 class="fs-2 text-body-emphasis">Featured title</h3>
           <p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
-          <a href="#" class="btn btn-primary">
+          <a href="#" class="btn-solid theme-primary">
             Primary button
           </a>
         </div>
@@ -121,7 +121,7 @@ export const extra_css = ['features.css']
         <div>
           <h3 class="fs-2 text-body-emphasis">Featured title</h3>
           <p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
-          <a href="#" class="btn btn-primary">
+          <a href="#" class="btn-solid theme-primary">
             Primary button
           </a>
         </div>
@@ -133,7 +133,7 @@ export const extra_css = ['features.css']
         <div>
           <h3 class="fs-2 text-body-emphasis">Featured title</h3>
           <p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
-          <a href="#" class="btn btn-primary">
+          <a href="#" class="btn-solid theme-primary">
             Primary button
           </a>
         </div>
@@ -286,7 +286,7 @@ export const extra_css = ['features.css']
       <div class="col d-flex flex-column align-items-start gap-2">
         <h2 class="fw-bold text-body-emphasis">Left-aligned title explaining these awesome features</h2>
         <p class="text-body-secondary">Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
-        <a href="#" class="btn btn-primary btn-lg">Primary button</a>
+        <a href="#" class="btn-solid theme-primary btn-lg">Primary button</a>
       </div>
 
       <div class="col">
index aed5b1773a99901d69cf88582168b985ca678fba..9e4e0ddbe9b109550ac63afd5fd351ab44668b00 100644 (file)
@@ -162,7 +162,7 @@ export const title = 'Footers'
           <div class="d-flex flex-column flex-sm-row w-100 gap-2">
             <label for="newsletter1" class="visually-hidden">Email address</label>
             <input id="newsletter1" type="email" class="form-control" placeholder="Email address">
-            <button class="btn btn-primary" type="button">Subscribe</button>
+            <button class="btn-solid theme-primary" type="button">Subscribe</button>
           </div>
         </form>
       </div>
index a34f2b02625851ac86238a7bd4001d3e8d5a6a8d..fc35fe9af0f4ccf331577a7e01ddd8e42bae3bc6 100644 (file)
@@ -80,15 +80,15 @@ export const extra_css = ['headers.css']
       </ul>
 
       <div class="col-md-3 text-end">
-        <button type="button" class="btn btn-outline-primary me-2">Login</button>
-        <button type="button" class="btn btn-primary">Sign-up</button>
+        <button type="button" class="btn-outline theme-primary me-2">Login</button>
+        <button type="button" class="btn-solid theme-primary">Sign up</button>
       </div>
     </header>
   </div>
 
   <div class="b-example-divider"></div>
 
-  <header class="p-3 text-bg-dark">
+  <header class="p-3 bg-body fg-body" data-bs-theme="dark">
     <div class="container">
       <div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
         <a href="/" class="d-flex align-items-center mb-2 mb-lg-0 text-white text-decoration-none">
@@ -104,12 +104,12 @@ export const extra_css = ['headers.css']
         </ul>
 
         <form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" role="search">
-          <input type="search" class="form-control form-control-dark text-bg-dark" placeholder="Search..." aria-label="Search">
+          <input type="search" class="form-control" placeholder="Search..." aria-label="Search">
         </form>
 
         <div class="text-end">
-          <button type="button" class="btn btn-outline-light me-2">Login</button>
-          <button type="button" class="btn btn-warning">Sign-up</button>
+          <button type="button" class="btn-outline theme-secondary me-2">Login</button>
+          <button type="button" class="btn-solid theme-warning">Sign up</button>
         </div>
       </div>
     </div>
@@ -283,8 +283,8 @@ export const extra_css = ['headers.css']
         </form>
 
         <div class="text-end">
-          <button type="button" class="btn btn-light text-dark me-2">Login</button>
-          <button type="button" class="btn btn-primary">Sign-up</button>
+          <button type="button" class="btn-solid theme-secondary me-2">Login</button>
+          <button type="button" class="btn-solid theme-primary">Sign-up</button>
         </div>
       </div>
     </div>
index 8ac2a70ac38d9a7d8e1b6a686804fcbffebfce66..e0c6b75234c95cfda7247f7ad022a3a2e84e30e5 100644 (file)
@@ -14,8 +14,8 @@ export const extra_css = ['heroes.css']
     <div class="col-lg-6 mx-auto">
       <p class="lead mb-4">Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.</p>
       <div class="d-grid gap-2 d-sm-flex justify-content-sm-center">
-        <button type="button" class="btn btn-primary btn-lg px-4 gap-3">Primary button</button>
-        <button type="button" class="btn btn-outline-secondary btn-lg px-4">Secondary</button>
+        <button type="button" class="btn-solid theme-primary btn-lg px-4">Primary button</button>
+        <button type="button" class="btn-outline theme-secondary btn-lg px-4">Secondary</button>
       </div>
     </div>
   </div>
@@ -27,8 +27,8 @@ export const extra_css = ['heroes.css']
     <div class="col-lg-6 mx-auto">
       <p class="lead mb-4">Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.</p>
       <div class="d-grid gap-2 d-sm-flex justify-content-sm-center mb-5">
-        <button type="button" class="btn btn-primary btn-lg px-4 me-sm-3">Primary button</button>
-        <button type="button" class="btn btn-outline-secondary btn-lg px-4">Secondary</button>
+        <button type="button" class="btn-solid theme-primary btn-lg px-4 me-sm-3">Primary button</button>
+        <button type="button" class="btn-outline theme-secondary btn-lg px-4">Secondary</button>
       </div>
     </div>
     <div class="overflow-hidden" style="max-height: 30vh;">
@@ -49,8 +49,8 @@ export const extra_css = ['heroes.css']
         <h1 class="display-5 fw-bold text-body-emphasis lh-1 mb-3">Responsive left-aligned hero with image</h1>
         <p class="lead">Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.</p>
         <div class="d-grid gap-2 d-md-flex justify-content-md-start">
-          <button type="button" class="btn btn-primary btn-lg px-4 me-md-2">Primary</button>
-          <button type="button" class="btn btn-outline-secondary btn-lg px-4">Default</button>
+          <button type="button" class="btn-solid theme-primary btn-lg px-4 me-md-2">Primary</button>
+          <button type="button" class="btn-outline theme-secondary btn-lg px-4">Default</button>
         </div>
       </div>
     </div>
@@ -79,7 +79,7 @@ export const extra_css = ['heroes.css']
               <input type="checkbox" value="remember-me"> Remember me
             </label>
           </div>
-          <button class="w-100 btn btn-lg btn-primary" type="submit">Sign up</button>
+          <button class="w-100 btn-solid theme-primary btn-lg" type="submit">Sign up</button>
           <hr class="my-4">
           <small class="text-body-secondary">By clicking Sign up, you agree to the terms of use.</small>
         </form>
@@ -95,8 +95,8 @@ export const extra_css = ['heroes.css']
         <h1 class="display-4 fw-bold lh-1 text-body-emphasis">Border hero with cropped image and shadows</h1>
         <p class="lead">Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.</p>
         <div class="d-grid gap-2 d-md-flex justify-content-md-start mb-4 mb-lg-3">
-          <button type="button" class="btn btn-primary btn-lg px-4 me-md-2 fw-bold">Primary</button>
-          <button type="button" class="btn btn-outline-secondary btn-lg px-4">Default</button>
+          <button type="button" class="btn-solid theme-primary btn-lg px-4 me-md-2">Primary</button>
+          <button type="button" class="btn-outline theme-secondary btn-lg px-4">Default</button>
         </div>
       </div>
       <div class="col-lg-4 offset-lg-1 p-0 overflow-hidden shadow-lg">
@@ -113,8 +113,8 @@ export const extra_css = ['heroes.css']
       <div class="col-lg-6 mx-auto">
         <p class="fs-5 mb-4">Quickly design and customize responsive mobile-first sites with Bootstrap, the world’s most popular front-end open source toolkit, featuring Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful JavaScript plugins.</p>
         <div class="d-grid gap-2 d-sm-flex justify-content-sm-center">
-          <button type="button" class="btn btn-outline-info btn-lg px-4 me-sm-3 fw-bold">Custom button</button>
-          <button type="button" class="btn btn-outline-light btn-lg px-4">Secondary</button>
+          <button type="button" class="btn-outline theme-info btn-lg px-4 me-sm-3">Custom button</button>
+          <button type="button" class="btn-outline theme-secondary btn-lg px-4">Secondary</button>
         </div>
       </div>
     </div>
index 6874af1ca363a99731d5cc65a580e1c19c407108..d4bc80cfb354e4e0d410c7d572618999a0f1e80b 100644 (file)
@@ -15,7 +15,7 @@ export const title = 'Jumbotron example'
       <div class="container-fluid py-5">
         <h1 class="display-5 fw-bold">Custom jumbotron</h1>
         <p class="col-md-8 fs-4">Using a series of utilities, you can create this jumbotron, just like the one in previous versions of Bootstrap. Check out the examples below for how you can remix and restyle it to your liking.</p>
-        <button class="btn btn-primary btn-lg" type="button">Example button</button>
+        <button class="btn-solid theme-primary btn-lg" type="button">Example button</button>
       </div>
     </div>
 
@@ -24,14 +24,14 @@ export const title = 'Jumbotron example'
         <div class="h-100 p-5 text-bg-dark rounded-3">
           <h2>Change the background</h2>
           <p>Swap the background-color utility and add a `.text-*` color utility to mix up the jumbotron look. Then, mix and match with additional component themes and more.</p>
-          <button class="btn btn-outline-light" type="button">Example button</button>
+          <button class="btn-outline theme-secondary" type="button">Example button</button>
         </div>
       </div>
       <div class="col-md-6">
         <div class="h-100 p-5 bg-body-tertiary border rounded-3">
           <h2>Add borders</h2>
           <p>Or, keep it light and add a border for some added definition to the boundaries of your content. Be sure to look under the hood at the source HTML here as we've adjusted the alignment and sizing of both column's content for equal-height.</p>
-          <button class="btn btn-outline-secondary" type="button">Example button</button>
+          <button class="btn-outline theme-secondary" type="button">Example button</button>
         </div>
       </div>
     </div>
index 2f7781d49b0c0e36445d2af59b5bdaeb41d5ff5e..9895a27418d18dbdf9cec39a8cbab8a10ea9bd11 100644 (file)
@@ -25,11 +25,11 @@ export const extra_css = ['jumbotrons.css']
       This is a custom jumbotron featuring an SVG image at the top, some longer text that wraps early thanks to a responsive <code>.col-*</code> class, and a customized call to action.
     </p>
     <div class="d-inline-flex gap-2 mb-5">
-      <button class="d-inline-flex align-items-center btn btn-primary btn-lg px-4 rounded-pill" type="button">
+      <button class="btn-solid theme-primary btn-lg ps-4 pe-3 rounded-pill" type="button">
         Call to action
-        <svg class="bi ms-2" width="24" height="24" aria-hidden="true"><use href="#arrow-right-short"/></svg>
+        <svg class="bi" width="24" height="24" aria-hidden="true"><use href="#arrow-right-short"/></svg>
       </button>
-      <button class="btn btn-outline-secondary btn-lg px-4 rounded-pill" type="button">
+      <button class="btn-outline theme-secondary btn-lg px-4 rounded-pill" type="button">
         Secondary link
       </button>
     </div>
@@ -46,7 +46,7 @@ export const extra_css = ['jumbotrons.css']
     <p class="col-lg-6 mx-auto mb-4">
       This faded back jumbotron is useful for placeholder content. It's also a great way to add a bit of context to a page or section when no content is available and to encourage visitors to take a specific action.
     </p>
-    <button class="btn btn-primary px-5 mb-5" type="button">
+    <button class="btn-solid theme-primary px-4 mb-5" type="button">
       Call to action
     </button>
   </div>
index c3889724f051bf36de12e1437c2e9a428d5c8f02..a0d41dab7cbee2d7e0f50500c4ab247a05fd04c2 100644 (file)
@@ -8,7 +8,7 @@ export const title = 'Bottom navbar example'
   <div class="bg-body-tertiary p-5 rounded mt-3">
     <h1>Bottom Navbar example</h1>
     <p class="lead">This example is a quick exercise to illustrate how the bottom navbar works.</p>
-    <a class="btn btn-lg btn-primary" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
+    <a class="btn-solid theme-primary btn-lg" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
   </div>
 </main>
 <nav class="navbar fixed-bottom navbar-expand-sm navbar-dark bg-dark">
index a2d3c704ade4d68b28c08f5a2f84778f0ad7dbba..16085b1bb1a6fea955cff80718fa17a88ade935d 100644 (file)
@@ -25,7 +25,7 @@ export const extra_css = ['navbar-fixed.css']
       </ul>
       <form class="d-flex" role="search">
         <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-        <button class="btn btn-outline-success" type="submit">Search</button>
+        <button class="btn-outline theme-success" type="submit">Search</button>
       </form>
     </div>
   </div>
@@ -35,6 +35,6 @@ export const extra_css = ['navbar-fixed.css']
   <div class="bg-body-tertiary p-5 rounded">
     <h1>Navbar example</h1>
     <p class="lead">This example is a quick exercise to illustrate how fixed to top navbar works. As you scroll, it will remain fixed to the top of your browser’s viewport.</p>
-    <a class="btn btn-lg btn-primary" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
+    <a class="btn-solid theme-primary btn-lg" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
   </div>
 </main>
index fd606a659d18cd63068cdc4ba1bd14e8364da7ac..3dd55152557c31e4b62c68cf277f15e6ff54b760 100644 (file)
@@ -25,7 +25,7 @@ export const extra_css = ['navbar-static.css']
       </ul>
       <form class="d-flex" role="search">
         <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-        <button class="btn btn-outline-success" type="submit">Search</button>
+        <button class="btn-outline theme-success" type="submit">Search</button>
       </form>
     </div>
   </div>
@@ -35,6 +35,6 @@ export const extra_css = ['navbar-static.css']
   <div class="bg-body-tertiary p-5 rounded">
     <h1>Navbar example</h1>
     <p class="lead">This example is a quick exercise to illustrate how the top-aligned navbar works. As you scroll, this navbar remains in its original position and moves with the rest of the page.</p>
-    <a class="btn btn-lg btn-primary" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
+    <a class="btn-solid theme-primary btn-lg" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
   </div>
 </main>
index 327616db08151d7eda2dcec108b82ab8b2c9a286..940de8a5ad33247756cd36cd875f6f554fc87ff6 100644 (file)
@@ -41,7 +41,7 @@ export const extra_css = ['navbars-offcanvas.css']
           </ul>
           <form class="d-flex mt-3" role="search">
             <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-            <button class="btn btn-outline-success" type="submit">Search</button>
+            <button class="btn-outline theme-success" type="submit">Search</button>
           </form>
         </div>
       </div>
@@ -83,7 +83,7 @@ export const extra_css = ['navbars-offcanvas.css']
           </ul>
           <form class="d-flex mt-3" role="search">
             <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-            <button class="btn btn-outline-success" type="submit">Search</button>
+            <button class="btn-outline theme-success" type="submit">Search</button>
           </form>
         </div>
       </div>
@@ -125,7 +125,7 @@ export const extra_css = ['navbars-offcanvas.css']
           </ul>
           <form class="d-flex mt-3 mt-lg-0" role="search">
             <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-            <button class="btn btn-outline-success" type="submit">Search</button>
+            <button class="btn-outline theme-success" type="submit">Search</button>
           </form>
         </div>
       </div>
@@ -139,7 +139,7 @@ export const extra_css = ['navbars-offcanvas.css']
         <p class="fs-5">This example shows how responsive offcanvas menus work within the navbar. For positioning of navbars, checkout the <a href={getVersionedDocsPath('/examples/navbar-static/')}>top</a> and <a href={getVersionedDocsPath('/examples/navbar-fixed/')}>fixed top</a> examples.</p>
         <p>From the top down, you'll see a dark navbar, light navbar and a responsive navbar—each with offcanvases built in. Resize your browser window to the large breakpoint to see the toggle for the offcanvas.</p>
         <p>
-          <a class="btn btn-primary" href={getVersionedDocsPath('/components/navbar#offcanvas')} role="button">Learn more about offcanvas navbars &raquo;</a>
+          <a class="btn-solid theme-primary" href={getVersionedDocsPath('/components/navbar#offcanvas')} role="button">Learn more about offcanvas navbars &raquo;</a>
         </p>
     </div>
     </div>
index 904775c3d8d07e8be0d187c997a1f0b976586cd8..06d8a0f95a7a52b72f177c53a066b422d40208e9 100644 (file)
@@ -428,7 +428,7 @@ export const extra_css = ['navbars.css']
             </li>
           </ul>
           <div class="d-lg-flex col-lg-3 justify-content-lg-end">
-            <button class="btn btn-primary">Button</button>
+            <button class="btn-solid theme-primary">Button</button>
           </div>
         </div>
       </div>
@@ -441,7 +441,7 @@ export const extra_css = ['navbars.css']
           <p>This example is a quick exercise to illustrate how the navbar and its contents work. Some navbars extend the width of the viewport, others are confined within a <code>.container</code>. For positioning of navbars, checkout the <a href={getVersionedDocsPath('/examples/navbar-static/')}>top</a> and <a href={getVersionedDocsPath('/examples/navbar-fixed/')}>fixed top</a> examples.</p>
           <p>At the smallest breakpoint, the collapse plugin is used to hide the links and show a menu button to toggle the collapsed content.</p>
           <p>
-            <a class="btn btn-primary" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
+            <a class="btn-solid theme-primary" href={getVersionedDocsPath('/components/navbar')} role="button">View navbar docs &raquo;</a>
           </p>
         </div>
       </div>
index 7721b551b331e6cfa06cf65c2b2c38d3f96f5845..da48ce4512c84f78f41acc80ce78e726084f16fd 100644 (file)
@@ -41,7 +41,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
       </ul>
       <form class="d-flex" role="search">
         <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-        <button class="btn btn-outline-success" type="submit">Search</button>
+        <button class="btn-outline theme-success" type="submit">Search</button>
       </form>
     </div>
   </div>
index be7326b77f3ec51985e3420879d444651f8a38fe..8b2a7d493cb9b761d947a1d67ef16458e1c412f7 100644 (file)
@@ -49,7 +49,7 @@ export const extra_css = ['pricing.css']
               <li>Email support</li>
               <li>Help center access</li>
             </ul>
-            <button type="button" class="w-100 btn btn-lg btn-outline-primary">Sign up for free</button>
+            <button type="button" class="w-100 btn-outline theme-primary btn-lg">Sign up for free</button>
           </div>
         </div>
       </div>
@@ -66,7 +66,7 @@ export const extra_css = ['pricing.css']
               <li>Priority email support</li>
               <li>Help center access</li>
             </ul>
-            <button type="button" class="w-100 btn btn-lg btn-primary">Get started</button>
+            <button type="button" class="w-100 btn-solid theme-primary btn-lg">Get started</button>
           </div>
         </div>
       </div>
@@ -83,7 +83,7 @@ export const extra_css = ['pricing.css']
               <li>Phone and email support</li>
               <li>Help center access</li>
             </ul>
-            <button type="button" class="w-100 btn btn-lg btn-primary">Contact us</button>
+            <button type="button" class="w-100 btn-solid theme-primary btn-lg">Contact us</button>
           </div>
         </div>
       </div>
index ffbd75b999c0f61f3ecca51a561e9061468ce227..a86e7e892fd840eeed7644d22354aeeb730075aa 100644 (file)
@@ -26,7 +26,7 @@ export const body_class = 'd-flex align-items-center py-4 bg-body-tertiary'
         Remember me
       </label>
     </div>
-    <button class="btn btn-primary w-100 py-2" type="submit">Sign in</button>
+    <button class="btn-solid theme-primary w-100 py-2" type="submit">Sign in</button>
     <p class="mt-5 mb-3 text-body-secondary">&copy; 2017–{new Date().getFullYear()}</p>
   </form>
 </main>
index 7241922e70e393e8bdd280e36500a934bc7485b1..995240cd2b7dd8f7fb603a2fc15468fbc5813827 100644 (file)
@@ -27,7 +27,7 @@ export const title = 'Starter Template'
     <p class="fs-5 col-md-8">Quickly and easily get started with Bootstrap's compiled, production-ready files with this barebones example featuring some basic HTML and helpful links. Download all our examples to get started.</p>
 
     <div class="mb-5">
-      <a href={getVersionedDocsPath('/examples')} class="btn btn-primary btn-lg px-4">Download examples</a>
+      <a href={getVersionedDocsPath('/examples')} class="btn-solid theme-primary btn-lg px-4">Download examples</a>
     </div>
 
     <hr class="col-3 col-md-2 mb-5">
index a36cf8511d1b7a4823fa70bfd2a8e1e20b5ee154..9806e1004296e3d0d85c1d7a00d33af18c3f1b23 100644 (file)
@@ -29,7 +29,7 @@ export const body_class = 'd-flex flex-column h-100'
         </ul>
         <form class="d-flex" role="search">
           <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
-          <button class="btn btn-outline-success" type="submit">Search</button>
+          <button class="btn-solid theme-success" type="submit">Search</button>
         </form>
       </div>
     </div>
index c6498fc4812eb9d13bcf15e46a9706bde10c9e76..05043060fe85f7cc9238cc50c0d087dee0459aa1 100644 (file)
@@ -28,7 +28,7 @@ const { addedIn, layout, title } = Astro.props
     {
       layout === 'docs' && (
         <button
-          class="btn btn-icon navbar-btn-icon d-lg-none ms--2"
+          class="btn-icon navbar-btn-icon d-lg-none ms--2"
           type="button"
           data-bs-toggle="offcanvas"
           data-bs-target="#bdSidebar"
@@ -51,7 +51,7 @@ const { addedIn, layout, title } = Astro.props
       <div class="bd-search" id="docsearch" data-bd-docs-version={getConfig().docs_version}></div>
 
       <button
-        class="btn btn-icon navbar-btn-icon d-lg-none order-3 me--2"
+        class="btn-icon navbar-btn-icon d-lg-none order-3 me--2"
         type="button"
         data-bs-toggle="offcanvas"
         data-bs-target="#bdNavbar"
index 716cc91f2e2e5428b94d247fc7a43a91cf0906a4..238cbbfa355916e4f579bc4ea7c050c1b4411e27 100644 (file)
@@ -33,7 +33,7 @@ const plugins = getData('plugins')
       </p>
       <div class="p-4 mb-3 border rounded-3">
         <div class="dropdown">
-          <button class="btn btn-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+          <button class="btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
             Dropdown
           </button>
           <ul class="dropdown-menu">
@@ -45,7 +45,7 @@ const plugins = getData('plugins')
       </div>
       <Code
         code={`<div class="dropdown">
-  <button class="btn btn-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+  <button class="btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
     Dropdown
   </button>
   <ul class="dropdown-menu">
index 359e4d011454e2adc35647be0bba48f82f4f8423..931e2f062b99388354d4f6c4b9442640f451c4a4 100644 (file)
@@ -32,7 +32,7 @@ const rounded = ['default', 'pill', 'square']
       <div class="dropdown">
         <button
           type="button"
-          class="btn btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
+          class="btn-outline theme-secondary btn-sm dropdown-toggle w-100 justify-content-between"
           id="btn-color-dropdown"
           data-bs-toggle="dropdown"
           aria-expanded="false"
@@ -60,9 +60,9 @@ const rounded = ['default', 'pill', 'square']
       </div>
     </div>
 
-    <div class="vstack gap-1">
+    <div class="vstack gap-1 flex-grow-0">
       <label class="form-label fw-semibold mb-0">Style</label>
-      <div class="btn-group text-capitalize" role="group" aria-label="Button style">
+      <div class="btn-group text-capitalize btn-group-sm" role="group" aria-label="Button style">
         {styles.map((style) => (
           <label class="btn-check btn-outline theme-secondary">
             <input
@@ -83,7 +83,7 @@ const rounded = ['default', 'pill', 'square']
       <div class="dropdown">
         <button
           type="button"
-          class="btn btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
+          class="btn-outline theme-secondary btn-sm dropdown-toggle w-100 justify-content-between"
           id="btn-size-dropdown"
           data-bs-toggle="dropdown"
           aria-expanded="false"
@@ -113,7 +113,7 @@ const rounded = ['default', 'pill', 'square']
 
     <div class="vstack gap-1 flex-grow-0">
       <label class="form-label fw-semibold mb-0">Rounded</label>
-      <div class="btn-group text-capitalize" role="group" aria-label="Button rounded">
+      <div class="btn-group text-capitalize btn-group-sm" role="group" aria-label="Button rounded">
         {rounded.map((round) => (
           <label class="btn-check btn-outline theme-secondary">
             <input
@@ -133,20 +133,20 @@ const rounded = ['default', 'pill', 'square']
 
 <Example
   class="d-flex align-items-start gap-2"
-  code={`<button type="button" class="btn btn-solid theme-primary" data-button-type="text">Button</button>
-<button type="button" class="btn btn-solid theme-primary" data-button-type="left-icon">
+  code={`<button type="button" class="btn-solid theme-primary btn-sm" data-button-type="text">Button</button>
+<button type="button" class="btn-solid theme-primary" data-button-type="left-icon">
   <svg class="bi me-1" width="16" height="16" aria-hidden="true">
     <use href="#arrow-left" />
   </svg>
   Left icon
 </button>
-<button type="button" class="btn btn-solid theme-primary" data-button-type="right-icon">
+<button type="button" class="btn-solid theme-primary btn-sm" data-button-type="right-icon">
   Right icon
   <svg class="bi ms-1" width="16" height="16" aria-hidden="true">
     <use href="#arrow-right" />
   </svg>
 </button>
-<button type="button" class="btn btn-solid btn-icon theme-primary" data-button-type="icon-only" aria-label="Icon only">
+<button type="button" class="btn-solid btn-icon theme-primary btn-sm" data-button-type="icon-only" aria-label="Icon only">
   <svg class="bi" width="16" height="16" aria-hidden="true">
     <use href="#plus-lg" />
   </svg>
index e37c08e52c633f7ac4db2ebb5f0c3a3ec7c28a19..cc5a0d9c06a77b8d9a12154ceb73ecabd6d6ffde 100644 (file)
@@ -60,7 +60,7 @@ const logicalPlacements = [
       <div class="dropdown">
         <button
           type="button"
-          class="btn btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
+          class="btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
           id="placement-dropdown"
           data-bs-toggle="dropdown"
           aria-expanded="false"
@@ -105,7 +105,7 @@ const logicalPlacements = [
   class="d-flex justify-content-center align-items-center"
   style="min-height: 200px;"
   code={`<div class="dropdown">
-  <button class="btn btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-placement="bottom-start" aria-expanded="false">
+  <button class="btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-placement="bottom-start" aria-expanded="false">
     Toggle dropdown
   </button>
   <ul class="dropdown-menu">
@@ -179,7 +179,7 @@ const logicalPlacements = [
     if (!codeSnippet) return
 
     const htmlCode = `<div class="dropdown">
-  <button class="btn btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-placement="${placement}" aria-expanded="false">
+  <button class="btn-solid theme-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-placement="${placement}" aria-expanded="false">
     Toggle dropdown
   </button>
   <ul class="dropdown-menu">
index 3f633e6050af4648eef4d53458beb2a688c20f6f..08dac418662b396b8f7556e87be0b2001457d0f4 100644 (file)
@@ -16,7 +16,7 @@ const placements = [
     <div class="dropdown">
       <button
         type="button"
-        class="btn btn-outline theme-secondary dropdown-toggle"
+        class="btn-outline theme-secondary dropdown-toggle"
         id="navbar-placement-dropdown"
         data-bs-toggle="dropdown"
         aria-expanded="false"
index effb951a4059fd67a3a5211a28ef9b0f7e91dd3b..4fbeeefd376685f575c7d75d588e1d9cb30cee82 100644 (file)
@@ -35,7 +35,7 @@ const stepCounts = [3, 4, 5, 6]
       <div class="dropdown">
         <button
           type="button"
-          class="btn btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
+          class="btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
           id="stepper-breakpoint-dropdown"
           data-bs-toggle="dropdown"
           aria-expanded="false"
@@ -69,7 +69,7 @@ const stepCounts = [3, 4, 5, 6]
       <div class="dropdown">
         <button
           type="button"
-          class="btn btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
+          class="btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
           id="stepper-count-dropdown"
           data-bs-toggle="dropdown"
           aria-expanded="false"
@@ -102,7 +102,7 @@ const stepCounts = [3, 4, 5, 6]
       <div class="dropdown">
         <button
           type="button"
-          class="btn btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
+          class="btn-outline theme-secondary dropdown-toggle w-100 justify-content-between"
           id="stepper-active-dropdown"
           data-bs-toggle="dropdown"
           aria-expanded="false"
index 9426dfa5300702032171b33a5e6664b8175faf87..2367f4723886050a82ebc85e21f15a366f40ce5a 100644 (file)
@@ -29,7 +29,7 @@ Badges adapt to the `font-size` of the parent element.
 
 Badges can be used as part of links or buttons to provide a counter.
 
-<Example code={`<button type="button" class="btn btn-primary">
+<Example code={`<button type="button" class="btn-solid theme-primary">
     Notifications <span class="badge theme-danger">4</span>
   </button>`} />
 
@@ -41,7 +41,7 @@ Unless the context is clear (as with the “Notifications” example, where it i
 
 Use utilities to modify a `.badge` and position it in the corner of a link or button.
 
-<Example code={`<button type="button" class="btn btn-primary position-relative">
+<Example code={`<button type="button" class="btn-solid theme-primary position-relative">
     Inbox
     <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill border border-bg theme-danger">
       99+
@@ -51,7 +51,7 @@ Use utilities to modify a `.badge` and position it in the corner of a link or bu
 
 You can also replace the `.badge` class with a few more utilities without a count for a more generic indicator.
 
-<Example code={`<button type="button" class="btn btn-primary position-relative">
+<Example code={`<button type="button" class="btn-solid theme-primary position-relative">
     Profile
     <span class="position-absolute top-0 start-100 translate-middle p-2 bg-danger border border-bg rounded-circle">
       <span class="visually-hidden">New alerts</span>
index fe5744f77e2ff30a3964f2cc0255947a6441dcbe..5248549755220b105cdc814c391e6ea07df7feb3 100644 (file)
@@ -98,7 +98,10 @@ You can even roll your own custom sizing with CSS variables:
 
 Use `.btn-icon` for square buttons that contain only an icon. This class sets `aspect-ratio: 1` and removes padding, making the button perfectly square based on its `min-height`. Always include an `aria-label` attribute on icon-only buttons to ensure they are accessible to screen reader users.
 
-<Example code={`<button type="button" class="btn-solid theme-primary btn-icon" aria-label="Confirm">
+<Example code={`<button type="button" class="btn-icon" aria-label="Magic">
+    <svg class="bi" width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#magic"></use></svg>
+  </button>
+  <button type="button" class="btn-solid theme-primary btn-icon" aria-label="Confirm">
     <svg class="bi" width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#check2"></use></svg>
   </button>
   <button type="button" class="btn-outline theme-secondary btn-icon" aria-label="Auto theme">
@@ -341,6 +344,12 @@ To remove a variant you don't need, use Sass's `map.remove()`:
 );
 ```
 
+#### Selectors
+
+The `$btn-variant-selectors` list controls which selectors receive the base button styles (tokens, display, padding, font, etc.). By default it includes `.btn`, `.btn-link`, `.btn-icon`, and all classes generated from the `$button-variants` map. This means variant classes like `.btn-solid` work standalone without requiring `.btn`.
+
+<ScssDocs name="btn-variant-selectors" file="scss/buttons/_button.scss" />
+
 ### Sass loops
 
 #### Variant loop
index 72913649713dfb32e28c6d408411da0f21dc2ef7..eb5f95e4f4c855fd7c59d5dc7e6712fa1675905b 100644 (file)
@@ -149,7 +149,7 @@ Add an optional header and/or footer within a card.
     <div class="card-body">
       <h4 class="card-title">Special title treatment</h4>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
   </div>`} />
 
@@ -160,7 +160,7 @@ Card headers can be styled by adding `.card-header` to `<h*>` elements.
     <div class="card-body">
       <h4 class="card-title">Special title treatment</h4>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
   </div>`} />
 
@@ -187,7 +187,7 @@ Card headers can be styled by adding `.card-header` to `<h*>` elements.
     <div class="card-body">
       <h4 class="card-title">Special title treatment</h4>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
     <div class="card-footer text-body-secondary">
       2 days ago
@@ -208,7 +208,7 @@ Using the grid, wrap cards in columns and rows as needed.
         <div class="card-body">
           <h4 class="card-title">Card title</h4>
           <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-          <a href="#" class="btn btn-primary">Go somewhere</a>
+          <a href="#" class="btn-solid theme-primary">Go somewhere</a>
         </div>
       </div>
     </div>
@@ -217,7 +217,7 @@ Using the grid, wrap cards in columns and rows as needed.
         <div class="card-body">
           <h4 class="card-title">Card title</h4>
           <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-          <a href="#" class="btn btn-primary">Go somewhere</a>
+          <a href="#" class="btn-solid theme-primary">Go somewhere</a>
         </div>
       </div>
     </div>
@@ -231,7 +231,7 @@ Use our handful of [available sizing utilities]([[docsref:/utilities/width]]) to
     <div class="card-body">
       <h4 class="card-title">Card title</h4>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Button</a>
+      <a href="#" class="btn-solid theme-primary">Button</a>
     </div>
   </div>
 
@@ -239,7 +239,7 @@ Use our handful of [available sizing utilities]([[docsref:/utilities/width]]) to
     <div class="card-body">
       <h4 class="card-title">Card title</h4>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Button</a>
+      <a href="#" class="btn-solid theme-primary">Button</a>
     </div>
   </div>`} />
 
@@ -251,7 +251,7 @@ Use custom CSS in your stylesheets or as inline styles to set a width.
     <div class="card-body">
       <h4 class="card-title">Card title</h4>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
   </div>`} />
 
@@ -276,7 +276,7 @@ Add some navigation to a card’s header (or block) with Bootstrap’s [nav comp
     <div class="card-body">
       <h5 class="card-title">Special title treatment</h5>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
   </div>`} />
 
@@ -299,7 +299,7 @@ This works with `.nav-pills` as well.
     <div class="card-body">
       <h5 class="card-title">Special title treatment</h5>
       <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
   </div>`} />
 
index 168e5e46c074077f73609d0c0bc973360d99002b..e096dc2d71a52a6b7e7765ae780ba6411f125686 100644 (file)
@@ -21,10 +21,10 @@ Click the buttons below to show and hide another element via class changes:
 Generally, we recommend using a `<button>` with the `data-bs-target` attribute. While not recommended from a semantic point of view, you can also use an `<a>` link with the `href` attribute (and a `role="button"`). In both cases, the `data-bs-toggle="collapse"` is required.
 
 <Example code={`<p class="d-inline-flex gap-1">
-    <a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
+    <a class="btn-solid theme-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
       Link with href
     </a>
-    <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
+    <button class="btn-solid theme-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
       Button with data-bs-target
     </button>
   </p>
@@ -43,7 +43,7 @@ Please note that while the example below has a `min-height` set to avoid excessi
 </Callout>
 
 <Example code={`<p>
-    <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
+    <button class="btn-solid theme-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
       Toggle width collapse
     </button>
   </p>
@@ -61,9 +61,9 @@ A `<button>` or `<a>` element can show and hide multiple elements by referencing
 Conversely, multiple `<button>` or `<a>` elements can show and hide the same element if they each reference it with their `data-bs-target` or `href` attribute.
 
 <Example code={`<p class="d-inline-flex gap-1">
-    <a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
-    <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
-    <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
+    <a class="btn-solid theme-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
+    <button class="btn-solid theme-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
+    <button class="btn-solid theme-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
   </p>
   <div class="row">
     <div class="col">
index c1625593f2b6b24bcb4d10cdefd18ed6e7637bdc..9fe9133ac5204048089186ad1146ba4d6ec3f049 100644 (file)
@@ -35,12 +35,12 @@ Toggle a dialog by clicking the button below. The dialog uses the native `showMo
     <p>This is a native dialog element. It uses the browser's built-in modal behavior for accessibility and focus management.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary">Save changes</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Save changes</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialog">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialog">
   Open dialog
 </button>`} />
 
@@ -60,12 +60,12 @@ The markup for a dialog is straightforward:
     <p>Dialog body content goes here.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary">Save changes</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Save changes</button>
   </div>
 </dialog>
 
-<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialog">
+<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialog">
   Open dialog
 </button>
 ```
@@ -83,12 +83,12 @@ To make a dialog dark, add `data-bs-theme="dark"` to the `<dialog>` element.
     <p>This is a native dialog element, only it’s set to dark mode. It uses the browser's built-in modal behavior for accessibility and focus management.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary">Save changes</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Save changes</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogDark">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogDark">
   Open dark dialog
 </button>`} />
 
@@ -105,11 +105,11 @@ When `backdrop` is set to `static`, the dialog will not close when clicking outs
     <p>I will not close if you click outside of me. Use the close button or press Escape.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#staticBackdropDialog" data-bs-backdrop="static">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#staticBackdropDialog" data-bs-backdrop="static">
   Open static backdrop dialog
 </button>`} />
 
@@ -134,12 +134,12 @@ When dialogs have content that exceeds the viewport height, the entire dialog sc
     <p>This content should appear at the bottom after you scroll.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary">Save changes</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Save changes</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#scrollingLongDialog">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#scrollingLongDialog">
   Launch scrolling dialog
 </button>`} />
 
@@ -161,12 +161,12 @@ You can also create a scrollable dialog that scrolls the dialog body while keepi
     <p>This content should appear at the bottom after you scroll.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary">Save changes</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary">Save changes</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#scrollableBodyDialog">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#scrollableBodyDialog">
   Launch scrollable body dialog
 </button>`} />
 
@@ -185,7 +185,7 @@ You can also create a scrollable dialog that scrolls the dialog body while keepi
     <!-- Long content here -->
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
   </div>
 </dialog>
 ```
@@ -209,13 +209,13 @@ For a dialog that extends beyond the viewport and scrolls as a whole, add `.dial
       <p>You've reached the bottom of the overflow dialog!</p>
     </div>
     <div class="dialog-footer">
-      <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-      <button type="button" class="btn btn-solid theme-primary">Save changes</button>
+      <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+      <button type="button" class="btn-solid theme-primary">Save changes</button>
     </div>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#overflowDialog">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#overflowDialog">
   Launch overflow dialog
 </button>`} />
 
@@ -245,8 +245,8 @@ When a toggle trigger is inside an open dialog, clicking it will **swap** dialog
     <p>Click below to swap to a second dialog. Notice the backdrop stays visible—no flash!</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog2">Go to second dialog</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog2">Go to second dialog</button>
   </div>
 </dialog>
 
@@ -259,12 +259,12 @@ When a toggle trigger is inside an open dialog, clicking it will **swap** dialog
     <p>This is the second dialog. You can swap back to the first, or close this one entirely.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
-    <button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog1">Back to first dialog</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog1">Back to first dialog</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog1">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#swapDialog1">
   Open first dialog
 </button>`} />
 
@@ -278,7 +278,7 @@ The swap behavior is automatic when a `data-bs-toggle="dialog"` trigger is insid
   </div>
   <div class="dialog-footer">
     <!-- This trigger is inside dialog1, so clicking it will swap -->
-    <button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#dialog2">
+    <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#dialog2">
       Go to dialog 2
     </button>
   </div>
@@ -290,7 +290,7 @@ The swap behavior is automatic when a `data-bs-toggle="dialog"` trigger is insid
     <p>You're now in dialog 2.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#dialog1">
+    <button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#dialog1">
       Back to dialog 1
     </button>
   </div>
@@ -316,11 +316,11 @@ By default, dialogs open as modals using the native `showModal()` method. You ca
     <p>This dialog doesn't block the page. You can still interact with content behind it.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
   </div>
 </dialog>
 
-  <Example code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#nonModalDialog" data-bs-modal="false">
+  <Example code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#nonModalDialog" data-bs-modal="false">
     Open non-modal dialog
   </button>`} />
 
@@ -372,13 +372,13 @@ Dialogs have three optional sizes, available via modifier classes to be placed o
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogXl">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogXl">
   Extra large dialog
 </button>
-<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogLg">
+<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogLg">
   Large dialog
 </button>
-<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogSm">
+<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogSm">
   Small dialog
 </button>`} />
 
@@ -401,11 +401,11 @@ Use `.dialog-fullscreen` to make the dialog cover the entire viewport.
     <p>This dialog covers the entire viewport.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogFullscreen">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogFullscreen">
   Fullscreen dialog
 </button>`} />
 
@@ -429,11 +429,11 @@ Responsive fullscreen variants are also available. These make the dialog fullscr
     <p>This dialog is fullscreen below the <code>lg</code> breakpoint.</p>
   </div>
   <div class="dialog-footer">
-    <button type="button" class="btn btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
+    <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
   </div>
 </dialog>
 
-<Example showMarkup={false} code={`<button type="button" class="btn btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogFullscreenLg">
+<Example showMarkup={false} code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#exampleDialogFullscreenLg">
   Fullscreen below lg
 </button>`} />
 
index 01222c5d010c24dcc28612b785c01a4e8222022b..6a2961d048799ec05ae8e9491082a94c7631713f 100644 (file)
@@ -11,7 +11,7 @@ aliases:
 Toggle dropdown menus with buttons whenever possible. Here's an example using a Bootstrap button:
 
 <Example code={`<div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
       Toggle dropdown
     </button>
     <ul class="dropdown-menu">
@@ -34,7 +34,7 @@ Wrap the dropdown’s toggle (your button or link) and the dropdown menu within
 While `<button>` is the recommended control for a dropdown toggle, there might be situations where you have to use an `<a>` element. If you do, we recommend adding a `role="button"` attribute to appropriately convey control’s purpose to assistive technologies such as screen readers.
 
 <Example code={`<div class="dropdown">
-    <a class="btn btn-solid theme-secondary" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
+    <a class="btn-solid theme-secondary" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
       Toggle dropdown
     </a>
 
@@ -52,8 +52,8 @@ Similarly, create split button dropdowns with virtually the same markup as singl
 We use this extra class to reduce the horizontal `padding` on either side of the caret by 25% and remove the `margin-left` that’s added for regular button dropdowns. Those extra changes keep the caret centered in the split button and provide a more appropriately sized hit area next to the main button.
 
 <Example showMarkup={false} code={`<div class="btn-group">
-    <button type="button" class="btn btn-solid theme-primary">Primary</button>
-    <button type="button" class="btn btn-solid theme-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+    <button type="button" class="btn-solid theme-primary">Primary</button>
+    <button type="button" class="btn-solid theme-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
       <span class="visually-hidden">Toggle Dropdown</span>
     </button>
     <ul class="dropdown-menu">
@@ -68,8 +68,8 @@ We use this extra class to reduce the horizontal `padding` on either side of the
 ```html
 <!-- Example split danger button -->
 <div class="btn-group">
-  <button type="button" class="btn btn-danger">Danger</button>
-  <button type="button" class="btn btn-danger dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
+  <button type="button" class="btn-solid theme-danger">Danger</button>
+  <button type="button" class="btn-solid theme-danger dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
     <span class="visually-hidden">Toggle Dropdown</span>
   </button>
   <ul class="dropdown-menu">
@@ -87,7 +87,7 @@ We use this extra class to reduce the horizontal `padding` on either side of the
 Opt into darker dropdowns to match a dark navbar or custom style by adding `data-bs-theme="dark"` onto an existing `.dropdown-menu`. No changes are required to the dropdown items.
 
 <Example code={`<div class="dropdown" data-bs-theme="dark">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
       Dropdown button
     </button>
     <ul class="dropdown-menu dropdown-menu-dark">
@@ -110,7 +110,7 @@ And putting it to use in a navbar:
       <div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
         <ul class="navbar-nav">
           <li class="nav-item dropdown" data-bs-theme="dark">
-            <button class="btn btn-dark dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
+            <button class="btn-solid theme-inverse dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
               Dropdown
             </button>
             <ul class="dropdown-menu dropdown-menu-dark">
@@ -147,7 +147,7 @@ For example, `data-bs-placement="bottom-start md:bottom-end lg:end-start"` will:
 - Switch to `right-start` at the `lg` breakpoint
 
 <Example class="d-flex gap-2" code={`<div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-placement="bottom-start md:bottom-end" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-placement="bottom-start md:bottom-end" aria-expanded="false">
       Bottom start → md:bottom-end
     </button>
     <ul class="dropdown-menu">
@@ -156,7 +156,7 @@ For example, `data-bs-placement="bottom-start md:bottom-end lg:end-start"` will:
     </ul>
   </div>
   <div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-placement="bottom lg:right" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-placement="bottom lg:right" aria-expanded="false">
       Bottom → lg:right
     </button>
     <ul class="dropdown-menu">
@@ -165,7 +165,7 @@ For example, `data-bs-placement="bottom-start md:bottom-end lg:end-start"` will:
     </ul>
   </div>
   <div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-placement="top-end md:right-start xl:bottom-start" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-placement="top-end md:right-start xl:bottom-start" aria-expanded="false">
       Multi-breakpoint
     </button>
     <ul class="dropdown-menu">
@@ -315,7 +315,7 @@ Create nested dropdown menus with the `.dropdown-submenu` wrapper class. Submenu
 Wrap a `.dropdown-item` trigger and a nested `.dropdown-menu` inside a `.dropdown-submenu` element.
 
 <Example code={`<div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
       Dropdown with submenu
     </button>
     <ul class="dropdown-menu">
@@ -339,7 +339,7 @@ Wrap a `.dropdown-item` trigger and a nested `.dropdown-menu` inside a `.dropdow
 Submenus can be nested to multiple levels. Each level opens to the side and flips direction when there's not enough viewport space.
 
 <Example code={`<div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
       Multi-level menu
     </button>
     <ul class="dropdown-menu">
@@ -367,7 +367,7 @@ Submenus can be nested to multiple levels. Each level opens to the side and flip
 When multiple submenu triggers exist at the same level, opening one automatically closes the others.
 
 <Example code={`<div class="dropdown">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" aria-expanded="false">
       Multiple submenus
     </button>
     <ul class="dropdown-menu">
@@ -405,7 +405,7 @@ Use `data-bs-offset` or `data-bs-reference` to change the location of the dropdo
 
 <Example code={`<div class="d-flex">
     <div class="dropdown me-1">
-      <button type="button" class="btn btn-solid theme-secondary" data-bs-toggle="dropdown" aria-expanded="false" data-bs-offset="10,20">
+      <button type="button" class="btn-solid theme-secondary" data-bs-toggle="dropdown" aria-expanded="false" data-bs-offset="10,20">
         Offset
       </button>
       <ul class="dropdown-menu">
@@ -415,8 +415,8 @@ Use `data-bs-offset` or `data-bs-reference` to change the location of the dropdo
       </ul>
     </div>
     <div class="btn-group">
-      <button type="button" class="btn btn-solid theme-secondary">Reference</button>
-      <button type="button" class="btn btn-solid theme-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false" data-bs-reference="parent">
+      <button type="button" class="btn-solid theme-secondary">Reference</button>
+      <button type="button" class="btn-solid theme-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false" data-bs-reference="parent">
         <span class="visually-hidden">Toggle Dropdown</span>
       </button>
       <ul class="dropdown-menu">
@@ -434,7 +434,7 @@ Use `data-bs-offset` or `data-bs-reference` to change the location of the dropdo
 By default, the dropdown menu is closed when clicking inside or outside the dropdown menu. You can use the `autoClose` option to change this behavior of the dropdown.
 
 <Example code={`<div class="btn-group">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="true" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="true" aria-expanded="false">
       Default dropdown
     </button>
     <ul class="dropdown-menu">
@@ -445,7 +445,7 @@ By default, the dropdown menu is closed when clicking inside or outside the drop
   </div>
 
   <div class="btn-group">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="inside" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="inside" aria-expanded="false">
       Clickable inside
     </button>
     <ul class="dropdown-menu">
@@ -456,7 +456,7 @@ By default, the dropdown menu is closed when clicking inside or outside the drop
   </div>
 
   <div class="btn-group">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
       Clickable outside
     </button>
     <ul class="dropdown-menu">
@@ -467,7 +467,7 @@ By default, the dropdown menu is closed when clicking inside or outside the drop
   </div>
 
   <div class="btn-group">
-    <button class="btn btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="false" aria-expanded="false">
+    <button class="btn-solid theme-secondary" type="button" data-bs-toggle="dropdown" data-bs-auto-close="false" aria-expanded="false">
       Manual close
     </button>
     <ul class="dropdown-menu">
index 32de4d340e0fef0c6cfe8c08629c17513c7e37c6..6218f324c7f044e7e14d4587ebc0eb1c4fbf4576 100644 (file)
@@ -13,7 +13,7 @@ Here's a navbar that includes most supported sub-components and a responsive rig
 <ResizableExample code={`<nav class="navbar navbar-expand-md bg-1">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Navbar</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarOffcanvas" aria-controls="navbarOffcanvas" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarOffcanvas" aria-controls="navbarOffcanvas" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round">
           <path d="M1 3.5h14M1 8h14M1 12.5h14"/>
         </svg>
@@ -138,7 +138,7 @@ Please note that you should also add the `aria-current` attribute on the active
 <ResizableExample code={`<nav class="navbar navbar-expand-sm bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Navbar</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarNav" aria-labelledby="navbarNavLabel">
@@ -171,7 +171,7 @@ And because we use classes for our navs, you can avoid the list-based approach e
 <ResizableExample code={`<nav class="navbar navbar-expand-sm bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Navbar</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarNavAltMarkup" aria-labelledby="navbarNavAltMarkupLabel">
@@ -196,7 +196,7 @@ You can also use dropdowns in your navbar. Dropdown menus require a wrapping ele
 <ResizableExample code={`<nav class="navbar navbar-expand-lg bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Navbar</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarNavDropdown" aria-labelledby="navbarNavDropdownLabel">
@@ -293,7 +293,7 @@ Mix and match with other components and utilities as needed.
 <ResizableExample code={`<nav class="navbar navbar-expand-md bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Navbar w/ text</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarText" aria-labelledby="navbarTextLabel">
@@ -328,7 +328,7 @@ To make a navbar dark, add `data-bs-theme="dark"` to the `.navbar` element.
 <ResizableExample code={`<nav class="navbar navbar-expand-md bg-1" data-bs-theme="dark">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Dark navbar</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarDarkOffcanvas" aria-controls="navbarDarkOffcanvas" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarDarkOffcanvas" aria-controls="navbarDarkOffcanvas" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round">
           <path d="M1 3.5h14M1 8h14M1 12.5h14"/>
         </svg>
@@ -380,7 +380,7 @@ Navbar themes are easier than ever thanks to Bootstrap's combination of Sass and
 <nav class="navbar navbar-expand-md" data-bs-theme="dark">
   <div class="container-fluid">
     <a class="navbar-brand" href="#">Navbar</a>
-    <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarColor01" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation">
+    <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarColor01" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation">
       <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
     </button>
     <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarColor01" aria-labelledby="navbarColor01Label">
@@ -415,7 +415,7 @@ Navbar themes are easier than ever thanks to Bootstrap's combination of Sass and
 <nav class="navbar navbar-expand-md bg-primary" data-bs-theme="dark">
   <div class="container-fluid">
     <a class="navbar-brand" href="#">Navbar</a>
-    <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarColor02" aria-controls="navbarColor02" aria-expanded="false" aria-label="Toggle navigation">
+    <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarColor02" aria-controls="navbarColor02" aria-expanded="false" aria-label="Toggle navigation">
       <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
     </button>
     <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarColor02" aria-labelledby="navbarColor02Label">
@@ -450,7 +450,7 @@ Navbar themes are easier than ever thanks to Bootstrap's combination of Sass and
 <nav class="navbar navbar-expand-md bg-1" data-bs-theme="light">
   <div class="container-fluid">
     <a class="navbar-brand" href="#">Navbar</a>
-    <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarColor03" aria-controls="navbarColor03" aria-expanded="false" aria-label="Toggle navigation">
+    <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarColor03" aria-controls="navbarColor03" aria-expanded="false" aria-label="Toggle navigation">
       <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
     </button>
     <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarColor03" aria-labelledby="navbarColor03Label">
@@ -549,7 +549,7 @@ These examples omit the `.navbar-expand-lg-*` class to always show the drawer be
 <ResizableExample code={`<nav class="navbar navbar-expand-md bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Left Drawer</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarLeftDrawer" aria-controls="navbarLeftDrawer" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarLeftDrawer" aria-controls="navbarLeftDrawer" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-start" tabindex="-1" id="navbarLeftDrawer" aria-labelledby="navbarLeftDrawerLabel">
@@ -571,7 +571,7 @@ These examples omit the `.navbar-expand-lg-*` class to always show the drawer be
 <ResizableExample code={`<nav class="navbar navbar-expand-md bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Top Drawer</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTopDrawer" aria-controls="navbarTopDrawer" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTopDrawer" aria-controls="navbarTopDrawer" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-top" tabindex="-1" id="navbarTopDrawer" aria-labelledby="navbarTopDrawerLabel">
@@ -600,7 +600,7 @@ With no `.navbar-brand` shown (hidden inside the drawer):
 
 <ResizableExample code={`<nav class="navbar navbar-expand-md bg-1 fg-2">
     <div class="container-fluid">
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarTogglerDemo01" aria-labelledby="navbarTogglerDemo01Label">
@@ -629,7 +629,7 @@ With a brand name shown on the left and toggler on the right:
 <ResizableExample code={`<nav class="navbar bg-1 fg-2">
     <div class="container-fluid">
       <a class="navbar-brand" href="#">Navbar</a>
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <div class="offcanvas offcanvas-end" tabindex="-1" id="navbarTogglerDemo02" aria-labelledby="navbarTogglerDemo02Label">
@@ -656,7 +656,7 @@ With a toggler on the left and brand name on the right:
 
 <ResizableExample code={`<nav class="navbar bg-1 fg-2">
     <div class="container-fluid">
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
       <a class="navbar-brand" href="#">Navbar</a>
@@ -695,7 +695,7 @@ Sometimes you want to use the offcanvas plugin to trigger a container element fo
   </div>
   <nav class="navbar bg-body" data-bs-theme="dark">
     <div class="container-fluid">
-      <button class="btn btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarToggleExternalContent" aria-controls="navbarToggleExternalContent" aria-expanded="false" aria-label="Toggle navigation">
+      <button class="btn-icon navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarToggleExternalContent" aria-controls="navbarToggleExternalContent" aria-expanded="false" aria-label="Toggle navigation">
         <svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"><path d="M1 3.5h14M1 8h14M1 12.5h14"/></svg>
       </button>
     </div>
index f669b690c1975e3d92c2a6afcb15ed8fd2dc7b15..e0ea092223e8de173a0a9bfa3581197020deef87 100644 (file)
@@ -41,10 +41,10 @@ Use the buttons below to show and hide an offcanvas element via JavaScript that
 
 You can use a link with the `href` attribute, or a button with the `data-bs-target` attribute. In both cases, the `data-bs-toggle="offcanvas"` is required.
 
-<Example code={`<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
+<Example code={`<a class="btn-solid theme-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
     Link with href
   </a>
-  <button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
+  <button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
     Button with data-bs-target
   </button>
 
@@ -58,7 +58,7 @@ You can use a link with the `href` attribute, or a button with the `data-bs-targ
         Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
       </div>
       <div class="dropdown mt-3">
-        <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
+        <button class="btn-solid theme-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
           Dropdown button
         </button>
         <ul class="dropdown-menu">
@@ -74,7 +74,7 @@ You can use a link with the `href` attribute, or a button with the `data-bs-targ
 
 Scrolling the `<body>` element is disabled when an offcanvas and its backdrop are visible. Use the `data-bs-scroll` attribute to enable `<body>` scrolling.
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">Enable body scrolling</button>
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">Enable body scrolling</button>
 
   <div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
     <div class="offcanvas-header">
@@ -90,7 +90,7 @@ Scrolling the `<body>` element is disabled when an offcanvas and its backdrop ar
 
 You can also enable `<body>` scrolling with a visible backdrop.
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Enable both scrolling & backdrop</button>
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Enable both scrolling & backdrop</button>
 
   <div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel">
     <div class="offcanvas-header">
@@ -106,7 +106,7 @@ You can also enable `<body>` scrolling with a visible backdrop.
 
 When backdrop is set to static, the offcanvas will not close when clicking outside of it.
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#staticBackdrop" aria-controls="staticBackdrop">
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#staticBackdrop" aria-controls="staticBackdrop">
     Toggle static offcanvas
   </button>
 
@@ -149,7 +149,7 @@ Responsive offcanvas classes hide content outside the viewport from a specified
 
 To make a responsive offcanvas, replace the `.offcanvas` base class with a responsive variant and ensure your close button has an explicit `data-bs-target`.
 
-<Example code={`<button class="btn btn-primary d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive" aria-controls="offcanvasResponsive">Toggle offcanvas</button>
+<Example code={`<button class="btn-solid theme-primary d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive" aria-controls="offcanvasResponsive">Toggle offcanvas</button>
 
   <div class="alert alert-info d-none d-lg-block">Resize your browser to show the responsive offcanvas toggle.</div>
 
@@ -175,7 +175,7 @@ There's no default placement for offcanvas components, so you must add one of th
 
 Try the top, right, bottom, and fullscreen examples out below.
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Toggle top offcanvas</button>
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Toggle top offcanvas</button>
 
   <div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel">
     <div class="offcanvas-header">
@@ -187,7 +187,7 @@ Try the top, right, bottom, and fullscreen examples out below.
     </div>
   </div>`} />
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Toggle right offcanvas</button>
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Toggle right offcanvas</button>
 
   <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
     <div class="offcanvas-header">
@@ -199,7 +199,7 @@ Try the top, right, bottom, and fullscreen examples out below.
     </div>
   </div>`} />
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Toggle bottom offcanvas</button>
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Toggle bottom offcanvas</button>
 
   <div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel">
     <div class="offcanvas-header">
@@ -211,7 +211,7 @@ Try the top, right, bottom, and fullscreen examples out below.
     </div>
   </div>`} />
 
-<Example code={`<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasFullscreen" aria-controls="offcanvasFullscreen">Toggle fullscreen offcanvas</button>
+<Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasFullscreen" aria-controls="offcanvasFullscreen">Toggle fullscreen offcanvas</button>
 
   <div class="offcanvas offcanvas-fullscreen" tabindex="-1" id="offcanvasFullscreen" aria-labelledby="offcanvasFullscreenLabel">
     <div class="offcanvas-header">
@@ -236,8 +236,8 @@ Add an optional `.offcanvas-footer` for action buttons or other content at the b
       <p>Content for the offcanvas goes here. The footer will stick to the bottom.</p>
     </div>
     <div class="offcanvas-footer">
-      <button type="button" class="btn btn-secondary" data-bs-dismiss="offcanvas">Close</button>
-      <button type="button" class="btn btn-primary">Save changes</button>
+      <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="offcanvas">Close</button>
+      <button type="button" class="btn-solid theme-primary">Save changes</button>
     </div>
   </div>`} />
 
index 988b6dc8e8eca481888e8fc668a0811e446e376d..a032bfae0e2187fc259cc72312f737089bb479c4 100644 (file)
@@ -21,7 +21,7 @@ In the example below, we take a typical card component and recreate it with plac
     <div class="card-body">
       <h5 class="card-title">Card title</h5>
       <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card’s content.</p>
-      <a href="#" class="btn btn-primary">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary">Go somewhere</a>
     </div>
   </div>
 
@@ -38,7 +38,7 @@ In the example below, we take a typical card component and recreate it with plac
         <span class="placeholder col-6"></span>
         <span class="placeholder col-8"></span>
       </p>
-      <a class="btn btn-primary disabled placeholder col-6" aria-disabled="true"></a>
+      <a class="btn-solid theme-primary disabled placeholder col-6" aria-disabled="true"></a>
     </div>
   </div>`} />
 
@@ -49,7 +49,7 @@ In the example below, we take a typical card component and recreate it with plac
   <div class="card-body">
     <h5 class="card-title">Card title</h5>
     <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card’s content.</p>
-    <a href="#" class="btn btn-primary">Go somewhere</a>
+    <a href="#" class="btn-solid theme-primary">Go somewhere</a>
   </div>
 </div>
 
@@ -66,7 +66,7 @@ In the example below, we take a typical card component and recreate it with plac
       <span class="placeholder col-6"></span>
       <span class="placeholder col-8"></span>
     </p>
-    <a class="btn btn-primary disabled placeholder col-6" aria-disabled="true"></a>
+    <a class="btn-solid theme-primary disabled placeholder col-6" aria-disabled="true"></a>
   </div>
 </div>
 ```
@@ -81,7 +81,7 @@ We apply additional styling to `.btn`s via `::before` to ensure the `height` is
     <span class="placeholder col-6"></span>
   </p>
 
-  <a class="btn btn-primary disabled placeholder col-4" aria-disabled="true"></a>`} />
+  <a class="btn-solid theme-primary disabled placeholder col-4" aria-disabled="true"></a>`} />
 
 <Callout>
 The use of `aria-hidden="true"` only indicates that the element should be hidden to screen readers. The *loading* behavior of the placeholder depends on how authors will actually use the placeholder styles, how they plan to update things, etc. Some JavaScript code may be needed to *swap* the state of the placeholder and inform AT users of the update.
index c66c53726efe6f7a101e611601e12c837e74be51..1a8de4d10ac0cfccfb03254c4adec4aa324b080b 100644 (file)
@@ -10,7 +10,7 @@ aliases:
 
 Click the button below to trigger a popover:
 
-<Example addStackblitzJs code={`<button type="button" class="btn btn-solid theme-primary"
+<Example addStackblitzJs code={`<button type="button" class="btn-solid theme-primary"
           data-bs-toggle="popover"
           data-bs-title="Popover title"
           data-bs-content="This is the popover content—make it as long as you want.">
@@ -44,7 +44,7 @@ Titles are set via `data-bs-title` and body content is set via `data-bs-content`
 
 <Callout name="warning-data-bs-title-vs-title" type="warning" />
 
-<Example addStackblitzJs code={`<button type="button" class="btn btn-solid theme-primary"
+<Example addStackblitzJs code={`<button type="button" class="btn-solid theme-primary"
           data-bs-toggle="popover"
           data-bs-title="Popover title"
           data-bs-content="And here’s some amazing content. It’s very engaging. Right?">
@@ -55,21 +55,21 @@ Titles are set via `data-bs-title` and body content is set via `data-bs-content`
 
 Set `data-bs-placement` to change the direction. Four options are available: top, right, bottom, and left. Directions are mirrored when using Bootstrap in RTL.
 
-<Example addStackblitzJs code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example addStackblitzJs code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-container="body"
           data-bs-toggle="popover"
           data-bs-placement="left"
           data-bs-content="Left popover">
     Popover on left
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-container="body"
           data-bs-toggle="popover"
           data-bs-placement="top"
           data-bs-content="Top popover">
     Popover on top
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-container="body"
           data-bs-toggle="popover"
           data-bs-placement="bottom"
@@ -77,7 +77,7 @@ Set `data-bs-placement` to change the direction. Four options are available: top
     Popover on bottom
   </button>
 
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-container="body"
           data-bs-toggle="popover"
           data-bs-placement="right"
@@ -89,14 +89,14 @@ Set `data-bs-placement` to change the direction. Four options are available: top
 
 Change placement at different breakpoints using responsive prefixes. The syntax is `breakpoint:placement`, where breakpoint is one of `sm`, `md`, `lg`, `xl`, or `2xl`.
 
-<Example addStackblitzJs code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example addStackblitzJs code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-container="body"
           data-bs-toggle="popover"
           data-bs-placement="top md:right lg:bottom"
           data-bs-content="This popover changes placement at different breakpoints.">
     Top → md:right → lg:bottom
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-container="body"
           data-bs-toggle="popover"
           data-bs-placement="left lg:top"
@@ -130,7 +130,7 @@ You can customize the appearance of popovers using [CSS variables](#variables).
 
 <ScssDocs name="custom-popovers" file="site/src/scss/_component-examples.scss" />
 
-<Example addStackblitzJs class="custom-popover-demo" code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example addStackblitzJs class="custom-popover-demo" code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="popover" data-bs-placement="right"
           data-bs-custom-class="custom-popover"
           data-bs-title="Custom popover"
@@ -146,7 +146,7 @@ Use the `focus` trigger to dismiss popovers on the user’s next click of an ele
 **Dismissing on next click requires specific HTML for proper cross-browser and cross-platform behavior.** You can only use `<a>` elements, not `<button>`s, and you must include a [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex).
 </Callout>
 
-<Example addStackblitzJs code={`<a tabindex="0" class="btn btn-solid theme-secondary" role="button"
+<Example addStackblitzJs code={`<a tabindex="0" class="btn-solid theme-secondary" role="button"
           data-bs-toggle="popover"
           data-bs-trigger="focus"
           data-bs-title="Dismissible popover"
@@ -170,7 +170,7 @@ For disabled popover triggers, you may also prefer `data-bs-trigger="hover focus
           data-bs-toggle="popover"
           data-bs-trigger="hover focus"
           data-bs-content="Disabled popover">
-    <button class="btn btn-primary" type="button" disabled>Disabled button</button>
+    <button class="btn-solid theme-primary" type="button" disabled>Disabled button</button>
   </span>`} />
 
 ## CSS
index bfeaa3035b1eb4b06ae835a5c23f3a6bc52302c4..97d2ee7040d79a3e5d06c9eb335f805c3319a62d 100644 (file)
@@ -119,20 +119,20 @@ Or, use custom CSS or inline styles to change the dimensions as needed.
 
 Use spinners within buttons to indicate an action is currently processing or taking place. You may also swap the text out of the spinner element and utilize button text as needed.
 
-<Example code={`<button class="btn btn-primary" type="button" disabled>
+<Example code={`<button class="btn-solid theme-primary" type="button" disabled>
     <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
     <span class="visually-hidden" role="status">Loading...</span>
   </button>
-  <button class="btn btn-primary" type="button" disabled>
+  <button class="btn-solid theme-primary" type="button" disabled>
     <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
     <span role="status">Loading...</span>
   </button>`} />
 
-<Example code={`<button class="btn btn-primary" type="button" disabled>
+<Example code={`<button class="btn-solid theme-primary" type="button" disabled>
     <span class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
     <span class="visually-hidden" role="status">Loading...</span>
   </button>
-  <button class="btn btn-primary" type="button" disabled>
+  <button class="btn-solid theme-primary" type="button" disabled>
     <span class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
     <span role="status">Loading...</span>
   </button>`} />
index f3900197fa362e6f6f3e3485818a7fa0df3adeb2..d3a14a30275ef575fc1352da77e81f813c12893f 100644 (file)
@@ -58,11 +58,11 @@ Click the button below to show a toast (positioned with our utilities in the low
 </div>
 
 <Example showMarkup={false} code={`
-<button type="button" class="btn btn-primary" id="liveToastBtn">Show live toast</button>
+<button type="button" class="btn-solid theme-primary" id="liveToastBtn">Show live toast</button>
 `} />
 
 ```html
-<button type="button" class="btn btn-primary" id="liveToastBtn">Show live toast</button>
+<button type="button" class="btn-solid theme-primary" id="liveToastBtn">Show live toast</button>
 
 <div class="toast-container position-fixed bottom-0 end-0 p-3">
   <div id="liveToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
@@ -148,8 +148,8 @@ Alternatively, you can also add additional controls and components to toasts.
     <div class="toast-body">
       Hello, world! This is a toast message.
       <div class="mt-2 pt-2 border-top">
-        <button type="button" class="btn btn-primary btn-sm">Take action</button>
-        <button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="toast">Close</button>
+        <button type="button" class="btn-solid theme-primary btn-sm">Take action</button>
+        <button type="button" class="btn-solid theme-secondary btn-sm" data-bs-dismiss="toast">Close</button>
       </div>
     </div>
   </div>`} />
index 1f916f7834c5fee1eae84a242c5d58a77372f200..8298c78daadb7e2b0a1a7bc160fde6d0b9f2397f 100644 (file)
@@ -10,7 +10,7 @@ toc: true
 
 Hover the button below to see a tooltip. By default, the tooltip will appear above their trigger element (anything with the `data-bs-toggle="tooltip"` attribute).
 
-<Example addStackblitzJs class="tooltip-demo" code={`<button type="button" class="btn btn-solid theme-primary"
+<Example addStackblitzJs class="tooltip-demo" code={`<button type="button" class="btn-solid theme-primary"
           data-bs-toggle="tooltip"
           data-bs-title="Tooltip on top">
     Example tooltip
@@ -50,7 +50,7 @@ You can customize the appearance of tooltips using [CSS variables](#variables).
 
 <ScssDocs name="custom-tooltip" file="site/src/scss/_component-examples.scss" />
 
-<Example addStackblitzJs class="tooltip-demo" code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example addStackblitzJs class="tooltip-demo" code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip" data-bs-placement="top"
           data-bs-custom-class="custom-tooltip"
           data-bs-title="This top tooltip is themed via CSS variables.">
@@ -61,25 +61,25 @@ You can customize the appearance of tooltips using [CSS variables](#variables).
 
 Set `data-bs-placement` to change the direction. Hover over the buttons below to see the four tooltips directions: top, right, bottom, and left. Directions are mirrored when using Bootstrap in RTL.
 
-<Example class="tooltip-demo" code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example class="tooltip-demo" code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-placement="left"
           data-bs-title="Tooltip on left">
     Tooltip on left
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-placement="top"
           data-bs-title="Tooltip on top">
     Tooltip on top
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-placement="bottom"
           data-bs-title="Tooltip on bottom">
     Tooltip on bottom
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-placement="right"
           data-bs-title="Tooltip on right">
@@ -90,13 +90,13 @@ Set `data-bs-placement` to change the direction. Hover over the buttons below to
 
 Change placement at different breakpoints using responsive prefixes. The syntax is `breakpoint:placement`, where breakpoint is one of `sm`, `md`, `lg`, `xl`, or `2xl`.
 
-<Example class="tooltip-demo" code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example class="tooltip-demo" code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-placement="top md:right lg:bottom"
           data-bs-title="Responsive tooltip">
     Top → md:right → lg:bottom
   </button>
-  <button type="button" class="btn btn-solid theme-secondary"
+  <button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-placement="left lg:top"
           data-bs-title="Responsive tooltip">
@@ -109,7 +109,7 @@ Resize your browser to see the tooltip placement change at different breakpoints
 
 And with custom HTML added:
 
-<Example class="tooltip-demo" code={`<button type="button" class="btn btn-solid theme-secondary"
+<Example class="tooltip-demo" code={`<button type="button" class="btn-solid theme-secondary"
           data-bs-toggle="tooltip"
           data-bs-html="true"
           data-bs-title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
@@ -135,7 +135,7 @@ Elements with the `disabled` attribute aren’t interactive, meaning users canno
 <Example class="tooltip-demo" addStackblitzJs code={`<span class="d-inline-block" tabindex="0"
           data-bs-toggle="tooltip"
           data-bs-title="Disabled tooltip">
-    <button class="btn btn-primary" type="button" disabled>Disabled button</button>
+    <button class="btn-solid theme-primary" type="button" disabled>Disabled button</button>
   </span>`} />
 
 ## CSS
index 2dd7a571ab75a98ee02af72dda834f7c0f89f3fa..54550301f3da73a56c58e35f1da626ddfffc02a0 100644 (file)
@@ -21,7 +21,7 @@ Alternatively, you can also switch to a media query implementation thanks to our
 For example, to change the color mode of a dropdown menu, add `data-bs-theme="light"` or `data-bs-theme="dark"` to the parent `.dropdown`. Now, no matter the global color mode, these dropdowns will display with the specified theme value.
 
 <Example class="d-flex justify-content-between" code={`<div class="dropdown" data-bs-theme="light">
-    <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButtonLight" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary dropdown-toggle" type="button" id="dropdownMenuButtonLight" data-bs-toggle="dropdown" aria-expanded="false">
       Default dropdown
     </button>
     <ul class="dropdown-menu" aria-labelledby="dropdownMenuButtonLight">
@@ -35,7 +35,7 @@ For example, to change the color mode of a dropdown menu, add `data-bs-theme="li
   </div>
 
   <div class="dropdown" data-bs-theme="dark">
-    <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButtonDark" data-bs-toggle="dropdown" aria-expanded="false">
+    <button class="btn-solid theme-secondary dropdown-toggle" type="button" id="dropdownMenuButtonDark" data-bs-toggle="dropdown" aria-expanded="false">
       Dark dropdown
     </button>
     <ul class="dropdown-menu" aria-labelledby="dropdownMenuButtonDark">
@@ -155,7 +155,7 @@ For example, you can create a “blue theme” with the selector `data-bs-theme=
       <hr class="my-4"/>
 
       <div class="dropdown">
-        <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButtonCustom" data-bs-toggle="dropdown" aria-expanded="false">
+        <button class="btn-solid theme-secondary dropdown-toggle" type="button" id="dropdownMenuButtonCustom" data-bs-toggle="dropdown" aria-expanded="false">
           Dropdown button
         </button>
         <ul class="dropdown-menu" aria-labelledby="dropdownMenuButtonCustom">
index f016150fd71299fda65508d58fb966e87deee5a3..f2f31ce71c95a937b814fed6bb5e55859a7eae1a 100644 (file)
@@ -224,8 +224,8 @@ Here's the same set of components rendered in both light and dark modes side by
         <label class="form-label" for="checkLabel">Example new checkbox</label>
       </div>
       <div class="vstack gap-2">
-        <button type="button" class="btn btn-solid theme-primary">Primary</button>
-        <button type="button" class="btn btn-subtle theme-secondary">Secondary</button>
+        <button type="button" class="btn-solid theme-primary">Primary</button>
+        <button type="button" class="btn-subtle theme-secondary">Secondary</button>
       </div>
     </div>
     <div class="col-md-6 vstack gap-3 p-4 bg-body" data-bs-theme="dark">
@@ -249,8 +249,8 @@ Here's the same set of components rendered in both light and dark modes side by
         <label class="form-label" for="checkDarkLabel">Example new checkbox</label>
       </div>
       <div class="vstack gap-2">
-        <button type="button" class="btn btn-solid theme-primary">Primary</button>
-        <button type="button" class="btn btn-subtle theme-secondary">Secondary</button>
+        <button type="button" class="btn-solid theme-primary">Primary</button>
+        <button type="button" class="btn-subtle theme-secondary">Secondary</button>
       </div>
     </div>
   </div>`} />
@@ -273,10 +273,10 @@ With theme utilities, you can apply a theme color to an element with a single cl
 
 <Example class="vstack gap-3" code={`<div class="alert theme-primary">Primary alert</div>
   <div>
-    <button type="button" class="btn btn-solid theme-primary">Primary button</button>
-    <button type="button" class="btn btn-outline theme-primary">Primary outline button</button>
-    <button type="button" class="btn btn-subtle theme-primary">Primary subtle button</button>
-    <button type="button" class="btn btn-text theme-primary">Primary text button</button>
+    <button type="button" class="btn-solid theme-primary">Primary button</button>
+    <button type="button" class="btn-outline theme-primary">Primary outline button</button>
+    <button type="button" class="btn-subtle theme-primary">Primary subtle button</button>
+    <button type="button" class="btn-text theme-primary">Primary text button</button>
   </div>
   <div>
     <span class="badge theme-primary">Primary badge</span>
@@ -288,10 +288,10 @@ And you can apply a theme color utility to a container and any theme-aware child
 <Example code={`<div class="vstack gap-3 theme-primary">
     <div class="alert">Primary alert</div>
     <div>
-      <button type="button" class="btn btn-solid">Primary button</button>
-      <button type="button" class="btn btn-outline">Primary outline button</button>
-      <button type="button" class="btn btn-subtle">Primary subtle button</button>
-      <button type="button" class="btn btn-text">Primary text button</button>
+      <button type="button" class="btn-solid">Primary button</button>
+      <button type="button" class="btn-outline">Primary outline button</button>
+      <button type="button" class="btn-subtle">Primary subtle button</button>
+      <button type="button" class="btn-text">Primary text button</button>
     </div>
     <div>
       <span class="badge">Primary badge</span>
@@ -304,10 +304,10 @@ This also means you can override a container's theme color with another theme co
 <Example code={`<div class="vstack gap-3 theme-primary">
     <div class="alert">Primary alert</div>
     <div>
-      <button type="button" class="btn btn-solid theme-emphasis">Emphasis button</button>
-      <button type="button" class="btn btn-outline">Primary outline button</button>
-      <button type="button" class="btn btn-subtle theme-danger">Danger subtle button</button>
-      <button type="button" class="btn btn-text">Primary text button</button>
+      <button type="button" class="btn-solid theme-emphasis">Emphasis button</button>
+      <button type="button" class="btn-outline">Primary outline button</button>
+      <button type="button" class="btn-subtle theme-danger">Danger subtle button</button>
+      <button type="button" class="btn-text">Primary text button</button>
     </div>
     <div>
       <span class="badge theme-success">Success badge</span>
index c82a9451e2d5e1aadaeda2a9dd3cbdb7f5460b5e..c26c2d7a17daa2ac983b996549b27b3eb5dde978 100644 (file)
@@ -6,12 +6,6 @@ toc: true
 robots: noindex,follow
 ---
 
-## Buttons
-
-<button class="btn btn-bd-primary">Primary button</button>
-<button class="btn btn-bd-accent">Accent button</button>
-<button class="btn btn-bd-light">Light button</button>
-
 ## Callouts
 
 <Callout>
index 11f16ccfdefdc71458ce40221ebbbc7e0b25db80..d9002775b5977e798a03fa246e660fcebe01a297 100644 (file)
@@ -103,14 +103,14 @@ Control where the calendar appears relative to the input with `data-bs-placement
 
 Use a button instead of an input for use cases like dashboard date filters. Add `data-bs-datepicker-display` to the text element to preserve icons when the date updates.
 
-<Example code={`<button type="button" class="btn btn-outline-secondary" data-bs-toggle="datepicker">
+<Example code={`<button type="button" class="btn-outline theme-secondary" data-bs-toggle="datepicker">
   <svg class="bi" width="16" height="16"><use href="#calendar-week" /></svg>
   <span data-bs-datepicker-display>Select date</span>
 </button>`} />
 
 For date range selection (e.g., dashboard time filters), use `data-bs-selection-mode="multiple-ranged"`. The calendar will close after both start and end dates are selected.
 
-<Example code={`<button type="button" class="btn btn-outline-secondary" data-bs-toggle="datepicker" data-bs-selection-mode="multiple-ranged">
+<Example code={`<button type="button" class="btn-outline theme-secondary" data-bs-toggle="datepicker" data-bs-selection-mode="multiple-ranged">
     <svg class="bi" width="16" height="16"><use href="#calendar-week" /></svg>
     <span data-bs-datepicker-display>Last 7 days</span>
   </button>`} />
@@ -144,7 +144,7 @@ To bind to a form field, include a hidden input inside the container. The value
   <div data-bs-toggle="datepicker" data-bs-inline="true">
     <input type="hidden" name="selected_date">
   </div>
-  <button type="submit" class="btn btn-primary mt-3">Submit</button>
+  <button type="submit" class="btn-solid theme-primary mt-3">Submit</button>
 </form>`} />
 
 ### Custom date formatting
index f6b233eba2fa8ff357c87326dcfd001a5a1ea425..abfcc2327c7974378ff83dbd58a12c5c8096aae5 100644 (file)
@@ -213,7 +213,7 @@ If you want to have `<input readonly>` elements in your form styled as plain tex
       <input type="password" class="form-control" id="inputPassword2" placeholder="Password">
     </div>
     <div class="col-auto">
-      <button type="submit" class="btn btn-primary mb-3">Confirm identity</button>
+      <button type="submit" class="btn-solid theme-primary mb-3">Confirm identity</button>
     </div>
   </form>`} />
 
index 26827489a7c8161035abf2ef032cd670036f00fa..907e47596331d979ab0dacb6877f870504a7c071 100644 (file)
@@ -97,7 +97,7 @@ More complex layouts can also be created with the grid system.
       </div>
     </div>
     <div class="col-12">
-      <button type="submit" class="btn btn-primary">Sign in</button>
+      <button type="submit" class="btn-solid theme-primary">Sign in</button>
     </div>
   </form>`} />
 
@@ -153,7 +153,7 @@ At times, you maybe need to use margin or padding utilities to create that perfe
         </div>
       </div>
     </div>
-    <button type="submit" class="btn btn-primary">Sign in</button>
+    <button type="submit" class="btn-solid theme-primary">Sign in</button>
   </form>`} />
 
 ### Horizontal form label sizing
@@ -229,7 +229,7 @@ The example below uses a flexbox utility to vertically center the contents and c
       </div>
     </div>
     <div class="col-auto">
-      <button type="submit" class="btn btn-primary">Submit</button>
+      <button type="submit" class="btn-solid theme-primary">Submit</button>
     </div>
   </form>`} />
 
@@ -265,7 +265,7 @@ You can then remix that once again with size-specific column classes.
       </div>
     </div>
     <div class="col-auto">
-      <button type="submit" class="btn btn-primary">Submit</button>
+      <button type="submit" class="btn-solid theme-primary">Submit</button>
     </div>
   </form>`} />
 
@@ -302,6 +302,6 @@ Use the `.row-cols-*` classes to create responsive horizontal layouts. By adding
     </div>
 
     <div class="col-12">
-      <button type="submit" class="btn btn-primary">Submit</button>
+      <button type="submit" class="btn-solid theme-primary">Submit</button>
     </div>
   </form>`} />
index 365e0cb62147a94b01a784c218ce00fa52bbd46f..d52204db2eb5048c44a94f0134af8ac2408f9624 100644 (file)
@@ -44,7 +44,7 @@ Here’s a quick example to demonstrate Bootstrap’s form styles. Keep reading
       <input type="checkbox" class="form-check-input" id="exampleCheck1">
       <label class="form-check-label" for="exampleCheck1">Check me out</label>
     </div>
-    <button type="submit" class="btn btn-primary">Submit</button>
+    <button type="submit" class="btn-solid theme-primary">Submit</button>
   </form>`} />
 
 ## Disabled forms
@@ -57,7 +57,7 @@ Add the `disabled` boolean attribute on an input to prevent user interactions an
 
 Add the `disabled` attribute to a `<fieldset>` to disable all the controls within. Browsers treat all native form controls (`<input>`, `<select>`, and `<button>` elements) inside a `<fieldset disabled>` as disabled, preventing both keyboard and mouse interactions on them.
 
-However, if your form also includes custom button-like elements such as `<a class="btn btn-*">...</a>`, these will only be given a style of `pointer-events: none`, meaning they are still focusable and operable using the keyboard. In this case, you must manually modify these controls by adding `tabindex="-1"` to prevent them from receiving focus and `aria-disabled="disabled"` to signal their state to assistive technologies.
+However, if your form also includes custom button-like elements such as `<a class="btn-*">...</a>`, these will only be given a style of `pointer-events: none`, meaning they are still focusable and operable using the keyboard. In this case, you must manually modify these controls by adding `tabindex="-1"` to prevent them from receiving focus and `aria-disabled="disabled"` to signal their state to assistive technologies.
 
 <Example code={`<form>
     <fieldset disabled>
@@ -80,7 +80,7 @@ However, if your form also includes custom button-like elements such as `<a clas
           </label>
         </div>
       </div>
-      <button type="submit" class="btn btn-primary">Submit</button>
+      <button type="submit" class="btn-solid theme-primary">Submit</button>
     </fieldset>
   </form>`} />
 
index 6b4dbf5836780ba4033f76f8ad2630e3adfb24ed..c942ab732545ccf2c657c9279ce9fd5312c222f6 100644 (file)
@@ -99,7 +99,7 @@ Custom feedback styles apply custom colors, borders, focus styles, and backgroun
       </div>
     </div>
     <div class="col-12">
-      <button class="btn btn-primary" type="submit">Submit form</button>
+      <button class="btn-solid theme-primary" type="submit">Submit form</button>
     </div>
   </form>`} />
 
@@ -151,7 +151,7 @@ While these feedback styles cannot be styled with CSS, you can still customize t
       </div>
     </div>
     <div class="col-12">
-      <button class="btn btn-primary" type="submit">Submit form</button>
+      <button class="btn-solid theme-primary" type="submit">Submit form</button>
     </div>
   </form>`} />
 
@@ -224,7 +224,7 @@ To fix [issues with border radius](https://github.com/twbs/bootstrap/issues/2511
       </div>
     </div>
     <div class="col-12">
-      <button class="btn btn-primary" type="submit">Submit form</button>
+      <button class="btn-solid theme-primary" type="submit">Submit form</button>
     </div>
   </form>`} />
 
@@ -277,7 +277,7 @@ Validation styles are available for the following form controls and components:
     </div>
 
     <div class="mb-3">
-      <button class="btn btn-primary" type="submit" disabled>Submit form</button>
+      <button class="btn-solid theme-primary" type="submit" disabled>Submit form</button>
     </div>
   </form>`} />
 
@@ -335,7 +335,7 @@ If your form layout allows it, you can swap the `.{valid|invalid}-feedback` clas
       </div>
     </div>
     <div class="col-12">
-      <button class="btn btn-primary" type="submit">Submit form</button>
+      <button class="btn-solid theme-primary" type="submit">Submit form</button>
     </div>
   </form>`} />
 
index fa6bed9d4732264dd5f076b262c155fcc9dc86c0..a22db70050bf1dca18ca7ff8e88f36a2b104da13 100644 (file)
@@ -130,8 +130,8 @@ You can also do the old fashioned thing and download Bootstrap manually. Choose
 <BsTable>
 | Type | Description | Link |
 | --- | --- | --- |
-| <strong class="text-nowrap">Distribution files</strong> | Ready-to-use compiled and minified CSS and JavaScript files. Doesn't include documentation, source files, or dependencies like Floating UI. | {/*<a href="[[config:download.dist]]" class="btn btn-subtle theme-accent">Download</a>*/} |
-| <strong class="text-nowrap">Source files</strong> | Sass, JavaScript, and documentation files for compiling with your own asset pipeline. Requires [Sass compiler]([[docsref:/guides/contribute#sass]]), [Autoprefixer](https://github.com/postcss/autoprefixer), and a JavaScript bundler like [Rollup](https://rollupjs.org/) or [Webpack](https://webpack.js.org/). | {/*<a href="[[config:download.source]]" class="btn btn-subtle theme-accent">Download</a>*/} |
+| <strong class="text-nowrap">Distribution files</strong> | Ready-to-use compiled and minified CSS and JavaScript files. Doesn't include documentation, source files, or dependencies like Floating UI. | {/*<a href="[[config:download.dist]]" class="btn-subtle theme-accent">Download</a>*/} |
+| <strong class="text-nowrap">Source files</strong> | Sass, JavaScript, and documentation files for compiling with your own asset pipeline. Requires [Sass compiler]([[docsref:/guides/contribute#sass]]), [Autoprefixer](https://github.com/postcss/autoprefixer), and a JavaScript bundler like [Rollup](https://rollupjs.org/) or [Webpack](https://webpack.js.org/). | {/*<a href="[[config:download.source]]" class="btn-subtle theme-accent">Download</a>*/} |
 </BsTable>
 
 Should you require our full set of [build tools]([[docsref:/guides/contribute#tooling-setup]]), they are included for developing Bootstrap and its docs, but they’re likely unsuitable for your own purposes.
index e3a17439025ce1f2a572e8c9137eab984eaa5a58..031540337a5d0785953c95bf00f42350525ab1d4 100644 (file)
@@ -84,7 +84,7 @@ To fix this, you can use an `importmap` to resolve the arbitrary module names to
   </head>
   <body>
     <h1>Hello, modularity!</h1>
-    <button id="popoverButton" type="button" class="btn btn-primary btn-lg" data-bs-toggle="popover" title="ESM in Browser" data-bs-content="Bang!">Custom popover</button>
+    <button id="popoverButton" type="button" class="btn-solid theme-primary btn-lg" data-bs-toggle="popover" title="ESM in Browser" data-bs-content="Bang!">Custom popover</button>
 
     <script async src="https://cdn.jsdelivr.net/npm/es-module-shims@1/dist/es-module-shims.min.js" crossorigin="anonymous"></script>
     <script type="importmap">
index 2cf23306923400c654d8e32ca28e30c4f3caacd0..92405ddc6aa75b1907ebb14ef2274388ed2da096 100644 (file)
@@ -84,7 +84,7 @@ With dependencies installed and our project folder ready for us to start coding,
      <body>
        <div class="container py-4 px-3 mx-auto">
          <h1>Hello, Bootstrap and Parcel!</h1>
-         <button class="btn btn-primary">Primary button</button>
+         <button class="btn-solid theme-primary">Primary button</button>
        </div>
      </body>
    </html>
index aa0a617c5ab70e5327904a0a54ac913ac09b8413..c8fb5f0945c637396fe8b17d9b13358790d7dc6a 100644 (file)
@@ -121,7 +121,7 @@ With dependencies installed and our project folder ready for us to start coding,
      <body>
        <div class="container py-4 px-3 mx-auto">
          <h1>Hello, Bootstrap and Vite!</h1>
-         <button class="btn btn-primary">Primary button</button>
+         <button class="btn-solid theme-primary">Primary button</button>
        </div>
      </body>
    </html>
index 0936a96cefefde4faf13bea01ab1f1825a1afb0a..a2fd82e232b0565401af48341760a00145e76077 100644 (file)
@@ -115,7 +115,7 @@ With dependencies installed and our project folder ready for us to start coding,
      <body>
        <div class="container py-4 px-3 mx-auto">
          <h1>Hello, Bootstrap and Webpack!</h1>
-         <button class="btn btn-primary">Primary button</button>
+         <button class="btn-solid theme-primary">Primary button</button>
        </div>
      </body>
    </html>
index e61b9db5d194bd669aa899311fdb8c63f494441f..510109c230e2dcbf1a9d9e6fdc5fac3b1b5daca0 100644 (file)
@@ -14,7 +14,7 @@ Multiple links and tap targets are not recommended with stretched links. However
     <div class="card-body">
       <h5 class="card-title">Card with stretched link</h5>
       <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card’s content.</p>
-      <a href="#" class="btn btn-primary stretched-link">Go somewhere</a>
+      <a href="#" class="btn-solid theme-primary stretched-link">Go somewhere</a>
     </div>
   </div>`} />
 
index 1b6f9044917284af9291b91b5edb0d15eedbd7ec..2e1f79028225c12788bd98710cc163af65b9adda 100644 (file)
@@ -87,7 +87,7 @@ By adding `.translate-middle-x` or `.translate-middle-y` classes, elements can b
 
 Here are some real life examples of these classes:
 
-<Example class="bd-example-position-examples d-flex justify-content-around align-items-center" code={`<button type="button" class="btn btn-primary position-relative">
+<Example class="bd-example-position-examples d-flex justify-content-around align-items-center" code={`<button type="button" class="btn-solid theme-primary position-relative">
     Mails <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill theme-secondary theme-contrast">+99 <span class="visually-hidden">unread messages</span></span>
   </button>
 
@@ -95,7 +95,7 @@ Here are some real life examples of these classes:
     Marker <svg width="1em" height="1em" viewBox="0 0 16 16" class="position-absolute top-100 start-50 translate-middle mt-1" fill="var(--bs-theme-bg)" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/></svg>
   </div>
 
-  <button type="button" class="btn btn-primary position-relative">
+  <button type="button" class="btn-solid theme-primary position-relative">
     Alerts <span class="position-absolute top-0 start-100 translate-middle w-1 h-1 border border-bg rounded-circle bg-danger p-2"><span class="visually-hidden">unread messages</span></span>
   </button>`} />
 
index 27deefec38c0d4c36025b23f555f8c39e105b148..d077c600757ee63d6d87ff9ec9844ada9be9410c 100644 (file)
@@ -120,7 +120,7 @@ if (currentPageIndex < allPages.length - 1) {
               )
           }
           <a
-            class="btn btn-subtle btn-sm theme-secondary"
+            class="btn-subtle btn-sm theme-secondary"
             href={`${getConfig().repo}/blob/v${getConfig().current_version}/site/src/content/docs/${id}`}
             title="View and edit this file on GitHub"
             target="_blank"
@@ -132,7 +132,7 @@ if (currentPageIndex < allPages.length - 1) {
           {
             frontmatter.mdn && (
               <a
-                class="btn btn-subtle btn-sm theme-secondary"
+                class="btn-subtle btn-sm theme-secondary"
                 href={frontmatter.mdn}
                 title="View on MDN"
                 target="_blank"
@@ -146,7 +146,7 @@ if (currentPageIndex < allPages.length - 1) {
           {
             frontmatter.csstricks && (
               <a
-                class="btn btn-secondary-text btn-sm"
+                class="btn-secondary-text btn-sm"
                 href={typeof frontmatter.csstricks === 'string' ? frontmatter.csstricks : frontmatter.csstricks.url}
                 title="View on CSS-Tricks"
                 target="_blank"
index bed6a33d92fe09b43f0ed0095b1861dfdf8b1e01..b5bef11adce2485f25198cb7f4586b32cefee115 100644 (file)
@@ -9,7 +9,7 @@ const { layout } = Astro.props
 ---
 
 <button
-  class=`btn ${layout === 'examples' ? 'btn-bd-primary' : 'btn-link nav-link px-0 px-lg-2'} py-2 dropdown-toggle d-flex align-items-center`
+  class=`btn ${layout === 'examples' ? 'btn-solid theme-accent' : 'btn-link nav-link px-0 px-lg-2'} py-2 dropdown-toggle d-flex align-items-center`
   id="bd-theme"
   type="button"
   aria-expanded="false"
index 68ab71405351f8fc2a51bcd55a2e279687edde5c..2b851e0f08c139248225fa6658a7715c8cb71705 100644 (file)
@@ -18,12 +18,12 @@ export function getStaticPaths() {
   <div class="d-flex flex-column flex-md-row gap-3" slot="header-content">
     <a
       href={getConfig().download.dist_examples}
-      class="btn btn-lg bd-btn-lg btn-bd-primary d-flex align-items-center justify-content-center fw-semibold"
+      class="btn-lg btn-solid theme-accent d-flex align-items-center justify-content-center fw-semibold"
     >
       <svg class="bi me-2" aria-hidden="true"><use href="#box-seam"></use></svg>
       Download examples
     </a>
-    <a href={getConfig().download.source} class="btn btn-lg bd-btn-lg btn-outline-secondary"> Download source code</a>
+    <a href={getConfig().download.source} class="btn-lg btn-outline theme-secondary"> Download source code</a>
   </div>
   <Fragment slot="main-content">
     <ExamplesMain />