|
5 | 5 | ## ✨ 特性 |
6 | 6 |
|
7 | 7 | - **Flexbox 布局引擎** - 支持完整的 Flexbox 布局,包括方向、对齐、间距等 |
8 | | -- **组件化渲染** - 提供 Box、Text、Image、Svg、Stack 等组件 |
| 8 | +- **组件化渲染** - 提供 Box、Text、Image、Svg、Stack、RichText、CustomDraw、Transform 等组件 |
9 | 9 | - **丰富的样式支持** - 渐变、阴影、边框、圆角等 |
10 | | -- **文本排版** - 自动换行、省略号、行高控制等 |
| 10 | +- **文本排版** - 自动换行、省略号、行高控制、富文本支持等 |
11 | 11 | - **SVG 图形** - 支持矩形、圆形、椭圆、路径等 SVG 图形 |
| 12 | +- **2D 变换** - 支持旋转、倾斜等 2D 变换操作 |
| 13 | +- **自定义绘制** - 支持自定义 Canvas 绘制逻辑 |
12 | 14 | - **跨平台** - 支持浏览器和 Node.js 环境 |
13 | 15 | - **TypeScript** - 完整的类型支持 |
14 | 16 |
|
@@ -222,6 +224,44 @@ Stack({ |
222 | 224 | }); |
223 | 225 | ``` |
224 | 226 |
|
| 227 | +### Transform |
| 228 | + |
| 229 | +2D 变换组件,支持旋转、倾斜等变换操作。 |
| 230 | + |
| 231 | +```typescript |
| 232 | +Transform({ |
| 233 | + children: Box({ |
| 234 | + width: 100, |
| 235 | + height: 100, |
| 236 | + background: "#667eea", |
| 237 | + }), |
| 238 | + transform: { |
| 239 | + rotate: Math.PI / 4, // 旋转 45 度 |
| 240 | + }, |
| 241 | + transformOrigin: ["50%", "50%"], // 变换原点 |
| 242 | +}); |
| 243 | +``` |
| 244 | + |
| 245 | +### CustomDraw |
| 246 | + |
| 247 | +自定义绘制组件,提供原生 Canvas 上下文进行自定义绘制。 |
| 248 | + |
| 249 | +```typescript |
| 250 | +CustomDraw({ |
| 251 | + width: 200, |
| 252 | + height: 100, |
| 253 | + draw: (ctx, options) => { |
| 254 | + // 使用原生 Canvas API 进行绘制 |
| 255 | + ctx.fillStyle = "#667eea"; |
| 256 | + ctx.fillRect(10, 10, 180, 80); |
| 257 | + ctx.fillStyle = "#ffffff"; |
| 258 | + ctx.font = "bold 16px sans-serif"; |
| 259 | + ctx.textAlign = "center"; |
| 260 | + ctx.fillText("Custom Draw", 100, 60); |
| 261 | + }, |
| 262 | +}); |
| 263 | +``` |
| 264 | + |
225 | 265 | ## 🎨 样式 |
226 | 266 |
|
227 | 267 | ### 尺寸 |
@@ -373,6 +413,9 @@ console.log(layoutNode.layout.y); // 0 |
373 | 413 |
|
374 | 414 | - [demo.ts](examples/demo.ts) - 浏览器环境演示 |
375 | 415 | - [card.ts](examples/card.ts) - Node.js 环境卡片示例 |
| 416 | +- [richtext.ts](examples/richtext.ts) - 富文本示例 |
| 417 | +- [transform.ts](examples/transform.ts) - 2D 变换示例 |
| 418 | +- [customdraw.ts](examples/customdraw.ts) - 自定义绘制示例 |
376 | 419 |
|
377 | 420 | ## 🤝 贡献 |
378 | 421 |
|
|
0 commit comments