@fluentui-react-native/design

中文文档
0.6.1发布于 2026/11/12MITTypeScriptES Module近 30 天下载 6641

Core design system concepts, utilities, and types for Fluent UI React Native.

原始使用文档

@fluentui-react-native/design

Core design system concepts, utilities, and types for Fluent UI React Native: theme sources and providers, ready-made Fluent and Flex themes, structured light, dark, high-contrast, and elevated appearance, Flex semantic tokens, themed style factories, and an opt-in runtime color library. Legacy theme and token packages re-export their APIs from here.

Quick start

Wrap a scene in ThemedRoot (or ThemeProvider) and read Flex tokens with useThemeState:

import { Text } from 'react-native';
import { FlexThemeReference, ThemedRoot, useThemeState } from '@fluentui-react-native/design';

const theme = new FlexThemeReference({ appearance: { colorScheme: 'system' } });

const Title = () => {
  const { tokens } = useThemeState();
  return <Text style={{ color: tokens.color.foregroundNeutralPrimary.rest, fontSize: tokens.fontSize.functionalTitleSmall }}>Hello</Text>;
};

export const App = () => (
  <ThemedRoot theme={theme} style={{ flex: 1 }}>
    <Title />
  </ThemedRoot>
);

Existing ThemeReference themes and useTheme consumers keep working under the same provider; the theming reference explains both authoring models and how they interoperate.

Fluent's own light, dark, and high-contrast themes ship in the themes entry point, and fluentTheme follows the system appearance, including high contrast:

import { ThemedRoot } from '@fluentui-react-native/design';
import { fluentTheme } from '@fluentui-react-native/design/themes';

export const App = () => (
  <ThemedRoot theme={fluentTheme} style={{ flex: 1 }}>
    <Title />
  </ThemedRoot>
);

Use fluentLightTheme or fluentDarkTheme when you need one fixed Theme object, or fluentHcTheme to always use high contrast.

The same entry point ships the x3 Flex defaults as flexCoolTheme and flexWarmTheme, independently bundleable descriptions covering light and dark. flexTheme includes both and switches palettes with appearance.colorTone. Use one as a FlexThemeReference base:

import { FlexThemeReference } from '@fluentui-react-native/design';
import { flexWarmTheme } from '@fluentui-react-native/design/themes';

const theme = new FlexThemeReference({ base: flexWarmTheme, appearance: { colorScheme: 'system' } });

Without an explicit theme or inherited boundary, ThemedRoot and the theme hooks use flexCoolTheme.

Documentation

TopicCovers
ThemingTheme references, providers, appearance, hooks, and legacy projection
Flex colorsAuthoring and reading Flex colors, and migrating from flat colors
TokensToken sources and Flex token mapping maintenance
StylingThemed style caches and state or color style factories
Color libraryRaw color-lib algorithms and the Flex interaction-color policy
Testing helpersTest-only fixtures and contrast validation
Entry pointsEvery subpath and the legacy compatibility packages
ContributingSource ownership, generated files, tests, and validation
Remaining workOpen theming and appearance work

The reference index lists every reference by ID. Agents working in this package start from AGENTS.md.

版本与发布记录

@fluentui-react-native/design 共发布 11 个版本,首次发布于 2026/07/11;过去 12 个月发布了 11 个版本。

版本发布日期距今
0.6.1latest2026/11/124 天前
0.6.02026/11/078 天前
0.5.32026/11/0312 天前
0.5.22026/10/2918 天前
0.5.12026/09/241 个月前
0.5.02026/09/231 个月前

关于 @fluentui-react-native/design 的常见问题

@fluentui-react-native/design 是什么?

Core design system concepts, utilities, and types for Fluent UI React Native.

如何安装 @fluentui-react-native/design?

在项目目录运行 npm install @fluentui-react-native/design,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(18.2.0 || 19.0.0 || 19.1.4)、react-native(^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.6)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fluentui-react-native/design 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fluentui-react-native/design 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@fluentui-react-native/design 可以商用吗?

@fluentui-react-native/design 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fluentui-react-native/design 的下载量有多少?

根据 npm 官方下载统计,@fluentui-react-native/design 在 2026/10/15 – 2026/11/13 这 30 天内被下载 6,641 次,日均约 221 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fluentui-react-native/design 还在维护吗?

最新版本 0.6.1 发布于 2026/11/12(4 天前);至今共发布 11 个版本,其中过去 12 个月发布了 11 个;首次发布于 2026/07/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。