2026
- July 14 - Why typography-v2 became just typography (and an alias)
- July 14 - Why the color picker moved to Coloris, and why opacity is opt-in
- July 15 - Why testimonial ratings render as inline SVG, not Font Awesome
- July 15 - Why the testimonial quote allows safe inline HTML, not a rich editor
- July 15 - Why a shortcode's designs are a registry, not hardcoded templates
- July 15 - Preset colors: why we keep the reference picker instead of a frozen hex
- July 15 - Why the Posts read-more reuses button presets instead of duplicating the Button shortcode
- July 15 - Why Posts loads card CSS per-design, auto-detected by filename
- July 15 - Why Posts gaps consume the shared Gap Scale presets
- July 15 - Why option-gating pickers use a new option id instead of migrating the old scalar
- July 15 - Why the off-canvas panel takes elements, not a menu-or-snippet toggle
- July 15 - Why nested columns are columns-in-columns (one level), not an Inner Row element
- July 15 - Why nested columns render through fw_inner_row / fw_inner_column alias shortcodes
- July 15 - Why the live editor re-renders from the model to nest a column instead of moving the DOM
- July 15 - Why footer section dividers are now opt-in, not a default border
- July 16 - Why we're adopting React incrementally, not rewriting UnysonPlus
- July 16 - Why popover pickers deselect on click-again instead of needing a 'None' tile
- July 17 - Why the Mega Menu column width is an inline image-picker, not the Column shortcode's responsive popover
- July 17 - Why 'disable text selection' is an opt-in General → Base toggle, not a new Settings tab
- July 18 - Why option-type docs are one index + a dozen deep-dives, not 52 stubs
- July 18 - Why the default heading scale shrank — and why line-height was the real fix
- July 19 - Why Theme Settings docs are one file per tab — with every choice listed
- July 19 - Who edits the Site Converter — and how kit users feed it back
- July 20 - Why the page-title H1 is theme-rendered with a toggle, not a per-page shortcode
- July 20 - Why footer columns got an 'Auto Width' mode outside the 12-grid
- July 20 - Why extra footer bars are a filter, not per-container option files
- July 22 - Why image treatments became a Theme Settings preset, not more Card Styles
- July 22 - Whether to invest in agentic-browsing readiness — and whether to build WebMCP now
- July 23 - Why cinematic scroll pages became a Scrollytelling layout, not a new module
- July 23 - Why [portfolio] grew into a rich element instead of deferring to [posts]
- July 23 - Why portfolio display settings live in Theme Settings, bridged by one filter
- July 23 - Where does a new gallery design belong — the core Gallery or the 3D Gallery?
- July 23 - Why gallery card links live ON the image (attachment meta), and post-driven galleries came free
- July 23 - 3D Gallery Motion: a nested multi-picker (via a NEW key) plus CSS-sticky scroll pinning
- July 23 - Should Page Builder pages show the theme's page title?
- July 24 - How does a GSAP timeline become builder options a non-coder can drive?
- July 24 - One data repo for all content libraries; presets get a browse option, not a rewrite
- July 24 - Securing author-written JS: gate execution, not the UI
- July 24 - How far should the Animation Engine expose GSAP — and how do we teach it?
- July 24 - Replicating a cinematic site: live, user-replaceable elements over baked-in fidelity
- July 24 - The cinematic "camera pan" is a moving backdrop, not a camera — so we made it a Stage option
- July 24 - Is the Animated Heading shortcode redundant now that the Animation Engine has text effects?
- July 24 - Animated hand-drawn accents: two-state APNG (in → idle) with a cache-bust restart, not SVG
- July 25 - Per-batch scatter with synced text: one Stage of scenes, not five separate galleries
- July 25 - Animated (Lottie) icons: ship JSON only — .lottie is a delivery optimization, not a render one
- July 25 - Why Icon Badges get their own preset type, not a fold into Box or Image Styles
- July 25 - "Overlay on last section" as a Footer Layout toggle — positioning only, JS-gated
- July 25 - Why cross-column drag-and-drop was a small opt-in, not a new post type
- July 25 - Where do the Animated Icons toggles live — a standalone extension Settings page, or Theme Settings → Icons?
- July 26 - A dozen uploads/unysonplus-* folders, or one uploads/unysonplus/ parent?
- July 26 - The builder's 'motion timeline' is fixed Start/Middle/End keyframes on an auto progress source — not an editor
- July 26 - The GSAP snippet generator mirrors the Custom Code contract — it is not a full GSAP playground
- July 26 - Smooth scroll belongs to the engine, and the scroll clock is a shared loop — not a ScrollTrigger port
- July 29 - Post Types validation reports what will not register — it never blocks the save
- July 29 - The deferred rewrite flush belongs on wp_loaded, not inside our own init callback
- July 29 - Removing a post type row hides content rather than deleting it — so we made removal recoverable instead of forbidding it
- July 29 - Relationship fields drive the multi-select option type's population modes — we did not build a new control
- July 29 - Post Types ships a "Get PHP code" export — the extension argues for itself by making itself removable
- July 30 - Copyright columns align by count, not by a per-column dropdown
- July 31 - The converter-improvement loop: how to build a section the converter can't yet map
- July 31 - Converting a site: fix the converter's algorithm, not the output
- July 31 - Converter translation: computed styles first, or an exhaustive Tailwind class map?
- July 31 - Naming the badge/pill primitive: rename announcement_pill → badge
- August 1 - One card model for wc_products: drop the Classic/Slot toggle + the presence switches, add a Box Preset
- August 1 - Container Width means CONTENT width, not the outer box (gutter lives outside)
- August 1 - Why an element's content layout is a “Card” but its skin is a “Box”
- August 2 - Unmapped styles: carry the source CSS class, or synthesize Custom CSS?
- August 2 - Exact spacing capture: arbitrary values (pt-[40px]) instead of renumbering the scale to Tailwind
- August 3 - Where should a new shortcode live — decide by reuse scope alone, or also ask distribution intent?
- August 3 - How should an outside agent improve the converter — fork it, or build the full site + report a fix sketch?
- August 3 - Converter feedback: carry the agent's got-vs-expected, and how often may it ask to send?
- August 5 - Why shortcode colour defaults now follow the site's Color Presets
- August 5 - Why the Live Editor's Sections panel becomes a nested Structure navigator
- August 6 - Why the AI Dev Kit's fetched folders live under assembled/
- August 8 - Where should the converter's element-mapping table live — the shortcode docs or the AI Dev Kit? And should it be generated?
- August 8 - Why section/column need a text_align option separate from content alignment (and why special_heading keeps its master alignment)
- August 9 - Where should newsletter subscribers live — a custom post type or custom tables — and how should lists, tags and segments be modelled?
- August 9 - How should the Site Converter carry a source button's hover animation — reproduce its CSS verbatim, or classify it into the theme's named hover-effect vocabulary?
- August 9 - The special-heading subtitle was almost never used by the converter — should we map a following paragraph into it, and should the field become a rich editor?
- August 10 - When a source element's styling classes can't all map to native options — like a text logo's font-serif / tracking-tight / hover:text-primary — how should the converter translate them, and does the rule apply to chrome as well as content?
- August 10 - When the converter can't map a source class (like max-w-2xl) to a native shortcode option, where must that style go — and what's the rule between the child theme stylesheet, an element's Custom CSS, and Theme Settings → Miscellaneous → Custom CSS?
- August 10 - When a source constrains its content to a max-width the theme has no preset for, should the converter snap to the nearest fixed preset, emit a per-section custom width, or tokenize container widths into a reusable library?
- August 11 - The Section now routes Min Height, Container Width and vertical-align to stylesheets — should the background (color/gradient/image/overlay) move to the per-page page-{id}.css too, or stay an inline style?
- August 12 - Why Button Set is its own option type instead of a display mode on radio
- August 13 - Why shape dividers are their own library storing geometry only, with colour per-instance
- August 13 - Should we publish a public Technology & Roadmap page — and how do we frame the legacy?
- August 13 - Why the tooltip is called fw-tooltip and not floating-ui
- August 13 - When the deterministic converter reads a source built in Tailwind, why not just copy the source's Tailwind classes into each shortcode's Advanced → Custom CSS Class field and be done — instead of mapping every element to native options?
- August 14 - Is the extension architecture itself legacy — should elements be rewritten block-native?
- August 15 - Was it worth replacing WordPress's media frame to get Backbone out of the core?
- August 15 - How should Unyson+ elements appear in Gutenberg — ported, or delegated?
- August 15 - The options modal shipped 6.7 MB — ship schemas instead of markup?
- August 15 - Deleting Mega Menu erased it from the Extensions manager — hand-maintain the catalog, or derive it?
- August 16 - Should a pasted CodePen become native shortcodes, and where should that live?
- August 16 - The plan said the builder canvas rewrite needed a forcing reason. Why did we do it anyway?
- August 17 - Front-end memory was halved. Why did we stop instead of finishing the job?
- August 17 - Revision history was capped at 20 per page. Why did that turn into 150 MB?
- August 17 - The React controls looked right and rendered right. Why test them against PHP at all?
- August 17 - Every public endpoint already checked a nonce. Why add rate limiting?
- August 17 - The combined script doesn't look minified — is that a bug?
- August 18 - A block's values never meet the validator that guards the page builder. Why leave it that way?
- August 19 - Why we keep the 'Enable' switch even though image-picker choices are now deselectable
- August 19 - Why can't a header be transparent AND shrink its logo on scroll? Splitting header behavior into two composable states.
- August 19 - Why the group container gained a native title/desc instead of a leading html option
- August 20 - Why the typography overhaul is staged as "v3", then promoted to canonical
- August 20 - Why converted styles keep getting overruled — and why we re-assert the source instead of building an overrule detector
- August 20 - Why theme typography went fluid and accessibility-first
- August 21 - Converting a store — should the converter auto-detect WooCommerce, or gate it behind a checkbox?
- August 21 - Converting an inner page — does the user hand-uncheck options, or should the converter infer it from the URL?
- August 22 - When the converter derives a site's Box Presets, do we replace the built-in defaults or keep them?
- August 22 - Where should the deep Site Converter docs live — in the extension, or moved to the AI Dev Kit?
- August 23 - Future-proofing the Steps/Process shortcode — full Card Rows now, or a Box Preset first?
- August 23 - How should the converter map ALL shortcode/theme-settings options — a detector per option?
- August 23 - How should the spacing & gap scales handle modern mid-range and large gutters?
- August 23 - Should the converter use the local AI to pick a shortcode's style, or stay deterministic?
- August 23 - How should the Site Converter derive Button Size presets from a source's buttons?
- August 24 - Testimonials extra stat lines — a repeatable label+value, a single pair, or freeform text?
- August 24 - Should we document every PHP function — and how?
- August 24 - A converter option is “unmapped” — is that a bug to fix or a default to keep?
- August 24 - Which container owns a card's box on conversion — the icon_box, or its column?
- August 25 - Adding entrance animations on conversion — should the local AI drive it, or the deterministic converter?
- August 26 - Why is the per-post SEO title empty by default — shouldn't it be pre-filled with the template?