npm 包 @fluent-ui/styles 使用教程

在现代的前端开发中,UI 库/框架不可或缺。Fluent UI 是一个微软公司开发的 React UI 系统,它采用了 Fluent Design System,提供了许多易于使用且具有高度一致性的组件。

@fluent-ui/styles 是 Fluent UI 提供的一个样式包,它通过 TypeScript 转换工具生成 css 样式,可以轻松应用于你的 React 组件应用中。本篇文章将介绍如何使用 @fluent-ui/styles 并展示它的一些用法。

安装

使用 npm 方法来安装 @fluent-ui/styles:

--- ------- -----------------

使用

在你的 React 项目中引入 @fluent-ui/styles 并开始对样式进行管理。

------ - ------------ - ---- --------------------

----- ------ - --------------
  ----- -
    ---------- ---------
    -------- -------
    ---------------- -------
  --
  ------ -
    --------- -------
    ----------- -------
  --
  ------- -
    -------- ----- ------
    ------ --------
    ---------------- -------
    ------------- ------
    ---------- -
      ---------------- -----------
    --
  --
---

-------- ----- -
  ------ -
    ---- ------------------------
      --- ------------------------------ -----------
      ------- ------------------------------- -----------
    ------
  --
-

以上代码展示了如何使用 @fluent-ui/styles,createStyles 是一个函数,它接受一个对象作为参数。这个对象中的每一个键都代表一个样式类名,每个值都是一个 CSS 样式对象。这个函数将返回一个样式表,你可以将其应用到你的组件中。

样式对象

样式对象就是一个键值对,键是 CSS 属性名称,值是对应属性的值。例如:

----- ------ - --------------
  ----- -
    ---------------- -------
    -------- -------
    --------- -------
    ------ -------
  --
  ------ -
    ----------- -------
    --------- -------
    ---------- -------
  --
---

样式类名

当你创建好你的样式对象后,你需要使用样式表中的类名来应用它们。在 @fluent-ui/styles 中,每个类名都会通过样式表创建一个唯一的 CSS 类名。

------ - ------------ - ---- --------------------

----- ------ - --------------
  ----- -
    ---------------- -------
    -------- -------
    --------- -------
    ------ -------
  --
---

-------- ----- -
  ------ ---- ----------------------------- -------------
-

在这个例子中,styles.root 将会被转换成一个唯一的 CSS 类名。这个类名会自动添加到 div 元素的 class 属性上。

嵌套样式

在复杂的 UI 应用中,你可能需要使用嵌套样式。@fluent-ui/styles 支持在样式表中添加子元素的样式。

------ - ------------ - ---- --------------------

----- ------ - --------------
  ----- -
    ---------------- -------
    -------- -------
    --------- -------
    ------ -------
    -- ---- -
      ------ -------
    --
    -- -------- -
      -------- ----- ------
      ------ --------
      ---------------- -------
      ------------- ------
      ---------- -
        ---------------- -----------
      --
    --
  --
---

-------- ----- -
  ------ -
    ---- ------------------------
      --------- -----------
      ------------- -----------
    ------
  --
-

嵌套样式与样式对象结合起来使用可以创建出可重用的样式混入。

----- ------------ - -
  -------- ----- ------
  ------ --------
  ---------------- -------
  ------------- --
  ---------- -
    ---------------- -----------
  --
--

----- ------ - --------------
  ----- -
    ---
    -- -------- -------------
  --
  ------------ -------------
---

进阶技巧

样式对象的类型

使用 TypeScript 时,你可能需要指定样式对象的类型。你可以通过定义 Styles 泛型类别来实现。

------ - ------------- ------ - ---- --------------------

---- ----- - -
  ------ -------
--

---- --------- - ------ - ------- - ---------

----- ------ - ------------------- ------------------ - ----- -- -- --
  ----- -
    ---------------- -------
    -------- -------
    --------- -------
    ------ -------
  --
  ------ -
    ----------- -------
    --------- -------
    ---------- -------
    ------
  --
  ------- -
    -------- ----- ------
    ------ --------
    ---------------- -------
    ------------- ------
    ---------- -
      ---------------- -----------
    --
  --
----

在这个例子中,我们通过指定 Props 泛型和 ClassKeys 泛型来声明了样式对象的类型。我们还可以使用模板字符串语法,在样式对象中使用 props 变量。

覆盖全局样式

在某些情况下,你可能需要针对某个组件定义自定义样式。@fluent-ui/styles 允许你轻松地为全局样式添加覆盖样式。你只需要将你的样式对象添加到一个名为 globalOverrides 的属性上即可。

------ - ------------ - ---- --------------------

----- ------ - --------------
  ---
---

---------------------- - -
  ------- -
    ---------------- ------
  --
--

在这个例子中,我们为所有 button 类型的元素添加了一个自定义背景颜色。如果你需要定义更具体的样式,你可以使用类名选择器。

---------------------- - -
  ------------ -
    ---------------- ------
  --
--

在这个例子中,我们只将自定义样式应用到了包含类名 myButton 的元素中。

运用主题

@fluent-ui/styles 实现了定义主题的功能,这允许你针对某些元素使用特定样式。

------ - ------------ - ---- --------------------

----- ------ - -------------------- -- --
  ----- -
    ---------------- -------------------------
    ---
  --
  ------ -
    ------ ----------------------
    ---
  --
----

在这个例子中,我们使用了 createStyles 方法在主题字典中查找了名为 palette 的属性,并针对不同的元素应用了不同的主题颜色。

结论

@fluent-ui/styles 提供了简洁高效的方法来管理 React 元素的样式。上述教程涵盖了基础到高级的功能和用例。作为开发者,你可以使用这些技能更好地创建可维护和可扩展的 UI 应用程序。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/fluent-software-ui-styles


