Make WordPress Core

Opened 6 years ago

Closed 21 months ago

Last modified 19 months ago

#10955 closed enhancement (wontfix)

Replace ThickBox

Reported by: aaron_guitar Owned by:
Milestone: Priority: normal
Severity: normal Version: 2.9
Component: External Libraries Keywords: dev-feedback needs-patch
Focuses: Cc:


Have you thought about replacing ThickBox? It is no longer under development (as their site says) and it doesn't conform to standard jQuery plugin practices. For example, I'm trying to use it for a plugin of mine and I'm wanting to tie into the "onClose" event for ThickBox which isn't too easily done. I know I could just include one of the other plugins, like colorbox, with my plugin but I think it'd be a great service to other developers if you included a more flexible library.

(I would have assigned this to 3.0+ but the option isn't available.)

Attachments (1)

medialib2.jpg (117.2 KB) - added by azaozz 4 years ago.

Download all attachments as: .zip

Change History (50)

comment:1 @scribu6 years ago

  • Component changed from General to UI
  • Milestone changed from Unassigned to Future Release

comment:2 follow-up: @Viper007Bond6 years ago

  • Keywords needs-patch added
  • Milestone changed from Future Release to 3.0

ColorBox appears to be really pretty BTW.

comment:3 @aaron_guitar6 years ago

Really pretty and really customizable.

comment:4 in reply to: ↑ 2 @edified6 years ago

Replying to Viper007Bond:

And with a really helpful developer.

8304 bytes before it zip/deflate

comment:5 follow-up: @caesarsgrunt6 years ago

+1 for ColorBox. I'd never met it before, but it looks great.

comment:6 in reply to: ↑ 5 @scribu6 years ago

+1 from me as well.


Replying to caesarsgrunt:

+1 for ColorBox. I'd never met it before, but it looks great.

"Hello, ColorBox! How are you today?" :P

comment:7 follow-up: @jacobsantos6 years ago

I've tried all of the so called alternatives and they pretty much all suck. The limitations of jQuery UI Dialog is that you can pretty much only assign one dialog at a time (unless there is a workaround that isn't obvious).

Colorbox is fine if you don't need to fine tune any scripting for the modal box. Say if you want to use any other scripting then the predefined one then you are SOL.

I would rather recommend qTip jQuery plugin instead. It is a tooltip first, but it has modal capabilities as well.

comment:8 in reply to: ↑ 7 @aaron_guitar6 years ago

Replying to jacobsantos:

Colorbox is fine if you don't need to fine tune any scripting for the modal box. Say if you want to use any other scripting then the predefined one then you are SOL.

Could you give a specific example?

comment:9 @hakre6 years ago

Maybe code like this one [12554]

comment:10 @nacin6 years ago

  • Milestone changed from 3.0 to 3.1

comment:11 @freddyware5 years ago

  • Cc frederick.ding@… added
  • Version changed from 2.9 to 3.0.1

comment:12 @mrmist5 years ago

  • Version changed from 3.0.1 to 2.9

Version tracks the original report..

comment:13 @nacin5 years ago

  • Milestone changed from Awaiting Triage to Future Release

comment:14 @Denis-de-Bernardy4 years ago

  • Cc Denis-de-Bernardy added

comment:15 @aaroncampbell4 years ago

  • Keywords 2nd-opinion added

Just started playing with colorbox because of the limitations with thickbox. It's pretty nice. I'm open to other options, but it WOULD be nice to find a replacement.

comment:16 @andrewryno4 years ago

  • Cc andrewryno@… added

comment:17 @alex-ye4 years ago

1+ for colorbox .

comment:18 @gcorne4 years ago

  • Cc gcorne@… added

comment:19 @azaozz4 years ago

  • Keywords 3.4-early added; needs-patch 2nd-opinion removed

comment:20 follow-up: @nacin4 years ago

I want to suggest that I would rather to continue to monkey-patch Thickbox than replace it with another library. Replacing Thickbox means killing popups in core, not making popups prettier. Maybe once we've eliminated TB usage in core, we can shoehorn in a worthy WP-integrated replacement.

comment:21 in reply to: ↑ 20 @aaroncampbell4 years ago

Replying to nacin:

Do you really think that the correct direction is no lightboxes anywhere? That feels like more of a knee-jerk reaction to their overuse and misuse on the web as a whole (and possibly in WordPress as well). I think they have their place. For example, to me it seems like it's always going to be better to browser your media library for something to insert into a post inside a lightbox. It seems like there's just too much content there to shrink that into a small section of the screen.

I'm interested in hearing (or better yet, seeing) the alternatives though.

comment:22 @nacin4 years ago

The best argument for eliminating thickboxes for media handling is that by moving it inline, you can continue to work on your content while images are uploading/crunching. Not to mention drag-and-drop into the editor. See http://wpdevel.wordpress.com/2009/10/08/some-media-upload-sketches/. It's going to take some work but it can be possible.

@azaozz4 years ago

