前端组件库——Semi Design知识点大全(一)

简介: 教程来源 https://www.qeext.cn Semi Design是字节跳动抖音前端与UED团队联合打造的企业级设计系统,涵盖设计语言、2800+ Design Tokens、React组件库、主题定制、D2C/CD2等完整生态,助力中后台应用高效实现设计研发协同与品牌一致性。

在字节跳动内部业务高速发展的背景下,设计与研发团队面临着一个共同的挑战:如何在海量的中后台应用开发中,保证设计语言的一致性,同时又不失灵活性?如何让设计资源与代码资产形成真正的闭环,而不是各自为政?Semi Design的诞生就是为了解决这一核心问题。

Semi Design是抖音前端与UED团队联合打造的一款现代、全面、灵活的设计系统和UI库。它不仅仅是一个React组件库,更是一整套包含了设计语言、组件实现、主题定制、设计工具链等完整生态的解决方案。从抖音集团内部数百个中后台应用的实际业务场景出发,经过层层打磨和验证,Semi Design已正式开源,成为企业级应用的优选方案。

本文将从Semi Design的核心理念入手,系统全面地介绍其组件体系、主题定制、暗色模式、国际化、D2C能力等知识模块,结合大量代码示例和实际场景,帮助读者在实际项目中用好Semi Design。

一、Semi Design概述

1.1 什么是Semi Design
Semi Design是由字节跳动抖音前端与UED团队设计、开发并维护的现代、全面、灵活的设计系统和UI库。它包含了设计语言、React组件库、主题系统、设计工具链(DSM)、设计稿转代码(D2C)等完整生态,是一套开箱即用的企业级中后台解决方案。

Semi Design的核心设计理念可以概括为三个关键词:
image.png
1.2 Semi与其他UI库的对比
image.png

二、Design Token与主题定制

Semi Design的主题定制能力是其最核心的优势之一。它提供了2800多个设计令牌(Design Tokens),覆盖了从颜色、字体、间距到阴影、圆角、动画等所有视觉维度。

2.1 CSS变量与SCSS变量体系
Semi Design采用CSS自定义属性(CSS Variables)作为主题系统的基础,所有设计变量都通过CSS变量暴露给开发者。这种机制使得主题定制变得简单而强大:

变量覆盖:开发者可以通过覆盖CSS变量的方式修改主题样式

作用域隔离:变量修改可以限定在特定组件或区域

运行时动态更新:CSS变量支持运行时动态修改,无需重新加载页面

/* 通过CSS变量覆盖自定义主题 */
.semi-custom-theme {
  --semi-color-primary: #4f46e5;
  --semi-color-primary-hover: #6366f1;
  --semi-color-primary-active: #4338ca;
  --semi-border-radius-small: 4px;
  --semi-border-radius-medium: 8px;
  --semi-border-radius-large: 12px;
}

2.2 使用Vite插件定制主题
Semi提供了官方的Vite插件@douyinfe/vite-plugin-semi,支持多种主题定制方式:

// vite.config.js
import { semiPlugin } from '@douyinfe/vite-plugin-semi';
import path from 'path';

export default {
    plugins: [
        semiPlugin({
            // 方式一:通过npm包定制(推荐,由Semi DSM生成)
            theme: '@douyinfe/semi-theme-default',

            // 方式二:通过本地SCSS文件覆盖
            include: path.join(__dirname, 'custom-theme.scss'),

            // 方式三:直接传递变量键值对
            variables: {
                '$font-size-small': '14px',
                '$color-primary': '#4f46e5'
            },

            // 可选:替换CSS前缀(默认为semi)
            prefixCls: 'custom'
        })
    ]
});

