npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

datav-lumen

v0.2.1

Published

DataV Lumen —— 面向数据看板 / MES 大屏的 Vue 3 SVG 组件库

Readme

DataV Lumen · datav-lumen

面向数据看板 / MES 大屏的 Vue 3 组件库。

「Lumen(流明)」是光通量单位 —— 这套组件的视觉语言是暗底 + 发光。 所有图形都是手写 SVG 或纯 CSS,不用图片,所以任意缩放都不糊; 颜色由一个主色在 HSL 空间派生出整套明暗层次,换色只改一个值。

DataV Lumen 组件墙

  • 一个 color 换整套配色 —— 主色派生 6 档(亮/最亮/暗/最暗/去饱和暗),层次关系自动保持
  • 背景默认透明 —— 组件不依赖宿主背景色,放在任何底色上都成立
  • 同页多实例互不干扰 —— CSS 变量挂组件根节点、SVG defs id 带实例前缀
  • 动画全都可关 —— 每个都有开关,并响应 prefers-reduced-motion
  • 零运行时依赖 —— 只把 vue 作为 peerDependency

技术栈:Vue 3.5 · Vite 8 · TypeScript 5.9

安装

npm i datav-lumen

vue 是 peerDependency,宿主项目自己装(^3.5.0):

npm i vue

引用

样式要单独引一次,只引一次,全部组件共用:

import 'datav-lumen/style.css'

全量注册(把所有组件注册成全局组件):

import { createApp } from 'vue'
import DatavLumen from 'datav-lumen'
import 'datav-lumen/style.css'
import App from './App.vue'

createApp(App).use(DatavLumen).mount('#app')

按需引入(推荐,用不到的组件不会进包):

<script setup lang="ts">
import { LbCounterCard, LbButton01 } from 'datav-lumen'
import 'datav-lumen/style.css'
</script>

<template>
  <LbCounterCard :value="5623" label="窗口登记" color="#8b5cf6" animate-value />
  <LbButton01 label="涉执&#10;舆情" color="#22d3ee" @click="onClick" />
</template>

类型:每个组件的 Props 类型都有导出,需要时可以直接标注:

import type { LbCounterCardProps, LbButton01Props } from 'datav-lumen'

组件文档

📖 每个组件的详细用法、完整 prop 表和效果图都在 component-docs/

| 文档 | 内容 | | --- | --- | | component-docs/README.md | 文档索引,带效果图缩略表 | | component-docs/<组件>.md | 单个组件的用法、prop 表、效果图 | | component-docs/icons-registry.md | 图标注册表:内置 77 个图标清单、怎么加自己的、批量导入 SVG | | component-docs/theming.md | 主题定制:CSS 变量清单、整站换色、浅色底注意事项 |

想在线拖参数看效果:clone 下来 npm run dev 起 playground,每个组件都有一页, 滑杆调出来的效果可以直接「复制」成模板代码。

组件清单

当前共 20 个组件,分七类。点组件名进它的文档。

基础

内置图标

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbIcon | 图标,内置 77 个(按 MES 场景分 11 组),可注册自己的 | 整张 SVG |

卡片 —— 数值主视觉的大卡,一屏放 4~12 个的那种

卡片组件

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbCounterCard | 竖版计数卡片(上发散光锥 + 机柜图标 + 粒子) | 整张 SVG | | LbStatItem | 横向指标项(CSS 3D 底座 + 图标 + 数值 + 标题) | DOM + SVG | | LbOrbitCard | 光轨卡片(发光椭圆轨道上跑亮弧 + 数值) | 整张 SVG | | LbPodiumCard | 台座卡片(菱形台座 + 图标 + 数值) | DOM + SVG | | LbDiscCard | 圆台卡片(圆锥台 + 浮动图标 + 数值) | DOM + SVG | | LbHexCard | 六边台卡片(数值站在三层薄板上 + 光柱 + 向上发光) | 整张 SVG | | LbCylinderCard | 圆柱液位卡片(液面 + 上升气泡 + 筒身高光,按百分比涨落) | 整张 SVG |

总览 —— 占一整块区域的场景图

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbBranchGraph | 分支总览图(舞台灯台座 + 2~8 个浮动玻璃珠节点自动分布 + 渐变连线) | DOM + SVG |

按钮 —— 外壳都是真 <button>,键盘操作 / focus-visible / disabled 交给浏览器

按钮组件

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbButton01 | 圆形科技按钮(旋转亮弧 + 反向刻度点 + 内圆) | DOM + SVG | | LbButton02 | 胶囊状态按钮(渐变 + 外发光,可带图标) | 纯 CSS | | LbButton03 | 斜角刻齿按钮(斜六边形 + 顶部凹槽刻齿,三态配色各自独立) | DOM + SVG |

排名 —— TOP-N 列表类

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbRank01 | 排名条 01(名次徽章 + 名称 + 角括号 + 类别 + 进度条,前三名专色) | 纯 CSS |

边框 —— 容器类,内容放默认插槽,边框自适应任意宽高

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbBorder01 | 台阶标题边框(顶边左段抬高成标题台 + 斜条纹 + 四角括号 + 渐隐亮线 + 内发光) | 纯 CSS |

标题栏 —— 都默认撑满父容器宽度,做面板抬头用

标题栏组件

| 组件 | 说明 | 实现 | | --- | --- | --- | | LbTitleBar01 | 图标方座 + 斜切条 + 发光标题 + 描述 | 纯 CSS | | LbTitleBar02 | 折线基线 + 光点 + 半透明横带(「数字机房」款) | 纯 CSS | | LbTitleBar03 | 双行标题 + 金框斜带 + 菱形项标,蓝金双色(「攻击队动态」款) | 纯 CSS | | LbTitleBar04 | 双横线夹发光渐变标题 + 橙色箭头(「数据展示」款) | 纯 CSS | | LbTitleBar05 | 角框图标方座 + 斜体大标题 + 拼音副标题 + 块列装饰线(「道路水位」款) | 纯 CSS | | LbTitleBar06 | 图标方座 + 矩形描边条 + 大写斜体小标题(01 的精简同族,纯静态) | 纯 CSS |

「整张 SVG」和「DOM + SVG」的区别:前者只传一个 width 就整卡等比缩放、字号跟着缩, 但插槽里只能放 SVG 元素;后者每个尺寸 prop 各自是 px 要分别调,好处是插槽能放任意 DOM。

除组件之外还导出这些工具(自己写组件时可以复用同一套配色和数值滚动逻辑):

| 导出 | 用途 | | --- | --- | | derivePalette / parseHex / rgbToHsl / hslString | 主色 → 6 档调色板 | | useThemeVars | 主题输入 → 一组内联 CSS 变量 | | useCountUp | 数值滚动(走全局共享 rAF) | | useUid | SVG defs 的实例 id 前缀 | | addTick / removeTick / tickCount | 全局共享的 rAF 循环 | | registerIcon / registerIcons / svgToIconDef / iconNames / getIcon / hasIcon / BUILT_IN_ICONS | 图标注册表,见 icons-registry.md |

许可

MIT