Skip to content

Migrate the admin theme from Bootstrap 3 to Bootstrap 5 #5723

Description

@e107help

Summary

Move the e107 admin area off Bootstrap 3 and onto a modern framework. The BS5 plumbing already exists in core (the 5.3.3 bundle is vendored under e107_web/lib/bootstrap/5/, registered in library_manager.php, and coreTemplatePath() already prefers e107_core/templates/bootstrap5/ when BOOTSTRAP > 3, see e107_class.php L3325-3336). What is missing is a BS5 admin theme face and the markup/compat work to render the admin UI under BS5.

Split out of #5686. Depends on the custom-admin-theme unblock landing first.

Framework decision happens here

This is the issue where the framework choice is settled. The two candidates:

  • Plain vendored Bootstrap 5 (5.3.3) that is already in core. Lowest dependency footprint; nothing new to ship.
  • tabler.io, a full admin UI framework built on Bootstrap 5. @Alex-e107nl and @Jimmi08 both favour it and hold licences for it; @Alex-e107nl's case is that every plugin developer gets documented components and examples, giving consistent admin integrations "so why reinvent the wheel." tabler is customisable via CSS variables, which feeds naturally into the admin theme preferences issue.

This decision was deliberately deferred out of the core unblock so the unblock is not held hostage to it. Please keep framework debate in this issue.

Scope of the migration work

  • A Bootstrap 5 admin theme face (the bootstrap5 frontend theme currently has no admin half).
  • Reworking admin markup that hardcodes BS3 classes (panels -> cards, BS3 grid/utility classes, button class shims, etc.).
  • Compatibility handling for shared admin output so existing plugins keep rendering during the transition.
  • FontAwesome 5/6 handling already exists version-aware in toGlyph() / toIcon(), so icon markup is largely covered.

Acceptance

  • The admin area renders correctly under Bootstrap 5 end to end.
  • The chosen framework (plain BS5 vs tabler.io) is decided and recorded in this issue.
  • bootstrap3 admin theme continues to work for sites that have not switched.

Type: Feature. Triage Status: Backlog. Priority: Low. Split from #5686. Framework choice (plain BS5 vs tabler.io) to be decided here.

Metadata

Metadata

Assignees

No one assigned

    Fields

    Priority

    Low

    Triage Status

    Backlog

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions