Sitemap
Every page on this site, grouped by section — 692 pages in all. Looking for the machine-readable version? It's at /sitemap.xml.
Main (1)
Manual (364)
- 3D Gallery
- 3D Model
- Accordion
- Accordion
- Account Link
- Add a shortcode
- Add to Cart
- Addable Box
- Addable Option
- Addable Popup
- AI assist
- Animated Counter
- Animated Heading
- Animated Heading
- Architecture overview
- Asset Optimizer
- Audio Player
- Audio Player
- Author Box
- Author Box
- Avatar
- Avatar
- Backend
- Background Image
- Background Pro
- Backup & Demo Content
- Badge
- Badge
- Before / After
- Before / After
- Bleed Section
- Bleed Section
- Blockquote
- Blockquote
- Blog
- Body Templates
- Border Style Picker
- Box Shadow
- Breadcrumbs
- Build your first child theme
- Build your first page
- Builder
- Business Info
- Business Info
- Button
- Button
- Button Hover Animation
- Button Presets
- Button Set
- Button Style Picker
- Calendar
- Calendar
- Call to Action
- Call To Action
- Carousel
- Carousel
- Cart
- Cart Link
- Checkbox
- Checkboxes
- Checkout
- Code Block
- Code Block
- Code Editor
- Color Picker
- Column
- Column
- Column Split
- Column widths & the grid
- Common controls (Animations & Advanced)
- Comparison Table
- Comparison Table
- Concepts & glossary
- Conditional assignment
- Contact Form
- Contact Form
- Container
- Container
- Convert from a file
- Convert from a URL
- Cookbook
- Countdown
- Countdown Timer
- Counter
- Create a shortcode design (design pack)
- Create Extension
- Create Option Type
- CSS Helpers
- Custom Fields
- Custom Save Location
- Customizer
- Data & Content Modeling
- Data flow: edit → stored JSON → render
- Date Picker
- Datetime Picker
- Datetime Range
- Developer reference
- Directory Structure
- Divider
- Divider
- Dynamic Content
- Dynamic Content
- Editor & Page Builder
- Extension
- Extension system & update hooks
- Extensions
- Feature List
- Feature List
- Featured Image
- Flexbox
- Flexbox
- Flip Box
- Flip Box
- For Developers
- Form Builder
- Forms
- Framework
- Framework core hooks
- Free Shipping Bar
- Frequently asked questions
- Full conversion — start to finish
- FW_Cache
- FW_Flash_Messages
- FW_Form
- FW_Settings_Form
- Gallery
- Gallery
- General
- Global Section
- Global Templates
- Gradient
- Gradient V2
- Header / Footer Elements
- Headers & Footers
- Hidden
- Highlight Text
- 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
- Icon Box
- Icon Box
- Image
- Image
- Image + Content
- Image Box
- Image Box
- Image Content
- Image Hotspots
- Image Hotspots
- Image Picker
- Image Sequence
- Image Style Picker
- Importers & demo system
- Importing & converting
- Installation
- Installation & activation
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- Introduction
- JavaScript Helpers
- Layout Elements
- Live Page Editor
- Logo Grid
- Logo Grid
- Lottie
- Lottie Animation
- Mailer
- Mailer
- Manifests & versioning
- Manual tools & pipeline
- Map
- Map
- Map
- Masonry Section
- Masonry Section
- Media Elements
- Medium Text
- Mega Menu
- Menu Toggle
- Menu Toggle
- Migrating an option's value shape
- Migrating from Unyson
- Mini Cart
- Modal / Popup
- Modal Popup
- Multi
- Multi-Inline
- Multi-Picker
- Multi-Select
- Multi-Upload
- My Account
- Navigation Menu
- Navigation Menu
- Newsletter
- Newsletter
- Notification
- Notification
- Number
- Oembed
- Option Types
- Options & backend hooks
- Options & settings
- Order Tracking
- Overview
- Overview
- Overview
- Page Builder
- Page Builder & builder hooks
- Password
- Per-extension hooks
- Performance
- Performance & assets
- PHP Helpers
- Popover
- Popup
- Portfolio
- Portfolio Grid
- Portfolio Grid
- Position Box
- Post Author
- Post Content
- Post Date
- Post Excerpt
- Post Meta Field
- Post Terms
- Post Title
- Post Types & Taxonomies
- Posts
- Posts
- Predefined Colors
- Predefined Colors + Color Picker
- Predefined Colors + Color Picker (Compact)
- Prefixes
- Preset preview pickers
- Presets & design-token hooks
- Pricing Table
- Pricing Table
- Product Categories
- Product Filters
- Product Page
- Product Search
- Products
- Progress
- Progress Bars
- Project Details
- Project Gallery
- Project Gallery
- Project Navigation
- Project Results
- Project Testimonial
- Radio
- Radio Text
- Range Slider
- Rating stars — swap the symbol or shape
- Related Projects
- Responsive (per-device)
- RGBA Color Picker
- Scroll Indicator
- Scroll to Top
- Scroll to Top & Progress
- Search
- Section
- Section
- Section backgrounds (custom effects)
- Select
- Select Multiple
- Short Select
- Short Text
- Shortcode & element hooks
- Shortcodes
- Sidebars
- Single Product
- Site Converter
- Site Logo
- Site Logo
- Site Search
- Slider
- Snippet
- Snippets
- Social Icons
- Social Icons
- Social Share
- Social Share
- Spacing
- Special Heading
- Special Heading
- Split Slider
- Star Rating
- Star Rating
- Steps
- Steps / Process
- Storage model: JSON, not shortcodes
- SVG Code
- SVG Draw
- SVG Morph
- Switch
- Table
- Table
- Table
- Table of Contents
- Table of Contents
- Table Style Picker
- Tabs
- Tabs
- Tag List
- Tag List
- Team Member
- Team Member
- Technology & modernization
- Testimonials
- Testimonials
- Text
- Text Block
- Text Block
- Text Expander
- Text Expander
- Textarea
- The admin JavaScript layer
- The builder JSON tree format
- The capture service
- The clean-DOM philosophy
- The extension system
- The items corrector & editor-load gotcha
- The modernization plan
- Theme
- Theme
- Theme Builder
- Theme hooks
- Theme Integration
- Time Picker
- Timeline
- Timeline
- Tooltip
- Tooltip
- Troubleshooting & FAQ
- Typography
- Typography v2
- Unit Input
- Unyson+ vs Redux Framework
- Updates & auto-updates
- Updates & versions
- Upload
- Video
- Video
- Video Popup
- Video Popup
- WebGL Object
- Widget Area
- Widget Area
- WooCommerce
- WooCommerce Elements
- WordPress Shortcodes
- WP Editor
Animation Engine (62)
- 3D Flip Card
- 3D Gallery
- 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
- Marquee
- Model Viewer (3D)
- 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
- 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
- WebGL Object
- What the engine does today
- Where we're leveling up
The Theme (38)
- Back to Top
- Background Patterns
- Box Presets
- Builder Section
- Buttons
- Child themes
- Color Presets
- Colors
- Components (Preset Libraries)
- CTA Button
- Custom HTML
- Divider
- 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 (12)
- 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
- 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
- Set global colors and fonts
AI Dev Kit (49)
- Accordion — converter mapping
- AI Dev Kit — Overview
- Avatar — converter mapping
- Background Patterns — converter mapping
- Backgrounds (Site / Section / Footer) — Theme Settings mapping
- Badge — converter mapping
- 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
- 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
- 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 (121)
- "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?
- 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
- 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?
- Copyright columns align by count, not by a per-column dropdown
- Deleting Mega Menu erased it from the Extensions manager — hand-maintain the catalog, or derive it?
- 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 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 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?
- 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
- 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 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 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 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 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?
- 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 [portfolio] grew into a rich element instead of deferring to [posts]
- Why a shortcode's designs are a registry, not hardcoded templates
- Why an element's content layout is a “Card” but its skin is a “Box”
- 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 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 cross-column drag-and-drop was a small opt-in, not a new post type
- 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 gallery card links live ON the image (attachment meta), and post-driven galleries came free
- 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 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 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 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 shortcode colour defaults now follow the site's Color Presets
- Why testimonial ratings render as inline SVG, not Font Awesome
- Why the AI Dev Kit's fetched folders live under assembled/
- 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 group container gained a native title/desc instead of a leading html option
- Why the live editor re-renders from the model to nest a column instead of moving the DOM
- Why the Live Editor's Sections panel becomes a nested Structure navigator
- Why the Mega Menu column width is an inline image-picker, not the Column shortcode's responsive popover
- 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 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're adopting React incrementally, not rewriting UnysonPlus
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