mcpField
B
bootstrap-utilities

bootstrap-utilities

github.com/sjnims设计与 UI41 次安装
代码仓库

关于 bootstrap-utilities

供使用 Bootstrap 5.3 工具类编写界面的开发者参考,涵盖常见工具类以及 Sass Utilities API 定制,并提供响应式布局和常用模式示例。

主要功能

  1. 01间距与尺寸类
  2. 02响应式显示工具类
  3. 03文本、颜色与边框样式
  4. 04Flexbox 与定位辅助类
  5. 05Sass Utilities API 定制
  6. 06常见布局模式

适用场景

  1. 01无需自定义 CSS 调整间距
  2. 02构建响应式显示与隐藏布局
  3. 03使用 Flexbox 居中内容
  4. 04添加项目专用工具类

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sjnims/bootstrap-expert --skill bootstrap-utilities

安装后在 Claude Code 中输入/bootstrap-utilities确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
card-layout.html
flex-centering.html
responsive-utilities.html
references/
api-customization.md
color-modes-utilities.md
utilities-reference.md

详细介绍

Bootstrap 5.3 实用工具

Bootstrap 提供了丰富的实用工具类,可快速设置样式,无需编写自定义 CSS。这些类通过 Utilities API 生成,并且可以自定义。

间距实用工具

外边距(m-)和内边距(p-)

<div class="m-3">Margin 1rem all sides</div>
<div class="p-3">Padding 1rem all sides</div>


<div class="mt-3">Margin top</div>
<div class="mb-3">Margin bottom</div>
<div class="ms-3">Margin start (left in LTR)</div>
<div class="me-3">Margin end (right in LTR)</div>
<div class="mx-3">Margin horizontal (left + right)</div>
<div class="my-3">Margin vertical (top + bottom)</div>


<div class="px-3 py-2">Horizontal padding 1rem, vertical 0.5rem</div>
间距刻度
类大小
{m|p}-00
{m|p}-10.25rem(4px)
{m|p}-20.5rem(8px)
{m|p}-31rem(16px)
{m|p}-41.5rem(24px)
{m|p}-53rem(48px)
{m|p}-autoauto(仅适用于外边距)
响应式间距
<div class="mt-0 mt-md-3 mt-lg-5">
  No margin, 1rem on md, 3rem on lg+
</div>
间隙实用工具(Flexbox/Grid)
<div class="d-flex gap-3">
  <div>Item 1</div>
  <div>Item 2</div>
</div>

<div class="d-grid gap-2">
  <button class="btn btn-primary">Button 1</button>
  <button class="btn btn-primary">Button 2</button>
</div>


<div class="d-grid gap-0 row-gap-3 column-gap-3">...</div>

显示实用工具

<div class="d-none">Hidden</div>
<div class="d-inline">Inline</div>
<div class="d-inline-block">Inline-block</div>
<div class="d-block">Block</div>
<div class="d-flex">Flexbox</div>
<div class="d-inline-flex">Inline flex</div>
<div class="d-grid">Grid</div>
<div class="d-table">Table</div>
<div class="d-table-row">Table row</div>
<div class="d-table-cell">Table cell</div>


<div class="d-none d-md-block">Hidden on xs/sm, block on md+</div>
<div class="d-block d-lg-none">Visible until lg</div>


<div class="d-print-none">Hidden in print</div>
<div class="d-none d-print-block">Only visible in print</div>

文本实用工具

对齐方式
<p class="text-start">Left aligned (start)</p>
<p class="text-center">Center aligned</p>
<p class="text-end">Right aligned (end)</p>


<p class="text-start text-md-center text-lg-end">
  Left on xs/sm, center on md, right on lg+
