Don introduced a modernized Custom Lightbox theme component for Discourse, enhancing the default Magnific Popup with features like fullscreen mode (triggered via F), touch swipe gestures (swipe left/right for navigation, swipe down to close), and toggleable image titles. The component drops jQuery, uses FontAwesome 6 icons, and adjusts theme-color to black during lightbox use for better mobile UX. Mr.X_Mr.X suggested swipe-based scrolling, which Don noted wasn’t supported by Magnific Popup but later implemented swipe navigation anyway. davidkingham requested moving UI controls (arrows, download, counter) outside the image to avoid obscuring photos — Don proposed a concept with a collapsible info bar, which davidkingham approved. After updates, Don implemented redesigned, smaller buttons, hid arrows on mobile, and fixed a bug where clicking arrows closed the lightbox davidkingham reported — Don resolved it promptly. Later, Don added image-click zoom toggle for touch devices and Don refined the UI further: removing padding, enabling zoom on small images, improving button visibility on light backgrounds, and introducing cursor-follow scrolling for zoomed images on desktop. All updates are available via the GitHub repo and previewable on Theme Creator.
Very nice Don, any chance you could add an option to push the arrows, download button and image count to the outside of the image? On a photography site it’s not good to cover up parts of the photo, we want to see the entire photo without distractions. No worries if not, thanks!
Looks nice Don! The only issue I’m seeing is when I click the prev/next arrows it closes the lightbox, if you use the keyboard arrows it does work as expected. I tried various browsers and it does the same thing.
New button design with a transparent black background, making buttons visible on light images too etc.
Desktop enhancement:
Zoomed image scrolling on desktop especially horizontal scrolling was not very easy or user-friendly.
This update introduces a cursor follow scrolling mechanism to improve the experience.