From fdaea56fc87f32408c7127acd4791d4931364186 Mon Sep 17 00:00:00 2001 From: jlukic Date: Wed, 2 Oct 2013 16:23:11 -0400 Subject: [PATCH] adds tab draft docs --- node/src/draft/tab.html.eco | 386 ++++++++++++++++++++++++++++++ node/src/files/build/semantic.zip | Bin 2252952 -> 2252933 bytes 2 files changed, 386 insertions(+) create mode 100755 node/src/draft/tab.html.eco diff --git a/node/src/draft/tab.html.eco b/node/src/draft/tab.html.eco new file mode 100755 index 000000000..6a8bca410 --- /dev/null +++ b/node/src/draft/tab.html.eco @@ -0,0 +1,386 @@ +--- +layout : 'default' +css : 'side' + +title : 'Tab' +description : 'A tab is a section of content tied to a navigation menu' +type : 'UI Module' +--- + + + +<%- @partial('header') %> + +
+ + + +

Examples

+ +
+ +

Opening tabs with menus

+

Tabs are usually used in concert with an element that activates the tab. When using tabs, unlike other UI components, the menu or activating element is initialized instead of the tab.

+

Tabs are connected to their activators with a metadata attribute data-tab. This should be added to both the activating element and the tab itself.

+ +
+

Default tabs

+

After any tab is opened it will look for a default tab to open inside of the current tab. This is the first tab that begins with the same stem url as the parent tab. For example a tab with the path data-tab="home" might open a tab automatically data-tab="/home/inbox".

+

This will happen recursively for every tab open, allowing as many levels of tabs as you like

+
+ +
+ $('.first.example .menu .item') + .tab({ + context: '.first.example' + }) + ; +
+
+ +
+ +
1A
+
1B
+
1C
+
+
...
+
...
+
+ + +
+ +
1A
+
1B
+
1C
+
+
+ +
2A
+
2B
+
2C
+
+
+ +
3A
+
3B
+
3C
+
+
+ +

Optional Coupling

+ +
+

Managing History with Tabs

+

Tabs can attach to a history change event to allow for tabs to maintain history events. Tabs use Asual's Address library to provide cross-browser push state support. This makes sure in browser that don't support push state, hashchange is used with in page anchors to provide history functionality.

+
+

Setup Paths

+ Make sure when you use history to specify the path. This is required for determining the stem url from the part of the url maintaining in page history. The path is the URL without any tabs open. This cannot usually be set automatically because on future page refreshes the URL may include an internal link. Using the incorrect path will cause the module to work incorrectly, producing unexpected results. +
+
+

Route your URLs

+ Be sure to set up routes on your server for any url used with history. If you use history to change the url to a location that does not exist, it will 404 on the next refresh. The docs for example, are static github hosted pages, so will 404 if the page url changes +
+
+ $('.history.example .menu .item') + .tab({ + context : '.history.example', + history : true, + path : '/modules/tab.html' + }) + ; +
+ +
+ +
1A
+
1B
+
1C
+
+
+ +
2A
+
2B
+
2C
+
+
+ +
3A
+
3B
+
3C
+
+
+ +
+

Retreiving Dynamic Tab Content

+

The easiest way to setup dynamic content is to use the parameter auto, this will automatically retrieve content at a remote url matching the url set in the browser. The URL will receive an addition HTTP Header 'X-Remote': true. You can use this on your server's back-end to determine whether a request is an AJAX request from a tab

+

This uses a similar technique to pJax or Rail's turbolinks.

+ +
There are a variety of settings for configuring dynamic content behavior. Visit the tab settings section for more information
+ +
+ $('.dynamic.example .menu .item') + .tab({ + context : '.dynamic.example', + auto : true, + path : '/modules/tab.html' + }) + ; +
+ +
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +

Behavior

+ + All the following behaviors can be called using the syntax $('.foo').tab('behavior name', argumentOne, argumentTwo) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach events(selector, event)Attaches tab action to given selector. Default event if none specified is toggle
showShows tab
hideHides tab
toggleToggles visibility of tab
is openReturns whether tab is open
is closedReturns whether tab is closed
push pagePushes page content to be visible alongside tab
get directionReturns direction of current tab
pull pageReturns page content to original position
add body cssAdds stylesheet to page head to trigger tab animations
remove body cssRemoves any inline stylesheets for tab animation
get transition eventReturns vendor prefixed transition end event
+ +

Settings

+ +

+ Transition Settings +
Form settings modify the transition behavior
+

+ + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
overlayfalseWhether tab should overlay page instead of pushing page to the side
useCSStrueWhether to use css animations or fallback javascript animations
duration300Duration of side bar animation
+ +

+ DOM Settings +
DOM settings specify how this module should interface with the DOM
+

+ + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
namespacetabEvent namespace. Makes sure module teardown does not effect other events attached to an element.
className +
+ className: { + active : 'active', + pushed : 'pushed', + top : 'top', + left : 'left', + right : 'right', + bottom : 'bottom' + } +
+
Class names used to attach style to state
+ +
+ +

+ Debug Settings +
Debug settings controls debug output to the console
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SettingDefaultDescription
nameTabName used in debug logs
debugTrueProvides standard debug output to console
performanceTrueProvides standard debug output to console
verboseTrueProvides ancillary debug output to console
errors +
+ error : { + method : 'The method you called is not defined.', + notFound : 'There were no elements that matched the specified selector' + } +
+
+ +
+ + \ No newline at end of file diff --git a/node/src/files/build/semantic.zip b/node/src/files/build/semantic.zip index 0e18f542a991fda2e8ac7ff8988cb1f072300772..3e7e4fbf79193d95cacd1aee55b0d1b657ebc00f 100644 GIT binary patch delta 14087 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 delta 14005 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