- 前端
- UI组件
【免费下载链接】Metro-UI-CSS
A progressive front-end framework for creating high-performance responsive reactive web applications!
导读
Shortcut(快捷方式)是 Metro UI CSS 中专门用于构建应用启动器、桌面图标与导航元素的一组轻量样式组件,支持标准快捷方式与 Windows 风格两种形态,可搭配图标、标题与角标使用。本文将基于仓库中 source/components/shortcut/README.md 文档,结合 shortcut.less 源码与 examples/shortcuts.html 示例,完整讲解该组件的标记结构、CSS 变量体系、修饰类与暗色模式适配,帮助你快速搭建风格统一、可主题化的快捷启动界面。
依赖与环境
Shortcut 组件是纯 CSS 组件,其样式入口由 source/components/shortcut/index.js 中的import "./shortcut.less";引入,而该入口又通过 source/components/index.js 被整体打包进框架。使用前需要确认以下依赖:
- Metro UI Core:框架核心样式,为组件提供变量、混合宏与主题基础;
- Metro UI Icon 组件:用于渲染快捷方式中的图标(例如
mif-windows、mif-chrome等mif-*类)。
在页面中引入lib/metro.css与lib/icons.css后即可直接使用,无需额外 JavaScript 初始化。例如 examples/shortcuts.html 中的引用方式:
<link href="../lib/metro.css" rel="stylesheet"> <link href="../lib/icons.css" rel="stylesheet">基本用法
标准快捷方式是一个.shortcut容器,内部由.icon图标与.caption标题两个元素组成:
<!-- Basic shortcut with icon and caption --> <div class="shortcut"> <span class="icon mif-windows"></span> <span class="caption">Windows</span> </div>从 shortcut.less 的实现来看,.shortcut使用inline-flex与flex-direction: column将图标和标题纵向排列,并通过align-items: center; justify-content: center实现居中。标准快捷方式固定尺寸为84px × 84px,标题字号为 12px,图标默认 28px,二者之间以gap: 8px分隔。
更多配置形态
仅图标快捷方式
省略.caption后,快捷方式只展示图标。此时 shortcut.less 中通过:has(.caption)否定选择器将图标放大为 32px,并取消上边距,以填充整个快捷方式区域:
<!-- Shortcut with only an icon --> <div class="shortcut"> <span class="icon mif-chrome"></span> </div>带角标的快捷方式
角标.badge绝对定位在快捷方式右上角,用于显示通知数或计数,默认字号 11px、位置top: .25rem; right: .25rem:
<!-- Shortcut with badge --> <div class="shortcut"> <span class="icon mif-mail"></span> <span class="caption">Mail</span> <span class="badge">3</span> </div>Windows 风格快捷方式
.windows-shortcut模拟桌面操作系统中的快捷图标样式,尺寸为64px × 64px,圆角 4px,内边距 4px。它的图标尺寸由变量--windows-shortcut-icon-size控制(默认 40px),并带有object-fit: cover以适配图片图标:
<!-- Windows-style shortcut --> <div class="windows-shortcut"> <span class="icon mif-windows"></span> <span class="caption">Windows</span> </div> <!-- Windows-style shortcut with image icon --> <div class="windows-shortcut"> <img class="icon" src="path/to/icon.png"> <span class="caption">Application</span> </div>在 examples/shortcuts.html 中可以看到两种 Windows 风格的实际用法:一种使用mif-rocket字体图标,另一种直接使用<img class="icon">引入本地图片(如images/doom.png)。需要说明的是,Windows 风格快捷方式默认cursor: default,与标准快捷方式的cursor: pointer不同——从源码看,它更接近桌面图标的静态展示语义,若要可点击可自行添加事件或覆盖光标样式。
描边(Outline)快捷方式
.outline修饰类将背景设为透明并显示 1px 边框(边框色取自主题变量--border-color),适合嵌入在已有着色背景的页面上:
<!-- Outline shortcut --> <div class="shortcut outline"> <span class="icon mif-file"></span> <span class="caption">Document</span> </div>禁用快捷方式
.disabled将快捷方式整体透明度降为 0.65,同时禁用指针事件交互:
<!-- Disabled shortcut --> <div class="shortcut disabled"> <span class="icon mif-blocked"></span> <span class="caption">Disabled</span> </div>CSS 变量定制
标准快捷方式变量
| 变量 | 默认值(浅色) | 暗色模式 | 说明 |
|---|---|---|---|
--shortcut-border-radius | 6px | 6px | 快捷方式圆角 |
--shortcut-background | #f8f8f8 | #2e2e2e | 快捷方式背景色 |
--shortcut-color | #191919 | #F8F8F8 | 快捷方式文字颜色 |
--shortcut-background-hover | #dadada | #373737 | 悬停时的背景色 |
--shortcut-color-hover | #474747 | #bfbfbf | 悬停时的文字颜色 |
Windows 风格快捷方式变量
| 变量 | 默认值(浅色) | 暗色模式 | 说明 |
|---|---|---|---|
--windows-shortcut-icon-size | 40px | 40px | Windows 风格图标尺寸 |
--windows-shortcut-border-radius | 4px | 4px | Windows 风格圆角 |
--windows-shortcut-background | transparent | transparent | Windows 风格背景色 |
--windows-shortcut-background-hover | #efefef | #373737 | 悬停时背景色 |
--windows-shortcut-color | #191919 | #F8F8F8 | Windows 风格文字颜色 |
这些默认值定义在 shortcut.less 的:root块中。注意:文档中的圆角与图标尺寸变量在源码中并未被var()引用(--windows-shortcut-border-radius在源码中写死为4px,--shortcut-border-radius虽定义但源码直接使用var(--shortcut-border-radius)),因此覆盖--shortcut-border-radius会生效,而覆盖--windows-shortcut-border-radius目前不会影响实际渲染——这是从源码结构可以推断出的细节,升级版本时需留意。
自定义示例
在:root中重写变量即可全局定制快捷方式配色,例如为浅色主题应用一套蓝色系方案:
/* Custom styling for shortcuts */ :root { --shortcut-background: #e3f2fd; --shortcut-color: #0d47a1; --shortcut-background-hover: #bbdefb; --shortcut-color-hover: #1565c0; --windows-shortcut-icon-size: 48px; --windows-shortcut-background-hover: #e3f2fd; }CSS 类速查
基础类
.shortcut:标准快捷方式样式.windows-shortcut:Windows 风格快捷方式
修饰类
.outline:透明背景加边框的描边快捷方式.disabled:禁用态,降低透明度.focus:聚焦态样式
从源码看,聚焦效果通过.focus-show(@light-gray)混合宏实现(见 shortcut.less),.focus类与原生:focus伪类等效;点击(:active)时则使用@gray色系展示按压反馈(shortcut.less)。
元素类
.icon:快捷方式内的图标元素(字体图标或<img>).caption:快捷方式内的文字标题元素.badge:用于展示通知或计数的角标元素
内部结构
标准快捷方式与 Windows 风格快捷方式均采用"图标在上、标题在下"的纵向结构,区别在于尺寸:
┌──────────────────┐ │ │ │ Icon │ │ │ │ Caption │ │ │ └──────────────────┘- 标准快捷方式:84px × 84px,图标 28px(无标题时放大到 32px),标题 12px;
- Windows 风格快捷方式:64px × 64px,图标由
--windows-shortcut-icon-size控制(默认 40px),标题 12px 居中。
这些布局参数均可在 shortcut.less 中逐条核对,便于按需微调。
暗色模式支持
Shortcut 组件通过.dark-side类实现暗色适配:只要在快捷方式的任一父元素上添加.dark-side,组件即自动切换为暗色配色。在 shortcut.less 中,.dark-side块会覆盖全部--shortcut-*与--windows-shortcut-*变量,因此你只需在:root中重写变量,即可同时获得明暗两套主题。
最佳实践
- 全应用保持一致的快捷方式风格,避免混用不同尺寸与配色;
- 选择能清晰表达操作或目标含义的图标,优先使用 Metro UI 自带的
mif-*图标; - 标题文字保持简短且具有描述性,避免换行破坏 84px 的固定布局;
- 角标只在能提供有效信息(如未读消息数)时使用,不要滥用;
- 构建桌面式(类操作系统)界面时,优先考虑 Windows 风格快捷方式;
- 确保快捷方式与所在背景之间具有足够的对比度,可结合
.outline适配复杂背景; - 善用
.dark-side暗色支持,保证界面在明暗两种模式下观感一致。
验证与测试
仓库为快捷方式提供了对应的运行示例与回归测试:examples/shortcuts.html 展示了字体图标与图片图标两种 Windows 风格快捷方式;tests/shortcuts.test.js 通过@olton/latte测试框架加载该页面并断言无运行时错误。此外,编译后的样式可在 lib/metro.css 中检索到(如.windows-shortcut块),方便在无法直接编译 Less 源码的场景下核对最终样式结果。
- 前端
- UI组件
【免费下载链接】Metro-UI-CSS
A progressive front-end framework for creating high-performance responsive reactive web applications!
相关推荐
Metro UI CSS Hotkey 组件详解:键盘快捷键绑定、组合键与和弦键实战指南
Metro UI CSS Hotkey 组件详解:键盘快捷键绑定、组合键与和弦键实战指南 导读 Hotkey(热键)组件是 Metro UI CSS 框架中用于
前端UI组件Metro UI CSS Image Compare 组件:滑块式图像对比的完整实战指南
Metro UI CSS Image Compare 组件:滑块式图像对比的完整实战指南 Metro UI CSS 的 Image Compare 组件提供了一
前端UI组件Metro UI CSS Timeline 组件指南:用纯 CSS 构建垂直时间轴
Metro UI CSS Timeline 组件指南:用纯 CSS 构建垂直时间轴 Timeline 是 Metro UI CSS 框架提供的一个轻量级垂直时间
前端UI组件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考