Re: GUADEC Theming API meeting minutes



Hey everyone,

I'm really excited about being able to use CSS to define the way a GTK+ theme looks.  I've had my hand in making GTK+ themes in the past and know CSS pretty well, so this is a perfect intersection for people like me.  (:

Sorry I couldn't make it out to GUADEC to talk with you all about this in person, but hopefully I can provide some help through emails and possibly on IRC, etc.


A quick list of things that I would really like
  • keep as close to the CSS spec as possible (especially pay attention to CSS3, as it has lots of useful things)
  • it is okay to use CSS extensions where CSS has a few gaps, especially since this is theming widgets, not web pages (although try to keep them down to a minimum)... something like: -theme-appearance: button; (similar to -moz-appearance [1])
  • make a "page" that shows off all the "widgets", as well as common combinations (like nesting, etc.), and make it easy to "reload"... this doesn't really have to be a page, but something like this is a really nice thing when styling using CSS for a web page
  • leave the padding up to the CSS style, based on relationships of widgets
  • start from scratch, with no appearance defined whatsoever, but have a common styling that themes inherit from so that they can instantly define buttons, etc.
  • support as many useful selectors & pseudo-classes as possible
  • make sure cascading applies
  • take advantage of the ability to use multiple classes on an element...
    • HTML: <a class="foo bar baz">
    • CSS: foo {}, bar {}, and baz {} would all apply to the above HTML
  • applications should have a top-level id, so someone could do something like this:
    • #gimp #toolbox button { -theme-appearance: button-small; border: none; }
    • #gimp #toolbox button:selected { background-color: Highlight; color: HilightText; }
    • #gimp #toolbox button:hover:selected { background-color: HighlightHover; color: HilightTextHover; }
    • (I'm adding these extra states to show how things would work in other ways too)
  • support CSS variables [2]
  • have an introspection utility like Firebug so that theme authors and application developers can easily click widgets and explore an application by browsing around something like a DOM tree, with widget properties and such... once upon a time there was something that was sort of like this (called GLE [3]), which sort of worked, and then was not maintained and shortly bitrotted
  • if this could be made at a lower-level than GTK+ itself, it would be nice... then GTK+ could call on this library to do the widget rendering, but so could Mozilla, OOo, and even Qt (which does this for non-UNIXy platforms like Windows and OS X already)... also, this might make adoption for things like custom Mono widgets (as in Banshee), Mono's WinForms, Wine, and even currently not-really-themable toolkits (Tk, Lesstif, etc.) easily possible

References

  1. -moz-appearance: http://developer.mozilla.org/en/docs/CSS:-moz-appearance
  2. CSS variables: http://disruptive-innovations.com/zoo/cssvariables/
  3. GLE: http://testbit.eu/~timj/historic/gle/

Thanks for reading!
Garrett


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]