WP Manifestindependent plugin directory
manifest / admin / lumora

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.

by Lumora Team Β· github.com/hordekiller/lumora Β· website

β˜… 19stars
0forks

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.zip

Readme

⚠️ ΨͺΩˆΨ¬Ω‡: Ψ§ΫŒΩ† Ψ§ΩΨ²ΩˆΩ†Ω‡ Ω‡Ω†ΩˆΨ² Ψ―Ψ± Ψ­Ψ§Ω„ ΨͺΩˆΨ³ΨΉΩ‡ Ψ§Ψ³Ψͺ و برای Ψ§Ψ³Ψͺفاده Ψ―Ψ± Ω…Ψ­ΫŒΨ· ΨͺΩˆΩ„ΫŒΨ― (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

  1. Dashboard β€” Widget grid with site stats and recent activity
  2. Command Palette β€” Ctrl+K fuzzy search overlay
  3. Menu Manager β€” Drag-and-drop admin menu reordering
  4. White Label β€” Custom branding and color picker
  5. Dark Mode β€” Full dark theme with all components

Requirements

  • PHP 7.4+
  • WordPress 6.0+
  • Node.js 20+ (for development)

Installation

Production (WordPress)

  1. Download the latest release ZIP
  2. Upload to /wp-content/plugins/ and activate
  3. Navigate to the Lumora menu item in your admin sidebar
  4. 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-*.php naming 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.js loads 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.

Read the full README on GitHub →