feat: 骨架——Vite + Vue3 + Fabric v7,左工作区右侧栏

共享外壳与类型契约,四条并行开发线在此之上各自填空:
- types.ts 是唯一的跨线接口,并行期间冻结
- editor/ 画布单例、选中态、尺寸预设与比例锁
- Sidebar 按选中对象切换面板,五个面板位已接好
- fonts/ filters/ sources/ io/ 留桩,各线只改自己目录

导出定 WebP:实测 540x287 PNG 134KB vs 1200x630 WebP 23KB。
字体接口挂在 Vite 中间件上,工具只在 dev 下完整可用。
This commit is contained in:
Jz0ojiang
2026-09-04 15:42:27 +08:00
commit 95eeb69ff8
26 changed files with 1390 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
/* 全局样式与设计 token。并行开发期间**只有主控改这个文件**,
* 各面板用这里的变量,不要自带一套颜色。 */
:root {
--bg: #17171a;
--bg2: #1f1f23;
--bg3: #27272c;
--fg: #e8e8ea;
--fg-dim: #9a9aa2;
--line: #33333a;
--accent: #6ea8fe;
--radius: 6px;
--sidebar-w: 320px;
color-scheme: dark;
font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
font-size: 13px;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
background: var(--bg);
color: var(--fg);
}
button {
font: inherit;
color: var(--fg);
background: var(--bg3);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 5px 10px;
cursor: pointer;
}
button:hover {
border-color: var(--accent);
}
input,
select {
font: inherit;
color: var(--fg);
background: var(--bg);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 4px 6px;
width: 100%;
}
input[type="range"] {
padding: 0;
}
label {
display: block;
color: var(--fg-dim);
margin-bottom: 4px;
}
/* 面板通用:一行「标签 + 控件」 */
.field {
margin-bottom: 10px;
}
.row {
display: flex;
gap: 8px;
align-items: center;
}