]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Docs: apostrophe consistency (#42375)
authorJulien Déramond <juderamond@gmail.com>
Thu, 30 Apr 2026 14:08:55 +0000 (16:08 +0200)
committerGitHub <noreply@github.com>
Thu, 30 Apr 2026 14:08:55 +0000 (16:08 +0200)
60 files changed:
site/src/content/docs/components/accordion.mdx
site/src/content/docs/components/avatar.mdx
site/src/content/docs/components/breadcrumb.mdx
site/src/content/docs/components/button-group.mdx
site/src/content/docs/components/buttons.mdx
site/src/content/docs/components/dialog.mdx
site/src/content/docs/components/drawer.mdx
site/src/content/docs/components/menu.mdx
site/src/content/docs/components/nav-overflow.mdx
site/src/content/docs/components/navbar.mdx
site/src/content/docs/components/popover.mdx
site/src/content/docs/components/stepper.mdx
site/src/content/docs/components/toggler.mdx
site/src/content/docs/components/tooltip.mdx
site/src/content/docs/content/prose.mdx
site/src/content/docs/content/tables.mdx
site/src/content/docs/content/typography.mdx
site/src/content/docs/customize/color.mdx
site/src/content/docs/customize/components.mdx
site/src/content/docs/customize/overview.mdx
site/src/content/docs/customize/rtl.mdx
site/src/content/docs/customize/sass.mdx
site/src/content/docs/customize/theme.mdx
site/src/content/docs/forms/checkbox.mdx
site/src/content/docs/forms/chip-input.mdx
site/src/content/docs/forms/combobox.mdx
site/src/content/docs/forms/datepicker.mdx
site/src/content/docs/forms/field.mdx
site/src/content/docs/forms/form-control.mdx
site/src/content/docs/forms/input-group.mdx
site/src/content/docs/forms/layout.mdx
site/src/content/docs/forms/otp-input.mdx
site/src/content/docs/forms/overview.mdx
site/src/content/docs/forms/password-strength.mdx
site/src/content/docs/forms/radio.mdx
site/src/content/docs/forms/validation.mdx
site/src/content/docs/getting-started/approach.mdx
site/src/content/docs/getting-started/css-variables.mdx
site/src/content/docs/getting-started/install.mdx
site/src/content/docs/getting-started/javascript.mdx
site/src/content/docs/guides/migration.mdx
site/src/content/docs/guides/parcel.mdx
site/src/content/docs/guides/quickstart.mdx
site/src/content/docs/guides/vite.mdx
site/src/content/docs/guides/webpack.mdx
site/src/content/docs/helpers/stacks.mdx
site/src/content/docs/layout/breakpoints.mdx
site/src/content/docs/utilities/align-content.mdx
site/src/content/docs/utilities/api.mdx
site/src/content/docs/utilities/aspect-ratio.mdx
site/src/content/docs/utilities/border.mdx
site/src/content/docs/utilities/colors.mdx
site/src/content/docs/utilities/display.mdx
site/src/content/docs/utilities/flex.mdx
site/src/content/docs/utilities/font-size.mdx
site/src/content/docs/utilities/grid.mdx
site/src/content/docs/utilities/pointer-events.mdx
site/src/content/docs/utilities/text-alignment.mdx
site/src/content/docs/utilities/text-decoration.mdx
site/src/content/docs/utilities/theme.mdx

index 3c3957c178f0ad34cf445dc2235fd1d523d211b4..b479ab5a72792ed4e237b1257370af4b39ac6698 100644 (file)
@@ -14,7 +14,7 @@ The accordion uses native HTML `<details>` and `<summary>` elements, leveraging
 
 Click the accordions below to expand/collapse the accordion content. Each `<details>` element shares the same `name` attribute value, creating an exclusive accordion where opening one item automatically closes the others.
 
-To render an accordion that's expanded by default, add the `open` attribute to the `<details>` element.
+To render an accordion thats expanded by default, add the `open` attribute to the `<details>` element.
 
 <Example code={`<div class="accordion">
     <details class="accordion-item" name="accordionExample" open>
@@ -23,7 +23,7 @@ To render an accordion that's expanded by default, add the `open` attribute to t
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the first item's accordion body.</strong> It is shown by default because the <code>open</code> attribute is present. The native <code>&lt;details&gt;</code> element handles all the show/hide logic without any JavaScript. You can put any HTML content within the <code>.accordion-body</code>.
+        <strong>This is the first items accordion body.</strong> It is shown by default because the <code>open</code> attribute is present. The native <code>&lt;details&gt;</code> element handles all the show/hide logic without any JavaScript. You can put any HTML content within the <code>.accordion-body</code>.
       </div>
     </details>
     <details class="accordion-item" name="accordionExample">
@@ -32,7 +32,7 @@ To render an accordion that's expanded by default, add the `open` attribute to t
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the second item's accordion body.</strong> The <code>name</code> attribute groups this with other accordion items. When you open this item, any other open item in the same group will close automatically.
+        <strong>This is the second items accordion body.</strong> The <code>name</code> attribute groups this with other accordion items. When you open this item, any other open item in the same group will close automatically.
       </div>
     </details>
     <details class="accordion-item" name="accordionExample">
@@ -41,7 +41,7 @@ To render an accordion that's expanded by default, add the `open` attribute to t
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the third item's accordion body.</strong> This exclusive accordion behavior is built into the browser—no Bootstrap JavaScript required. Just use matching <code>name</code> attributes on your <code>&lt;details&gt;</code> elements.
+        <strong>This is the third items accordion body.</strong> This exclusive accordion behavior is built into the browser—no Bootstrap JavaScript required. Just use matching <code>name</code> attributes on your <code>&lt;details&gt;</code> elements.
       </div>
     </details>
   </div>`} />
@@ -59,7 +59,7 @@ Use the contextual `.theme-{color}` classes to apply a semantic theme color to o
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the first item's accordion body.</strong> It is shown by default because the <code>open</code> attribute is present. The native <code>&lt;details&gt;</code> element handles all the show/hide logic without any JavaScript. You can put any HTML content within the <code>.accordion-body</code>.
+        <strong>This is the first items accordion body.</strong> It is shown by default because the <code>open</code> attribute is present. The native <code>&lt;details&gt;</code> element handles all the show/hide logic without any JavaScript. You can put any HTML content within the <code>.accordion-body</code>.
       </div>
     </details>
     <details class="accordion-item" name="accordionExampleTheme">
@@ -68,7 +68,7 @@ Use the contextual `.theme-{color}` classes to apply a semantic theme color to o
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the second item's accordion body.</strong> The <code>name</code> attribute groups this with other accordion items. When you open this item, any other open item in the same group will close automatically.
+        <strong>This is the second items accordion body.</strong> The <code>name</code> attribute groups this with other accordion items. When you open this item, any other open item in the same group will close automatically.
       </div>
     </details>
     <details class="accordion-item" name="accordionExampleTheme">
@@ -77,7 +77,7 @@ Use the contextual `.theme-{color}` classes to apply a semantic theme color to o
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the third item's accordion body.</strong> This exclusive accordion behavior is built into the browser—no Bootstrap JavaScript required. Just use matching <code>name</code> attributes on your <code>&lt;details&gt;</code> elements.
+        <strong>This is the third items accordion body.</strong> This exclusive accordion behavior is built into the browser—no Bootstrap JavaScript required. Just use matching <code>name</code> attributes on your <code>&lt;details&gt;</code> elements.
       </div>
     </details>
   </div>`} />
@@ -92,21 +92,21 @@ Add `.accordion-flush` to remove some borders and rounded corners to render acco
         Accordion Item #1
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
-      <div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the <code>.accordion-flush</code> class. This is the first item's accordion body.</div>
+      <div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the <code>.accordion-flush</code> class. This is the first items accordion body.</div>
     </details>
     <details class="accordion-item" name="accordionFlushExample">
       <summary class="accordion-header">
         Accordion Item #2
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
-      <div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the <code>.accordion-flush</code> class. This is the second item's accordion body. Let's imagine this being filled with some actual content.</div>
+      <div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the <code>.accordion-flush</code> class. This is the second item’s accordion body. Let’s imagine this being filled with some actual content.</div>
     </details>
     <details class="accordion-item" name="accordionFlushExample">
       <summary class="accordion-header">
         Accordion Item #3
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
-      <div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the <code>.accordion-flush</code> class. This is the third item's accordion body. Nothing more exciting happening here in terms of content, but just filling up the space to make it look, at least at first glance, a bit more representative of how this would look in a real-world application.</div>
+      <div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the <code>.accordion-flush</code> class. This is the third items accordion body. Nothing more exciting happening here in terms of content, but just filling up the space to make it look, at least at first glance, a bit more representative of how this would look in a real-world application.</div>
     </details>
   </div>`} />
 
@@ -121,7 +121,7 @@ Omit the `name` attribute on each `<details>` element to allow multiple accordio
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the first item's accordion body.</strong> Without the <code>name</code> attribute, each accordion item operates independently. You can open multiple items at the same time.
+        <strong>This is the first items accordion body.</strong> Without the <code>name</code> attribute, each accordion item operates independently. You can open multiple items at the same time.
       </div>
     </details>
     <details class="accordion-item">
@@ -130,7 +130,7 @@ Omit the `name` attribute on each `<details>` element to allow multiple accordio
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the second item's accordion body.</strong> Opening this won't close the first item because there's no <code>name</code> attribute linking them together.
+        <strong>This is the second item’s accordion body.</strong> Opening this won’t close the first item because there’s no <code>name</code> attribute linking them together.
       </div>
     </details>
     <details class="accordion-item">
@@ -139,7 +139,7 @@ Omit the `name` attribute on each `<details>` element to allow multiple accordio
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the third item's accordion body.</strong> Each item is completely independent—open or close them in any combination you like.
+        <strong>This is the third items accordion body.</strong> Each item is completely independent—open or close them in any combination you like.
       </div>
     </details>
   </div>`} />
@@ -155,7 +155,7 @@ Accordions can be nested inside each other by placing a full `.accordion` within
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the first item's accordion body.</strong> It contains a nested accordion below.
+        <strong>This is the first items accordion body.</strong> It contains a nested accordion below.
         <div class="accordion mt-3">
           <details class="accordion-item" name="accordionNestedInner" open>
             <summary class="accordion-header">
@@ -193,7 +193,7 @@ Accordions can be nested inside each other by placing a full `.accordion` within
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the second item's accordion body.</strong> It does not contain a nested accordion.
+        <strong>This is the second items accordion body.</strong> It does not contain a nested accordion.
       </div>
     </details>
     <details class="accordion-item" name="accordionNested">
@@ -202,7 +202,7 @@ Accordions can be nested inside each other by placing a full `.accordion` within
         <svg class="accordion-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m2 5 6 6 6-6"/></svg>
       </summary>
       <div class="accordion-body">
-        <strong>This is the third item's accordion body.</strong> It does not contain a nested accordion.
+        <strong>This is the third items accordion body.</strong> It does not contain a nested accordion.
       </div>
     </details>
   </div>`} />
index 871d77c06a9625c636c679b02ad3fe4cc732b305..1ac53f977e784b120a616bfc6134819ffdc5ad9d 100644 (file)
@@ -11,7 +11,7 @@ Avatars are used to represent users or entities. They can display an image or in
 
 ### Image
 
-Use `.avatar` with an `.avatar-img` for image-based avatars. The parent `.avatar` element provides an easy wrapper for additional avatar features like status indicators and stacks. You're welcome to use the `.avatar-img` class on its own if you only need a single HTML element.
+Use `.avatar` with an `.avatar-img` for image-based avatars. The parent `.avatar` element provides an easy wrapper for additional avatar features like status indicators and stacks. Youre welcome to use the `.avatar-img` class on its own if you only need a single HTML element.
 
 <Example code={`<span class="avatar">
     <img class="avatar-img" src="https://github.com/mdo.png" alt="mdo">
index e1d766c121c570b3823c4725921f149a1fbff7b3..2302794522473be21bc00dbab2e1f1826079549a 100644 (file)
@@ -121,7 +121,7 @@ Use any content you like—different icons, decorative elements, or themed separ
 
 ## Accessibility
 
-Since breadcrumbs provide navigation, it's important to follow these practices:
+Since breadcrumbs provide navigation, its important to follow these practices:
 
 - Add `aria-label="breadcrumb"` to the `<nav>` element to describe the navigation type
 - Add `aria-current="page"` to the `.breadcrumb-item` containing the current page
index 5ee578dce939ad27bd055258427da9e05d602288..eeb7967b9d788c824683f45f65ed958b9d7c57d7 100644 (file)
@@ -160,7 +160,7 @@ Combine sets of button groups into button toolbars for more complex components.
     </div>
   </div>`} />
 
-Feel free to mix input groups with button groups in your toolbars. Similar to the example above, you'll likely need some utilities though to space things properly.
+Feel free to mix input groups with button groups in your toolbars. Similar to the example above, youll likely need some utilities though to space things properly.
 
 <Example class="d-flex gap-3 flex-column" code={`<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
     <div class="btn-group" role="group" aria-label="First group">
index cacb4767f861cfbed3a5aa9ac54cf55be63721ce..bcac523d9ffaf49ea3bd201ab7983339eb75542a 100644 (file)
@@ -141,7 +141,7 @@ Disabled buttons using the `<a>` element behave a bit different. Use the `.disab
 <Example code={`<a class="btn-solid theme-primary disabled" role="button" aria-disabled="true">Primary link</a>
 <a class="btn-solid theme-secondary disabled" role="button" aria-disabled="true">Link</a>`} />
 
-If there's an `href` attribute, add `tabindex="-1"` and `aria-disabled="true"` to prevent keyboard focus and assistive technologies from interacting with the link.
+If theres an `href` attribute, add `tabindex="-1"` and `aria-disabled="true"` to prevent keyboard focus and assistive technologies from interacting with the link.
 
 <Example code={`<a href="#" class="btn-solid theme-primary disabled" tabindex="-1" role="button" aria-disabled="true">Primary link</a>
 <a href="#" class="btn-solid theme-secondary disabled" tabindex="-1" role="button" aria-disabled="true">Link</a>`} />
@@ -311,7 +311,7 @@ Button sizes are defined in the `$button-sizes` Sass map. Each size specifies se
 
 #### Variants
 
-Button variants are defined in the `$button-variants` Sass map. Each variant specifies which theme color tokens to use for its base, hover, and active states. The map uses token names (like `"bg"`, `"contrast"`, `"border"`) that reference the current theme's color palette.
+Button variants are defined in the `$button-variants` Sass map. Each variant specifies which theme color tokens to use for its base, hover, and active states. The map uses token names (like `"bg"`, `"contrast"`, `"border"`) that reference the current themes color palette.
 
 <ScssDocs name="btn-variants" file="scss/buttons/_button.scss" />
 
@@ -343,7 +343,7 @@ To add a custom variant, extend the map before importing Bootstrap’s buttons:
 );
 ```
 
-To remove a variant you don't need, use Sass's `map.remove()`:
+To remove a variant you don’t need, use Sass’s `map.remove()`:
 
 ```scss
 @use "sass:map";
index 062b1467781a3681488eb358347a518b7ace8e42..bfec3a9b2e0b61cd3359489f2ed63d020575b196 100644 (file)
@@ -11,11 +11,11 @@ js: required
 
 ## How it works
 
-The Dialog component leverages the browser's native `<dialog>` element, providing built-in accessibility features, focus management, and backdrop handling without the complexity of custom implementations.
+The Dialog component leverages the browsers native `<dialog>` element, providing built-in accessibility features, focus management, and backdrop handling without the complexity of custom implementations.
 
 Key features of the native dialog:
 
-- **Modal or inline** via `showModal()` / `show()` — `modal: true` (default) promotes the dialog to the browser's top layer with a backdrop and focus trapping; `modal: false` renders it inline.
+- **Modal or inline** via `showModal()` / `show()` — `modal: true` (default) promotes the dialog to the browsers top layer with a backdrop and focus trapping; `modal: false` renders it inline.
 - **Built-in backdrop** using the `::backdrop` pseudo-element (modal only); set `backdrop: "static"` to lock clicks outside, or `backdrop: false` to hide it.
 - **Escape key handling** closes the dialog by default; set `keyboard: false` to disable.
 - **Accessibility** — focus is trapped inside modal dialogs and returned to the trigger on close, with native `<dialog>` ARIA semantics.
@@ -37,7 +37,7 @@ Toggle a dialog by clicking the button below. The dialog uses the native `showMo
       <CloseButton dismiss="dialog" />
     </div>
     <div class="dialog-body">
-      <p>This is a native dialog element. It uses the browser's built-in modal behavior for accessibility and focus management.</p>
+      <p>This is a native dialog element. It uses the browsers built-in modal behavior for accessibility and focus management.</p>
     </div>
     <div class="dialog-footer">
       <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
@@ -59,7 +59,7 @@ To make a dialog dark, add `data-bs-theme="dark"` to the `<dialog>` element.
       <CloseButton dismiss="dialog" />
     </div>
     <div class="dialog-body">
-      <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>
+      <p>This is a native dialog element, only it’s set to dark mode. It uses the browsers built-in modal behavior for accessibility and focus management.</p>
     </div>
     <div class="dialog-footer">
       <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
@@ -90,9 +90,9 @@ When `backdrop` is set to `static`, the dialog will not close when clicking outs
 
 ## Overlays
 
-Tooltips, popovers, and toasts all work inside dialogs, but require some extra care. Since dialogs render in the browser's top layer, overlays appended to `<body>` will appear behind the dialog. Set `data-bs-container` to the dialog element so tooltips and popovers render inside it. Toasts already work as long as they're placed in the dialog markup.
+Tooltips, popovers, and toasts all work inside dialogs, but require some extra care. Since dialogs render in the browser’s top layer, overlays appended to `<body>` will appear behind the dialog. Set `data-bs-container` to the dialog element so tooltips and popovers render inside it. Toasts already work as long as they’re placed in the dialog markup.
 
-Tooltips, popovers, toasts, and menus all work inside modal dialogs. Modal dialogs use `showModal()`, which promotes the dialog to the browser's top layer -- a special rendering layer above everything else on the page.
+Tooltips, popovers, toasts, and menus all work inside modal dialogs. Modal dialogs use `showModal()`, which promotes the dialog to the browsers top layer -- a special rendering layer above everything else on the page.
 
 <Example code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#dialogWithComponents">
     Open dialog
@@ -228,7 +228,7 @@ Create a scrollable dialog that scrolls the dialog body while keeping the header
       <CloseButton dismiss="dialog" />
     </div>
     <div class="dialog-body">
-      <p>This is some placeholder content to show the scrolling behavior for dialogs. We use repeated line breaks to demonstrate how content can exceed the dialog's inner height, showing scrolling within the body while the header and footer remain fixed.</p>
+      <p>This is some placeholder content to show the scrolling behavior for dialogs. We use repeated line breaks to demonstrate how content can exceed the dialogs inner height, showing scrolling within the body while the header and footer remain fixed.</p>
       <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
       <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
       <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
@@ -284,9 +284,9 @@ When a toggle trigger is inside an open dialog, clicking it will **swap** dialog
 By default, dialogs open as modals using the browser-native `showModal()` method. You can also open dialogs as non-modal using `show()` by setting `modal` to `false`. Non-modal dialogs:
 
 - Have no backdrop
-- Don't trap focus
-- Don't block interaction with the rest of the page
-- Don't render in the browser's top layer
+- Dont trap focus
+- Dont block interaction with the rest of the page
+- Don’t render in the browser’s top layer
 - Still respond to Escape key (if `keyboard: true`)
 
 <Example code={`<button type="button" class="btn-solid theme-primary" data-bs-toggle="dialog" data-bs-target="#nonModalDialog" data-bs-modal="false"><!-- [!code highlight] -->
@@ -299,7 +299,7 @@ By default, dialogs open as modals using the browser-native `showModal()` method
       <CloseButton dismiss="dialog" />
     </div>
     <div class="dialog-body">
-      <p>This dialog doesn't block the page. You can still interact with content behind it.</p>
+      <p>This dialog doesnt block the page. You can still interact with content behind it.</p>
     </div>
     <div class="dialog-footer">
       <button type="button" class="btn-solid theme-secondary" data-bs-dismiss="dialog">Close</button>
@@ -492,7 +492,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
 <BsTable>
 | Name | Type | Default | Description |
 | --- | --- | --- | --- |