</p>
大小写转换
<p class="text-lowercase">lowercased text</p>
<p class="text-uppercase">UPPERCASED TEXT</p>
<p class="text-capitalize">Capitalized Text</p>
装饰
<a href="#" class="text-decoration-none">No underline</a>
<p class="text-decoration-underline">Underlined text</p>
<p class="text-decoration-line-through">Strikethrough text</p>
换行和溢出
<div class="text-wrap">Text that wraps normally</div>
<div class="text-nowrap">Text that won't wrap</div>
<p class="text-break">Longwordthatwillbreaktopreventoverflow</p>
<p class="text-truncate" style="max-width: 150px;">
  This text is truncated with ellipsis...
</p>
字重和样式
<p class="fw-bold">Bold text</p>
<p class="fw-bolder">Bolder text (relative)</p>
<p class="fw-semibold">Semibold text</p>
<p class="fw-medium">Medium text</p>
<p class="fw-normal">Normal weight</p>
<p class="fw-light">Light text</p>
<p class="fw-lighter">Lighter text (relative)</p>
<p class="fst-italic">Italic text</p>
<p class="fst-normal">Normal style</p>
行高
<p class="lh-1">Line height 1</p>
<p class="lh-sm">Small line height</p>
<p class="lh-base">Base line height</p>
<p class="lh-lg">Large line height</p>

Flexbox 实用工具

方向
<div class="d-flex flex-row">Horizontal</div>
<div class="d-flex flex-row-reverse">Horizontal reversed</div>
<div class="d-flex flex-column">Vertical</div>
<div class="d-flex flex-column-reverse">Vertical reversed</div>
主轴对齐方式
<div class="d-flex justify-content-start">Start</div>
<div class="d-flex justify-content-end">End</div>
<div class="d-flex justify-content-center">Center</div>
<div class="d-flex justify-content-between">Space between</div>
<div class="d-flex justify-content-around">Space around</div>
<div class="d-flex justify-content-evenly">Space evenly</div>
交叉轴对齐方式
<div class="d-flex align-items-start">Top</div>
<div class="d-flex align-items-end">Bottom</div>
<div class="d-flex align-items-center">Center</div>
<div class="d-flex align-items-baseline">Baseline</div>
<div class="d-flex align-items-stretch">Stretch</div>
自身对齐方式
<div class="align-self-start">Top</div>
<div class="align-self-center">Center</div>
<div class="align-self-end">Bottom</div>
Flex 换行
<div class="d-flex flex-wrap">Wrap</div>
<div class="d-flex flex-nowrap">No wrap</div>
<div class="d-flex flex-wrap-reverse">Wrap reverse</div>
Flex 增长/收缩
<div class="flex-grow-0">Don't grow</div>
<div class="flex-grow-1">Grow to fill</div>
<div class="flex-shrink-0">Don't shrink</div>
<div class="flex-shrink-1">Can shrink</div>
<div class="flex-fill">Fill available space</div>
顺序
<div class="order-0">First</div>
<div class="order-1">Second</div>
<div class="order-2">Third</div>
<div class="order-first">Very first (-1)</div>
<div class="order-last">Very last (6)</div>

背景实用工具

<div class="bg-primary">Primary</div>
<div class="bg-secondary">Secondary</div>
<div class="bg-success">Success</div>
<div class="bg-danger">Danger</div>
<div class="bg-warning">Warning</div>
<div class="bg-info">Info</div>
<div class="bg-light">Light</div>
<div class="bg-dark">Dark</div>
<div class="bg-body">Body</div>
<div class="bg-body-secondary">Body secondary</div>
<div class="bg-body-tertiary">Body tertiary</div>
<div class="bg-white">White</div>
<div class="bg-black">Black</div>
<div class="bg-transparent">Transparent</div>


<div class="bg-primary bg-opacity-75">75%</div>
<div class="bg-primary bg-opacity-50">50%</div>
<div class="bg-primary bg-opacity-25">25%</div>
<div class="bg-primary bg-opacity-10">10%</div>


<div class="bg-primary bg-gradient">Gradient</div>

文本颜色实用工具

