# blockenberg/2.0.11/blocks/image-overlap-text/frontend.js

Blockenberg — 600+ Advanced Gutenberg Blocks &amp; AI Agent for WordPress Block Editor, version 2.0.11. 155 lines.

- Page: https://pluginprobe.com/plugins/blockenberg/2.0.11/code/blocks/image-overlap-text/frontend.js
- Raw: https://pluginprobe.com/plugins/blockenberg/2.0.11/raw/blocks/image-overlap-text/frontend.js
- Modified: 2026-07-22T02:13:48+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/blockenberg/2.0.11/code/blocks/image-overlap-text/frontend.js#L10-L20`.

```javascript
(function () {
    var typoMap = [
        ['family','font-family'],['weight','font-weight'],['style','font-style'],
        ['decoration','text-decoration'],['transform','text-transform'],
        ['sizeDesktop','font-size-d'],['sizeTablet','font-size-t'],['sizeMobile','font-size-m'],
        ['lineHeightDesktop','line-height-d'],['lineHeightTablet','line-height-t'],['lineHeightMobile','line-height-m'],
        ['letterSpacingDesktop','letter-spacing-d'],['letterSpacingTablet','letter-spacing-t'],['letterSpacingMobile','letter-spacing-m'],
        ['wordSpacingDesktop','word-spacing-d'],['wordSpacingTablet','word-spacing-t'],['wordSpacingMobile','word-spacing-m']
    ];
    function typoCssVarsForEl(typo, prefix, el) {
        if (!typo || typeof typo !== 'object') return;
        for (var i = 0; i < typoMap.length; i++) {
            var v = typo[typoMap[i][0]];
            if (v !== undefined && v !== '' && v !== null) el.style.setProperty(prefix + typoMap[i][1], String(v));
        }
    }

    document.querySelectorAll('.bkbg-iot-app').forEach(function (app) {
        var opts = {};
        try { opts = JSON.parse(app.dataset.opts || '{}'); } catch (e) { }

        var imageUrl = opts.imageUrl || '';
        var imageAlt = opts.imageAlt || '';
        var imageRadius = opts.imageRadius !== undefined ? opts.imageRadius : 0;
        var overlapSide = opts.overlapSide || 'left';
        var overlapAmount = opts.overlapAmount !== undefined ? opts.overlapAmount : 48;
        var eyebrow = opts.eyebrow || '';
        var showEyebrow = opts.showEyebrow !== false;
        var heading = opts.heading || '';
        var subtext = opts.subtext || '';
        var bodyText = opts.bodyText || '';
        var ctaEnabled = opts.ctaEnabled !== false;
        var ctaLabel = opts.ctaLabel || 'Learn more →';
        var ctaUrl = opts.ctaUrl || '#';
        var ctaIsExternal = opts.ctaIsExternal || false;
        var decorative = opts.decorative || 'dots';
        var bgColor = opts.bgColor || '#ffffff';
        var panelBg = opts.panelBg || '#f9fafb';
        var eyebrowColor = opts.eyebrowColor || '#7c3aed';
        var headingColor = opts.headingColor || '#111827';
        var headingSize = opts.headingSize || 36;
        var subtextColor = opts.subtextColor || '#6b7280';
        var subtextSize = opts.subtextSize || 18;
        var bodyColor = opts.bodyColor || '#374151';
        var bodySize = opts.bodySize || 16;
        var ctaBg = opts.ctaBg || '#7c3aed';
        var ctaColor = opts.ctaColor || '#ffffff';
        var accentColor = opts.accentColor || '#7c3aed';
        var dotColor = opts.dotColor || '#e5e7eb';
        var maxWidth = opts.maxWidth || 1100;
        var paddingTop = opts.paddingTop !== undefined ? opts.paddingTop : 64;
        var paddingBottom = opts.paddingBottom !== undefined ? opts.paddingBottom : 64;
        var isRight = overlapSide === 'right';

        /* outer wrap */
        var wrap = document.createElement('div');
        wrap.className = 'bkbg-iot-wrap';
        wrap.style.cssText = 'background:' + bgColor + ';padding-top:' + paddingTop + 'px;padding-bottom:' + paddingBottom + 'px;';
        typoCssVarsForEl(opts.eyebrowTypo, '--bkbg-iot-ey-', wrap);
        typoCssVarsForEl(opts.headingTypo, '--bkbg-iot-h-', wrap);
        typoCssVarsForEl(opts.subtextTypo, '--bkbg-iot-st-', wrap);
        typoCssVarsForEl(opts.bodyTypo, '--bkbg-iot-bd-', wrap);

        /* inner */
        var inner = document.createElement('div');
        inner.className = 'bkbg-iot-inner' + (isRight ? ' bkbg-iot-inner--right' : '');
        inner.style.cssText = 'max-width:' + maxWidth + 'px;';
        wrap.appendChild(inner);

        /* image column */
        var imgCol = document.createElement('div');
        imgCol.className = 'bkbg-iot-image-col';

        /* decorative */
        if (decorative !== 'none') {
            var decor = document.createElement('div');
            decor.className = 'bkbg-iot-decor bkbg-iot-decor--' + decorative;
            decor.style.setProperty('--dot-color', dotColor);
            decor.style.setProperty('--accent', accentColor);
            imgCol.appendChild(decor);
        }

        if (imageUrl) {
            var img = document.createElement('img');
            img.className = 'bkbg-iot-img';
            img.src = imageUrl;
            img.alt = imageAlt;
            img.style.borderRadius = imageRadius + 'px';
            imgCol.appendChild(img);
        } else {
            var ph = document.createElement('div');
            ph.className = 'bkbg-iot-img';
            ph.style.cssText = 'background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-size:48px;color:#d1d5db;border-radius:' + imageRadius + 'px;';
            ph.textContent = '🖼️';
            imgCol.appendChild(ph);
        }
        inner.appendChild(imgCol);

        /* text column */
        var textCol = document.createElement('div');
        textCol.className = 'bkbg-iot-text-col';
        textCol.style.cssText = [
            'background:' + panelBg,
            isRight
                ? 'padding:40px ' + overlapAmount + 'px 40px 40px'
                : 'padding:40px 40px 40px ' + overlapAmount + 'px'
        ].join(';');

        if (showEyebrow && eyebrow) {
            var ey = document.createElement('p');
            ey.className = 'bkbg-iot-eyebrow';
            ey.style.color = eyebrowColor;
            ey.textContent = eyebrow;
            textCol.appendChild(ey);
        }

        if (heading) {
            var h = document.createElement('h2');
            h.className = 'bkbg-iot-heading';
            h.style.color = headingColor;
            h.textContent = heading;
            textCol.appendChild(h);
        }

        if (subtext) {
            var sub = document.createElement('p');
            sub.className = 'bkbg-iot-subtext';
            sub.style.color = subtextColor;
            sub.textContent = subtext;
            textCol.appendChild(sub);
        }

        if (bodyText) {
            var bod = document.createElement('p');
            bod.className = 'bkbg-iot-body';
            bod.style.color = bodyColor;
            bod.textContent = bodyText;
            textCol.appendChild(bod);
        }

        if (ctaEnabled && ctaLabel) {
            var cta = document.createElement('a');
            cta.className = 'bkbg-iot-cta';
            cta.href = ctaUrl;
            cta.style.cssText = 'background:' + ctaBg + ';color:' + ctaColor;
            if (ctaIsExternal) { cta.target = '_blank'; cta.rel = 'noopener noreferrer'; }
            cta.textContent = ctaLabel;
            textCol.appendChild(cta);
        }

        inner.appendChild(textCol);
        app.replaceWith(wrap);
    });
})();

```
