# Glimmer DSL for CSS 0.1.0 Beta (Cascading Style Sheets) [](http://badge.fury.io/rb/glimmer-dsl-css) [](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-css) [Glimmer](https://github.com/AndyObtiva/glimmer) DSL for CSS provides Ruby syntax for building CSS (Cascading Style Sheets). Within the context of desktop development, Glimmer DSL for CSS is useful in providing CSS for the [SWT Browser widget](https://github.com/AndyObtiva/glimmer/tree/master#browser-widget). ## Setup Please follow these instructions to make the `glimmer` command available on your system. ### Option 1: Direct Install Run this command to install directly: ``` jgem install glimmer-dsl-xml -v 0.1.0 ``` `jgem` is JRuby's version of `gem` command. RVM allows running `gem` as an alias. Otherwise, you may also run `jruby -S gem install ...` Add `require 'glimmer-dsl-xml'` to your code after `require glimmer-dsl-swt` or `require glimmer-dsl-opal` ### Option 2: Bundler Add the following to `Gemfile` after `glimmer-dsl-swt` or `glimmer-dsl-opal`: ``` gem 'glimmer-dsl-xml', '~> 0.1.0' ``` And, then run: ``` jruby -S bundle install ``` That's it! Requiring the gem activates the Glimmer XML DSL automatically. ## CSS DSL Simply start with `css` keyword and add stylesheet rule sets inside its block using Glimmer DSL syntax. Once done, you may call `to_s` or `to_css` to get the formatted CSS output. `css` is the only top-level keyword in the Glimmer CSS DSL Selectors may be specified by `s` keyword or HTML element keyword directly (e.g. `body`) Rule property values may be specified by `pv` keyword or underscored property name directly (e.g. `font_size`) Example (you may copy/paste in [`girb`](#girb-glimmer-irb-command)): ```ruby @css = css { body { font_size '1.1em' pv 'background', 'white' } s('body > h1') { background_color :red pv 'font-size', '2em' } } puts @css ``` ## Multi-DSL Support Learn more about how to use this DSL alongside other Glimmer DSLs: [Glimmer Multi-DSL Support](https://github.com/AndyObtiva/glimmer/tree/master#multi-dsl-support) ## Help ### Issues You may submit [issues](https://github.com/AndyObtiva/glimmer/issues) on [GitHub](https://github.com/AndyObtiva/glimmer/issues). [Click here to submit an issue.](https://github.com/AndyObtiva/glimmer/issues) ### IRC Channel If you need live help, try the [#glimmer](http://widget.mibbit.com/?settings=7514b8a196f8f1de939a351245db7aa8&server=irc.mibbit.net&channel=%23glimmer) IRC channel on [irc.mibbit.net](http://widget.mibbit.com/?settings=7514b8a196f8f1de939a351245db7aa8&server=irc.mibbit.net&channel=%23glimmer). If no one was available, you may [leave a GitHub issue](https://github.com/AndyObtiva/glimmer/issues) to schedule a meetup on IRC. [Click here to connect to #glimmer IRC channel immediately via a web interface.](http://widget.mibbit.com/?settings=7514b8a196f8f1de939a351245db7aa8&server=irc.mibbit.net&channel=%23glimmer) ## Feature Suggestions These features have been suggested. You might see them in a future version of Glimmer. You are welcome to contribute more feature suggestions. [TODO.md](TODO.md) ## Change Log [CHANGELOG.md](CHANGELOG.md) ## Contributing [CONTRIBUTING.md](CONTRIBUTING.md) ## Contributors * [Andy Maleh](https://github.com/AndyObtiva) (Founder) * [Dennis Theisen](https://github.com/Soleone) (Contributor) [Click here to view contributor commits.](https://github.com/AndyObtiva/glimmer/graphs/contributors) ## License Copyright (c) 2007-2020 Andy Maleh. See LICENSE.txt for further details.