Besides an overhaul to the code-base, there are some new features coming as well

In version 0.2, most of RP’s shortcodes will include a “design” attribute that can be used to quickly specify a pre-built design (style/animation/functionality/etc) for the shortcode.

Need a red 3d button that highlights on hover? No problem: [rp_button color='#ff0000' design='3d']

How about a blue push button with an icon that links to Google? This should do it: [rp_button color="#0000ff" design="cassette" icon_class="icon-gplus"  link=""]

What about a dark gray paged menu system based on your main menu? Pretty simple: [rp_paged_menu design="dark"]

This also means we can include new “designs” in future releases and publish a full catalog of designs that developers can browse to find a design that is best fit for their current site/project. I’m also looking forward to a global “design” feature that basically sets the default “design” for all shortcodes to a specific name. For example, if I set the global design to “dark”, all shortcodes should use the dark design by default without the need to specify it each time. This would make it really easy to adapt the entire repertoire of Rapid Platform’s UI components and shortcodes to a specific site/theme. Furthermore, if designs become a solid feature I’m hoping to see what crazy designs the WordPress community comes up with.

My biggest challenge is the fact that some of these shortcodes use anchor <a> elements and what if a theme already specifies global styles for all <a> elements? We end up having to override those styles at the shortcode to prevent them from affecting the natural design. Rather than using a broad CSS selector such as a {color:black;} one could always style their anchors more carefully using something like p a {color:black;} so that links are only styled if they reside within a paragraph (body of text), but that means if we have a shortcode inside of a <p> element we have the same problem as before…

And there’s not really a way to “reset” CSS styles at a specific element/DOM node unless you wrap it in an iFrame (starting a new document), so I’ll be researching/testing some other methods. Perhaps I will eliminate the <a> elements from shortcodes altogether and just reproduce their functionality with a <div> using HTML5′s data-* attribute to store the href and setting {cursor:pointer;}.

Read the full discussion