Files
SayIt/client/tailwind.config.cjs
T
crosswk 4c7605e5f0 feat: 0.1.4 — 本地识别换代,AI 服务与设置页重做
新增
- 本地识别改用 transcribe.cpp(GGUF/ggml):可选模型从 2 个扩到 5 个
  (SenseVoice Small、Fun-ASR Nano、Qwen3-ASR 0.6B/1.7B/1.7B 高精度),
  支持 Vulkan 显卡加速并可手动切回 CPU,加载后预热一次推理,空闲可卸载
- AI 服务改为卡片式管理:一张卡一套完整配置,可测连通性与响应延迟并分档留痕
- 应用 Prompt 规则支持用户自建,含「检测当前应用」自动填进程名
- 快捷键支持 Ctrl+Win 这类纯修饰键组合,三类快捷键之间做冲突检测
- 配置导出可按需选择,导入前给出新增/更新/跳过的变更预览
- 热词组、文本替换、润色模式支持拖拽排序

变更
- 移除 sherpa-onnx:安装体积与首次响应都由新引擎接管,旧 ONNX 权重开机自动回收
- 「格式规范」仅在未开 AI 整理时生效,开启后排版交给 AI;文本替换始终生效
- 单次录音上限提前在设置页说明,最后一分钟显示剩余时间
- 全应用统一称「AI 整理」(此前有三种叫法)

修复
- 本地模式下模型未下载时仍能开始录音
- 历史记录可同时播放多条录音
- 设置页开关与选择器在读回已保存值时出现一次跳变
- 应用规则误匹配(在 Outlook 中写标题含 Teams 的邮件被 Teams 规则抢走)
- 弹窗遮罩未覆盖整个窗口

构建
- 客户端构建新增 CMake 与 Vulkan SDK 前置,README/CONTRIBUTING 已同步
- 打包随附 VC++ 运行库(app-local),并在发版前校验安装包内容

详细变更见 CHANGELOG.md。
2026-08-06 21:40:32 +08:00

89 lines
3.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: ["class"],
content: ["./index.html", "./overlay.html", "./src/**/*.{ts,tsx}"],
theme: {
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
primary: {
DEFAULT: "hsl(var(--primary))",
foreground: "hsl(var(--primary-foreground))",
},
secondary: {
DEFAULT: "hsl(var(--secondary))",
foreground: "hsl(var(--secondary-foreground))",
},
destructive: {
DEFAULT: "hsl(var(--destructive))",
foreground: "hsl(var(--destructive-foreground))",
// strong = 直接画在页面底色上的文字色(对比度达标版),见 src/themes/types.ts
strong: "hsl(var(--destructive-strong))",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
// 区域色
sidebar: {
DEFAULT: "hsl(var(--sidebar-bg))",
border: "hsl(var(--sidebar-border))",
"item-active": "hsl(var(--sidebar-item-active-bg))",
"item-hover": "hsl(var(--sidebar-item-hover-bg))",
text: "hsl(var(--sidebar-text))",
"text-active": "hsl(var(--sidebar-text-active))",
},
titlebar: {
DEFAULT: "hsl(var(--titlebar-bg))",
text: "hsl(var(--titlebar-text))",
"close-hover": "hsl(var(--titlebar-close-hover-bg))",
"close-hover-text": "hsl(var(--titlebar-close-hover-text))",
},
// 表单控件色
"input-bg": "hsl(var(--input-bg))",
"input-border": "hsl(var(--input-border))",
"input-focus-border": "hsl(var(--input-focus-border))",
"input-focus-ring": "hsl(var(--input-focus-ring))",
"input-placeholder": "hsl(var(--input-placeholder))",
// 状态色。三个变体的分工见 src/themes/types.ts:
// DEFAULT = 色块本体(圆点 / 进度条 / 10% 淡底)
// foreground = 压在色块本体上的文字
// strong = 直接画在页面或卡片底色上的文字(对比度 ≥4.5:1)
success: {
DEFAULT: "hsl(var(--success))",
foreground: "hsl(var(--success-foreground))",
strong: "hsl(var(--success-strong))",
},
warning: {
DEFAULT: "hsl(var(--warning))",
foreground: "hsl(var(--warning-foreground))",
strong: "hsl(var(--warning-strong))",
},
info: {
DEFAULT: "hsl(var(--info))",
foreground: "hsl(var(--info-foreground))",
strong: "hsl(var(--info-strong))",
},
},
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
},
},
plugins: [require("tailwindcss-animate")],
}