<p class="text-primary">Primary text</p>
<p class="text-secondary">Secondary text</p>
<p class="text-success">Success text</p>
<p class="text-danger">Danger text</p>
<p class="text-warning">Warning text</p>
<p class="text-info">Info text</p>
<p class="text-muted">Muted text</p>
<p class="text-body">Body text</p>
<p class="text-body-secondary">Body secondary</p>
<p class="text-body-tertiary">Body tertiary</p>
<p class="text-body-emphasis">Body emphasis</p>
<p class="text-black">Black text</p>
<p class="text-white bg-dark">White text</p>


<p class="text-primary text-opacity-75">75% opacity</p>
<p class="text-primary text-opacity-50">50% opacity</p>
<p class="text-primary text-opacity-25">25% opacity</p>

边框实用工具


<div class="border">All sides</div>
<div class="border-top">Top</div>
<div class="border-end">End</div>
<div class="border-bottom">Bottom</div>
<div class="border-start">Start</div>


<div class="border-0">No border</div>
<div class="border-top-0">No top border</div>


<div class="border border-primary">Primary</div>
<div class="border border-success">Success</div>
<div class="border border-danger">Danger</div>


<div class="border border-1">1px</div>
<div class="border border-2">2px</div>
<div class="border border-3">3px</div>
<div class="border border-4">4px</div>
<div class="border border-5">5px</div>


<div class="rounded">Rounded</div>
<div class="rounded-0">No radius</div>
<div class="rounded-1">Small radius</div>
<div class="rounded-2">Default radius</div>
<div class="rounded-3">Large radius</div>
<div class="rounded-4">XL radius</div>
<div class="rounded-5">XXL radius</div>
<div class="rounded-circle">Circle</div>
<div class="rounded-pill">Pill</div>
<div class="rounded-top">Top only</div>
<div class="rounded-end">End only</div>
<div class="rounded-bottom">Bottom only</div>
<div class="rounded-start">Start only</div>

阴影实用工具

<div class="shadow-none">No shadow</div>
<div class="shadow-sm">Small shadow</div>
<div class="shadow">Regular shadow</div>
<div class="shadow-lg">Large shadow</div>

尺寸实用工具

宽度
<div class="w-25">25% width</div>
<div class="w-50">50% width</div>
<div class="w-75">75% width</div>
<div class="w-100">100% width</div>
<div class="w-auto">Auto width</div>
<div class="mw-100">Max-width 100%</div>
<div class="vw-100">100vw</div>
<div class="min-vw-100">Min 100vw</div>
高度
<div class="h-25">25% height</div>
<div class="h-50">50% height</div>
<div class="h-75">75% height</div>
<div class="h-100">100% height</div>
<div class="h-auto">Auto height</div>
<div class="mh-100">Max-height 100%</div>
<div class="vh-100">100vh</div>
<div class="min-vh-100">Min 100vh</div>

定位实用工具

定位值
<div class="position-static">Static (default)</div>
<div class="position-relative">Relative</div>
<div class="position-absolute">Absolute</div>
<div class="position-fixed">Fixed</div>
<div class="position-sticky">Sticky</div>
位置

<div class="position-absolute top-0 start-0">Top left</div>
<div class="position-absolute top-0 end-0">Top right</div>
<div class="position-absolute bottom-0 start-0">Bottom left</div>
<div class="position-absolute bottom-0 end-0">Bottom right</div>
<div class="position-absolute top-50 start-50">Center (needs transform)</div>
使用 Translate 居中

<div class="position-absolute top-50 start-50 translate-middle">
  Perfectly centered
</div>


<div class="position-absolute start-50 translate-middle-x">
  Horizontally centered
</div>


<div class="position-absolute top-50 translate-middle-y">
  Vertically centered
</div>
常见模式:徽章定位
<button class="btn btn-primary position-relative">
  Notifications
  <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
    99+
  </span>
</button>

溢出实用工具

