=== Lightweight 360 Panorama Image Viewer ===
Contributors: sitefuse
Tags: 360 panorama, panorama viewer, 360 image, image viewer, photo sphere
Requires at least: 5.8
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A fast, responsive 360 panorama image viewer for WPBakery with fullscreen, zoom, and auto-rotation.

== Description ==

Lightweight 360 Panorama Image Viewer adds a "360° Panorama Image Viewer" element to WPBakery. Display interactive equirectangular 360 images without video features, Gutenberg code, telemetry, or third-party runtime dependencies.

It is purpose-built for site owners who need a simple panorama viewer rather than a multi-scene virtual tour system. The viewer remains lightweight while supporting responsive layouts, fullscreen viewing, zoom, touch gestures, keyboard controls, and automatic rotation.

Features:

* Choose an existing Media Library image or upload one from the WPBakery element.
* Mouse, touch, and keyboard navigation.
* Optional wheel, pinch, button, and keyboard zoom.
* Optional fullscreen control.
* Optional automatic rotation with configurable direction and speed.
* Configurable maximum width, desktop height, and mobile height.
* Lazy image loading and paused off-screen animation.
* Multiple independent viewers on the same page.
* Automatic fallback to the source image if WebGL is unavailable.

The renderer uses a small custom WebGL shader. No copies of Three.js, jQuery, icon fonts, or remote assets are loaded.

== Installation ==

1. In WordPress, go to Plugins > Add New Plugin > Upload Plugin.
2. Upload `sitefuse-360-panorama-viewer-v1.0.0.zip` and activate it.
3. Edit a page with WPBakery Page Builder.
4. Add the "360° Panorama Image Viewer" element from the Content category.
5. Choose or upload a panoramic image, adjust the options, and save the page.

WPBakery Page Builder must be active for the visual element chooser. The shortcode remains available without WPBakery.

== Image recommendations ==

Use an equirectangular panorama with a 2:1 width-to-height ratio, for example 6000 × 3000 pixels. JPEG or WebP usually gives the best balance of quality and file size. WordPress Media Library images are same-origin by default; images moved to a separate CDN must include a suitable CORS response header for WebGL.

Very large source images are automatically reduced in the browser to the device's maximum supported texture size.

== Shortcode ==

WPBakery generates the shortcode automatically. It can also be entered manually:

`[sitefuse_360_panorama image="123" height="500px" mobile_height="320px" max_width="100%" enable_fullscreen="yes" enable_zoom="yes" auto_rotate="yes" auto_rotate_speed="2"]`

The `image` value is a WordPress Media Library attachment ID.

== Frequently Asked Questions ==

= Does this support video? =

No. It intentionally supports panoramic images only.

= Does this add a Gutenberg block? =

No. It intentionally registers a WPBakery element and shortcode only.

= Is it responsive? =

Yes. Width is constrained to its WPBakery column, with separate desktop and mobile heights. Fullscreen fills the viewport.

= What happens when automatic movement is enabled? =

Rotation pauses while the viewer is being used, while it is off screen, and while its browser tab is hidden. It resumes shortly after interaction. The viewer also honours the operating system's reduced-motion preference.

= Does the plugin contact an external service? =

No. It stores no settings, sends no telemetry, and makes no external requests. The selected Media Library image is loaded from its WordPress attachment URL.

== Support ==

For support, email support@sitefuseplugins.com or visit https://sitefuseplugins.com/.

== Changelog ==

= 1.0.0 - 26 August 2026 =

* Added the WPBakery 360° Panorama Image Viewer element and Media Library/upload picker.
* Added dependency-free WebGL panorama rendering.
* Added drag, touch, keyboard, wheel, pinch, zoom button, and fullscreen controls.
* Added optional automatic movement and configurable starting view.
* Added responsive desktop/mobile sizing, lazy loading, and reduced-motion support.

See `CHANGELOG.md` for the maintained release history and `DOCUMENTATION.md` for complete usage and versioning instructions.
