A Better Twitter Bootstrap Modal
github.com
github.com
And not everything is mobile web.
If it's used for collecting user info after they hit a signup button, that's marginally acceptable, but they would still be unable to, for example, scroll back up the page to double-check some info until they finished with it. So I see popups like that as a failure of design; "I didn't know where to put this, so, here. Modal."
What modals are actually used for in the majority of cases I've seen is making modal popups begging first time visitors to register for websites and similar. This task is neither urgent nor necessary (nor, in most cases, desirable) for the users. Forcing them to interact with it before the rest of the page is incredibly irritating, but that will never stop because it's more lucrative.
There are a lot of times that this is the case, it's strange you'd prefer no modal at all. I make backend web apps and modals are hugely valuable. Creating/editing new objects, confirming actions, applying filters, etc etc. I'd agree they have no place in informational web sites (like your favorite news site), but the web is used for a lot more than informational websites.
I don't think you can write of modals simply because you don't like how they are used in some cases.
For example, how do you feel about Pinterest using modals to expand on content?
also see my other comment with regards to patching it for abs positioning
edit: current alternative is http://fancyapps.com/fancybox/
I didn't understand that decision back then and I don't understand it today. The patch weighs in at about 100 lines which doesn't seem heavy to me. Especially when you consider that without the patch the bootstrap-"modal" is not a modal...
Anyway, here's the fixed bootstrap-modal.js for the version that was current back then:
https://gist.github.com/0d04646ab6cf4df50610
Line 23-82 is the important bit, that snippet is lifted nearly 1:1 from jquery.ui.dialog which fixed this issue ages ago. Beyond that there's only a couple lines of glue code.
Feel free to port this forward to the current version (or better-modal). Personally I've stopped using the javascript parts of bootstrap because I don't want to maintain forks for basic bugs like that.
modal.attr('tabindex','1').style('outline','0'); modal.focus();
That: 1 - enables focus on the modal div 2 - hides focus visual indicator on the modal (because it's not an interactive element, just a wrapper) 3 - sets focus on the modal
The user's next tab keypress will select the first focusable element inside the modal.
Restricting tab keypress to just elements inside the modal (ie cycling through only modal content) doesn't return significant benefit and it's a whole lot more work. It's easy for a user to error-correct by simply clicking back inside the modal, but it's hard for a developer to manage enabled/disabled states for native behavior.
There's a solution available which avoids wrap and page shift too. Take a look at: https://github.com/atirip/bodyscrollkiller.js
After checking out the live demo, I have no idea how "stacking" modals could make a good user interface.
http://www.evernote.com/shard/s178/sh/003f6b5e-0869-44af-ab9...
This is also using the bootstrap modal solution referenced in this article. Redactor is the editor widget.
Just because you can get away with doing something poorly, doesn't mean you should.
Desktop solutions I'm talking about: anything in Windows control panel (people still use that OS, God help them), any configuration panel in Ubuntu (go modify your network settings, for example), all sorts of horrible-to-use and yet somehow magically-useful simulation/CAD programs, etc. (A common theme here is that Apple software and most software created for Macs does not have this UI pattern, because it is indeed suboptimal. The rest of the world still sees it a lot.)
Say you have a modal that contains a step-by-step process. Now you can load multiple modals, and dismiss them one at a time. To a user, it will look like s/he is moving through the steps.
Is this a good use? Ehh...maybe not, but it's possible. Just brainstorming here.
Similarly for adding any foreign key item which could be multiple levels.
Django admin does this now by opening a "new" in a different window.
1. Ajax loader inside the modal (load modal first)
2. Pinterest like modal (aka modal with HTML5 history API /
hashchange / browser back button support)Issues have been opened referencing this modal and there has been no response from @mdo or @fat on it other than to say that they were working on it themselves for a future version.
you might want to take a look at grabbing what you can from my project for abs positioning:
http://niftylettuce.github.com/twitter-bootstrap-jquery-plug...
.modal-background { background:white; }
For me, Twitter Bootstrap's components have been the right tradeoff between flexibility and functionality. It doesn't have too many bells and whistles which makes it way easier to integrate into my own code.Maybe I just haven't run in to the use cases for Bootstrap's modal that causes the pain that this fixes, but most of these "features" seem like "it would be cool if..." product cruft.
- Responsive
- Stackable
- …
Nice. But why isn't "Accessible" in that list?
But I don't blame you, its probably just chrome 18 being ancient.