comment:24 follow-up: @azaozz4 years ago

Replying to nacin:

Agreed. Actually started on a new media library UI couple of months ago. Looks pretty similar to the plugin @scribu linked above. Had some hopes that it would make it in 3.3 but definitely going to try it for 3.4 :)

comment:25 @DrewAPicture4 years ago

  • Cc xoodrew@… added

comment:26 @Ipstenu4 years ago

  • Cc ipstenu@… added

comment:27 @chrisbliss184 years ago

  • Cc gaarai@… added

comment:28 @SergeyBiryukov4 years ago

Closed #19975 as a duplicate.

comment:29 @maorb4 years ago

  • Cc maor@… added

+1 for colorbox

comment:30 @toscho4 years ago

  • Cc info@… added

comment:31 @sabreuse4 years ago

  • Cc sabreuse@… added

comment:32 @wycks4 years ago

jQuery UI Dialog is already bundled with the jQuery UI in WordPress.


Already bundled

Actively developed

Lots of options

Integrates well with jQuery and other jQuery UI features.

ps. @jacobsantos it also can support multiple instances.

comment:33 in reply to: ↑ 24 @andyadams3 years ago

  • Cc aadams@… added

comment:34 @MatthewRuddy3 years ago

Is this still being looked at? Thickbox is really horrific on mobile devices such as the iPad. Zooming in and out causes major problems. Unable to scroll within iframes on it as well; instead it scrolls the parent window. Doing so also completely destroys the background overlay as well.

The problem with media-upload.js overwriting the tb_position function is a serious pain as well. Makes admin thickbox functionality in the WP Admin for plugin almost impossible if they can't resize it to their needs (provided they need media-upload.js for whatever reasons). It is possible to overwrite the functionality with your own functions loaded after media-upload.js but, it seems ridiculous when the functionality is native but overwritten.

The jQuery UI dialog seems like a good alternative to me. It is already included with Wordpress, and the styling classes can easily be carried over to make it look as it already does.

Last edited 3 years ago by MatthewRuddy (previous) (diff)

comment:35 @dgwyer3 years ago

+1 for jQuery UI dialog.

comment:36 @deltafactory3 years ago

  • Cc jeff@… added

comment:37 @sc0ttkclark3 years ago

  • Cc lol@… added
  • Keywords dev-feedback added; 3.4-early removed

This is a major pain point for development for me, can we at least add a new one and keep Thickbox for deprecated use?

comment:38 @sc0ttkclark3 years ago

  • Keywords needs-patch added

comment:39 @scribu3 years ago

Another contender: http://jschr.github.com/bootstrap-modal/

Not sure how dependent on Bootstrap it is, but it definitely seems to have all the functionality WP might need.

comment:40 @dd323 years ago

Another contender: ​http://jschr.github.com/bootstrap-modal/

Looks decent, but worth noting it's Apache v2 licensed, which isn't GPLv2 compatible.

comment:41 @ocean903 years ago

Why do we need another modal library? I think we should just make the new media modals more generic so that core and plugins can use them too.

comment:42 @sc0ttkclark3 years ago

I was trying out the new media modal too, was anxious to switch from Thickbox to it but its not in a state to be used cleanly when I last looked. Maybe a new ticket should be used and it's use as a Thickbox replacement be one of the proposed benefits?

comment:43 @sabreuse3 years ago

  • Component changed from UI to External Libraries

comment:44 @sc0ttkclark3 years ago

Update: Confirmed, the new WP 3.5 Media Modal makes an excellent Thickbox killer. It's use as a replacement for Thickbox would require additional helper functions for plugins/themes to hook into, but based on the working code I'm using, this is definitely something viable!

comment:45 @scribu3 years ago

Could you share the code you're currently using, Scott?

comment:46 @sc0ttkclark3 years ago

Will do over the weekend / next week. Still in progress, and heavily tied to the project it's for, http://pods.io/

comment:47 @TobiasBg21 months ago

  • Milestone Future Release deleted
  • Resolution set to wontfix
  • Status changed from new to closed

Core is moving to custom implementations with the Media Models/Views, theme browser, etc. and doesn't have a need for another external library at this time.
Thickbox itself is used less frequently and will probably be phased out in Core over time, whenever relevant areas are touched/refactored, in favor of such custom models/views. It needs to stay for backward compatibility though, as plugins might rely on it.
With #26870, efforts are being made to document the Media Models/Views code so that they can be used more easily by plugins.

comment:48 @sc0ttkclark21 months ago

Doesn't sound like we need an external library, the 3.5 Media Modals have been expanded in many ways already in core and core-related projects. It's not difficult to make a Thickbox replacement modal, I just haven't had time to focus on this specifically.

I'd like to see this kept as Future Release, because Thickbox has to be replaced soon, seems modals are the best path forward.

comment:49 @ircbot19 months ago

This ticket was mentioned in IRC in #wordpress-ui by helen. View the logs.

Note: See TracTickets for help on using tickets.