-
-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
Area: FrontendRelated to HTML, JS, CSS, or other browser thingsRelated to HTML, JS, CSS, or other browser thingsPriority: NormalType: Improvement
Description
Background
SpaceDock's layout is based on Bootstrap, which has been installed by copying the Bootstrap files to /frontend/static/css and /frontend/static/js.
Problems
Historically, alarmingly, these files were not treated as static dependencies to be left alone and patched with additional overrides from the outside, but as files owned by SpaceDock; edits were made to the Bootstrap files themselves to fix SpaceDock-specific problems or tweak SpaceDock's page layouts.
This is (very?) bad practice because:
- It's impossible to tell at a glance whether a given style directive is really part of Bootstrap or a hack added later by SpaceDock devs without digging into the git log, which makes investigating and fixing visual problems more difficult.
- We can't upgrade our version of Bootstrap, which is currently stuck at v3.3.6 (from 2015!!) while the upstream project has moved on to v5.1.3 as I write this, because we would lose all these hack changes if we replaced our static copies of the Bootstrap files, completely breaking the layout.
Suggestions
- Remove all SpaceDock-specific hacks from these files by checking their git log
- Move them to separate stylesheet files that are clearly identifiable as SpaceDock-specific
- Remove the embedded copy of Bootstrap from the source repo
- Switch to installing Bootstrap with
npm - Upgrade Bootstrap to a recent version
This would make it much easier for us to make big changes like migrating away from Bootstrap if we wanted to do that, or adding a new frontend dependency like AdminLTE if we wanted to do that (and as @V1TA5 does very much want to do).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area: FrontendRelated to HTML, JS, CSS, or other browser thingsRelated to HTML, JS, CSS, or other browser thingsPriority: NormalType: Improvement