secubox-openwrt/package/secubox/luci-theme-secubox
CyberMind-FR 675b2d164e feat: Portal service detection, nDPId compat layer, CrowdSec/Netifyd packages
Portal (luci-app-secubox-portal):
- Fix service status showing 0/9 by checking if init scripts exist
- Only count installed services in status display
- Use pgrep fallback when init script status fails

nDPId Dashboard (luci-app-ndpid):
- Add default /etc/config/ndpid configuration
- Add /etc/init.d/ndpid-compat init script
- Enable compat service in postinst for app detection
- Fix Makefile to install init script and config

CrowdSec Dashboard:
- Add CLAUDE.md with OpenWrt-specific guidelines (pgrep without -x)
- CSS fixes for hiding LuCI left menu in all views
- LAPI repair improvements with retry logic

New Packages:
- secubox-app-crowdsec: OpenWrt-native CrowdSec package
- secubox-app-netifyd: Netifyd DPI integration
- luci-app-secubox: Core SecuBox hub
- luci-theme-secubox: Custom theme

Removed:
- luci-app-secubox-crowdsec (replaced by crowdsec-dashboard)
- secubox-crowdsec-setup (functionality moved to dashboard)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 13:51:40 +01:00
..
docs feat: Portal service detection, nDPId compat layer, CrowdSec/Netifyd packages 2026-01-10 13:51:40 +01:00
htdocs/luci-static/resources/secubox-theme feat: Portal service detection, nDPId compat layer, CrowdSec/Netifyd packages 2026-01-10 13:51:40 +01:00
Makefile feat: Portal service detection, nDPId compat layer, CrowdSec/Netifyd packages 2026-01-10 13:51:40 +01:00
README.md feat: Portal service detection, nDPId compat layer, CrowdSec/Netifyd packages 2026-01-10 13:51:40 +01:00
USAGE.md feat: Portal service detection, nDPId compat layer, CrowdSec/Netifyd packages 2026-01-10 13:51:40 +01:00

luci-theme-secubox

SecuBox's CyberMood design system packaged as a LuCI theme. Ships shared CSS variables, reusable components, responsive layouts, translations, and the browser-side theme controller used by every SecuBox module ('require secubox-theme/theme as Theme'). Install alongside SecuBox modules to ensure consistent styling, language switching, and light/dark/cyberpunk variants.

./feeds/luci/luci-theme-secubox/
├── Makefile
└── htdocs/luci-static/resources/secubox-theme/
    ├── core/           # Variables, reset, typography, animations, utilities
    ├── components/     # Buttons, cards, forms, tables, badges, alerts, etc.
    ├── layouts/        # Dashboard/grid/responsive helpers
    ├── themes/         # Dark (default), light, cyberpunk variants
    ├── i18n/           # en/fr/de/es JSON dictionaries
    ├── secubox-theme.css
    ├── secubox-theme.min.css
    └── theme.js        # Theme controller (init/apply/t/Theme.create*)

Usage

'use strict';
'require secubox-theme/theme as Theme';

return view.extend({
    load: function() {
        return Theme.init();
    },
    render: function() {
        Theme.apply('dark');          // dark, light, cyberpunk
        Theme.setLanguage('en');      // en, fr, de, es

        return Theme.createPage({
            title: Theme.t('dashboard.title'),
            cards: [
                Theme.createCard({
                    title: Theme.t('dashboard.overview'),
                    icon: '🚀',
                    content: this.renderOverview()
                })
            ]
        });
    }
});

See DOCS/GLOBAL_THEME_SYSTEM.md for the full design reference. This package only contains the shared assets; each module is still responsible for importing secubox-theme.css (or .min.css) and using the exported helper methods.