<div class="overflow-auto">Auto</div>
<div class="overflow-hidden">Hidden</div>
<div class="overflow-visible">Visible</div>
<div class="overflow-scroll">Scroll</div>

<div class="overflow-x-auto">Horizontal auto</div>
<div class="overflow-x-hidden">Horizontal hidden</div>
<div class="overflow-y-auto">Vertical auto</div>
<div class="overflow-y-hidden">Vertical hidden</div>

不透明度实用工具

<div class="opacity-100">100%</div>
<div class="opacity-75">75%</div>
<div class="opacity-50">50%</div>
<div class="opacity-25">25%</div>
<div class="opacity-0">0%</div>

可见性实用工具

<div class="visible">Visible</div>
<div class="invisible">Invisible (takes space)</div>

Z-Index 实用工具

<div class="z-n1">-1</div>
<div class="z-0">0</div>
<div class="z-1">1</div>
<div class="z-2">2</div>
<div class="z-3">3</div>

对象适配实用工具

<img class="object-fit-contain" src="...">
<img class="object-fit-cover" src="...">
<img class="object-fit-fill" src="...">
<img class="object-fit-scale" src="...">
<img class="object-fit-none" src="...">

交互实用工具

<div class="user-select-all">Select all on click</div>
<div class="user-select-auto">Default selection</div>
<div class="user-select-none">Cannot select</div>
<div class="pe-none">Pointer events none</div>
<div class="pe-auto">Pointer events auto</div>

浮动实用工具

浮动实用工具可将元素定位到其容器的左侧或右侧,让文本环绕元素显示。

<div class="float-start">Float start (left in LTR)</div>
<div class="float-end">Float end (right in LTR)</div>
<div class="float-none">No float</div>


<div class="float-sm-start">Float start on sm+</div>
<div class="float-md-end">Float end on md+</div>
<div class="float-lg-none">No float on lg+</div>
类说明
float-start向左浮动(LTR)
float-end向右浮动(LTR)
float-none移除浮动

响应式:float-{breakpoint}-{start|end|none}

注意:现代布局通常使用 flexbox 或 grid,而不是浮动。浮动仍适用于让文本环绕图像。

垂直对齐实用工具

控制行内、行内块、行内表格及表格单元格元素的垂直对齐方式。

<span class="align-baseline">baseline</span>
<span class="align-top">top</span>
<span class="align-middle">middle</span>
<span class="align-bottom">bottom</span>
<span class="align-text-top">text-top</span>
<span class="align-text-bottom">text-bottom</span>
类对齐方式
align-baseline基线(默认)
align-top行顶端
align-middle行中部
align-bottom行底端
align-text-top父元素字体顶部
align-text-bottom父元素字体底部

注意:这些类适用于行内/行内块元素和表格单元格,不适用于块级元素。对于块级元素的垂直对齐,请使用 flexbox(align-items-*)。

链接实用工具

使用不透明度、下划线颜色、偏移和悬停效果设置链接样式。此功能于 Bootstrap 5.3 中新增。


<a href="#" class="link-opacity-10">10% opacity</a>
<a href="#" class="link-opacity-25">25% opacity</a>
<a href="#" class="link-opacity-50">50% opacity</a>
<a href="#" class="link-opacity-75">75% opacity</a>
<a href="#" class="link-opacity-100">100% opacity</a>


<a href="#" class="link-opacity-50-hover">50% on hover</a>


<a href="#" class="link-underline-primary">Primary underline</a>
<a href="#" class="link-underline-secondary">Secondary underline</a>
<a href="#" class="link-underline-success">Success underline</a>


<a href="#" class="link-offset-1">1 offset</a>
<a href="#" class="link-offset-2">2 offset</a>
<a href="#" class="link-offset-3">3 offset</a>


<a href="#" class="link-underline-opacity-0">No underline</a>
<a href="#" class="link-underline-opacity-25">25% underline</a>
<a href="#" class="link-underline-opacity-50">50% underline</a>


