src/cm/media/js/lib/yui/yui_3.10.3/docs/slider/index.html
changeset 525 89ef5ed3c48b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui_3.10.3/docs/slider/index.html	Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,876 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>Slider</title>
+    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
+    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
+    <link rel="stylesheet" href="../assets/css/main.css">
+    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
+    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
+    <script src="../../build/yui/yui-min.js"></script>
+    
+</head>
+<body>
+<!--
+<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
+-->
+<div id="doc">
+    <div id="hd">
+        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
+    </div>
+    
+        <a href="#toc" class="jump">Jump to Table of Contents</a>
+    
+
+            <h1>Slider</h1>
+    <div class="yui3-g">
+        <div class="yui3-u-3-4">
+            <div id="main">
+                <div class="content"><div class="intro">
+    <p>
+        The Slider widget is a UI control that enables the user to adjust
+        values in a finite range along a horizontal or vertical axis.
+        Typically, the Slider widget is used in a web application as a visual
+        replacement for an input box that takes a number as input.
+    </p>
+</div>
+				
+<h2 id="getting-started">Getting Started</h2>
+
+<p>
+To include the source files for Slider and its dependencies, first load
+the YUI seed file if you haven't already loaded it.
+</p>
+
+<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
+
+
+<p>
+Next, create a new YUI instance for your application and populate it with the
+modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
+YUI will automatically load any dependencies required by the modules you
+specify.
+</p>
+
+<pre class="code prettyprint">&lt;script&gt;
+&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
+YUI().use(&#x27;slider&#x27;, function (Y) {
+    &#x2F;&#x2F; Slider is available and ready for use. Add implementation
+    &#x2F;&#x2F; code here.
+});
+&lt;&#x2F;script&gt;</pre>
+
+
+<p>
+For more information on creating YUI instances and on the
+<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
+documentation for the <a href="../yui/index.html">YUI Global Object</a>.
+</p>
+
+				
+<h2 id="using">Using Sliders</h2>
+			
+<h3 id="anatomy">Anatomy of a Slider</h3>
+
+<h4 id="dom-structure">DOM structure</h4>
+
+<p>
+    A Slider is comprised of a thumb that slides along a rail.  In the DOM, the
+    thumb is a child of the rail element.  The visualization of the rail is
+    created by applying a CSS background image to the rail element and two
+    child elements used to display the rail's end caps.  The thumb contains two
+    <code>&lt;img&gt;</code> elements, one for the thumb graphic and one for
+    its shadow.  Using an <code>&lt;img&gt;</code> in the DOM rather than a
+    background image for the thumb circumvents a performance issue in older
+    versions of Internet Explorer.
+</p>
+
+<p>
+    The rail element is contained within the standard <code>contentBox</code>
+    and <code>boundingBox</code> common to all YUI 3 Widgets.
+</p>
+
+<p>
+    Like other form controls, Sliders are inline elements.
+</p>
+
+<p>
+    The complete markup of a Slider is as follows:
+</p>
+
+<p>
+<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
+page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
+the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
+</p>
+<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>
+
+
+<pre class="code prettyprint">&lt;!-- boundingBox --&gt;
+&lt;span class=&quot;yui3-widget yui3-sliderbase yui-slider&quot;&gt;
+    &lt;!-- contentBox --&gt;
+    &lt;span class=&quot;yui3-slider-content yui3-slider-x&quot;&gt;&lt;!-- or slider-y --&gt;
+
+        &lt;!-- rail --&gt;
+        &lt;span class=&quot;yui3-slider-rail&quot;&gt;
+            &lt;span class=&quot;yui3-slider-rail-cap-left&quot;&gt;&lt;&#x2F;span&gt;&lt;!-- or cap-top --&gt;
+            &lt;span class=&quot;yui3-slider-rail-cap-right&quot;&gt;&lt;&#x2F;span&gt;&lt;!-- or cap-bottom --&gt;
+
+            &lt;!-- thumb --&gt;
+            &lt;span class=&quot;yui3-slider-thumb&quot;&gt;
+                &lt;img class=&quot;yui3-slider-thumb-shadow&quot;&gt;
+                &lt;img class=&quot;yui3-slider-thumb-image&quot;&gt;
+            &lt;&#x2F;span&gt;
+        &lt;&#x2F;span&gt;
+
+    &lt;&#x2F;span&gt;
+&lt;&#x2F;span&gt;</pre>
+
+
+<h4 id="appearance">Appearance</h4>
+
+<p>
+    This is the appearance of a Slider with default Sam skin applied:
+</p>
+
+<img src="../assets/slider/images/horiz_slider.png" alt="Horizontal Sliderwith default Sam skin">
+
+<img src="../assets/slider/images/vert_slider.png" alt="Vertical Slider with default Sam skin">
+
+<p>
+    See the <a href="#skinning">skinning</a> section below for tips on creating
+    your own skin or using one of the prepackaged skins available for Slider as
+    of version 3.1.
+</p>
+
+<h4 id="thumb_placement">Thumb and end cap placement</h4>
+
+<p>
+    The Slider thumb is positioned within the dimensional boundaries of the
+    rail element.  The skin CSS positions the rail's end caps just outside the
+    rail.  The rail element's height or width, for vertical or horizontal
+    Sliders respectively, is configured by the <code>length</code> attribute.
+    The default <code>length</code> is 150px.  Due to the end caps, the actual
+    footprint of the Slider is a few pixels longer than the
+    <code>length</code>.
+</p>
+
+<img src="../assets/slider/images/anatomy.png" alt="illustration of the parts and config properties of a Slider">
+
+<h3 id="instantiating">Instantiating and configuring a Slider</h3>
+
+<p>
+    There is no required configuration to instantiate a Slider.  By default,
+    Sliders are horizontal, 150px wide, and report values from 0 to 100.  Below
+    are the configuration attributes available for Slider (excluding those
+    inherited from Widget):
+</p>
+
+<table>
+<thead>
+    <tr>
+        <th>Attribute</th>
+        <th>Description</th>
+        <th>Default</th>
+    </tr>
+</thead>
+<tbody>
+    <tr>
+        <td><code>axis</code></td>
+        <td>Specifies horizontal or vertical Slider (&quot;y&quot; for vertical)</td>
+        <td>&quot;x&quot;</td>
+    </tr>
+    <tr>
+        <td><code>min</code></td>
+        <td>Value at the far left or top of the rail</td>
+        <td>0</td>
+    </tr>
+    <tr>
+        <td><code>max</code></td>
+        <td>Value at the far right or bottom of the rail</td>
+        <td>100</td>
+    </tr>
+    <tr>
+        <td><code>value</code></td>
+        <td>The initial value, which will be translated into initial thumb placement</td>
+        <td>0</td>
+    </tr>
+    <tr>
+        <td><code>length</code></td>
+        <td>Height of vertical Slider rail; width of horizontal Slider rail</td>
+        <td>150px</td>
+    </tr>
+    <tr>
+        <td><code>thumbUrl</code></td>
+        <td>The path to an image to use as the <code>&lt;img&gt;</code> for the thumb</td>
+        <td>Appropriate thumb image for the configured axis in the current skin</td>
+    </tr>
+    <tr>
+        <td><code>clickableRail</code></td>
+        <td>Clicking on the rail moves the thumb to that point</td>
+        <td>true</td>
+    </tr>
+</tbody>
+</table>
+                
+<p>
+    Here are a few ways to instantiate a Slider:
+</p>
+
+<pre class="code prettyprint">YUI({...}).use(&#x27;slider&#x27;,function (Y) {
+
+    &#x2F;&#x2F; Default everything
+    var slider = new Y.Slider();
+    slider.render(&quot;#slider-parent&quot;);
+
+    &#x2F;&#x2F; Use a custom thumb and width
+    var slider = new Y.Slider({
+        length : &#x27;200px&#x27;,
+        thumbUrl : &#x27;&#x2F;path&#x2F;to&#x2F;local&#x2F;thumb-image.png&#x27;
+    });
+    slider.render(&#x27;#slider-parent&#x27;);
+
+    &#x2F;&#x2F; Vertical slider with values that increase from bottom to top and
+    &#x2F;&#x2F; initialize the thumb in the middle.
+    var slider = new Y.Slider({
+        axis        : &#x27;y&#x27;,
+        min         : 100,
+        max         : 0,
+        value       : 50
+    });
+    slider.render(&#x27;#slider-parent&#x27;);
+});</pre>
+
+
+<h3 id="value">Setting and constraining the Slider value</h3>
+
+<h4 id="setting-and-getting-slider-values">Setting and getting Slider values</h4>
+
+<p>
+    Like any input element, the most important thing about a Slider is its
+    <code>value</code>.  Though <code>value</code> is managed as an attribute,
+    Slider provides two convenience methods for accessing it:
+</p>
+
+<ul>
+    <li><code>getValue()</code></li>
+    <li><code>setValue(newVal)</code></li>
+</ul>
+
+<pre class="code prettyprint">&#x2F;&#x2F; Specify value at construction
+var slider = new Y.Slider({
+    value  : 50
+});
+
+&#x2F;&#x2F; Get and set the value as an attribute
+var val = slider.get(&#x27;value&#x27;);
+
+slider.set(&#x27;value&#x27;,val + 10);
+
+&#x2F;&#x2F; Use the Slider API convenience methods
+val = slider.getValue();
+
+slider.setValue(val - 20);</pre>
+
+
+
+<h4 id="min_max">Constraining Slider values</h4>
+
+<p>
+    A Slider's <code>value</code> is constrained between the configured
+    <code>min</code> and <code>max</code> attribute values.  Values outside
+    this range are treated as the closer of <code>min</code> or
+    <code>max</code>.
+</p>
+
+<pre class="code prettyprint">&#x2F;&#x2F; Create a horizontal Slider 300px wide with values from -100 to 100
+var slider = new Y.Slider({
+    length : 300,
+    min    : -100,
+    max    : 100
+});
+
+slider.setValue(-200); &#x2F;&#x2F; same as setValue(-100)</pre>
+
+
+<p>
+    By default, <code>min</code> is <code>0</code>, <code>max</code> is
+    <code>100</code> and <code>value</code> is <code>0</code>.
+</p>
+
+<h4 id="vert_min_max"><code>min</code> and <code>max</code> for vertical Sliders</h4>
+
+<p>
+    Vertical Sliders associate the top edge of the rail with the
+    <code>min</code> value and the bottom edge of the rail with the
+    <code>max</code>.  If you prefer values to increase from bottom to top,
+    just flip the specified <code>min</code> and <code>max</code> values.
+</p>
+
+<pre class="code prettyprint">&#x2F;&#x2F; Create a vertical Slider with value 0 at the bottom, 100 at the top
+var v_slider = new Y.Slider({
+    axis  : &#x27;y&#x27;,
+    min   : 100, &#x2F;&#x2F; vertical Sliders have min at the top
+    max   : 0,
+    value : 33   &#x2F;&#x2F; initial value
+});</pre>
+
+
+<h4 id="hidden">Sync the UI if the Slider was rendered off the DOM</h4>
+
+<p>
+    If a Slider is rendered off the DOM, you must call the Slider's
+    <code>syncUI()</code> method after attaching it to the DOM in order for the
+    thumb to be placed correctly.  When off DOM, the dimensional information
+    necessary to place the thumb is unavailable.
+</p>
+
+<pre class="code prettyprint">&#x2F;&#x2F; Create a Slider and render it to an element not on the DOM
+var container = Y.Node.create(&quot;&lt;div&gt;&lt;&#x2F;div&gt;&quot;);
+
+var slider = new Y.Slider({ value: 30 });
+
+slider.render( container );
+
+...
+
+&#x2F;&#x2F; Insert the Slider&#x27;s container into the DOM
+Y.one( &quot;body&quot; ).insert( container );
+
+&#x2F;&#x2F; Call syncUI() to sync the thumb to the current value
+slider.syncUI();</pre>
+
+
+<h3 id="events">Slider events</h3>
+
+<p>
+    Sliders fire the following events during operation:
+</p>
+
+<table>
+<thead>
+    <tr>
+        <th>Event</th>
+        <th>When</th>
+        <th>Payload</th>
+    </tr>
+</thead>
+<tbody>
+    <tr>
+        <td><code>slideStart</code></td>
+        <td>Beginning a thumb drag</td>
+        <td><code>{ ddEvent: (drag:start event) }</code></td>
+    </tr>
+    <tr>
+        <td><code>thumbMove</code></td>
+        <td>The thumb position is being changed</td>
+        <td><code>{ ddEvent : (drag:drag event) }</code></td>
+    </tr>
+    <tr>
+        <td><code>valueChange</code></td>
+        <td>The value attribute is changed by any means</td>
+        <td>Normal change event signature (<code>newVal</code>, <code>prevVal</code>, etc).  When dragging, extra event property <code>ddEvent : (drag:drag event)</code> is added</td>
+    </tr>
+    <tr>
+        <td><code>slideEnd</code></td>
+        <td>Finishing a thumb drag</td>
+        <td><code>{ ddEvent: (drag:end event) }</code></td>
+    </tr>
+    <tr>
+        <td><code>railMouseDown</code></td>
+        <td>The rail was clicked</td>
+        <td><code>{ ev: (DOM mousedown event) }</code></td>
+    </tr>
+</tbody>
+</table>
+
+<p>
+    This is not an exhaustive list.  See the <a href="http://yuilibrary.com/yui/docs/api/module_slider.html">API docs</a> for a complete listing.
+</p>
+
+<h3 id="skinning">Skinning</h3>
+
+<p>
+<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
+page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
+the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
+</p>
+<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>
+
+
+<h4 id="skin_thumbUrl">Using custom thumb or rail images</h4>
+
+<p>
+    You can use alternate rail images by specifying a new image path in your
+    CSS, and alternate thumbs can be targeted in the Slider configuration.
+</p>
+
+<pre class="code prettyprint">&lt;style type=&quot;text&#x2F;css&quot;&gt;
+&#x2F;* The rail and end cap images are shared in a sprite.
+ * Include the id of the slider container to increase css specificity *&#x2F;
+.yui3-skin-sam #slider-parent .yui3-slider-x .yui3-slider-rail,
+.yui3-skin-sam #slider-parent .yui3-slider-x .yui3-slider-rail-cap-left,
+.yui3-skin-sam #slider-parent .yui3-slider-x .yui3-slider-rail-cap-right {
+    background-image: url(&#x2F;path&#x2F;to&#x2F;new&#x2F;rail.png);
+}
+&lt;&#x2F;style&gt;
+
+&lt;script&gt;
+YUI().use( &quot;slider&quot;, function (Y) {
+
+    var slider = new Y.Slider({
+        thumbUrl: &#x27;&#x2F;path&#x2F;to&#x2F;new&#x2F;thumb.png&#x27;
+    });
+
+    slider.render(&quot;#slider-parent&quot;);
+
+});
+&lt;&#x2F;script&gt;</pre>
+
+
+<h4 id="skins">Available skins</h4>
+
+<p>
+    Slider is provided with several alternate skins that can be applied by
+    configuring a skin override in your YUI instance configuration.
+</p>
+
+<pre class="code prettyprint">YUI({
+    skin: {
+        overrides: {
+            slider: [ &#x27;round-dark&#x27; ]
+        }
+    }
+}).use( &quot;slider&quot;, ... );</pre>
+
+
+<p>
+    The available skins are each provided in a light and dark theme.  A few
+    include optional thumbs or rails (for both light and dark).
+</p>
+
+<table>
+<thead>
+    <tr>
+        <th>Skin class</th>
+        <th>Visualization</th>
+        <th>Optional</th>
+    </tr>
+</thead>
+<tbody>
+    <tr>
+        <td rowspan="2"><code>yui3-skin-sam</code></td>
+        <td><img src="../assets/slider/images/sam.png" alt="Slider with Sam skin"></td>
+        <td></td>
+    </tr>
+    <tr>
+        <td><img src="../assets/slider/images/sam_lines.png" alt="Slider with Sam skin and alternate rail image"></td>
+        <td>
+            <code>rail-x-lines.png</code>
+        </td>
+    </tr>
+    <tr>
+        <td><code>yui3-skin-sam-dark</code></td>
+        <td><img src="../assets/slider/images/sam_dark.png" alt="Slider with Dark Sam skin"></td>
+        <td></td>
+    </tr>
+    <tr>
+        <td rowspan="4"><code>yui3-skin-capsule</code></td>
+        <td><img src="../assets/slider/images/capsule.png" alt="Slider with Capsule skin"></td>
+        <td></td>
+    </tr>
+    <tr>
+        <td><img src="../assets/slider/images/capsule_thumb.png" alt="Slider with Capsule skin and alternate thumb image"></td>
+        <td>
+            <code>thumb-x-line.png</code>
+        </td>
+    </tr>
+    <tr>
+        <td><img src="../assets/slider/images/capsule_dots.png" alt="Slider with Sam skin and alternate rail image"></td>
+        <td>
+            <code>rail-x-dots.png</code>
+        </td>
+    </tr>
+    <tr>
+        <td><img src="../assets/slider/images/capsule_lines.png" alt="Slider with Sam skin and alternate rail image"></td>
+        <td>
+            <code>rail-x-lines.png</code>
+        </td>
+    </tr>
+    <tr>
+        <td><code>yui3-skin-capsule-dark</code></td>
+        <td><img src="../assets/slider/images/capsule_dark.png" alt="Slider with Dark Capsule skin"></td>
+        <td></td>
+    </tr>
+    <tr>
+        <td rowspan="2"><code>yui3-skin-round</code></td>
+        <td><img src="../assets/slider/images/round.png" alt="Slider with Round skin"></td>
+        <td></td>
+    </tr>
+    <tr>
+        <td><img src="../assets/slider/images/round_thumb.png" alt="Slider with Round skin and alternate thumb image"></td>
+        <td>
+            <code>thumb-x-grip.png</code>
+        </td>
+    </tr>
+    <tr>
+        <td><code>yui3-skin-audio-light</code></td>
+        <td><img src="../assets/slider/images/audio_light.png" alt="Slider with Light Audio skin"></td>
+        <td></td>
+    </tr>
+    <tr>
+        <td><code>yui3-skin-audio</code></td>
+        <td><img src="../assets/slider/images/audio.png" alt="Slider with Audio skin"></td>
+        <td></td>
+    </tr>
+</tbody>
+</table>
+
+<p>
+    Here's an example illustrating using the capsule skin with provided
+    alternate rail and thumb:
+</p>
+
+<pre class="code prettyprint">&lt;style type=&quot;text&#x2F;css&quot;&gt;
+&#x2F;&#x2F; The rail and end cap images are shared in a sprite
+.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail,
+.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left,
+.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right {
+    background-image: url(&#x2F;path&#x2F;to&#x2F;build&#x2F;slider-base&#x2F;assets&#x2F;skins&#x2F;capsule&#x2F;rail-x-lines.png);
+}
+&lt;&#x2F;style&gt;
+
+&lt;script&gt;
+YUI({ skin: { overrides: { slider: [ &#x27;capsule&#x27; ] } } })
+  .use( &quot;slider&quot;, function (Y) {
+
+    var slider = new Y.Slider({
+        axis    : &#x27;y&#x27;,
+        min     : 1,
+        max     : 5,
+        value   : 3,
+        length  : &#x27;100px&#x27;,
+        thumbUrl: Y.config.base + &#x27;&#x2F;slider-base&#x2F;assets&#x2F;skins&#x2F;capsule&#x2F;thumb-x-line.png&#x27;
+    });
+
+    slider.render(&quot;#slider-parent&quot;);
+
+});
+&lt;&#x2F;script&gt;</pre>
+
+
+<h4 id="skin_sprites">Skin image sprites</h4>
+
+<p>
+    To reduce the number of resource requests for Slider's visual treatment,
+    the rail and end caps are combined into one image sprite, and thumb and
+    shadow into another (examples shown below with borders added for
+    clarity).
+</p>
+
+<style type="text/css">
+    .sprite-example {
+        border: 1px solid #d9d9d9;
+    }
+</style>
+
+<img src="../assets/slider/images/thumb.png" alt="Thumb image sprite showing both thumb and shadow" class="sprite-example">
+
+<p>
+    Thumb and shadow sprite.  As noted <a href="#anatomy">above</a>, the thumb
+    and shadow are both represented as <code>&lt;img&gt;</code>s in the DOM.
+    This sprite allows both <code>&lt;img&gt;</code>s to reference the same
+    <code>src</code> URL, but masked and positioned appropriately by the skin
+    CSS.  Thumb image and shadow for vertical Sliders are set next to each
+    other horizontally as shown. Horizontal Slider thumb sprites are stacked
+    vertically.
+</p>
+<img src="../assets/slider/images/rail.png" alt="Rail sprite showing the repeatable rail and both end caps" class="sprite-example">
+
+<p>
+    Rail image (repeated across <code>length</code>), top cap, and bottom cap
+    sprite.  This sprite is assigned in the skin CSS as the
+    <code>background-image</code> for the rail element and the two end caps.
+    The CSS <code>background</code> for the rail is set to repeat vertically or
+    horizontally, relative to the Slider <code>axis</code>.  The image need be
+    only as tall (vertical) or wide (horizontal) as the end caps unless the
+    rail includes a more involved repeating section, such as the audio skin.
+    End caps should be aligned against the top edge for vertical rails, or the
+    left edge for horizontal rails.
+</p>
+
+<p>
+    Standard heights and widths are used for the placement of the image bits
+    within the sprites to allow for minimal differences between the CSS in one
+    skin versus another.  This allows you to start from an existing skin and
+    change very little of the CSS (potentially only swapping image URLs) to
+    achieve a new look and feel.
+</p>
+
+<h3 id="extending">Extending Slider</h3>
+
+<p>
+    Slider is built up from a base implementation (<code>Y.SliderBase</code>)
+    that has no notion of value.  It is just a draggable thumb on a rail.  The
+    <code>slider-value-range</code> submodule provides an extension class that
+    adds the attributes, API, and logic relating the thumb's position to a
+    <code>value</code> within a <code>min</code>imum and <code>max</code>imum
+    range.  Similarly, the <code>clickableRail</code> implementation is
+    relegated to an extension class.  These classes are combined with
+    <code>Y.Base.build</code> to generate the <code>Y.Slider</code> class.
+</p>
+
+<p>
+    If you want to use a different value algorithm or decorate the basic Slider
+    in other ways, you can write an extension class or <code>Y.extend</code> an
+    existing extension class and create a new Slider implementation with
+    <code>Y.Base.build</code>.
+</p>
+
+<pre class="code prettyprint">YUI().use( &quot;slider-base&quot;, function (Y) {
+
+    &#x2F;&#x2F; Define a new extension class to calculate values differently
+    function MyValueClass() {
+        this._initValueAlgo();
+    }
+
+    &#x2F;&#x2F; Add attribute configuration and prototype to decorate the Slider
+    Y.mix( MyValueClass, {
+        
+        ATTRS: { &#x2F;* new configuration attributes *&#x2F; },
+
+        prototype: { &#x2F;* additional prototype members and methods *&#x2F; }
+    });
+
+
+    &#x2F;&#x2F; Combine SliderBase with the new extension class any others to
+    &#x2F;&#x2F; create a new Slider
+    Y.MySlider = Y.Base.build( &quot;slider&quot;, Y.SliderBase, [
+        Y.ClickableRail,  &#x2F;&#x2F; Should also support rail clicks
+        MyValueClass      &#x2F;&#x2F; Use the new value methods and attributes
+    ] );
+
+
+    &#x2F;&#x2F; Instantiate and use the new Slider class as you would Y.Slider
+    var slider = new Y.MySlider({ &#x2F;* config *&#x2F; });
+
+    slider.render( &quot;#slider-parent&quot; );
+
+});</pre>
+
+</div>
+            </div>
+        </div>
+
+        <div class="yui3-u-1-4">
+            <div class="sidebar">
+                
+                    <div id="toc" class="sidebox">
+                        <div class="hd">
+                            <h2 class="no-toc">Table of Contents</h2>
+                        </div>
+
+                        <div class="bd">
+                            <ul class="toc">
+<li>
+<a href="#getting-started">Getting Started</a>
+</li>
+<li>
+<a href="#using">Using Sliders</a>
+<ul class="toc">
+<li>
+<a href="#anatomy">Anatomy of a Slider</a>
+<ul class="toc">
+<li>
+<a href="#dom-structure">DOM structure</a>
+</li>
+<li>
+<a href="#appearance">Appearance</a>
+</li>
+<li>
+<a href="#thumb_placement">Thumb and end cap placement</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#instantiating">Instantiating and configuring a Slider</a>
+</li>
+<li>
+<a href="#value">Setting and constraining the Slider value</a>
+<ul class="toc">
+<li>
+<a href="#setting-and-getting-slider-values">Setting and getting Slider values</a>
+</li>
+<li>
+<a href="#min_max">Constraining Slider values</a>
+</li>
+<li>
+<a href="#vert_min_max"><code>min</code> and <code>max</code> for vertical Sliders</a>
+</li>
+<li>
+<a href="#hidden">Sync the UI if the Slider was rendered off the DOM</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#events">Slider events</a>
+</li>
+<li>
+<a href="#skinning">Skinning</a>
+<ul class="toc">
+<li>
+<a href="#skin_thumbUrl">Using custom thumb or rail images</a>
+</li>
+<li>
+<a href="#skins">Available skins</a>
+</li>
+<li>
+<a href="#skin_sprites">Skin image sprites</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#extending">Extending Slider</a>
+</li>
+</ul>
+</li>
+</ul>
+                        </div>
+                    </div>
+                
+
+                
+                    <div class="sidebox">
+                        <div class="hd">
+                            <h2 class="no-toc">Examples</h2>
+                        </div>
+
+                        <div class="bd">
+                            <ul class="examples">
+                                
+                                    
+                                        <li data-description="The basics of setting up a horizontal and vertical Slider">
+                                            <a href="slider-basic.html">Basic Sliders</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Creating a vertical Slider from existing markup">
+                                            <a href="slider-from-markup.html">Creating a Slider from Existing Markup</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Specifying an alternate skin for a Slider instance">
+                                            <a href="slider-skin.html">Alternate Skins</a>
+                                        </li>
+                                    
+                                
+                                    
+                                
+                                    
+                                
+                                    
+                                
+                                    
+                                
+                                    
+                                
+                                    
+                                
+                            </ul>
+                        </div>
+                    </div>
+                
+
+                
+                    <div class="sidebox">
+                        <div class="hd">
+                            <h2 class="no-toc">Examples That Use This Component</h2>
+                        </div>
+
+                        <div class="bd">
+                            <ul class="examples">
+                                
+                                    
+                                
+                                    
+                                
+                                    
+                                
+                                    
+                                        <li data-description="Use three sliders to control RGB values and update Hex and HSL strings.">
+                                            <a href="../color/rgb-slider.html">RGB Slider</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Use the HSL color picker to select a new color. Then chose the color type you like best.">
+                                            <a href="../color/hsl-picker.html">HSL Color Picker</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Use the HSL color picker to create harmony colors.">
+                                            <a href="../color/hsl-harmony.html">HSL Harmony</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Shows how to use Overlay&#x27;s constrainment support, to limit the XY value which can be set for an Overlay.">
+                                            <a href="../overlay/overlay-constrain.html">Constrain Support</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Use StyleSheet to adjust the CSS rules applying a page theme from user input">
+                                            <a href="../stylesheet/stylesheet-theme.html">Adjusting a Page Theme on the Fly</a>
+                                        </li>
+                                    
+                                
+                                    
+                                        <li data-description="Example Photo Browser application.">
+                                            <a href="../dd/photo-browser.html">Photo Browser</a>
+                                        </li>
+                                    
+                                
+                            </ul>
+                        </div>
+                    </div>
+                
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="../assets/vendor/prettify/prettify-min.js"></script>
+<script>prettyPrint();</script>
+
+<script>
+YUI.Env.Tests = {
+    examples: [],
+    project: '../assets',
+    assets: '../assets/slider',
+    name: 'slider',
+    title: 'Slider',
+    newWindow: '',
+    auto:  false 
+};
+YUI.Env.Tests.examples.push('slider-basic');
+YUI.Env.Tests.examples.push('slider-from-markup');
+YUI.Env.Tests.examples.push('slider-skin');
+YUI.Env.Tests.examples.push('rgb-slider');
+YUI.Env.Tests.examples.push('hsl-picker');
+YUI.Env.Tests.examples.push('hsl-harmony');
+YUI.Env.Tests.examples.push('overlay-constrain');
+YUI.Env.Tests.examples.push('stylesheet-theme');
+YUI.Env.Tests.examples.push('photo-browser');
+
+</script>
+<script src="../assets/yui/test-runner.js"></script>
+
+
+
+</body>
+</html>