import { useState } from 'react';
import { Select } from '@fibrae/semi-ui-react';
const optionList = [
{ value: 'douyin', label: '抖音' },
{ value: 'jianying', label: '剪映' },
];
export default function Demo() {
const [value, setValue] = useState<string | undefined>('douyin');
return (
<Select
value={value}
optionList={optionList}
onChange={setValue}
/>
);
}0.3.0Semi Design 社区版 · 面向中后台
一套组件,
四个框架原生可用
交互逻辑沉在与框架无关的 Foundation 中,四个框架各自以原生写法接入。
85 个组件,覆盖表单、表格到 AI 对话。
报销审批
所属部门
~
| 报销单号 | 申请人 | 状态 | 金额 | 提交时间 | |
|---|---|---|---|---|---|
| BX-20261031-018 | 陈陈雨桐 | 待审批 | ¥3,860.00 | 10-31 09:42 | |
| BX-20261030-054 | 王王嘉树 | 已通过 | ¥1,248.50 | 10-30 17:15 | |
| BX-20261030-032 | 周周思齐 | 待审批 | ¥12,400.00 | 10-30 11:08 | |
| BX-20261029-077 | 赵赵明哲 | 已驳回 | ¥568.00 | 10-29 15:36 | |
| BX-20261029-041 | 刘刘若溪 | 已通过 | ¥2,190.00 | 10-29 10:20 |
共 128 条
01跨框架
逻辑写一次,四个框架原生接入
Foundation 负责交互逻辑,Adapter 对接各框架的状态与绑定:React 用 useState,Vue 用 v-model,Solid 用 signal,Svelte 用 $state。
Foundation交互逻辑,只写一次
Adapter
React
Vue
Solid
Svelte
<script setup lang="ts">
import { ref } from 'vue';
import { Select } from '@fibrae/semi-ui-vue';
const optionList = [
{ value: 'douyin', label: '抖音' },
{ value: 'jianying', label: '剪映' },
];
const value = ref<string | undefined>('douyin');
</script>
<template>
<Select
v-model="value"
:optionList="optionList"
/>
</template>import { createSignal } from 'solid-js';
import { Select } from '@fibrae/semi-ui-solid';
const optionList = [
{ value: 'douyin', label: '抖音' },
{ value: 'jianying', label: '剪映' },
];
export default function Demo() {
const [value, setValue] = createSignal<string | undefined>('douyin');
return (
<Select
value={value()}
optionList={optionList}
onChange={(v) => setValue(v)}
/>
);
}<script lang="ts">
import { Select } from '@fibrae/semi-ui-svelte';
const optionList = [
{ value: 'douyin', label: '抖音' },
{ value: 'jianying', label: '剪映' },
];
let value = $state<string | undefined>('douyin');
</script>
<Select
bind:value
{optionList}
/>02企业级
无障碍、国际化、主题与 SSR,
默认就绪
无障碍
TabEnterEsc
默认无障碍
角色与键盘交互按 WAI-ARIA 与 APG 实现,焦点状态始终可见。
国际化
57 种语言,原生 RTL
内置文案与可访问名称均来自语言包,从右向左的语言整体镜像。
主题
一套变量,深浅双色
样式基于 --semi-* 变量并置于 @layer semi,不与业务样式争夺优先级。
工程
- SSR
- hydration
- format
- ESM only
- Chrome
- ≥ 120
- Firefox
- ≥ 125
- Safari
- ≥ 17.2
SSR 与 hydration
支持服务端渲染与 hydration,仅发布 ESM,面向现代构建工具。
开源
MIT 开源
Semi Design 的社区 fork,代码完全公开,可用于商业项目。