@fest-lib/veela

中文文档
1.0.48发布于 2026/11/02MITES Module近 30 天下载 2787

fest-lib Veela: CSS tokens, --c2 color functions, Agate.UX, SCSS + runtime loaders

原始使用文档
文档目录8 节
  1. Install
  2. Runtime (adopted / inline)
  3. SCSS
  4. Color functions
  5. solid-colorize mixin
  6. Tokens (excerpt)
  7. Agate.UX
  8. Workspace

@fest-lib/veela
Design tokens, --c2-* color functions, Agate.UX. Values live in SCSS — this file is the map.

npm MIT stars

Do not emit a second :root palette in apps. Consume tokens and override context (var(--token, fallback)). Token SoT: src/scss (core/misc/_tokens.scss).

core · dom · object · lure
 └── fest/veela       ← you are here
      └── fl-ui · shells · apps

Install

npm install @fest-lib/core @fest-lib/dom @fest-lib/object @fest-lib/lure @fest-lib/veela

Peers: core, dom, object, lure (>=0.1.0). The published tarball includes dist/ and src/scss/.

Runtime (adopted / inline)

import initialize from "@fest-lib/veela";
initialize();                    // loads bundled SCSS via @fest-lib/dom

Variants (from src/scss/index.ts):

import { loadVeelaVariant } from "@fest-lib/veela/scss/index.ts";
// "core" | "basic" | "advanced" | "beercss"
await loadVeelaVariant("advanced");

In the workspace, FL.UI usually loads Veela for you (configureFlUI({ styleVariant: "veela-advanced" })).

SCSS

@use "@fest-lib/veela/scss/core" as *;

.card {
    background: var(--c2-surface, var(--color-surface));
    padding: var(--space-md);
    border-radius: var(--radius-md);
}

Exports: @fest-lib/veela/scss/* → src/scss/*.

Color functions

Native CSS custom functions (plus runtime fallbacks):

FunctionRole
--c2-surface(tone, base-color, scheme-id)surface
--c2-on-surface(...)ink on surface
--u2-contrast(...)contrast fill
--c2-on-contrast(...)ink on contrast
  • scheme-id: 0 light · 1 dark · 2 default (follow host).
  • tone: 0 black/white end · 50% chroma · 100% opposite end.
  • base-color: var(--current) (default), --primary, --secondary, --accent, --success, --warning, --error.
.panel {
    background: var(--c2-surface);
    color: var(--c2-on-surface);
}

Alpha via relative color: oklch(from var(--c2-surface) l c h / 0.5).

solid-colorize mixin

@include solid-colorize("&", (
    "shade": 0,
    "tint": 0,
    "scheme-id": 2,
    "role": null,
    "scope": "component"   // or "selector"
));

scope: "component" paints descendants / form helpers; "selector" stays on the node.

Tokens (excerpt)

Live numbers are in SCSS. Typical names:

KindExamples
Space--space-xs … --space-2xl, --gap-*, --padding-*
Radius--radius-xs … --radius-2xl, --radius-full
Type--text-xs … --text-6xl, --leading-*, --font-weight-*
Motion--transition-fast / normal / slow
Shadow--shadow-sm … --shadow-2xl, --shadow-inset
Chrome--icon-size-*, --avatar-size, --border-width-*

Atomic utility classes (.p-md, .gap-md, .d-flex, .text-sm, .shadow-sm, .color-primary, .surface-subtle) ship with the stylesheet. Prefer tokens on components over class soup.

Agate.UX

Oriented-space vs client-space vs implementation-space:

OrientedClientImpl
--os-inset-x/y--cs-inset-x/y--im-inset-x/y
--os-drag-x/y--cs-drag-x/y--im-drag-x/y
--os-size-x/y--cs-size-x/y--im-size-x/y

Use inset for semi-static layout, translate for drag / animation. Orientation: calc(var(--orient, 0) * 90deg). Measure in @fest-lib/dom Agate helpers.

Workspace

cd modules/projects/veela.css
npm run demo             # Vite
npm test                 # puppeteer
npm run build
npm run publish

Guide: guide/. License: MIT.

版本与发布记录

@fest-lib/veela 共发布 64 个版本,首次发布于 2026/08/08;过去 12 个月发布了 64 个版本。

版本发布日期距今
1.0.48latest2026/11/0212 天前
1.0.472026/11/0212 天前
1.0.462026/11/0113 天前
1.0.452026/10/3015 天前
1.0.412026/10/2916 天前
1.0.402026/10/2916 天前

关于 @fest-lib/veela 的常见问题

@fest-lib/veela 是什么?

fest-lib Veela: CSS tokens, --c2 color functions, Agate.UX, SCSS + runtime loaders

如何安装 @fest-lib/veela?

在项目目录运行 npm install @fest-lib/veela,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@fest-lib/dom(>=0.1.0)、@fest-lib/core(>=0.1.0)、@fest-lib/lure(>=0.1.0)、@fest-lib/object(>=0.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fest-lib/veela 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/fest-lib__veela 是否存在。

@fest-lib/veela 支持 ESM 还是 CommonJS?

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

@fest-lib/veela 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@fest-lib/veela 可以商用吗?

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

@fest-lib/veela 的下载量有多少?

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

@fest-lib/veela 还在维护吗?

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