前端——HeroUI 知识点大全(二)

简介: 教程来源 http://yvyus.cn HeroUI主题系统基于CSS变量实现,支持高效亮/暗色模式切换、自定义品牌主题及可视化Theme Builder工具。内置设计令牌、表单字段统一控制与OKLCH色彩模型,确保视觉一致性与开发效率。

二、主题系统:从设计令牌到深色模式

2.1 设计令牌(Design Tokens)
HeroUI 的主题基于 CSS 变量 实现,而不是硬编码的颜色值。这使得主题切换极其高效——只需更改变量的值,所有组件自动响应。

核心的 CSS 变量分类:
image.png
2.2 亮色/暗色模式原理
HeroUI 不依赖 dark: 前缀来逐个组件定义暗色样式,而是通过 CSS 变量的重新赋值:

/* 亮色模式 - 根作用域 */
:root {
  --background: #ffffff;
  --foreground: #11181C;
  --primary: #3B82F6;
  --primary-foreground: #ffffff;
}

/* 暗色模式 - .dark 类作用域 */
.dark {
  --background: #000000;
  --foreground: #ECEDEE;
  --primary: #60A5FA;
  --primary-foreground: #000000;
}

当你调用 < Button color="primary"> 时,Button 组件内部使用的是 var(--primary) 和 var(--primary-foreground),所以颜色会自动随主题变化。
https://zlpow.cn
手动切换主题:

import { useTheme } from "@heroui/use-theme";

function ThemeSwitcher() {
  const { theme, setTheme } = useTheme();

  return (
    <Button onClick={() => setTheme(theme === "light" ? "dark" : "light")}>
      切换主题
    </Button>
  );
}

2.3 自定义主题(在 tailwind.config.js 中)

// tailwind.config.js
import { heroui } from "@heroui/react";

export default {
  plugins: [
    heroui({
      themes: {
        // 自定义一个名为 "my-brand" 的主题,基于亮色主题扩展
        "my-brand": {
          extend: "light",
          colors: {
            primary: {
              DEFAULT: "#BEF264",      // 品牌主色
              foreground: "#000000",    // 主色上的文字颜色
            },
            secondary: {
              DEFAULT: "#A855F7",
              foreground: "#ffffff",
            },
          },
          layout: {
            radius: {
              small: "0.25rem",
              medium: "0.5rem",
              large: "0.75rem",
            },
            borderWidth: {
              small: "1px",
              medium: "2px",
            },
          },
        },
      },
    }),
  ],
};

然后在应用中使用:

<HeroUIProvider theme="my-brand">
  {children}
</HeroUIProvider>

2.4 Theme Builder 可视化工具
HeroUI v3.0.0-beta.4 推出了 Theme Builder(访问 v3.heroui.com/themes)。

功能亮点:

OKLCH 颜色选择器:通过亮度、彩度、色相滑块直观调整

实时预览:所有组件样式同步更新

预设模板:Airbnb、Coinbase、Discord 等品牌风格一键应用

双主题编辑:可同时编辑亮色/暗色模式,颜色值可以关联或独立

导出 CSS 变量:一键复制生成的 CSS 代码

为什么用 OKLCH?
OKLCH 是一种更符合人类视觉感知的色彩模型。简单来说:在 OKLCH 中,当你调整亮度(Lightness)时,颜色的鲜艳度(Chroma)保持不变,不会出现"变暗的同时变灰"的问题。这让暗色模式下的颜色看起来更自然。

2.5 表单字段令牌(--field-* 变量)
从 v3.0.0-alpha.34 开始,HeroUI 引入了 --field-* 系列的 CSS 变量来统一所有表单组件(Input、Select、Textarea 等)的样式 。

可用的表单令牌:

:root {
  --field-height: 2.5rem;
  --field-padding-x: 0.875rem;
  --field-padding-y: 0.5rem;
  --field-font-size: 0.875rem;
  --field-border-radius: 0.5rem;
  --field-border-width: 1px;
  --field-background: #ffffff;
  --field-border-color: #e4e4e7;
  --field-focus-border-color: #3B82F6;
  --field-disabled-opacity: 0.7;
}

