One of the initial steps we've identified as part of the complete
UX/UI review of GeoNode is to adopt a CSS/design framework. By
starting with a common set of layout and component styles for the
Django templates of GeoNode, we enable both some better defaults as
well as simplifying the learning curve for customization and branding
for deployments.
In surveying the landscape of available CSS frameworks, we've
identified Twitter's Bootstrap project as being the best candidate for
our needs. No doubt many of you have either encountered Bootstrap or
even worked with already, as it one of the most active and popular
open source projects and a great compliment to what we're doing with
GeoNode.
A short list of the benefits that we're excited about:
* Full grid layout
* Great cross-platform support
* Ease of customization
* Great documentation
* Potential for mobile layouts through responsive design (this is not
something we're targeting initially, but individual sites could
implement)
If you're interested in checking out Bootstrap, there's lots of
general and technical information available at
http://twitter.github.com/bootstrap/ and you can even check out the
site over at https://github.com/twitter/bootstrap/ There is also a
pretty comprehensive list of examples of sites that use boostrap here
http://builtwithbootstrap.com/ or here
http://twitter.github.com/bootstrap/examples.html
Please feel free to respond with your questions, comments, concerns,
thoughts etc.
Jeff
" Bring Bootstrap's components to life—now with 12 custom jQuery plugins."
http://twitter.github.com/bootstrap/javascript.html
Noli
On 3/9/12, David Winslow <dwin...@opengeo.org> wrote:
> 1. Has Bootstrap been tested with ExtJS?
> 2. I see that the Bootstrap homepage advertises it as a "HTML, CSS, and
> JavaScript" framework. How much JavaScript? How does this interact with
> our discussion about jQuery from earlier today?
> 3. What problems did you encounter with our current CSS framework? Did
https://github.com/eldarion/geonode/commit/71caa3fc36d4efb7bdf82f380ac56fd6c26e8190
Jeff
I would like to echo David's query of what direct advantages adding
bootstrap to the mix has over the current css situation. Like how will
it make life easier, and how can we ensure it doesn't confuse people
more?
But I did find http://speckyboy.com/2008/03/28/top-12-css-frameworks-and-how-to-understand-them/
which helped me understand a bit more. Basically a css framework
'packages a number of ready-made options for designing and outlaying a
webpage'.
IMO, the biggest advantage to switching to bootstrap is precisely the
good integration we get with jquery and the access to all of the nice
jquery UI plugins [1] which are based on now well established
design/ui patterns, and are becoming more and more common in 'modern'
sites across the web. I think that as we begin to properly design the
new social features and other generally webby stuff and bring it into
mainline geonode, it seems like it will be a nightmare to implement
much of this kind of thing properly with extjs. Seems to me that using
jquery for this kind of thing (and styling it with bootstrap), and
using extjs and geoext for the map composer and other map components
strikes a good balance and division of responsibilities between these
widget frameworks.
Jeff
[1] http://twitter.github.com/bootstrap/javascript.html
Its also a bit more than replace boilerplate with bootstrap ... its
also "buy into jquery and get all the nice UI components at the same
time"
Jeff
I prefer to use jQuery (i.e. jQtouch, jQuery mobile), HTML and CSS so
things can work as well with in mobile Touches devices (iPad, iPhones
and Android phones and tablets). (BTW, I am aware about Sencha Touch
(ExtJS)).
Would GeoNode client works without ExtJS, just HTML and CSS (+
Javascript, jQuery?) ?
Thanks.
Noli
On 3/9/12, Ariel Nunez <ingenie...@gmail.com> wrote:
> From a Python developer perspective and having developed at least 5
> different GeoNode themes (including one with bootstrap) I can say that the
> best advantages are Documentation (including easy to understand examples)
> and HTML5 support.
>
> After those ones I would include 'shorter learning curve' for non web
> designers. We had an awesome css developer help us with the first
> implementation, but he is no longer contributing to the code base.
> Understanding the current implementation takes a lot of css reading (as
> opposed to documentation reading).
>
> I will try to answer David's questions:
>
> *>> 1. Has Bootstrap been tested with ExtJS?*
> I have done it, there were some problems related to default ul/li styling
> and padding for tables that broke the layout in the map composer. They
> ended up being a short list [1]
>
> *>> 2. I see that the Bootstrap homepage advertises it as a "HTML, CSS, and
> JavaScript" framework. How much JavaScript? How does this interact with
> our discussion about jQuery from earlier today?*
> When I used it, I only used the CSS / HTML part (being able to use HTML5
> elements and syntax and good looking and easy to understand CSS classes.
> The Javascript part is optional, and is mostly used for things like
> carrousels, navigation bars with dropdown menus and other 'interactivity'.
> There is no real need to use those features in GeoNode and there is no need
> to use the provided Javascript plugins.
>
> That said, the Javascript functionality is based on jQuery, so if we end up
> choosing to use it, we will be in good shape.
>
> *>> 3. What problems did you encounter with our current CSS framework? Did
> you ask for help? How does Bootstrap address them*
Note there is another thread about this topic, but the short answer is
that if the Layer and Map info pages could be made to work with just
OpenLayers instead of GeoExt/GXP this is certainly possible ... and
also I think some work has gone into making GeoExt work on mobile too.
The Map Composer (http://demo.geonode.org/maps/new) is pretty heavily
dependent on GeoExt and I dont know if it makes sense to run something
like that on mobile in the browser ... if so, it would take quite a
bit of work I suppose.
Jeff
It makes sense to pick up the discussion of jquery in the other thread
though since I think there is not yet unanimity on that front.
Jeff
I think the next steps are the overall template refactoring to remove
inline js and css from the templates and to also go through all the
templates and make sure that all the blocks are named consistently and
then to document this.
Luke, do you have any input here since you are the one working on this?
Jeff