npm 包 fondant 使用教程

阅读时长 7 分钟读完

什么是 fondant

fondant 是一个可以快速生成可定制化的 CSS 样式表的库,其灵感来源于 Sass 和 Less。我们可以通过一定的约定来定义自己的样式,然后借助 fondant 来编译生成 CSS 文件。

安装 fondant

我们可以通过 npm 来安装 fondant:

开始使用 fondant

定义样式

在我们开始使用 fondant 之前,需要先定义一些样式规则。样式的定义方式和 Sass/Less 类似,但是 fondant 不需要变量声明,而是直接写样式规则。

我们来定义一个简单的样式文件:

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

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

这是一个含有一个变量的样式文件,我们将会使用 fondant 动态生成这个变量的值。

常规语法

我们可以通过下面的语法,将一个样式规则转变为 fondant 的语法:

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

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

这个语法中,我们使用了 function 函数来定义变量的值。这个函数的第一个参数是函数名字,第二个参数是一个数组,数组中的元素是这个函数的参数。

我们可以使用这种语法来定义任何一个能由 CSS 函数实现的值。比如,我们可以使用 rgba 函数来定义透明度:

进阶语法

我们除了可以使用常规语法,还可以使用进阶语法,来实现更复杂的定义。使用进阶语法时,我们需要定义一个样式规则对象。这个对象中,每一个属性名代表一个样式规则,属性值是这个样式规则的 function 调用语法。

我们来看一个例子:

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

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

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

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

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

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

这个例子中,我们定义了一个深度定制的样式规则,$myTheme 中包含了 colorbgColor 两个样式规则。我们定义了一个 myGenerate 函数来生成主题。这个函数接受两个参数,第一个参数是默认主题,第二个参数是深度定制的主题。我们利用 fondant 的动态性,在 JavaScript 层面将主题写入样式规则中。

JavaScript 中生成样式

在上面的例子中,我们使用了 fondant 函数来生成 CSS 样式。在 JavaScript 中,我们可以使用 fondant 生成样式并动态地修改样式规则和主题,使得样式动态可变。

我们来看一个完整的例子,向 CSS 中注入不同主题的样式:

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

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

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

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

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

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

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

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

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

在这个例子中,我们定义了一个样式规则对象,然后定义了默认主题和可选主题。我们将可选主题写入下拉框中,然后通过监听下拉框的 change 事件,动态地生成不同主题下的样式。

总结

fondant 是一个十分灵活且强大的样式库,我们可以使用它来定义定制化的样式规则,并在 JavaScript 层面生成不同主题的样式,让样式能够更灵活、动态地适应不同的场景和需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e481e8991b448e0732

纠错
反馈