修改这些变量会同时影响 Input、Select、Textarea 等所有组件,无需逐个调整。

相关文章
|
人工智能 JSON 安全
面试被问MCP?看这一篇文章就行了
MCP(模型上下文协议)是由Anthropic推出的开源标准,旨在统一AI与外部工具、数据源及系统的交互方式。它通过Tools(执行操作)、Resources(安全读取数据)和Prompts(复用提示模板)三大能力,实现跨厂商、跨环境的标准化连接,支撑可感知上下文的智能体开发。(239字)
|
26天前
|
存储 人工智能 监控
Nacos Skill Registry:面向个人场景的 Skill 中心实践
构建个人 Skill 技能中心,实现多 Agent 复用与协作。
|
人工智能 安全 Serverless
人人都在造 Skill,谁来保障安全运行?
阿里云AgentRun全新升级:支持Skills安全私域托管、沙箱隔离与秒级加载,内置千种开箱即用AI技能,助力开发者构建安全、高效、可规模化的智能体应用。
|
26天前
|
人工智能 运维 数据安全/隐私保护
微信智能体 OpenClaw 2.7.1 部署与故障排查全解
OpenClaw(小龙虾)是专注微信私域自动化的开源AI智能体,支持本地、云端、命令行三模式部署,简化微信接入,保障连接稳定与数据安全,适用于客服、运营、助理等场景,附一键装机包及完整部署指南。
|
26天前
|
SQL 监控 关系型数据库
【MySQL】索引核心:Explain执行计划解读、慢SQL优化全流程
本文系统讲解MySQL索引与慢SQL优化全链路:从B+树原理、聚簇/联合索引设计,到EXPLAIN执行计划深度解读(重点解析type、key、rows、Extra等核心字段),再到慢查询定位、9类索引失效场景及实战优化策略,助力高效根治慢SQL。
|
26天前
|
人工智能 运维 安全
Agent 从“能用”到“管好”,中间差了什么?
AgentRun 开放平台是企业级 AI 运维中台,专解 Agent 规模化落地难题。以员工权限为核心,构建“用户组-用户-用户空间”三层多租户体系,实现细粒度隔离、动态审批、成本可控、安全合规与全生命周期管理,助力企业从“玩具”迈向可信、高效、可治理的 AI 生产环境。
|
26天前
|
人工智能 安全 测试技术
Ruflo 爆火:Claude Code 终于有了“智能体调度层”?
Ruflo 是面向 Claude Code 的开源多智能体编排平台(GitHub: ruvnet/ruflo),支持百级专用Agent协同、Swarm编排、RAG向量记忆、企业级安全与MCP集成,旨在解决AI编程中任务拆解、上下文持续理解与工程化落地难题。
|
22天前
|
XML 前端开发 程序员
初级程序员必备的十大技能之 API 接口与前后端联调(一)
教程来源 http://qeext.cn/ 本文系统讲解API设计规范(RESTful/GraphQL)、HTTP协议核心(方法、状态码、头信息)、前后端联调流程及调试工具,助你打造标准化、高可用接口,打破前后端协作孤岛。
|
2月前
|
移动开发 自然语言处理 小程序
前端组件库——Wot Design Uni知识点大全(三)
教程来源 https://rvtst.cn Wot Design Uni 是基于 Vue3 的跨平台 UI 组件库,支持微信/支付宝小程序、H5、App 等多端兼容;提供样式隔离修复、virtualHost 渲染优化、虚拟列表、按需引入、国际化(15+语言)等完整解决方案。
|
2月前
|
数据采集 前端开发 数据可视化
前端组件库——TDesign知识点大全(二)
教程来源 http://xcfsr.cn TDesign提供完善的主题定制能力:基于Design Token实现设计原子化管理;支持明暗双模式一键切换;内置主题生成器,可自定义颜色、字体等;兼容Vite/webpack的Less变量定制。同时拥有覆盖布局、导航、消息、数据、输入等场景的丰富组件体系。