赢胜智能:2026 大暑
2026/7/24 11:10:57
实现暗黑模式(Dark Mode)的一键切换,是现代 UI 组件库的标配功能。以下是几款原生支持暗黑模式且切换便捷的主流 UI 库及其实现方式:
Semi Design 默认主题自带亮色与暗色模式,支持全局切换、跟随系统以及局部模式。
body添加或移除theme-mode='dark'属性来实现。prefers-color-scheme媒体查询自动检测并切换系统主题。.semi-always-dark或.semi-always-light类名,即可让该区域内的组件强制使用对应模式。Naive UI 的主题系统完全基于 TypeScript 构建,内置了暗黑主题,支持一键切换。
<n-config-provider>组件的:theme属性绑定darkTheme变量来控制。useOsTheme钩子,可以自动适配操作系统的主题设置,也支持手动控制。对于多端开发,uni-app 提供了完善的暗黑模式配置和 API 支持。
manifest.json中配置"darkmode": true,并指定变量配置文件(如theme.json)的路径。theme.json中定义不同主题下的颜色变量,并在pages.json中以@开头引用这些变量。uni.setStorageSync持久化主题状态,并通过设置document.documentElement.setAttribute('data-theme', value)来动态切换。基于 uni-app x 开发的跨平台 UI 框架,同样支持暗黑模式。
setTheme方法,传入'dark'或'light'参数即可切换。.rice-theme-dark下的变量)来深度自定义暗黑模式下的颜色。