first commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
|||||||
|
# Blocksy Light/Dark Toggle
|
||||||
|
|
||||||
|
WordPress plugin that adds a **floating light/dark mode toggle** for the [Blocksy](https://creativethemes.com/blocksy/) theme v2.1+ (tested with v2.1.38).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Beatwise-specific dark-mode fixes (menu, footer, brand purple, `/codes`, reservations)
|
||||||
|
- Floating switch button (default: bottom-right)
|
||||||
|
- Uses Blocksy's native `theme-dark` / `theme-light` classes on `<html>`
|
||||||
|
- Integrates with Blocksy's **Colour Mode Switch** extension when enabled
|
||||||
|
- Fallback dark palette when the extension is not active
|
||||||
|
- Settings page under **Settings → Light/Dark Toggle**
|
||||||
|
- Hides Blocksy header colour switch by default (configurable)
|
||||||
|
- Remembers choice in `localStorage`, cookie, and user meta
|
||||||
|
- Respects system `prefers-color-scheme` on first visit (configurable)
|
||||||
|
- No flash of wrong theme (inline script in `<head>`)
|
||||||
|
- Developer filters for custom integrations
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- WordPress 6.0+
|
||||||
|
- Active theme: **Blocksy** v2.1+ (or a child theme)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Copy the `blocksy-light-dark-toggle` folder to `wp-content/plugins/`.
|
||||||
|
2. Activate **Blocksy Light/Dark Toggle** under **Plugins**.
|
||||||
|
3. Configure under **Settings → Light/Dark Toggle**.
|
||||||
|
|
||||||
|
## Recommended setup (heavily customized sites)
|
||||||
|
|
||||||
|
1. Enable **Colour Mode Switch** under **Blocksy → Extensions** (Blocksy Pro / Companion).
|
||||||
|
2. Configure your **Dark Mode Colour Palette** in **Customizer → General Options → Colors**.
|
||||||
|
3. Assign dark-mode colors to global elements and blocks in the Customizer.
|
||||||
|
4. Keep **Hide header colour switch** enabled in plugin settings to avoid duplicate toggles.
|
||||||
|
|
||||||
|
When the Colour Mode Switch extension is active, the plugin does **not** load its fallback palette — your Customizer dark colors are used.
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
|
||||||
|
| Option | Default | Description |
|
||||||
|
|--------|---------|-------------|
|
||||||
|
| Position | Bottom right | Corner placement of the floating toggle |
|
||||||
|
| Horizontal / vertical offset | 1.25rem | CSS distance from screen edge |
|
||||||
|
| Z-index | 999999 | Stacking order |
|
||||||
|
| Hide header colour switch | On | Hides Blocksy's built-in header toggle |
|
||||||
|
| Follow system preference | On | Uses OS light/dark on first visit |
|
||||||
|
| Animate transitions | On | Smooth colour change animation |
|
||||||
|
| Show on mobile / desktop | On | Device visibility |
|
||||||
|
|
||||||
|
## Developer hooks
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Override whether the toggle renders.
|
||||||
|
add_filter( 'blc_ldt_should_render', function ( $show ) {
|
||||||
|
return ! is_page( 'landing' );
|
||||||
|
});
|
||||||
|
|
||||||
|
// Override initial scheme from server.
|
||||||
|
add_filter( 'blc_ldt_initial_scheme', function ( $scheme ) {
|
||||||
|
return $scheme;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Override settings array.
|
||||||
|
add_filter( 'blc_ldt_settings', function ( $settings ) {
|
||||||
|
$settings['position'] = 'bottom-left';
|
||||||
|
return $settings;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Force-detect Blocksy colour mode extension.
|
||||||
|
add_filter( 'blc_ldt_has_blocksy_color_mode', '__return_true' );
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
GPL-2.0-or-later
|
||||||
Reference in New Issue
Block a user