@imgly/codesign-mcp 0.1.5 → 0.1.6
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 +51 -1
- package/assets/docs/guide/SKILL.md +45 -53
- package/assets/docs/guide/animation/create/base.md +234 -243
- package/assets/docs/guide/animation/create/text.md +250 -231
- package/assets/docs/guide/animation/create.md +197 -231
- package/assets/docs/guide/animation/edit.md +196 -271
- package/assets/docs/guide/animation/types.md +182 -185
- package/assets/docs/guide/animation.md +9 -6
- package/assets/docs/guide/api/AssetAPI.md +7 -53
- package/assets/docs/guide/api/BlockAPI.md +725 -648
- package/assets/docs/guide/api/CreativeEngine.md +7 -16
- package/assets/docs/guide/api/EditorAPI.md +32 -93
- package/assets/docs/guide/api/EventAPI.md +1 -2
- package/assets/docs/guide/api/SceneAPI.md +47 -98
- package/assets/docs/guide/api/VariableAPI.md +1 -4
- package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
- package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
- package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
- package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
- package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
- package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
- package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
- package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
- package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
- package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
- package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
- package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
- package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
- package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
- package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
- package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
- package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
- package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
- package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
- package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
- package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
- package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
- package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
- package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
- package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
- package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
- package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
- package/assets/docs/guide/api/node/interfaces/font.md +27 -0
- package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
- package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
- package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
- package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
- package/assets/docs/guide/api/node/interfaces/range.md +23 -0
- package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
- package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
- package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/source.md +24 -0
- package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
- package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
- package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
- package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
- package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
- package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
- package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
- package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
- package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
- package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
- package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
- package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
- package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
- package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
- package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
- package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
- package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
- package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
- package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
- package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
- package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
- package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
- package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
- package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
- package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
- package/assets/docs/guide/api/types.md +5 -9
- package/assets/docs/guide/api-reference/overview.md +7 -7
- package/assets/docs/guide/automation/auto-resize.md +263 -300
- package/assets/docs/guide/automation/data-merge.md +246 -275
- package/assets/docs/guide/automation/design-generation.md +102 -31
- package/assets/docs/guide/automation/multi-image-generation.md +758 -0
- package/assets/docs/guide/automation/overview.md +21 -4
- package/assets/docs/guide/automation.md +10 -5
- package/assets/docs/guide/capabilities.md +6 -4
- package/assets/docs/guide/colors/adjust.md +247 -249
- package/assets/docs/guide/colors/apply.md +127 -138
- package/assets/docs/guide/colors/basics.md +126 -150
- package/assets/docs/guide/colors/conversion.md +171 -177
- package/assets/docs/guide/colors/create-color-palette.md +244 -245
- package/assets/docs/guide/colors/extract-colors.md +144 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
- package/assets/docs/guide/colors/for-print/spot.md +521 -578
- package/assets/docs/guide/colors/for-print.md +9 -4
- package/assets/docs/guide/colors/for-screen/p3.md +12 -10
- package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
- package/assets/docs/guide/colors/for-screen.md +9 -4
- package/assets/docs/guide/colors/overview.md +6 -4
- package/assets/docs/guide/colors/replace.md +381 -419
- package/assets/docs/guide/colors.md +9 -4
- package/assets/docs/guide/compatibility.md +7 -5
- package/assets/docs/guide/concepts/architecture.md +17 -15
- package/assets/docs/guide/concepts/assets.md +152 -140
- package/assets/docs/guide/concepts/blocks.md +227 -323
- package/assets/docs/guide/concepts/buffers.md +147 -276
- package/assets/docs/guide/concepts/design-units.md +95 -145
- package/assets/docs/guide/concepts/editing-workflow.md +69 -183
- package/assets/docs/guide/concepts/events.md +80 -122
- package/assets/docs/guide/concepts/headless-mode.md +237 -0
- package/assets/docs/guide/concepts/pages.md +137 -127
- package/assets/docs/guide/concepts/resources.md +156 -217
- package/assets/docs/guide/concepts/scenes.md +191 -210
- package/assets/docs/guide/concepts/templating.md +118 -74
- package/assets/docs/guide/concepts/terminology.md +49 -47
- package/assets/docs/guide/concepts/undo-and-history.md +229 -303
- package/assets/docs/guide/concepts.md +9 -7
- package/assets/docs/guide/configuration.md +252 -380
- package/assets/docs/guide/conversion/overview.md +33 -4
- package/assets/docs/guide/conversion/to-base64.md +127 -167
- package/assets/docs/guide/conversion/to-pdf.md +24 -474
- package/assets/docs/guide/conversion/to-png.md +168 -211
- package/assets/docs/guide/conversion.md +9 -4
- package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
- package/assets/docs/guide/create-audio/audio/loop.md +232 -272
- package/assets/docs/guide/create-composition/add-background.md +237 -239
- package/assets/docs/guide/create-composition/blend-modes.md +118 -209
- package/assets/docs/guide/create-composition/collage.md +538 -320
- package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
- package/assets/docs/guide/create-composition/layer-management.md +219 -257
- package/assets/docs/guide/create-composition/layout.md +513 -315
- package/assets/docs/guide/create-composition/lock-design.md +90 -109
- package/assets/docs/guide/create-composition/multi-page.md +133 -113
- package/assets/docs/guide/create-composition/overview.md +16 -4
- package/assets/docs/guide/create-composition/programmatic.md +288 -344
- package/assets/docs/guide/create-composition.md +10 -5
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
- package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
- package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
- package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
- package/assets/docs/guide/create-templates/from-scratch.md +207 -268
- package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
- package/assets/docs/guide/create-templates/import.md +145 -161
- package/assets/docs/guide/create-templates/lock.md +42 -295
- package/assets/docs/guide/create-templates/overview.md +33 -4
- package/assets/docs/guide/create-templates.md +9 -5
- package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
- package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
- package/assets/docs/guide/create-video/control.md +352 -193
- package/assets/docs/guide/create-video/limitations.md +175 -280
- package/assets/docs/guide/create-video.md +11 -10
- package/assets/docs/guide/edit-image/add-watermark.md +283 -330
- package/assets/docs/guide/edit-image/overview.md +29 -4
- package/assets/docs/guide/edit-image/remove-bg.md +283 -337
- package/assets/docs/guide/edit-image/replace-colors.md +424 -502
- package/assets/docs/guide/edit-image/transform/crop.md +463 -402
- package/assets/docs/guide/edit-image/transform/flip.md +353 -0
- package/assets/docs/guide/edit-image/transform/move.md +143 -100
- package/assets/docs/guide/edit-image/transform/resize.md +118 -88
- package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
- package/assets/docs/guide/edit-image/transform/scale.md +230 -228
- package/assets/docs/guide/edit-image/transform.md +10 -5
- package/assets/docs/guide/edit-image.md +11 -7
- package/assets/docs/guide/edit-video/add-captions.md +344 -421
- package/assets/docs/guide/edit-video/add-watermark.md +312 -258
- package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
- package/assets/docs/guide/edit-video/redaction.md +419 -385
- package/assets/docs/guide/edit-video/split.md +243 -493
- package/assets/docs/guide/edit-video/transform/crop.md +21 -352
- package/assets/docs/guide/edit-video/transform/flip.md +102 -76
- package/assets/docs/guide/edit-video/transform/move.md +258 -310
- package/assets/docs/guide/edit-video/transform/resize.md +264 -428
- package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
- package/assets/docs/guide/edit-video/transform/scale.md +320 -417
- package/assets/docs/guide/edit-video/transform.md +10 -6
- package/assets/docs/guide/edit-video/trim.md +448 -494
- package/assets/docs/guide/engine-interface.md +51 -62
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
- package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
- package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
- package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
- package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
- package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
- package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
- package/assets/docs/guide/export-save-publish/export.md +14 -11
- package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
- package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
- package/assets/docs/guide/export-save-publish/save.md +167 -226
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
- package/assets/docs/guide/file-format-support.md +9 -9
- package/assets/docs/guide/fills/color.md +370 -347
- package/assets/docs/guide/fills/image.md +167 -196
- package/assets/docs/guide/fills/overview.md +6 -4
- package/assets/docs/guide/fills/video.md +286 -438
- package/assets/docs/guide/fills.md +12 -8
- package/assets/docs/guide/filters-and-effects/apply.md +598 -664
- package/assets/docs/guide/filters-and-effects/blur.md +261 -159
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
- package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
- package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
- package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
- package/assets/docs/guide/filters-and-effects/overview.md +7 -7
- package/assets/docs/guide/filters-and-effects/support.md +97 -132
- package/assets/docs/guide/filters-and-effects.md +11 -6
- package/assets/docs/guide/get-started/agent-skills.md +20 -18
- package/assets/docs/guide/get-started/build-with-ai.md +7 -4
- package/assets/docs/guide/get-started/bun.md +219 -0
- package/assets/docs/guide/get-started/deno.md +161 -0
- package/assets/docs/guide/get-started/mcp-server.md +6 -4
- package/assets/docs/guide/get-started/overview.md +11 -6
- package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
- package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
- package/assets/docs/guide/get-started/vanilla.md +235 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
- package/assets/docs/guide/guides.md +10 -9
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
- package/assets/docs/guide/import-media/concepts.md +20 -38
- package/assets/docs/guide/import-media/content-json-schema.md +145 -125
- package/assets/docs/guide/import-media/default-assets.md +113 -161
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
- package/assets/docs/guide/import-media/file-format-support.md +78 -61
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
- package/assets/docs/guide/import-media/from-remote-source.md +9 -11
- package/assets/docs/guide/import-media/overview.md +5 -5
- package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
- package/assets/docs/guide/import-media/size-limits.md +6 -4
- package/assets/docs/guide/import-media/source-sets.md +190 -251
- package/assets/docs/guide/import-media.md +10 -8
- package/assets/docs/guide/insert-media/audio.md +202 -195
- package/assets/docs/guide/insert-media/images.md +190 -188
- package/assets/docs/guide/insert-media/position-and-align.md +284 -551
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
- package/assets/docs/guide/insert-media/videos.md +236 -203
- package/assets/docs/guide/insert-media.md +10 -5
- package/assets/docs/guide/key-capabilities.md +36 -4
- package/assets/docs/guide/key-concepts.md +6 -4
- package/assets/docs/guide/licensing.md +6 -4
- package/assets/docs/guide/llms-txt.md +11 -7
- package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
- package/assets/docs/guide/open-the-editor/from-image.md +157 -127
- package/assets/docs/guide/open-the-editor/from-template.md +131 -92
- package/assets/docs/guide/open-the-editor/from-video.md +204 -212
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
- package/assets/docs/guide/open-the-editor/import-design.md +228 -266
- package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
- package/assets/docs/guide/open-the-editor/overview.md +6 -4
- package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
- package/assets/docs/guide/open-the-editor.md +11 -9
- package/assets/docs/guide/outlines/overview.md +12 -4
- package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
- package/assets/docs/guide/outlines/strokes.md +218 -166
- package/assets/docs/guide/outlines.md +9 -4
- package/assets/docs/guide/overview.md +14 -6
- package/assets/docs/guide/performance.md +220 -113
- package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
- package/assets/docs/guide/plugins.md +10 -16
- package/assets/docs/guide/rules/asset-handling.md +7 -18
- package/assets/docs/guide/rules/common-pitfalls.md +25 -42
- package/assets/docs/guide/rules/content-fill-mode.md +4 -4
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
- package/assets/docs/guide/rules/lock-content.md +188 -231
- package/assets/docs/guide/rules/moderate-content.md +580 -571
- package/assets/docs/guide/rules/overview.md +345 -380
- package/assets/docs/guide/rules/silent-init-errors.md +4 -1
- package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
- package/assets/docs/guide/rules.md +10 -5
- package/assets/docs/guide/security.md +7 -5
- package/assets/docs/guide/serve-assets.md +57 -284
- package/assets/docs/guide/settings.md +96 -74
- package/assets/docs/guide/shapes.md +10 -5
- package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
- package/assets/docs/guide/stickers.md +9 -4
- package/assets/docs/guide/text/add.md +470 -482
- package/assets/docs/guide/text/adjust-spacing.md +179 -214
- package/assets/docs/guide/text/auto-size.md +210 -271
- package/assets/docs/guide/text/edit.md +294 -309
- package/assets/docs/guide/text/effects.md +154 -190
- package/assets/docs/guide/text/emojis.md +199 -232
- package/assets/docs/guide/text/language-support.md +369 -382
- package/assets/docs/guide/text/overview.md +41 -4
- package/assets/docs/guide/text/styling.md +239 -273
- package/assets/docs/guide/text/text-designs.md +405 -544
- package/assets/docs/guide/text.md +10 -9
- package/assets/docs/guide/to-v1-19.md +12 -10
- package/assets/docs/guide/upgrade.md +8 -9
- package/assets/docs/guide/use-templates/apply-template.md +174 -163
- package/assets/docs/guide/use-templates/generate.md +171 -152
- package/assets/docs/guide/use-templates/overview.md +32 -4
- package/assets/docs/guide/use-templates/programmatic.md +266 -301
- package/assets/docs/guide/use-templates/replace-content.md +181 -171
- package/assets/docs/guide/what-is-cesdk.md +71 -282
- package/assets/docs/handbook/SKILL.md +24 -0
- package/dist/assets/inline.generated.d.ts.map +1 -1
- package/dist/assets/inline.generated.js +544 -406
- package/dist/assets/inline.generated.js.map +1 -1
- package/dist/assets/load-browser.d.ts +1 -1
- package/dist/assets/load-browser.js +1 -1
- package/dist/assets/load-browser.js.map +1 -1
- package/dist/assets/load-node.d.ts +1 -1
- package/dist/assets/load-node.js +1 -1
- package/dist/assets/load-node.js.map +1 -1
- package/dist/cli/http.d.ts.map +1 -1
- package/dist/cli/http.js +4 -28
- package/dist/cli/http.js.map +1 -1
- package/dist/cli/redirect-console.d.ts +1 -1
- package/dist/cli/redirect-console.d.ts.map +1 -1
- package/dist/cli/redirect-console.js +12 -3
- package/dist/cli/redirect-console.js.map +1 -1
- package/dist/cli/resolve-license.d.ts.map +1 -1
- package/dist/cli/resolve-license.js +8 -6
- package/dist/cli/resolve-license.js.map +1 -1
- package/dist/cli/stdio.d.ts +9 -0
- package/dist/cli/stdio.d.ts.map +1 -1
- package/dist/cli/stdio.js +48 -4
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/diagnostics/bundle.d.ts +10 -0
- package/dist/diagnostics/bundle.d.ts.map +1 -0
- package/dist/diagnostics/bundle.js +148 -0
- package/dist/diagnostics/bundle.js.map +1 -0
- package/dist/diagnostics/compose.d.ts +3 -0
- package/dist/diagnostics/compose.d.ts.map +1 -0
- package/dist/diagnostics/compose.js +15 -0
- package/dist/diagnostics/compose.js.map +1 -0
- package/dist/diagnostics/events.d.ts +34 -0
- package/dist/diagnostics/events.d.ts.map +1 -0
- package/dist/diagnostics/events.js +3 -0
- package/dist/diagnostics/events.js.map +1 -0
- package/dist/diagnostics/file-sink.d.ts +38 -0
- package/dist/diagnostics/file-sink.d.ts.map +1 -0
- package/dist/diagnostics/file-sink.js +157 -0
- package/dist/diagnostics/file-sink.js.map +1 -0
- package/dist/diagnostics/redact.d.ts +7 -0
- package/dist/diagnostics/redact.d.ts.map +1 -0
- package/dist/diagnostics/redact.js +43 -0
- package/dist/diagnostics/redact.js.map +1 -0
- package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
- package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
- package/dist/diagnostics/tool-call-adapter.js +21 -0
- package/dist/diagnostics/tool-call-adapter.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +5 -1
- package/dist/engine/cesdk-adapter.d.ts.map +1 -1
- package/dist/engine/cesdk-adapter.js +9 -2
- package/dist/engine/cesdk-adapter.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +4 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/scene-resource-schemes.d.ts +2 -0
- package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
- package/dist/engine/scene-resource-schemes.js +20 -0
- package/dist/engine/scene-resource-schemes.js.map +1 -0
- package/dist/http/server.d.ts +0 -6
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +1 -2
- package/dist/http/server.js.map +1 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -60
- package/dist/server.js.map +1 -1
- package/dist/test/scripts/changelog-add.d.ts +8 -0
- package/dist/test/scripts/changelog-add.d.ts.map +1 -0
- package/dist/test/scripts/changelog-add.js +50 -0
- package/dist/test/scripts/changelog-add.js.map +1 -0
- package/dist/test/scripts/changelog-collate.d.ts +38 -0
- package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
- package/dist/test/scripts/changelog-collate.js +171 -0
- package/dist/test/scripts/changelog-collate.js.map +1 -0
- package/dist/test/test/changelog.test.d.ts +2 -0
- package/dist/test/test/changelog.test.d.ts.map +1 -0
- package/dist/test/test/changelog.test.js +293 -0
- package/dist/test/test/changelog.test.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +10 -3
- package/dist/test/test/cli/dispatcher.test.js.map +1 -1
- package/dist/test/test/cli/redirect-console.test.js +31 -0
- package/dist/test/test/cli/redirect-console.test.js.map +1 -1
- package/dist/test/test/cli/resolve-license.test.js +10 -1
- package/dist/test/test/cli/resolve-license.test.js.map +1 -1
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
- package/dist/test/test/config.test.js +17 -13
- package/dist/test/test/config.test.js.map +1 -1
- package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
- package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/bundle.test.js +53 -0
- package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
- package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
- package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/compose.test.js +31 -0
- package/dist/test/test/diagnostics/compose.test.js.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.js +113 -0
- package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
- package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
- package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/redact.test.js +59 -0
- package/dist/test/test/diagnostics/redact.test.js.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
- package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.js +6 -2
- package/dist/test/test/handbook-contract.test.js.map +1 -1
- package/dist/test/test/http/server.test.js +0 -36
- package/dist/test/test/http/server.test.js.map +1 -1
- package/dist/test/test/http/workspace-auth.test.js +0 -1
- package/dist/test/test/http/workspace-auth.test.js.map +1 -1
- package/dist/test/test/server.test.js +0 -40
- package/dist/test/test/server.test.js.map +1 -1
- package/dist/test/test/tools/edit-harness.d.ts +14 -0
- package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
- package/dist/test/test/tools/edit-harness.js +30 -0
- package/dist/test/test/tools/edit-harness.js.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.js +46 -0
- package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/export-harness.d.ts +13 -0
- package/dist/test/test/tools/export-harness.d.ts.map +1 -0
- package/dist/test/test/tools/export-harness.js +27 -0
- package/dist/test/test/tools/export-harness.js.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.js +65 -0
- package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/import.test.d.ts +2 -0
- package/dist/test/test/tools/import.test.d.ts.map +1 -0
- package/dist/test/test/tools/import.test.js +122 -0
- package/dist/test/test/tools/import.test.js.map +1 -0
- package/dist/test/test/tools/index.test.js +78 -16
- package/dist/test/test/tools/index.test.js.map +1 -1
- package/dist/test/test/tools/load.integration.test.d.ts +2 -0
- package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.integration.test.js +165 -0
- package/dist/test/test/tools/load.integration.test.js.map +1 -0
- package/dist/test/test/tools/load.test.d.ts +2 -0
- package/dist/test/test/tools/load.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.test.js +387 -0
- package/dist/test/test/tools/load.test.js.map +1 -0
- package/dist/test/test/tools/preview-harness.d.ts +9 -0
- package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
- package/dist/test/test/tools/preview-harness.js +23 -0
- package/dist/test/test/tools/preview-harness.js.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.js +36 -0
- package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
- package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.js +169 -0
- package/dist/test/test/tools/schema-best-practices.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.js +194 -0
- package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
- package/dist/test/test/tools/spans.test.d.ts +2 -0
- package/dist/test/test/tools/spans.test.d.ts.map +1 -0
- package/dist/test/test/tools/spans.test.js +84 -0
- package/dist/test/test/tools/spans.test.js.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
- package/dist/test/test/viewer/config-route.test.d.ts +2 -0
- package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/config-route.test.js +28 -0
- package/dist/test/test/viewer/config-route.test.js.map +1 -0
- package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
- package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
- package/dist/test/test/viewer/spa-version.test.js +14 -0
- package/dist/test/test/viewer/spa-version.test.js.map +1 -0
- package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
- package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
- package/dist/test/test/workspace/content-hash.test.js +17 -0
- package/dist/test/test/workspace/content-hash.test.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -1
- package/dist/test/vitest.config.js +1 -1
- package/dist/test/vitest.config.js.map +1 -1
- package/dist/tools/asset-generate.d.ts.map +1 -1
- package/dist/tools/asset-generate.js +1 -8
- package/dist/tools/asset-generate.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +145 -96
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +146 -108
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/import.d.ts +12 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/load.d.ts +26 -0
- package/dist/tools/load.d.ts.map +1 -0
- package/dist/tools/load.js +400 -0
- package/dist/tools/load.js.map +1 -0
- package/dist/tools/preview.d.ts +3 -0
- package/dist/tools/preview.d.ts.map +1 -1
- package/dist/tools/preview.js +79 -44
- package/dist/tools/preview.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.js +2 -2
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/spans.d.ts +45 -0
- package/dist/tools/spans.d.ts.map +1 -0
- package/dist/tools/spans.js +77 -0
- package/dist/tools/spans.js.map +1 -0
- package/dist/tools/telemetry-wrapper.d.ts +4 -0
- package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
- package/dist/tools/telemetry-wrapper.js +43 -0
- package/dist/tools/telemetry-wrapper.js.map +1 -0
- package/dist/viewer/cesdk-cdn.d.ts +16 -0
- package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
- package/dist/viewer/cesdk-cdn.js +30 -0
- package/dist/viewer/cesdk-cdn.js.map +1 -0
- package/dist/viewer/router.d.ts +6 -0
- package/dist/viewer/router.d.ts.map +1 -1
- package/dist/viewer/router.js +4 -1
- package/dist/viewer/router.js.map +1 -1
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
- package/dist/viewer/spa-assets.generated.js +2 -3
- package/dist/viewer/spa-assets.generated.js.map +1 -1
- package/dist/workspace/content-hash.d.ts +2 -0
- package/dist/workspace/content-hash.d.ts.map +1 -0
- package/dist/workspace/content-hash.js +15 -0
- package/dist/workspace/content-hash.js.map +1 -0
- package/package.json +18 -9
- package/assets/docs/guide/actions.md +0 -1038
- package/assets/docs/guide/animation/overview.md +0 -22
- package/assets/docs/guide/automation/batch-processing.md +0 -474
- package/assets/docs/guide/browser-support.md +0 -38
- package/assets/docs/guide/concepts/edit-modes.md +0 -431
- package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
- package/assets/docs/guide/create-audio/audio.md +0 -336
- package/assets/docs/guide/create-video/overview.md +0 -224
- package/assets/docs/guide/create-video/timeline-editor.md +0 -622
- package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
- package/assets/docs/guide/edit-image/vectorize.md +0 -204
- package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
- package/assets/docs/guide/grid-and-rulers.md +0 -222
- package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
- package/assets/docs/guide/import-media/asset-library.md +0 -23
- package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
- package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
- package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
- package/assets/docs/guide/import-media/from-local-source.md +0 -20
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
- package/assets/docs/guide/plugins/asset-sources.md +0 -553
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
- package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
- package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
- package/assets/docs/guide/starterkits/ai-editor.md +0 -749
- package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
- package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
- package/assets/docs/guide/starterkits/assets.md +0 -27
- package/assets/docs/guide/starterkits/auto-resize.md +0 -586
- package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
- package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
- package/assets/docs/guide/starterkits/content-moderation.md +0 -863
- package/assets/docs/guide/starterkits/creative-automation.md +0 -28
- package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
- package/assets/docs/guide/starterkits/customization.md +0 -29
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
- package/assets/docs/guide/starterkits/data-merge.md +0 -850
- package/assets/docs/guide/starterkits/design-editor.md +0 -698
- package/assets/docs/guide/starterkits/design-generation.md +0 -719
- package/assets/docs/guide/starterkits/design-validation.md +0 -808
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
- package/assets/docs/guide/starterkits/export-options.md +0 -724
- package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
- package/assets/docs/guide/starterkits/extensibility.md +0 -28
- package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
- package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
- package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
- package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
- package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
- package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
- package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
- package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
- package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
- package/assets/docs/guide/starterkits/photo-editor.md +0 -755
- package/assets/docs/guide/starterkits/photo-ui.md +0 -186
- package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
- package/assets/docs/guide/starterkits/placeholders.md +0 -678
- package/assets/docs/guide/starterkits/player.md +0 -405
- package/assets/docs/guide/starterkits/plugins.md +0 -25
- package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
- package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
- package/assets/docs/guide/starterkits/product-editor.md +0 -773
- package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
- package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
- package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
- package/assets/docs/guide/starterkits/start-with-image.md +0 -684
- package/assets/docs/guide/starterkits/start-with-video.md +0 -651
- package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
- package/assets/docs/guide/starterkits/templating.md +0 -23
- package/assets/docs/guide/starterkits/theming.md +0 -662
- package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
- package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
- package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
- package/assets/docs/guide/starterkits/version-history.md +0 -745
- package/assets/docs/guide/starterkits/video-animations.md +0 -853
- package/assets/docs/guide/starterkits/video-captions.md +0 -884
- package/assets/docs/guide/starterkits/video-editing.md +0 -25
- package/assets/docs/guide/starterkits/video-editor.md +0 -696
- package/assets/docs/guide/starterkits/video-export-options.md +0 -676
- package/assets/docs/guide/starterkits/viewer.md +0 -400
- package/assets/docs/guide/starterkits.md +0 -41
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
- package/assets/docs/guide/text/custom-fonts.md +0 -401
- package/assets/docs/guide/text/decorations.md +0 -330
- package/assets/docs/guide/text/enumerations.md +0 -258
- package/assets/docs/guide/to-v1-10.md +0 -131
- package/assets/docs/guide/to-v1-13.md +0 -165
- package/assets/docs/guide/to-v1-32.md +0 -110
- package/assets/docs/guide/to-v1-69.md +0 -468
- package/assets/docs/guide/to-v1-72.md +0 -193
- package/assets/docs/guide/use-templates/library.md +0 -450
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
- package/assets/docs/guide/user-interface/ai-integration.md +0 -30
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
- package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
- package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
- package/assets/docs/guide/user-interface/appearance.md +0 -23
- package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
- package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
- package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
- package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
- package/assets/docs/guide/user-interface/customization/dock.md +0 -399
- package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
- package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
- package/assets/docs/guide/user-interface/customization/panel.md +0 -605
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
- package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
- package/assets/docs/guide/user-interface/customization/reference.md +0 -12
- package/assets/docs/guide/user-interface/customization.md +0 -39
- package/assets/docs/guide/user-interface/localization.md +0 -633
- package/assets/docs/guide/user-interface/overview.md +0 -167
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
- package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
- package/assets/docs/guide/user-interface.md +0 -25
- package/assets/prompts/evals-assetGenerate.md +0 -12
- package/assets/prompts/evals-brutalistCore.md +0 -34
- package/assets/prompts/evals-danskCatalogue.md +0 -31
- package/assets/prompts/evals-exportRoundTrip.md +0 -12
- package/assets/prompts/evals-inspectPriorCode.md +0 -16
- package/assets/prompts/evals-listProjectFiles.md +0 -6
- package/assets/prompts/evals-readAndExplainScript.md +0 -6
- package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
- package/assets/prompts/evals-rewindRecovery.md +0 -10
- package/assets/prompts/evals-searchAcrossFiles.md +0 -6
- package/assets/prompts/evals-weddingCard.md +0 -20
- package/assets/prompts/explain.md +0 -6
- package/assets/prompts/review.md +0 -6
- package/dist/frontmatter.d.ts +0 -15
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -46
- package/dist/frontmatter.js.map +0 -1
- package/dist/test/test/frontmatter.test.d.ts +0 -2
- package/dist/test/test/frontmatter.test.d.ts.map +0 -1
- package/dist/test/test/frontmatter.test.js +0 -55
- package/dist/test/test/frontmatter.test.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
> This is one page of the CE.SDK
|
|
1
|
+
> This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
2
|
|
|
3
3
|
**Navigation:** [Guides](./guides.md) > [Colors](./colors.md) > [For Print](./colors/for-print.md) > [Spot Colors](./colors/for-print/spot.md)
|
|
4
4
|
|
|
@@ -6,42 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
Define and manage spot colors programmatically for professional print workflows with exact color matching through premixed inks.
|
|
8
8
|
|
|
9
|
-

