| 开发者 | luxsnap |
|---|---|
| 更新时间 | 2026年9月25日 18:23 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/wp-content/plugins/decoblocks, or install the plugin through the WordPress plugins screen directly.Yes. Every block also has a matching shortcode with a toolbar button and Quicktags button for the Classic Editor.
No. Styles and scripts are only loaded when needed, and all animations are lightweight, dependency-free JavaScript.
--dbk-box-color variable to the block (only the border color), so the shadow and title always used the default black. The 3D shadow is now tinted with your chosen color while keeping the Section Box's own shape: a top-left light source with the shadow cast toward the bottom-right (it does not glow on all sides like the Glow Box). The matching published-page fix ships in 3D Style Upgrade add-on 1.3.9.color="green" value is kept for compatibility) and Orange was added, in the block editor, on published pages, and in the Classic Editor menu.data-toc-num). The 3D version's number badges (3D Style Upgrade add-on 1.3.9) now show these numbers instead of numbering every item flatly as 1, 2, 3, 4.filter: drop-shadow that also blurred a shadow onto the quote text. Its shadow now matches Quote Box - Post-it 3D (10-5-2) exactly, with a consistent top-left light source: a drop shadow cast toward the bottom-right, a highlight along the inner top edge, and soft shading along the inner bottom edge. Only the shadow changed - the corner brackets' shape, thickness, color, position and padding are unchanged. The matching published-page fix ships in 3D Style Upgrade add-on 1.3.8.border-image, which this stylesheet deliberately avoids (it renders thinner and blurrier than intended), and it relied only on the existing faint box shadow for depth. Reverted border-image and rebuilt the depth with a consistent top-left light source: a white highlight on the top-left edge, plus a short, darker contact shadow and a wider soft shadow cast toward the bottom-right. Each bracket line now also gets its own drop shadow that follows the line shape (not a box-shaped shadow, so the brackets don't look like a second floating layer). The bracket lines still contain no black: the lit faces (top, outer left) use a lighter tint of your chosen color, and the faces away from the light (bottom, outer right) use your exact color.border-bottom-color) to fake depth, which made the bottom ends of the brackets look like dirty black stubs - especially visible on the published page. The bracket lines themselves no longer contain any black: they are now drawn as a single-color vertical gradient in your chosen color only (lighter tint at the top fading into your exact color at the bottom). The depth/shading is kept - it still comes from the quote box's existing soft drop shadow, which is unchanged. Bracket shape and thickness are unchanged. The 3D Style Upgrade add-on (paid, separate plugin) needs a matching update if it ships its own copy of this rule for published pages.do_blocks() + do_shortcode() on the entire post content a second time, inside the normal single-pass block rendering that WordPress already performs for the_content. Any post containing a TOC block therefore had every block in it rendered twice on every single frontend page view (no caching across requests), roughly doubling CPU cost for that page and re-running any other plugin's render_block filters twice per request - a likely cause of slow page loads, intermittent errors, and (under concurrent traffic on limited PHP-FPM workers) full site unavailability. The TOC block now uses the same lightweight placeholder mechanism the [decobl_toc] shortcode already used (fill in the actual table of contents once, in the the_content filter, after normal rendering has already finished) - producing the identical table of contents with no extra rendering pass.#dbk-toc-anchor-0, but nothing ever added a matching id="dbk-toc-anchor-0" to the actual heading on the page - so every TOC link pointed at a destination that didn't exist anywhere in the page, whether the TOC came from the block or the [decobl_toc] shortcode. Headings now get that id automatically (and if a heading already has its own id - e.g. set manually via the core "HTML anchor" field - that existing id is used instead of overwriting it), so clicking a TOC entry actually scrolls to that section now.animation-duration override for the slow/fast classes on the 3D variant (and the base non-3D effect was missing them entirely), so every speed setting played at the same fixed rate. Rewired the animation so the speed setting is actually applied, for both the base effect and its 3D preview.currentColor (your text's normal color, usually black) with your chosen sparkle color only flashing through briefly - so most of the time it looked like plain dark text with a stray glint, not a colorful effect. Rebuilt the gradient to use your chosen color across its full length, with the white glint passing over it, so the color you picked is what's actually emphasized instead of being drowned out. The 3D Style Upgrade add-on (paid, separate plugin) needs its matching v1.3.5 update installed for this to appear on a licensed, published site - see that plugin's own changelog.border-style: double, which cannot always split small widths into equal whole pixels), combined together with a soft drop shadow across the whole quote box, exactly as originally requested. The 3D Style Upgrade add-on (paid, separate plugin) needs its matching v1.3.4 update installed for this to appear on a licensed, published site - see that plugin's own changelog.<div>. But their PHP output (the part that actually reaches the published page) only ever returned the bare inline <mark>/<span> element itself, with no such wrapper - so several Highlight or Sparkle blocks placed one after another, which looked like separate lines while editing, collapsed onto a single run-on line once published, since consecutive inline elements with no wrapper flow together regardless of how they were laid out in the editor. Wrapped each block's frontend output in its own <div> (decoblocks/highlight → .dbk-highlight-wrap, decoblocks/sparkle → .dbk-sparkle-wrap) so the published page now stacks them exactly as shown in the editor. The [decobl_highlight]/[decobl_sparkle] Classic Editor shortcodes - which are meant to highlight/sparkle a few words in the middle of a sentence - are untouched and still render inline with no wrapper, since they share the same rendering engine but are invoked separately from the block.[decobl_glow rainbow3d="1"].::before/::after) still kept its own separate drop shadow on top of that, so the two brackets visually "floated" one layer above the box beneath them instead of reading as one continuous surface. Removed the brackets' own individual box-shadow - their light/dark top-to-bottom border coloring is enough on its own, layered under the single whole-element shadow, so it now reads as one consistent raised surface end to end.::before/::after) - the flat area between them (where the quote text sits) had no shading at all, so the box read as "raised only at both edges, flat in the middle" instead of one continuously lifted shape. Added a soft ambient box-shadow to the element itself (on top of the brackets' own existing shading), so the whole quote box now reads as a single continuously raised surface, brackets included.color-mix() fix, because the gradient's darkest stop was mixed 60% color / 40% black - dark enough to read as near-black on lower-saturation colors - and the bar's own ambient drop shadow was strong enough to visually blend into that dark end. Lightened the gradient's dark stop to 78% color / 22% black and softened the ambient shadow, so the bar's base now reads as a darker shade of the chosen color instead of black bleeding through.<div> (in both the PHP renderer and the block editor's own preview), so the Table of Contents block - which scans the page's real HTML for <h2>/<h3> tags - could never pick it up, no matter what a writer intended the title to be. Added a dedicated "Title heading level" dropdown (Default / H2 / H3 / H4 / H5 / H6) that appears once a title is entered, for both Section Box and Glow Box, in the block editor, and wired the same option into the [decobl_box title_tag="h2"] / [decobl_glow title_tag="h2"] Classic Editor shortcodes. Titles marked H2 or H3 are now automatically picked up by the Table of Contents block, exactly like any other H2/H3 in the post. Leaving this at its default keeps rendering a plain, non-heading <div> exactly as before, so already-published posts are unaffected. Also added a margin: 0 reset to the title's CSS so switching it to a real heading tag doesn't introduce the browser's default heading margin around it.color-mix() (the same technique already used for the Highlight gradient) so the bar is a single continuous shade of the chosen color, light to dark, with no separate black layer showing through. The bar's outer black ring outline is also removed for the same reason; only an ordinary ambient drop shadow (which is expected to be dark regardless of the element's own color) remains.dbk-frontend.css is reorganized into a numbered block scheme (e.g. 1-1-1/1-1-2 for Speech Bubble's free/3D pair, 10-1-1/10-1-2 for Quote - Classic's free/3D pair, and so on) so that every element's free-tier CSS sits immediately next to its own 3D CSS, instead of free styles living in one part of the file and all 3D styles being grouped together at the end. This is a structural change only - no CSS class name was renamed (blocks-editor.js's class-name dependencies are untouched), and the free/3D editor-only switch continues to work exactly as before via .editor-styles-wrapper. The goal is to make it structurally harder to accidentally reuse one generic 3D treatment across visually distinct named styles, and to make it obvious, block by block, which CSS is free (editor + published) and which is 3D-preview-only (editor only, until the paid 3D Style Upgrade is installed and licensed).box-shadow blur sitting on top of the line that visually spread past its edges and made it read as bulkier than its real height. The blur is removed and the line height is reduced once more (2px), so the top/bottom lines now render as genuinely thin, crisp strokes with the light/dark emboss built into the line itself rather than a shadow around it.@keyframes dbk-glow-pulse animation definition and its prefers-reduced-motion override - both became dead code once Glow Box's free-tier pulse/twinkle animation was removed in 2.44.24 (nothing in the stylesheet referenced them anymore).::after pseudo-element, but the bubble's own speech-bubble tail (.dbk-bubble--left/--right.dbk-bubble--filled/--outline::after) already uses ::after for its triangle - an element can only have one ::after, so the higher-specificity 3D rule completely replaced the tail with the badge instead of the two coexisting. This is what showed up as a stray shape where the tail should be. The badge is removed; the tail is intact again, and the bubble's depth still reads clearly from its shadow/gloss alone.box-shadow only (not the background-clip trick that caused the corner-banding bug in 2.44.21).--dbk-highlight-gradient-color (lighter tint to the picked color to a darker shade of the same color, using color-mix(), with a flat-color fallback for older browsers) - no fixed color is used anywhere in it.border-image for the gradient top/bottom lines - it rendered thinner and fainter than the plain base version instead of thicker (a visible regression, confirmed by screenshot). border-image is no longer used anywhere in this file; Line Frame's 3D lines are now drawn as solid overlaid bars instead, guaranteed to render as intended across browsers.#F5C400 in 2.44.21, silently ignoring the sidebar's "Gradient Color" swatch (blocks-editor.js was already correctly writing the chosen color into --dbk-highlight-gradient-color - only the CSS had stopped reading it). Restored to read that variable, exactly as it worked in 2.44.18.background-clip: padding-box, border-box trick) rendered as visibly disconnected color bands at the corners instead of a smooth border, and was nearly invisible in the inserter's small hover-preview thumbnail. Replaced with a box-shadow-based glow in the block's own already-configured color - renders smoothly at any size and is far more visible at thumbnail scale since blur naturally reads better small than a 2px gradient border does.--dbk-bubble-color, --dbk-box-color, --dbk-quote-color, --dbk-divider-color) instead of a fixed decorative palette, and expresses "3D" purely through layered light/shadow (translucent white highlight + translucent black shadow, plus card-elevation drop shadows and embossed text-shadow on glyphs) - never by introducing a new color the user didn't choose. Each of the 6 quote sub-styles and 7 divider sub-styles still gets its own distinct rule built on its own existing element (no two share a rule), per the redesign in 2.44.21, but none of them recolor what the user already set.blocks-editor.js wholesale to the 2.44.16 original also undid the Firework Effect icon fix from 2.44.18 (its icon collided with Glow Box's icon, and its 3D-variant icon collided with Sparkle Text's icon). That collision is back to being fixed: both the base and 3D-variant Firework Effect entries use their own dedicated icon again, restored exactly as in 2.44.18. Also restored the window.DECOBL_FIREWORK_COLORS.confetti3d palette hook (editor-only, from 2.44.18) so the Firework Effect's "Multi-Color Burst (3D)" preview actually bursts in real colors instead of silently falling back to gold..editor-styles-wrapper (editor-only, confirmed working) and stay fully inside each element's own box (inset shadows, background-clip: text, border-image, small in-bounds pseudo-elements) - nothing relies on box-shadow/filter bleeding outside the block, which is what the inserter's hover-preview panel was confirmed to clip in 2.44.19..dbk-3d-premium, .dbk-glow--rainbow3d, .dbk-sparkle--rainbow3d, .dbk-bullet-list--rainbow3d, .dbk-highlight--gradient3d, .dbk-divider--3d, plus the related firework icon/color additions in blocks-editor.js) has been fully removed. assets/css/dbk-frontend.css and assets/js/blocks-editor.js are now byte-for-byte identical to the 2.44.16 originals.diff -rq against the original upload: only dbk-frontend.css, blocks-editor.js, decoblocks.php and this readme differ)..dbk-3d-premium's corner badge and .dbk-glow--rainbow3d's twinkle-star decorations were positioned with negative offsets (deliberately hanging slightly outside the block's own box, e.g. top: -11px) and their glow used an outward box-shadow/filter: drop-shadow(...) - all of which extend past the block's own edges. The inserter's hover-preview panel fits each preview into a small fixed box and very plausibly clips anything that extends past that box's edges, so all of it could be getting silently cut off there even though it renders fine in the full-size editor canvas. Every 3D indicator for these blocks now stays entirely inside the block's own boundary: the border ring and glow are inset box-shadows (which by definition can never render outside the element), and the corner badge/twinkle stars are positioned inside the box instead of overlapping its edge - so nothing here depends on whether the preview panel clips overflowing content..dbk-3d-premium (Speech Bubble, Section Box, and all six Quote Box styles) used a background-image gradient-border trick that silently replaced any background/background-image the underlying style already had - so Quote Box - Sticky Note lost its cream postit color entirely and Quote Box - Corner Frame lost its gradient corner-bracket decoration, both collapsing into a plain white box. Replaced it with a purely additive treatment (a filter: drop-shadow(...) glow plus a small "✨ 3D" corner badge as its own ::after element) that never touches background, border, or box-shadow on the block itself, so every style keeps its own real look underneath, whatever it already was..dbk-highlight--gradient3d) technically used a gradient, but it only faded to transparent in the last 10% of the text width, so on short sample text it read as one flat color - indistinguishable from just picking a different highlight color. It now uses the same highlighter-bar shape as the free Yellow/Green styles (color filling the bottom ~40% of the line) but with the color itself running through the chosen Gradient Color into the brand accent colors across the full width, so it reads as a gradient at a glance.lightbulb - identical to the unrelated Glow Box block's icon - while its own "(3D)" variation used star-filled, identical to the unrelated Sparkle Text block's icon. Two different blocks shared one icon each, and Firework Effect's own base/3D pair didn't even match each other, so nothing in the inserter's icons reliably told these blocks apart or showed which entries were variations of the same block. Firework Effect now has its own dedicated icon (a small multi-color burst), used identically for both its base and 3D entries.is3d/3D attribute and its CSS class the whole time. The root cause: this free plugin's own stylesheet never actually defined the classes those 3D toggles switch on (.dbk-3d-premium, .dbk-glow--rainbow3d, .dbk-sparkle--rainbow3d, .dbk-bullet-list--rainbow3d, .dbk-highlight--gradient3d, .dbk-divider--3d) — every one of them was left entirely to the paid 3D Style Upgrade add-on, so without it there was nothing to render any visible difference at all, contradicting the inserter's own tooltip text ("This is a free preview shown in the editor only"). Added a real free-tier preview design (gradient border/glow, rainbow shine, twinkle stars, gradient bullet icon, gradient highlight, gradient divider bar) for every one of these classes, scoped with the .editor-styles-wrapper selector prefix so it only ever renders inside the Block Editor (main canvas and inserter preview alike) and never on the published front-end — sites without the add-on still see exactly the same plain output on the live page as before, preserving the reason to purchase the upgrade.colors: 'confetti3d') silently fell back to the plain gold burst in the editor, for the same reason — window.DECOBL_FIREWORK_COLORS.confetti3d was only ever populated by the paid add-on. The block editor script now fills in its own free preview-only rainbow palette for confetti3d (only when the object doesn't already have one, so it never overrides the real add-on's colors on sites that have it installed). Since this script is only ever loaded on the editor screen (enqueue_block_editor_assets), the published front-end - where dbk-firework.js is loaded alone - is completely unaffected and still requires the add-on for a real multi-color burst.<blockquote> element, and many themes attach their own default blockquote look with a selector like .entry-content blockquote — one class plus the blockquote tag. That selector's specificity is higher than this plugin's own single-class .dbk-quote--line-frame-style padding rules, and the theme's stylesheet is enqueued after this plugin's, so on ties the theme wins the cascade outright — the plugin's border rules already carried !important for exactly this reason (added in an earlier fix), but the padding and outer margin rules did not, so the theme's own blockquote padding (as little as a few pixels) and margin silently replaced the plugin's on the actual published page, while wp-admin's editor screen — not subject to the same theme stylesheet in the same way — kept showing the intended spacing. The base block's margin now carries !important; each style's padding selector was changed to a two-class selector (e.g. .dbk-quote.dbk-quote--line-frame) so it outranks the theme's selector on pure specificity without using !important — the latter would have also defeated the 3D Style Upgrade add-on's own (already-working) higher-specificity override for the Corner Frame style, which needed to keep winning exactly as before.<p> children of these blocks, not on heading children — so whatever top/bottom heading margin the active theme happened to use leaked in unevenly on top of the block's own (symmetric) padding. The margin reset now applies to any first/last child element, not just paragraphs, so the block's padding alone determines the spacing regardless of tag or theme. This affects the free plugin only; the 3D Style Upgrade add-on shares the same stylesheet and needed no separate change.[decobl_toc] shortcode never had this problem, since it scans the fully rendered page content. The Table of Contents block now scans the same fully rendered content, so both methods behave identically.window.DECOBL_STICKERS) on the same admin screen. Whichever one printed second silently overwrote the other, and the Classic Editor's version never carried favorites data, so it wiped out the favorites the block editor had just loaded. The Classic Editor's data now uses its own separate variable name (DECOBL_CLASSIC_STICKERS), so the two no longer collide.white-space: nowrap button style. Pack names now wrap inside their button as intended.!important rule. On themes that style blockquote through a higher-specificity selector (e.g. .entry-content blockquote), that theme rule could still win over the reset, letting the theme's own default left border (often in the theme's accent color) show through on quote styles that intentionally have no border of their own in the free version, such as "Corner Frame" and "Postit" — making them look like a plain box with a single stray line on the left instead of their designed look. The reset (and each quote style's own border, e.g. "Classic"'s left border and "Line Frame"'s top/bottom lines) is now marked !important, so DecoBlocks' own design always wins regardless of theme specificity.transform: scaleX() directly on the editable text element itself, which is a known category of browser bug — applying transform to a contenteditable element can break its cursor/click-to-focus handling. The same visual sweep-in effect is now done by animating the background's width instead of using transform, which doesn't interfere with editing. Requires updating the separate "DecoBlocks 3D Style Upgrade" plugin to 1.2.3+ as well.<blockquote> element, which some themes style with their own default border/background — this could silently bleed into a DecoBlocks quote style that doesn't already fill that space itself (most visibly, "Line Frame" could pick up an unwanted extra border from the active theme, on top of its own top/bottom lines). DecoBlocks' Quote block now explicitly resets border/background to a clean slate before applying its own style, so it always renders exactly as designed regardless of the active theme.align="left"). Left alignment only changes the text alignment inside the block — the block's own padding is untouched, so text never sits flush against the edge. Requires updating the separate "DecoBlocks 3D Style Upgrade" plugin to 1.2.2+ as well (see below).<iframe>) was never receiving this plugin's own CSS file at all, on any site, license or no license. The stylesheet loaded successfully (HTTP 200) but was never synced into that iframe, so every block - not just the 3D variants, the plain 2D ones too - appeared completely unstyled while writing (shapes, borders, backgrounds all missing), even though the exact same CSS rendered correctly on the actual published post and in Preview. Every block is now registered with WordPress's style parameter (register_block_type()), which is the officially guaranteed mechanism for syncing a block's CSS into the editor iframe, instead of relying on a plain wp_enqueue_style() call that iframe-based editors can silently ignore. Requires updating the separate "DecoBlocks 3D Style Upgrade" plugin to 1.2.1+ as well, which received the matching fix for its own 3D CSS.sanitize_title() already percent-encodes non-Latin slugs; encoding it again turned every % into %25, corrupting it beyond recognition on the marketplace server).[] is truthy). The preview + "license required" message now shows consistently for any locked pack, and the full list shows consistently once a valid key is entered.example definition to all 12 blocks so their real appearance is visible before inserting. (Insert Sticker and Buy 3D Style Upgrade are interactive/action blocks with no fixed visual output, so they show an empty preview rather than a placeholder — that's inherent to how they work, not a bug.)dbk_-prefixed shortcode registrations (dbk_sticker and the dbk_* block shortcodes) that were kept as backward-compatible aliases — all shortcodes now use only the decobl_ prefix.display: inline-flex, which is inline-level — two bubbles typed on separate lines could end up sitting side-by-side on the same row instead of stacking, in both 2D and 3D. Changed to display: flex (block-level) so each bubble always starts on its own linelabel attribute rather than wrapped content — it now inserts a default "Congrats!" label so there's something visible to editgradient_color shortcode attribute) to pick any color, which fades from solid to transparent left-to-rightmark.dbk-highlight { background: none; }) had higher CSS specificity (tag+class) than the 3D variant rule (class only), so it always won regardless of source order and silently cancelled the gradient. The 3D rule's selector is now .dbk-highlight.dbk-highlight--gradient3d (matching specificity, correctly overriding the base rule)