猜你喜欢

  • npm 包 gia 使用教程

    在前端开发中,使用 npm 包是非常常见的。其中,gia 这个包是一个非常实用的工具,它可以帮助我们在开发过程中快速生成代码片段,特别适用于需要频繁编写重复代码的场景。

    4 年前
  • npm 包 webpack-sentry-plugin 使用教程

    前端开发过程中,我们需要不断地调试和优化我们的代码。有时候,我们在本地调试代码的时候会出现一些问题,但是在生产环境中却没有出现过。为了能够更好地了解和解决这些问题,我们需要使用一些工具来监控我们的代码...

    4 年前
  • npm 包 @findify/analytics 使用教程

    什么是 @findify/analytics @findify/analytics 是一个前端的工具包,可以帮助开发者跟踪和分析用户行为,以便做出更加准确和有针对性的决策。

    4 年前
  • npm 包 react-resize-detector 使用教程

    1. 为什么需要 react-resize-detector? 在网页开发中,经常需要对某些元素的大小变化做出响应,例如当浏览器窗口大小改变时,需要调整页面布局,或者当某些组件的大小改变时,需要更新组...

    4 年前
  • npm 包 element-dataset 使用教程

    element-dataset 是一个 npm 包,可以帮助我们在前端开发中更方便地处理 HTML 标签上的数据属性(data attribute),这些数据属性可以存储任意的数据,比如键值对、数组等...

    4 年前
  • npm 包 @findify/ui-components 使用教程

    介绍 在前端开发中,我们经常会用到一些 UI 组件库来构建我们的页面。而 Findify 是一个提供个性化搜索和推荐服务的公司,他们也推出了自己的 UI 组件库 @findify/ui-compone...

    4 年前
  • NPM 包 @findify/helpers 使用教程

    简介 在前端开发中,许多程序员都使用 npm (Node Package Manager) 来管理和安装 JavaScript 包。本篇文章将介绍如何使用 npm 包 @findify/helpers...

    4 年前
  • npm 包 eslint-config-noms 使用教程

    什么是 eslint-config-noms? eslint-config-noms 是一个为 JavaScript 提供代码风格规范的 ESLint 配置包。它依赖于 eslint-plugin-i...

    4 年前
  • 使用 babel-preset-noms 对前端代码进行编译

    Babel 是一种将 ECMAScript 6+ 代码转换为向后兼容的 JavaScript 代码的工具。 它的最新版本支持很多新增的语法特性,如箭头函数、类、模块等。

    4 年前
  • npm包asmcrypto.js-sha512使用教程

    简介 asmcrypto.js-sha512是一个基于JavaScript的npm包,用于快速且安全地加密和解密数据。该包提供了一组标准的加密算法,包括哈希算法(sha512),然后可以在前端中使用此...

    4 年前
  • npm 包 digitalocean-api 使用教程

    前言 DigitalOcean 是一个基于云计算技术的 IaaS 服务提供商,为用户提供 VPS、LB、数据库等云计算产品。 digitalocean-api 是一个基于 Node.js 的 Digi...

    4 年前
  • npm 包 filewalker 使用教程

    介绍 filewalker 是一个基于 Node.js 平台的 npm 包,可以帮助我们快速遍历文件系统目录,获取目录下的所有文件和子目录。使用 filewalker 可以为前端或后端开发者提高工作效...

    4 年前
  • npm 包 fluture-sanctuary-types 使用教程

    简介 fluture-sanctuary-types 是一个基于 Fluture 和 Sanctuary 的函数式编程库,用于处理异步操作,可操作 Promise 和 Callback,提供链式异步代...

    4 年前
  • npm 包 @std/esm 使用教程

    在前端开发中,我们经常需要导入其他 JS 文件或模块以便于代码的复用和管理。传统的方法是使用 CommonJS 或 AMD,但随着 ECMA 6 中的模块标准的正式发布,现在可以使用 import/e...

    4 年前
  • npm 包 @turf/truncate 使用教程

    前言 @turf/truncate 是一个 Node.js 模块,允许你通过一定的距离截断线型地物对象。它是 TurfJS 几何工具库中的一部分,可以用于处理地理空间数据。

    4 年前
  • npm 包 @turf/line-intersect 使用教程

    什么是 @turf/line-intersect? @turf/line-intersect 是一个用于计算两条线段之间交点的 npm 包。它可以用于自动化计算数字地图中各个线段交集、网络数据分析图例...

    4 年前
  • npm 包 @turf/invariant 使用教程

    前言 @turf/invariant 是一个非常实用的 npm 包,它可以帮助我们检查 geospatial 特征是否满足要求,提高我们在地理数据处理中的编程效率。 安装 首先,我们需要先安装该包。

    4 年前
  • npm包@turf/destination使用教程

    什么是@turf/destination? @turf/destination是一个npm包,它是Turf.js库的一部分,用于找到给定起点的目标点,距离和初始方位。

    4 年前
  • npm 包 @turf/bearing 使用教程

    在前端开发中,我们经常需要对地理位置信息进行处理。而 @turf/bearing 这个 npm 包可以用来计算两个经纬度点之间的方位角。本文将介绍如何使用该包以及其在实际应用中的指导意义。

    4 年前
  • npm包@turf/meta使用教程

    简介 @turf/meta 是Turfs包的一个npm包,Turfs是一个用于地理空间分析的JavaScript库。@turf/meta 提供了一些用于查找、获取、以及变换数据的工具函数,这些函数可以...

    4 年前

相关推荐

    暂无文章