5 种色调、3 种尺寸,外加 loading、禁用与图标按钮。按下会位移,而不是弹一下。
HANDCRAFTED PIXEL UI KIT · EST. 2026
CHUNKY PIXELS. SERIOUS INTERFACES.
像素风的外壳,生产级的里子。16 个可访问的 Vue 3 组件、一份独立的 CSS + JS 运行时——表单、标签页、对话框、菜单和 Toast 全部开箱即用,零运行时依赖,可主题化,离线也能跑。
git clone https://github.com/azwc/PixelSmith.git
cd PixelSmith && pnpm install && pnpm build
源码项目,未发布到 npm / pnpm registry;本地构建后使用 dist/ 产物。
- VUE COMPONENTS
- 16
- RUNTIME DEPS
- 0
- THEMES
- 02
- VANILLA JS
- 13KB
~/PixelSmith $ pnpm build
✔ 16 components compiled in 0.42s
[14:32:01] style tokens loaded · 96 variables
[14:32:01] runtime mounted · tabs / modal / dropdown
# 这些按钮是真的,点一下试试
$_
THE COMPONENT LAB
EVERY CONTROL.
HAND-CUT.
原生控件优先,标签、提示与错误态都已接线,ARIA 由组件负责。
面板隐藏时保留 DOM 状态,方向键、Home、End 全部可用。视觉上只有硬边框、阶梯阴影和零圆角。
一行 data-pix="tabs" 声明,运行时自动接管 ARIA、键盘与面板切换。Vue 侧则是 <PxTabs>。
roving tabindex + aria-selected
,焦点永远不会掉进虚空。所有交互控件都有 3px 焦点环。
声明式标签页,运行时不依赖任何框架。
模态、菜单、Toast 与 tooltip,键盘和焦点都已安排明白。
ALL SYSTEMS NOMINAL
分段进度、像素 spinner 和 inline alert,状态一眼可读。
| PLAYER | CLASS | SCORE | STREAK | STATUS |
|---|---|---|---|---|
| NOVA | RANGER | 9,840 | 12x | ONLINE |
| BYTE | MAGE | 8,720 | 08x | ONLINE |
| ECHO | ROGUE | 7,410 | 05x | AWAY |
| GLITCH | TANK | 6,980 | 03x | ONLINE |
斑马纹、数字对齐、头像与状态徽章——直接可用的数据表。
BUILT TO BE USED
PIXEL ART.
PRODUCTION GRADE.
16 VUE COMPONENTS
按钮、表单、标签页、对话框、菜单、Toast、表格……类型化 props、slots 和原生事件,一个插件全量注册。
TYPED PROPS · SLOTSSTANDALONE CSS + JS
先本地构建,再把 dist/ 的 CSS + JS 放进页面。数据属性挂载标签页、对话框和菜单,不需要打包器接入。
LOCAL DIST · IIFETOKEN-BASED THEMING
每个颜色、边框和阴影都是 CSS 自定义属性。覆盖几个变量,就是一套新皮肤,不需要重新编译。
CSS CUSTOM PROPERTIESTWO THEMES, ONE SYSTEM
data-pix-theme 一切即换,默认深色。没有 FOUC,也没有被写死的颜色。
DARK · LIGHTEMBEDDED PIXEL FONTS
Press Start 2P 与 VT323 以 base64 内嵌进 CSS,零字体请求,离线也完整。
SIL OFL 1.1 · NO CDNFOCUS MANAGEMENT
3px 焦点环、焦点陷阱、roving tabindex、Escape 关闭、滚动锁定,并尊重 prefers-reduced-motion。
KEYBOARD FIRSTMIT LICENSED
商用、二次开发、私有部署都可以。保留版权声明即可,没有附加条款。
FREE TO SHIPZERO RUNTIME DEPS
Vue 只是可选的 peer dependency;vanilla IIFE 包约 13KB,gzip 后约 4.4KB。
13KB · 4.4KB GZIPQUICK START / 快速开始
TWO MODES.
ONE SOUL.
git clone https://github.com/azwc/PixelSmith.git
cd PixelSmith && pnpm install && pnpm build
从本地源码注册一次,全量可用;也可以按需 import 单个组件。
import { createApp } from 'vue'
import PixelSmith from '../PixelSmith/src/vue'
import '../PixelSmith/src/styles/index.css'
import App from './App.vue'
createApp(App)
.use(PixelSmith)
.mount('#app')
SOURCE IMPORT
先本地构建,再把 dist/ 里的两个文件放进页面。data-pix 负责声明式行为,window.PixelUI 负责命令式调用。
<link rel="stylesheet" href="./dist/pixelsmith.css" />
<script src="./dist/pixelsmith.js"></script>
<button class="pix-btn pix-btn--primary"
data-pix-open="hello-modal">
SAY HELLO
</button>
<script>
PixelUI.toast({
tone: 'success',
title: 'Hello',
message: 'Zero dependencies.'
})
</script>
STATIC HOSTING READY
克隆仓库,在本地安装开发依赖并构建出 dist/;没有可用的 registry 安装包。
Vue 直接 import 本地源码;vanilla 从 dist/ 引入 link + script,数据属性自动挂载。
纯静态交付,无 API、无追踪、无运行时依赖。字体已内嵌,离线可用。
THEME SYSTEM / 主题系统
ONE TOKEN.
EVERY PIXEL.
覆盖 --pix-primary、--pix-border
或 --pix-shadow-size 就能换掉整套外观,不需要重新构建。
两款字体均已以 base64 形式内嵌进 pixelsmith.css,页面不会发起任何字体网络请求。授权详情见
FONT-LICENSES.md。
- 默认深色,
data-pix-theme="light"切换 - 主题选择写入 localStorage,刷新后保持
- 遵循
prefers-reduced-motion - 仅使用 CSS 自定义属性,无运行时样式注入