<a href="#" class="link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">
  Styled link
</a>
类说明
link-opacity-{10|25|50|75|100}链接文本不透明度
link-opacity-{value}-hover悬停时的不透明度
link-underline-{color}下划线颜色
link-offset-{1|2|3}下划线距离
link-underline-opacity-{0|10|25|50|75|100}下划线不透明度

Utilities API

Bootstrap 的实用工具通过基于 Sass 的 API 生成,支持全面自定义。

API 结构

每个工具都定义为一个映射,包含以下关键选项:

选项描述
propertyCSS 属性名称(必需)
values值列表或映射(必需)
class自定义类前缀(可选)
responsive生成响应式变体(默认值:false)
print生成打印变体(默认值:false)
state生成状态变体,例如 :hover
css-var输出为 CSS 变量,而非规则
css-variable-name自定义 CSS 变量名称(与 css-var 搭配使用)
local-vars局部 CSS 变量映射
rfs启用流体缩放(默认值:false)
rtl纳入 RTL 输出(默认值:true)

注意:默认情况下,所有工具都包含 !important。将 $enable-important-utilities: false 设为全局禁用。

添加自定义工具
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "cursor": (
      property: cursor,
      class: cursor,
      responsive: true,
      values: auto pointer grab grabbing not-allowed
    )
  )
);

@import "bootstrap/scss/utilities/api";
修改现有工具
// Add responsive variants to an existing utility
$utilities: map-merge(
  $utilities,
  (
    "overflow": map-merge(
      map-get($utilities, "overflow"),
      (responsive: true)
    )
  )
);
移除工具
// Remove entirely
$utilities: map-remove($utilities, "float");

// Or set to null
$utilities: map-merge($utilities, ("float": null));

常见模式

适用于实际场景的常用工具组合。

居中容器(全视口)
<div class="d-flex justify-content-center align-items-center min-vh-100">
  <div class="text-center">
    <h1>Perfectly Centered</h1>
    <p>Both horizontally and vertically</p>
  </div>
</div>
粘性页脚布局
<div class="d-flex flex-column min-vh-100">
  <header class="bg-dark text-white p-3">Header</header>
  <main class="flex-grow-1 p-3">Main content</main>
  <footer class="bg-body-secondary p-3">Footer stays at bottom</footer>
</div>
带间距和阴影的卡片
<div class="card shadow-sm border-0 rounded-3">
  <div class="card-body p-4">
    <h5 class="card-title mb-3">Title</h5>
    <p class="card-text text-muted mb-0">Content</p>
  </div>
</div>
响应式隐藏/显示

<div class="d-none d-md-block">Desktop only</div>


<div class="d-block d-md-none">Mobile only</div>
图标与文本对齐
<div class="d-flex align-items-center gap-2">
  <svg>...</svg>
  <span>Text aligned with icon</span>
</div>

何时使用工具而非自定义 CSS

场景推荐方法
单次间距调整工具类(mt-3、p-4)
统一的组件样式自定义组件类
响应式显示/隐藏显示工具(d-none d-md-block)
复杂的悬停/焦点状态自定义 CSS
Bootstrap 尺度中没有的值通过 Utilities API 扩展或使用自定义 CSS
重复模式(3 次以上)提取为自定义类
快速原型使用工具提高速度
生产环境中的组件考虑提取重复使用的工具

经验法则:如果多个元素都应用了相同的 4 个以上工具组合,请考虑创建自定义类。

更多资源

参考文件
  • references/utilities-reference.md - 完整的工具类参考
  • references/api-customization.md - 高级 Sass 自定义示例
示例文件
  • examples/card-layout.html - 带间距、阴影和边框的卡片样式
  • examples/responsive-utilities.html - 响应式显示和间距模式
  • examples/flex-centering.html - Flexbox 居中技巧

评论

支持 Markdown