SanyeHub
高效办公 快乐牛马
没有匹配的工具
文本拆分
文本拆比
文本去重
重复元素
去空行/空格
段落加空行
句子自动换行
英文转写
文本排序
中英混排
标点转换
生成字符
日期生成
名字生成
邮箱生成
文件名生成
SEO 收录检测
简繁转换
符号字符
未检索到字符
时间戳转换
JSON 格式化
图片压缩
图片转格式
图片转 Base64
Base64 转图片
PDF 压缩
PDF 翻译
PPT 压缩
图片裁剪
图片加水印
图片镜像
图片旋转
图片打码
拼长图(横版)
拼长图(竖版)
视频压缩
提取关键帧
证件照换底
字符统计
关键字检索
关于我们
Sanye Hub致力于提供轻量、稳定、易用的在线工具,覆盖文本处理、编程辅助与图片处理等常见工作场景。
我们坚持“打开即用、纯前端优先、尽量本地处理”的原则,降低使用门槛,提升效率。
我们关注
1) 体验统一:颜色、字号、组件、交互保持一致;
2) 隐私安全:多数工具在浏览器本地处理;
3) 长期维护:持续优化功能与兼容性。
隐私政策
我们重视用户隐私。本站多数工具采用浏览器本地处理,您输入或上传的内容原则上不会主动上传服务器。
信息收集与用途
为保障服务稳定,可能记录必要访问日志(如访问时间、页面路径、设备类型、IP 等),仅用于运维与安全审计。
Cookie 与本地存储
本站可能使用 Cookie / LocalStorage / SessionStorage 保存必要状态与偏好设置,您可在浏览器中随时清除。
第三方服务
若页面接入第三方服务,其数据处理行为受第三方隐私政策约束。
用户协议
您访问或使用本站,即视为已阅读并同意本协议。
服务说明
本站提供在线工具服务,具体功能以页面展示为准。我们有权在不另行通知的情况下进行维护、升级或调整。
行为规范
用户不得利用本站从事违法违规行为,不得干扰服务正常运行,不得未经授权抓取或镜像用于商业用途。
责任边界
因网络、设备、浏览器差异等因素造成的中断或误差,本站在法律允许范围内不承担无限责任。
免责声明
本站工具处理结果仅供参考,不构成任何法律、财务、医疗或其他专业建议。
用户应自行判断并承担使用结果所产生的风险与后果,重要数据请务必自行备份。
对因不可抗力、网络故障、设备问题或第三方服务异常导致的损失,本站不承担由此产生的间接责任。
开源与第三方许可
本网站基于开源组件构建。凡使用到需单独声明许可的组件,均在本节披露;未单独列出的依赖以各组件随附许可为准。
- jszip:MIT 或 GPL-3.0-or-later(本项目选用 MIT 协议)
- 其余主要依赖:MIT 协议
- Remix Icon:Apache License 2.0(可免费商用,允许修改与再分发)
如有新增或变更,将随版本在本协议中同步更新。
设置
调整首页大标题「Sanye Hub」的文字颜色,以及首页背景图与视频的不透明度、叠在背景上的遮罩颜色与透明度;设置保存在本机浏览器中。
首页「Sanye Hub」标题
首页氛围
组件库
下列色块、字阶与控件均为线上真实类名与设计令牌的可视化示意;具体契约仍以
style.css、components.css 及源码为准。
色彩令牌
品牌、正文层级、边框与表面、状态色(背景即变量当前值)。
--color-brand-mint
--color-brand-teal
--color-primary
--color-primary-hover
--color-text
--color-text-secondary
--color-text-tertiary
--color-text-placeholder
--color-border
--color-border-light
--color-border-strong
--color-bg
--color-bg-hover
--color-surface-raised
--color-bg-active
--keywordsearch-mark-bg
--color-error
--color-success
--color-warning
--color-result-copy-bg
--color-result-copy
--color-media-black
--color-overlay
--color-toast-bg
--color-focus-ring(示意描边)
--color-text-inverse on --color-primary
字体与字阶
正文 --font-family-sans;等宽示例用 --font-family-mono。
间距刻度
竖条高度固定,宽度对应 --spacing-*。
xs 4
sm 8
md 12
lg 16
xl 20
xxl 24
xxxl 30
huge 40
card-grid
圆角与阴影
与工具卡片、弹层一致的形态变量。
--radius-sm
--radius-md
--radius-lg
--shadow-lg
版心与栅格
中间内容列上限由 --home-content-max 控制(默认 912px;≥1920px 为 1200px;≥2560px 为 1440px),与顶栏中间菜单列 --layout-max-width 同源对齐;窄屏由
calc(100vw - 2 * var(--grid-side-padding)) 限宽防溢出。
示意条宽度:min(var(--layout-max-width), calc(100vw - 2 * var(--grid-side-padding))),与当前视口下全站版心一致。
常用组件
每项右侧「复制片段」可复制 HTML / 说明文本,便于你与 AI 对话时直接粘贴;令牌仍以 style.css 为准。
置于浅灰裁切槽上,与首页卡片区同源 Office 变量(--home-office-*)。
与全站工具页同源;下方教程图标为静态示意(tabindex="-1"),不挂载弹窗。线上工具页在带教程图标时由脚本挂载 .c-tool-guide-hint(样式见 components.css):首轮约 3s 后出现,不透明停留约 1.5s 后缓慢淡出,淡出结束后再间隔约 20s 进入下一轮;常量见 script-core.js(含 TOOL_GUIDE_HINT_FADE_OUT_MS)。
示例工具标题
叠用全站 .modal(遮罩)与 .modal-content(圆角白卡片);无顶栏时面板加 c-dialog-confirm,正文用 c-dialog-confirm__text,底部 .modal-footer 内 btn-clear + btn-primary。样式见 components.css。
静态示意,不含文件选择逻辑。
mask-image + background-color: currentColor,与父级字色一致;修饰类与 Icon/ 下 SVG 同名(定义见 components.css)。
带线稿图标:前导槽位 .btn-lead-icon(与旧名 .btn-primary-lead-icon 等价)+ .c-line-icon.c-line-icon--*;线标为 currentColor,与按钮字色、hover、禁用态一致。
选中态 .chip.active,配套 aria-pressed;互斥单选可用 role="radiogroup"(例:字符统计)。独立开关、可多选叠加(例:图片镜像「水平 / 垂直反转」)同样使用 .chip,由脚本切换 .active。
独立双开关示意(可同时为「选中」):
外壳 .c-textarea-field:textarea.text-input.c-text-input + .c-textarea-field__meta-row(内为可选左对齐 .error-message.c-textarea-field__error 与右对齐 .char-counter,同一行);校验失败给 textarea 叠 .error(边框);字数预警仍用 .char-counter--warn / --danger。
报错 + 边框错误态(示意):
只读浅底(结果区等可叠 .c-textarea-field--readonly):
JSON 格式化等「编辑器 + 脚条」:报错与字数同一行(左 / 右),容器叠 .c-textarea-field-footer(与 #jsonfmt-page .jsonfmt-meta-row--input-footer 叠用)。
与图片压缩 / PDF / PPT / 证件照同源:工具栏左侧一体框(.imgcompress-format--combo.c-outline-field)与右侧操作钮;select.imgcompress-format__select 外包
.c-imgcompress-select-dropdown,由 script-features.js 增强为浅色列表面板;触发钮内 Chevron 为子节点
.c-imgcompress-select-dropdown__chevron 与当前值间距为 :root 的 --c-dropdown-value-chevron-gap(默认 4px);线标尺寸仍由 --select-chevron-* 与
--select-padding-inline-end 等)。一体框在工具栏左侧随内容收缩,上限 --imgcompress-combo-toolbar-max-width;固定整框宽叠
.imgcompress-format--combo-toolbar-doc / --combo-toolbar-media(见 style.css 令牌)。非工具栏一体框若用
input.imgcompress-format__combo-input(关键字、加水印等),占位符与输入仍靠右,见各业务页。
证件照「尺寸 / 底色」等需标签与值区间距 24px且相邻框标签列对齐时,一体框叠
imgcompress-format--combo-toolbar-label-value,并依赖 :root 的
--imgcompress-combo-label-value-gap(默认 24px)与 --imgcompress-combo-label-min-width(默认 2.75rem,按较长标签如「底色」预留)。
证件照工具栏同源(尺寸 + 底色):.idphoto-selects 内两个一体框均叠
imgcompress-format--combo-toolbar-label-value。
不在此重复独立 HTML 示意(与上一节「证件照 · 尺寸 + 底色」中的底色同源)。请直接对照
证件照换底(#idphotoBgSelect)与 图片加水印(#imgwatermarkColor)页面结构;样式见
components.css 中 .c-color-swatch-select;勿将
c-color-swatch-select__select-native 包在 .c-imgcompress-select-dropdown 内。
日期生成等:透明底、仅底边线、右侧 Chevron(见 style.css 与 chargen-form)。首项「请选择」与下划线输入占位一致:脚本在未选时叠 dategen-select--placeholder,字色为 --color-text-placeholder(与 input.chargen-input-underline::placeholder 同源)。
副标题 + 仅底边线输入(字符生成「固定位数 / 固定前后缀」承接区与此同源,叠 .chargen-fixed-input-host / .chargen-digits-input-host)。input.chargen-input-underline::placeholder 与下划线下拉「请选择」均为 --color-text-placeholder。
外观与轨道/拖块尺寸由 style.css 中 :root 的 --range-* 与 input[type="range"].c-range-input 统一控制;组件库仅保留演示区排版(#designlib-page .c-designlib-range-demo*)。
与视频压缩码率/帧率/像素同款:span.videocompress-combo__label 固定左侧,
input.videocompress-combo__input 宽度由脚本按位数计算后,数值与占位符在框内靠右。
框体左右内边距与通用 .c-outline-field 同源:padding: 0 var(--c-outline-field-pad-inline-end) 0 var(--c-outline-field-pad-inline-start)(左略松、右略紧),标签贴左、数值或下拉箭头区可视觉上贴右,与 PDF/打码一体框一致。
SV 与色相条下方用渐变块示意画布;业务页使用 canvas 与脚本绘制(例:#imgpixelateMaskPopover · initImgPixelate)。
一体框输入须带 videocompress-combo__input--color-editor-* 修饰类。
工具栏打开浮层的触发钮:button.videocompress-combo--mask,右侧值区 .imgpixelate-mask-trigger__value 内顺序为色值 # → 色块(先 __hex 后 __swatch),与图片打码页一致。
与去重结果页一致:单钮内用 .dedupe-sort-arrows 叠三层图标,由 data-sort-mode 控制可见层。
空态 .c-gen-result-empty
多行 .c-gen-result-row