|
|
10
|
-
|
|
11
9
|
> **Reading time:** 10 minutes
|
|
12
10
|
>
|
|
13
11
|
> **Resources:**
|
|
14
12
|
>
|
|
15
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
-
>
|
|
17
|
-
> - [
|
|
18
|
-
>
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-colors-for-print-spot-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-colors-for-print-spot-server-js)
|
|
19
18
|
|
|
20
19
|
Spot colors are named colors reproduced using premixed inks in print production, providing exact color matching that CMYK process colors cannot guarantee. CE.SDK maintains a registry of spot color definitions at the editor level, where each spot color has a name and screen approximations (RGB and/or CMYK) for display purposes. The actual premixed ink is used during printing based on the color name.
|
|
21
20
|
|
|
22
|
-
```typescript file=@cesdk_web_examples/guides-colors-for-print-spot-
|
|
23
|
-
import
|
|
24
|
-
|
|
25
|
-
EditorPluginContext,
|
|
26
|
-
SpotColor
|
|
27
|
-
} from '@cesdk/cesdk-js';
|
|
28
|
-
import {
|
|
29
|
-
BlurAssetSource,
|
|
30
|
-
ColorPaletteAssetSource,
|
|
31
|
-
CropPresetsAssetSource,
|
|
32
|
-
DemoAssetSources,
|
|
33
|
-
EffectsAssetSource,
|
|
34
|
-
FiltersAssetSource,
|
|
35
|
-
PagePresetsAssetSource,
|
|
36
|
-
StickerAssetSource,
|
|
37
|
-
TextAssetSource,
|
|
38
|
-
TextComponentAssetSource,
|
|
39
|
-
TypefaceAssetSource,
|
|
40
|
-
UploadAssetSources,
|
|
41
|
-
VectorShapeAssetSource
|
|
42
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
43
|
-
import { DesignEditorConfig } from './design-editor/plugin';
|
|
44
|
-
import packageJson from './package.json';
|
|
21
|
+
```typescript file=@cesdk_web_examples/guides-colors-for-print-spot-server-js/server-js.ts reference-only
|
|
22
|
+
import CreativeEngine from '@cesdk/node';
|
|
23
|
+
import type { SpotColor } from '@cesdk/node';
|
|
45
24
|
|
|
46
25
|
// Type guard to check if a color is a SpotColor
|
|
47
26
|
// Color can be RGBAColor, CMYKColor, or SpotColor
|
|
@@ -55,8 +34,14 @@ const isSpotColor = (color: unknown): color is SpotColor => {
|
|
|
55
34
|
);
|
|
56
35
|
};
|
|
57
36
|
|
|
37
|
+
import { config } from 'dotenv';
|
|
38
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
39
|
+
|
|
40
|
+
// Load environment variables
|
|
41
|
+
config();
|
|
42
|
+
|
|
58
43
|
/**
|
|
59
|
-
* CE.SDK
|
|
44
|
+
* CE.SDK Server Guide: Spot Colors
|
|
60
45
|
*
|
|
61
46
|
* This example demonstrates:
|
|
62
47
|
* - Defining spot colors with RGB and CMYK approximations
|
|
@@ -65,349 +50,288 @@ const isSpotColor = (color: unknown): color is SpotColor => {
|
|
|
65
50
|
* - Querying and updating spot color definitions
|
|
66
51
|
* - Removing spot colors and handling the magenta fallback
|
|
67
52
|
* - Assigning spot colors to cutout types
|
|
53
|
+
* - Exporting designs with spot colors for print
|
|
68
54
|
*/
|
|
69
|
-
class Example implements EditorPlugin {
|
|
70
|
-
name = packageJson.name;
|
|
71
|
-
|
|
72
|
-
version = packageJson.version;
|
|
73
|
-
|
|
74
|
-
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
75
|
-
if (!cesdk) {
|
|
76
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
await cesdk.addPlugin(new DesignEditorConfig());
|
|
80
|
-
// Add asset source plugins
|
|
81
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
82
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
83
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
84
|
-
await cesdk.addPlugin(
|
|
85
|
-
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
86
|
-
);
|
|
87
|
-
await cesdk.addPlugin(
|
|
88
|
-
new DemoAssetSources({
|
|
89
|
-
include: [
|
|
90
|
-
'ly.img.templates.blank.*',
|
|
91
|
-
'ly.img.templates.presentation.*',
|
|
92
|
-
'ly.img.templates.print.*',
|
|
93
|
-
'ly.img.templates.social.*',
|
|
94
|
-
'ly.img.image.*'
|
|
95
|
-
]
|
|
96
|
-
})
|
|
97
|
-
);
|
|
98
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
99
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
100
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
101
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
102
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
103
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
104
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
105
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
106
|
-
|
|
107
|
-
// Create a design scene using CE.SDK convenience method
|
|
108
|
-
await cesdk.actions.run('scene.create', {
|
|
109
|
-
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
const engine = cesdk.engine;
|
|
113
|
-
|
|
114
|
-
// Get the page
|
|
115
|
-
const pages = engine.block.findByType('page');
|
|
116
|
-
const page = pages[0];
|
|
117
|
-
if (!page) {
|
|
118
|
-
throw new Error('No page found');
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Set page background to light gray for visibility
|
|
122
|
-
const pageFill = engine.block.getFill(page);
|
|
123
|
-
engine.block.setColor(pageFill, 'fill/color/value', {
|
|
124
|
-
r: 0.95,
|
|
125
|
-
g: 0.95,
|
|
126
|
-
b: 0.95,
|
|
127
|
-
a: 1.0
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
// Helper function to create a graphic block with a color fill
|
|
131
|
-
const createColorBlock = (
|
|
132
|
-
x: number,
|
|
133
|
-
y: number,
|
|
134
|
-
width: number,
|
|
135
|
-
height: number,
|
|
136
|
-
shape: 'rect' | 'ellipse' = 'rect'
|
|
137
|
-
): { block: number; fill: number } => {
|
|
138
|
-
const block = engine.block.create('graphic');
|
|
139
|
-
const blockShape = engine.block.createShape(shape);
|
|
140
|
-
engine.block.setShape(block, blockShape);
|
|
141
|
-
engine.block.setWidth(block, width);
|
|
142
|
-
engine.block.setHeight(block, height);
|
|
143
|
-
engine.block.setPositionX(block, x);
|
|
144
|
-
engine.block.setPositionY(block, y);
|
|
145
|
-
engine.block.appendChild(page, block);
|
|
146
|
-
|
|
147
|
-
const colorFill = engine.block.createFill('color');
|
|
148
|
-
engine.block.setFill(block, colorFill);
|
|
149
|
-
|
|
150
|
-
return { block, fill: colorFill };
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
// Define a spot color with RGB approximation
|
|
154
|
-
// RGB values range from 0.0 to 1.0
|
|
155
|
-
engine.editor.setSpotColorRGB('Brand-Primary', 0.8, 0.1, 0.2);
|
|
156
|
-
|
|
157
|
-
// Add CMYK approximation for the same spot color
|
|
158
|
-
// This provides print-accurate preview in addition to screen display
|
|
159
|
-
engine.editor.setSpotColorCMYK('Brand-Primary', 0.05, 0.95, 0.85, 0.0);
|
|
160
|
-
|
|
161
|
-
// Define another spot color with both approximations
|
|
162
|
-
engine.editor.setSpotColorRGB('Brand-Accent', 0.2, 0.4, 0.8);
|
|
163
|
-
engine.editor.setSpotColorCMYK('Brand-Accent', 0.75, 0.5, 0.0, 0.0);
|
|
164
|
-
|
|
165
|
-
// Apply spot colors to fills using SpotColor objects
|
|
166
|
-
// The tint property (0.0 to 1.0) controls color intensity
|
|
167
|
-
// The externalReference field stores metadata like color system origin
|
|
168
|
-
const brandPrimary: SpotColor = {
|
|
169
|
-
name: 'Brand-Primary',
|
|
170
|
-
tint: 1.0,
|
|
171
|
-
externalReference: ''
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
// Create a block and apply the Brand-Primary spot color
|
|
175
|
-
const { fill: primaryFill } = createColorBlock(50, 50, 150, 150);
|
|
176
|
-
engine.block.setColor(primaryFill, 'fill/color/value', brandPrimary);
|
|
177
|
-
|
|
178
|
-
// Apply Brand-Accent to another block
|
|
179
|
-
const brandAccent: SpotColor = {
|
|
180
|
-
name: 'Brand-Accent',
|
|
181
|
-
tint: 1.0,
|
|
182
|
-
externalReference: ''
|
|
183
|
-
};
|
|
184
|
-
const { fill: accentFill } = createColorBlock(220, 50, 150, 150);
|
|
185
|
-
engine.block.setColor(accentFill, 'fill/color/value', brandAccent);
|
|
186
|
-
|
|
187
|
-
// Use tints for lighter variations without defining new spot colors
|
|
188
|
-
// Tint of 0.5 gives 50% color intensity
|
|
189
|
-
const brandPrimaryHalfTint: SpotColor = {
|
|
190
|
-
name: 'Brand-Primary',
|
|
191
|
-
tint: 0.5,
|
|
192
|
-
externalReference: ''
|
|
193
|
-
};
|
|
194
|
-
const { fill: tintedFill } = createColorBlock(390, 50, 150, 150, 'ellipse');
|
|
195
|
-
engine.block.setColor(tintedFill, 'fill/color/value', brandPrimaryHalfTint);
|
|
196
|
-
|
|
197
|
-
// Create a gradient of tints
|
|
198
|
-
const brandAccentLightTint: SpotColor = {
|
|
199
|
-
name: 'Brand-Accent',
|
|
200
|
-
tint: 0.3,
|
|
201
|
-
externalReference: ''
|
|
202
|
-
};
|
|
203
|
-
const { fill: lightTintFill } = createColorBlock(560, 50, 150, 150);
|
|
204
|
-
engine.block.setColor(
|
|
205
|
-
lightTintFill,
|
|
206
|
-
'fill/color/value',
|
|
207
|
-
brandAccentLightTint
|
|
208
|
-
);
|
|
209
55
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
);
|
|
242
|
-
engine.block.
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
engine.block.
|
|
251
|
-
engine.block.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
56
|
+
// Initialize CE.SDK engine with baseURL for asset loading
|
|
57
|
+
const engine = await CreativeEngine.init({
|
|
58
|
+
// license: process.env.CESDK_LICENSE,
|
|
59
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
try {
|
|
63
|
+
// Create a scene with a page
|
|
64
|
+
const scene = engine.scene.create();
|
|
65
|
+
const page = engine.block.create('page');
|
|
66
|
+
engine.block.setWidth(page, 800);
|
|
67
|
+
engine.block.setHeight(page, 600);
|
|
68
|
+
engine.block.appendChild(scene, page);
|
|
69
|
+
|
|
70
|
+
// Set page background to light gray for visibility
|
|
71
|
+
const pageFill = engine.block.getFill(page);
|
|
72
|
+
engine.block.setColor(pageFill, 'fill/color/value', {
|
|
73
|
+
r: 0.95,
|
|
74
|
+
g: 0.95,
|
|
75
|
+
b: 0.95,
|
|
76
|
+
a: 1.0
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Helper function to create a graphic block with a color fill
|
|
80
|
+
const createColorBlock = (
|
|
81
|
+
x: number,
|
|
82
|
+
y: number,
|
|
83
|
+
width: number,
|
|
84
|
+
height: number,
|
|
85
|
+
shape: 'rect' | 'ellipse' = 'rect'
|
|
86
|
+
): { block: number; fill: number } => {
|
|
87
|
+
const block = engine.block.create('graphic');
|
|
88
|
+
const blockShape = engine.block.createShape(shape);
|
|
89
|
+
engine.block.setShape(block, blockShape);
|
|
90
|
+
engine.block.setWidth(block, width);
|
|
91
|
+
engine.block.setHeight(block, height);
|
|
92
|
+
engine.block.setPositionX(block, x);
|
|
93
|
+
engine.block.setPositionY(block, y);
|
|
94
|
+
engine.block.appendChild(page, block);
|
|
95
|
+
|
|
96
|
+
const colorFill = engine.block.createFill('color');
|
|
97
|
+
engine.block.setFill(block, colorFill);
|
|
98
|
+
|
|
99
|
+
return { block, fill: colorFill };
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// Define a spot color with RGB approximation
|
|
103
|
+
// RGB values range from 0.0 to 1.0
|
|
104
|
+
engine.editor.setSpotColorRGB('Brand-Primary', 0.8, 0.1, 0.2);
|
|
105
|
+
|
|
106
|
+
// Add CMYK approximation for the same spot color
|
|
107
|
+
// This provides print-accurate preview in addition to screen display
|
|
108
|
+
engine.editor.setSpotColorCMYK('Brand-Primary', 0.05, 0.95, 0.85, 0.0);
|
|
109
|
+
|
|
110
|
+
// Define another spot color with both approximations
|
|
111
|
+
engine.editor.setSpotColorRGB('Brand-Accent', 0.2, 0.4, 0.8);
|
|
112
|
+
engine.editor.setSpotColorCMYK('Brand-Accent', 0.75, 0.5, 0.0, 0.0);
|
|
113
|
+
|
|
114
|
+
// Apply spot colors to fills using SpotColor objects
|
|
115
|
+
// The tint property (0.0 to 1.0) controls color intensity
|
|
116
|
+
// The externalReference field stores metadata like color system origin
|
|
117
|
+
const brandPrimary: SpotColor = {
|
|
118
|
+
name: 'Brand-Primary',
|
|
119
|
+
tint: 1.0,
|
|
120
|
+
externalReference: ''
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// Create a block and apply the Brand-Primary spot color
|
|
124
|
+
const { fill: primaryFill } = createColorBlock(50, 50, 150, 150);
|
|
125
|
+
engine.block.setColor(primaryFill, 'fill/color/value', brandPrimary);
|
|
126
|
+
|
|
127
|
+
// Apply Brand-Accent to another block
|
|
128
|
+
const brandAccent: SpotColor = {
|
|
129
|
+
name: 'Brand-Accent',
|
|
130
|
+
tint: 1.0,
|
|
131
|
+
externalReference: ''
|
|
132
|
+
};
|
|
133
|
+
const { fill: accentFill } = createColorBlock(220, 50, 150, 150);
|
|
134
|
+
engine.block.setColor(accentFill, 'fill/color/value', brandAccent);
|
|
135
|
+
|
|
136
|
+
// Use tints for lighter variations without defining new spot colors
|
|
137
|
+
// Tint of 0.5 gives 50% color intensity
|
|
138
|
+
const brandPrimaryHalfTint: SpotColor = {
|
|
139
|
+
name: 'Brand-Primary',
|
|
140
|
+
tint: 0.5,
|
|
141
|
+
externalReference: ''
|
|
142
|
+
};
|
|
143
|
+
const { fill: tintedFill } = createColorBlock(390, 50, 150, 150, 'ellipse');
|
|
144
|
+
engine.block.setColor(tintedFill, 'fill/color/value', brandPrimaryHalfTint);
|
|
145
|
+
|
|
146
|
+
// Create a gradient of tints
|
|
147
|
+
const brandAccentLightTint: SpotColor = {
|
|
148
|
+
name: 'Brand-Accent',
|
|
149
|
+
tint: 0.3,
|
|
150
|
+
externalReference: ''
|
|
151
|
+
};
|
|
152
|
+
const { fill: lightTintFill } = createColorBlock(560, 50, 150, 150);
|
|
153
|
+
engine.block.setColor(
|
|
154
|
+
lightTintFill,
|
|
155
|
+
'fill/color/value',
|
|
156
|
+
brandAccentLightTint
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
// Apply spot colors to strokes and shadows
|
|
160
|
+
const { block: strokeBlock, fill: strokeBlockFill } = createColorBlock(
|
|
161
|
+
50,
|
|
162
|
+
220,
|
|
163
|
+
150,
|
|
164
|
+
150
|
|
165
|
+
);
|
|
166
|
+
// Set fill to white
|
|
167
|
+
engine.block.setColor(strokeBlockFill, 'fill/color/value', {
|
|
168
|
+
r: 1.0,
|
|
169
|
+
g: 1.0,
|
|
170
|
+
b: 1.0,
|
|
171
|
+
a: 1.0
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// Enable stroke and apply spot color
|
|
175
|
+
engine.block.setStrokeEnabled(strokeBlock, true);
|
|
176
|
+
engine.block.setStrokeWidth(strokeBlock, 8);
|
|
177
|
+
const strokeColor: SpotColor = {
|
|
178
|
+
name: 'Brand-Primary',
|
|
179
|
+
tint: 1.0,
|
|
180
|
+
externalReference: ''
|
|
181
|
+
};
|
|
182
|
+
engine.block.setColor(strokeBlock, 'stroke/color', strokeColor);
|
|
183
|
+
|
|
184
|
+
// Apply spot color to drop shadow
|
|
185
|
+
const { block: shadowBlock, fill: shadowBlockFill } = createColorBlock(
|
|
186
|
+
220,
|
|
187
|
+
220,
|
|
188
|
+
150,
|
|
189
|
+
150
|
|
190
|
+
);
|
|
191
|
+
engine.block.setColor(shadowBlockFill, 'fill/color/value', {
|
|
192
|
+
r: 0.95,
|
|
193
|
+
g: 0.95,
|
|
194
|
+
b: 0.95,
|
|
195
|
+
a: 1.0
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
engine.block.setDropShadowEnabled(shadowBlock, true);
|
|
199
|
+
engine.block.setDropShadowOffsetX(shadowBlock, 10);
|
|
200
|
+
engine.block.setDropShadowOffsetY(shadowBlock, 10);
|
|
201
|
+
engine.block.setDropShadowBlurRadiusX(shadowBlock, 15);
|
|
202
|
+
engine.block.setDropShadowBlurRadiusY(shadowBlock, 15);
|
|
203
|
+
const shadowColor: SpotColor = {
|
|
204
|
+
name: 'Brand-Accent',
|
|
205
|
+
tint: 0.8,
|
|
206
|
+
externalReference: ''
|
|
207
|
+
};
|
|
208
|
+
engine.block.setColor(shadowBlock, 'dropShadow/color', shadowColor);
|
|
209
|
+
|
|
210
|
+
// Query all defined spot colors
|
|
211
|
+
const spotColors = engine.editor.findAllSpotColors();
|
|
212
|
+
console.log('Defined spot colors:', spotColors);
|
|
213
|
+
|
|
214
|
+
// Query RGB approximation for a spot color
|
|
215
|
+
const rgbaApprox = engine.editor.getSpotColorRGBA('Brand-Primary');
|
|
216
|
+
console.log('Brand-Primary RGB approximation:', rgbaApprox);
|
|
217
|
+
|
|
218
|
+
// Query CMYK approximation for a spot color
|
|
219
|
+
const cmykApprox = engine.editor.getSpotColorCMYK('Brand-Primary');
|
|
220
|
+
console.log('Brand-Primary CMYK approximation:', cmykApprox);
|
|
221
|
+
|
|
222
|
+
// Read back the color from a block and check if it's a spot color
|
|
223
|
+
const retrievedColor = engine.block.getColor(primaryFill, 'fill/color/value');
|
|
224
|
+
if (isSpotColor(retrievedColor)) {
|
|
225
|
+
console.log(
|
|
226
|
+
`Retrieved SpotColor - Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`
|
|
280
227
|
);
|
|
281
|
-
if (isSpotColor(retrievedColor)) {
|
|
282
|
-
// eslint-disable-next-line no-console
|
|
283
|
-
console.log(
|
|
284
|
-
`Retrieved SpotColor - Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`
|
|
285
|
-
);
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
// Update an existing spot color's approximation
|
|
289
|
-
// This changes how the color appears on screen without affecting the color name
|
|
290
|
-
engine.editor.setSpotColorRGB('Brand-Accent', 0.3, 0.5, 0.9);
|
|
291
|
-
// eslint-disable-next-line no-console
|
|
292
|
-
console.log('Updated Brand-Accent RGB approximation');
|
|
293
|
-
|
|
294
|
-
// Show the updated color in a new block
|
|
295
|
-
const { fill: updatedFill } = createColorBlock(390, 220, 150, 150);
|
|
296
|
-
const updatedAccent: SpotColor = {
|
|
297
|
-
name: 'Brand-Accent',
|
|
298
|
-
tint: 1.0,
|
|
299
|
-
externalReference: ''
|
|
300
|
-
};
|
|
301
|
-
engine.block.setColor(updatedFill, 'fill/color/value', updatedAccent);
|
|
302
|
-
|
|
303
|
-
// Define a temporary spot color
|
|
304
|
-
engine.editor.setSpotColorRGB('Temporary-Color', 0.5, 0.8, 0.3);
|
|
305
|
-
|
|
306
|
-
// Create a block using the temporary color
|
|
307
|
-
const { fill: tempFill } = createColorBlock(560, 220, 150, 150);
|
|
308
|
-
const tempColor: SpotColor = {
|
|
309
|
-
name: 'Temporary-Color',
|
|
310
|
-
tint: 1.0,
|
|
311
|
-
externalReference: ''
|
|
312
|
-
};
|
|
313
|
-
engine.block.setColor(tempFill, 'fill/color/value', tempColor);
|
|
314
|
-
|
|
315
|
-
// Remove the spot color definition
|
|
316
|
-
// Blocks using this color will display magenta (default fallback)
|
|
317
|
-
engine.editor.removeSpotColor('Temporary-Color');
|
|
318
|
-
|
|
319
|
-
// eslint-disable-next-line no-console
|
|
320
|
-
console.log('Removed Temporary-Color - block now shows magenta fallback');
|
|
321
|
-
|
|
322
|
-
// Verify the color is no longer defined
|
|
323
|
-
const remainingSpotColors = engine.editor.findAllSpotColors();
|
|
324
|
-
// eslint-disable-next-line no-console
|
|
325
|
-
console.log('Remaining spot colors:', remainingSpotColors);
|
|
326
|
-
|
|
327
|
-
// Assign spot colors to cutout types for die-cutting operations
|
|
328
|
-
// First define a spot color for the die line
|
|
329
|
-
engine.editor.setSpotColorRGB('DieLine', 1.0, 0.0, 1.0);
|
|
330
|
-
engine.editor.setSpotColorCMYK('DieLine', 0.0, 1.0, 0.0, 0.0);
|
|
331
|
-
|
|
332
|
-
// Associate the spot color with a cutout type
|
|
333
|
-
// CutoutType can be 'Solid' or 'Dashed'
|
|
334
|
-
engine.editor.setSpotColorForCutoutType('Solid', 'DieLine');
|
|
335
|
-
|
|
336
|
-
// Query the assigned spot color
|
|
337
|
-
const cutoutSpotColor = engine.editor.getSpotColorForCutoutType('Solid');
|
|
338
|
-
// eslint-disable-next-line no-console
|
|
339
|
-
console.log('Cutout type Solid uses spot color:', cutoutSpotColor);
|
|
340
|
-
|
|
341
|
-
// Create a legend block with text
|
|
342
|
-
const textBlock = engine.block.create('text');
|
|
343
|
-
engine.block.replaceText(textBlock, 'Spot Colors Demo');
|
|
344
|
-
engine.block.setTextFontSize(textBlock, 36);
|
|
345
|
-
engine.block.setWidthMode(textBlock, 'Auto');
|
|
346
|
-
engine.block.setHeightMode(textBlock, 'Auto');
|
|
347
|
-
engine.block.setPositionX(textBlock, 50);
|
|
348
|
-
engine.block.setPositionY(textBlock, 400);
|
|
349
|
-
engine.block.appendChild(page, textBlock);
|
|
350
|
-
|
|
351
|
-
// Create smaller label texts
|
|
352
|
-
const labels = [
|
|
353
|
-
{ text: 'Brand-Primary', x: 50, y: 205 },
|
|
354
|
-
{ text: 'Brand-Accent', x: 220, y: 205 },
|
|
355
|
-
{ text: 'Primary 50%', x: 390, y: 205 },
|
|
356
|
-
{ text: 'Accent 30%', x: 560, y: 205 },
|
|
357
|
-
{ text: 'Stroke', x: 50, y: 375 },
|
|
358
|
-
{ text: 'Shadow', x: 220, y: 375 },
|
|
359
|
-
{ text: 'Updated', x: 390, y: 375 },
|
|
360
|
-
{ text: 'Removed', x: 560, y: 375 }
|
|
361
|
-
];
|
|
362
|
-
|
|
363
|
-
for (const label of labels) {
|
|
364
|
-
const labelBlock = engine.block.create('text');
|
|
365
|
-
engine.block.replaceText(labelBlock, label.text);
|
|
366
|
-
engine.block.setTextFontSize(labelBlock, 14);
|
|
367
|
-
engine.block.setWidthMode(labelBlock, 'Auto');
|
|
368
|
-
engine.block.setHeightMode(labelBlock, 'Auto');
|
|
369
|
-
engine.block.setPositionX(labelBlock, label.x);
|
|
370
|
-
engine.block.setPositionY(labelBlock, label.y);
|
|
371
|
-
engine.block.appendChild(page, labelBlock);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
// Zoom to fit all content
|
|
375
|
-
await engine.scene.zoomToBlock(page, {
|
|
376
|
-
padding: {
|
|
377
|
-
left: 40,
|
|
378
|
-
top: 40,
|
|
379
|
-
right: 40,
|
|
380
|
-
bottom: 40
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
228
|
}
|
|
384
|
-
}
|
|
385
229
|
|
|
386
|
-
|
|
230
|
+
// Update an existing spot color's approximation
|
|
231
|
+
// This changes how the color appears on screen without affecting the color name
|
|
232
|
+
engine.editor.setSpotColorRGB('Brand-Accent', 0.3, 0.5, 0.9);
|
|
233
|
+
console.log('Updated Brand-Accent RGB approximation');
|
|
234
|
+
|
|
235
|
+
// Show the updated color in a new block
|
|
236
|
+
const { fill: updatedFill } = createColorBlock(390, 220, 150, 150);
|
|
237
|
+
const updatedAccent: SpotColor = {
|
|
238
|
+
name: 'Brand-Accent',
|
|
239
|
+
tint: 1.0,
|
|
240
|
+
externalReference: ''
|
|
241
|
+
};
|
|
242
|
+
engine.block.setColor(updatedFill, 'fill/color/value', updatedAccent);
|
|
243
|
+
|
|
244
|
+
// Define a temporary spot color
|
|
245
|
+
engine.editor.setSpotColorRGB('Temporary-Color', 0.5, 0.8, 0.3);
|
|
246
|
+
|
|
247
|
+
// Create a block using the temporary color
|
|
248
|
+
const { fill: tempFill } = createColorBlock(560, 220, 150, 150);
|
|
249
|
+
const tempColor: SpotColor = {
|
|
250
|
+
name: 'Temporary-Color',
|
|
251
|
+
tint: 1.0,
|
|
252
|
+
externalReference: ''
|
|
253
|
+
};
|
|
254
|
+
engine.block.setColor(tempFill, 'fill/color/value', tempColor);
|
|
255
|
+
|
|
256
|
+
// Remove the spot color definition
|
|
257
|
+
// Blocks using this color will display magenta (default fallback)
|
|
258
|
+
engine.editor.removeSpotColor('Temporary-Color');
|
|
259
|
+
|
|
260
|
+
console.log('Removed Temporary-Color - block now shows magenta fallback');
|
|
261
|
+
|
|
262
|
+
// Verify the color is no longer defined
|
|
263
|
+
const remainingSpotColors = engine.editor.findAllSpotColors();
|
|
264
|
+
console.log('Remaining spot colors:', remainingSpotColors);
|
|
265
|
+
|
|
266
|
+
// Assign spot colors to cutout types for die-cutting operations
|
|
267
|
+
// First define a spot color for the die line
|
|
268
|
+
engine.editor.setSpotColorRGB('DieLine', 1.0, 0.0, 1.0);
|
|
269
|
+
engine.editor.setSpotColorCMYK('DieLine', 0.0, 1.0, 0.0, 0.0);
|
|
270
|
+
|
|
271
|
+
// Associate the spot color with a cutout type
|
|
272
|
+
// CutoutType can be 'Solid' or 'Dashed'
|
|
273
|
+
engine.editor.setSpotColorForCutoutType('Solid', 'DieLine');
|
|
274
|
+
|
|
275
|
+
// Query the assigned spot color
|
|
276
|
+
const cutoutSpotColor = engine.editor.getSpotColorForCutoutType('Solid');
|
|
277
|
+
console.log('Cutout type Solid uses spot color:', cutoutSpotColor);
|
|
278
|
+
|
|
279
|
+
// Export the design
|
|
280
|
+
const outputDir = './output';
|
|
281
|
+
if (!existsSync(outputDir)) {
|
|
282
|
+
mkdirSync(outputDir, { recursive: true });
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// Export as PNG for preview
|
|
286
|
+
const pngBlob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
287
|
+
const pngBuffer = Buffer.from(await pngBlob.arrayBuffer());
|
|
288
|
+
writeFileSync(`${outputDir}/spot-colors.png`, pngBuffer);
|
|
289
|
+
console.log(`\nPNG exported: ${outputDir}/spot-colors.png`);
|
|
290
|
+
|
|
291
|
+
// Export as PDF for print (preserves spot colors)
|
|
292
|
+
const pdfBlob = await engine.block.export(page, {
|
|
293
|
+
mimeType: 'application/pdf'
|
|
294
|
+
});
|
|
295
|
+
const pdfBuffer = Buffer.from(await pdfBlob.arrayBuffer());
|
|
296
|
+
writeFileSync(`${outputDir}/spot-colors.pdf`, pdfBuffer);
|
|
297
|
+
console.log(`PDF exported: ${outputDir}/spot-colors.pdf`);
|
|
298
|
+
|
|
299
|
+
console.log('\nSpot Colors example completed successfully!');
|
|
300
|
+
} finally {
|
|
301
|
+
// Always dispose the engine to free resources
|
|
302
|
+
engine.dispose();
|
|
303
|
+
}
|
|
387
304
|
```
|
|
388
305
|
|
|
389
|
-
This guide covers how to define spot colors with RGB and CMYK approximations, apply them to design elements with varying tints, query and update definitions,
|
|
306
|
+
This guide covers how to define spot colors with RGB and CMYK approximations, apply them to design elements with varying tints, query and update definitions, assign spot colors to cutout types for die-cutting operations, and export designs with spot colors for print production.
|
|
390
307
|
|
|
391
|
-
##
|
|
308
|
+
## Setup
|
|
309
|
+
|
|
310
|
+
Initialize the CE.SDK engine for server-side spot color management:
|
|
392
311
|
|
|
393
|
-
|
|
312
|
+
```typescript highlight-setup
|
|
313
|
+
// Initialize CE.SDK engine with baseURL for asset loading
|
|
314
|
+
const engine = await CreativeEngine.init({
|
|
315
|
+
// license: process.env.CESDK_LICENSE,
|
|
316
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
317
|
+
});
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Understanding Spot Colors
|
|
394
321
|
|
|
395
|
-
|
|
396
|
-
- **Brand consistency** - Essential for logos and brand colors (e.g., Pantone colors)
|
|
397
|
-
- **Specialty effects** - Enable metallic, fluorescent, and other specialty inks
|
|
398
|
-
- **Color gamut** - Some colors are unreproducible with CMYK process inks
|
|
322
|
+
A spot color in CE.SDK consists of:
|
|
399
323
|
|
|
400
|
-
|
|
324
|
+
- **Name**: A unique identifier for the spot color (e.g., "Brand-Red-185", "Brand-Primary")
|
|
325
|
+
- **Tint**: A value from 0.0 to 1.0 controlling color intensity
|
|
326
|
+
- **External Reference**: Optional metadata linking to external color systems
|
|
401
327
|
|
|
402
|
-
|
|
403
|
-
- **Approximations** - RGB and/or CMYK values for screen display
|
|
404
|
-
- **Tint** - A value from 0.0 to 1.0 controlling color intensity
|
|
328
|
+
Screen approximations (RGB and CMYK values) are stored separately and define how the spot color appears on screen during design. The actual printed color comes from the premixed ink specified by the spot color name.
|
|
405
329
|
|
|
406
|
-
##
|
|
330
|
+
## Defining Spot Colors
|
|
407
331
|
|
|
408
332
|
### RGB Approximation
|
|
409
333
|
|
|
410
|
-
|
|
334
|
+
Define how a spot color should appear on screen using RGB values:
|
|
411
335
|
|
|
412
336
|
```typescript highlight-define-spot-rgb
|
|
413
337
|
// Define a spot color with RGB approximation
|
|
@@ -415,184 +339,170 @@ We register spot colors using `engine.editor.setSpotColorRGB()`. This creates a
|
|
|
415
339
|
engine.editor.setSpotColorRGB('Brand-Primary', 0.8, 0.1, 0.2);
|
|
416
340
|
```
|
|
417
341
|
|
|
418
|
-
RGB
|
|
342
|
+
RGB values range from 0.0 to 1.0. This approximation is used for screen display in applications that work in RGB color space.
|
|
419
343
|
|
|
420
344
|
### CMYK Approximation
|
|
421
345
|
|
|
422
|
-
|
|
346
|
+
Add a CMYK approximation for print preview accuracy:
|
|
423
347
|
|
|
424
348
|
```typescript highlight-define-spot-cmyk
|
|
425
|
-
// Add CMYK approximation for the same spot color
|
|
426
|
-
// This provides print-accurate preview in addition to screen display
|
|
427
|
-
engine.editor.setSpotColorCMYK('Brand-Primary', 0.05, 0.95, 0.85, 0.0);
|
|
349
|
+
// Add CMYK approximation for the same spot color
|
|
350
|
+
// This provides print-accurate preview in addition to screen display
|
|
351
|
+
engine.editor.setSpotColorCMYK('Brand-Primary', 0.05, 0.95, 0.85, 0.0);
|
|
428
352
|
|
|
429
|
-
// Define another spot color with both approximations
|
|
430
|
-
engine.editor.setSpotColorRGB('Brand-Accent', 0.2, 0.4, 0.8);
|
|
431
|
-
engine.editor.setSpotColorCMYK('Brand-Accent', 0.75, 0.5, 0.0, 0.0);
|
|
353
|
+
// Define another spot color with both approximations
|
|
354
|
+
engine.editor.setSpotColorRGB('Brand-Accent', 0.2, 0.4, 0.8);
|
|
355
|
+
engine.editor.setSpotColorCMYK('Brand-Accent', 0.75, 0.5, 0.0, 0.0);
|
|
432
356
|
```
|
|
433
357
|
|
|
434
|
-
|
|
358
|
+
CMYK values also range from 0.0 to 1.0. Having both RGB and CMYK approximations ensures accurate preview in both screen-based and print-oriented workflows.
|
|
435
359
|
|
|
436
|
-
##
|
|
360
|
+
## Applying Spot Colors
|
|
437
361
|
|
|
438
|
-
|
|
362
|
+
### To Fills
|
|
439
363
|
|
|
440
|
-
|
|
441
|
-
// Apply spot colors to fills using SpotColor objects
|
|
442
|
-
// The tint property (0.0 to 1.0) controls color intensity
|
|
443
|
-
// The externalReference field stores metadata like color system origin
|
|
444
|
-
const brandPrimary: SpotColor = {
|
|
445
|
-
name: 'Brand-Primary',
|
|
446
|
-
tint: 1.0,
|
|
447
|
-
externalReference: ''
|
|
448
|
-
};
|
|
364
|
+
Apply spot colors to block fills using the `SpotColor` type:
|
|
449
365
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
366
|
+
```typescript highlight-apply-spot-fill
|
|
367
|
+
// Apply spot colors to fills using SpotColor objects
|
|
368
|
+
// The tint property (0.0 to 1.0) controls color intensity
|
|
369
|
+
// The externalReference field stores metadata like color system origin
|
|
370
|
+
const brandPrimary: SpotColor = {
|
|
371
|
+
name: 'Brand-Primary',
|
|
372
|
+
tint: 1.0,
|
|
373
|
+
externalReference: ''
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
// Create a block and apply the Brand-Primary spot color
|
|
377
|
+
const { fill: primaryFill } = createColorBlock(50, 50, 150, 150);
|
|
378
|
+
engine.block.setColor(primaryFill, 'fill/color/value', brandPrimary);
|
|
453
379
|
```
|
|
454
380
|
|
|
455
|
-
The SpotColor object
|
|
456
|
-
|
|
457
|
-
- **name** - Must match a defined spot color exactly (case-sensitive)
|
|
458
|
-
- **tint** - Controls intensity from 0.0 (transparent) to 1.0 (full strength)
|
|
459
|
-
- **externalReference** - Optional metadata like the color system origin (e.g., "Pantone")
|
|
381
|
+
The `SpotColor` object contains:
|
|
460
382
|
|
|
461
|
-
|
|
383
|
+
- `name`: References a defined spot color
|
|
384
|
+
- `tint`: Controls intensity (1.0 = full strength)
|
|
385
|
+
- `externalReference`: Optional metadata for color system integration
|
|
462
386
|
|
|
463
387
|
### Using Tints
|
|
464
388
|
|
|
465
|
-
|
|
389
|
+
Create lighter variations without defining new spot colors:
|
|
466
390
|
|
|
467
391
|
```typescript highlight-tint
|
|
468
|
-
// Use tints for lighter variations without defining new spot colors
|
|
469
|
-
// Tint of 0.5 gives 50% color intensity
|
|
470
|
-
const brandPrimaryHalfTint: SpotColor = {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
};
|
|
475
|
-
const { fill: tintedFill } = createColorBlock(390, 50, 150, 150, 'ellipse');
|
|
476
|
-
engine.block.setColor(tintedFill, 'fill/color/value', brandPrimaryHalfTint);
|
|
477
|
-
|
|
478
|
-
// Create a gradient of tints
|
|
479
|
-
const brandAccentLightTint: SpotColor = {
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
};
|
|
484
|
-
const { fill: lightTintFill } = createColorBlock(560, 50, 150, 150);
|
|
485
|
-
engine.block.setColor(
|
|
392
|
+
// Use tints for lighter variations without defining new spot colors
|
|
393
|
+
// Tint of 0.5 gives 50% color intensity
|
|
394
|
+
const brandPrimaryHalfTint: SpotColor = {
|
|
395
|
+
name: 'Brand-Primary',
|
|
396
|
+
tint: 0.5,
|
|
397
|
+
externalReference: ''
|
|
398
|
+
};
|
|
399
|
+
const { fill: tintedFill } = createColorBlock(390, 50, 150, 150, 'ellipse');
|
|
400
|
+
engine.block.setColor(tintedFill, 'fill/color/value', brandPrimaryHalfTint);
|
|
401
|
+
|
|
402
|
+
// Create a gradient of tints
|
|
403
|
+
const brandAccentLightTint: SpotColor = {
|
|
404
|
+
name: 'Brand-Accent',
|
|
405
|
+
tint: 0.3,
|
|
406
|
+
externalReference: ''
|
|
407
|
+
};
|
|
408
|
+
const { fill: lightTintFill } = createColorBlock(560, 50, 150, 150);
|
|
409
|
+
engine.block.setColor(
|
|
410
|
+
lightTintFill,
|
|
411
|
+
'fill/color/value',
|
|
412
|
+
brandAccentLightTint
|
|
413
|
+
);
|
|
486
414
|
```
|
|
487
415
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
- Color variations in design systems
|
|
491
|
-
- Lighter backgrounds using brand colors
|
|
492
|
-
- Gradient-like effects with consistent spot color names
|
|
416
|
+
Tints are particularly useful for creating consistent color hierarchies in designs while maintaining a single spot color definition for print production.
|
|
493
417
|
|
|
494
|
-
### Strokes and Shadows
|
|
418
|
+
### To Strokes and Shadows
|
|
495
419
|
|
|
496
|
-
Spot colors work with
|
|
420
|
+
Spot colors work with all color properties:
|
|
497
421
|
|
|
498
422
|
```typescript highlight-stroke-shadow
|
|
499
|
-
// Apply spot colors to strokes and shadows
|
|
500
|
-
const { block: strokeBlock, fill: strokeBlockFill } = createColorBlock(
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
);
|
|
506
|
-
// Set fill to white
|
|
507
|
-
engine.block.setColor(strokeBlockFill, 'fill/color/value', {
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
});
|
|
513
|
-
|
|
514
|
-
// Enable stroke and apply spot color
|
|
515
|
-
engine.block.setStrokeEnabled(strokeBlock, true);
|
|
516
|
-
engine.block.setStrokeWidth(strokeBlock, 8);
|
|
517
|
-
const strokeColor: SpotColor = {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
};
|
|
522
|
-
engine.block.setColor(strokeBlock, 'stroke/color', strokeColor);
|
|
523
|
-
|
|
524
|
-
// Apply spot color to drop shadow
|
|
525
|
-
const { block: shadowBlock, fill: shadowBlockFill } = createColorBlock(
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
);
|
|
531
|
-
engine.block.setColor(shadowBlockFill, 'fill/color/value', {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
});
|
|
537
|
-
|
|
538
|
-
engine.block.setDropShadowEnabled(shadowBlock, true);
|
|
539
|
-
engine.block.setDropShadowOffsetX(shadowBlock, 10);
|
|
540
|
-
engine.block.setDropShadowOffsetY(shadowBlock, 10);
|
|
541
|
-
engine.block.setDropShadowBlurRadiusX(shadowBlock, 15);
|
|
542
|
-
engine.block.setDropShadowBlurRadiusY(shadowBlock, 15);
|
|
543
|
-
const shadowColor: SpotColor = {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
};
|
|
548
|
-
engine.block.setColor(shadowBlock, 'dropShadow/color', shadowColor);
|
|
423
|
+
// Apply spot colors to strokes and shadows
|
|
424
|
+
const { block: strokeBlock, fill: strokeBlockFill } = createColorBlock(
|
|
425
|
+
50,
|
|
426
|
+
220,
|
|
427
|
+
150,
|
|
428
|
+
150
|
|
429
|
+
);
|
|
430
|
+
// Set fill to white
|
|
431
|
+
engine.block.setColor(strokeBlockFill, 'fill/color/value', {
|
|
432
|
+
r: 1.0,
|
|
433
|
+
g: 1.0,
|
|
434
|
+
b: 1.0,
|
|
435
|
+
a: 1.0
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
// Enable stroke and apply spot color
|
|
439
|
+
engine.block.setStrokeEnabled(strokeBlock, true);
|
|
440
|
+
engine.block.setStrokeWidth(strokeBlock, 8);
|
|
441
|
+
const strokeColor: SpotColor = {
|
|
442
|
+
name: 'Brand-Primary',
|
|
443
|
+
tint: 1.0,
|
|
444
|
+
externalReference: ''
|
|
445
|
+
};
|
|
446
|
+
engine.block.setColor(strokeBlock, 'stroke/color', strokeColor);
|
|
447
|
+
|
|
448
|
+
// Apply spot color to drop shadow
|
|
449
|
+
const { block: shadowBlock, fill: shadowBlockFill } = createColorBlock(
|
|
450
|
+
220,
|
|
451
|
+
220,
|
|
452
|
+
150,
|
|
453
|
+
150
|
|
454
|
+
);
|
|
455
|
+
engine.block.setColor(shadowBlockFill, 'fill/color/value', {
|
|
456
|
+
r: 0.95,
|
|
457
|
+
g: 0.95,
|
|
458
|
+
b: 0.95,
|
|
459
|
+
a: 1.0
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
engine.block.setDropShadowEnabled(shadowBlock, true);
|
|
463
|
+
engine.block.setDropShadowOffsetX(shadowBlock, 10);
|
|
464
|
+
engine.block.setDropShadowOffsetY(shadowBlock, 10);
|
|
465
|
+
engine.block.setDropShadowBlurRadiusX(shadowBlock, 15);
|
|
466
|
+
engine.block.setDropShadowBlurRadiusY(shadowBlock, 15);
|
|
467
|
+
const shadowColor: SpotColor = {
|
|
468
|
+
name: 'Brand-Accent',
|
|
469
|
+
tint: 0.8,
|
|
470
|
+
externalReference: ''
|
|
471
|
+
};
|
|
472
|
+
engine.block.setColor(shadowBlock, 'dropShadow/color', shadowColor);
|
|
549
473
|
```
|
|
550
474
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
## Query Spot Color Definitions
|
|
475
|
+
## Querying Spot Colors
|
|
554
476
|
|
|
555
|
-
### List
|
|
477
|
+
### List All Spot Colors
|
|
556
478
|
|
|
557
|
-
|
|
479
|
+
Retrieve all defined spot colors in the current editor session:
|
|
558
480
|
|
|
559
481
|
```typescript highlight-query-spot
|
|
560
|
-
// Query all defined spot colors
|
|
561
|
-
const spotColors = engine.editor.findAllSpotColors();
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
//
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
console.log(
|
|
580
|
-
`Retrieved SpotColor - Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`
|
|
581
|
-
);
|
|
582
|
-
}
|
|
482
|
+
// Query all defined spot colors
|
|
483
|
+
const spotColors = engine.editor.findAllSpotColors();
|
|
484
|
+
console.log('Defined spot colors:', spotColors);
|
|
485
|
+
|
|
486
|
+
// Query RGB approximation for a spot color
|
|
487
|
+
const rgbaApprox = engine.editor.getSpotColorRGBA('Brand-Primary');
|
|
488
|
+
console.log('Brand-Primary RGB approximation:', rgbaApprox);
|
|
489
|
+
|
|
490
|
+
// Query CMYK approximation for a spot color
|
|
491
|
+
const cmykApprox = engine.editor.getSpotColorCMYK('Brand-Primary');
|
|
492
|
+
console.log('Brand-Primary CMYK approximation:', cmykApprox);
|
|
493
|
+
|
|
494
|
+
// Read back the color from a block and check if it's a spot color
|
|
495
|
+
const retrievedColor = engine.block.getColor(primaryFill, 'fill/color/value');
|
|
496
|
+
if (isSpotColor(retrievedColor)) {
|
|
497
|
+
console.log(
|
|
498
|
+
`Retrieved SpotColor - Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`
|
|
499
|
+
);
|
|
500
|
+
}
|
|
583
501
|
```
|
|
584
502
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
### Get Color Approximations
|
|
588
|
-
|
|
589
|
-
Query individual color approximations with `engine.editor.getSpotColorRGBA()` or `engine.editor.getSpotColorCMYK()`.
|
|
590
|
-
|
|
591
|
-
Querying an undefined spot color returns magenta values—use this to detect missing definitions.
|
|
592
|
-
|
|
593
|
-
### Read Colors from Blocks
|
|
503
|
+
### Reading Back Colors
|
|
594
504
|
|
|
595
|
-
When reading
|
|
505
|
+
When reading colors from blocks, `engine.block.getColor()` can return an `RGBAColor`, `CMYKColor`, or `SpotColor`. Use a type guard to check if the color is a spot color:
|
|
596
506
|
|
|
597
507
|
```typescript
|
|
598
508
|
const isSpotColor = (color: unknown): color is SpotColor => {
|
|
@@ -605,96 +515,118 @@ const isSpotColor = (color: unknown): color is SpotColor => {
|
|
|
605
515
|
);
|
|
606
516
|
};
|
|
607
517
|
|
|
608
|
-
const
|
|
609
|
-
if (isSpotColor(
|
|
610
|
-
console.log(`
|
|
518
|
+
const color = engine.block.getColor(fill, 'fill/color/value');
|
|
519
|
+
if (isSpotColor(color)) {
|
|
520
|
+
console.log(`Spot color: ${color.name} at ${color.tint * 100}% tint`);
|
|
611
521
|
}
|
|
612
522
|
```
|
|
613
523
|
|
|
614
|
-
##
|
|
524
|
+
## Updating Spot Colors
|
|
615
525
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
We update spot colors by calling the set methods again with the same name. This changes how the color appears on screen without affecting the color name in the print output.
|
|
526
|
+
Modify a spot color's screen approximation. All blocks using this spot color will automatically display the updated appearance:
|
|
619
527
|
|
|
620
528
|
```typescript highlight-update-spot
|
|
621
|
-
// Update an existing spot color's approximation
|
|
622
|
-
// This changes how the color appears on screen without affecting the color name
|
|
623
|
-
engine.editor.setSpotColorRGB('Brand-Accent', 0.3, 0.5, 0.9);
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
const
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
engine.block.setColor(updatedFill, 'fill/color/value', updatedAccent);
|
|
529
|
+
// Update an existing spot color's approximation
|
|
530
|
+
// This changes how the color appears on screen without affecting the color name
|
|
531
|
+
engine.editor.setSpotColorRGB('Brand-Accent', 0.3, 0.5, 0.9);
|
|
532
|
+
console.log('Updated Brand-Accent RGB approximation');
|
|
533
|
+
|
|
534
|
+
// Show the updated color in a new block
|
|
535
|
+
const { fill: updatedFill } = createColorBlock(390, 220, 150, 150);
|
|
536
|
+
const updatedAccent: SpotColor = {
|
|
537
|
+
name: 'Brand-Accent',
|
|
538
|
+
tint: 1.0,
|
|
539
|
+
externalReference: ''
|
|
540
|
+
};
|
|
541
|
+
engine.block.setColor(updatedFill, 'fill/color/value', updatedAccent);
|
|
635
542
|
```
|
|
636
543
|
|
|
637
|
-
|
|
544
|
+
This updates only the screen preview. The actual printed output depends on the physical premixed ink identified by the spot color name.
|
|
638
545
|
|
|
639
|
-
|
|
546
|
+
## Removing Spot Colors
|
|
640
547
|
|
|
641
|
-
|
|
548
|
+
Remove a spot color definition when it's no longer needed:
|
|
642
549
|
|
|
643
550
|
```typescript highlight-remove-spot
|
|
644
|
-
// Define a temporary spot color
|
|
645
|
-
engine.editor.setSpotColorRGB('Temporary-Color', 0.5, 0.8, 0.3);
|
|
646
|
-
|
|
647
|
-
// Create a block using the temporary color
|
|
648
|
-
const { fill: tempFill } = createColorBlock(560, 220, 150, 150);
|
|
649
|
-
const tempColor: SpotColor = {
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
};
|
|
654
|
-
engine.block.setColor(tempFill, 'fill/color/value', tempColor);
|
|
551
|
+
// Define a temporary spot color
|
|
552
|
+
engine.editor.setSpotColorRGB('Temporary-Color', 0.5, 0.8, 0.3);
|
|
553
|
+
|
|
554
|
+
// Create a block using the temporary color
|
|
555
|
+
const { fill: tempFill } = createColorBlock(560, 220, 150, 150);
|
|
556
|
+
const tempColor: SpotColor = {
|
|
557
|
+
name: 'Temporary-Color',
|
|
558
|
+
tint: 1.0,
|
|
559
|
+
externalReference: ''
|
|
560
|
+
};
|
|
561
|
+
engine.block.setColor(tempFill, 'fill/color/value', tempColor);
|
|
562
|
+
|
|
563
|
+
// Remove the spot color definition
|
|
564
|
+
// Blocks using this color will display magenta (default fallback)
|
|
565
|
+
engine.editor.removeSpotColor('Temporary-Color');
|
|
566
|
+
|
|
567
|
+
console.log('Removed Temporary-Color - block now shows magenta fallback');
|
|
568
|
+
|
|
569
|
+
// Verify the color is no longer defined
|
|
570
|
+
const remainingSpotColors = engine.editor.findAllSpotColors();
|
|
571
|
+
console.log('Remaining spot colors:', remainingSpotColors);
|
|
572
|
+
```
|
|
655
573
|
|
|
656
|
-
|
|
657
|
-
// Blocks using this color will display magenta (default fallback)
|
|
658
|
-
engine.editor.removeSpotColor('Temporary-Color');
|
|
574
|
+
Blocks that reference a removed spot color will display in magenta (the default fallback color) to indicate the missing definition.
|
|
659
575
|
|
|
660
|
-
|
|
661
|
-
console.log('Removed Temporary-Color - block now shows magenta fallback');
|
|
576
|
+
## Spot Colors for Cutouts
|
|
662
577
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
578
|
+
Assign spot colors to cutout types for die-cutting operations in packaging and label production:
|
|
579
|
+
|
|
580
|
+
```typescript highlight-cutout
|
|
581
|
+
// Assign spot colors to cutout types for die-cutting operations
|
|
582
|
+
// First define a spot color for the die line
|
|
583
|
+
engine.editor.setSpotColorRGB('DieLine', 1.0, 0.0, 1.0);
|
|
584
|
+
engine.editor.setSpotColorCMYK('DieLine', 0.0, 1.0, 0.0, 0.0);
|
|
585
|
+
|
|
586
|
+
// Associate the spot color with a cutout type
|
|
587
|
+
// CutoutType can be 'Solid' or 'Dashed'
|
|
588
|
+
engine.editor.setSpotColorForCutoutType('Solid', 'DieLine');
|
|
589
|
+
|
|
590
|
+
// Query the assigned spot color
|
|
591
|
+
const cutoutSpotColor = engine.editor.getSpotColorForCutoutType('Solid');
|
|
592
|
+
console.log('Cutout type Solid uses spot color:', cutoutSpotColor);
|
|
667
593
|
```
|
|
668
594
|
|
|
669
|
-
|
|
595
|
+
Available cutout types are `'Solid'` and `'Dashed'`, representing different die-line styles used in print finishing.
|
|
670
596
|
|
|
671
|
-
## Spot Colors
|
|
597
|
+
## Exporting with Spot Colors
|
|
672
598
|
|
|
673
|
-
|
|
599
|
+
Export designs while preserving spot color information:
|
|
674
600
|
|
|
675
|
-
```typescript highlight-
|
|
676
|
-
//
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
//
|
|
683
|
-
engine.
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
601
|
+
```typescript highlight-export
|
|
602
|
+
// Export the design
|
|
603
|
+
const outputDir = './output';
|
|
604
|
+
if (!existsSync(outputDir)) {
|
|
605
|
+
mkdirSync(outputDir, { recursive: true });
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// Export as PNG for preview
|
|
609
|
+
const pngBlob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
610
|
+
const pngBuffer = Buffer.from(await pngBlob.arrayBuffer());
|
|
611
|
+
writeFileSync(`${outputDir}/spot-colors.png`, pngBuffer);
|
|
612
|
+
console.log(`\nPNG exported: ${outputDir}/spot-colors.png`);
|
|
613
|
+
|
|
614
|
+
// Export as PDF for print (preserves spot colors)
|
|
615
|
+
const pdfBlob = await engine.block.export(page, {
|
|
616
|
+
mimeType: 'application/pdf'
|
|
617
|
+
});
|
|
618
|
+
const pdfBuffer = Buffer.from(await pdfBlob.arrayBuffer());
|
|
619
|
+
writeFileSync(`${outputDir}/spot-colors.pdf`, pdfBuffer);
|
|
620
|
+
console.log(`PDF exported: ${outputDir}/spot-colors.pdf`);
|
|
689
621
|
```
|
|
690
622
|
|
|
691
|
-
|
|
623
|
+
When exporting to PDF, spot colors are embedded as named separations that RIP software can extract for plate generation. PNG exports use the RGB approximation for raster output.
|
|
692
624
|
|
|
693
625
|
## Best Practices
|
|
694
626
|
|
|
695
627
|
**Define early** - Register spot colors at initialization before applying them to blocks. Undefined colors display as magenta, which can confuse users.
|
|
696
628
|
|
|
697
|
-
**Use descriptive names** - Match your print vendor's reference (e.g., "
|
|
629
|
+
**Use descriptive names** - Match your print vendor's reference (e.g., "Brand-Red-485") to ensure correct ink matching in production.
|
|
698
630
|
|
|
699
631
|
**Provide both approximations** - RGB for screen display, CMYK for print-accurate previews. This gives designers the best experience across different workflows.
|
|
700
632
|
|
|
@@ -722,18 +654,18 @@ Ensure you're using the exact name string. Note that removing a spot color doesn
|
|
|
722
654
|
|
|
723
655
|
## API Reference
|
|
724
656
|
|
|
725
|
-
| Method
|
|
726
|
-
|
|
|
727
|
-
| `engine.editor.setSpotColorRGB(name, r, g, b)`
|
|
728
|
-
| `engine.editor.setSpotColorCMYK(name, c, m, y, k)`
|
|
729
|
-
| `engine.editor.findAllSpotColors()`
|
|
730
|
-
| `engine.editor.getSpotColorRGBA(name)`
|
|
731
|
-
| `engine.editor.getSpotColorCMYK(name)`
|
|
732
|
-
| `engine.editor.removeSpotColor(name)`
|
|
733
|
-
| `engine.editor.setSpotColorForCutoutType(type, color)` | Assign spot color to a cutout type
|
|
734
|
-
| `engine.editor.getSpotColorForCutoutType(type)`
|
|
735
|
-
| `engine.block.setColor(block, property, color)`
|
|
736
|
-
| `engine.block.getColor(block, property)`
|
|
657
|
+
| Method | Description |
|
|
658
|
+
| ------------------------------------------------- | ------------------------------------------------ |
|
|
659
|
+
| `engine.editor.setSpotColorRGB(name, r, g, b)` | Define/update spot color with RGB approximation |
|
|
660
|
+
| `engine.editor.setSpotColorCMYK(name, c, m, y, k)` | Define/update spot color with CMYK approximation |
|
|
661
|
+
| `engine.editor.findAllSpotColors()` | Get array of all defined spot color names |
|
|
662
|
+
| `engine.editor.getSpotColorRGBA(name)` | Query RGB approximation for a spot color |
|
|
663
|
+
| `engine.editor.getSpotColorCMYK(name)` | Query CMYK approximation for a spot color |
|
|
664
|
+
| `engine.editor.removeSpotColor(name)` | Remove a spot color from the registry |
|
|
665
|
+
| `engine.editor.setSpotColorForCutoutType(type, color)` | Assign spot color to a cutout type |
|
|
666
|
+
| `engine.editor.getSpotColorForCutoutType(type)` | Get spot color assigned to a cutout type |
|
|
667
|
+
| `engine.block.setColor(block, property, color)` | Apply color (including SpotColor) to a property |
|
|
668
|
+
| `engine.block.getColor(block, property)` | Read color from a block property |
|
|
737
669
|
|
|
738
670
|
## Next Steps
|
|
739
671
|
|
|
@@ -741,11 +673,22 @@ Ensure you're using the exact name string. Note that removing a spot color doesn
|
|
|
741
673
|
- [Apply Colors](./colors/apply.md) - Apply colors to fills, strokes, and shadows
|
|
742
674
|
- [CMYK Colors](./colors/for-print/cmyk.md) - Work with CMYK process colors
|
|
743
675
|
|
|
676
|
+
## Cleanup
|
|
677
|
+
|
|
678
|
+
Always dispose the engine when done to free resources:
|
|
679
|
+
|
|
680
|
+
```typescript highlight-cleanup
|
|
681
|
+
// Always dispose the engine to free resources
|
|
682
|
+
engine.dispose();
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
|
|
744
687
|
---
|
|
745
688
|
|
|
746
689
|
## More Resources
|
|
747
690
|
|
|
748
|
-
- **[
|
|
691
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
749
692
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
750
|
-
- **[Web Documentation](./
|
|
751
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
693
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
694
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|