Content

Cancel
First
Second
Third

Cancel
Confirm

Base

uxcontent

Changes the text contents of an element without changing any of its child elements (only textual part).

jQuery("div.target").uxcontent("Hello World");

uxdecimal

Creates a floating point value with possible precision error into a less precise float with no rounding issues.

eg: 38.55 * 3.5 = 134,925 but in js this number is represented as 134.92499999999998, to be able to represent it as 134.925 one should use the uxdecimal

jQuery.uxdecimal(38.55 * 3.5);

uxcountry

Converts a standard representation of a country (ISO) into a visual locale base representation. Possible values for the format field are: iso, iso2 and iso3.

jQuery.uxcountry("PT", "iso2");

uxalert

Presents an alert box with the specified message and a confirm button. The callback is called when the user confirms.

alert("Hello World", callback);

uxinfo

Presents an info box with the specified message, title and type (which will be added to the title element as a class).

jQuery("body").uxinfo("There was an error.", "Warning", "warning");

Mobile

The following classes are added to the body element so that you can easily add conditional code to provide a better user experience in all devices.

mobile If the user is using a mobile device.
tablet If the user is using a tablet.
device If the user is using either a tablet or a mobile device
desktop If the browser is running on a desktop.
touch If it is a touch device.
mouse If the user is browsing with a mouse.

Responsive

Some classes are also added to the body based on the screen's dimensions. The pixel ranges can be overrided by setting the appropriate data attributes. The retina-s class is added in retina screens.

The width is indicated with these classes: mobile-s / tablet-s / desktop-s / fat-s

Attribute Default
data-tablet 768
data-mobile 420
data-slim 960

The screen height is represented by the following classes: minimal-s / small-s / short-s / average-s / tall-s

Attribute Default
data-minimal 200
data-small 320
data-short 500
data-average 800

The classes portrait-s or landscape-s are based on the device's ratio.

device_change( device ) Triggered when the device changes. Can be desktop, mobile or tablet

Browser

UXF also provides an easy way to check what browser and OS is being used. This information is added to the body element both as classes and as data attributes.

data-browser string The name of the browser being used.
data-browser_version string The browser version.
data-os string The Operating System. Windows, Linux, Mac or iPhone/iPod.

Style

Drop Field

