Announcing the Razor Component Framework

General

Razor component framework

I've posted about the components I've been working on as a side project for a long while now. Finally, I'm just about ready to release them to the public in a beta state.

The Razor Component Framework is intended to be a lightweight, yet feature-rich alternative to the mx framework for Flash, Flex and AIR. It comes in both ActionScript 2 and 3 flavours while maintaining as consistent an API as possible.

The components are intended for the more advanced developer, since you mostly create and control them using ActionScript. Although I do plan on modifying them for use with Flash CS3 in the near future, and looking into an adapter for Flex.

    Current component set:
  • Accordion
  • Button
  • Calendar
  • CheckBox
  • ColorPicker
  • ColorSwatch
  • ComboBox
  • DateChooser
  • Image
  • Label
  • List
  • ProgressBar
  • RadioButton/RadioGroup
  • ScrollBar
  • TextArea
  • TextInput
  • ScrollArea
  • Pane
  • Layer
    • Key features:

    StyleSheets.
    Razor implements a cascading stylesheet system that supports a great degree of flexibility.
    You can 'piggy-back' StyleSheets in order to override default functionality of a skin.
    You can have fine grained control over specific parts of a component; for instance, you can define a StyleSheet that applies a bitmap image to the up-button of the scrollbar inside a TextArea.
    You can set styles for a user-defined class of components, as well as set styles for all instances of a component class.
    You can also apply styles to a whole subset of your application, such as setting the default font to be Verdana.
    Whats more, you can do all of this at runtime :)

    Swappable parts
    Along with the StyleSheet system which defines the skin for a set of components. You can replace each component part with your own implementation.
    If you wanted to, you could replace all Labels, or all Backgrounds with a class of your own.
    Think of this as being similar to using list cell renderers, except for everything.

    Automatic layout
    The Layer component provides a container with dynamically swappable layout functionality.

    Small
    Since Razor's default skin is programmatic, the components require no assets out-of-the-box, making them relatively lightweight.

    Licensing
    I've decided to make the component set available under a dual licensing scheme. You can license the components under the Gnu GPL, or you can choose to obtain a commercial license. Basically what this means is that if you don't wish to share the source code of your proprietary product (as required by the GPL), you'll need to get a commercial license. Please contact me at (ash [at] razorberry [dot] com) if you're interested in licensing :)

    Availability
    Since I'm putting this post out there, I plan on releasing the ActionScript 3 source code in just over a week. Then after some backporting of the most recent features, the ActionScript 2 source.
    I'll be providing documentation, as well as access to bug tracking, as I go along.

    Future
    DataGrid.
    CSS parser for easier style definition.
    Extending the automatic layout to parse xml. (rxml? :D )
    Other various components as people request them.

    Thanks for reading!

    This entry was posted on Tuesday, April 8th, 2008 at 4:12 pm and is filed under General. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

    2 Responses to “Announcing the Razor Component Framework”

    1. ethan Says:

      I'd love to see the css parser added, helps with quick tweaks. I've been playing around trying to get runtime css in flex to work well. Thinking degrafa may be the a way to go. I still do not understand why we have to have the css file converted to an swf for flex.

    2. jake Says:

      Just wondering how things are coming on this front... excited to give them a run.

    Leave a Reply