Title bar
Title bars are full width and docked to the top of the viewport.
--- layout: default title: Components · Ratchet ---
Design patterns that serve as basic building blocks
Title bars are full width and docked to the top of the viewport.
Buttons in a title bar are left or right aligned and should be used for actions. Use the .pull-right
or .pull-right
utility classes to float the buttons. Also, be sure to place any floated elements bofore the title.
Icons can also be used for actions in toolbars. Again, be sure to use utility classes to float the icons into position.
{% highlight html %}Link buttons can be used in tool bars to remove the outline. Use these in conjuction with icons to recreate the nav feel from iOS7. Note the use of .btn-nav
to bring the buttons a little bit closer to the edge of the viewport.
Title bars can also house segmented controls. Feel free to add accompanying buttons too. The control will automatically layout itself out correctly.
{% highlight html %}Use Ratchicons in the .tab-bar
to represent different sections of your app.
Note: Use push.js to actually change content.
If you don't want to use icons, that's okay too. The text will appear larger to use the additional space.
Note: Use push.js to actually change content.
Standard bars are basic fixed elements that can be positioned in four places. These can be used to house buttons, icons, or segmented controls (see following examples).
Use headings and paragraphs to title and describe sections of your app. Apply or wrap elements with .content-padded
to give the content space around the screen.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco.
Table views can be used for organizing data, showing collections of links, or a series of controls.
Chevrons should be used to indicate that the item is linked. Just apply the classes .push-right
or .push-left
to use a chevron.
Badges are a great way of showing data.
Feel free to use chevrons and badges together. They'll automatically positon themselves correctly.
{% highlight html %} {% endhighlight %}Showing media inside table views is easy. This component to perfect for images and text.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
Ratchicons can also used instead of images.
{% highlight html %} {% endhighlight %}Use .card
to wrap any content in a padded element.
Buttons come in many flavors and should be used for user actions.
{% highlight html %} Button Button Button Button Button Button Button Button Button Button {% endhighlight %}Content sections that are to be swapped in and out by the controller should all be siblings and have the class .control-content
. Then, just give each content section an id and point the link in the segmented control to that id.
Badges come in four flavors and should be used to indicate "how many" of something there are. Adding the a class of .badge-inverted
will remove the badges background color.
Toggles can be used by sliding or tapping the control.
Toggles.js binds an event to the document that returns a detail object and can be used to fire a callback.
{% highlight js %} // Only needed if you want to fire a callback document .querySelector('#myToggle') .addEventListener('toggle', myFunction) {% endhighlight %}Popovers are designed to only fire from title bars. Set the value of the title href to the id of a popover, like so:
{% highlight html %}The contents of my modal go here. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.
Modals are designed to only fire from links. Set the value of the toggle links href to the id of a modal.
Can be used with any number of slides with any type of content.
Sliders.js binds an event to the document that returns a detail object and can be used to fire a callback.
{% highlight js %} // Only needed if you want to fire a callback document .querySelector('#mySlider') .addEventListener('slide', myFunction) {% endhighlight %}Push.js is the engine that connects Ratchet pages together with AJAX and the history api. Push.js is listening to all clicks on a page, so just make sure it's included and link something in your Ratchet project up.
{% highlight html %} Two {% endhighlight %}This will use push to replace everything in the .content div with the .content of two.html. Also, it will either update or remove .bar-nav and .bar-tab according to their presences in two.html.
Now that pages are being loaded through push, it's easy to specify transitions for animations between pages. There are three different transitions to chose from: fade
, slide-in
, or slide-out
.
A working version of push:
{% highlight html %}Have a link you don't want to intercepted by push? Try this:
{% highlight html %} Google {% endhighlight %}Push.js binds an event to the document that returns a detail object and can be used to fire a callback.
{% highlight js %} // Only needed if you want to fire a callback window.addEventListener('push', myFunction); {% endhighlight %}