-| `backdrop` | boolean or `'static'` | `true` | For modal dialogs, clicking the backdrop dismisses the dialog. Specify `static` for a backdrop which doesn't close the dialog when clicked. Has no effect on non-modal dialogs. |
+| `backdrop` | boolean or `'static'` | `true` | For modal dialogs, clicking the backdrop dismisses the dialog. Specify `static` for a backdrop which doesnt close the dialog when clicked. Has no effect on non-modal dialogs. |
 | `keyboard` | boolean | `true` | Closes the dialog when escape key is pressed. |
 | `modal` | boolean | `true` | When `true`, opens the dialog as a modal using `showModal()` with backdrop, focus trapping, and top layer rendering. When `false`, opens as a non-modal dialog using `show()` without backdrop or focus trapping. |
 </BsTable>
@@ -515,14 +515,14 @@ const myDialog = new bootstrap.Dialog('#myDialog', {
 | `hide` | Hides the dialog. **Returns to the caller before the dialog has actually been hidden** (i.e. before the `hidden.bs.dialog` event occurs). |
 | `toggle` | Toggles the dialog. **Returns to the caller before the dialog has actually been shown or hidden** (i.e. before the `shown.bs.dialog` or `hidden.bs.dialog` event occurs). |
 | `handleUpdate` | Provided for API consistency with Modal. Native dialogs handle their own positioning. |
-| `dispose` | Destroys an element's dialog. |
+| `dispose` | Destroys an elements dialog. |
 | `getInstance` | Static method which allows you to get the dialog instance associated with a DOM element. |
-| `getOrCreateInstance` | Static method which allows you to get the dialog instance associated with a DOM element, or create a new one in case it wasn't initialized. |
+| `getOrCreateInstance` | Static method which allows you to get the dialog instance associated with a DOM element, or create a new one in case it wasnt initialized. |
 </BsTable>
 
 ### Events
 
-Bootstrap's dialog class exposes a few events for hooking into dialog functionality.
+Bootstraps dialog class exposes a few events for hooking into dialog functionality.
 
 <BsTable>
 | Event | Description |
index bc3e79a6af9419c5409be78b253273c58f2f479c..2671626803d9b8ffd608fc5a28728fe6b86bf5fa 100644 (file)
@@ -12,7 +12,7 @@ js: required
 Drawer builds on the native `<dialog>` element and our Dialog component to manage hidden sidebars via JavaScript. These sidebars, or drawers, can appear from the left, right, top, or bottom edge of the viewport. Buttons or anchors are used as triggers that are attached to specific elements you toggle, and `data` attributes are used to invoke our JavaScript.
 
 - **Drawer shares the same base as [our Dialog component]([[docsref:/components/dialog]])**, using native `<dialog>` APIs for focus trapping, backdrop, and top-layer rendering.
-- **Use the `<dialog>` element**, not a `<div>`. Due to how CSS handles animations, don't apply `margin` or `translate` directly to `.drawer` — wrap it if you need those.
+- **Use the `<dialog>` element**, not a `<div>`. Due to how CSS handles animations, dont apply `margin` or `translate` directly to `.drawer` — wrap it if you need those.
 - **Modal by default, or scroll-through** — the default opens the drawer modally with a backdrop; set `scroll: true` to render without a backdrop and without locking body scroll.
 - **Built-in backdrop** via `::backdrop` (modal only) closes the drawer on click; set `backdrop: "static"` to lock clicks outside, or `backdrop: false` to hide it.
 - **Escape key handling** closes the drawer by default; set `keyboard: false` to disable.
@@ -203,7 +203,7 @@ To make a responsive drawer, replace the `.drawer` base class with a responsive
 
 ## Placement
 
-There's no default placement for drawer components, so you must add one of the modifier classes below.
+Theres no default placement for drawer components, so you must add one of the modifier classes below.
 
 - `.drawer-start` places drawer on the left of the viewport (shown above)
 - `.drawer-end` places drawer on the right of the viewport
index 7a74ae41af87f78cce02aaa91d7439c9f1158502..b4233159caa577e14141e5eaeef7481f1ef86bcc 100644 (file)
@@ -14,7 +14,7 @@ deps:
 
 ## Overview
 
-Toggle menus with buttons whenever possible. Here's an example using a Bootstrap button:
+Toggle menus with buttons whenever possible. Heres an example using a Bootstrap button:
 
 <Example code={`<button class="btn-solid theme-primary" type="button" data-bs-toggle="menu" aria-expanded="false">
     Toggle menu
@@ -25,13 +25,13 @@ Toggle menus with buttons whenever possible. Here's an example using a Bootstrap
     <a class="menu-item" href="#">Menu item 3</a>
   </div>`} />
 
-Menus are toggleable, contextual overlays for displaying lists of links and more. They're made interactive with the included Bootstrap menu JavaScript plugin. They're toggled by clicking, not by hovering; this is [an intentional design decision](https://markdotto.com/blog/bootstrap-explained-dropdowns/).
+Menus are toggleable, contextual overlays for displaying lists of links and more. They’re made interactive with the included Bootstrap menu JavaScript plugin. They’re toggled by clicking, not by hovering; this is [an intentional design decision](https://markdotto.com/blog/bootstrap-explained-dropdowns/).
 
-Menus are built on a third party library, [Floating UI](https://floating-ui.com/), which provides dynamic positioning and viewport detection. Use `bootstrap.bundle.min.js` / `bootstrap.bundle.js` which includes Floating UI, or include Floating UI separately via an [import map]([[docsref:/getting-started/javascript#using-bootstrap-as-a-module]]). Floating UI isn't used to position menus in navbars though as dynamic positioning isn't required.
+Menus are built on a third party library, [Floating UI](https://floating-ui.com/), which provides dynamic positioning and viewport detection. Use `bootstrap.bundle.min.js` / `bootstrap.bundle.js` which includes Floating UI, or include Floating UI separately via an [import map]([[docsref:/getting-started/javascript#using-bootstrap-as-a-module]]). Floating UI isn’t used to position menus in navbars though as dynamic positioning isn’t required.
 
 ## Examples
 
-While `<button>` is the recommended control for a menu 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.
+While `<button>` is the recommended control for a menu 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 controls purpose to assistive technologies such as screen readers.
 
 Use [button groups]([[docsref:/components/button-group]]) to create split button menus where the menu is displayed when a secondary button is clicked.
 
@@ -165,7 +165,7 @@ Resize your browser window to see the placement change at different breakpoints.
 You can use `<a>` or `<button>` elements as menu items.
 
 <Callout>
-We use utility classes to display menus in our docs examples, but they're not required for your own use.
+We use utility classes to display menus in our docs examples, but theyre not required for your own use.
 </Callout>
 
 <Example code={`<div class="menu show position-static">
@@ -330,12 +330,12 @@ Separate groups of related menu items with a divider.
 
 ### Text
 
-Place any freeform text within a menu with text and use [margin]([[docsref:/utilities/margin]]) and [padding]([[docsref:/utilities/padding]]) utilities. Note that you'll likely need additional sizing styles to constrain the menu width.
+Place any freeform text within a menu with text and use [margin]([[docsref:/utilities/margin]]) and [padding]([[docsref:/utilities/padding]]) utilities. Note that youll likely need additional sizing styles to constrain the menu width.
 
 <Example code={`<div class="menu show position-static p-3 fg-2"
        style="--bs-menu-min-width: 240px;">
     <p>
-      Some example text that's free-flowing within the menu.
+      Some example text thats free-flowing within the menu.
     </p>
     <p class="mb-0">
       And this is more example text.
@@ -431,7 +431,7 @@ Wrap a `.menu-item` trigger and a nested `.menu` inside a `.submenu` element.
 
 ### Nested
 
-Submenus can be nested to multiple levels. Each level opens to the side and flips direction when there's not enough viewport space.
+Submenus can be nested to multiple levels. Each level opens to the side and flips direction when theres not enough viewport space.
 
 <Example code={`<button class="btn-solid theme-secondary" type="button" data-bs-toggle="menu" aria-expanded="false">
     Multi-level menu
@@ -538,7 +538,7 @@ By default, the menu is closed when clicking inside or outside the menu. You can
 
 The [<abbr title="Web Accessibility Initiative">WAI</abbr> <abbr title="Accessible Rich Internet Applications">ARIA</abbr>](https://www.w3.org/TR/wai-aria/) standard defines an actual [`role="menu"` widget](https://www.w3.org/TR/wai-aria/#menu), but this is specific to application-like menus which trigger actions or functions. <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus can only contain menu items, checkbox menu items, radio button menu items, radio button groups, and sub-menus.
 
-Bootstrap's menus, on the other hand, are designed to be generic and applicable to a variety of situations and markup structures. For instance, it is possible to create menus that contain additional inputs and form controls, such as search fields or login forms. For this reason, Bootstrap does not expect (nor automatically add) any of the `role` and `aria-` attributes required for true <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus. Authors will have to include these more specific attributes themselves.
+Bootstraps menus, on the other hand, are designed to be generic and applicable to a variety of situations and markup structures. For instance, it is possible to create menus that contain additional inputs and form controls, such as search fields or login forms. For this reason, Bootstrap does not expect (nor automatically add) any of the `role` and `aria-` attributes required for true <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus. Authors will have to include these more specific attributes themselves.
 
 ### Keyboard navigation
 
@@ -572,7 +572,7 @@ Menu items include at least one variable that is not set on `.menu`. This allows
 
 ## Usage
 
-Via data attributes or JavaScript, the menu plugin toggles hidden content (menus) by toggling the `.show` class on the `.menu`. The `data-bs-toggle="menu"` attribute is relied on for closing menus at an application level, so it's a good idea to always use it.
+Via data attributes or JavaScript, the menu plugin toggles hidden content (menus) by toggling the `.show` class on the `.menu`. The `data-bs-toggle="menu"` attribute is relied on for closing menus at an application level, so its a good idea to always use it.
 
 <Callout>
 On touch-enabled devices, opening a menu adds empty `mouseover` handlers to the immediate children of the `<body>` element. This admittedly ugly hack is necessary to work around a [quirk in iOS' event delegation](https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html), which would otherwise prevent a tap anywhere outside of the menu from triggering the code that closes the menu. Once the menu is closed, these additional empty `mouseover` handlers are removed.
@@ -612,7 +612,7 @@ const menuList = [...menuElementList].map(menuToggleEl => new bootstrap.Menu(men
 
 ### Dependencies
 
-The menu plugin requires the following JavaScript files if you're building Bootstrap's JS from source:
+The menu plugin requires the following JavaScript files if you’re building Bootstrap’s JS from source:
 
 <BsTable>
 | File | Description |
@@ -635,14 +635,14 @@ The menu plugin requires the following JavaScript files if you're building Boots
 | Name | Type | Default | Description |
 | --- | --- | --- | --- |
 | `autoClose` | boolean, string | `true` | Configure the auto close behavior of the menu: <ul class="my-2"><li>`true` - the menu will be closed by clicking outside or inside the menu.</li><li>`false` - the menu will be closed by clicking the toggle button and manually calling `hide` or `toggle` method. (Also will not be closed by pressing <kbd>Esc</kbd> key)</li><li>`'inside'` - the menu will be closed (only) by clicking inside the menu.</li> <li>`'outside'` - the menu will be closed (only) by clicking outside the menu.</li></ul> Note: the menu can always be closed with the <kbd>Esc</kbd> key. |
-| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the menu (applies only to the shift middleware). By default it's `clippingParents` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Floating UI's [shift docs](https://floating-ui.com/docs/shift). |
+| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the menu (applies only to the shift middleware). By default it’s `clippingParents` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Floating UI’s [shift docs](https://floating-ui.com/docs/shift). |
 | `container` | string, element, boolean | `false` | Appends the menu to a specific element when shown. Use `'body'` or `true` to append to the document body, which helps escape containers with `overflow: hidden`. The menu is moved back to its original position when hidden. |
 | `display` | string | `'dynamic'` | By default, we use Floating UI for dynamic positioning. Disable this with `static`. |
-| `offset` | array, string, function | `[0, 2]` | Offset of the menu relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the placement, the reference, and floating rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [skidding, distance]. For more information refer to Floating UI's [offset docs](https://floating-ui.com/docs/offset). |
-| `floatingConfig` | null, object, function | `null` | To change Bootstrap's default Floating UI config, see [Floating UI's configuration](https://floating-ui.com/docs/computePosition). When a function is used to create the Floating UI configuration, it's called with an object that contains the Bootstrap's default Floating UI configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Floating UI. |
+| `offset` | array, string, function | `[0, 2]` | Offset of the menu relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the placement, the reference, and floating rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [skidding, distance]. For more information refer to Floating UIs [offset docs](https://floating-ui.com/docs/offset). |
+| `floatingConfig` | null, object, function | `null` | To change Bootstrap’s default Floating UI config, see [Floating UI’s configuration](https://floating-ui.com/docs/computePosition). When a function is used to create the Floating UI configuration, it’s called with an object that contains the Bootstrap’s default Floating UI configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Floating UI. |
 | `placement` | string | `'bottom-start'` | Placement of the menu. Physical placements: `'top'`, `'bottom'`, `'left'`, `'right'`. Logical placements (RTL-aware): `'start'`, `'end'`. All support alignment modifiers: `-start`, `-end`. Supports responsive prefixes like `'bottom-start md:end'`. |
-| `reference` | string, element, object | `'toggle'` | Reference element of the menu. Accepts the values of `'toggle'`, `'parent'`, an HTMLElement reference or an object providing `getBoundingClientRect`. For more information refer to Floating UI's [virtual elements docs](https://floating-ui.com/docs/virtual-elements). |
-| `strategy` | string | `'absolute'` | Positioning strategy for the menu. Use `'absolute'` for default positioning, or `'fixed'` to escape containers with `overflow: hidden`. For more information refer to Floating UI's [strategy docs](https://floating-ui.com/docs/computePosition#strategy). |
+| `reference` | string, element, object | `'toggle'` | Reference element of the menu. Accepts the values of `'toggle'`, `'parent'`, an HTMLElement reference or an object providing `getBoundingClientRect`. For more information refer to Floating UIs [virtual elements docs](https://floating-ui.com/docs/virtual-elements). |
+| `strategy` | string | `'absolute'` | Positioning strategy for the menu. Use `'absolute'` for default positioning, or `'fixed'` to escape containers with `overflow: hidden`. For more information refer to Floating UIs [strategy docs](https://floating-ui.com/docs/computePosition#strategy). |
 | `submenuTrigger` | string | `'both'` | How submenus are triggered. Use `'click'` for click only, `'hover'` for hover only, or `'both'` for both click and hover activation. |
 | `submenuDelay` | number | `100` | Delay in milliseconds before closing a submenu when the mouse leaves. Provides a grace period for diagonal mouse movement toward the submenu. |
 </BsTable>
@@ -664,13 +664,13 @@ const menu = new bootstrap.Menu(element, {
 <BsTable>
 | Method | Description |
 | --- | --- |
-| `dispose` | Destroys an element's menu. (Removes stored data on the DOM element) |
+| `dispose` | Destroys an elements menu. (Removes stored data on the DOM element) |
 | `getInstance` | Static method which allows you to get the menu instance associated to a DOM element, you can use it like this: `bootstrap.Menu.getInstance(element)`. |
-| `getOrCreateInstance` | Static method which returns a menu instance associated to a DOM element or create a new one in case it wasn't initialized. You can use it like this: `bootstrap.Menu.getOrCreateInstance(element)`. |
+| `getOrCreateInstance` | Static method which returns a menu instance associated to a DOM element or create a new one in case it wasnt initialized. You can use it like this: `bootstrap.Menu.getOrCreateInstance(element)`. |
 | `hide` | Hides the menu of a given navbar or tabbed navigation. |
 | `show` | Shows the menu of a given navbar or tabbed navigation. |
 | `toggle` | Toggles the menu of a given navbar or tabbed navigation. |
-| `update` | Updates the position of an element's menu. |
+| `update` | Updates the position of an elements menu. |
 </BsTable>
 
 ### Events
index 94d7ab343c825647fbca6cb2d47e9bccf8f9046d..e7c558f332ab100de24ca16f1f8220275bd430c8 100644 (file)
@@ -8,9 +8,9 @@ js: required
 
 ## How it works
 
-The nav overflow component (also known as the "Priority+" pattern) automatically detects when navigation items don't fit within their container and moves them into a menu. This provides a responsive navigation experience without requiring different markup for different screen sizes.
+The nav overflow component (also known as the "Priority+" pattern) automatically detects when navigation items dont fit within their container and moves them into a menu. This provides a responsive navigation experience without requiring different markup for different screen sizes.
 
-Here's what you need to know before getting started:
+Heres what you need to know before getting started:
 
 - Add `data-bs-toggle="nav-overflow"` to any `.nav` element to enable automatic overflow detection.
 - **Responds to container size**, not viewport size. The component uses a ResizeObserver to monitor its own width, so it works perfectly in embedded contexts, documentation examples, and responsive containers.
@@ -22,7 +22,7 @@ Here's what you need to know before getting started:
 
 ## Examples
 
-Add `data-bs-toggle="nav-overflow"` to your nav element. When items don't fit, they'll automatically move to a "More" menu. Drag the right edge of the container below to see how nav items automatically move to the "More" menu as space becomes limited.
+Add `data-bs-toggle="nav-overflow"` to your nav element. When items don’t fit, they’ll automatically move to a "More" menu. Drag the right edge of the container below to see how nav items automatically move to the "More" menu as space becomes limited.
 
 <ResizableExample code={`<ul class="nav nav-pills" data-bs-toggle="nav-overflow">
     <li class="nav-item">
@@ -244,7 +244,7 @@ new bootstrap.NavOverflow(nav, {
 
 ### Collapse all
 
-Use the `collapseBelow` option to force all items into the overflow dropdown when the nav element's width is below a threshold. Pass a breakpoint name to resolve the value from `--bs-breakpoint-{name}`, or a number for a direct pixel value.
+Use the `collapseBelow` option to force all items into the overflow dropdown when the nav elements width is below a threshold. Pass a breakpoint name to resolve the value from `--bs-breakpoint-{name}`, or a number for a direct pixel value.
 
 ```html
 <ul class="nav nav-pills" data-bs-toggle="nav-overflow" data-bs-collapse-below="md">
@@ -336,7 +336,7 @@ const navOverflow = new bootstrap.NavOverflow('#myNav', {
 
 ### Events
 
-Bootstrap's nav overflow component exposes events for hooking into overflow functionality.
+Bootstraps nav overflow component exposes events for hooking into overflow functionality.
 
 <BsTable>
 | Event type | Description |
index 3e1b7bf1e41ed8358b6c2ad63487fca4e4add694..46d3851d8835144047f83aad3b1a883f26900309 100644 (file)
@@ -15,7 +15,7 @@ import { getConfig } from '@libs/config'
 
 ## Example
 
-Here's a navbar that includes most supported sub-components and a responsive right drawer with [our Drawer plugin]([[docsref:/components/drawer]]). Use the lower-right corner grip to resize to preview responsive behavior.
+Heres a navbar that includes most supported sub-components and a responsive right drawer with [our Drawer plugin]([[docsref:/components/drawer]]). Use the lower-right corner grip to resize to preview responsive behavior.
 
 <ResizableExample code={`<nav class="navbar md:navbar-expand bg-1">
     <div class="container-fluid">
@@ -66,7 +66,7 @@ Here's a navbar that includes most supported sub-components and a responsive rig
 
 ## How it works
 
-Here's what you need to know before getting started with the navbar:
+Heres what you need to know before getting started with the navbar:
 
 - Navbars require a wrapping `.navbar` with `.navbar-expand-{breakpoint}` for responsive collapsing and [color scheme](#color-schemes) classes.
 - Navbars and their contents are fluid by default. Change the [container](#containers) to limit their horizontal width in different ways.
@@ -402,7 +402,7 @@ Add `.navbar-translucent` to blur and saturate the background of a navbar. This
 
 ## Color schemes
 
-Navbar themes are easier than ever thanks to Bootstrap's combination of Sass and CSS variables. The default is our "light navbar" for use with light background colors, but you can also apply `data-bs-theme="dark"` to the `.navbar` parent for dark background colors. Then, customize with `.bg-*` and additional utilities.
+Navbar themes are easier than ever thanks to Bootstraps combination of Sass and CSS variables. The default is our "light navbar" for use with light background colors, but you can also apply `data-bs-theme="dark"` to the `.navbar` parent for dark background colors. Then, customize with `.bg-*` and additional utilities.
 
 <ResizableExample className="d-flex flex-column gap-2" showMarkup={false} code={`
 <nav class="navbar md:navbar-expand" data-bs-theme="dark">
@@ -527,7 +527,7 @@ Navbar themes are easier than ever thanks to Bootstrap's combination of Sass and
 
 ## Containers
 
-Although it's not required, you can wrap a navbar in a `.container` to center it on a page–though note that an inner container is still required. Or you can add a container inside the `.navbar` to only center the contents of a [fixed or static top navbar](#placement).
+Although its not required, you can wrap a navbar in a `.container` to center it on a page–though note that an inner container is still required. Or you can add a container inside the `.navbar` to only center the contents of a [fixed or static top navbar](#placement).
 
 <Example code={`<div class="container">
     <nav class="navbar lg:navbar-expand bg-1 fg-2">
@@ -549,7 +549,7 @@ Use any of the responsive containers to change how wide the content in your navb
 
 Use our [position utilities]([[docsref:/utilities/position]]) to place navbars in non-static positions. Choose from fixed to the top, fixed to the bottom, stickied to the top (scrolls with the page until it reaches the top, then stays there), or stickied to the bottom (scrolls with the page until it reaches the bottom, then stays there).
 
-Fixed navbars use `position: fixed`, meaning they're pulled from the normal flow of the DOM and may require custom CSS (e.g., `padding-top` on the `<body>`) to prevent overlap with other elements.
+Fixed navbars use `position: fixed`, meaning theyre pulled from the normal flow of the DOM and may require custom CSS (e.g., `padding-top` on the `<body>`) to prevent overlap with other elements.
 
 <NavbarPlacementPlayground />
 
@@ -557,7 +557,7 @@ Fixed navbars use `position: fixed`, meaning they're pulled from the normal flow
 
 Navbars can use `.navbar-toggler`, and `.lg:navbar-expand{-sm|-md|-lg|-xl|-2xl}` classes to determine when their content appears in an drawer drawer or inline. In combination with other utilities, you can easily choose when to show or hide particular elements.
 
-For navbars that never collapse, add the `.lg:navbar-expand` class on the navbar. For navbars that always show the drawer drawer, don't add any `.lg:navbar-expand` class.
+For navbars that never collapse, add the `.lg:navbar-expand` class on the navbar. For navbars that always show the drawer drawer, dont add any `.lg:navbar-expand` class.
 
 ### Drawer drawer
 
@@ -620,7 +620,7 @@ These examples omit the `.lg:navbar-expand` class to always show the drawer beha
 
 ### Toggler
 
-Navbar togglers are left-aligned by default, but should they follow a sibling element like a `.navbar-brand`, they'll automatically be aligned to the far right. Reversing your markup will reverse the placement of the toggler.
+Navbar togglers are left-aligned by default, but should they follow a sibling element like a `.navbar-brand`, theyll automatically be aligned to the far right. Reversing your markup will reverse the placement of the toggler.
 
 These examples omit the `.lg:navbar-expand` class to always show the collapsed state with the toggler visible. Click the toggler to open the drawer drawer.
 
@@ -710,7 +710,7 @@ With a toggler on the left and brand name on the right:
 
 ### External content
 
-Sometimes you want to use the drawer plugin to trigger a container element for content that structurally sits outside of the `.navbar`. Because our plugin works on the `id` and `data-bs-target` matching, that's easily done!
+Sometimes you want to use the drawer plugin to trigger a container element for content that structurally sits outside of the `.navbar`. Because our plugin works on the `id` and `data-bs-target` matching, thats easily done!
 
 <ResizableExample code={`<dialog class="drawer drawer-top" tabindex="-1" id="navbarToggleExternalContent" data-bs-theme="dark" aria-labelledby="navbarToggleExternalContentLabel">
     <div class="drawer-header">
@@ -729,7 +729,7 @@ Sometimes you want to use the drawer plugin to trigger a container element for c
     </div>
   </nav>`} />
 
-When you do this, we recommend including additional JavaScript to move the focus programmatically to the container when it is opened. Otherwise, keyboard users and users of assistive technologies will likely have a hard time finding the newly revealed content - particularly if the container that was opened comes *before* the toggler in the document's structure. We also recommend making sure that the toggler has the `aria-controls` attribute, pointing to the `id` of the content container. In theory, this allows assistive technology users to jump directly from the toggler to the container it controls–but support for this is currently quite patchy.
+When you do this, we recommend including additional JavaScript to move the focus programmatically to the container when it is opened. Otherwise, keyboard users and users of assistive technologies will likely have a hard time finding the newly revealed content - particularly if the container that was opened comes *before* the toggler in the documents structure. We also recommend making sure that the toggler has the `aria-controls` attribute, pointing to the `id` of the content container. In theory, this allows assistive technology users to jump directly from the toggler to the container it controls–but support for this is currently quite patchy.
 
 ## CSS
 
index 9b8dd36041caef24eb46033656ff2644c6766026..e95656f4fd86af09e5fb4a2abfca458dc42c7833 100644 (file)
@@ -250,16 +250,16 @@ Note that for security reasons the `sanitize`, `sanitizeFn`, and `allowList` opt
 | --- | --- | --- | --- |
 | `allowList` | object | [Default value]([[docsref:/getting-started/javascript#sanitizer]]) | An object containing allowed tags and attributes. Those not explicitly allowed will be removed by [the content sanitizer]([[docsref:/getting-started/javascript#sanitizer]]). <Callout type="warning">**Exercise caution when adding to this list.** Refer to [OWASP’s Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) for more information.</Callout> |
 | `animation` | boolean | `true` | Apply a CSS fade transition to the popover. |
-| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the popover (applies only to Floating UI's shift middleware). By default, it’s `'clippingParents'` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Floating UI's [shift docs](https://floating-ui.com/docs/shift#boundary). |
+| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the popover (applies only to Floating UI’s shift middleware). By default, it’s `'clippingParents'` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Floating UI’s [shift docs](https://floating-ui.com/docs/shift#boundary). |
 | `container` | string, element, false | `false` | Appends the popover to a specific element. Example: `container: 'body'`. This option is particularly useful in that it allows you to position the popover in the flow of the document near the triggering element -&nbsp;which will prevent the popover from floating away from the triggering element during a window resize. |
 | `content` | string, element, function | `''` | The popover’s text content. If a function is given, it will be called with its `this` reference set to the element that the popover is attached to. |
 | `customClass` | string, function | `''` | Add classes to the popover when it is shown. Note that these classes will be added in addition to any classes specified in the template. To add multiple classes, separate them with spaces: `'class-1 class-2'`. You can also pass a function that should return a single string containing additional class names. |
 | `delay` | number, object | `0` | Delay showing and hiding the popover (ms)—doesn’t apply to manual trigger type. If a number is supplied, delay is applied to both hide/show. Object structure is: `delay: { "show": 500, "hide": 100 }`. |
-| `fallbackPlacements` | array | `['top', 'right', 'bottom', 'left']` | Define fallback placements by providing a list of placements in array (in order of preference). For more information refer to Floating UI's [flip docs](https://floating-ui.com/docs/flip#fallbackplacements). |
+| `fallbackPlacements` | array | `['top', 'right', 'bottom', 'left']` | Define fallback placements by providing a list of placements in array (in order of preference). For more information refer to Floating UIs [flip docs](https://floating-ui.com/docs/flip#fallbackplacements). |
 | `html` | boolean | `false` | Allow HTML in the popover. If true, HTML tags in the popover’s `title` will be rendered in the popover. If false, `innerText` property will be used to insert content into the DOM. Prefer text when dealing with user-generated input to [prevent XSS attacks](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html). |
-| `offset` | array, string, function | `[0, 8]` | Offset of the popover relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the floating placement, the reference, and floating rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [crossAxis](https://floating-ui.com/docs/offset#crossaxis), [mainAxis](https://floating-ui.com/docs/offset#mainaxis). For more information refer to Floating UI's [offset docs](https://floating-ui.com/docs/offset). |
+| `offset` | array, string, function | `[0, 8]` | Offset of the popover relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the floating placement, the reference, and floating rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [crossAxis](https://floating-ui.com/docs/offset#crossaxis), [mainAxis](https://floating-ui.com/docs/offset#mainaxis). For more information refer to Floating UIs [offset docs](https://floating-ui.com/docs/offset). |
 | `placement` | string, function | `'right'` | How to position the popover: top, bottom, left, right. Supports responsive prefixes like `'top md:right lg:bottom'` to change placement at different breakpoints. When a function is used to determine the placement, it is called with the popover DOM node as its first argument and the triggering element DOM node as its second. |
-| `floatingConfig` | null, object, function | `null` | To change Bootstrap's default Floating UI config, see [Floating UI's configuration](https://floating-ui.com/docs/computePosition). When a function is used to create the Floating UI configuration, it’s called with an object that contains the Bootstrap's default Floating UI configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Floating UI. |
+| `floatingConfig` | null, object, function | `null` | To change Bootstrap’s default Floating UI config, see [Floating UI’s configuration](https://floating-ui.com/docs/computePosition). When a function is used to create the Floating UI configuration, it’s called with an object that contains the Bootstrap’s default Floating UI configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Floating UI. |
 | `sanitize` | boolean | `true` | Enable [content sanitization]([[docsref:/getting-started/javascript#sanitizer]]). If true, the `template`, `content` and `title` options will be sanitized. <Callout type="warning">**Exercise caution when disabling content sanitization.** Refer to [OWASP’s Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) for more information. Vulnerabilities caused solely by disabling content sanitization are not considered within scope for Bootstrap’s security model.</Callout> |
 | `sanitizeFn` | null, function | `null` | Provide an alternative [content sanitization]([[docsref:/getting-started/javascript#sanitizer]]) function. This can be useful if you prefer to use a dedicated library to perform sanitization. |
 | `selector` | string, false | `false` | If a selector is provided, popover objects will be delegated to the specified targets. In practice, this is used to also apply popovers to dynamically added DOM elements (`jQuery.on` support). See [this issue]([[config:repo]]/issues/4215) and [an informative example](https://codepen.io/Johann-S/pen/djJYPb). **Note**: `title` attribute must not be used as a selector. |
index fe04998bfb490d085bb5e55367a7ea97c0bb1b11..e9a2e7d7cdf4e0b5898656a3cf31de4574653781 100644 (file)
@@ -12,7 +12,7 @@ Stepper is built with CSS Grid and `<ol>` elements. By default, steps are displa
 
 ### Basic
 
-Here's a simple example of a vertical stepper.
+Heres a simple example of a vertical stepper.
 
 <Example code={`<ol class="stepper">
     <li class="stepper-item active">Create account</li>
@@ -154,7 +154,7 @@ Use [text alignment utilities]([[docsref:/utilities/text-alignment]]) (because w
     <li class="stepper-item">Finish</li>
   </ol>`} />
 
-Apply `.w-100` to the stepper to make it full width. Stepper items will be stretched to fill the available space. Alignment doesn't affect full-width steppers.
+Apply `.w-100` to the stepper to make it full width. Stepper items will be stretched to fill the available space. Alignment doesnt affect full-width steppers.
 
 <Example code={`<ol class="stepper stepper-horizontal w-100">
     <li class="stepper-item active">Create account</li>
@@ -165,7 +165,7 @@ Apply `.w-100` to the stepper to make it full width. Stepper items will be stret
 
 ## With anchors
 
-Use anchor elements to build your stepper if it links across multiple pages. Add `role="button"` or use `<button>` elements if you're linking across sections in the same document.
+Use anchor elements to build your stepper if it links across multiple pages. Add `role="button"` or use `<button>` elements if youre linking across sections in the same document.
 
 Consider using our [link utilities]([[docsref:/utilities/link]]) for quick color control.
 
index 3d922fb05aba25958aaa812d9b9a92ea2e065400..df1ef2ffa46a8a194952a2c91a17704f99f1f851 100644 (file)
@@ -77,7 +77,7 @@ You could also use this to toggle the `disabled` attribute on a `fieldset` eleme
 
 ### Via data attributes
 
-Add `data-bs-toggle="toggler"` to the element to automatically. The `data-bs-target` is optional, and attribute accepts a CSS selector to apply the toggler functionality to. Be sure to add the `data-bs-attribute` and `data-bs-value` attributes to the toggled element's markup.
+Add `data-bs-toggle="toggler"` to the element to automatically. The `data-bs-target` is optional, and attribute accepts a CSS selector to apply the toggler functionality to. Be sure to add the `data-bs-attribute` and `data-bs-value` attributes to the toggled elements markup.
 
 <BsTable>
 | Attribute | Description |
@@ -90,7 +90,7 @@ Add `data-bs-toggle="toggler"` to the element to automatically. The `data-bs-tar
 
 ### Via JavaScript
 
-We don't recommend using this component programmatically, as the initial purpose of it is to avoid using JavaScript. However, you can enable manually with:
+We dont recommend using this component programmatically, as the initial purpose of it is to avoid using JavaScript. However, you can enable manually with:
 
 ```js
 var togglerElementList = Array.prototype.slice.call(document.querySelectorAll('[data-bs-toggle="toggler"]'))
@@ -124,18 +124,18 @@ var bsToggler = new bootstrap.Toggler(myToggler)
 | --- | --- |
 | `toggle` | Toggles a toggler element chosen attribute |
 | `getInstance` | *Static* method which allows you to get the toggler instance associated with a DOM element |
-| `getOrCreateInstance` | *Static* method which allows you to get the toggler instance associated with a DOM element, or create a new one in case it wasn't initialized |
+| `getOrCreateInstance` | *Static* method which allows you to get the toggler instance associated with a DOM element, or create a new one in case it wasnt initialized |
 </BsTable>
 
 ### Events
 
-Bootstrap's toggler class exposes a few events for hooking into toggler functionality.
+Bootstraps toggler class exposes a few events for hooking into toggler functionality.
 
 <BsTable>
 | Event type | Description |
 | --- | --- |
 | `toggle.bs.toggler` | This event fires immediately when the `toggle` instance method is called. |
-| `toggled.bs.toggler` | This event is fired when the instance's element attribute has been changed. |
+| `toggled.bs.toggler` | This event is fired when the instances element attribute has been changed. |
 </BsTable>
 
 ```js
index 3e4b952511aede5c449bcc60dafad8e8c5c50c45..2dfb26fde30df78c55da09d91089ebf7d31c2bf1 100644 (file)
@@ -206,7 +206,7 @@ The required markup for a tooltip is only a `data` attribute and `title` on the
 
 ### Dependencies
 
-The tooltip plugin requires the following JavaScript files if you're building Bootstrap's JS from source:
+The tooltip plugin requires the following JavaScript files if you’re building Bootstrap’s JS from source:
 
 <BsTable>
 | File | Description |
@@ -235,15 +235,15 @@ Note that for security reasons the `sanitize`, `sanitizeFn`, and `allowList` opt
 | --- | --- | --- | --- |
 | `allowList` | object | [Default value]([[docsref:/getting-started/javascript#sanitizer]]) | An object containing allowed tags and attributes. Those not explicitly allowed will be removed by [the content sanitizer]([[docsref:/getting-started/javascript#sanitizer]]). <Callout type="warning">**Exercise caution when adding to this list.** Refer to [OWASP’s Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) for more information.</Callout> |
 | `animation` | boolean | `true` | Apply a CSS fade transition to the tooltip. |
-| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the tooltip (applies only to Floating UI's shift middleware). By default, it’s `'clippingParents'` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Floating UI's [shift docs](https://floating-ui.com/docs/shift#boundary). |
+| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the tooltip (applies only to Floating UI’s shift middleware). By default, it’s `'clippingParents'` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Floating UI’s [shift docs](https://floating-ui.com/docs/shift#boundary). |
 | `container` | string, element, false | `false` | Appends the tooltip to a specific element. Example: `container: 'body'`. This option is particularly useful in that it allows you to position the tooltip in the flow of the document near the triggering element -&nbsp;which will prevent the tooltip from floating away from the triggering element during a window resize. |
 | `customClass` | string, function | `''` | Add classes to the tooltip when it is shown. Note that these classes will be added in addition to any classes specified in the template. To add multiple classes, separate them with spaces: `'class-1 class-2'`. You can also pass a function that should return a single string containing additional class names. |
 | `delay` | number, object | `0` | Delay showing and hiding the tooltip (ms)—doesn’t apply to manual trigger type. If a number is supplied, delay is applied to both hide/show. Object structure is: `delay: { "show": 500, "hide": 100 }`. |
-| `fallbackPlacements` | array | `['top', 'right', 'bottom', 'left']` | Define fallback placements by providing a list of placements in array (in order of preference). For more information refer to Floating UI's [flip docs](https://floating-ui.com/docs/flip#fallbackplacements). |
+| `fallbackPlacements` | array | `['top', 'right', 'bottom', 'left']` | Define fallback placements by providing a list of placements in array (in order of preference). For more information refer to Floating UIs [flip docs](https://floating-ui.com/docs/flip#fallbackplacements). |
 | `html` | boolean | `false` | Allow HTML in the tooltip. If true, HTML tags in the tooltip’s `title` will be rendered in the tooltip. If false, `innerText` property will be used to insert content into the DOM. Prefer text when dealing with user-generated input to [prevent XSS attacks](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html). |
-| `offset` | array, string, function | `[0, 6]` | Offset of the tooltip relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the floating placement, the reference, and floating rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [crossAxis](https://floating-ui.com/docs/offset#crossaxis), [mainAxis](https://floating-ui.com/docs/offset#mainaxis). For more information refer to Floating UI's [offset docs](https://floating-ui.com/docs/offset). |
+| `offset` | array, string, function | `[0, 6]` | Offset of the tooltip relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the floating placement, the reference, and floating rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [crossAxis](https://floating-ui.com/docs/offset#crossaxis), [mainAxis](https://floating-ui.com/docs/offset#mainaxis). For more information refer to Floating UIs [offset docs](https://floating-ui.com/docs/offset). |
 | `placement` | string, function | `'top'` | How to position the tooltip: top, bottom, left, right. Supports responsive prefixes like `'top md:right lg:bottom'` to change placement at different breakpoints. When a function is used to determine the placement, it is called with the tooltip DOM node as its first argument and the triggering element DOM node as its second. |
-| `floatingConfig` | null, object, function | `null` | To change Bootstrap’s default Floating UI config, see [Floating UI's configuration](https://floating-ui.com/docs/computePosition). When a function is used to create the Floating UI configuration, it’s called with an object that contains the Bootstrap’s default Floating UI configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Floating UI. |
+| `floatingConfig` | null, object, function | `null` | To change Bootstrap’s default Floating UI config, see [Floating UIs configuration](https://floating-ui.com/docs/computePosition). When a function is used to create the Floating UI configuration, it’s called with an object that contains the Bootstrap’s default Floating UI configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Floating UI. |
 | `sanitize` | boolean | `true` | Enable [content sanitization]([[docsref:/getting-started/javascript#sanitizer]]). If true, the `template`, `content` and `title` options will be sanitized. <Callout type="warning">**Exercise caution when disabling content sanitization.** Refer to [OWASP’s Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) for more information. Vulnerabilities caused solely by disabling content sanitization are not considered within scope for Bootstrap’s security model.</Callout> |
 | `sanitizeFn` | null, function | `null` | Provide an alternative [content sanitization]([[docsref:/getting-started/javascript#sanitizer]]) function. This can be useful if you prefer to use a dedicated library to perform sanitization. |
 | `selector` | string, false | `false` | If a selector is provided, tooltip objects will be delegated to the specified targets. In practice, this is used to also apply tooltips to dynamically added DOM elements (`jQuery.on` support). See [this issue]([[config:repo]]/issues/4215) and [an informative example](https://codepen.io/Johann-S/pen/djJYPb). **Note**: `title` attribute must not be used as a selector. |
index ac05c005fe43e56d736127224af26f5cd1ad6fe0..1345f05d6696e3acb7db037be2e642224dcb8c27 100644 (file)
@@ -7,7 +7,7 @@ css_layer: content
 
 ## How it works
 
-Wrap your content in the `.prose` class to get modified font-size, line-height, and spacing specifically designed for long form content that originates from source Markdown files or WYSIWYG editors. Here's what we do with that class:
+Wrap your content in the `.prose` class to get modified font-size, line-height, and spacing specifically designed for long form content that originates from source Markdown files or WYSIWYG editors. Heres what we do with that class:
 
 - Set a base `font-size`, `line-height`, and some local CSS variables on the parent element.
 - Normalize the spacing of lists
@@ -16,7 +16,7 @@ Wrap your content in the `.prose` class to get modified font-size, line-height,
 - Style blockquotes, code, and other inline elements.
 
 <Callout>
-  The `.not-prose` utility class can be used to opt out of `.prose` typography styles in specific elements. This is useful for components that have their own styling, such as code snippets or examples. Adding a `.prose` within a `.not-prose` won't work.
+  The `.not-prose` utility class can be used to opt out of `.prose` typography styles in specific elements. This is useful for components that have their own styling, such as code snippets or examples. Adding a `.prose` within a `.not-prose` wont work.
 </Callout>
 
 ## Example
@@ -68,7 +68,7 @@ Code examples should be practical and directly related to the concepts being exp
 
 ### Lists
 
-When presenting information in lists, consider whether the order matters. Use numbered lists for sequential steps and bullet points for related items that don't require a specific order.
+When presenting information in lists, consider whether the order matters. Use numbered lists for sequential steps and bullet points for related items that dont require a specific order.
 
 - Write clear, concise list items that focus on one concept each.
 - Use parallel structure across all items in your list.
index 1144373936e2c1260db1d1a3cef86df1c866103e..de533419be34d7144acca27ee57706baa5ad0c64 100644 (file)
@@ -549,7 +549,7 @@ You can also put the `<caption>` on the top of the table with `.caption-top`.
 
 ## Stacked tables
 
-Add `.table-stacked` to convert a table's rows into stacked blocks when space is limited. Each row becomes a vertical block with the first cell acting as a bold title and the remaining cells displayed as label–value pairs. Labels are generated from `data-cell` attributes on each `<td>`.
+Add `.table-stacked` to convert a tables rows into stacked blocks when space is limited. Each row becomes a vertical block with the first cell acting as a bold title and the remaining cells displayed as label–value pairs. Labels are generated from `data-cell` attributes on each `<td>`.
 
 Both `.table-stacked` and `.table-responsive` use container queries, so the `.table-responsive` wrapper is required as the query container. Use `.md:table-stacked`, `.lg:table-stacked`, etc. to only stack below a specific container width. The default `.table-stacked` always stacks.
 
@@ -569,7 +569,7 @@ Both `.table-stacked` and `.table-responsive` use container queries, so the `.ta
         <td data-cell="Name">backdrop</td>
         <td data-cell="Type">boolean or 'static'</td>
         <td data-cell="Default">true</td>
-        <td data-cell="Description">Includes a backdrop element. Specify static for a backdrop which doesn't close on click.</td>
+        <td data-cell="Description">Includes a backdrop element. Specify static for a backdrop which doesnt close on click.</td>
       </tr>
       <tr>
         <td data-cell="Name">keyboard</td>
index 42d24681c148174573ad462a08d38b0c599b73e6..137eecadf613c9a28f1434714174860a867ba4c9 100644 (file)
@@ -243,7 +243,7 @@ Align terms and descriptions horizontally by using our grid system’s predefine
 
 ## Responsive font sizes
 
-Bootstrap uses CSS's `clamp()` function to enable responsive font sizes, allowing text to scale more naturally across device and viewport sizes.
+Bootstrap uses CSSs `clamp()` function to enable responsive font sizes, allowing text to scale more naturally across device and viewport sizes.
 
 ## CSS
 
@@ -275,7 +275,7 @@ Miscellaneous typography elements covered here and in [Reboot]([[docsref:/conten
 
 ### Sass maps
 
-The `$font-sizes` map in `_config.scss` defines Bootstrap's type scale. Each key (e.g., `xs`, `md`, `3xl`) holds a nested map with `font-size` and `line-height` values. Larger sizes use `clamp()` for responsive scaling.
+The `$font-sizes` map in `_config.scss` defines Bootstraps type scale. Each key (e.g., `xs`, `md`, `3xl`) holds a nested map with `font-size` and `line-height` values. Larger sizes use `clamp()` for responsive scaling.
 
 <ScssDocs name="font-sizes" file="scss/_config.scss" />
 
index f7eae6ea3d0b8d082457f87caef345a402df0edc..8cf53cdf5119ee67b70cfa8b9c22eb31ac362896 100644 (file)
@@ -14,7 +14,7 @@ export const additionalColors = [
 
 ## Colors
 
-There are 13 shades of 16 colors in Bootstrap's new color system, meaning we have 208 colors to work with when using Bootstrap.
+There are 13 shades of 16 colors in Bootstraps new color system, meaning we have 208 colors to work with when using Bootstrap.
 
 All Bootstrap colors are available as Sass variables and a Sass map in `scss/_config.scss` file. To avoid increased file sizes, we don’t create text or background color classes for each of these variables. Instead, we choose a subset of these colors for a [theme palette]([[docsref:/customize/theme]]).
 
@@ -57,7 +57,7 @@ Bootstrap generates its colors from a series of Sass variables and a Sass map ca
 
 ### Default colors
 
-Below is our default list of colors. Colors are unique in Bootstrap in that they're still Sass variables by default. In addition, they're in `oklch()` format, which is a modern color space that is designed to be perceptually uniform.
+Below is our default list of colors. Colors are unique in Bootstrap in that they’re still Sass variables by default. In addition, they’re in `oklch()` format, which is a modern color space that is designed to be perceptually uniform.
 
 <ScssDocs name="colors-list" file="scss/_colors.scss" />
 
@@ -103,7 +103,7 @@ You can customize the colors by adding or removing colors from the `$colors` map
 2. Add the new color to the `$colors` map.
 3. Recompile source Sass to generate the new colors.
 
-Here's how that would look:
+Heres how that would look:
 
 ```scss
 $slate: oklch(55% 0.07 260);
index c2833e36d850c46a91504155bf424d9835484bb4..47beaf6633e5bb0ccaeb30922368492b605c0e66 100644 (file)
@@ -20,7 +20,7 @@ Check out [our Sass maps and loops docs]([[docsref:/customize/sass#maps-and-loop
 
 ## Responsive
 
-These Sass loops aren't limited to color maps, either. You can also generate responsive variations of your components. Take for example our responsive navbar expand classes where we mix an `@each` loop for the `$breakpoints` Sass map with a media query include.
+These Sass loops arent limited to color maps, either. You can also generate responsive variations of your components. Take for example our responsive navbar expand classes where we mix an `@each` loop for the `$breakpoints` Sass map with a media query include.
 
 <ScssDocs name="navbar-expand-loop" file="scss/_navbar.scss" />
 
index eaa3dcb7cfe7cac44685798dd2c660a6721c928f..87d909ca7db7e47a39df00c599d441a036f4857c 100644 (file)
@@ -39,7 +39,7 @@ As you familiarize yourself with Bootstrap, continue exploring this section for
 
 ## Sass vs CSS
 
-When Bootstrap 5 first introduced CSS variables, the Sass vs CSS variables setup was a little confusing and somewhat limited. As such, the relationship between Sass and CSS variables was very unclear. In Bootstrap 6, we've clarified that—here's how the two interact.
+When Bootstrap 5 first introduced CSS variables, the Sass vs CSS variables setup was a little confusing and somewhat limited. As such, the relationship between Sass and CSS variables was very unclear. In Bootstrap 6, we’ve clarified that—here’s how the two interact.
 
 - At a high level, Sass is a way to manage [global configuration options]([[docsref:/customize/options]]) and generate CSS for our utilities, components, typography, custom properties (aka CSS variables) and more.
 - We consider CSS variables to be the **first-class customization layer** for our users.
index e1cd580e48dad98ea277757a3568fdb11c405752..5c42520a4bd782c35dd4c3da0a5672ad363ea504 100644 (file)
@@ -32,7 +32,7 @@ One line of changes to your HTML is all it takes to enable RTL. Bootstrap will t
 
 ### Live demo
 
-Toggle between LTR and RTL on this page to see Bootstrap's logical properties in action:
+Toggle between LTR and RTL on this page to see Bootstraps logical properties in action:
 
 <div class="bd-example">
   <div class="form-field">
index 5062d668a82d0cfe8571898ccf16a7e3855c9696..387432875dce2edfddaa2846e46dc16d3cbb34fb 100644 (file)
@@ -6,9 +6,9 @@ toc: true
 
 ## About Sass
 
-[Sass](https://sass-lang.com/) is a CSS preprocessor that adds features like variables, nesting, mixins, and functions to standard CSS. You write `.scss` files, compile them, and the output is plain CSS that browsers understand. If you're new to Sass, check out the [Sass documentation](https://sass-lang.com/guide/) to learn the basics.
+[Sass](https://sass-lang.com/) is a CSS preprocessor that adds features like variables, nesting, mixins, and functions to standard CSS. You write `.scss` files, compile them, and the output is plain CSS that browsers understand. If youre new to Sass, check out the [Sass documentation](https://sass-lang.com/guide/) to learn the basics.
 
-Bootstrap is written in Sass. Our source `.scss` files use Sass maps to define design tokens, mixins to generate repetitive CSS patterns, and the `@use`/`@forward` module system to organize everything. When compiled, these Sass files produce the CSS that powers every Bootstrap component and utility. This lets you override token values, remove unused components, or extend the system with your own additions. If you don't need that level of control, you can skip Sass entirely and [customize via CSS custom properties]([[docsref:/getting-started/css-variables]]) at runtime instead.
+Bootstrap is written in Sass. Our source `.scss` files use Sass maps to define design tokens, mixins to generate repetitive CSS patterns, and the `@use`/`@forward` module system to organize everything. When compiled, these Sass files produce the CSS that powers every Bootstrap component and utility. This lets you override token values, remove unused components, or extend the system with your own additions. If you dont need that level of control, you can skip Sass entirely and [customize via CSS custom properties]([[docsref:/getting-started/css-variables]]) at runtime instead.
 
 <Callout type="info">
 **New to working with Sass and Bootstrap?** Start with [our npm guide]([[docsref:/guides/npm]]) for a step-by-step setup, or check out our [examples repository](https://github.com/twbs/examples) for ready-to-use starter projects.
@@ -16,7 +16,7 @@ Bootstrap is written in Sass. Our source `.scss` files use Sass maps to define d
 
 ## File structure
 
-Whenever possible, avoid modifying Bootstrap's core files. For Sass, that means creating your own stylesheet that imports Bootstrap so you can modify and extend it. Assuming you're using a package manager like [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/), you'll have a file structure that looks like this:
+Whenever possible, avoid modifying Bootstrap’s core files. For Sass, that means creating your own stylesheet that imports Bootstrap so you can modify and extend it. Assuming you’re using a package manager like [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/), you’ll have a file structure that looks like this:
 
 ```text
 your-project/
@@ -29,7 +29,7 @@ your-project/
 └── index.html
 ```
 
-If you've downloaded our source files and aren't using a package manager, you'll want to manually create something similar to that structure, keeping Bootstrap's source files separate from your own.
+If you’ve downloaded our source files and aren’t using a package manager, you’ll want to manually create something similar to that structure, keeping Bootstrap’s source files separate from your own.
 
 ```text
 your-project/
@@ -43,7 +43,7 @@ your-project/
 
 ## Importing
 
-In your `custom.scss`, you'll import Bootstrap's source Sass files. You have two options: include all of Bootstrap, or pick the parts you need. We encourage the latter, though be aware there are some requirements and dependencies across our components. You also will need to include some JavaScript for our plugins.
+In your `custom.scss`, you’ll import Bootstrap’s source Sass files. You have two options: include all of Bootstrap, or pick the parts you need. We encourage the latter, though be aware there are some requirements and dependencies across our components. You also will need to include some JavaScript for our plugins.
 
 ```scss
 // Custom.scss
@@ -105,7 +105,7 @@ Learn more about your options at [sass-lang.com/install](https://sass-lang.com/i
 
 ## Including
 
-Once your CSS is compiled, you can include it in your HTML files. Inside your `index.html` you'll want to include your compiled CSS file. Be sure to update the path to your compiled CSS file if you've changed it.
+Once your CSS is compiled, you can include it in your HTML files. Inside your `index.html` you’ll want to include your compiled CSS file. Be sure to update the path to your compiled CSS file if you’ve changed it.
 
 ```html
 <!doctype html>
@@ -134,11 +134,11 @@ The layers, from lowest to highest level:
 
 3. **Global tokens** (`_theme.scss` and `_root.scss`) — Semantic tokens for backgrounds (`$theme-bgs`), foregrounds (`$theme-fgs`), and borders (`$theme-borders`) are defined alongside the `$root-tokens` map, which aggregates everything into `:root` CSS custom properties.
 
-4. **Component tokens** (e.g., `_alert.scss`) — Each component defines its own `$*-tokens` map (e.g., `$alert-tokens`) that gets output as CSS custom properties scoped to the component's class.
+4. **Component tokens** (e.g., `_alert.scss`) — Each component defines its own `$*-tokens` map (e.g., `$alert-tokens`) that gets output as CSS custom properties scoped to the components class.
 
 ## Token defaults
 
-Every token map in Bootstrap includes the `!default` flag, allowing you to override values before Bootstrap's files are loaded. Since Bootstrap uses Sass modules (`@use`/`@forward`), you can override `!default` variables using the `with ()` syntax. For CSS custom property tokens, you have two customization paths:
+Every token map in Bootstrap includes the `!default` flag, allowing you to override values before Bootstraps files are loaded. Since Bootstrap uses Sass modules (`@use`/`@forward`), you can override `!default` variables using the `with ()` syntax. For CSS custom property tokens, you have two customization paths:
 
 1. **At compile time** — Override the Sass maps that generate the CSS custom properties.
 2. **At runtime** — Override the CSS custom properties directly in your stylesheet, no Sass required.
@@ -172,7 +172,7 @@ $alert-tokens: defaults(
 );
 ```
 
-The `() !default` declaration receives your `with()` overrides. Then `defaults()` merges your entries on top of the built-in defaults, so unspecified keys keep their original values. Any keys set to `null` are removed from the map entirely, letting you drop tokens you don't need.
+The `() !default` declaration receives your `with()` overrides. Then `defaults()` merges your entries on top of the built-in defaults, so unspecified keys keep their original values. Any keys set to `null` are removed from the map entirely, letting you drop tokens you dont need.
 
 ### Runtime overrides
 
@@ -241,9 +241,9 @@ All root tokens are output to `:root` as CSS custom properties:
 
 ## Component tokens
 
-Each component defines its own token map that gets output as CSS custom properties scoped to the component's class. This makes components self-contained and easy to customize.
+Each component defines its own token map that gets output as CSS custom properties scoped to the components class. This makes components self-contained and easy to customize.
 
-Here's the alert component as an example:
+Heres the alert component as an example:
 
 <ScssDocs name="alert-tokens" file="scss/_alert.scss" />
 
@@ -352,7 +352,7 @@ This removes the `.btn-text` and `.btn-subtle` classes from the compiled CSS whi
 
 ## Required keys
 
-Bootstrap assumes the presence of some specific keys within Sass maps as we use and extend these ourselves. As you customize the included maps, you may encounter errors where a specific Sass map's key is being used.
+Bootstrap assumes the presence of some specific keys within Sass maps as we use and extend these ourselves. As you customize the included maps, you may encounter errors where a specific Sass maps key is being used.
 
 For `$theme-colors`, the `primary`, `success`, and `danger` keys are required for links, buttons, and form states. Replacing the values of these keys should present no issues, but removing them may cause Sass compilation issues.
 
@@ -360,7 +360,7 @@ For `$theme-colors`, the `primary`, `success`, and `danger` keys are required fo
 
 ### Defaults
 
-The `defaults()` function is the backbone of Bootstrap's customization system. It merges user overrides on top of built-in default tokens and strips any `null` entries from the result. Every token map, size map, and variant map uses it:
+The `defaults()` function is the backbone of Bootstraps customization system. It merges user overrides on top of built-in default tokens and strips any `null` entries from the result. Every token map, size map, and variant map uses it:
 
 ```scss
 @function defaults($defaults, $overrides) { ... }
@@ -374,7 +374,7 @@ It accepts either a map or a list as the first argument. Lists are automatically
 
 In order to meet the [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/TR/WCAG/) contrast requirements, authors **must** provide a minimum [text color contrast of 4.5:1](https://www.w3.org/TR/WCAG/#contrast-minimum) and a minimum [non-text color contrast of 3:1](https://www.w3.org/TR/WCAG/#non-text-contrast), with very few exceptions.
 
-To help with this, we included the `color-contrast` function in Bootstrap. It uses the [WCAG contrast ratio algorithm](https://www.w3.org/TR/WCAG/#dfn-contrast-ratio) for calculating contrast thresholds based on [relative luminance](https://www.w3.org/TR/WCAG/#dfn-relative-luminance) in an `sRGB` color space to automatically return a light (`#fff`), dark (`#212529`) or black (`#000`) contrast color based on the specified base color. This function is especially useful for mixins or loops where you're generating multiple classes.
+To help with this, we included the `color-contrast` function in Bootstrap. It uses the [WCAG contrast ratio algorithm](https://www.w3.org/TR/WCAG/#dfn-contrast-ratio) for calculating contrast thresholds based on [relative luminance](https://www.w3.org/TR/WCAG/#dfn-relative-luminance) in an `sRGB` color space to automatically return a light (`#fff`), dark (`#212529`) or black (`#000`) contrast color based on the specified base color. This function is especially useful for mixins or loops where youre generating multiple classes.
 
 For example, to generate color swatches from our `$theme-colors` map:
 
@@ -537,7 +537,7 @@ A shorthand mixin for the `prefers-color-scheme` media query is available with s
 
 ### Theme classes
 
-The `generate-theme-classes()` mixin loops over the `$theme-colors` map and outputs a `.theme-*` class for each color. Each class maps generic `--theme-*` custom properties to the color's specific values, so components can reference `--theme-base`, `--theme-bg`, etc., and pick up the right palette from a parent `.theme-*` class:
+The `generate-theme-classes()` mixin loops over the `$theme-colors` map and outputs a `.theme-*` class for each color. Each class maps generic `--theme-*` custom properties to the colors specific values, so components can reference `--theme-base`, `--theme-bg`, etc., and pick up the right palette from a parent `.theme-*` class:
 
 ```scss
 @include generate-theme-classes();
index d25f44a3f567d3bb35f33a59dce61221fdca3233..b77652b6608e62fd6a693de506db9f017732c57b 100644 (file)
@@ -42,7 +42,7 @@ export const themeFgs = [
 
 ## How it works
 
-Theme colors are defined in the `$theme-colors` Sass map. This map is used to generate our theme color values. You'll find these values in the `_theme.scss` file. These are where we define our design tokens for Bootstrap, across both light and dark color modes.
+Theme colors are defined in the `$theme-colors` Sass map. This map is used to generate our theme color values. Youll find these values in the `_theme.scss` file. These are where we define our design tokens for Bootstrap, across both light and dark color modes.
 
 Theme colors include the following semantic colors:
 
@@ -59,7 +59,7 @@ Theme colors include the following semantic colors:
 | `secondary` | <Swatch size="inline" bg="gray-300" /> `var(--bs-gray-300)` | Less prominent actions and states |
 </BsTable>
 
-And within each semantic theme color, you'll find the following keys, most of which are color-mode adaptive:
+And within each semantic theme color, youll find the following keys, most of which are color-mode adaptive:
 
 <BsTable>
 | Theme token | Description |
@@ -120,7 +120,7 @@ Not all colors can be used for all purposes due to accessibility, color contrast
 
 Color tokens that are used for foreground, background, and border colors are called **theme layer colors** in Bootstrap. These layer colors are configured outside the `$theme-colors` Sass map in their own respective Sass maps as they have more nuanced theming use cases.
 
-Tokens for these three themes are defined in the `$theme-fgs`, `$theme-bgs`, and `$theme-borders` Sass maps. These maps are used to generate color mode adaptive `color`, `background-color`, and `border-color` values that are then consumed by our utilities and components. You'll find these values in the `_theme.scss` file.
+Tokens for these three themes are defined in the `$theme-fgs`, `$theme-bgs`, and `$theme-borders` Sass maps. These maps are used to generate color mode adaptive `color`, `background-color`, and `border-color` values that are then consumed by our utilities and components. Youll find these values in the `_theme.scss` file.
 
 ### Background
 
@@ -196,11 +196,11 @@ Here are some examples showing them together. Note
 
 ## Color modes
 
-Bootstrap's theme and layer colors are **color mode adaptive** thanks to our use of CSS’s `light-dark()` function. This lets us specify two colors at once for a component, one for light and one for dark mode. These colors are switched by using the `data-bs-theme` attribute to set the `color-scheme` property to `light` or `dark`.
+Bootstraps theme and layer colors are **color mode adaptive** thanks to our use of CSS’s `light-dark()` function. This lets us specify two colors at once for a component, one for light and one for dark mode. These colors are switched by using the `data-bs-theme` attribute to set the `color-scheme` property to `light` or `dark`.
 
 By default, `color-scheme: light dark` is set on the `:root` element, meaning Bootstrap respects the user’s system preference. You can override this at any level by setting `data-bs-theme="light"` or `data-bs-theme="dark"` on any element to force a specific mode for that subtree. Depending on the element, you may need to include `.bg-body`, `.fg-body`, or similar utilities to ensure correct color application.
 
-Here's the same set of components rendered in both light and dark modes side by side. Note the use of `.bg-body` for the backgrounds. Without it, the light mode demo wouldn’t have a white background—just light mode components on a dark background.
+Heres the same set of components rendered in both light and dark modes side by side. Note the use of `.bg-body` for the backgrounds. Without it, the light mode demo wouldn’t have a white background—just light mode components on a dark background.
 
 <Example class="p-0 overflow-hidden" code={`<div class="row g-0">
     <div class="md:col-6 vstack gap-3 p-4 bg-body" data-bs-theme="light">
@@ -208,7 +208,7 @@ Here's the same set of components rendered in both light and dark modes side by
       <div class="card">
         <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>
+          <p class="card-text">Some quick example text to build on the card title and make up the bulk of the cards content.</p>
         </div>
       </div>
       <div class="alert theme-primary"><p>This is a primary alert.</p></div>
@@ -233,7 +233,7 @@ Here's the same set of components rendered in both light and dark modes side by
       <div class="card">
         <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>
+          <p class="card-text">Some quick example text to build on the card title and make up the bulk of the cards content.</p>
         </div>
       </div>
       <div class="alert theme-primary"><p>This is a primary alert.</p></div>
@@ -261,7 +261,7 @@ Under the hood, token values like `--bs-primary-fg` resolve differently dependin
 "fg": light-dark(var(--blue-600), var(--blue-400)),
 ```
 
-When `data-bs-theme="light"` is active (or the user's system preference is light), this resolves to `var(--blue-600)`. In dark mode, it resolves to `var(--blue-400)`—a lighter shade that maintains readability against dark backgrounds. The same pattern applies to backgrounds, borders, and all other adaptive tokens.
+When `data-bs-theme="light"` is active (or the users system preference is light), this resolves to `var(--blue-600)`. In dark mode, it resolves to `var(--blue-400)`—a lighter shade that maintains readability against dark backgrounds. The same pattern applies to backgrounds, borders, and all other adaptive tokens.
 
 For more details on toggling color modes globally, building custom modes, and JavaScript toggler examples, see the [color modes documentation]([[docsref:/customize/color-modes/]]).
 
@@ -299,7 +299,7 @@ And you can apply a theme color utility to a container and any theme-aware child
     </div>
   </div>`} />
 
-This also means you can override a container's theme color with another theme color on specific components.
+This also means you can override a containers theme color with another theme color on specific components.
 
 <Example code={`<div class="vstack gap-3 theme-primary">
     <div class="alert"><p>Primary alert</p></div>
index b1a8afb14fec46a116c4480807ba5dc602011c5e..63a35084fe58020fe1767278c5ee645de0b10160 100644 (file)
@@ -16,7 +16,7 @@ All checkbox styling is contained to a wrapper class, `.check`. This does the fo
 - Overrides the default `<input>` appearance with themed colors.
 - Handles the toggling of separate paths in our custom SVG for the `:checked` and indeterminate states. Two `<path>`s are included in the SVG, one for each state, and the appropriate `<path>` is shown based on the `<input>`’s state.
 
-For folks looking to replace our provided icons, you'll need to add the `.checked` and `.indeterminate` classes to the `<path>`s and use them in a single `<svg>` element.
+For folks looking to replace our provided icons, youll need to add the `.checked` and `.indeterminate` classes to the `<path>`s and use them in a single `<svg>` element.
 
 Checkbox layout and labels are handled with additional HTML and CSS.
 
index 610483fdc67372d0e26a6a4f138b21bb74246670..f76c480962a2af903d4be7fa40dec05024c977de 100644 (file)
@@ -12,7 +12,7 @@ import { getData } from '@libs/data'
 
 Chips are similar to badges, but they have a single size and more defined visual styles useful for indicating state and selection.
 
-- Chips are statically sized—they don't scale with the parent element by default.
+- Chips are statically sized—they dont scale with the parent element by default.
 - Chips can have icons, avatars, and dismiss buttons.
 - Chips can be themed, individually or as a group on the parent container. By default, chips use the `subtle` and `text` theme tokens, while active state uses the `bg` and `contrast` tokens.
 - Chips can be active or disabled.
index 984420edee26f954ed15f3155978408e77927bce..05a38375fb081cb8e3c335291d6ef4c76e0c337b 100644 (file)
@@ -376,7 +376,7 @@ Add `disabled` to the toggle button or individual menu items.
 
 ## Form submission
 
-The combobox creates a hidden `<input>` for form submission when `data-bs-name` is set on the toggle. The hidden input's `name` matches the attribute value and its `value` updates whenever the selection changes.
+The combobox creates a hidden `<input>` for form submission when `data-bs-name` is set on the toggle. The hidden inputs `name` matches the attribute value and its `value` updates whenever the selection changes.
 
 ```html
 <!-- What you write -->
index 1b443b2bee3df4f9633f7a695ae23fe7b5316b98..dca6eb9d0e7024c86ce13917c81d034366b123ec 100644 (file)
@@ -16,7 +16,7 @@ The Bootstrap Datepicker is a wrapper around [Vanilla Calendar Pro](https://vani
 <Example code={`<label for="datepicker1" class="form-label">Datepicker</label>
   <input type="text" class="form-control w-12" id="datepicker1" data-bs-toggle="datepicker" placeholder="Choose date…">`} />
 
-Note that we're using a width utility of `.w-12` to ensure the input is wide enough to accommodate the date format and imply some affordance for the expected type of input.
+Note that were using a width utility of `.w-12` to ensure the input is wide enough to accommodate the date format and imply some affordance for the expected type of input.
 
 ## How it works
 
@@ -24,7 +24,7 @@ Note that we're using a width utility of `.w-12` to ensure the input is wide eno
 - Use `type="text"` to avoid conflicts with native browser date pickers
 - When focused, the calendar popup appears below the input
 - Selecting a date updates the input value and closes the picker
-- The picker respects Bootstrap's color modes (`data-bs-theme`)
+- The picker respects Bootstraps color modes (`data-bs-theme`)
 - Configurable with any [Vanilla Calendar Pro option](https://vanilla-calendar.pro/docs/reference/settings) via `vcpOptions` when initializing with JavaScript
 
 ## Examples
@@ -37,7 +37,7 @@ Use the [form field]([[docsref:/forms/field]]) component to layout and wrap your
     <label for="datepicker2" class="form-label">Datepicker field</label>
     <input type="text" class="form-control w-12" id="datepicker2" data-bs-toggle="datepicker" placeholder="Choose date…">
     <div class="form-text">
-      We'll never share your email with anyone else.
+      Well never share your email with anyone else.
     </div>
   </div>`} />
 
@@ -186,7 +186,7 @@ const datepicker = new bootstrap.Datepicker(element, {
 
 ## Dark mode
 
-The datepicker automatically adapts to Bootstrap's color modes. When `data-bs-theme="dark"` is set on a parent element or the `<html>` tag, the calendar popup inherits that theme.
+The datepicker automatically adapts to Bootstraps color modes. When `data-bs-theme="dark"` is set on a parent element or the `<html>` tag, the calendar popup inherits that theme.
 
 ### Inherited from parent
 
@@ -199,7 +199,7 @@ When a parent element has a theme, both the input and calendar popup inherit it:
 
 ### Datepicker-only theme
 
-Use `data-bs-datepicker-theme` to set the datepicker popup's theme independently of the input. This is useful when you want a light input with a dark datepicker, or vice versa:
+Use `data-bs-datepicker-theme` to set the datepicker popups theme independently of the input. This is useful when you want a light input with a dark datepicker, or vice versa:
 
 <Example code={`<label for="datepickerTheme" class="form-label">Light input, dark datepicker</label>
 <input type="text" class="form-control w-12" id="datepickerTheme" data-bs-toggle="datepicker" data-bs-datepicker-theme="dark" placeholder="Select a date">`} />
@@ -262,7 +262,7 @@ const datepicker = new bootstrap.Datepicker(datepickerEl, {
 
 ### Advanced configuration
 
-For features not directly exposed by Bootstrap's options, use `vcpOptions` to pass any Vanilla Calendar Pro setting:
+For features not directly exposed by Bootstraps options, use `vcpOptions` to pass any Vanilla Calendar Pro setting:
 
 ```js
 const datepicker = new bootstrap.Datepicker(element, {
index 57c53288f5a3152ef54b61166369996508b6aa29..9148d2de1659356adfd28e22caa6a86fa7a053da 100644 (file)
@@ -15,7 +15,7 @@ The Field component provides essential layout, spacing, and functionality for yo
     <label for="fieldText" class="form-label">Email address</label>
     <input type="email" class="form-control" id="fieldText" placeholder="name@example.com">
     <div class="form-text">
-      We'll never share your email with anyone else.
+      Well never share your email with anyone else.
     </div>
   </div>`} />
 
@@ -190,7 +190,7 @@ Add a `<small class="form-text">` after the label and wrap it in a `.form-field-
     </div>
     <div class="form-field-content">
       <label for="fieldCheckDesc">Subscribe to updates</label>
-      <small class="form-text">We'll send you a weekly digest of what's new.</small>
+      <small class="form-text">We’ll send you a weekly digest of what’s new.</small>
     </div>
   </div>
   <div class="form-field">
index e2c2a082d278fcfc3bc3e1c22f8986910eeef2ed..af3b93447b093c38d32511db2cbe76c970c64fec 100644 (file)
@@ -23,7 +23,7 @@ Use the [form field]([[docsref:/forms/field]]) component to layout and wrap your
     <label for="exampleFormControlInput1" class="form-label">Email address</label>
     <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com">
     <div class="form-text">
-      We'll never share your email with anyone else.
+      Well never share your email with anyone else.
     </div>
   </div>`} />
 
index 59536178cfc6e8c2af3b14e963bee4d8cd4cdfef..dc3b67fb4103da8b3855d0e57a46c30edd1e78a5 100644 (file)
@@ -284,7 +284,7 @@ Multiple add-ons are supported and can be mixed with checkbox and radio input ve
 
 ## Border radius
 
-Sometimes building these components gets complicated, and CSS selectors can only do so much. We've accounted for most of the common use cases, but in case you need to provide an extra element and skip the border-radius logic, add the `.input-group-ignore` class to the element.
+Sometimes building these components gets complicated, and CSS selectors can only do so much. Weve accounted for most of the common use cases, but in case you need to provide an extra element and skip the border-radius logic, add the `.input-group-ignore` class to the element.
 
 Consider this extra hidden input example:
 
index 0a725bac0ddbac1aea687fb937b6e2e085b9c695..8265e1b52c46139fa5f3df36642c5f54111c8576 100644 (file)
@@ -297,7 +297,7 @@ You can then remix that once again with size-specific column classes.
 
 ## Inline forms
 
-Use the `.row-cols-*` classes to create responsive horizontal layouts. By adding [gutter modifier classes]([[docsref:/layout/gutters]]), we'll have gutters in horizontal and vertical directions. On narrow mobile viewports, the `.col-12` helps stack the form controls and more. The `.align-items-center` aligns the form elements to the middle, making checkboxes and labels align properly.
+Use the `.row-cols-*` classes to create responsive horizontal layouts. By adding [gutter modifier classes]([[docsref:/layout/gutters]]), well have gutters in horizontal and vertical directions. On narrow mobile viewports, the `.col-12` helps stack the form controls and more. The `.align-items-center` aligns the form elements to the middle, making checkboxes and labels align properly.
 
 <Example code={`<form class="row lg:row-cols-auto g-3 align-items-center">
     <div class="col-12">
index 0b5fd4100a1282399da8f4d15150f700fca0c334..49903b407f2ba77fe1451cb8f9c74563ad1eb3db 100644 (file)
@@ -8,7 +8,7 @@ js: required
 
 ## Overview
 
-OTP (One-Time Password) inputs are a common pattern for two-factor authentication, verification codes, and PIN entry. Bootstrap's OTP input component provides:
+OTP (One-Time Password) inputs are a common pattern for two-factor authentication, verification codes, and PIN entry. Bootstraps OTP input component provides:
 
 - **Auto-advance**: Focus moves to the next input after entering a digit
 - **Backspace navigation**: Pressing backspace in an empty field moves to the previous field
@@ -33,7 +33,7 @@ Wrap your inputs in a container with `.otp` and add `data-bs-otp` to enable the
 
 ## Connected inputs
 
-Add `.input-group` to visually connect the inputs into a single cohesive field, leveraging Bootstrap's [input group]([[docsref:/forms/input-group]]) styles. We override the `width` to prevent stretching the inputs.
+Add `.input-group` to visually connect the inputs into a single cohesive field, leveraging Bootstraps [input group]([[docsref:/forms/input-group]]) styles. We override the `width` to prevent stretching the inputs.
 
 <Example code={`<div class="otp input-group" data-bs-otp>
     <input type="text" class="form-control" aria-label="Digit 1">
@@ -87,7 +87,7 @@ You can also use separators with connected inputs by wrapping each group in a ne
 
 ## Sizing
 
-Use `.otp-sm` or `.otp-lg` for different sizes. Don't use the input group size classes on the `.otp` container as we override specific CSS variables for sizing.
+Use `.otp-sm` or `.otp-lg` for different sizes. Dont use the input group size classes on the `.otp` container as we override specific CSS variables for sizing.
 
 <Example class="vstack align-items-start gap-3" code={`<div class="otp input-group otp-sm" data-bs-otp>
     <input type="text" class="form-control" aria-label="Digit 1">
@@ -239,7 +239,7 @@ otpInput.clear()
 <BsTable>
 | Event | Description |
 | --- | --- |
-| `complete.bs.otp` | Fired when all inputs are filled. The event's `value` property contains the complete code. |
+| `complete.bs.otp` | Fired when all inputs are filled. The events `value` property contains the complete code. |
 | `input.bs.otp` | Fired on each input change. Includes `value` (current combined value) and `index` (changed input index). |
 </BsTable>
 
index 38a442712d00bf25f4ca3c90439cecd4d1aa8636..9cb015454c365acf55188b77b139370832a84489 100644 (file)
@@ -34,7 +34,7 @@ Here’s a quick example to demonstrate Bootstrap’s form styles. Keep reading
     <div class="mb-3">
       <label for="exampleInputEmail1" class="form-label">Email address</label>
       <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
-      <div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
+      <div id="emailHelp" class="form-text">Well never share your email with anyone else.</div>
     </div>
     <div class="mb-3">
       <label for="exampleInputPassword1" class="form-label">Password</label>
index 60368bf9803de95697ff2d208c981537ec8d5883..5c9a34a02f72a361d7d222f6318b605e4ab6fa52 100644 (file)
@@ -8,7 +8,7 @@ js: required
 
 ## Overview
 
-Strength meters help users create secure passwords by providing real-time feedback on password complexity. Bootstrap's strength component offers:
+Strength meters help users create secure passwords by providing real-time feedback on password complexity. Bootstraps strength component offers:
 
 - **Segmented meter**: Four segments that fill based on strength level
 - **Progress bar variant**: A single bar that grows with strength
index 45f115aeac4829eb9b44c0c5ce9f7aabab5a1184..51d442efa0549049ce1dfd2cdfc723453e196bc4 100644 (file)
@@ -10,7 +10,7 @@ import { getData } from '@libs/data'
 
 ## Basic radio
 
-Similar to checkboxes, radios are styled with the `.radio` class. However, there's no custom SVG as we use pure CSS to style the input and its checked state.
+Similar to checkboxes, radios are styled with the `.radio` class. However, theres no custom SVG as we use pure CSS to style the input and its checked state.
 
 <Example code={`<input type="radio" id="radio" class="radio" />`} />
 
index 72423fdcaa5482be66491421b244b0a30f8be40b..9c8900639a0b2d28bf9873f1cd100b038ea4c063 100644 (file)
@@ -13,9 +13,9 @@ import { getDocsRelativePath } from '@libs/path'
 
 ## How it works
 
-Here's how form validation works with Bootstrap:
+Heres how form validation works with Bootstrap:
 
-- **Client-side validation** uses CSS pseudo-classes scoped behind the `data-bs-validate` attribute. Add `data-bs-validate` to your `<form>` to opt in to `:user-invalid` styling—validation styles only appear **after the user interacts** with a control (e.g., typing and blurring, or attempting to submit), so required fields don't show up as invalid on page load.
+- **Client-side validation** uses CSS pseudo-classes scoped behind the `data-bs-validate` attribute. Add `data-bs-validate` to your `<form>` to opt in to `:user-invalid` styling—validation styles only appear **after the user interacts** with a control (e.g., typing and blurring, or attempting to submit), so required fields dont show up as invalid on page load.
 - By default, **client-side validation only shows invalid styling.** To also show success styling for valid fields, set `data-bs-validate="valid"`.
 - **Server-side validation** uses the `.is-invalid` and `.is-valid` classes to indicate field state without requiring user interaction. These work globally—no `data-bs-validate` attribute needed.
 - Custom validation states beyond `valid`/`invalid` (e.g., `warning`) are supported via the `.is-*` class pattern and the `$validation-states` Sass map. There are no generated pseudo-classes for custom states.
@@ -27,7 +27,7 @@ With that in mind, consider the following demos for our custom form validation s
 
 ## Custom styles
 
-For custom Bootstrap form validation messages, add `data-bs-validate` and the `novalidate` boolean attribute to your `<form>`. The `data-bs-validate` attribute opts in to Bootstrap's `:user-invalid` styling, while `novalidate` disables the browser default feedback tooltips. Custom feedback styles apply custom colors, borders, and focus styles to better communicate feedback.
+For custom Bootstrap form validation messages, add `data-bs-validate` and the `novalidate` boolean attribute to your `<form>`. The `data-bs-validate` attribute opts in to Bootstraps `:user-invalid` styling, while `novalidate` disables the browser default feedback tooltips. Custom feedback styles apply custom colors, borders, and focus styles to better communicate feedback.
 
 Use `data-bs-validate="valid"` to also show success styling on valid fields. Add `required` to each form input and `.invalid-feedback` to provide field-specific error messages. If you enable valid styling, use `.valid-feedback` for success messages.
 
@@ -111,7 +111,7 @@ For example, try to submit the form below; our JavaScript will intercept the sub
 
 ## Browser defaults
 
-Not interested in custom validation feedback messages or writing JavaScript to change form behaviors? All good, you can use the browser defaults. Try submitting the form below. Depending on your browser and OS, you'll see a slightly different style of feedback.
+Not interested in custom validation feedback messages or writing JavaScript to change form behaviors? All good, you can use the browser defaults. Try submitting the form below. Depending on your browser and OS, youll see a slightly different style of feedback.
 
 While these feedback styles cannot be styled with CSS, you can still customize the feedback text through JavaScript.
 
@@ -492,7 +492,7 @@ This is the validation Sass map from `forms/_validation.scss`. Override or exten
 
 <ScssDocs name="form-validation-states" file="scss/forms/_validation.scss" />
 
-Each key in the map is a validation state name (e.g., `"valid"`) and the value is a theme color name (e.g., `"success"`). All styling is derived from the theme color's CSS custom properties.
+Each key in the map is a validation state name (e.g., `"valid"`) and the value is a theme color name (e.g., `"success"`). All styling is derived from the theme colors CSS custom properties.
 
 ### Sass loops
 
@@ -502,4 +502,4 @@ Used to iterate over `$validation-states` map values to generate our validation
 
 ### Customizing
 
-Validation states can be customized via Sass with the `$validation-states` map. Located in our `forms/_validation.scss` file, this Sass map pairs each state name to a theme color name. All styling is derived from the theme color's existing CSS custom properties (`--{theme}-fg`, `--{theme}-border`, `--{theme}-bg`, etc.). While no other states are supported by browsers, those using custom styles can easily add more complex form feedback.
+Validation states can be customized via Sass with the `$validation-states` map. Located in our `forms/_validation.scss` file, this Sass map pairs each state name to a theme color name. All styling is derived from the theme colors existing CSS custom properties (`--{theme}-fg`, `--{theme}-border`, `--{theme}-bg`, etc.). While no other states are supported by browsers, those using custom styles can easily add more complex form feedback.
index 3b73b88a4959a1d52f674b2a7e744abeb76c737f..4e135799543272799e4cf7dfb30dd69788d60f7f 100644 (file)
@@ -29,7 +29,7 @@ Sass is used for the following:
 
 ### CSS
 
-While you can use Sass to customize how Bootstrap looks, the preferred way now is to use CSS variables whenever possible, including when working with Sass. Here's how we use CSS:
+While you can use Sass to customize how Bootstrap looks, the preferred way now is to use CSS variables whenever possible, including when working with Sass. Heres how we use CSS:
 
 - Customize individual global and component tokens like `--bs-border-radius`, `--bs-alert-padding-x`, etc.
 - Customize token values using Sass’s `with (...tokens)` syntax to override the default values.
@@ -38,7 +38,7 @@ While you can use Sass to customize how Bootstrap looks, the preferred way now i
 
 ### Examples
 
-Here's how we'd use a mix of Sass and CSS to customize Bootstrap. The Sass helps us manage features and gives us access to generative tokens, while the CSS allows us to customize individual tokens and values. In almost all our components, we setup a Sass map of "tokens" that are really just CSS variables. Using this map, we then generate the CSS custom properties on the component's class.
+Here’s how we’d use a mix of Sass and CSS to customize Bootstrap. The Sass helps us manage features and gives us access to generative tokens, while the CSS allows us to customize individual tokens and values. In almost all our components, we setup a Sass map of "tokens" that are really just CSS variables. Using this map, we then generate the CSS custom properties on the component’s class.
 
 For example, the alert component has a `$alert-tokens` map that is used to generate the CSS custom properties on the `.alert` class.
 
@@ -55,7 +55,7 @@ $alert-tokens: (
 }
 ```
 
-In practice for you and your projects, this means you can use Sass's module system to override the CSS variables at build-time for a specific component, or even globally.
+In practice for you and your projects, this means you can use Sasss module system to override the CSS variables at build-time for a specific component, or even globally.
 
 ```scss
 @use "../node_modules/bootstrap/scss/bootstrap" with (
@@ -76,7 +76,7 @@ In practice for you and your projects, this means you can use Sass's module syst
 );
 ```
 
-Here's a Sass-specific example, where we cannot use CSS to easily achieve the same result. The following will remove the `text` and `subtle` variants from the `button-variants` map, and override the `button-sizes` map to only include `sm` and `lg` sizes.
+Heres a Sass-specific example, where we cannot use CSS to easily achieve the same result. The following will remove the `text` and `subtle` variants from the `button-variants` map, and override the `button-sizes` map to only include `sm` and `lg` sizes.
 
 ```scss
 @use "../node_modules/bootstrap/scss/bootstrap" with (
@@ -91,7 +91,7 @@ Here's a Sass-specific example, where we cannot use CSS to easily achieve the sa
 );
 ```
 
-Here's an example of just using pure CSS to customize a CSS variables from the compiled CSS. Wherever `var(--bs-border-radius)` is used, it will be replaced with the value `.25rem`.
+Heres an example of just using pure CSS to customize a CSS variables from the compiled CSS. Wherever `var(--bs-border-radius)` is used, it will be replaced with the value `.25rem`.
 
 ```css
 :root {
@@ -106,7 +106,7 @@ Bootstrap employs a handful of important global styles and settings geared towar
 
 ### Responsive design
 
-Responsive web design is the practice of building a website that responds to the viewport size of the device it's being viewed on. This is achieved by using range media queries to apply different styles to the website based on the viewport size.
+Responsive web design is the practice of building a website that responds to the viewport size of the device its being viewed on. This is achieved by using range media queries to apply different styles to the website based on the viewport size.
 
 ```css
 @media (width < 768px) {
@@ -178,7 +178,7 @@ We use [Autoprefixer](https://github.com/postcss/autoprefixer) to handle intende
 
 ## Guiding principles
 
-Beyond what Bootstrap does, here's *why* we do it—our philosophy for building on the web. At a high level, here's what guides our approach:
+Beyond what Bootstrap does, here’s *why* we do it—our philosophy for building on the web. At a high level, here’s what guides our approach:
 
 - Components should be responsive and mobile-first
 - Components should be built with a base class and extended via modifier classes
@@ -191,7 +191,7 @@ These rules cannot always be followed to the letter, but we strive to follow the
 
 ### Responsive
 
-Bootstrap's styles are mobile-first—we add styles as the viewport grows rather than overriding them as it shrinks. Not every component must be fully responsive, but this approach reduces CSS overrides.
+Bootstraps styles are mobile-first—we add styles as the viewport grows rather than overriding them as it shrinks. Not every component must be fully responsive, but this approach reduces CSS overrides.
 
 We use range media queries (`width >= 768px`, for example) to apply styles at a specific breakpoint and carry up through the larger breakpoints. For example, a `.d-none` applies from `min-width: 0` to infinity. On the other hand, a `.md:d-none` applies from the medium breakpoint and up.
 
@@ -224,7 +224,7 @@ Learn more about this in our [`z-index` layout page]([[docsref:/layout/z-index]]
 
 ### HTML and CSS over JS
 
-Whenever possible, we prefer HTML and CSS over JavaScript—they're more accessible to people of all experience levels and faster in the browser. That's why our first-class JavaScript API is `data` attributes—it lets you write more HTML instead of JavaScript. Read more in [our JavaScript overview]([[docsref:/getting-started/javascript#data-attributes]]).
+Whenever possible, we prefer HTML and CSS over JavaScript—they’re more accessible to people of all experience levels and faster in the browser. That’s why our first-class JavaScript API is `data` attributes—it lets you write more HTML instead of JavaScript. Read more in [our JavaScript overview]([[docsref:/getting-started/javascript#data-attributes]]).
 
 Our styles build on fundamental browser behaviors. For example, while you can put `.btn` on nearly any element, we prefer `<button>`s and `<a>`s for their semantic value. Similarly, we use native `:valid`/`:invalid` pseudo-elements for form validation rather than custom plugins.
 
index 45dd727367ef0084620af200117eedd4c1a9bbbe..80a74fd55886994b0c26449bc2e87b589c6b81f6 100644 (file)
@@ -31,15 +31,15 @@ Bootstrap 5 is increasingly making use of custom properties as local variables f
 
 Have a look at our table documentation for some [insight into how we’re using CSS variables]([[docsref:/content/tables#how-do-the-variants-and-accented-tables-work]]). Our [navbars also use CSS variables]([[docsref:/components/navbar#css]]) as of v5.2.0. We’re also using CSS variables across our grids—primarily for gutters the [new opt-in CSS grid]([[docsref:/layout/css-grid]])—with more component usage coming in the future.
 
-Whenever possible, we'll assign CSS variables at the base component level (e.g., `.navbar` for navbar and its sub-components). This reduces guessing on where and how to customize, and allows for easy modifications by our team in future updates.
+Whenever possible, well assign CSS variables at the base component level (e.g., `.navbar` for navbar and its sub-components). This reduces guessing on where and how to customize, and allows for easy modifications by our team in future updates.
 
 ## Prefix
 
-Most CSS variables use a prefix to avoid collisions with your own codebase. This prefix is in addition to the `--` that's required on every CSS variable.
+Most CSS variables use a prefix to avoid collisions with your own codebase. This prefix is in addition to the `--` thats required on every CSS variable.
 
 The `bs-` prefix is added automatically via [PostCSS](https://postcss.org/) using the `postcss-prefix-custom-properties` plugin during our build process. This means you write unprefixed custom properties in the source Sass (e.g., `--border-radius`) and they become prefixed in the compiled CSS (e.g., `--bs-border-radius`).
 
-If you're building your own custom version of Bootstrap's CSS and want to change the prefix, update the `prefix` option in your PostCSS configuration:
+If you’re building your own custom version of Bootstrap’s CSS and want to change the prefix, update the `prefix` option in your PostCSS configuration:
 
 ```js
 // postcss.config.js
index 46300e5281b1b94255c7619229923c825463a98d..09c415981c58b2ac5ea0c7856701cc7926996c48 100644 (file)
@@ -12,7 +12,7 @@ aliases:
 
 Pull in Bootstrap’s **source files** into nearly any project with some of the most popular package managers. No matter the package manager, Bootstrap will **require a [Sass compiler]([[docsref:/guides/contribute#sass]]) and [PostCSS]([[docsref:/guides/contribute#postcss]])** for a setup that matches our official compiled versions.
 
-Package managed installs don't include documentation or our full build scripts. You can also [use any demo from our Examples repo](https://github.com/twbs/examples) to quickly jumpstart Bootstrap projects.
+Package managed installs dont include documentation or our full build scripts. You can also [use any demo from our Examples repo](https://github.com/twbs/examples) to quickly jumpstart Bootstrap projects.
 
 After installing, head to [our npm guide]([[docsref:/guides/npm]]) for a full setup guide.
 
@@ -147,7 +147,7 @@ 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 and Vanilla Calendar Pro. | <a href="[[config:download.dist]]" class="btn-subtle theme-accent btn-sm">Download</a> |
+| <strong class="text-nowrap">Distribution files</strong> | Ready-to-use compiled and minified CSS and JavaScript files. Doesnt include documentation, source files, or dependencies like Floating UI and Vanilla Calendar Pro. | <a href="[[config:download.dist]]" class="btn-subtle theme-accent btn-sm">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 btn-sm">Download</a> |
 </BsTable>
 
index 58ed0c05e07f35b5c8897911df97a7aa01fd03d1..ab9315925156f234eaf427331906d3675f99efbb 100644 (file)
@@ -25,7 +25,7 @@ Curious which components explicitly require our JavaScript and Floating UI or Va
 
 ## Individual or compiled
 
-Plugins can be included individually (using Bootstrap's individual `js/dist/*.js`), or all at once using `bootstrap.js` or the minified `bootstrap.min.js` (don't include both).
+Plugins can be included individually (using Bootstrap’s individual `js/dist/*.js`), or all at once using `bootstrap.js` or the minified `bootstrap.min.js` (don’t include both).
 
 If you use a bundler (Webpack, Parcel, Vite…), you can import only the plugins you need and your bundler will automatically tree-shake the rest:
 
@@ -53,7 +53,7 @@ A better alternative for those using this type of frameworks is to use a framewo
 **Try it yourself!** Download the source code and working demo for using Bootstrap as an ES module from the [twbs/examples repository](https://github.com/twbs/examples/tree/main/sass-js-esm). You can also [open the example in StackBlitz](https://stackblitz.com/github/twbs/examples/tree/main/sass-js-esm?file=index.html).
 </Callout>
 
-Bootstrap's JavaScript is built as native ES modules (`bootstrap.js` and `bootstrap.min.js`). Use `<script type="module">` to load Bootstrap in the browser:
+Bootstraps JavaScript is built as native ES modules (`bootstrap.js` and `bootstrap.min.js`). Use `<script type="module">` to load Bootstrap in the browser:
 
 ```html
 <script type="module">
@@ -64,7 +64,7 @@ Bootstrap's JavaScript is built as native ES modules (`bootstrap.js` and `bootst
 </script>
 ```
 
-Using ESM in the browser requires full paths or an [import map](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap) for bare module specifiers like `@floating-ui/dom` and `vanilla-calendar-pro`. Here's a complete example using an import map:
+Using ESM in the browser requires full paths or an [import map](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap) for bare module specifiers like `@floating-ui/dom` and `vanilla-calendar-pro`. Heres a complete example using an import map:
 
 ```html
 <!doctype html>
@@ -97,7 +97,7 @@ Using ESM in the browser requires full paths or an [import map](https://develope
 </html>
 ```
 
-Components that don't depend on Floating UI (like Toast, Alert, Collapse, etc.) can be imported individually without any import map:
+Components that dont depend on Floating UI (like Toast, Alert, Collapse, etc.) can be imported individually without any import map:
 
 ```html
 <script type="module">
@@ -150,7 +150,7 @@ const configObject = { keyboard: false }
 const dialog1 = new bootstrap.Dialog(myDialogEl, configObject) // initialized with no keyboard
 ```
 
-If you'd like to get a particular plugin instance, each plugin exposes a `getInstance` method. For example, to retrieve an instance directly from an element:
+If youd like to get a particular plugin instance, each plugin exposes a `getInstance` method. For example, to retrieve an instance directly from an element:
 
 ```js
 bootstrap.Popover.getInstance(myPopoverEl)
@@ -158,13 +158,13 @@ bootstrap.Popover.getInstance(myPopoverEl)
 
 This method will return `null` if an instance is not initiated over the requested element.
 
-Alternatively, `getOrCreateInstance` can be used to get the instance associated with a DOM element, or create a new one in case it wasn't initialized.
+Alternatively, `getOrCreateInstance` can be used to get the instance associated with a DOM element, or create a new one in case it wasnt initialized.
 
 ```js
 bootstrap.Popover.getOrCreateInstance(myPopoverEl, configObject)
 ```
 
-In case an instance wasn't initialized, it may accept and use an optional configuration object as second argument.
+In case an instance wasnt initialized, it may accept and use an optional configuration object as second argument.
 
 ### CSS selectors in constructors
 
@@ -205,7 +205,7 @@ carousel.to('2') // !! Will be ignored, as the transition to the slide 1 is not
 
 #### `dispose` method
 
-While it may seem correct to use the `dispose` method immediately after `hide()`, it will lead to incorrect results. Here's an example of the problem use:
+While it may seem correct to use the `dispose` method immediately after `hide()`, it will lead to incorrect results. Heres an example of the problem use:
 
 ```js
 const myToast = document.querySelector('#myToast')
@@ -219,7 +219,7 @@ myToast.addEventListener('hidden.bs.toast', event => {
 
 ### Default settings
 
-You can change the default settings for a plugin by modifying the plugin's `Constructor.Default` object:
+You can change the default settings for a plugin by modifying the plugins `Constructor.Default` object:
 
 ```js
 // changes default for the toast plugin's `autohide` option to false
@@ -233,16 +233,16 @@ Every Bootstrap plugin exposes the following methods and static properties.
 <BsTable class="table">
 | Method | Description |
 | --- | --- |
-| `dispose` | Destroys an element's plugin instance. (Removes stored data on the DOM element) |
+| `dispose` | Destroys an elements plugin instance. (Removes stored data on the DOM element) |
 | `getInstance` | *Static* method which allows you to get the plugin instance associated with a DOM element. |
-| `getOrCreateInstance` | *Static* method which allows you to get the plugin instance associated with a DOM element, or create a new one in case it wasn't initialized. |
+| `getOrCreateInstance` | *Static* method which allows you to get the plugin instance associated with a DOM element, or create a new one in case it wasnt initialized. |
 </BsTable>
 
 <BsTable class="table">
 | Static property | Description |
 | --- | --- |
 | `NAME` | Returns the plugin name. (Example: `bootstrap.Tooltip.NAME`) |
-| `VERSION` | The version of each of Bootstrap's plugins can be accessed via the `VERSION` property of the plugin's constructor (Example: `bootstrap.Tooltip.VERSION`) |
+| `VERSION` | The version of each of Bootstrap’s plugins can be accessed via the `VERSION` property of the plugin’s constructor (Example: `bootstrap.Tooltip.VERSION`) |
 </BsTable>
 
 ## Sanitizer
@@ -255,7 +255,7 @@ The tags and attributes allowed by default are as follows. Any tags or attribute
 <JsDocs name="allow-list" file="js/src/util/sanitizer.js" removeIndentation={false} />
 
 <Callout type="warning">
-**Exercise caution when using these advanced options.** Refer to [OWASP's Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) for more information. Vulnerabilities caused solely by disabling or modifying content sanitization are not considered within scope for Bootstrap's security model.
+**Exercise caution when using these advanced options.** Refer to [OWASP’s Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html) for more information. Vulnerabilities caused solely by disabling or modifying content sanitization are not considered within scope for Bootstrap’s security model.
 </Callout>
 
 You can add new values to this default `allowList`:
@@ -288,4 +288,4 @@ const tooltip = new bootstrap.Tooltip(yourTooltipEl, {
 
 ## Disabled JavaScript
 
-Bootstrap's plugins have no special fallback when JavaScript is disabled. If you care about the user experience in this case, use [`<noscript>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript) to explain the situation (and how to re-enable JavaScript) to your users, and/or add your own custom fallbacks.
+Bootstraps plugins have no special fallback when JavaScript is disabled. If you care about the user experience in this case, use [`<noscript>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript) to explain the situation (and how to re-enable JavaScript) to your users, and/or add your own custom fallbacks.
index 41b64da6e97480e3f2357edb22b7195139952a59..ade4f48637e9eabbcb7ed613e36450bc291ee7a7 100644 (file)
@@ -9,7 +9,7 @@ toc: true
 
 ## Upgrade
 
-Bootstrap 6 is a major release with many breaking changes to modernize our codebase, adopt newer build tools, and improve customization. Keep reading for a guide on how to migrate from v5 to v6, and a full changelog of what's new.
+Bootstrap 6 is a major release with many breaking changes to modernize our codebase, adopt newer build tools, and improve customization. Keep reading for a guide on how to migrate from v5 to v6, and a full changelog of whats new.
 
 1. Bump your Bootstrap dependency:
 
@@ -21,13 +21,13 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
    }
    ```
 
-2. If using all of Bootstrap's Sass files, include it in your Sass using `@use`:
+2. If using all of Bootstraps Sass files, include it in your Sass using `@use`:
 
    ```scss
    @use "bootstrap/scss/bootstrap";
    ```
 
-   With this, you can then easily override Bootstrap's Sass variables and maps:
+   With this, you can then easily override Bootstraps Sass variables and maps:
 
    ```scss
    @use "bootstrap/scss/bootstrap" with (
@@ -36,7 +36,7 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
    );
    ```
 
-3. If using only certain parts of Bootstrap's Sass files, you can use `@use` to import them individually. Be aware that our Sass file structure has changed and you may need to adjust your imports accordingly.
+3. If using only certain parts of Bootstraps Sass files, you can use `@use` to import them individually. Be aware that our Sass file structure has changed and you may need to adjust your imports accordingly.
 
    ```scss
    @use "bootstrap/scss/forms";
@@ -61,10 +61,10 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
   - Removed `_variables.scss`, consolidating all variables into `_config.scss`
   - Added `_theme.scss` where we setup all our global theming for how colors are applied
 - **Updated lg, xl, and 2xl breakpoints and containers.**
-  - Increased the `lg` breakpoint from 992px to 1024px; it's container remains the same at 960px.
-  - Increased the `xl` breakpoint from 1200px to 1280px, and it's container from 1140px to 1200px.
+  - Increased the `lg` breakpoint from 992px to 1024px; its container remains the same at 960px.
+  - Increased the `xl` breakpoint from 1200px to 1280px, and its container from 1140px to 1200px.
   - Renamed `xxl` to `2xl` for better scaling with additional custom breakpoints
-  - Increased the `2xl` breakpoint from 1400px to 1536px, and it's container from 1320px to 1440px.
+  - Increased the `2xl` breakpoint from 1400px to 1536px, and its container from 1320px to 1440px.
 - **Adopted modern CSS color functions.** All Sass color variables now use `oklch()` notation (e.g., `$blue: oklch(60% 0.24 240)`) and tint/shade scales are generated with `color-mix(in lab, ...)` in the compiled CSS. The v5 `$*-rgb` CSS custom properties and `rgba()` patterns have been removed. This requires browser support for `color-mix()` and `oklch()`.
 - **New theme token system with `.theme-*` classes.** Per-component color variant classes (like `.alert-primary`, `.badge.bg-primary`, `.btn-primary`) are replaced by a composable `.theme-{name}` pattern. Adding `.theme-primary` to a component sets `--theme-bg`, `--theme-fg`, `--theme-border`, `--theme-contrast`, and other semantic CSS custom properties that the component reads. This applies across buttons, badges, alerts, cards, accordions, and more.
 - **Responsive and state classes now use a prefix instead of an infix or suffix.** Class names follow the Tailwind-style `prefix:class` pattern (e.g., `md:d-none` instead of `d-md-none`, `hover:opacity-50` instead of `opacity-50-hover`). In HTML, use the unescaped colon: `class="md:d-none"`. This applies to utilities, grid, pseudo-state variants, and all responsive components.
@@ -99,7 +99,7 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
 - Removed `create-css-vars()` mixin (unused).
 - **Renamed `breakpoint-infix()` to `breakpoint-prefix()`.** The function now returns a prefix string (e.g., `"md\:"`) instead of an infix (e.g., `"-md"`). The `loop-breakpoints-up` and `loop-breakpoints-down` mixins now expose `$prefix` instead of `$infix`. Update any custom Sass that calls these functions or mixins.
 - **CSS variable prefixing now handled by PostCSS.** The `$prefix` Sass variable has been removed. CSS custom properties are now written without a prefix in the Sass source and prefixed automatically via `postcss-prefix-custom-properties` during the build. To customize the prefix, update your PostCSS configuration instead of Sass.
-- **Removed RFS (Responsive Font Sizes).** The `scss/vendor/_rfs.scss` file and all RFS mixins have been removed. Typography now uses fixed `rem` values and `clamp()` for responsive sizing. If you relied on RFS for automatic font scaling, you'll need to implement your own responsive typography or use `clamp()` directly.
+- **Removed RFS (Responsive Font Sizes).** The `scss/vendor/_rfs.scss` file and all RFS mixins have been removed. Typography now uses fixed `rem` values and `clamp()` for responsive sizing. If you relied on RFS for automatic font scaling, youll need to implement your own responsive typography or use `clamp()` directly.
 - **Renamed Sass files for consistency.** `_placeholders.scss` is now `_placeholder.scss` and `_spinners.scss` is now `_spinner.scss`. Update any individual `@use` imports for these files.
 - **Standardized focus styles with `focus-ring` mixin.** All component-specific `*-focus-box-shadow` Sass variables (e.g., `$btn-focus-box-shadow`, `$input-focus-box-shadow`, `$accordion-button-focus-box-shadow`) have been removed. Focus styles are now handled by a shared `@mixin focus-ring()` using `--focus-ring`, `--focus-ring-width`, `--focus-ring-offset`, and `--focus-ring-color` CSS custom properties. Customize focus styles by overriding these tokens in `_root.scss` instead of individual Sass variables.
 - **Renamed `$grid-breakpoints` to `$breakpoints`.**
@@ -126,12 +126,12 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
 
 ### JavaScript
 
-- **Bootstrap's JavaScript is now ESM-only.** We no longer ship UMD bundles. All dist files (`bootstrap.js`, `bootstrap.bundle.js`, and their minified versions) are native ES modules. The plugin APIs themselves are unchanged—only how you load and reference them is different.
+- **Bootstraps JavaScript is now ESM-only.** We no longer ship UMD bundles. All dist files (`bootstrap.js`, `bootstrap.bundle.js`, and their minified versions) are native ES modules. The plugin APIs themselves are unchanged—only how you load and reference them is different.
   - CDN `<script>` tags must add `type="module"`:
     ```html
     <script type="module" src="bootstrap.bundle.min.js"></script>
     ```
-  - In v5, the UMD bundle automatically created a `window.bootstrap` global. ES modules don't do this, so there is no longer a `bootstrap` global object. If you called plugin APIs through the global namespace, you must update to explicit imports:
+  - In v5, the UMD bundle automatically created a `window.bootstrap` global. ES modules dont do this, so there is no longer a `bootstrap` global object. If you called plugin APIs through the global namespace, you must update to explicit imports:
 
     **Before (v5):**
     ```js
@@ -161,7 +161,7 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
 - Replaced Popper.js (`@popperjs/core`) with [Floating UI](https://floating-ui.com/) (`@floating-ui/dom`) for menu, tooltip, and popover positioning. The `popperConfig` option on Tooltip, Popover, and Menu (formerly Dropdown) has been renamed to `floatingConfig`. Update any custom positioning configuration accordingly.
 - Added [Vanilla Calendar Pro](https://vanilla-calendar.pro/) (`vanilla-calendar-pro`) as a peer dependency for the new Datepicker component.
 - Removed the `jspm` configuration from `package.json`.
-- Added `"sideEffects"` metadata to `package.json` to enable tree shaking in bundlers while preserving the Data API event listeners that Bootstrap's plugins register at the top level.
+- Added `"sideEffects"` metadata to `package.json` to enable tree shaking in bundlers while preserving the Data API event listeners that Bootstraps plugins register at the top level.
 - Added `"exports"` map to `package.json` for explicit subpath access to source, dist, and Sass files.
 
 ### Components
@@ -201,7 +201,7 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
   - Added `xs` button size (`.btn-xs`).
 - **Rebuilt accordion on native `<details>` / `<summary>`.** The markup structure has fundamentally changed:
   - v5: `.accordion-item` > `.accordion-header` > `button.accordion-button` + `.accordion-collapse` > `.accordion-body`, controlled by the Collapse JavaScript plugin.
-  - v6: `<details class="accordion-item">` > `<summary class="accordion-header">` + `<div class="accordion-body">`, using the browser's native disclosure widget. No JavaScript dependency for basic open/close behavior.
+  - v6: `<details class="accordion-item">` > `<summary class="accordion-header">` + `<div class="accordion-body">`, using the browsers native disclosure widget. No JavaScript dependency for basic open/close behavior.
   - Exclusive accordion groups (only one item open) are handled via the HTML `name` attribute on `<details>` elements, replacing the `data-bs-parent` approach.
   - The `.accordion-button` and `.accordion-collapse` classes have been removed.
   - The expand/collapse icon now uses an `.accordion-icon` element (typically an SVG) inside the summary, replacing the CSS `background-image` approach.
@@ -224,7 +224,7 @@ Bootstrap 6 is a major release with many breaking changes to modernize our codeb
 - **Refactor checks, radios, and switches.**
   - Split apart `_form-check.scss` into separate stylesheets: `_checkbox.scss`, `_radio.scss`, and `_switch.scss`.
   - Also split apart the documentation pages for checks, radios, and switches.
-  - Added new CSS variables on each of these components. _Side note: we could've shared variables here, but chose not to for simplicity's sake._
+  - Added new CSS variables on each of these components. _Side note: we could’ve shared variables here, but chose not to for simplicity’s sake._
   - Removed several now unused Sass variables.
   - Checkboxes now have a wrapping element and an SVG in the DOM for checked and indeterminate states. Radios and switches do not.
   - Revamped layout for checks, radios, and switches with labels (and descriptions). We now have custom elements for layout that include basic flexbox styling.
index fccac754691d5cf10b47992c368dd27bb8fd7ea4..672590e526ca8bfa2c8db54b9d816b4700c57092 100644 (file)
@@ -19,7 +19,7 @@ thumbnail: guides/bootstrap-parcel@2x.png
 
 We’re building a Parcel project with Bootstrap from scratch, so there are some prerequisites and upfront steps before we can really get started. This guide requires you to have Node.js installed and some familiarity with the terminal.
 
-1. **Create a project folder and set up npm.** We'll create the `my-project` folder and initialize npm with the `-y` argument to avoid it asking us all the interactive questions.
+1. **Create a project folder and set up npm.** Well create the `my-project` folder and initialize npm with the `-y` argument to avoid it asking us all the interactive questions.
 
    ```sh
    mkdir my-project && cd my-project
@@ -32,7 +32,7 @@ We’re building a Parcel project with Bootstrap from scratch, so there are some
    npm i --save-dev parcel
    ```
 
-3. **Install Bootstrap.** Now we can install Bootstrap. We'll also install Floating UI and Vanilla Calendar Pro since some of our components depend on them. If you don’t plan on using menus, popovers, or tooltips, you can omit Floating UI. If you don’t plan on using the datepicker, you can omit Vanilla Calendar Pro.
+3. **Install Bootstrap.** Now we can install Bootstrap. Well also install Floating UI and Vanilla Calendar Pro since some of our components depend on them. If you don’t plan on using menus, popovers, or tooltips, you can omit Floating UI. If you don’t plan on using the datepicker, you can omit Vanilla Calendar Pro.
 
    ```sh
    npm i --save bootstrap @floating-ui/dom vanilla-calendar-pro
@@ -42,7 +42,7 @@ Now that we have all the necessary dependencies installed, we can get to work cr
 
 ## Project structure
 
-We’ve already created the `my-project` folder and initialized npm. Now we'll also create our `src` folder, stylesheet, and JavaScript file to round out the project structure. Run the following from `my-project`, or manually create the folder and file structure shown below.
+We’ve already created the `my-project` folder and initialized npm. Now well also create our `src` folder, stylesheet, and JavaScript file to round out the project structure. Run the following from `my-project`, or manually create the folder and file structure shown below.
 
 ```sh
 mkdir {src,src/js,src/scss}
@@ -94,7 +94,7 @@ With dependencies installed and our project folder ready for us to start coding,
 
    Parcel will automatically detect we’re using Sass and install the [Sass Parcel plugin](https://parceljs.org/languages/sass/) to support it. However, if you wish, you can also manually run `npm i --save-dev @parcel/transformer-sass`.
 
-2. **Add the Parcel npm scripts.** Open the `package.json` and add the following `start` script to the `scripts` object. We'll use this script to start our Parcel development server and render the HTML file we created after it’s compiled into the `dist` directory.
+2. **Add the Parcel npm scripts.** Open the `package.json` and add the following `start` script to the `scripts` object. Well use this script to start our Parcel development server and render the HTML file we created after it’s compiled into the `dist` directory.
 
    ```json
    {
@@ -115,7 +115,7 @@ With dependencies installed and our project folder ready for us to start coding,
 
    <img class="img-fluid" src="/docs/[[config:docs_version]]/assets/img/guides/parcel-dev-server.png" alt="Parcel dev server running" />
 
-In the next and final section to this guide, we'll import all of Bootstrap’s CSS and JavaScript.
+In the next and final section to this guide, well import all of Bootstrap’s CSS and JavaScript.
 
 ## Import Bootstrap
 
index 6a83a4d5c4aaf29406cddee29acfa035bf1dcb34..6552cf44943db3a5c1f170963352fba04f5be28f 100644 (file)
@@ -3,7 +3,7 @@ title: CDN Quickstart
 description: The official guide for how to include Bootstrap’s CSS and JavaScript in your project using a CDN.
 ---
 
-Get started using Bootstrap in seconds by including our production-ready CSS and JavaScript by [using a CDN]([[docsref:/getting-started/install#cdn]]) without the need for any build steps. CDNs provide copies of Bootstrap's codebase that's ready to be used in any environment with minimal code changes required on your part.
+Get started using Bootstrap in seconds by including our production-ready CSS and JavaScript by [using a CDN]([[docsref:/getting-started/install#cdn]]) without the need for any build steps. CDNs provide copies of Bootstrap’s codebase that’s ready to be used in any environment with minimal code changes required on your part.
 
 <Callout type="info">
 **Got the gist already?** See the end result in this [Bootstrap CodePen demo](https://codepen.io/team/bootstrap/pen/qBamdLj).
@@ -43,7 +43,7 @@ Get started using Bootstrap in seconds by including our production-ready CSS and
    </html>
    ```
 
-   You can also include [Floating UI](https://floating-ui.com/) and [Vanilla Calendar Pro](https://vanilla-calendar.pro/) and our JS separately via an import map. If you don't plan to use menus, popovers, or tooltips, save some kilobytes by not including Floating UI. If you don't plan to use the datepicker, you can omit Vanilla Calendar Pro.
+   You can also include [Floating UI](https://floating-ui.com/) and [Vanilla Calendar Pro](https://vanilla-calendar.pro/) and our JS separately via an import map. If you don’t plan to use menus, popovers, or tooltips, save some kilobytes by not including Floating UI. If you don’t plan to use the datepicker, you can omit Vanilla Calendar Pro.
 
    ```html
    <script type="importmap">
index 548d8a6a82effba651a1fb15e3241b27a5647c9c..8d5751fca01e77727afb04908cd579e94c621631 100644 (file)
@@ -19,7 +19,7 @@ thumbnail: guides/bootstrap-vite@2x.png
 
 We’re building a Vite project with Bootstrap from scratch, so there are some prerequisites and upfront steps before we can really get started. This guide requires you to have Node.js installed and some familiarity with the terminal.
 
-1. **Create a project folder and set up npm.** We'll create the `my-project` folder and initialize npm with the `-y` argument to avoid it asking us all the interactive questions.
+1. **Create a project folder and set up npm.** Well create the `my-project` folder and initialize npm with the `-y` argument to avoid it asking us all the interactive questions.
 
    ```sh
    mkdir my-project && cd my-project
@@ -32,7 +32,7 @@ We’re building a Vite project with Bootstrap from scratch, so there are some p
    npm i --save-dev vite
    ```
 
-3. **Install Bootstrap.** Now we can install Bootstrap. We'll also install Floating UI and Vanilla Calendar Pro since some of our components depend on them. If you don’t plan on using menus, popovers, or tooltips, you can omit Floating UI. If you don’t plan on using the datepicker, you can omit Vanilla Calendar Pro.
+3. **Install Bootstrap.** Now we can install Bootstrap. Well also install Floating UI and Vanilla Calendar Pro since some of our components depend on them. If you don’t plan on using menus, popovers, or tooltips, you can omit Floating UI. If you don’t plan on using the datepicker, you can omit Vanilla Calendar Pro.
 
    ```sh
    npm i --save bootstrap @floating-ui/dom vanilla-calendar-pro
@@ -48,7 +48,7 @@ Now that we have all the necessary dependencies installed and set up, we can get
 
 ## Project structure
 
-We’ve already created the `my-project` folder and initialized npm. Now we'll also create our `src` folder, stylesheet, and JavaScript file to round out the project structure. Run the following from `my-project`, or manually create the folder and file structure shown below.
+We’ve already created the `my-project` folder and initialized npm. Now well also create our `src` folder, stylesheet, and JavaScript file to round out the project structure. Run the following from `my-project`, or manually create the folder and file structure shown below.
 
 ```sh
 mkdir {src,src/js,src/scss}
@@ -76,7 +76,7 @@ At this point, everything is in the right place, but Vite won’t work because w
 
 With dependencies installed and our project folder ready for us to start coding, we can now configure Vite and run our project locally.
 
-1. **Open `vite.config.js` in your editor.** Since it’s blank, we'll need to add some boilerplate config to it so we can start our server. This part of the config tells Vite where to look for our project’s JavaScript and how the development server should behave (pulling from the `src` folder with hot reload).
+1. **Open `vite.config.js` in your editor.** Since it’s blank, well need to add some boilerplate config to it so we can start our server. This part of the config tells Vite where to look for our project’s JavaScript and how the development server should behave (pulling from the `src` folder with hot reload).
 
    ```js
    import { resolve } from 'path'
@@ -92,7 +92,7 @@ With dependencies installed and our project folder ready for us to start coding,
    }
    ```
 
-2. **Next we fill in `src/index.html`.** This is the HTML page Vite will load in the browser to utilize the bundled CSS and JS we'll add to it in later steps.
+2. **Next we fill in `src/index.html`.** This is the HTML page Vite will load in the browser to utilize the bundled CSS and JS well add to it in later steps.
 
    ```html
    <!doctype html>
@@ -114,7 +114,7 @@ With dependencies installed and our project folder ready for us to start coding,
 
    We’re including a little bit of Bootstrap styling here with the `div class="container"` and `<button>` so that we see when Bootstrap’s CSS is loaded by Vite.
 
-3. **Now we need an npm script to run Vite.** Open `package.json` and add the `start` script shown below (you should already have the test script). We'll use this script to start our local Vite dev server.
+3. **Now we need an npm script to run Vite.** Open `package.json` and add the `start` script shown below (you should already have the test script). Well use this script to start our local Vite dev server.
 
    ```json
    {
index d462297d8f4dfde83d3e948802bd164bed166bb1..c92b8f8e4b1c744239e2ad88ffb8ff59d13da71f 100644 (file)
@@ -19,20 +19,20 @@ thumbnail: guides/bootstrap-webpack@2x.png
 
 We’re building a Webpack project with Bootstrap from scratch, so there are some prerequisites and upfront steps before we can really get started. This guide requires you to have Node.js installed and some familiarity with the terminal.
 
-1. **Create a project folder and set up npm.** We'll create the `my-project` folder and initialize npm with the `-y` argument to avoid it asking us all the interactive questions.
+1. **Create a project folder and set up npm.** Well create the `my-project` folder and initialize npm with the `-y` argument to avoid it asking us all the interactive questions.
 
    ```sh
    mkdir my-project && cd my-project
    npm init -y
    ```
 
-2. **Install Webpack.** Next we need to install our Webpack development dependencies: `webpack` for the core of Webpack, `webpack-cli` so we can run Webpack commands from the terminal, and `webpack-dev-server` so we can run a local development server. Additionally, we'll install `html-webpack-plugin` to be able to store our `index.html` in `src` directory instead of the default `dist` one. We use `--save-dev` to signal that these dependencies are only for development use and not for production.
+2. **Install Webpack.** Next we need to install our Webpack development dependencies: `webpack` for the core of Webpack, `webpack-cli` so we can run Webpack commands from the terminal, and `webpack-dev-server` so we can run a local development server. Additionally, well install `html-webpack-plugin` to be able to store our `index.html` in `src` directory instead of the default `dist` one. We use `--save-dev` to signal that these dependencies are only for development use and not for production.
 
    ```sh
    npm i --save-dev webpack webpack-cli webpack-dev-server html-webpack-plugin
    ```
 
-3. **Install Bootstrap.** Now we can install Bootstrap. We'll also install Floating UI and Vanilla Calendar Pro since some of our components depend on them. If you don’t plan on using menus, popovers, or tooltips, you can omit Floating UI. If you don’t plan on using the datepicker, you can omit Vanilla Calendar Pro.
+3. **Install Bootstrap.** Now we can install Bootstrap. Well also install Floating UI and Vanilla Calendar Pro since some of our components depend on them. If you don’t plan on using menus, popovers, or tooltips, you can omit Floating UI. If you don’t plan on using the datepicker, you can omit Vanilla Calendar Pro.
 
    ```sh
    npm i --save bootstrap @floating-ui/dom vanilla-calendar-pro
@@ -48,7 +48,7 @@ Now that we have all the necessary dependencies installed, we can get to work cr
 
 ## Project structure
 
-We’ve already created the `my-project` folder and initialized npm. Now we'll also create our `src` and `dist` folders to round out the project structure. Run the following from `my-project`, or manually create the folder and file structure shown below.
+We’ve already created the `my-project` folder and initialized npm. Now well also create our `src` and `dist` folders to round out the project structure. Run the following from `my-project`, or manually create the folder and file structure shown below.
 
 ```sh
 mkdir {src,src/js,src/scss}
@@ -76,7 +76,7 @@ At this point, everything is in the right place, but Webpack won’t work becaus
 
 With dependencies installed and our project folder ready for us to start coding, we can now configure Webpack and run our project locally.
 
-1. **Open `webpack.config.js` in your editor.** Since it’s blank, we'll need to add some boilerplate config to it so we can start our server. This part of the config tells Webpack where to look for our project’s JavaScript, where to output the compiled code to (`dist`), and how the development server should behave (pulling from the `dist` folder with hot reload).
+1. **Open `webpack.config.js` in your editor.** Since it’s blank, well need to add some boilerplate config to it so we can start our server. This part of the config tells Webpack where to look for our project’s JavaScript, where to output the compiled code to (`dist`), and how the development server should behave (pulling from the `dist` folder with hot reload).
 
    ```js
    'use strict'
@@ -102,7 +102,7 @@ With dependencies installed and our project folder ready for us to start coding,
    }
    ```
 
-2. **Next we fill in our `src/index.html`.** This is the HTML page Webpack will load in the browser to utilize the bundled CSS and JS we'll add to it in later steps. Before we can do that, we have to give it something to render and include the `output` JS from the previous step.
+2. **Next we fill in our `src/index.html`.** This is the HTML page Webpack will load in the browser to utilize the bundled CSS and JS well add to it in later steps. Before we can do that, we have to give it something to render and include the `output` JS from the previous step.
 
    ```html
    <!doctype html>
@@ -123,7 +123,7 @@ With dependencies installed and our project folder ready for us to start coding,
 
    We’re including a little bit of Bootstrap styling here with the `div class="container"` and `<button>` so that we see when Bootstrap’s CSS is loaded by Webpack.
 
-3. **Now we need an npm script to run Webpack.** Open `package.json` and add the `start` script shown below (you should already have the test script). We'll use this script to start our local Webpack dev server. You can also add a `build` script shown below to build your project.
+3. **Now we need an npm script to run Webpack.** Open `package.json` and add the `start` script shown below (you should already have the test script). Well use this script to start our local Webpack dev server. You can also add a `build` script shown below to build your project.
 
    ```json
    {
@@ -145,7 +145,7 @@ With dependencies installed and our project folder ready for us to start coding,
 
    <img class="img-fluid" src="/docs/[[config:docs_version]]/assets/img/guides/webpack-dev-server.png" alt="Webpack dev server running"/>
 
-In the next and final section to this guide, we'll set up the Webpack loaders and import all of Bootstrap’s CSS and JavaScript.
+In the next and final section to this guide, well set up the Webpack loaders and import all of Bootstrap’s CSS and JavaScript.
 
 ## Import Bootstrap
 
index c05078855e097795c6ea78cc599fa51a30cdc169..e2b7342e174d3a9cf7e5bbe2eb8376329d41202c 100644 (file)
@@ -53,7 +53,7 @@ Consider this example of stacking buttons on narrow mobile devices, and making t
     <button type="button" class="btn-outline theme-secondary">Cancel</button>
   </div>`} />
 
-Here's how you'd do it with responsive stacks, which are based on a container media queries. Wrap the stack in an extra element or add `.stack-container` to an existing parent to give the stack a "container" to adapt its layout from.
+Here’s how you’d do it with responsive stacks, which are based on a container media queries. Wrap the stack in an extra element or add `.stack-container` to an existing parent to give the stack a "container" to adapt its layout from.
 
 <ResizableExample code={`<div class="stack-container">
     <div class="vstack gap-2 sm:hstack">
index 52e83743a21696eb24d33c562d5669e1f2c5cdb8..1876492ed6afd994ccfae91737afd47f344444e8 100644 (file)
@@ -180,7 +180,7 @@ The following components use container queries:
 
 - **[Stepper]([[docsref:/components/stepper]])** — The `.stepper-overflow` wrapper uses `container-type: inline-size` to establish a containment context for the horizontally scrolling stepper pattern.
 
-Here's how the navbar implements container queries:
+Heres how the navbar implements container queries:
 
 ```scss
 // The navbar is defined as a query container
index 7e2e37779dfb3ba6c82ce21c22a41486ed419b25..e3ffc8ba0e1cedac26bac5cf11fda40969b735c7 100644 (file)
@@ -11,7 +11,7 @@ import { getData } from '@libs/data'
 
 ## Overview
 
-Use `align-content` utilities on flexbox containers to align flex items _together_ on the cross axis. Choose from `start` (browser default), `end`, `center`, `between`, `around`, or `stretch`. To demonstrate these utilities, we've enforced `flex-wrap: wrap` and increased the number of flex items.
+Use `align-content` utilities on flexbox containers to align flex items _together_ on the cross axis. Choose from `start` (browser default), `end`, `center`, `between`, `around`, or `stretch`. To demonstrate these utilities, weve enforced `flex-wrap: wrap` and increased the number of flex items.
 
 **Heads up!** This property has no effect on single rows of flex items.
 
index 468275ef9148a1aef2c0ad84a4c74363e0c48350..e1511467fa68d7d0c72c1b749d7326e3a24cda18 100644 (file)
@@ -5,7 +5,7 @@ aliases: "/docs/[[config:docs_version]]/utilities/"
 toc: true
 ---
 
-Bootstrap utilities are generated with our utility API and can be used to modify or extend our default set of utility classes via Sass. Our utility API is based on a series of Sass maps and functions for generating families of classes with various options. If you're unfamiliar with Sass maps, read up on the [official Sass docs](https://sass-lang.com/documentation/values/maps/) to get started.
+Bootstrap utilities are generated with our utility API and can be used to modify or extend our default set of utility classes via Sass. Our utility API is based on a series of Sass maps and functions for generating families of classes with various options. If youre unfamiliar with Sass maps, read up on the [official Sass docs](https://sass-lang.com/documentation/values/maps/) to get started.
 
 The `$utilities` map contains all our utilities and is later merged with your custom `$utilities` map, if present. The utility map contains a keyed list of utility groups which accept the following options:
 
@@ -13,14 +13,14 @@ The `$utilities` map contains all our utilities and is later merged with your cu
 | Option | Type | Default&nbsp;value | Description |
 | --- | --- | --- | --- |
 | [`property`](#property) | **Required** | – | Name of the property, this can be a string or an array of strings (e.g., horizontal paddings or margins). |
-| [`values`](#values) | **Required** | – | List of values, or a map if you don't want the class name to be the same as the value. If `null` is used as map key, `class` is not prepended to the class name. |
+| [`values`](#values) | **Required** | – | List of values, or a map if you dont want the class name to be the same as the value. If `null` is used as map key, `class` is not prepended to the class name. |
 | [`selector`](#selector) | Optional | `class` | Type of CSS selector in the generated CSS ruleset. Can be `class`, `attr-starts`, or `attr-includes`. |
-| [`child-selector`](#child-selector) | Optional | null | A child/descendant selector appended to the utility's selector, wrapped in `:where()` for zero specificity. Use to target children instead of the element itself. |
+| [`child-selector`](#child-selector) | Optional | null | A child/descendant selector appended to the utilitys selector, wrapped in `:where()` for zero specificity. Use to target children instead of the element itself. |
 | [`class`](#class) | Optional | null | Name of the generated class. If not provided and `property` is an array of strings, `class` will default to the first element of the `property` array. If not provided and `property` is a string, the `values` keys are used for the `class` names. |
 | [`variables`](#variables) | Optional | null | List or map of CSS custom properties to generate within each utility class. When a list, each variable receives the utility value. When a map, the provided static values are used. |
 | [`state`](#states) | Optional | null | List of pseudo-class variants (e.g., `:hover` or `:focus`) to generate as prefix-style classes. |
 | [`responsive`](#responsive) | Optional | `false` | Boolean indicating if responsive classes should be generated. |
-| [`important`](#importance) | Optional | `false` | Boolean indicating if `!important` should be added to the utility's CSS rules. |
+| [`important`](#importance) | Optional | `false` | Boolean indicating if `!important` should be added to the utilitys CSS rules. |
 | [`print`](#print) | Optional | `false` | Boolean indicating if print classes need to be generated. |
 </BsTable>
 
@@ -57,7 +57,7 @@ Which outputs the following:
 
 <div class="badge fs-6 bg-accent mb-3">Required</div>
 
-The `property` key must be set for any utility, and it must contain a valid CSS property. This property is used in the generated utility's ruleset. When the `class` key is omitted, it also serves as the default class name. Consider the `text-decoration` utility:
+The `property` key must be set for any utility, and it must contain a valid CSS property. This property is used in the generated utilitys ruleset. When the `class` key is omitted, it also serves as the default class name. Consider the `text-decoration` utility:
 
 ```scss
 $utilities: (
@@ -119,7 +119,7 @@ values: $position-values
 
 Use the `selector` option to change the CSS selector used in the generated CSS ruleset. The default option is to generate a class selector. When using an attribute selector—either `attr-starts` or `attr-includes`—**the `class` option is required**. We use these internally to simplify the construction of other utilities.
 
-For attribute selectors, you'll most likely want the `attr-includes` as the starting attribute selector in CSS applies to the entire string of classes in an attribute's value. For example, `[class^="name"]` would not match `class="example name"`.
+For attribute selectors, you’ll most likely want the `attr-includes` as the starting attribute selector in CSS applies to the entire string of classes in an attribute’s value. For example, `[class^="name"]` would not match `class="example name"`.
 
 As an example, to change from `.ratio-*` to `[class*="ratio-"]`:
 
@@ -281,7 +281,7 @@ Output:
 
 ### Variables
 
-Use the `variables` option to generate CSS custom properties within each utility class's ruleset. The value can be either a **list** or a **map**.
+Use the `variables` option to generate CSS custom properties within each utility classs ruleset. The value can be either a **list** or a **map**.
 
 When `variables` is a **list**, each variable receives the current utility value:
 
@@ -334,7 +334,7 @@ Output:
 
 ### States
 
-Use the `state` option to generate pseudo-class variations. Example pseudo-classes are `:hover` and `:focus`. When a list of states are provided, classnames are created for that pseudo-class with a prefix-style syntax matching the responsive prefix pattern. For example, to change opacity on hover, add `state: hover` and you'll get `.hover\:opacity:hover` in your compiled CSS.
+Use the `state` option to generate pseudo-class variations. Example pseudo-classes are `:hover` and `:focus`. When a list of states are provided, classnames are created for that pseudo-class with a prefix-style syntax matching the responsive prefix pattern. For example, to change opacity on hover, add `state: hover` and youll get `.hover\:opacity:hover` in your compiled CSS.
 
 Need multiple pseudo-classes? Use a space-separated list of states: `state: hover focus`.
 
@@ -505,7 +505,7 @@ This will generate utilities with `!important`:
 
 ## Using the API
 
-Now that you're familiar with how the utilities API works, learn how to add your own custom classes and modify our default utilities.
+Now that youre familiar with how the utilities API works, learn how to add your own custom classes and modify our default utilities.
 
 ### Override utilities
 
@@ -523,7 +523,7 @@ $utilities: (
 
 ### Add utilities
 
-New utilities can be added to the default `$utilities` map with a `map.merge`. Make sure our required Sass files and `_utilities.scss` are loaded first, then use `map.merge` to add your additional utilities. For example, here's how to add a responsive `cursor` utility with three values.
+New utilities can be added to the default `$utilities` map with a `map.merge`. Make sure our required Sass files and `_utilities.scss` are loaded first, then use `map.merge` to add your additional utilities. For example, heres how to add a responsive `cursor` utility with three values.
 
 ```scss
 @use "bootstrap/scss/bootstrap" as *;
@@ -545,7 +545,7 @@ $utilities: map.merge(
 
 ### Modify utilities
 
-Modify existing utilities in the default `$utilities` map with `map.get` and `map.merge` functions. In the example below, we're adding an additional value to the `width` utilities. Start with an initial `map.merge` and then specify which utility you want to modify. From there, fetch the nested `"width"` map with `map.get` to access and modify the utility's options and values.
+Modify existing utilities in the default `$utilities` map with `map.get` and `map.merge` functions. In the example below, we’re adding an additional value to the `width` utilities. Start with an initial `map.merge` and then specify which utility you want to modify. From there, fetch the nested `"width"` map with `map.get` to access and modify the utility’s options and values.
 
 ```scss
 @use "bootstrap/scss/bootstrap" as *;
@@ -669,7 +669,7 @@ $utilities: map.merge(
 
 ### Add, remove, modify
 
-You can add, remove, and modify many utilities all at once with the [`map.merge()` Sass function](https://sass-lang.com/documentation/modules/map/#merge). Here's how you can combine the previous examples into one larger map.
+You can add, remove, and modify many utilities all at once with the [`map.merge()` Sass function](https://sass-lang.com/documentation/modules/map/#merge). Heres how you can combine the previous examples into one larger map.
 
 ```scss
 @use "bootstrap/scss/bootstrap" as *;
index 71ee1532820cc00a7a03c7c3b086cb3c0bdce473..de98de9f808cdf79644e16f8df549a39e3e53cfc 100644 (file)
@@ -70,6 +70,6 @@ This CSS variable makes it easy to modify the aspect ratio across breakpoints. T
 
 ## Sass map
 
-Within `_config.scss`, you can change the aspect ratios you want to use. Here's our default `$aspect-ratios` map. Modify the map as you like and recompile your Sass to put them to use.
+Within `_config.scss`, you can change the aspect ratios you want to use. Heres our default `$aspect-ratios` map. Modify the map as you like and recompile your Sass to put them to use.
 
 <ScssDocs name="aspect-ratios" file="scss/_config.scss" />
index c20aa9989b7dae442b630cb4e42bff2039205fdd..60f261337a69d864a4cfc1c7e05fa4397f4b5e33 100644 (file)
@@ -16,7 +16,7 @@ utility:
 
 ## Border
 
-Use border utilities to add or remove an element's borders. Choose from all borders or one at a time.
+Use border utilities to add or remove an elements borders. Choose from all borders or one at a time.
 
 ### Additive
 
index 505389b3a6d24bd38c76c0af2b1653ce6a6e4596..e4be941adce8d99b4834c5e39d282700b396ad9a 100644 (file)
@@ -93,7 +93,7 @@ These even mix with the opacity utilities.
 
 ## Reset color
 
-Reset a text or link's color with `.text-reset`, so that it inherits the color from its parent.
+Reset a text or links color with `.text-reset`, so that it inherits the color from its parent.
 
 <Example code={`<p class="fg-3">
     Lighter body text with a <a href="#" class="text-reset">reset link</a>.
index 230c36930e18d8154642b0ae646a6ac8cfeb28e9..531aac32b4b55077eb1acb62688523a03779b9c7 100644 (file)
@@ -39,7 +39,7 @@ The media queries affect screen widths with the given breakpoint *or larger*. Fo
 
 ## Clearfix
 
-There's no more clearfix helper in Bootstrap 6 as it's an outdated technique. Instead, use the `display: flow-root` utility, `.d-flow-root`. This forces a container element to create a new block formatting context without the clearfix.
+There’s no more clearfix helper in Bootstrap 6 as it’s an outdated technique. Instead, use the `display: flow-root` utility, `.d-flow-root`. This forces a container element to create a new block formatting context without the clearfix.
 
 <Example code={`<div class="d-flow-root">
     <div class="float-end px-3 py-2 border rounded-3">Floated element</div>
index 5cd51e2f9c78cef990132137a06cbd84f424da17..6a00e659748a42c15e53e7fd5855a7ab45c0b307 100644 (file)
@@ -103,7 +103,7 @@ Responsive variations also exist for `flex-fill`.
 
 ## Grow and shrink
 
-Use `.flex-grow-*` utilities to toggle a flex item's ability to grow to fill available space. In the example below, the `.flex-grow-1` elements uses all available space it can, while allowing the remaining two flex items their necessary space.
+Use `.flex-grow-*` utilities to toggle a flex items ability to grow to fill available space. In the example below, the `.flex-grow-1` elements uses all available space it can, while allowing the remaining two flex items their necessary space.
 
 <Example class="bd-example-flex" code={`<div class="d-flex">
     <div class="p-2 flex-grow-1">Flex item</div>
@@ -111,7 +111,7 @@ Use `.flex-grow-*` utilities to toggle a flex item's ability to grow to fill ava
     <div class="p-2">Third flex item</div>
   </div>`} />
 
-Use `.flex-shrink-*` utilities to toggle a flex item's ability to shrink if necessary. In the example below, the second flex item with `.flex-shrink-1` is forced to wrap its contents to a new line, "shrinking" to allow more space for the previous flex item with `.w-100`.
+Use `.flex-shrink-*` utilities to toggle a flex items ability to shrink if necessary. In the example below, the second flex item with `.flex-shrink-1` is forced to wrap its contents to a new line, "shrinking" to allow more space for the previous flex item with `.w-100`.
 
 <Example class="bd-example-flex" code={`<div class="d-flex">
     <div class="p-2 w-100">Flex item</div>
index 72a4227dc088ebf99b308ca7f86ecbd4224c4c01..4dcd718b0c3b29addb0549b9e621746f339cc2a6 100644 (file)
@@ -51,7 +51,7 @@ Font sizes use CSS‘s `clamp()` to provide fluid, responsive sizing that scales
 - a preferred value (calculated using viewport units)
 - and, a maximum value
 
-As the viewport changes, the font size smoothly transitions between the minimum and maximum values. Here's how each size scales at different viewport widths.
+As the viewport changes, the font size smoothly transitions between the minimum and maximum values. Heres how each size scales at different viewport widths.
 
 <BsTable>
 | Size | Definition | Min | Max | @ 500px | @ 1400px |
index 3dad24d28aecef9620a890756ada85f09c78affc..53db658ec2c88808b896fda99c92243e108420a5 100644 (file)
@@ -13,7 +13,7 @@ import { getData } from '@libs/data'
 
 ## Overview
 
-Use grid utilities to control CSS Grid layout behavior. These utilities work with Bootstrap's [CSS Grid layout system]([[docsref:/layout/css-grid]]) to manage column counts and auto-placement algorithms.
+Use grid utilities to control CSS Grid layout behavior. These utilities work with Bootstraps [CSS Grid layout system]([[docsref:/layout/css-grid]]) to manage column counts and auto-placement algorithms.
 
 <Callout type="info">
 **CSS Grid is opt-in.** To use these utilities, you need to enable the CSS Grid system by setting `$enable-cssgrid: true` in your Sass configuration. See our [CSS Grid documentation]([[docsref:/layout/css-grid]]) for more details.
@@ -21,7 +21,7 @@ Use grid utilities to control CSS Grid layout behavior. These utilities work wit
 
 ## Column counts
 
-Use `grid-cols-{value}` utilities to set the number of columns in a CSS Grid container by modifying the `--bs-columns` CSS variable. Bootstrap's CSS Grid system supports 3, 4, and 6 column layouts out of the box.
+Use `grid-cols-{value}` utilities to set the number of columns in a CSS Grid container by modifying the `--bs-columns` CSS variable. Bootstraps CSS Grid system supports 3, 4, and 6 column layouts out of the box.
 
 <Example class="bd-example-cssgrid" code={`<div class="grid text-center grid-cols-3">
     <div>Column</div>
index 7a9b8d38f82379347ddb343ea2072728cfe9bbb9..d1936d7444e555cff807a88ad6333ce1d6e7a09b 100644 (file)
@@ -35,7 +35,7 @@ If possible, the simpler solution is:
 - **For links**: Remove the `href` attribute, making it a non-interactive anchor or placeholder link
 
 <Callout type="warning">
-**Accessibility warning:** Using `pointer-events: none` can create accessibility barriers. Always ensure that disabled elements are properly marked up with appropriate ARIA attributes and that keyboard users can't accidentally focus them.
+**Accessibility warning:** Using `pointer-events: none` can create accessibility barriers. Always ensure that disabled elements are properly marked up with appropriate ARIA attributes and that keyboard users cant accidentally focus them.
 </Callout>
 
 ## Use cases
index b2aa96d5c69c0599f7a753adc8dc31a8f8f835f7..5d27266453948b12934f56b54d8f74e5618a9bbe 100644 (file)
@@ -24,7 +24,7 @@ Easily realign text to components with text alignment classes. For start, end, a
 <p class="2xl:text-end">End aligned text on viewports sized 2xl (extra extra large) or wider.</p>`} />
 
 <Callout>
-Note that we don't provide utility classes for justified text. While, aesthetically, justified text might look more appealing, it does make word-spacing more random and therefore harder to read.
+Note that we dont provide utility classes for justified text. While, aesthetically, justified text might look more appealing, it does make word-spacing more random and therefore harder to read.
 </Callout>
 
 ## Responsive
index 21aaee44a12a2abc9fd62e63d2d02636dd066f6b..aede8a2cde2eb001805001435f5d8bb93664ffdd 100644 (file)
@@ -25,7 +25,7 @@ Decorate text in components with text decoration classes.
 
 ### Offset
 
-Change the underline's distance from your text. Offset is set in `em` units to automatically scale with the element's current `font-size`.
+Change the underline’s distance from your text. Offset is set in `em` units to automatically scale with the element’s current `font-size`.
 
 <Example code={`<p><a href="#">Default link</a></p>
 <p><a class="underline-offset-1" href="#">Offset 1 link</a></p>
@@ -34,13 +34,13 @@ Change the underline's distance from your text. Offset is set in `em` units to a
 
 ### Color
 
-Change the underline's color independent of the text color.
+Change the underlines color independent of the text color.
 
 <Example code={getData('theme-colors').map((themeColor) => `<p><a href="#" class="underline-${themeColor.name}">${themeColor.title} underline</a></p>`)} />
 
 ### Opacity
 
-Change the underline's opacity. Requires adding `.underline-{color}` to first set an `rgba()` color we use to then modify the alpha opacity.
+Change the underlines opacity. Requires adding `.underline-{color}` to first set an `rgba()` color we use to then modify the alpha opacity.
 
 <Example code={`<p><a class="underline-10" href="#">Underline opacity 10</a></p>
 <p><a class="underline-20" href="#">Underline opacity 20</a></p>
index aa76be3a1b4a8c9e93a78099b7c7e437e820b4d2..6f0e71eef3fd1efc6118a096bbe04452d5d60cd7 100644 (file)
@@ -43,7 +43,7 @@ And with borders:
 
 ## Comparison
 
-Here's a side-by-side comparison of all three styles for each theme color:
+Heres a side-by-side comparison of all three styles for each theme color:
 
 <Example code={getData('theme-colors').map((themeColor) => `<div class="d-flex gap-2 mb-2">
     <div class="theme-${themeColor.name} theme-contrast p-3 flex-fill text-center rounded">${themeColor.title} contrast</div>