This element adds autocomplete to a text field using a data source. It supports all text field data attributes.

    <div class="drop-field">
        <ul class="data-source" data-type="countries"></ul>
    </div>
    

    To select a value programmatically use the set function like in the following example:

    jQuery(".drop-field").uxdropfield("set", { value: "Portugal", valueLogic: "PT" });
    
    data-submit boolean If the parent form of the drop field should be submitted upon action.
    data-duration integer The duration for the scrolling effect in milliseconds. If set the link value in the item must be internal.
    data-offset integer The offset to the target element in pixels, the value may be positive or negative.
    data-number_options integer If set overrides the default number of options to be present per each load (set to minus one for infinite).
    data-display_attribute string The attribute of the item's object that contains the text to present to the user.
    data-extra_attribute string An extra attribute of the item's object that may be necessary to retrieve.
    data-value_attribute string The attribute of the item's object that contains its data value.
    data-link_attribute string The attribute of the item's object that contains the link to open.
    value_select( value, logic, item ) Raised when a value is selected in the drop field.
    value_unselect( ) Raised when a value is unselected from the drop field.

    Drop Tag

    • Student
    • Software Developer
    • Mechanical Engineer
    • Doctor
    <div class="drop-tag" data-title="I am a:">
        <ul class="items">
            <li>Student</li>
            <li>Software Developer</li>
            <li>Mechanical Engineer</li>
            <li>Doctor</li>
        </ul>
    </div>
    
    data-name string The correspondent data value for the item's text.
    item_selected( element ) Raised when an item is selected.
    item_unselected( ) Raised when the drop tag is closed with no item selected.

    Drop List

    Select One
    • Student
    • Software Developer
    • Mechanical Engineer
    • Doctor
    <div class="drop-list">
        <div class="drop-item">Select One</div>
        <ul class="drop-options">
            <li data-value="student">Student</li>
            <li data-value="software-developer">Software Developer</li>
            <li data-value="mechanical-engineer">Mechanical Engineer</li>
            <li data-value="doctor">Doctor</li>
        </ul>
    </div>
    
    data-value string The correspondent data value for the item's text.
    value_change( element, value ) Triggered when an item is selected.

    Tag Field

    With this component you can select tags retrieved from a data source with autocomplete.

      <div class="tag-field" data-no_duplicates="true">
          <ul class="data-source" data-type="countries"></ul>
      </div>
      
      data-no_duplicates boolean If a value can be selected more than one time.
      data-auto_width boolean If the width of the field should be automatically set.

      Select Field

      To have a <select> element consume a data source use this component.

      • User 1
      • User 2
      • User 3
      <div class="select-field" data-value="name">
          <select class="text-field"></select>
          <ul class="data-source" data-type="local">
              <li><span name="name">User 1</span></li>
              <li><span name="name">User 2</span></li>
              <li><span name="name">User 3</span></li>
          </ul>
      </div>
      
      data-value string The name of the value to be retrieved from the item.
      data-display string The name of the item's attribute to display to the user. If not set is equal to data-value

      Filter

      May be used to list dynamic content in a table like environment. Queries a data source and has support for filtering with a text field and drop fields. You can also trigger the update event to refresh the filter.

        • User 1
        • User 2
        • User 3
        • User 4
        • User 5
        • User 6
      • No results found
        Load more Loading
      <ul class="filter" data-number_records="2">
          <ul class="data-source" data-type="local">
              <li><span name="name">User 1</span></li>
              <li><span name="name">User 2</span></li>
              <li><span name="name">User 3</span></li>
              <li><span name="name">User 4</span></li>
              <li><span name="name">User 5</span></li>
              <li><span name="name">User 6</span></li>
          </ul>
          <li class="template">
              <div class="name">
                  <a>%[name]</a>
              </div>
          </li>
          <div class="filter-no-results quote">
              No results found
          </div>
          <div class="filter-more">
              <span class="button more">Load more</span>
              <span class="button load">Loading</span>
          </div>
      </ul>
      
      data-sort string Textual value that respects field:direction structure to define the default and initial sorting.
      data-number_records integer If set overrides the default number of records to be present per each load (set to minus one for infinite).
      data-no_input boolean If the search input field should not be displayed and used for the filter.
      data-infinite boolean If infinite scrolling should be used.
      data-sick integer The number of milliseconds in between allowing multiple infinite loading requests (sick time).
      selected( row ) Raised for each of the elements (lines) once they are selected.
      update( filterValue ) Triggers the reloading of the filter data (search query can be optionally provided).
      update_start( ) Triggered when a new remote query is started.
      update_complete( reset, templateItems ) Called at the end of each refresh operation (remote data received).
      data( validItems, moreItems ) Called whenever some remote data is received (before layout update).

      The following classes are added to the component during it's lifecycle:

      no-contents When there are no children in the filter.
      no-input If the filter has no text field associated.
      loading While the filter is making a remote request.

      Select List

      Component to list items with support for ordering and selection.

      • Item 1
      • Item 2
      • Item 3
      • Item 4
      • Item 5
      <ul class="select-list" data-order="true">
          <li>Item 1</li>
          <li>Item 2</li>
          <li>Item 3</li>
          <li>Item 4</li>
          <li>Item 5</li>
      </ul>
      
      data-order boolean If the items of the list can be manually ordered.
      order_changed( ) Triggered when the list's order is changed.
      selected( item ) Triggered by a list's item when it's double clicked.

      Source List

      This component adds Data Source support to Select List.

        <div class="source-list" data-order="true">
            <ul class="data-source" data-type="countries"></ul>
        </div>
        
        data-number_options string Maximum number of options to show at the same time.

        Cross List

        This element may be used to move or select elements from one list to other. Uses Source Lists as child elements.

          <div class="cross-list" data-source="From" data-target="To" data-order="true">
              <ul class="data-source" data-type="countries"></ul>
          </div>
          
          data-source string The name of the source list.
          data-target string The name of the target list.
          data-duplicates boolean If it is possible to add the same item multiple times.
          items_changed( ) Called by both the source and the target list when a change occurs.

          Data Source

          This is the basic structure for providing information for the various element including drop field and filter.

          <ul class="data-source" data-type="countries"></ul>
          
          data-type string The type of the data source to be used (eg: local, json, countries, etc.).
          data-url string For remote based data sources this field contains the url to gather data.
          data-insensitive boolean In case the current data source is local this is make the search case insensitive.
          data_ready( ) Notifies that the data is ready for queries.

          Buttons

          When developing web applications is mandatory to have a good set of buttons to control the application. The buttons provided allow you to raise events, submit forms, follow links, etc.

          The main areas to be explored in the button involve data-link and the data-submit attributes.

          Button with Event
          Button with Confirm Event
          Button submit Form
          Button in red color
          Button in green color
          Button in blue color
          <div id="button-link" class="button" data-link="http://hive.pt">Button with Link</div>
          
          <form action="//hive.pt" method="post" style="display:inline-block;">
              <div id="button-form" class="button" data-submit="true">Button submit Form</div>
          </form>
          
          data-link string The url link to be followed upon clicking the button.
          data-submit boolean If set the parent form is submitted upon clicking the button.
          data-message string Message to be display when the button is under confirm mode.
          data-show string Shows the element selected with the provided selector on click (uses "show" event).
          data-window boolean If a new browser window/tab should be created for the link (equivalent to _blank).
          data-window_open string Opens the window selected with the provided selector on click.
          data-one_shot boolean If the button action should be triggered only once and then the button should be disabled.

          Button Group

          This component allows the selection of an option in a form using buttons. When the form is submitted, an input is created with the name of the button group and the value of the selected button.

          Option A
          Option B
          Option C
          Option D
          <div class="button-group button-group-left" name="option">
              <div class="button button-solid" data-value="a">Option A</div>
              <div class="button button-solid" data-value="b">Option B</div>
              <div class="button button-solid" data-value="c">Option C</div>
              <div class="button button-solid" data-value="d">Option D</div>
          </div>
          <div class="clear"></div>
          
          data-value string The data value that the button represents.
          index_changed( index, element ) Triggered when one of the buttons has been clicked. If the last handler of this event returns false then the button is not selected.
          index_selected( index, element ) Notifies that one of the buttons has been selected.
          unselect( ) Removes the current selection.

          Form

          Form submitted with success!
          <form action="/form" method="post" class="form form-confirm" data-message="Submit Form">
              <div class="label">
                  <label>Name</label>
              </div>
              <div class="input">
                  <input name="name" class="text-field focus" placeholder="eg: John Doe" value=""
                         data-error="" />
              </div>
          </form>
          
          data-error string The name to be given to the expand operation.
          data-message string The confirmation message to show when the form is confirmed. Shown if the form has the class form-confirm
          data-no_trim boolean If the form's text fields should be trimmed by removing the leading and trailing spaces.
          data-no_reset boolean If the form should be reset after a submission is successful.
          pre_submit( ) Called before submitting the form.
          post_submit( ) Triggered when the form submission ends.
          unlock( ) Raised when the fields are usable again after submitting the form.
          success( data ) Triggered when the form is submitted with success.
          error( exception, message ) Raised when there is an error submitting the form.

          Add the following classes to include different behaviours:

          form-confirm A confirmation message is shown when the form is submited.
          form-ajax The form is submitted in AJAX
          form-refresh The page is refreshed after submitting the form.
          no-async The form submission is not made asynchronously.
          no-keyboard The confirmation message to show when the form is confirmed. Shown if the form has the class form-confirm

          Form Elements

          To give focus to a specific element when the page loads add the class focus.

          Radio Field

          <label class="radio-label" for="male">Male</label>
          <input type="radio" class="radio-field" name="gender" id="male" data-checked="on"/>
          <label class="radio-label" for="female">Female</label>
          <input type="radio" class="radio-field" name="gender" id="female"/>
          
          data-checked string { "on" / "off" } The checked state of the input.
          change( ) Raised when the checked state of the input changes.

          Checkbox Field

          <input type="checkbox" class="check-field" data-checked="on"/>
          <input type="checkbox" class="check-field"/>
          
          data-checked string { "on" / "off" } The checked state of the input.
          change( ) Raised when the checked state of the input changes.

          Text Field

          One of the most important aspects of the text field component is that it allows the date and datetime types. One can configure the date type by adding the no-calendar class to the input and no calendar will appear. Another configuration possibility is to add the utc class to the datetime text field and the time is interpreted in the static UTC timezone.

          <input type="text" class="text-field field-margin" data-original_value="text field" />
          <input type="text" class="text-field" data-type="date" data-original_value="text field" data-error="true" />
          
          data-type string {integer, float, regex, date, datetime} The data type of the value to be represented by the text field. Allows filtering of keyboard typed values.
          data-original_value string The text field's original value.
          data-maximum_length integer The maximum number of characters allowed for the text field's value.
          data-error boolean if the text field has an invalid value.
          data-regex string The regular expression to be used to filter values. Only valid in case the data type is set to regex.
          data-no_process boolean if the text field's value should be processed before submiting the form. Only valid in case the data type is set to date or datetime.
          _focus( ) Triggered when the text field receives focus.
          _blur( ) Triggered when the text field loses focus.
          value_change( value ) Raised when the text field's value changes.
          invalid_set( ) Raised when an invalid value is set.
          invalid_unset( ) Raised when an invalid value is unset.
          <input type="text" class="text-field" data-type="float" data-decimal_places="2" />
          
          data-decimal_places integer The maximum number of decimal cases allowed for the text field's value. Only valid in case the data type is set to float.

          Incremental Field

          <input type="text" class="incremental-field" data-type="integer" />
          
          data-increment_url string A URL to redirect the user when the field is incremented.
          data-decrement_url string A URL to redirect the user when the field is decremented.
          incremented( value ) Triggered when the field is incremented.
          decremented( value ) Triggered when the field is decremented.

          Text Area

          <textarea class="text-area field-margin" data-original_value="text area" data-maximum_length="100"></textarea>
          

          File Field

          <input type="file" size="12" multiple="true" class="file-field" />
          
          multiple boolean If multiple files may be selected for upload.

          Uploader

          <a class="link link-blue uploader">Upload image</a>
          
          data-name string Name value to be used in a possible enclosing form object.
          data-action string The URL to be used in the POST action to be create by a created enclsoing form.
          data-no_text boolean If the name of the selected file should be the text to be displayed.
          data-multiple boolean If multiple file uploading should be enabled.
          files_change( files ) Raised when the input's files change.

          File Drop

          Drop your files here
          <div class="file-drop">Drop your files here</div>
          
          file_drop( event, files ) Raised when one or more files are dropped in the element.

          Upload Image

          Drop image here

          <p>Drop image here</p>
          <div class="image-upload"></div>
          

          Name Change

          Add the class name-change to a form field to change its name to the name defined with data-name_empty if it is submitted without a value.

          <form class="form" action="/form" method="POST">
              <div class="label field-margin">
                  <label>Name</label>
              </div>
              <div class="input field-margin">
                  <input name="name" class="text-field name-change"
                         placeholder="eg: John Doe" data-name_empty="no_name" />
              </div>
          </form>
          
          data-name_empty string The name to be given to the input if it's empty when the form is submitted.

          Toggle Field

          This component allows changing an input's mode. The button can be styled accordingly by using the .toggle-field .button.{mode_name} selector.

          <input class="toggle-field toggle-left" data-modes="currency, percent"/>
          
          data-modes string The available modes for the input separated with a comma.
          mode_change( mode, index ) Triggered when the input's mode changes.
          change_mode( mode ) Allows for the external change of the toggle field's mode.

          Progress Bar

          Start
          <div id="progress-bar-row" class="progress-bar" data-percentage="20" data-right_bar="true"></div>
          
          $("#progress-bar-row").uxprogressbar("change", {
              percentage : 100
          });
          
          data-percentage float The percentage value to be set in the bar.
          data-right_bar boolean If a second / right bar should appear containing the remaining percentage value.

          Eval

          If you add the eval class to an element its data-eval attribute (or html content) will be evaluated as a Javascript expression and replace its content.

          2+2

          <p class="eval">2+2</p>
          
          data-eval string Javascript expression to evaluate. If not set then the element's html is used.
          data-continuous boolean If the expression should be continuously evaluated.
          data-timeout integer The interval in milliseconds to evaluate the expression.
          data-selector string Selector for an element that will trigger the evaluation when its value changes.

          Date Time

          Parses the value of two inputs with date and time to a timestamp value on form submit. Add the class utc to use UTC time zone.

          <form>
              <div class="date-time utc">
                  <input class="text-field date">2011-09-27</input >
                  <input class="text-field time">11:11:37</input >
              </div>
          </form>
          

          Calendar

          <div class="calendar"></div>
          
          current_change( date ) Triggered when a day is selected.

          Calendar Range

          <div class="calendar-range" data-start_name="Departure" data-end_name="Return"></div>
          
          data-start Date The initial starting date.
          data-end Date The initial ending date.
          data-start_name string The name of the starting date input.
          data-end_name string The name of the ending date input.
          data-format string The data format. It's%y/%m/%d by default.

          Table

          A table can be made editable by adding the class table-edit and a row as a template.

          cell 1 cell 2
          cell 1 cell 2
          cell 1 cell 2
           <table class="table table-data table-edit" data-maximum_rows="5">
              <tbody>
                  <tr class="template">
                      <td>cell 1</td>
                      <td>cell 2</td>
                  </tr>
                  <tr>
                      <td>cell 1</td>
                      <td>cell 2</td>
                  </tr>
                  <tr>
                      <td>cell 1</td>
                      <td>cell 2</td>
                  </tr>
              </tbody>
          </table>
          
          data-maximum_rows integer The maximum number of rows of the table.
          data-no_paste boolean If the paste feature should be disabled for the table.
          created_line( line ) Raised when a new line is created for the table any extra operation per line should be done here.
          removed_line ( line ) Triggered when a line is removed from the table, any cleanup operation should be done here.
          value_change( element ) Called whenever a change occured in the table (eg: line removed, line added).

          Notification

          Button with Notification Event
          $("body").uxnotification({
              title : "Notification Test",
              message : "Don't read this dummy text, it's a waste of your time.",
              timeout : 5000
          });
          
          This is a dummy notification Click to close
          <div class="header-notification">
              <span>This is a dummy notification</span>
              <a class="link link-close">Click to close</a>
          </div>
          

          Replacer

          Replace Replaced
          <div class="button replacer" data-target="#replacer-target" data-no_auto="1">Replace</div>
          <div id="replacer-target" class="replacer-target">Replaced</div>
          
          data-target string Selector string for the target element to be shown.
          data-no_auto boolean Prevents the auto replacement from occuring when the replacer target contains a initial value.

          Changer

          Change
          Section 1
          Section 2
          <div id="changer-trigger" class="changer" data-section_count="2" data-timeout="2000">Change</div>
          <div class="content-changer" data-trigger="#changer-triggerr">
              <div class="changer-panel">Section 1</div>
              <div class="changer-panel">Section 2</div>
          </div>
          
          data-section_count integer The number of sections to change through.
          data-timeout integer The interval in milliseconds to change the section.
          data-trigger string The selector for the changer element. The change can also be triggered by setting data-timeout in the .content-changer element.
          change( ) Raised when a new section is shown.

          Window

          Window Title

          Window text with goes under the window title

          Cancel
          Confirm
          Show Window
          <div id="window" class="window window-hide">
              <h1>Window Title</h1>
              <p>Window text with goes under the window title</p>
              <div class="window-buttons">
                  <div class="right button button-red button-cancel close-button">Cancel</div>
                  <div class="right button button-green button-confirm accept-button">Confirm</div>
              </div>
          </div>
          
          <div class="button" data-window_open="#window">Show Window</div>
          
          $("#window").uxwindow("show");
          
          data-padding integer The size in pixels to be used as the padding for the maximum window dimensions.
          shown( ) Triggered when the window is presented.
          hidden( ) Triggered when the window is dismissed.
          success( ) Triggered when the window is dismissed by clicking the accept button.
          cancel( ) Triggered when the window is dismissed by clicking the cancel button.

          Slider

          This component is a window level slider that shows a sequence of panels and can be controlled using either a manual (arrow based) or automated approach.

          Show Slider
          <div id="slider" class="slider">
              <div class="slider-panel">First</div>
              <div class="slider-panel">Second</div>
              <div class="slider-panel">Third</div>
          </div>
          
          <a id="button-slider" class="link link-blue" href="#slider">Show Slider</a>
          
          $("#slider").uxslider("show");
          

          The slider supports the following methods:

          show Presents the slider.
          hide Dismisses the slider.
          next Moves to the next slide.
          previous Moves to the previous slide.

          Key

          For the key shortcuts to be active a div element under the body must be set with the shortcuts class. Only this way the keyboard shortcuts will be active.

          Press the e key to activate the link.
          <div class="key" data-key="69" data-url="#key"></div>
          
          data-url string The url string to be used to set in the document.

          Data Width

          You can use this attribute to force an element to have a specific width.

          <div data-width="200"></div>
          
          data-width integer The desired width of the element.

          Transform Flip

          Click to Transform Me!

          Center

          To center an element on the current viewport you can use the uxcenter function. The function accepts the following parameters:

          topOffset float The top offset from the center, in percentage.
          leftOffset float The left offset from the center, in percentage.
          useMargin boolean If the margin-top and margin-left attributes should be used insted of top and left.
          avoidTop boolean If the top position should not be set.
          avoidLeft boolean If the left position should not be set.
          keep boolean If the centering operation should react to window resizing and scrolling.
          reference string The parent to use as a reference to center the element. Window by default.
          position string { center | top | bottom } The target position. center by default.

          Timestamp

          When communicating between the client side and the server side it's important to remaining dependent on the client's local data. The best way to do it is transferring a utc timestmap representing the specified time and then converting it to local data using the timestamp component.

          1317118297
          <div class="timestamp">1317118297</div>
          
          data-format string Format for the date to be displayed, the example containing the complete format set is: %Y-%m-%d %H:%M:%S.
          data-utc boolean If the date should be shown in the UTC timezone instead of the local timezone..

          Enumeration

          It's important to be able to convert a number base enumeration into a string that describes the value in the enumeration. For this a mapping mechanism is required, and that's exactly what this component archives the mapping function.

          2
          <div class="enumeration" data-enum="['car', 'bike', 'bus'']">2</div>
          
          data-enum string JSON string that contains the list of items for the enumeration. These values can assume any valid JSON data type.

          Number Formatter

          Being able to format number in the client side is god dam important when you're building an enterprise grade information system. Using the number formatter is possible to control the number of decimal places the separator for the decimal part the maginute separtor.

          12345.6
          <div class="number" data-places="2" data-separator="," data-magnitude_separator=".">12345.6</div>
          
          data-places integer The number of decimal places to be used (fixed point number). The final value is rounded and not truncated.
          data-separator string The separator to separate the decimal part from the integer part.
          magnitude-separator string The separator to be used in magnitude order change.

          Password Meter

          If a password field requires some king of verification for strength there's the password meter component for that. Just use the normal text-field component and associate the password meter using the data-target attribute.

          <input id="password" type="password" class="text-field" />
          <div class="password-meter" data-target="#password"></div>
          
          data-target string Selector string for the target text-field.

          Rating

          <div class="rating" data-count="5" data-value="3"></div>
          
          data-count string The maximum rating value.
          data-value string The original rating value.

          Tags

          Tags are probable the simplest way to archive a good looking ui. Just use this and that and your're done.

          Default Success Warning Important Notice
          <span class="tag">tag</span>
          

          Code

          To add code highlighting to an element add the code class and the desired language class from Prism.

          print("Hello World!")
          <pre class="code language-python">print("Hello World!")</pre>
          

          Chart

          First
          Second
          Third
          <div class="chart">
              <div class="bar bar-orange" data-percentage="11.3" data-linear="1">First</div>
              <div class="bar bar-blue" data-percentage="57.0" data-linear="1">Second</div>
              <div class="bar bar-green" data-percentage="84.6" data-linear="1">Third</div>
          </div>
          
          data-percentage integer The bar's percentage value.
          data-linear boolean If the bar should have a linear scale.

          Hightlight Box

          • Total

            688

          • Verified

            32

          • Conflicts

            656

          <ul class="hightlight-box">
              <li class="hightlight-box-item">
                  <h3>Total</h3>
                  <h1 class="number" data-magnitude_separator=",">688</h1>
              </li>
              <li class="hightlight-box-item green">
                  <h3>Verified</h3>
                  <h1 class="number" data-magnitude_separator=",">32</h1>
              </li>
              <li class="hightlight-box-item red">
                  <h3>Conflicts</h3>
                  <h1 class="number" data-magnitude_separator=",">656</h1>
              </li>
          </ul>
          

          List

          <ul class="list">
              <li>
                  <a>Element 1</a>
              </li>
              <li>
                  <a>Element 2 <span class="link-expand">+</span></a>
                  <ul class="list">
                      <li>
                          <a class="selected">Element 2.1</a>
                      </li>
                      <li>
                          <a>Element 2.2</a>
                      </li>
                  </ul>
              </li>
              <li>
                  <a>Element 3</a>
              </li>
          </ul>
          

          Scroll List

          • User 1
          • User 2
          • User 3
          • User 4
          • User 5
          • User 6
          <ul class="scroll-list">
              <li>User 1</li>
              <li>User 2</li>
              <li>User 3</li>
              <li>User 4</li>
              <li>User 5</li>
              <li>User 6</li>
          </ul>
          

          Panel More

          Content

          <div class="panel-more" data-more="more" data-less="less">
              <h3>Content</h3>
          </div>
          
          data-more string The name to be given to the expand operation.
          data-less string The name to be given to the collapse operation.

          Side Panel

          <div class="side-panel">
              <p>Content</p>
              <a class="button button-cancel">Cancel</a>
          </div>
          
          data-side string The side in which to place the side panel. Set to right by default.
          data-timeout integer The number of seconds to be used to display the side panel (animation time). Set to 350 by default.
          show( ) Called when the panel is presented.
          hide( ) Called when the panel is dismissed

          Tabs

          Home
          Profile
          Messages
          Settings
          <div class="tab-panel">
              <div class="block-tabs">
                  <ul class="tabs-list tab-selectors">
                      <li>
                          <a class="tab-selector link active" href="#tab-home">Home</a>
                      </li>
                      <li>
                          <a class="tab-selector link" href="#tab-profile">Profile</a>
                      </li>
                      <li>
                          <a class="tab-selector link" href="#tab-messages">Messages</a>
                      </li>
                      <li>
                          <a class="tab-selector link" href="#tab-settings">Settings</a>
                      </li>
                  </ul>
              </div>
              <div id="tab-home" class="tab active">Home</div>
              <div id="tab-profile" class="tab">Profile</div>
              <div id="tab-messages" class="tab">Messages</div>
              <div id="tab-settings" class="tab">Settings</div>
          </div>
          
          tab_selected( element ) Raised when a tab is selected.

          Wizard

          If you need to guide the user through a process with multiple steps you can easily add a stack of panels with navigation and breadcrumbs.

          First Step

          Second Step

          Third Step

          Previous Next Finish
          <div class="wizard">
              <ul class="breadcrumbs">
                  <li>First</li>
                  <li>Second</li>
                  <li>Third</li>
              </ul>
              <div class="panel-stack">
                  <div class="panel"><h3>First Step</h3></div>
                  <div class="panel"><h3>Second Step</h3></div>
                  <div class="panel"><h3>Third Step</h3></div>
              </div>
              <div>
                  <a class="button-previous">Previous</a>
                  <a class="button-next">Next</a>
                  <a class="button-finish">Finish</a>
              </div>
          </div>
          
          data-index integer The wizard's starting index. Set to 0 by default.
          data-first_index integer The wizard's first index. Set to 0 by default.
          data-last_index integer The wizard's last index. If not set is equal to the number of panels.
          index_changed( index ) Triggered when the wizard's index changes.

          Stack

          With this component you can have stackable panels that you can use, for example, to create a navigation menu with various submenus.

          <div class="stack">
              <div class="stack-item">
                  <a>Item 1</a>
              </div>
              <div class="stack-item">
                  <a>Item 2</a>
              </div>
              <div class="stack-item">
                  <a>Item 3</a>
              </div>
          </div>
          
          push( target ) Places the target at the top of the stack.
          pop( ) Removes the top stack item from the stack.

          Overlay

          This component provides a togglable window level overlay (mask) to highlight other elements.

          <div class="overlay"></div>
          
          jQuery(".overlay:first").triggerHandler("toggle", [250]);
          
          pre_show( ) Triggered when the overlay receives the show event but before it's fade in animation starts.
          post_show( ) Called when the overlay fade in animation starts.
          after_show( ) Called when the overlay fade in animation finishes.
          pre_hide( ) Triggered when the overlay receives the hide event but before the fade out animation starts.
          post_hide( ) Called when the overlay fade out animation starts.
          after_hide( ) Called when the overlay fade out animation finishes.

          This component responds to the following events:

          show( duration, extra ) Presents the overlay with a transition. The duration parameter is the transition duration in milliseconds. If extra is specified then it will be added to the overlay as a class, allowing specific CSS rules.
          hide( duration, extra ) Dismisses the overlay and removes the extra class.
          toggle( duration, extra ) Shows/hides the overlay depending on its current state. Adds the extra class to the overlay if it is show operation and removes if it is being dismissed.
          resize( ) Resizes the overlay to fill the window.

          Overlay Panel

          This component extends the overlay to be triggable by a key press event.

          Press Ctrl + Enter key to trigger the overlay.

          <div id="panel" class="overlay-panel" data-key="13" data-offset="0.20">
              <h1>Overlay Content</h1>
          </div>
          
          data-key integer The integer of the key to trigger the overlay.
          data-offset float The vertical offset of the overlay.

          Side Menu

          This is a togglable menu that pushes the contents of the page when it appears, gaining the user's attention. When the menu is visible the class menu-open is added to the bodyelement. This class should be used to style the other elements so that they react appropriately to the presentation of the menu.

          Show Side Menu
          <div class="side-menu"></div>
          
          show( ) Presents the menu.
          hide( ) Dismisses the menu.
          post_show( ) Called after the menu is shown, from a logical point of view.
          post_hide( ) Called after the menu is hidden, from a logical point of view.

          Image

          If you add the image class to an element you can specify an image to be presented when that element is clicked. If it also has the class lightbox-animated then there will be an animation.

          <img class="image lightbox-animated"
              src="/static/libs/uxf/images/uxf-logo-64.png"
              data-lightbox_path="/static/libs/uxf/images/uxf-logo-128.png"
              data-lightbox_large_path="/static/libs/uxf/images/uxf-logo-256.png">
          
          data-lightbox_path string Path of the image to be presented.
          data-lightbox_large_path string Path to a bigger version of the image to be presented.

          Image Lazy

          If you add the image-lazy class to an image it will only be loaded when visible on the viewport. The image url can be set with the src attribute or with data-url. When the image finishes loading the class loaded is added.

          <img class="image-lazy" src="../static/images/banner.jpg">
          
          data-url string The url of the image to load.
          data-url_retina string The url of the retina (2x) image to be load for retina (high density) screens.
          load Class added by the user to force load even if not visible.
          loading Class added while loading of the image.
          loaded Class added upon finished loading of the image.

          Animation

          To have an animated background image add the animation class and set a background image and the animation duration. The idea is that a sprite based background may be used as a key frame based animation source, note that the animation is controlled by animation-duration.

          <div class="animation"
               style="height: 200px; animation-duration: 1000ms; background-image: url(../static/images/banner.jpg);">
          </div>
          

          Slideshow

          • UXF //uxf.hive.pt/res/logo.png http://uxf.hive.pt/ Simple client side framework for people who want fast results.
          • Appier //appier.hive.pt/res/logo.png http://appier.hive.pt/ Joyful Python Web App development.
          • Netius //netius.hive.pt/res/logo.png http://netius.hive.pt/ Fast and readable async non-blocking network apps.

          <div class="slideshow" data-window="true">
              <ul class="items">
                  <li class="item">
                      <span data-name="name">UXF</span>
                      <span data-name="image">//uxf.hive.pt/res/logo.png</span>
                      <span data-name="url">http://uxf.hive.pt/</span>
                      <span data-name="description">Simple client side framework for people who want fast results.</span>
                  </li>
                  <li class="item">
                      <span data-name="name">Appier</span>
                      <span data-name="image">//appier.hive.pt/res/logo.png</span>
                      <span data-name="url">http://appier.hive.pt/</span>
                      <span data-name="description">Joyful Python Web App development.</span>
                  </li>
                  <li class="item">
                      <span data-name="name">Netius</span>
                      <span data-name="image">//netius.hive.pt/res/logo.png</span>
                      <span data-name="url">http://netius.hive.pt/</span>
                      <span data-name="description">Fast and readable async non-blocking network apps.</span>
                  </li>
              </ul>
              <div class="slideshow-details">
                  <p data-name="description"></p>
              </div>
          </div>
          
          data-animation string { "fade" or "static" } The animation to perform. fade by default.
          data-window boolean If the slide URL should be opened in a new window.
          data-paused boolean If the slideshow should not move automatically.
          data-selector string Selector for an element that will trigger the evaluation when its value changes.

          Video

          It's really nice to have embedded videos in your existent html source base, the single most anoying problem is that for each video service provider there is a different iframe code. The video component provides a simple way to overcome this problem, just set the html code of it with the url of the video and that's it. Currently supported services include: youtube, vimeo and dailymotion.

          Additional configuration options are provided with data-width, data-height, ...

          //www.youtube.com/watch?v=4XpnKHJAok8&feature=feedlik
          <div class="video">http//www.youtube.com/watch?v=4XpnKHJAok8</div>
          
          data-width integer The width in pixels for the video.
          data-height integer The height in pixels for the video.
          data-hd boolean If the video should be shown in high definition (720p) by default.
          data-information boolean If the video information (title, description, etc) should be displayed.
          data-chromeless boolean If set the window chrome is not displayed.
          data-auto_play boolean If the video should start playing when loaded.
          data-as boolean If the video should be ActionScript or HTML5 based.