Sitemap
Every page on this site, grouped by section — 814 pages in all. Looking for the machine-readable version? It's at /sitemap.xml.
Main (1)
Manual (296)
- Accordion
- Add a shortcode
- Addable Box
- Addable Option
- Addable Popup
- AI assist
- Animated Counter
- Animated Heading
- Architecture
- Architecture overview
- Audio Player
- Author Box
- Avatar
- Backend
- Background Image
- Background Pro
- Badge
- Before / After
- Bleed Section
- Block (Div)
- Blockquote
- Body Templates
- Bootstrap Columns to CSS Grid & Flexbox
- Border Style Picker
- Box Shadow
- Build your first child theme
- Build your first page
- Builder
- Business Info
- Button
- Button Hover Animation
- Button Presets
- Button Set
- Button Style Picker
- Calendar
- Call To Action
- Carousel
- Catalog Mode
- Checkbox
- Checkboxes
- Clean flexbox output
- Code Block
- Code Editor
- Color Picker
- Column
- Column Split
- Column widths & the grid
- Common controls (Animations & Advanced)
- Comparison Table
- Concepts & glossary
- Conditional assignment
- Contact Form
- Container
- Convert from a file
- Convert from a URL
- Convert HTML to WordPress — Free Site Converter
- Cookbook
- Countdown Timer
- Create a shortcode design (design pack)
- Create Extension
- Create Option Type
- CSS Helpers
- Custom Save Location
- Customizer
- Data & Content Modeling
- Data flow: edit → stored JSON → render
- Date Picker
- Datetime Picker
- Datetime Range
- Developer reference
- Directory Structure
- Divider
- Dynamic Content
- Dynamic Content
- Editor & Page Builder
- Extension
- Extension system & update hooks
- Extensions
- Feature List
- Flexbox
- Flexbox (Div)
- Flexbox (Div)
- Flip Box
- For developers
- For Developers
- Form Builder
- Framework
- Framework core hooks
- Free ACF Alternative — Custom Fields for WordPress
- Free WooCommerce Builder and Elements for WordPress
- Free WordPress AI Site Builder Assistant (Beta)
- Free WordPress Asset Optimizer — Combine CSS and JS
- Free WordPress Backup Plugin
- Free WordPress Blog Posts Extension
- Free WordPress Breadcrumbs Plugin
- Free WordPress Custom Post Type Plugin
- Free WordPress Custom Sidebars Plugin
- Free WordPress Form Builder
- Free WordPress Live Front-End Editor
- Free WordPress Mega Menu Plugin
- Free WordPress Migration Plugin
- Free WordPress Page Builder
- Free WordPress Portfolio Plugin
- Free WordPress POS Sync — Square, Clover & WooCommerce
- Free WordPress Reusable Content Blocks — Snippets
- Free WordPress SEO Plugin
- Free WordPress Shortcodes — Use Any Element Anywhere
- Free WordPress Shortcodes Framework — 100+ Elements
- Free WordPress Theme Builder — Headers and Footers
- Frequently asked questions
- Full conversion — start to finish
- FW_Cache
- FW_Flash_Messages
- FW_Form
- FW_Settings_Form
- Gallery
- General
- Global Templates
- Gradient
- Gradient V2
- Grid (Div)
- Header / Footer Elements
- Headers & Footers
- Hidden
- Highlight Text
- Hooks & Filters
- How it renders
- How it works
- How the framework boots
- How the Page Builder works
- How Unyson+ compares
- HTML
- Icon
- Icon
- Icon Box
- Image
- Image Box
- Image Content
- Image Hotspots
- Image Picker
- Image Scroll Choreography
- Image Style Picker
- Importers & demo system
- Importing & converting
- Insert Section — prebuilt column layouts
- Installation
- Installation & activation
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Is the classic editor in WordPress core?
- JavaScript Helpers
- Layout Elements
- Live Editor & Keyframe Timeline
- Logo Grid
- Lottie Animation
- Mailer
- Mailer
- Manifests & versioning
- Manual tools & pipeline
- Map
- Map
- Masonry Section
- MCP server
- Media Elements
- Medium Text
- Menu Toggle
- Migrating an option's value shape
- Migrating from Unyson
- Modal / Popup
- Multi
- Multi-Inline
- Multi-Picker
- Multi-Select
- Multi-Upload
- Navigation Menu
- Newsletter
- Notification
- Number
- Oembed
- Option Types
- Options & backend hooks
- Options & settings
- Output quality & the builder ceiling
- Overview
- Overview
- Page Builder & builder hooks
- Page Builder Roadmap
- Page-builder elements
- Password
- Per-extension hooks
- Performance
- Performance & assets
- PHP Helpers
- Popover
- Popup
- Portfolio Grid
- Position Box
- Posts
- Predefined Colors
- Predefined Colors + Color Picker
- Predefined Colors + Color Picker (Compact)
- Prefixes
- Preset preview pickers
- Presets & design-token hooks
- Pricing Table
- Progress Bars
- Project Gallery
- Radio
- Radio Text
- Range Slider
- Rating stars — swap the symbol or shape
- Responsive (per-device)
- RGBA Color Picker
- Roadmap
- Roadmap
- Roadmap — Convert HTML to Elementor, Divi, Bricks and more
- Scroll to Top & Progress
- Search
- Section
- Section (Div)
- Section backgrounds (custom effects)
- Select
- Select Multiple
- Settings
- Shopper tools
- Short Select
- Short Text
- Shortcode & element hooks
- Site Logo
- Slider
- Social Icons
- Social Share
- Spacing
- Special Heading
- Split Slider
- Square
- Star Rating
- Steps / Process
- Storage model: JSON, not shortcodes
- Store drivers
- SVG Code
- Switch
- Table
- Table
- Table of Contents
- Table Style Picker
- Tabs
- Tag List
- Team Member
- Technology & modernization
- Template tags
- Testimonials
- Testing without a POS
- Text
- Text Block
- Text Expander
- Text Scroll Choreography
- Textarea
- The admin JavaScript layer
- The builder JSON tree format
- The capture service
- The clean-DOM philosophy
- The Div element (Flex, Grid, Block)
- The extension system
- The items corrector & editor-load gotcha
- The modernization plan
- The webhook API
- Theme
- Theme
- Theme hooks
- Theme Integration
- Time Picker
- Timeline
- Tooltip
- Troubleshooting
- Troubleshooting & FAQ
- Typography
- Typography v2
- Unit Input
- Unyson+ Elements as Elementor Widgets
- Unyson+ vs Redux Framework
- Updates & auto-updates
- Updates & versions
- Upload
- Video
- Video Popup
- Widget Area
- WooCommerce Elements
- WordPress Admin Theme — Dark Mode, Grouped Menu, Custom Login
- WordPress Security — Login Throttling, Two-Factor Sign-In, Custom Login URL
- WordPress Short Links — Branded Redirects with Click Tracking
- WP Editor
Animation Engine (68)
- 3D Flip Card
- 3D Motion & Roadmap
- Add your own module / effect
- Animated Backgrounds
- Custom Cursor
- Entrance Animation
- GSAP Timeline Studio
- Horizontal Scroll
- Hover Interactions
- Image Sequence
- Infinite Scroll Loop
- Interactive Reveal
- Marquee
- Model Viewer (3D)
- Motion Gallery
- Motion Path
- Motion vocabulary
- Overview
- Page Transitions
- Parallax Depth Layers
- Performance
- Physics Effects
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Playground
- Preloader
- Rive Animation
- Roadmap
- Scroll Color Shift
- Scroll Keyframes
- Scroll Progress
- Scroll Reveal
- Scroll Text Highlight
- Scrollytelling
- Smooth Scroll
- Sticky Card Stack
- SVG Draw
- Text Effects
- The modern motion toolbox
- Tutorial: Asset swaps
- Tutorial: Data binding
- Tutorial: Drive Rive from JavaScript
- Tutorial: Pointer & scroll inputs
- WebGL Object
- What the engine does today
- Where we're leveling up
The Theme (39)
- Back to Top
- Background Patterns
- Box Presets
- Builder Section
- Buttons
- Child themes
- Color Presets
- Colors
- Components (Preset Libraries)
- CTA Button
- Custom HTML
- Divider
- DOM structure
- Element Designs
- Footer
- Footer Logo
- Header
- Header & Footer Elements
- How settings become CSS
- Icon Badges
- Image Styles
- Layout
- List Item
- Logo
- Menu
- Menu Area
- Search
- Section Styles
- Shape Dividers
- Social Icons
- Spacer
- Spacing
- Table Presets
- Text
- Text Styles
- The Theme
- Theme Settings
- Typography
- Widget Area
Guides (18)
- Add a contact form to your site
- Add a dynamic copyright year to your footer
- Build a call-to-action section
- Build a responsive multi-column layout
- Build a sticky site header
- Connect an AI coding tool to your WordPress site
- Convert an existing website to WordPress
- Create a custom post type without code
- Create a reusable content block
- Design a custom 404 page
- Display a custom field on your pages
- Guides
- How to convert a Google Stitch design to WordPress
- How to convert an AI-generated static HTML site to WordPress
- How to convert your Lovable site to WordPress
- How to convert your Wegic site to WordPress
- Set global colors and fonts
- Set up AI for Unyson+ (Claude subscription, API key or free local models)
AI Dev Kit (52)
- Accordion — converter mapping
- AI Dev Kit — Overview
- Avatar — converter mapping
- Background Patterns — converter mapping
- Backgrounds (Site / Section / Footer) — Theme Settings mapping
- Badge — converter mapping
- Block Theme Roadmap
- Box Presets — converter mapping
- Button — converter mapping
- Buttons — converter mapping
- Code Block — converter mapping
- Color Presets — converter mapping
- Colors — Theme Settings mapping
- Components — Theme Settings mapping
- Container Widths — converter mapping
- Conversion Architecture
- Counter — converter mapping
- Deterministic Converter — Internals & Fragility Trace
- Element Mapping Reference
- Feature List — converter mapping
- Footer — Theme Settings mapping
- Gallery — converter mapping
- Gaps — converter mapping
- Get the Kit
- How It Works
- How Options Map
- Icon Badges — converter mapping
- Icon Box — converter mapping
- Image Box — converter mapping
- Image Styles — converter mapping
- Instagram — converter mapping
- Layout — Theme Settings mapping
- License
- Media Image — converter mapping
- Media Video — converter mapping
- Newsletter — converter mapping
- Posts — converter mapping
- Quick Start
- Section Styles — converter mapping
- Spacing — converter mapping
- Special Heading — converter mapping
- Table — converter mapping
- Testimonials — converter mapping
- Text Block — converter mapping
- Text Styles — converter mapping
- The Capture Service
- Theme Settings Mapping
- Tools
- Typography & Fonts — Theme Settings mapping
- What It Can Build
- Where Converted CSS Lives
- WooCommerce Products — converter mapping
News (2)
Design Decisions (186)
- "3D Gallery" → "Motion Gallery": rename what users see, keep the internal identifiers
- "Overlay on last section" as a Footer Layout toggle — positioning only, JS-gated
- 3D Gallery Motion: a nested multi-picker (via a NEW key) plus CSS-sticky scroll pinning
- A block's values never meet the validator that guards the page builder. Why leave it that way?
- A converter option is “unmapped” — is that a bug to fix or a default to keep?
- A dozen uploads/unysonplus-* folders, or one uploads/unysonplus/ parent?
- A new scroll-choreographed IMAGE element: where it lives, what we call it, and which builder tabs an invisible overlay should expose
- Adding entrance animations on conversion — should the local AI drive it, or the deterministic converter?
- Animated (Lottie) icons: ship JSON only — .lottie is a delivery optimization, not a render one
- Animated hand-drawn accents: two-state APNG (in → idle) with a cache-bust restart, not SVG
- Can Unyson+ colours and fonts stay in sync with Elementor's — both ways?
- Container Width means CONTENT width, not the outer box (gutter lives outside)
- Converter feedback: carry the agent's got-vs-expected, and how often may it ask to send?
- Converter translation: computed styles first, or an exhaustive Tailwind class map?
- Converting a site: fix the converter's algorithm, not the output
- Converting a store — should the converter auto-detect WooCommerce, or gate it behind a checkbox?
- Converting an inner page — does the user hand-uncheck options, or should the converter infer it from the URL?
- Converting source motion: a deterministic Animation Engine effect-recognizer layer, not a frozen CSS shim
- Copyright columns align by count, not by a per-column dropdown
- Decomposing a deep catalog into native elements: shallow band-sections, not a faithful recursive tree
- Deleting Mega Menu erased it from the Extensions manager — hand-maintain the catalog, or derive it?
- Do we even need a Landing Page template, or can the per-page settings hide the chrome?
- Every public endpoint already checked a nonce. Why add rate limiting?
- Exact spacing capture: arbitrary values (pt-[40px]) instead of renumbering the scale to Tailwind
- Front-end memory was halved. Why did we stop instead of finishing the job?
- Future-proofing the Steps/Process shortcode — full Card Rows now, or a Box Preset first?
- How a Tab holds rich, nested content: reuse Snippets, not query-posts, id-targeting, or a parallel builder
- How does a GSAP timeline become builder options a non-coder can drive?
- How far should the Animation Engine expose GSAP — and how do we teach it?
- How should an outside agent improve the converter — fork it, or build the full site + report a fix sketch?
- How should authors pick the scroll % for a 3D choreography keyframe
- How should the converter map ALL shortcode/theme-settings options — a detector per option?
- 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?
- How should the Site Converter derive Button Size presets from a source's buttons?
- How should the spacing & gap scales handle modern mid-range and large gutters?
- How should Unyson+ elements appear in Gutenberg — ported, or delegated?
- Is the Animated Heading shortcode redundant now that the Animation Engine has text effects?
- Is the extension architecture itself legacy — should elements be rewritten block-native?
- Matching a licensed display font to a free lookalike: a curated deterministic map, not a per-conversion AI call
- Matching an arbitrary licensed font to a free one: build a self-owned visual matcher, don't adopt an existing model
- Media-Library SVG uploads: build a per-role setting on the sanitiser we already own, don't add a Safe-SVG-style plugin dependency (or a second system)
- Naming the badge/pill primitive: rename announcement_pill → badge
- One card model for wc_products: drop the Classic/Slot toggle + the presence switches, add a Box Preset
- One data repo for all content libraries; presets get a browse option, not a rewrite
- One prefix (fw-) for everything, with a modernized utility vocabulary
- Per-batch scatter with synced text: one Stage of scenes, not five separate galleries
- Post Types ships a "Get PHP code" export — the extension argues for itself by making itself removable
- Post Types validation reports what will not register — it never blocks the save
- Preset colors: why we keep the reference picker instead of a frozen hex
- Relationship fields drive the multi-select option type's population modes — we did not build a new control
- Removing a post type row hides content rather than deleting it — so we made removal recoverable instead of forbidding it
- Replicating a cinematic site: live, user-replaceable elements over baked-in fidelity
- Revision history was capped at 20 per page. Why did that turn into 150 MB?
- Securing author-written JS: gate execution, not the UI
- Should a pasted CodePen become native shortcodes, and where should that live?
- Should a Section-tag Div be resizable, or always a full-width band?
- Should Page Builder pages show the theme's page title?
- Should the converter use the local AI to pick a shortcode's style, or stay deterministic?
- Should the page-wide WebGL/scene options be one selectable background effect instead of a raw toggle + code fields?
- Should the Site Converter duplicate the source DOM, now that flexbox makes it possible?
- Should the Site Converter tell a blog post from a page — and where do custom post types come from?
- Should we document every PHP function — and how?
- Should we publish a public Technology & Roadmap page — and how do we frame the legacy?
- Smooth scroll belongs to the engine, and the scroll clock is a shared loop — not a ScrollTrigger port
- Testimonials extra stat lines — a repeatable label+value, a single pair, or freeform text?
- The builder's 'motion timeline' is fixed Start/Middle/End keyframes on an auto progress source — not an editor
- The cinematic "camera pan" is a moving backdrop, not a camera — so we made it a Stage option
- The combined script doesn't look minified — is that a bug?
- The converter-improvement loop: how to build a section the converter can't yet map
- The deferred rewrite flush belongs on wp_loaded, not inside our own init callback
- The GSAP snippet generator mirrors the Custom Code contract — it is not a full GSAP playground
- The options modal shipped 6.7 MB — ship schemas instead of markup?
- The plan said the builder canvas rewrite needed a forcing reason. Why did we do it anyway?
- The React controls looked right and rendered right. Why test them against PHP at all?
- 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?
- 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?
- Unmapped styles: carry the source CSS class, or synthesize Custom CSS?
- Was it worth replacing WordPress's media frame to get Backbone out of the core?
- 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?
- 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?
- When is it right for the converter to throw away text the source shows?
- 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?
- When the converter derives a site's Box Presets, do we replace the built-in defaults or keep them?
- 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?
- Where do the Animated Icons toggles live — a standalone extension Settings page, or Theme Settings → Icons?
- Where does a new gallery design belong — the core Gallery or the 3D Gallery?
- Where does a new page builder plug into the Site Converter — and what does it own?
- Where should a new shortcode live — decide by reuse scope alone, or also ask distribution intent?
- Where should newsletter subscribers live — a custom post type or custom tables — and how should lists, tags and segments be modelled?
- Where should the converter's element-mapping table live — the shortcode docs or the AI Dev Kit? And should it be generated?
- Where should the deep Site Converter docs live — in the extension, or moved to the AI Dev Kit?
- Whether to invest in agentic-browsing readiness — and whether to build WebMCP now
- Which container owns a card's box on conversion — the icon_box, or its column?
- Which converted regions become UnysonPlus blocks, and which stay core
- Who edits the Site Converter — and how kit users feed it back
- Why 'disable text selection' is an opt-in General → Base toggle, not a new Settings tab
- Why 'fix my site' and 'train the converter' became one protocol instead of two
- Why "Interactive Reveal" is its own element, not a mode of one mega-element
- Why [portfolio] grew into a rich element instead of deferring to [posts]
- Why a converted colour is stored as hex, and not as a Color Preset reference
- Why a CSS-composed logo becomes an inline SVG, not a new logo mode
- Why a dark admin skin deliberately leaves some panels white
- Why a non-Google heading font is substituted with the closest FREE Google lookalike, never re-hosted
- Why a shortcode's designs are a registry, not hardcoded templates
- Why a site's own conversion corrections live in wp-content, not framework-customizations
- Why a styled content card converts VERBATIM (Tailwind reproducer), not as a decomposed mirror
- Why an element fills its parent instead of carrying its own width container
- Why an element's content layout is a “Card” but its skin is a “Box”
- Why an extension that ships 'on by default' is seeded once and never re-checked
- Why author page JSON with native shortcode options instead of inline styles
- Why Button Set is its own option type instead of a display mode on radio
- Why can't a header be transparent AND shrink its logo on scroll? Splitting header behavior into two composable states.
- Why catalog/menu sites get Catalog Mode — auto-detected AND a checkbox
- Why cinematic scroll pages became a Scrollytelling layout, not a new module
- Why converted styles keep getting overruled — and why we re-assert the source instead of building an overrule detector
- Why converting a multi-page site is one conversion, not one per page
- Why cross-column drag-and-drop was a small opt-in, not a new post type
- Why design-decision URLs keep the /decisions/ prefix
- Why extra footer bars are a filter, not per-container option files
- Why footer columns got an 'Auto Width' mode outside the 12-grid
- Why footer section dividers are now opt-in, not a default border
- Why form submissions get their own Entries table instead of going into the newsletter list
- Why gallery card links live ON the image (attachment meta), and post-driven galleries came free
- Why glass (backdrop-blur) and flex-basis/min-width became native shortcode options + a theme token
- Why hiding a core affordance has to be scoped to wherever its replacement exists
- Why hover animations became one shared library for boxes and buttons (and where the tab sits)
- Why Icon Badges get their own preset type, not a fold into Box or Image Styles
- Why image treatments became a Theme Settings preset, not more Card Styles
- Why image-tile grids (a caption pinned over each photo) convert to the Gallery, with a new always-visible overlay caption mode
- Why is the Elementor extension called just "Elementor" and not "Elementor Widgets"?
- Why is the per-post SEO title empty by default — shouldn't it be pre-filled with the template?
- Why menu item styles split into a base treatment plus stackable modifiers
- Why nested columns are columns-in-columns (one level), not an Inner Row element
- Why nested columns render through fw_inner_row / fw_inner_column alias shortcodes
- Why new Pages open in the builder while Blog Posts stay on the Classic editor
- Why not integrate Tailwind into UnysonPlus (even for the Site Converter)
- Why option-gating pickers use a new option id instead of migrating the old scalar
- Why option-type docs are one index + a dozen deep-dives, not 52 stubs
- Why popover pickers deselect on click-again instead of needing a 'None' tile
- Why portfolio display settings live in Theme Settings, bridged by one filter
- Why Posts gaps consume the shared Gap Scale presets
- Why Posts loads card CSS per-design, auto-detected by filename
- Why retargeting a site to a new source replaces its pages — but only the ones you tick
- Why section/column need a text_align option separate from content alignment (and why special_heading keeps its master alignment)
- Why shape dividers are their own library storing geometry only, with colour per-instance
- Why Short Links stores links in its own tables, defaults to 307, and counts uniques without trusting cookies
- Why Short Links' API keys only open one door, and webhooks never fire inline
- Why shortcode colour defaults now follow the site's Color Presets
- Why testimonial ratings render as inline SVG, not Font Awesome
- Why the #page wrapper stays instead of moving its role onto <body>
- Why the AI Assistant settings screen leads with one status, and what Reset does and does not touch
- Why the AI Assistant's free local AI runs its loop in the browser, with JSON actions instead of tool calls
- Why the AI Assistant's ideas come from rules, and its conversations are saved per user on the server
- Why the AI Dev Kit and Capture Service are non-commercial source-available while the plugin stays GPL
- Why the AI Dev Kit's fetched folders live under assembled/
- Why the Background Pro tab UI became a reusable `tabs` option type
- Why the box-owner rule had to be enforced twice, in two languages, at the point where every path converges
- Why the color picker moved to Coloris, and why opacity is opt-in
- Why the default heading scale shrank — and why line-height was the real fix
- Why the docs name the tools, plugins and AI products Unyson+ works with, but never the sites it converted
- Why the Flexbox stays one shortcode, split only in the UI
- Why the group container gained a native title/desc instead of a leading html option
- Why the Image Box and Gallery stopped rounding their own corners
- Why the live editor re-renders from the model to nest a column instead of moving the DOM
- Why the live editor wraps Flexbox/Grid/Block in a Section (when the backend doesn't)
- Why the Live Editor's Sections panel becomes a nested Structure navigator
- Why the measurement tools share one browser session instead of each launching their own
- Why the Mega Menu builder stays in Appearance → Menus, not the Customizer
- Why the Mega Menu column width is an inline image-picker, not the Column shortcode's responsive popover
- Why the newsletter preference centre reuses the unsubscribe token, and why saving it never unsubscribes anyone
- Why the off-canvas panel takes elements, not a menu-or-snippet toggle
- Why the page-title H1 is theme-rendered with a toggle, not a per-page shortcode
- Why the Posts read-more reuses button presets instead of duplicating the Button shortcode
- Why the Security extension ships few measures, none of them on by default, and why the custom login URL lives there
- Why the Site Converter will target other page builders (and how the roadmap labels them)
- Why the tab content frame is one 'Content Frame' select (not separate border/padding toggles)
- Why the tabs nav converts via a scoped-CSS pill translator, not new native options
- Why the testimonial quote allows safe inline HTML, not a rich editor
- Why the tooltip is called fw-tooltip and not floating-ui
- Why the typography overhaul is staged as "v3", then promoted to canonical
- Why Theme Settings docs are one file per tab — with every choice listed
- Why theme typography went fluid and accessibility-first
- Why typography-v2 became just typography (and an alias)
- Why we keep the 'Enable' switch even though image-picker choices are now deselectable
- Why we silence Chrome's “unload” Permissions-Policy console violation on the editor screens
- Why we're adopting React incrementally, not rewriting UnysonPlus
blocks (109)
- 3D Model Viewer
- Accordion
- Account
- Add to Cart
- Animated Heading
- Architecture
- Audio Player
- Author Box
- Avatar
- Badge
- Before / After
- Bleed Section
- Blockquote
- Business Info
- Button
- Calendar
- Call to Action
- Carousel
- Cart
- Cart Link
- Checkout
- Code Block
- Column
- Comparison Table
- Contact Form
- Container
- Countdown
- Counter
- Divider
- Feature List
- Featured Image
- Flexbox
- Flip Box
- Free Shipping Bar
- Gallery
- Global Section
- Highlight Text
- Icon
- Icon Box
- Image Box
- Image Content
- Image Hotspots
- Image Sequence
- Logo Grid
- Lottie
- Map
- Masonry Section
- Media Image
- Media Video
- Menu Toggle
- Mini Cart
- Modal Popup
- Motion Gallery
- My Account
- Nav Menu
- Newsletter
- Notification
- Order Tracking
- Overview
- Portfolio
- Post Author
- Post Content
- Post Date
- Post Excerpt
- Post Meta Field
- Post Terms
- Post Title
- Posts
- Pricing Table
- Product
- Product Categories
- Product Filters
- Product Page
- Product Search
- Products
- Progress
- Project Details
- Project Gallery
- Project Navigation
- Project Results
- Project Testimonial
- Related Projects
- Roadmap
- Scroll Indicator
- Scroll to Top
- Section
- Site Logo
- Site Search
- Snippet
- Social Icons
- Social Share
- Special Heading
- Star Rating
- Steps
- SVG Draw
- SVG Morph
- Table
- Table of Contents
- Tabs
- Tag List
- Team Member
- Testimonials
- Text Block
- Text Expander
- Timeline
- Tooltip
- Video Popup
- WebGL Object
- Widget Area
phpApi (43)
- Animation Engine — functions
- Animation Engine — hooks
- API Reference
- Asset Optimizer — hooks
- Breadcrumbs — functions
- Breadcrumbs — hooks
- Builder (base) — functions
- Builder (base) — hooks
- Core — hooks
- Core Helpers — functions
- Core Helpers — hooks
- Core Includes — functions
- Core Includes — hooks
- Custom Fields — functions
- Forms — functions
- Forms — hooks
- Framework — hooks
- Functions
- Hooks (Actions & Filters)
- Mailer — functions
- Mailer — hooks
- Mega Menu — functions
- Mega Menu — hooks
- Option Types — functions
- Option Types — hooks
- Other Extensions — functions
- Other Extensions — hooks
- Page Builder — functions
- Page Builder — hooks
- Portfolio — functions
- Portfolio — hooks
- Post Types — hooks
- Shortcodes — functions
- Shortcodes — hooks
- Sidebars — functions
- Sidebars — hooks
- Site Converter — functions
- Site Converter — hooks
- Snippets — functions
- Snippets — hooks
- Theme Settings (Components) — functions
- Theme Settings (Components) — hooks
- Update — hooks