render-tag 0.1.35 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/path/index.d.ts +5 -4
- package/lib/path/index.d.ts.map +1 -1
- package/lib/path/index.js +62 -38
- package/lib/path/index.js.map +1 -1
- package/lib/render-tag.umd.js +6 -6
- package/lib/render-tag.umd.js.map +1 -1
- package/lib/render.d.ts +5 -6
- package/lib/render.d.ts.map +1 -1
- package/lib/render.js +176 -126
- package/lib/render.js.map +1 -1
- package/lib/shadow.d.ts +32 -0
- package/lib/shadow.d.ts.map +1 -0
- package/lib/shadow.js +190 -0
- package/lib/shadow.js.map +1 -0
- package/lib/types.d.ts +14 -2
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,6 +45,8 @@ function drawLayout(config: DrawConfig): { canvas };
|
|
|
45
45
|
| `height` | auto | Fixed height; auto-sized from content if omitted. |
|
|
46
46
|
| `canvas` | created | Existing target canvas (mutually exclusive with `ctx`). |
|
|
47
47
|
| `ctx` | — | Existing 2D context — no canvas resizing or scaling. |
|
|
48
|
+
| `createCanvas` | browser canvas | Factory `(width, height) => canvas` for shadow composition. Required for shadows outside browsers. |
|
|
49
|
+
| `renderShadows` | `true` | Set `false` to omit CSS and context shadows without allocating shadow buffers. Foreground stays drawing commands in both modes. |
|
|
48
50
|
| `pixelRatio` | `devicePixelRatio` | HiDPI scaling. |
|
|
49
51
|
| `accuracy` | `'performance'` | `'balanced'` uses DOM probes for per-browser line-height accuracy; `'performance'` is pure canvas and consistent cross-browser. |
|
|
50
52
|
|
|
@@ -126,11 +128,68 @@ setDOMParser(new DOMParser()); // once
|
|
|
126
128
|
|
|
127
129
|
const ctx = createCanvas(1, 1).getContext('2d');
|
|
128
130
|
const result = layout({ html, width: 400, ctx }); // ctx is required on Node
|
|
129
|
-
drawLayout({ layout: result, width: 400, ctx: outputCtx });
|
|
131
|
+
drawLayout({ layout: result, width: 400, ctx: outputCtx, createCanvas });
|
|
130
132
|
```
|
|
131
133
|
|
|
132
134
|
Without injection, functions throw with guidance. `accuracy: 'balanced'` needs a real browser DOM and throws on Node — use the default `'performance'`. `render-tag/path` works the same way (`layoutTextOnPath` already takes `ctx`; it re-exports `setDOMParser`).
|
|
133
135
|
|
|
136
|
+
## Shadows
|
|
137
|
+
|
|
138
|
+
`text-shadow` paints behind the combined text fill, stroke and decorations.
|
|
139
|
+
Multiple shadows paint in CSS order (the first listed is on top). Shadows do
|
|
140
|
+
not repaint the foreground or include box backgrounds. Offsets and blur are
|
|
141
|
+
in layout pixels and transform with the text; on a path they use the whole
|
|
142
|
+
path's coordinates, not each glyph's rotated coordinates.
|
|
143
|
+
|
|
144
|
+
An existing `ctx.shadow*` casts one shadow from the completed rendering,
|
|
145
|
+
including backgrounds and CSS shadows. Its offsets and blur retain Canvas 2D's
|
|
146
|
+
device pixel semantics. Combining both intentionally produces both effects.
|
|
147
|
+
Both shadow paths rasterize only the effect. The foreground still uses text,
|
|
148
|
+
stroke and decoration commands, retaining the caller's per-paint opacity and
|
|
149
|
+
blending behavior.
|
|
150
|
+
|
|
151
|
+
Shadow composition uses temporary canvases sized for the painted content,
|
|
152
|
+
including overhanging glyphs and decorations. Node consumers must pass
|
|
153
|
+
`createCanvas` to `render`, `drawLayout`, `drawTextOnPath`, or
|
|
154
|
+
`drawTextOnPathLayout` when using shadows. It must return a fresh canvas
|
|
155
|
+
compatible with the destination context. Drawing without shadows needs no
|
|
156
|
+
scratch canvas. Fonts and blur rasterization can still differ slightly between
|
|
157
|
+
browser engines; these APIs do not promise byte-identical pixels across engines.
|
|
158
|
+
|
|
159
|
+
### PDF and other vector adapters
|
|
160
|
+
|
|
161
|
+
Some consumers pass a Canvas-like proxy that translates drawing commands into
|
|
162
|
+
PDF operations, preserving vector text. The same drawing API works with a
|
|
163
|
+
compatible proxy: render-tag emits shadow images through `drawImage`, then
|
|
164
|
+
foreground text, stroke and decoration commands in the correct paint order.
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
// Requires a compatible Canvas 2D proxy and a raster canvas factory.
|
|
168
|
+
drawLayout({ layout: result, width: 400, ctx: pdfContext, createCanvas });
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
With shadows enabled, the proxy must support Canvas 2D image and transform
|
|
172
|
+
operations, including `drawImage`, `getTransform` and `setTransform`. The adapter
|
|
173
|
+
owns PDF image embedding and must preserve drawing order if embedding is
|
|
174
|
+
asynchronous; render-tag's drawing APIs remain synchronous. The factory supplies
|
|
175
|
+
real raster canvases for shadow composition. The foreground remains drawing
|
|
176
|
+
commands on the destination proxy.
|
|
177
|
+
|
|
178
|
+
For adapters that paint effects separately, use `renderShadows: false`:
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
drawLayout({ layout: result, width: 400, ctx: pdfContext, renderShadows: false });
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
This omits both CSS `text-shadow` and caller-supplied `ctx.shadow*`, allocates no
|
|
185
|
+
shadow canvases, and keeps foreground commands and layout unchanged. It requires
|
|
186
|
+
no image or transform-query APIs. The adapter must provide the omitted effects;
|
|
187
|
+
this option alone does not preserve the appearance of shadowed text.
|
|
188
|
+
|
|
189
|
+
Unsupported proxies fail with guidance when shadows are enabled. Exporters
|
|
190
|
+
remain responsible for matching fonts, opacity, blending and effect placement
|
|
191
|
+
across formats. No separate shadow-layer or preparation API is required.
|
|
192
|
+
|
|
134
193
|
## What it renders
|
|
135
194
|
|
|
136
195
|
Paragraphs, headings, divs, spans · bold, italic, underline, strikethrough, overline · colors, background colors, text-shadow, text-stroke (solid **and gradient**), gradient text · font families, sizes, weights (100–900) · line-height, letter-spacing, text-align (left/center/right/justify) · ordered/unordered lists with nesting · flexbox (row/column, with `flex-grow`/`flex-shrink`/`flex-basis` sized against min- and max-content like the browser), basic tables · `-webkit-line-clamp` · `pre-wrap`, `overflow-wrap: break-word`, soft hyphens · RTL, CJK, emoji.
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RenderConfig, RenderResult, LayoutConfig, LayoutResult, DrawConfig, LayoutLine, AnyCanvas } from './types.js';
|
|
2
2
|
export type { RenderConfig, RenderResult, LayoutConfig, LayoutResult, DrawConfig, LayoutLine };
|
|
3
|
-
export type { LayoutBox, LayoutText, LayoutNode, ResolvedStyle, DecorationEntry, BorderRadius, } from './types.js';
|
|
3
|
+
export type { LayoutBox, LayoutText, LayoutNode, ResolvedStyle, DecorationEntry, BorderRadius, CanvasFactory, ShadowOptions, } from './types.js';
|
|
4
4
|
export { setDOMParser, type DOMParserLike } from './dom.js';
|
|
5
5
|
export { lineBaselineOffset, getFontMetrics, tabStopMetrics } from './layout.js';
|
|
6
6
|
/**
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,UAAU,EACtC,UAAU,EAAE,SAAS,EACtB,MAAM,YAAY,CAAC;AAMpB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAI/F,YAAY,EACV,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,UAAU,EACtC,UAAU,EAAE,SAAS,EACtB,MAAM,YAAY,CAAC;AAMpB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAI/F,YAAY,EACV,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAC/E,aAAa,EAAE,aAAa,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWjF;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA8BzD;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAsCpE;AAID;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAgCzD"}
|
package/lib/index.js
CHANGED
|
@@ -64,7 +64,7 @@ export function drawLayout(config) {
|
|
|
64
64
|
renderCtx = canvas.getContext('2d');
|
|
65
65
|
renderCtx.scale(pixelRatio, pixelRatio);
|
|
66
66
|
}
|
|
67
|
-
renderNode(renderCtx, layoutResult.layoutRoot);
|
|
67
|
+
renderNode(renderCtx, layoutResult.layoutRoot, config);
|
|
68
68
|
return { canvas };
|
|
69
69
|
}
|
|
70
70
|
// ─── render() ────────────────────────────────────────────────────────
|
|
@@ -93,6 +93,8 @@ export function render(config) {
|
|
|
93
93
|
ctx: config.ctx,
|
|
94
94
|
canvas: config.canvas,
|
|
95
95
|
pixelRatio: config.pixelRatio,
|
|
96
|
+
createCanvas: config.createCanvas,
|
|
97
|
+
renderShadows: config.renderShadows,
|
|
96
98
|
});
|
|
97
99
|
return {
|
|
98
100
|
canvas,
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,OAAO,EAAE,YAAY,EAAsB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,yEAAyE;AACzE,oEAAoE;AACpE,0EAA0E;AAC1E,qBAAqB;AACrB,IAAI,iBAAiB,GAAoC,IAAI,CAAC;AAE9D,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,MAAoB;IACzC,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,GAAG,aAAa,EACxB,KAAK,GACN,GAAG,MAAM,CAAC;IAEX,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,SAAS,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,kBAAkB,GAAG,QAAQ,KAAK,UAAU,CAAC;IAEnD,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAExD,2EAA2E;IAC3E,qEAAqE;IACrE,yCAAyC;IACzC,MAAM,UAAU,GACb,MAAM,CAAC,GAA4C;QACpD,CAAC,iBAAiB,KAAjB,iBAAiB,GAAK,wBAAwB,CAAC,IAAI,CAAC,EAAC,CAAC;IACzD,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC;IAElC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACnH,MAAM,WAAW,GAAG,MAAM,IAAI,aAAa,CAAC;IAE5C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,KAAK,EACL,UAAU,GAAG,UAAU,CAAC,gBAAgB,IAAI,CAAC,GAC9C,GAAG,MAAM,CAAC;IAEX,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,MAAiB,CAAC;IACtB,IAAI,SAAqB,CAAC;IAE1B,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;QACpD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACrB,MAA4B,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;YACxD,MAA4B,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,CAAC;QAClE,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAgB,CAAC;QACnD,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,SAAqC,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEnF,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,wEAAwE;AAExE;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAoB;IACzC,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC,CAAC;IAChG,CAAC;IAED,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,YAAY,GAAG,MAAM,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;QACN,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,KAAK,EAAE,YAAY,CAAC,KAAK;KAC1B,CAAC;AACJ,CAAC"}
|
package/lib/path/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* font-family / size / weight / style / kerning
|
|
22
22
|
* color, -webkit-text-fill-color, -webkit-text-stroke (width + color), paint-order
|
|
23
23
|
* background-color (span backgrounds drawn as curve-following polygons)
|
|
24
|
-
* text-shadow (
|
|
24
|
+
* text-shadow (in path coordinates; multi-shadow supported)
|
|
25
25
|
* text-decoration: underline / line-through / overline (solid/dotted/dashed/double/wavy)
|
|
26
26
|
* text-decoration-color, text-decoration-style
|
|
27
27
|
* background-clip:text + background-image:linear-gradient (gradient flows along the path)
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* Arabic / Hebrew / Indic / Thai / Khmer / Myanmar — shaped runs are
|
|
30
30
|
* rendered as a unit so cursive joining and reordering work correctly.
|
|
31
31
|
*/
|
|
32
|
+
import type { ShadowOptions } from '../types.js';
|
|
32
33
|
import { type PathLike } from './svg-path.js';
|
|
33
34
|
import { type AlignMode, type GlyphPlacement, type TextBaseline } from './glyph-layout.js';
|
|
34
35
|
export type { PathLike, GlyphPlacement, AlignMode, TextBaseline };
|
|
@@ -88,13 +89,13 @@ export interface TextOnPathLayout {
|
|
|
88
89
|
/** The textBaseline mode the layout was computed with. */
|
|
89
90
|
textBaseline: TextBaseline;
|
|
90
91
|
}
|
|
91
|
-
export interface DrawTextOnPathLayoutConfig {
|
|
92
|
+
export interface DrawTextOnPathLayoutConfig extends ShadowOptions {
|
|
92
93
|
/** Result from layoutTextOnPath(). */
|
|
93
94
|
layout: TextOnPathLayout;
|
|
94
95
|
/** Destination 2D context. Saved+restored around the whole batch. */
|
|
95
96
|
ctx: CanvasRenderingContext2D;
|
|
96
97
|
}
|
|
97
|
-
export interface DrawTextOnPathConfig {
|
|
98
|
+
export interface DrawTextOnPathConfig extends ShadowOptions {
|
|
98
99
|
/** Rich-text HTML (same dialect as render-tag's main API). */
|
|
99
100
|
html: string;
|
|
100
101
|
/** SVG path 'd' attribute string, or a PathLike implementation. */
|
|
@@ -123,7 +124,7 @@ export declare function layoutTextOnPath(config: LayoutTextOnPathConfig): TextOn
|
|
|
123
124
|
*
|
|
124
125
|
* Rendering passes (matching CSS painting order):
|
|
125
126
|
* 1. Span backgrounds (background-color, curve-following polygons)
|
|
126
|
-
* 2. Text shadows (
|
|
127
|
+
* 2. Text shadows (combined glyphs and decorations, in path coordinates)
|
|
127
128
|
* 3. Glyph fill + stroke (paint-order aware; gradient text via slicing)
|
|
128
129
|
* 4. Text decoration (underline / line-through / overline)
|
|
129
130
|
*
|
package/lib/path/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/path/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/path/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAkC,MAAM,aAAa,CAAC;AAcjF,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG7D,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,GAAG,CAAC,EAAE,wBAAwB,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,0DAA0D;IAC1D,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,sCAAsC;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,GAAG,EAAE,wBAAwB,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,8BAA8B;IAC9B,GAAG,EAAE,wBAAwB,CAAC;IAC9B,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAiBjF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CA8D7E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAUjF"}
|
package/lib/path/index.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* font-family / size / weight / style / kerning
|
|
22
22
|
* color, -webkit-text-fill-color, -webkit-text-stroke (width + color), paint-order
|
|
23
23
|
* background-color (span backgrounds drawn as curve-following polygons)
|
|
24
|
-
* text-shadow (
|
|
24
|
+
* text-shadow (in path coordinates; multi-shadow supported)
|
|
25
25
|
* text-decoration: underline / line-through / overline (solid/dotted/dashed/double/wavy)
|
|
26
26
|
* text-decoration-color, text-decoration-style
|
|
27
27
|
* background-clip:text + background-image:linear-gradient (gradient flows along the path)
|
|
@@ -33,6 +33,7 @@ import { parseHTML } from '../parse.js';
|
|
|
33
33
|
import { resolveStylesFromCSS, paintOrderHasStrokeFirst } from '../css-resolver.js';
|
|
34
34
|
import { applyFont, isTransparent, hasTextClip, getFontMetrics, sameDecorationBand } from '../layout.js';
|
|
35
35
|
import { parseTextShadows, parseLinearGradient, drawDecorationLine, bandWidthFor, explicitUnderlineDelta, textFillColor, applyTextStroke, } from '../render.js';
|
|
36
|
+
import { paintTextShadows, shadowBounds, textPaintBounds, transformBounds, unionBounds, withCanvasShadow, withoutCanvasShadow } from '../shadow.js';
|
|
36
37
|
import { pathFromString } from './svg-path.js';
|
|
37
38
|
import { flattenSegments, layoutGlyphsOnPath, baselineLocalY, } from './glyph-layout.js';
|
|
38
39
|
export { setDOMParser } from '../dom.js';
|
|
@@ -70,7 +71,7 @@ export function layoutTextOnPath(config) {
|
|
|
70
71
|
*
|
|
71
72
|
* Rendering passes (matching CSS painting order):
|
|
72
73
|
* 1. Span backgrounds (background-color, curve-following polygons)
|
|
73
|
-
* 2. Text shadows (
|
|
74
|
+
* 2. Text shadows (combined glyphs and decorations, in path coordinates)
|
|
74
75
|
* 3. Glyph fill + stroke (paint-order aware; gradient text via slicing)
|
|
75
76
|
* 4. Text decoration (underline / line-through / overline)
|
|
76
77
|
*
|
|
@@ -83,9 +84,61 @@ export function drawTextOnPathLayout(config) {
|
|
|
83
84
|
const tb = layout.textBaseline;
|
|
84
85
|
ctx.save();
|
|
85
86
|
try {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
if (config.renderShadows === false) {
|
|
88
|
+
withoutCanvasShadow(ctx, target => {
|
|
89
|
+
drawBackgrounds(target, layout.glyphs, tb);
|
|
90
|
+
drawGlyphs(target, layout.glyphs, layout.textWidth, tb);
|
|
91
|
+
drawDecorations(target, layout.glyphs, layout.textWidth, tb);
|
|
92
|
+
});
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const groups = new Map();
|
|
96
|
+
let previousKey = '';
|
|
97
|
+
for (const glyph of layout.glyphs) {
|
|
98
|
+
const shadows = parseTextShadows(glyph.style.textShadow, glyph.style.color);
|
|
99
|
+
const key = shadows.length ? JSON.stringify(shadows) : '';
|
|
100
|
+
if (key) {
|
|
101
|
+
let group = groups.get(key);
|
|
102
|
+
if (!group) {
|
|
103
|
+
group = { glyphs: [], shadows };
|
|
104
|
+
groups.set(key, group);
|
|
105
|
+
}
|
|
106
|
+
// Keep gaps: decorations must not bridge unrelated spans.
|
|
107
|
+
if (key !== previousKey)
|
|
108
|
+
group.glyphs.push([]);
|
|
109
|
+
group.glyphs[group.glyphs.length - 1].push(glyph);
|
|
110
|
+
}
|
|
111
|
+
previousKey = key;
|
|
112
|
+
}
|
|
113
|
+
const boundsFor = (glyphs) => glyphs.map(g => {
|
|
114
|
+
const baseY = baselineLocalY(tb, g.ascent, g.descent);
|
|
115
|
+
ctx.save();
|
|
116
|
+
applyFont(ctx, g.style);
|
|
117
|
+
ctx.textBaseline = 'alphabetic';
|
|
118
|
+
ctx.letterSpacing = `${g.style.letterSpacing || 0}px`;
|
|
119
|
+
const ink = textPaintBounds(ctx, g.char, g.style, 0, baseY, g.width);
|
|
120
|
+
ctx.restore();
|
|
121
|
+
const box = unionBounds(ink, { x: 0, y: baseY - g.ascent, width: g.width, height: g.ascent + g.descent });
|
|
122
|
+
const c = Math.cos(g.rotation), s = Math.sin(g.rotation);
|
|
123
|
+
return transformBounds(box, { a: c, b: s, c: -s, d: c, e: g.x, f: g.y });
|
|
124
|
+
}).reduce(unionBounds);
|
|
125
|
+
const foreground = (target, glyphs) => {
|
|
126
|
+
drawGlyphs(target, glyphs, layout.textWidth, tb);
|
|
127
|
+
drawDecorations(target, glyphs, layout.textWidth, tb);
|
|
128
|
+
};
|
|
129
|
+
withCanvasShadow(ctx, () => {
|
|
130
|
+
let bounds = boundsFor(layout.glyphs);
|
|
131
|
+
for (const group of groups.values()) {
|
|
132
|
+
bounds = unionBounds(bounds, shadowBounds(boundsFor(group.glyphs.flat()), group.shadows));
|
|
133
|
+
}
|
|
134
|
+
return bounds;
|
|
135
|
+
}, target => {
|
|
136
|
+
drawBackgrounds(target, layout.glyphs, tb);
|
|
137
|
+
for (const group of groups.values()) {
|
|
138
|
+
paintTextShadows(target, boundsFor(group.glyphs.flat()), group.shadows, mask => group.glyphs.forEach(glyphs => foreground(mask, glyphs)), config.createCanvas);
|
|
139
|
+
}
|
|
140
|
+
foreground(target, layout.glyphs);
|
|
141
|
+
}, config.createCanvas);
|
|
89
142
|
}
|
|
90
143
|
finally {
|
|
91
144
|
ctx.restore();
|
|
@@ -102,7 +155,7 @@ export function drawTextOnPath(config) {
|
|
|
102
155
|
textBaseline: config.textBaseline,
|
|
103
156
|
ctx: config.ctx,
|
|
104
157
|
});
|
|
105
|
-
drawTextOnPathLayout({ layout, ctx: config.ctx });
|
|
158
|
+
drawTextOnPathLayout({ layout, ctx: config.ctx, createCanvas: config.createCanvas, renderShadows: config.renderShadows });
|
|
106
159
|
return layout;
|
|
107
160
|
}
|
|
108
161
|
function createMeasureCtx() {
|
|
@@ -214,7 +267,7 @@ function fillGlyphPolygon(ctx, group, fill, tb) {
|
|
|
214
267
|
ctx.fill();
|
|
215
268
|
ctx.restore();
|
|
216
269
|
}
|
|
217
|
-
// ───
|
|
270
|
+
// ─── Glyph fill/stroke ─────────────────────────────
|
|
218
271
|
/** True when the glyph's own fill paints nothing (both transparency channels). */
|
|
219
272
|
function isFillTransparent(style) {
|
|
220
273
|
// Mirror the main renderer's transparency check: EITHER -webkit-text-fill-color
|
|
@@ -265,12 +318,8 @@ function effectiveFillPaint(ctx, g, textWidth, baseY) {
|
|
|
265
318
|
}
|
|
266
319
|
return isFillTransparent(g.style) ? null : textFillColor(g.style);
|
|
267
320
|
}
|
|
268
|
-
/**
|
|
269
|
-
|
|
270
|
-
* any), then fill (possibly through a sliced gradient) and stroke per
|
|
271
|
-
* paint-order.
|
|
272
|
-
*/
|
|
273
|
-
function drawShadowsAndGlyphs(ctx, glyphs, textWidth, tb) {
|
|
321
|
+
/** Paint glyph fill and stroke without shadows. */
|
|
322
|
+
function drawGlyphs(ctx, glyphs, textWidth, tb) {
|
|
274
323
|
for (const g of glyphs) {
|
|
275
324
|
ctx.save();
|
|
276
325
|
ctx.translate(g.x, g.y);
|
|
@@ -289,31 +338,6 @@ function drawShadowsAndGlyphs(ctx, glyphs, textWidth, tb) {
|
|
|
289
338
|
const baseY = baselineLocalY(tb, g.ascent, g.descent);
|
|
290
339
|
const fill = effectiveFillPaint(ctx, g, textWidth, baseY);
|
|
291
340
|
const strokeGradient = strokePaintFor(ctx, g, textWidth, baseY);
|
|
292
|
-
const isStroked = g.style.webkitTextStrokeWidth > 0;
|
|
293
|
-
// Shadow pass — drawn underneath the glyph paint. Cast the shadow from
|
|
294
|
-
// what is actually painted: the effective fill (solid or gradient) when
|
|
295
|
-
// visible, and/or the stroke — matching the main renderer. Multi-shadow
|
|
296
|
-
// stacks paint last-listed-first so the first declared shadow is on top.
|
|
297
|
-
const shadows = parseTextShadows(g.style.textShadow);
|
|
298
|
-
if (shadows.length > 0) {
|
|
299
|
-
for (let i = shadows.length - 1; i >= 0; i--) {
|
|
300
|
-
const sh = shadows[i];
|
|
301
|
-
ctx.save();
|
|
302
|
-
ctx.shadowOffsetX = sh.offsetX;
|
|
303
|
-
ctx.shadowOffsetY = sh.offsetY;
|
|
304
|
-
ctx.shadowBlur = sh.blur;
|
|
305
|
-
ctx.shadowColor = sh.color;
|
|
306
|
-
if (fill) {
|
|
307
|
-
ctx.fillStyle = fill;
|
|
308
|
-
ctx.fillText(g.char, 0, baseY);
|
|
309
|
-
}
|
|
310
|
-
if (isStroked) {
|
|
311
|
-
applyTextStroke(ctx, g.style, strokeGradient);
|
|
312
|
-
ctx.strokeText(g.char, 0, baseY);
|
|
313
|
-
}
|
|
314
|
-
ctx.restore();
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
341
|
drawGlyphFillAndStroke(ctx, g, baseY, fill, strokeGradient);
|
|
318
342
|
ctx.restore();
|
|
319
343
|
}
|
package/lib/path/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/path/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/path/index.ts"],"names":[],"mappings":"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"}
|