Apply visual effects to text blocks programmatically including drop shadows and stroke outlines.
CE.SDK provides visual effect capabilities for text blocks through the Block API. We can apply drop shadows for depth and stroke outlines for text borders.
This guide covers adding drop shadows and stroke outlines to text blocks programmatically.
Drop Shadows#
We add depth to text with drop shadows using dedicated shadow APIs. We enable with setDropShadowEnabled() and configure color, offset, and blur properties.
// Create a text block with drop shadowconst shadowText = engine.block.create("text");engine.block.replaceText(shadowText, "Drop Shadow");engine.block.setTextFontSize(shadowText, 90);engine.block.setWidthMode(shadowText, "Auto");engine.block.setHeightMode(shadowText, "Auto");engine.block.setPositionX(shadowText, 50);engine.block.setPositionY(shadowText, 50);engine.block.appendChild(page, shadowText);
// Enable and configure drop shadowengine.block.setDropShadowEnabled(shadowText, true);engine.block.setDropShadowColor(shadowText, { r: 0, g: 0, b: 0, a: 0.6,});engine.block.setDropShadowOffsetX(shadowText, 5);engine.block.setDropShadowOffsetY(shadowText, 5);engine.block.setDropShadowBlurRadiusX(shadowText, 10);engine.block.setDropShadowBlurRadiusY(shadowText, 10);The drop shadow API provides control over color, position, and blur. The offset values position the shadow relative to the text, while the blur radius controls shadow softness. Horizontal and vertical blur can be configured independently for asymmetric effects.
Stroke Outlines#
We add a colored border around text using stroke APIs. We enable stroke with setStrokeEnabled(), then configure width, color, style, and position.
// Create a text block with stroke outlineconst outlineText = engine.block.create("text");engine.block.replaceText(outlineText, "Outline");engine.block.setTextFontSize(outlineText, 90);engine.block.setWidthMode(outlineText, "Auto");engine.block.setHeightMode(outlineText, "Auto");engine.block.setPositionX(outlineText, 50);engine.block.setPositionY(outlineText, 180);engine.block.appendChild(page, outlineText);
// Enable and configure strokeengine.block.setStrokeEnabled(outlineText, true);engine.block.setStrokeWidth(outlineText, 2);engine.block.setStrokeColor(outlineText, { r: 0.2, g: 0.4, b: 0.9, a: 1.0,});engine.block.setStrokeStyle(outlineText, "Solid");engine.block.setStrokePosition(outlineText, "Center");The stroke width is specified in pixels. Text blocks use centered stroke positioning. Stroke styles include 'Solid', 'Dashed', 'Dotted', and other line patterns.
API Reference#
| Method | Purpose |
|---|---|
engine.block.supportsDropShadow() | Check if block supports drop shadows |
engine.block.setDropShadowEnabled() | Enable or disable drop shadow |
engine.block.setDropShadowColor() | Set shadow color |
engine.block.setDropShadowOffsetX() | Set horizontal shadow offset |
engine.block.setDropShadowOffsetY() | Set vertical shadow offset |
engine.block.setDropShadowBlurRadiusX() | Set horizontal blur radius |
engine.block.setDropShadowBlurRadiusY() | Set vertical blur radius |
engine.block.setStrokeEnabled() | Enable or disable stroke |
engine.block.setStrokeWidth() | Set stroke width in pixels |
engine.block.setStrokeColor() | Set stroke color |
engine.block.setStrokeStyle() | Set stroke style (Solid, Dashed, etc.) |
Troubleshooting#
Drop shadow not visible: Ensure setDropShadowEnabled() is called after configuring properties. Verify supportsDropShadow() returns true for the block.
Stroke not visible: Ensure setStrokeEnabled() is called with true and stroke width is greater than 0.
Stroke too thick or thin: Adjust the value passed to setStrokeWidth() to control outline thickness.