liquidliang
574e17eb61
优化
2026-01-09 17:53:08 +08:00
liquidliang and Claude Sonnet 4.5
057fdef0f4
feat(editor): 完善文本属性面板和字体管理系统
...
## 新增功能
### 字体管理服务 (font-manager-service.ts)
- 自动提取画布中使用的字体
- 画布初始化时预加载已使用的字体
- 支持系统字体和 Google Fonts
- 字体预览图管理
- 使用 link 标签加载字体,由 Service Worker 自动缓存
### Service Worker 字体缓存
- 拦截 Google Fonts CSS 和字体文件请求
- Cache-First 策略,优先从缓存读取
- 自动缓存字体文件,支持离线使用
- 应用层无感知的缓存管理
### 文本属性面板增强
- 集成字体管理服务
- 预加载 Google Fonts,提升用户体验
- 优化字体选择器性能
- 支持字体加载状态显示
## 技术实现
### 字体加载流程
```
画布加载
↓
提取使用的字体 (extractFontsFromBoard)
↓
预加载字体 (preloadBoardFonts)
↓
Service Worker 拦截请求
↓
缓存/返回字体文件
↓
渲染文本
```
### 缓存策略
- 使用 Service Worker Cache API
- Cache-First 策略
- 字体文件永久缓存
- 支持离线访问
## 文件变更
### 新增文件
- `packages/drawnix/src/services/font-manager-service.ts` - 字体管理服务
- `packages/drawnix/src/constants/text-effects.ts` - 字体配置
- `packages/drawnix/src/types/text-effects.types.ts` - 类型定义
- `packages/drawnix/src/utils/text-effects-utils.ts` - 工具函数
- `packages/drawnix/src/transforms/text-effects.ts` - 文本特效转换
### 修改文件
- `apps/web/src/sw/index.ts` - 添加字体缓存逻辑
- `packages/drawnix/src/drawnix.tsx` - 集成字体预加载
- `packages/drawnix/src/components/toolbar/popup-toolbar/text-property-panel.tsx` - 使用字体管理服务
- `CLAUDE.md` - 更新文档,记录字体管理功能
## 相关文档
- 字体管理服务: `packages/drawnix/src/services/font-manager-service.ts`
- Service Worker 字体缓存: `apps/web/src/sw/index.ts`
- 字体配置: `packages/drawnix/src/constants/text-effects.ts`
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-09 16:32:12 +08:00
gongchengtu
b606db4139
fix: 优化缓存机制、工具栏交互和AI图片生成功能
...
### 缓存功能优化
- fix(useMediaCache): 修复缓存完成后URL不实时切换的问题,添加缓存状态订阅
- fix(TaskQueuePanel): 修复预览对话框不使用缓存URL的问题,新增PreviewContent组件
### AI图片生成
- feat(aspect-ratio): 添加"自动"比例选项,让模型根据提示词自动决定最佳比例
- feat(generation-api): 自动比例时不传递aspectRatio参数给API
### 工具栏交互优化
- fix(popup-toolbar): 工具栏位置改为选中元素顶部边缘中点,与Figma/Excalidraw一致
- fix(tool-button): 将原生title替换为TDesign Tooltip,延迟从1-2秒优化到300ms
### 其他
- feat(url-cache-service): 新增URL缓存服务
- fix(image/video): filesystem兜底处理
2025-12-01 21:33:45 +08:00
liquid
c2d21f1d61
feat(工具栏): 添加字体大小选择功能
...
- 在弹出工具栏中新增字体大小选择按钮
- 支持预设大小和自定义输入
- 修改文本组件样式以支持不同字体大小
- 更新文档说明插入位置规则
2025-09-06 12:18:43 +08:00
pubuzhixing8
55e7d67c2d
fix(text): resolve text can not auto break line #173 #169
2025-07-10 14:24:28 +08:00
pubuzhixing8
edd8e69511
fix(text): set whiteSpace: pre to avoid \n is ineffectual ( #165 )
2025-07-02 22:36:58 +08:00
pubuzhixing8
e08b234255
fix(text): allow scroll to show all text ( #156 )
2025-06-26 19:23:52 +08:00
pubuzhixing8
eede6bdfbf
Link for text ( #145 )
...
* feat(link): support link plugin in react-text and support text link function for drawnix
* chore: lint test
* chore: improve text for link
* chore: fix lint
* feat: improve link-popup state
* feat: update link-popup position when scrolling
2025-06-09 23:33:02 +08:00
pubuzhixing8
97ab1d469c
feat(text): support insertSoftBreak for text #136
2025-05-16 18:12:10 +08:00
pubuzhixing8
2c8f389d69
fix(text): fix text can not display correctly on windows 10 chrome env #99 ( #100 )
2025-03-12 10:28:08 +08:00
pubuzhixing8
0e302aa914
feat(text): support update text from outside ( #58 )
2024-12-12 19:47:07 +08:00
pubuzhixing8
ee78a40282
fix(text): fix text can not editing ( #52 )
...
I don't know why 😂
2024-12-09 19:07:48 +08:00
pubuzhixing8
602fc3b421
build: fix ci error and disabled e2e-ci(because deps error) ( #49 )
2024-12-07 19:13:57 +08:00
pubuzhixing8
b74abc1e98
fix(text): resolve with-text build error ( #41 )
2024-12-02 19:43:43 +08:00
pubuzhixing8
7be01aced3
feat(text): support soft break ( #39 )
2024-12-02 18:41:54 +08:00
pubuzhixing8
4b2d964921
feat(active-toolbar): support font color property
2024-10-01 22:03:32 +08:00
pubuzhixing8
ecfe3cda3b
feat: import styles
2024-06-18 21:09:17 +08:00
pubuzhixing8
117e5a8b2f
feat(drawnix-board): initialize drawnix board
2024-06-18 14:00:59 +08:00
pubuzhixing8
397d865fad
feat(drawnix): init drawnix package
2024-06-17 20:45:21 +08:00