typograph-editor-documentation
    Preparing search index...

    Release Notes - Version 1.0.0-20260506

    Release for with editor defaults and better handeling of POD-document converter.

    • fill_swatch_uuid: 'BLACK',
    • fill_tint: 0.3,
    • stroke_swatch_uuid: 'BLACK',
    • native_stroke_width: 1,
    • blend_mode: 'source-over',
    • stroke_dash: { name: 'solid', pattern: [] },
    • line_cap: 'butt',
    • line_join: 'miter',
    • miter_limit: 10,

    All optional properties so you only have to set what you want to change

    // ─── Element Defaults API ───────────────────────────────────────────────────              
    //
    // Defaults are session-only (reset on document open) and all properties are
    // optional — only set properties override the built-in element constructor
    // values. Swatch UUIDs are validated against the swatch library; invalid UUIDs
    // are silently ignored.
    //
    // Access via the global document instance:
    // g_typograph_document.set_default_fill(...)
    // ────────────────────────────────────────────────────────────────────────────


    // --- Fill ---------------------------------------------------------------

    // fill_swatch_uuid: built-in swatches or any user swatch UUID from the library
    g_typograph_document.set_default_fill('BLACK'); // built-in black
    g_typograph_document.set_default_fill('PAPER'); // built-in paper (white)
    g_typograph_document.set_default_fill('NONE'); // no fill (transparent)
    g_typograph_document.set_default_fill('REGISTRATION');
    g_typograph_document.set_default_fill('your-swatch-uuid'); // user-defined swatch

    // fill_tint: 0.0 (transparent) → 1.0 (full color), optional second argument
    g_typograph_document.set_default_fill('BLACK', 1.0); // 100% black
    g_typograph_document.set_default_fill('BLACK', 0.5); // 50% tint


    // --- Stroke -------------------------------------------------------------

    // stroke_swatch_uuid: same values as fill
    g_typograph_document.set_default_stroke('NONE'); // no stroke
    g_typograph_document.set_default_stroke('BLACK');
    g_typograph_document.set_default_stroke('your-swatch-uuid', 0.75); // with tint


    // --- Stroke width -------------------------------------------------------

    // native_stroke_width: in points (pt), 0.0 = no stroke
    g_typograph_document.set_default_stroke_width(0); // no stroke
    g_typograph_document.set_default_stroke_width(0.25);
    g_typograph_document.set_default_stroke_width(1);
    g_typograph_document.set_default_stroke_width(2.5);


    // --- Stroke dash pattern ------------------------------------------------

    // stroke_dash: { name: string, pattern: number[] }
    // pattern is an array of pt values [dash, gap, dash, gap, ...]
    // empty pattern = solid
    g_typograph_document.set_default_stroke_dash({ name: 'solid', pattern: [] });
    g_typograph_document.set_default_stroke_dash({ name: 'dashed', pattern: [4, 4] });
    g_typograph_document.set_default_stroke_dash({ name: 'dotted', pattern: [1, 3] });
    g_typograph_document.set_default_stroke_dash({ name: 'custom', pattern: [8, 3, 2, 3] });


    // --- Line cap -----------------------------------------------------------

    // line_cap_type: 'butt' | 'round' | 'square'
    g_typograph_document.set_default_line_cap('butt'); // flat, stops at endpoint
    g_typograph_document.set_default_line_cap('round'); // semicircle beyond endpoint
    g_typograph_document.set_default_line_cap('square'); // square beyond endpoint


    // --- Line join ----------------------------------------------------------

    // line_join_type: 'miter' | 'round' | 'bevel'
    g_typograph_document.set_default_line_join('miter'); // sharp corner (default)
    g_typograph_document.set_default_line_join('round'); // rounded corner
    g_typograph_document.set_default_line_join('bevel'); // flattened corner


    // --- Miter limit --------------------------------------------------------

    // miter_limit: number >= 1. Only relevant when line_join is 'miter'.
    // When the miter length exceeds limit × stroke_width the join falls back to bevel.
    g_typograph_document.set_default_miter_limit(10); // default
    g_typograph_document.set_default_miter_limit(2); // short miters, earlier bevel fallback
    g_typograph_document.set_default_miter_limit(100); // very long miters allowed


    // --- Blend mode ---------------------------------------------------------

    // blend_mode: one of the canvas GlobalCompositeOperation values
    g_typograph_document.set_default_blend_mode('source-over'); // normal (default)
    g_typograph_document.set_default_blend_mode('multiply');
    g_typograph_document.set_default_blend_mode('screen');
    g_typograph_document.set_default_blend_mode('overlay');
    g_typograph_document.set_default_blend_mode('darken');
    g_typograph_document.set_default_blend_mode('lighten');
    g_typograph_document.set_default_blend_mode('color-dodge');
    g_typograph_document.set_default_blend_mode('color-burn');
    g_typograph_document.set_default_blend_mode('hard-light');
    g_typograph_document.set_default_blend_mode('soft-light');
    g_typograph_document.set_default_blend_mode('difference');
    g_typograph_document.set_default_blend_mode('exclusion');
    g_typograph_document.set_default_blend_mode('hue');
    g_typograph_document.set_default_blend_mode('saturation');
    g_typograph_document.set_default_blend_mode('color');
    g_typograph_document.set_default_blend_mode('luminosity');


    // --- Bulk / set_element_defaults ----------------------------------------

    // Set multiple properties at once (merges with existing defaults):
    g_typograph_document.set_element_defaults({
    fill_swatch_uuid: 'BLACK',
    fill_tint: 1.0,
    stroke_swatch_uuid: 'NONE',
    native_stroke_width: 0,
    blend_mode: 'source-over',
    stroke_dash: { name: 'solid', pattern: [] },
    line_cap: 'butt',
    line_join: 'miter',
    miter_limit: 10,
    });


    // --- Adopt from a selected element --------------------------------------

    // Copy all styling from an existing element and use it as the new default:
    const el = g_typograph_document.get_active_page().selectedElements()[0];
    g_typograph_document.adopt_element_defaults(el);


    // --- Read current defaults ----------------------------------------------

    const defaults = g_typograph_document.get_element_defaults();
    console.log(defaults.fill_swatch_uuid); // 'BLACK' or undefined
    console.log(defaults.native_stroke_width); // number or undefined


    // --- Reset --------------------------------------------------------------

    // Clears all overrides; new elements revert to built-in constructor values:
    g_typograph_document.reset_element_defaults();

    The POD-converter is not yet setting all properties to the correct default values (mainly text releated). In this version the canvas/editor is better harnest against in correct defaults. When the manifest image url's null (as in POD-converter output) placeholders are used.