2.3 设计系统管理工具(DSM
Semi Design提供了完整的设计系统管理工具,包括:

Semi DSM:可视化主题定制平台,可以实时预览并导出主题包

C2D(Code to Design):支持将代码主题同步到Figma设计稿

D2C(Design to Code):支持将Figma设计稿一键转换为代码

2.4 ColorPicker色彩选择器
当需要让用户自定义主题色时,Semi的ColorPicker组件可以配合CSS变量实现动态主题切换:

import { ColorPicker, Button, Space } from 'semi-ui';
import { useState } from 'react';

function ThemeCustomizer() {
  const [primaryColor, setPrimaryColor] = useState('#0066ff');

  const applyTheme = (color) => {
    document.documentElement.style.setProperty('--semi-color-primary', color);
    // 根据主色自动生成配套颜色
    const hoverColor = adjustColor(color, -10);
    const activeColor = adjustColor(color, -20);
    document.documentElement.style.setProperty('--semi-color-primary-hover', hoverColor);
    document.documentElement.style.setProperty('--semi-color-primary-active', activeColor);
  };

  return (
    <div>
      <ColorPicker value={primaryColor} onChange={(color) => {
        setPrimaryColor(color);
        applyTheme(color);
      }} />
      <div className="preview-area">
        <Button type="primary">预览按钮</Button>
      </div>
    </div>
  );
}

来源:
https://qeext.cn

相关文章
|
3月前
|
数据采集 前端开发 数据可视化
前端组件库——TDesign知识点大全(二)
教程来源 http://xcfsr.cn TDesign提供完善的主题定制能力:基于Design Token实现设计原子化管理;支持明暗双模式一键切换;内置主题生成器,可自定义颜色、字体等;兼容Vite/webpack的Less变量定制。同时拥有覆盖布局、导航、消息、数据、输入等场景的丰富组件体系。
|
3月前
|
人工智能 JSON 前端开发
前端组件库——Semi Design知识点大全(三)
教程来源 http://unbgv.cn Semi D2C是抖音前端自研的行业领先设计稿转代码工具,支持Figma一键生成语义化React代码(JSX+SCSS/Tailwind等),精准识别Semi组件及Props,无需标注、不改设计习惯,深度打通设计系统,3–5秒完成布局与样式还原。
|
JavaScript
Vue引入字节跳动图标库
Vue引入字节跳动图标库
833 0
Vue引入字节跳动图标库
|
3月前
|
测试技术 API 内存技术
LangChain 还是 LangGraph?一个是编排一个是工具包
本文对比LangChain与LangGraph在真实代码审查流水线中的实践:二者API、Agent逻辑与Gemini 2.5 Flash调用完全一致。LangChain适合线性流程,简洁高效;LangGraph则以状态机支持条件分支、循环重试与人工干预,是复杂编排的唯一解。二者非替代关系,而是抽象层级互补——LangChain v1.0的Agent已构建于LangGraph之上。
914 3
LangChain 还是 LangGraph?一个是编排一个是工具包
|
3月前
|
Kubernetes Cloud Native 微服务
【微服务与云原生架构】 云原生核心:Docker、K8s架构、核心资源(Pod/Deployment/Service/Ingress)、Pod生命周期、健康检查、滚动更新、自动扩缩容HPA
本文系统梳理微服务与云原生架构的知识体系:以Docker实现环境一致与轻量交付,K8s提供容器编排底座;涵盖Pod、Deployment、Service、Ingress四大核心资源,以及健康检查、滚动更新、HPA自动扩缩容等关键能力,构建高可用、可弹性、可观测的现代分布式应用架构闭环。
|
3月前
|
安全 Cloud Native 微服务
【微服务与云原生架构】ServiceMesh服务网格(Istio)核心原理、Sidecar模式、数据面/控制面、适用场景
本文系统构建Istio服务网格完整知识体系,涵盖定位价值、Sidecar模式、控制面/数据面架构、xDS协议、流量/安全/可观测性原理、落地场景、生态对比及Ambient Mesh演进方向,兼顾理论深度与生产实践。
|
3月前
|
人工智能 中间件 Go
NVIDIA开源的Go依赖注入神器:gontainer,真香!
gontainer 是 NVIDIA 开源的零依赖 Go DI 容器,基于泛型+反射实现函数签名自动注入,无需代码生成。支持懒加载、生命周期管理、可选/批量依赖,轻量易用,适合中小型项目,让 Go 依赖注入回归简洁本质。(239字)
138 2
|
3月前
|
人工智能 监控 供应链
淘宝代运营爆款打造核心逻辑(附实操步骤)
本文基于淘宝官方规则与12年实战经验,提炼出一套科学、可复用的爆款打造方法论。涵盖产品选型(30%)、内容优化(25%)、流量运营(25%)、口碑维护(20%)四大维度,含8步实操流程与真实案例验证,助力商家提升转化、延长爆款生命周期。(239字)
751 0
|
3月前
|
API
快来体验:阿里云百炼上线DeepSeek-V4,百万Tokens输入最低仅需1元
阿里云百炼首发DeepSeek-V4-Pro与V4-Flash,申请:https://t.aliyun.com/U/fPVHqY 支持百万Token超长上下文,Agent能力、世界知识及数学推理达开源顶尖水平;API价格与官网一致,输入低至1元/百万Token,即刻体验!

热门文章

最新文章