Lumora
π Lumora β A modern, React-based WordPress admin dashboard plugin with dark mode, RTL support, command palette (Ctrl+K), drag-and-drop menu manager, and white-label branding. Built for performance: 26KB initial JS, full Persian (fa_IR) translation, and mobile-first design.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/hordekiller/lumora/archive/refs/heads/main.zipReadme
β οΈ ΨͺΩΨ¬Ω: Ψ§ΫΩ Ψ§ΩΨ²ΩΩΩ ΩΩΩΨ² Ψ―Ψ± ΨΨ§Ω ΨͺΩΨ³ΨΉΩ Ψ§Ψ³Ψͺ Ω Ψ¨Ψ±Ψ§Ϋ Ψ§Ψ³ΨͺΩΨ§Ψ―Ω Ψ―Ψ± Ω ΨΫΨ· ΨͺΩΩΫΨ― (Production) Ω ΩΨ§Ψ³Ψ¨ ΩΫΨ³Ψͺ.
β οΈ NOTICE: This plugin is still under development and is NOT ready for production use.
Lumora β Modern WordPress Admin Dashboard
A revolutionary WordPress admin dashboard plugin β modern, ultra-responsive, with a unique visual design built on React.
Features
| Feature | Description |
|---|---|
| π¨ Modern Interface | React-based SPA with code splitting, lazy loading, and fluid animations |
| π Dashboard Widgets | 4 customizable widgets with drag-and-drop layout per user |
| β¨οΈ Command Palette | Global Ctrl+K (Cmd+K) instant search across posts, pages, media, users |
| π Menu Manager | Reorder, hide, and customize admin menu with drag-and-drop |
| π·οΈ White Label | Rebrand for agencies: custom name, color, footer, hide branding |
| π Dark Mode | System-aware dark/light toggle with smooth transitions |
| π RTL Ready | Full right-to-left support for Persian, Arabic, Hebrew |
| π± Responsive | Mobile-first 320pxβ4K with off-canvas navigation |
| βΏ Accessible | Keyboard nav, ARIA, reduced-motion, contrast ratios |
| π Persian (ΩΨ§Ψ±Ψ³Ϋ) | Fully translated Iranian Persian interface |
| β‘ Performance | 26KB initial JS, API caching, debounced search |
Screenshots
- Dashboard β Widget grid with site stats and recent activity
- Command Palette β Ctrl+K fuzzy search overlay
- Menu Manager β Drag-and-drop admin menu reordering
- White Label β Custom branding and color picker
- Dark Mode β Full dark theme with all components
Requirements
- PHP 7.4+
- WordPress 6.0+
- Node.js 20+ (for development)
Installation
Production (WordPress)
- Download the latest release ZIP
- Upload to
/wp-content/plugins/and activate - Navigate to the Lumora menu item in your admin sidebar
- Press Ctrl+K (Cmd+K) to open the command palette from anywhere
Development
# Clone the repository
git clone https://github.com/Hordekiller/LUMORA.git
cd LUMORA
# Install dependencies
composer install
npm install
# Development (with hot reload)
npm run start
# Production build
npm run build
# Lint checks
npm run lint:js # ESLint
npm run lint:css # Stylelint
npm run lint:php # PHPCS (WordPress standard)
# Tests
vendor/bin/phpunit
Project Structure
lumora/
βββ includes/ # PHP backend
β βββ Admin/ # Admin page, assets
β βββ API/ # REST endpoints (8 controllers)
β βββ Core/ # Settings, Security, i18n, Cache
β βββ Modules/ # Widgets, Dashboard, Menu, CommandPalette, WhiteLabel
βββ src/ # JavaScript frontend
β βββ components/ # React components (ui, layout, dashboard, widgets, menu, settings, command-palette)
β βββ hooks/ # Custom hooks (useKeyboard, useMediaQuery, useSettings, useStats)
β βββ store/ # WordPress data stores (settings, widgets)
β βββ styles/ # SCSS (11 partials with design tokens)
β βββ utils/ # API client, classnames, fuzzy search
βββ tests/ # PHPUnit tests
βββ languages/ # Translation files (POT, PO, MO)
βββ build/ # Webpack output (admin.js, palette.js, page chunks)
Architecture
- Custom Autoloader: Registered before Composer PSR-4. Converts WordPress
class-*.phpnaming to PSR-4 class names automatically. - Code Splitting:
React.lazy()+ dynamic imports split the 50KB bundle into 26KB initial + 4 page-specific chunks. - Dual Entry Points:
build/admin.jsloads only on Lumora admin page;build/palette.js(11KB) loads on ALL admin pages for global Ctrl+K. - API Layer: In-memory cache with 30-second TTL, automatic invalidation on writes, 300ms debounced search.
Changelog
See CHANGELOG.md for the full version history.
License
GPL-2.0-or-later β see LICENSE for details.