FINAL suepr merge step : added all modules to this super repos

This commit is contained in:
Bachir Soussi Chiadmi
2015-04-19 16:46:59 +02:00
7585 changed files with 1723356 additions and 18 deletions

View File

@@ -0,0 +1,112 @@
/*body{background-color: red;}*/
#page{width:1000px; margin:0 auto;}
.sidebar{width:15%; min-width:150px;}
#center{min-width:800px;}
.one-sidebar #center{width:83%;}
.two-sidebar #center{width:68%;}
.sidebar, .one-sidebar #center, .two-sidebar #center{display:inline-block; vertical-align: top;}
.sidebar .region{padding:0 15px;}
/**
* help description on hover
*/
form:not( #views-ui-config-item-form ) .form-item {
position:relative;
/* padding:9px;*/
}
form:not( #views-ui-config-item-form ) .form-item .description{
position:absolute;
bottom:140%;
/* right:-15px;*/
z-index:5;
left:50%;
color:#1A1A1A;
line-height:1.1;
background:url(../images/popup.png) 50% 100% no-repeat;
width:240px;
margin:0px 0px -15px;
padding:9px 10px 20px;
display:none;
border-top: 1px solid #9F9F9F;
}
form:not( #views-ui-config-item-form ) .form-item:hover {
z-index:1;
height:auto; /* Fix for flicker in IE7 */
}
form:not( #views-ui-config-item-form ) .form-item:hover > .description { display:block; }
/**
* Messages.
*/
div.messages {
position:relative;
padding: 9px;
margin: 0.5em 0 0;
color: #036;
background: #bdf;
border: 1px solid #ace;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
div.messages span.close{
font-weight:bold;
cursor:pointer;
padding:0 5px;
position:absolute;
top:0;
right:0;
}
div.warning {
color: #840;
background: #fe6;
border-color: #ed5;
}
div.error {
color: #fff;
background: #e63;
border-color: #d52;
}
div.error p.error {
color: #333;
}
div.status {
color: #360;
background: #cf8;
border-color: #be7;
}
/**
* VIEW
*/
div.changed {
background-color: #FFF98E;
}
.views-display .tab-section .inside .defaulted {
color: #4C4C4C;
background-color: #E4E4E4;
font-style: italic;
/* font-weight:bold;*/
}
.views-display .tab-section .inside .defaulted a {
font-style: italic;
}

View File

@@ -0,0 +1,14 @@
name = gui7
description = A simple two-column, tableless, fluid width administration theme, based on Seven.
package = Core
version = VERSION
core = 7.x
base theme = seven
stylesheets[screen][] = css/gui7.css
scripts[] = js/gui7.js
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[sidebar_first] = First sidebar
regions[sidebar_second] = Second sidebar

View File

@@ -0,0 +1,61 @@
<?php
/**
* @file
* Default theme implementation to display the basic html structure of a single
* Drupal page.
*
* Variables:
* - $css: An array of CSS files for the current page.
* - $language: (object) The language the site is being displayed in.
* $language->language contains its textual representation.
* $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
* - $rdf_namespaces: All the RDF namespace prefixes used in the HTML document.
* - $grddl_profile: A GRDDL profile allowing agents to extract the RDF data.
* - $head_title: A modified version of the page title, for use in the TITLE
* tag.
* - $head_title_array: (array) An associative array containing the string parts
* that were used to generate the $head_title variable, already prepared to be
* output as TITLE tag. The key/value pairs may contain one or more of the
* following, depending on conditions:
* - title: The title of the current page, if any.
* - name: The name of the site.
* - slogan: The slogan of the site, if any, and if there is no title.
* - $head: Markup for the HEAD section (including meta tags, keyword tags, and
* so on).
* - $styles: Style tags necessary to import all CSS files for the page.
* - $scripts: Script tags necessary to load the JavaScript files and settings
* for the page.
* - $page_top: Initial markup from any modules that have altered the
* page. This variable should always be output first, before all other dynamic
* content.
* - $page: The rendered page content.
* - $page_bottom: Final closing markup from any modules that have altered the
* page. This variable should always be output last, after all other dynamic
* content.
* - $classes String of classes that can be used to style contextually through
* CSS.
*
* @see template_preprocess()
* @see template_preprocess_html()
* @see template_process()
*/
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" version="XHTML+RDFa 1.0" dir="<?php print $language->dir; ?>"<?php print $rdf_namespaces; ?>>
<head profile="<?php print $grddl_profile; ?>">
<?php print $head; ?>
<title><?php print $head_title; ?></title>
<?php print $styles; ?>
<?php print $scripts; ?>
</head>
<body class="<?php print $classes; ?>" <?php print $attributes;?>>
<div id="skip-link">
<a href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
</div>
<?php print $page_top; ?>
<?php print $page; ?>
<?php print $page_bottom; ?>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 B

View File

@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="20"
height="480"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="bleeds.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/yh/d6/sites/all/themes/rubiks/images/bleeds.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient3170">
<stop
style="stop-color:#888888;stop-opacity:1"
offset="0"
id="stop3172" />
<stop
style="stop-color:#aaaaaa;stop-opacity:1"
offset="1"
id="stop3174" />
</linearGradient>
<linearGradient
id="linearGradient3160"
inkscape:collect="always">
<stop
id="stop3162"
offset="0"
style="stop-color:#f4f4f4;stop-opacity:1" />
<stop
id="stop3164"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3157">
<stop
style="stop-color:#f8f8f8;stop-opacity:1"
offset="0"
id="stop3159" />
<stop
style="stop-color:#cccccc;stop-opacity:1"
offset="1"
id="stop3161" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient3163"
x1="400"
y1="400"
x2="400"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(5e-2,0,0,1,0,-480)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3160"
id="linearGradient2388"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(5e-2,0,0,0.1,0,40)"
x1="400"
y1="400"
x2="400"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3170"
id="linearGradient3176"
x1="20"
y1="80"
x2="20"
y2="40"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-40)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-5.75781"
inkscape:cy="180.45457"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false">
<inkscape:grid
type="xygrid"
id="grid2383"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:url(#linearGradient3163);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2385"
width="20"
height="400"
x="0"
y="-480"
transform="scale(1,-1)" />
<rect
y="40"
x="0"
height="40"
width="20"
id="rect2386"
style="opacity:1;fill:url(#linearGradient2388);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:url(#linearGradient3176);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3166"
width="20"
height="40"
x="0"
y="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="260px"
height="480px" viewBox="0 0 260 480" enable-background="new 0 0 260 480" xml:space="preserve">
<g id="svg2" xmlns:svg="http://www.w3.org/2000/svg" sodipodi:version="0.32" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" inkscape:version="0.46" xmlns:dc="http://purl.org/dc/elements/1.1/" inkscape:export-xdpi="90" xmlns:cc="http://creativecommons.org/ns#" sodipodi:docname="popup.svg" inkscape:export-ydpi="90" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" inkscape:export-filename="/home/devseed/d6/sites/all/themes/rubik/images/popup.png" inkscape:output_extension="org.inkscape.output.svg.inkscape" display="none">
<defs display="inline">
<inkscape:perspective id="perspective10" inkscape:vp_x="0 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_y="0 : 1000 : 0" sodipodi:type="inkscape:persp3d" inkscape:vp_z="744.09448 : 526.18109 : 1">
</inkscape:perspective>
</defs>
<sodipodi:namedview id="base" inkscape:current-layer="layer1" showgrid="false" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="14.551915" inkscape:cx="13.515505" inkscape:cy="13.816348" inkscape:document-units="px">
<inkscape:grid visible="true" id="grid3153" enabled="true" type="xygrid"></inkscape:grid>
</sodipodi:namedview>
<g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" display="inline">
<path id="rect3157" sodipodi:nodetypes="ccccccccc" fill="#DEDEDE" d="M0,0v470h260V0h-1v469H1V0H0z"/>
<path id="rect3163" fill="#DEDEDE" d="M0,469v1h260v-1h-1.084H1.083H0z"/>
<rect id="rect3273" y="470" opacity="0.95" fill="#DEDEDE" enable-background="new " width="130" height="1.5"/>
<rect id="rect3263" x="130" y="470" opacity="0.95" fill="#DEDEDE" enable-background="new " width="130" height="1.5"/>
<rect id="rect3155" x="1" fill="#DEDEDE" width="258" height="469"/>
<path id="path3159" sodipodi:nodetypes="ccc" fill="#DEDEDE" d="M120.5,469l9.5,11l9.5-11"/>
<path id="path3165" sodipodi:nodetypes="ccc" fill="#DEDEDE" d="M122,469l8,9.5l8-9.5"/>
<path id="rect3285" sodipodi:nodetypes="ccccccccccc" fill="#DEDEDE" d="M1,468v1h121l8,9.5l8-9.5h121v-1H137l-7,8.5l-7-8.5H1z"/>
<rect id="rect3294" x="258" fill="#DEDEDE" width="1" height="469"/>
<rect id="rect3296" x="1" fill="#DEDEDE" width="1" height="469"/>
</g>
</g>
<g id="svg2_copy" xmlns:svg="http://www.w3.org/2000/svg" sodipodi:version="0.32" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" inkscape:version="0.46" xmlns:dc="http://purl.org/dc/elements/1.1/" inkscape:export-xdpi="90" xmlns:cc="http://creativecommons.org/ns#" sodipodi:docname="popup.svg" inkscape:export-ydpi="90" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" inkscape:export-filename="/home/devseed/d6/sites/all/themes/rubik/images/popup.png" inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs>
<inkscape:perspective id="perspective10" inkscape:vp_x="0 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_y="0 : 1000 : 0" sodipodi:type="inkscape:persp3d" inkscape:vp_z="744.09448 : 526.18109 : 1">
</inkscape:perspective>
</defs>
<sodipodi:namedview id="base" inkscape:current-layer="layer1" showgrid="false" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="14.551915" inkscape:cx="13.515505" inkscape:cy="13.816348" inkscape:document-units="px">
<inkscape:grid visible="true" id="grid3153" enabled="true" type="xygrid"></inkscape:grid>
</sodipodi:namedview>
<g id="layer1_1_" inkscape:label="Layer 1" inkscape:groupmode="layer">
<g id="path3159_1_" sodipodi:nodetypes="ccc">
<polygon fill="#F0F0F0" points="120.614,468.25 0.25,468.25 0.25,-0.75 259.75,-0.75 259.75,468.25 139.386,468.25 130,479.117
"/>
<path fill="#666666" d="M259.5-0.5V468h-120h-0.229l-0.149,0.173L130,478.735l-9.122-10.562L120.729,468H120.5H0.5V-0.5H259.5
M260-1H0v469.5h120.5l9.5,11l9.5-11H260V-1L260-1z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,293 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="200"
height="200"
id="svg3178"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="sprite.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/devseed/atrium/profiles/openatrium/themes/rubik/images/sprite-rtl.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs3180">
<linearGradient
id="linearGradient3214">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3216" />
<stop
id="stop3224"
offset="0.5"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
style="stop-color:#f8f8f8;stop-opacity:1"
offset="1"
id="stop3218" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3173">
<stop
style="stop-color:#c0c0c0;stop-opacity:1"
offset="0"
id="stop3175" />
<stop
style="stop-color:#aaaaaa;stop-opacity:1"
offset="1"
id="stop3177" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3186" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3173"
id="radialGradient3191"
cx="50"
cy="35"
fx="50"
fy="35"
r="10"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-20,0)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3214"
id="radialGradient3228"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,1.5294118,-1.4438991,0,37.403286,-41.176471)"
cx="29.82906"
cy="5.1272879"
fx="29.82906"
fy="5.1272879"
r="10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="61.795857"
inkscape:cy="21.412293"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false">
<inkscape:grid
type="xygrid"
id="grid3188"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata3183">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="LTR"
inkscape:groupmode="layer"
id="layer1"
style="display:none"
sodipodi:insensitive="true">
<g
id="g2407">
<path
d="M 40,10 A 10,10 0 1 1 20,10 A 10,10 0 1 1 40,10 z"
sodipodi:ry="10"
sodipodi:rx="10"
sodipodi:cy="10"
sodipodi:cx="30"
id="path3169"
style="opacity:1;fill:#dddddd;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc"
transform="translate(0,40)" />
<path
id="path3171"
d="M 28.808482,48.378933 C 28.822162,47.407662 29.23256,46.600547 30.217511,46.600547 C 30.942545,46.600547 31.380301,46.997265 31.380301,47.831737 C 31.380301,48.570451 30.915185,48.885089 30.381669,49.309165 C 29.834475,49.733242 29.273598,50.266759 29.191519,51.456908 L 29.191519,52.072503 L 31.038304,52.072503 L 31.038304,51.552668 C 31.161423,50.745555 31.790699,50.389877 32.378933,49.95212 C 32.967169,49.500684 33.528044,48.967167 33.528044,47.640219 C 33.528044,46.586868 32.707248,45 30.121751,45 C 28.12449,45 26.838578,46.422711 26.797538,48.378933 L 28.808482,48.378933 M 29,55 L 31.147743,55 L 31.147743,52.893297 L 29,52.893297 L 29,55"
style="font-size:11px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:110.00000238%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;font-family:Helvetica Neue;-inkscape-font-specification:Helvetica Neue Bold" />
</g>
<g
id="g2411">
<rect
ry="9"
y="20"
x="20"
height="20"
width="20"
id="rect3183"
style="opacity:1;fill:url(#radialGradient3191);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path3193"
d="M 28.808482,29.378933 C 28.822162,28.407662 29.23256,27.600547 30.217511,27.600547 C 30.942545,27.600547 31.380301,27.997265 31.380301,28.831737 C 31.380301,29.570451 30.915185,29.885089 30.381669,30.309165 C 29.834475,30.733242 29.273598,31.266759 29.191519,32.456908 L 29.191519,33.072503 L 31.038304,33.072503 L 31.038304,32.552668 C 31.161423,31.745555 31.790699,31.389877 32.378933,30.95212 C 32.967169,30.500684 33.528044,29.967167 33.528044,28.640219 C 33.528044,27.586868 32.707248,26 30.121751,26 C 28.12449,26 26.838578,27.422711 26.797538,29.378933 L 28.808482,29.378933 M 29,36 L 31.147743,36 L 31.147743,33.893297 L 29,33.893297 L 29,36"
style="font-size:11px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:110.00000238%;writing-mode:lr-tb;text-anchor:start;fill:#eeeeee;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;font-family:Helvetica Neue;-inkscape-font-specification:Helvetica Neue Bold" />
<path
style="font-size:11px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:110.00000238%;writing-mode:lr-tb;text-anchor:start;fill:#404040;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;font-family:Helvetica Neue;-inkscape-font-specification:Helvetica Neue Bold"
d="M 28.808482,28.378933 C 28.822162,27.407662 29.23256,26.600547 30.217511,26.600547 C 30.942545,26.600547 31.380301,26.997265 31.380301,27.831737 C 31.380301,28.570451 30.915185,28.885089 30.381669,29.309165 C 29.834475,29.733242 29.273598,30.266759 29.191519,31.456908 L 29.191519,32.072503 L 31.038304,32.072503 L 31.038304,31.552668 C 31.161423,30.745555 31.790699,30.389877 32.378933,29.95212 C 32.967169,29.500684 33.528044,28.967167 33.528044,27.640219 C 33.528044,26.586868 32.707248,25 30.121751,25 C 28.12449,25 26.838578,26.422711 26.797538,28.378933 L 28.808482,28.378933 M 29,35 L 31.147743,35 L 31.147743,32.893297 L 29,32.893297 L 29,35"
id="path3167" />
</g>
<g
id="g2416">
<path
d="M 40,10 A 10,10 0 1 1 20,10 A 10,10 0 1 1 40,10 z"
sodipodi:ry="10"
sodipodi:rx="10"
sodipodi:cy="10"
sodipodi:cx="30"
id="path3226"
style="opacity:1;fill:url(#radialGradient3228);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="arc" />
<path
style="font-size:11px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:110.00000238%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;font-family:Helvetica Neue;-inkscape-font-specification:Helvetica Neue Bold"
d="M 28.808482,9.3789329 C 28.822162,8.4076616 29.23256,7.6005471 30.217511,7.6005471 C 30.942545,7.6005471 31.380301,7.9972648 31.380301,8.8317372 C 31.380301,9.5704506 30.915185,9.8850892 30.381669,10.309165 C 29.834475,10.733242 29.273598,11.266759 29.191519,12.456908 L 29.191519,13.072503 L 31.038304,13.072503 L 31.038304,12.552668 C 31.161423,11.745555 31.790699,11.389877 32.378933,10.95212 C 32.967169,10.500684 33.528044,9.9671668 33.528044,8.6402188 C 33.528044,7.5868682 32.707248,5.9999999 30.121751,5.9999999 C 28.12449,5.9999999 26.838578,7.4227105 26.797538,9.3789329 L 28.808482,9.3789329 M 29,16 L 31.147743,16 L 31.147743,13.893297 L 29,13.893297 L 29,16"
id="path3230" />
<path
id="text3160"
d="M 28.808482,8.3789329 C 28.822162,7.4076616 29.23256,6.6005471 30.217511,6.6005471 C 30.942545,6.6005471 31.380301,6.9972648 31.380301,7.8317372 C 31.380301,8.5704506 30.915185,8.8850892 30.381669,9.3091654 C 29.834475,9.7332416 29.273598,10.266759 29.191519,11.456908 L 29.191519,12.072503 L 31.038304,12.072503 L 31.038304,11.552668 C 31.161423,10.745555 31.790699,10.389877 32.378933,9.9521203 C 32.967169,9.5006844 33.528044,8.9671668 33.528044,7.6402188 C 33.528044,6.5868682 32.707248,4.9999999 30.121751,4.9999999 C 28.12449,4.9999999 26.838578,6.4227105 26.797538,8.3789329 L 28.808482,8.3789329 M 29,15 L 31.147743,15 L 31.147743,12.893297 L 29,12.893297 L 29,15"
style="font-size:11px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:110.00000238%;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;font-family:Helvetica Neue;-inkscape-font-specification:Helvetica Neue Bold" />
</g>
<g
id="g2432">
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 194,187 L 195,187 L 198,191 L 195,195 L 194,195 L 197,191"
id="path3173"
sodipodi:nodetypes="cccccc" />
<path
sodipodi:nodetypes="cccccc"
id="path2385"
d="M 194,186 L 195,186 L 198,190 L 195,194 L 194,194 L 197,190"
style="opacity:1;fill:#c0c0c0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g2421">
<path
sodipodi:nodetypes="ccccccc"
id="rect3190"
d="M 3,0 C 1.338,0 -2.6111925e-18,1.338 0,3 L 0,17 C 0,18.662 1.338,20 3,20 L 20,20 L 20,0 L 3,0 z"
style="fill:#bbbbbb;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
ry="0.5"
y="6"
x="9"
height="8"
width="2"
id="rect3704"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
ry="0.5"
transform="matrix(0,1,-1,0,0,0)"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3706"
width="2"
height="8"
x="9"
y="-14" />
<path
id="path3190"
d="M 0,16 L 0,17 C 0,18.662 1.338,20 3,20 L 20,20 L 20,19 L 3,19 C 1.338,19 0,17.662 0,16 z"
style="fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g2427">
<path
style="fill:#bbbbbb;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 3,20 C 1.338,20 -2.6111925e-18,21.338 0,23 L 0,37 C 0,38.662 1.338,40 3,40 L 20,40 L 20,20 L 3,20 z"
id="path3715"
sodipodi:nodetypes="ccccccc" />
<rect
y="-14"
x="29"
height="8"
width="2"
id="rect3719"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0,1,-1,0,0,0)"
ry="0.5" />
<path
id="path3195"
d="M 4.4408921e-16,36 L 4.4408921e-16,37 C 4.4408921e-16,38.662 1.338,40 3,40 L 20,40 L 20,39 L 3,39 C 1.338,39 4.4408921e-16,37.662 4.4408921e-16,36 z"
style="fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="RTL"
style="display:inline">
<use
x="0"
y="0"
xlink:href="#g2407"
id="use2436"
width="200"
height="200" />
<use
x="0"
y="0"
xlink:href="#g2411"
id="use2438"
width="200"
height="200" />
<use
x="0"
y="0"
xlink:href="#g2416"
id="use2440"
width="200"
height="200" />
<use
x="0"
y="0"
xlink:href="#g2421"
id="use2442"
transform="matrix(-1,0,0,1,20,0)"
width="200"
height="200" />
<use
x="0"
y="0"
xlink:href="#g2427"
id="use2444"
transform="matrix(-1,0,0,1,20,0)"
width="200"
height="200" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#g2432"
id="use2451"
transform="matrix(-1,0,0,1,200,0)"
width="200"
height="200" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

View File

@@ -0,0 +1,23 @@
Drupal.behaviors.gui7 = function (context) {
// Growl-style system messages
$('#console > div.messages:not(.processed)')
.addClass('processed')
.each(function() {
// If a message meets these criteria, we don't autoclose
// - contains a link
// - is an error or warning
// - contains a lenghthy amount of text
if ($('a', this).size() || $(this).is('.error') || $(this).is('.warning') || $(this).text().length > 100) {
$(this).prepend("<span class='close'>x</span>");
$('span.close', this).click(function() {
$(this).parent().slideUp('fast');
});
}
else {
// This essentially adds a 3 second pause before hiding the message.
$(this).animate({opacity:1}, 5000, 'linear', function() {
$(this).slideUp('fast');
});
}
});
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,60 @@
<?php
// krumo($page);
?>
<?php
?>
<div id="branding" class="clearfix">
<?php print $breadcrumb; ?>
<?php print render($title_prefix); ?>
<?php if ($title): ?>
<h1 class="page-title"><?php print $title; ?></h1>
<?php endif; ?>
<?php print render($title_suffix); ?>
<?php print render($primary_local_tasks); ?>
</div>
<div id="page">
<div id="content" class="clearfix">
<?php if($page['sidebar_first']): ?>
<div id="sidebar-first" class="sidebar">
<?php print render($page['sidebar_first']); ?>
</div>
<?php endif; ?>
<?php if($page['sidebar_first'] || $page['sidebar_second']): ?>
<div id="center">
<?php endif; ?>
<div class="element-invisible"><a id="main-content"></a></div>
<?php if ($messages): ?>
<div id="console" class="clearfix"><?php print $messages; ?></div>
<?php endif; ?>
<?php if ($page['help']): ?>
<div id="help">
<?php print render($page['help']); ?>
</div>
<?php endif; ?>
<?php if ($action_links): ?><ul class="action-links"><?php print render($action_links); ?></ul><?php endif; ?>
<?php print render($page['content']); ?>
<?php if($page['sidebar_first'] || $page['sidebar_second']): ?>
</div><!-- // #center -->
<?php endif; ?>
<?php if($page['sidebar_second']): ?>
<div id="sidebar-last" class="sidebar">
<?php print render($page['sidebar_second']); ?>
</div>
<?php endif; ?>
</div>
<div id="footer">
<?php print $feed_icons; ?>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,113 @@
<?php
/**
* Override or insert variables into the maintenance page template.
*/
function gui7_preprocess_maintenance_page(&$vars) {
// While markup for normal pages is split into page.tpl.php and html.tpl.php,
// the markup for the maintenance page is all in the single
// maintenance-page.tpl.php template. So, to have what's done in
// gui7_preprocess_html() also happen on the maintenance page, it has to be
// called here.
gui7_preprocess_html($vars);
}
/**
* Override or insert variables into the html template.
*/
function gui7_preprocess_html(&$vars) {
// Add conditional CSS for IE8 and below.
// drupal_add_css(path_to_theme() . '/ie.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lte IE 8', '!IE' => FALSE), 'preprocess' => FALSE));
// Add conditional CSS for IE6.
// drupal_add_css(path_to_theme() . '/ie6.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'lt IE 7', '!IE' => FALSE), 'preprocess' => FALSE));
}
/**
* Override or insert variables into the page template.
*/
function gui7_preprocess_page(&$vars) {
$vars['primary_local_tasks'] = $vars['tabs'];
unset($vars['primary_local_tasks']['#secondary']);
$vars['secondary_local_tasks'] = array(
'#theme' => 'menu_local_tasks',
'#secondary' => $vars['tabs']['#secondary'],
);
}
/**
* Display the list of available node types for node creation.
*/
function gui7_node_add_list($variables) {
$content = $variables['content'];
$output = '';
if ($content) {
$output = '<ul class="admin-list">';
foreach ($content as $item) {
$output .= '<li class="clearfix">';
$output .= '<span class="label">' . l($item['title'], $item['href'], $item['localized_options']) . '</span>';
$output .= '<div class="description">' . filter_xss_admin($item['description']) . '</div>';
$output .= '</li>';
}
$output .= '</ul>';
}
else {
$output = '<p>' . t('You have not created any content types yet. Go to the <a href="@create-content">content type creation page</a> to add a new content type.', array('@create-content' => url('admin/structure/types/add'))) . '</p>';
}
return $output;
}
/**
* Overrides theme_admin_block_content().
*
* Use unordered list markup in both compact and extended mode.
*/
function gui7_admin_block_content($variables) {
$content = $variables['content'];
$output = '';
if (!empty($content)) {
$output = system_admin_compact_mode() ? '<ul class="admin-list compact">' : '<ul class="admin-list">';
foreach ($content as $item) {
$output .= '<li class="leaf">';
$output .= l($item['title'], $item['href'], $item['localized_options']);
if (isset($item['description']) && !system_admin_compact_mode()) {
$output .= '<div class="description">' . filter_xss_admin($item['description']) . '</div>';
}
$output .= '</li>';
}
$output .= '</ul>';
}
return $output;
}
/**
* Override of theme_tablesort_indicator().
*
* Use our own image versions, so they show up as black and not gray on gray.
*/
function gui7_tablesort_indicator($variables) {
$style = $variables['style'];
$theme_path = drupal_get_path('theme', 'seven');
if ($style == 'asc') {
return theme('image', array('path' => $theme_path . '/images/arrow-asc.png', 'alt' => t('sort ascending'), 'width' => 13, 'height' => 13, 'title' => t('sort ascending')));
}
else {
return theme('image', array('path' => $theme_path . '/images/arrow-desc.png', 'alt' => t('sort descending'), 'width' => 13, 'height' => 13, 'title' => t('sort descending')));
}
}
/**
* Implements hook_css_alter().
*/
function gui7_css_alter(&$css) {
// Use Seven's vertical tabs style instead of the default one.
if (isset($css['misc/vertical-tabs.css'])) {
$css['misc/vertical-tabs.css']['data'] = drupal_get_path('theme', 'seven') . '/vertical-tabs.css';
}
if (isset($css['misc/vertical-tabs-rtl.css'])) {
$css['misc/vertical-tabs-rtl.css']['data'] = drupal_get_path('theme', 'seven') . '/vertical-tabs-rtl.css';
}
// Use Seven's jQuery UI theme style instead of the default one.
if (isset($css['misc/ui/jquery.ui.theme.css'])) {
$css['misc/ui/jquery.ui.theme.css']['data'] = drupal_get_path('theme', 'seven') . '/jquery.ui.theme.css';
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,9 @@
/** COMMONS */
.inline-block {
display: inline-block;
display: moz-inline-stack;
*display: inline;
*zoom: 1;
vertical-align: top;
}
/** HTML5 */

View File

@@ -0,0 +1,146 @@
.inline-block{display:inline-block;display:moz-inline-stack;*display:inline;*zoom:1;vertical-align:top;}
.8{font-size:8px;}
.9{font-size:9px;}
.10{font-size:10px;}
.11{font-size:10px;}
.12{font-size:12px;}
.14{font-size:14px;}
.16{font-size:16px;}
.18{font-size:18px;}
.20{font-size:18px;}
.24{font-size:24px;}
.28{font-size:28px;}
.30{font-size:30px;}
.36{font-size:36px;}
.48{font-size:48px;}
.60{font-size:60px;}
.72{font-size:72px;}
.regular{font-weight:normal;}
.bold{font-weight:bold;}
.100{font-weight:100;}
.300{font-weight:300;}
.500{font-weight:500;}
.700{font-weight:700;}
.900{font-weight:900;}
.upper{text-transform:uppercase;}
.italic{font-style:italic;}
.normal{font-style:normal;}
a{color:#0092D2;}
table th{background-color:#e0e0e0;}
.block,.item-list,.help-items ul,.form-item,.confirmation ul,.admin-list,.node-type-list,.admin-panel{border-width:0px;border-style:solid;border-color:#fff;}
.text-format-wrapper .form-item{background:#F4F4F4;margin:0px 0px 10px;border-width:0;border-style:solid;border-color:#ddd;padding:9px;}
.form-item label{color:#1A1A1A;font-weight:normal;font-size:12px;text-transform:none;}
input.form-autocomplete,input.form-text,textarea.form-textarea,select.form-select{padding:3px;border-width:1px;border-style:solid;border-color:#BFBFBF;background:#fff;color:#1A1A1A;max-width:100%;}
span.autocomplete-deluxe-button{top:0.25em;}
.fieldset{display:block;position:relative;min-height:28px;border:0 solid #eee;border-top:1px solid #4C4C4C;}.fieldset.titled{margin:20px 0px 10px!important;}
.fieldset legend{margin-top:-0.9em;}
.fieldset.collapsible legend a.fieldset-title{padding-right:15px;}.fieldset.collapsible legend a.fieldset-title:after{content:"-";padding:0 3px 2px;margin:-5px 0 0 10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;color:#000;background-color:#FFF;line-height:0;font-weight:bold;}
.fieldset.collapsible legend a.fieldset-title:hover{color:#fff;font-weight:bold;}
.fieldset.collapsed legend a.fieldset-title:after{content:"+";}
.tabledrag-processed{border:0 solid #fff;padding-bottom:2em;}.tabledrag-processed thead{background-color:transparent;}.tabledrag-processed thead label{color:inherit;text-shadow:none;padding:0 0 0 0.5em;}
.tabledrag-processed thead th{background-color:transparent;text-transform:uppercase;font-weight:bold;}
.item-list h3,.block .block-title,.fieldset-title,.collapsible .fieldset-legend a{display:inline-block;width:auto;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;font-size:12px;font-weight:normal;text-transform:uppercase;margin:0px;padding:2px 9px 3px;color:#fff;background:#666;}
.block .block-content,.container-inline .fieldset-content,.fieldset-content{padding:10px 9px 9px;background:#F4F4F4;}
.page-content .form-item .description{color:#fff;border-top:1px solid #E0E0E0;background:url(../images/popup.png) 50% 100% no-repeat;}.page-content .form-item .description a{text-decoration:underline;}
li{list-style:none inside url();}
#user-profile-form label,.node-form label{text-transform:uppercase;font-size:1em;}
#user-profile-form .fieldset-title,.node-form .fieldset-title,#user-profile-form .vertical-tab-button strong,.node-form .vertical-tab-button strong,#user-profile-form .horizontal-tab-button strong,.node-form .horizontal-tab-button strong{text-transform:uppercase;font-size:0.8em;font-weight:bold;}
#user-profile-form div.form-type-checkboxes>label,.node-form div.form-type-checkboxes>label,#user-profile-form div.form-type-checkboxes>div.form-checkboxes,.node-form div.form-type-checkboxes>div.form-checkboxes{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;}.ie7 #user-profile-form div.form-type-checkboxes>label,.ie7 .node-form div.form-type-checkboxes>label,.ie7 #user-profile-form div.form-type-checkboxes>div.form-checkboxes,.ie7 .node-form div.form-type-checkboxes>div.form-checkboxes{display:inline;}
#user-profile-form .form-item-language>label,.node-form .form-item-language>label,#user-profile-form .form-type-select>label,.node-form .form-type-select>label,#user-profile-form .form-item-language>select,.node-form .form-item-language>select,#user-profile-form .form-type-select>select,.node-form .form-type-select>select{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;}.ie7 #user-profile-form .form-item-language>label,.ie7 .node-form .form-item-language>label,.ie7 #user-profile-form .form-type-select>label,.ie7 .node-form .form-type-select>label,.ie7 #user-profile-form .form-item-language>select,.ie7 .node-form .form-item-language>select,.ie7 #user-profile-form .form-type-select>select,.ie7 .node-form .form-type-select>select{display:inline;}
#user-profile-form .form-item-language>label,.node-form .form-item-language>label,#user-profile-form .form-type-select>label,.node-form .form-type-select>label{width:35%;}
#user-profile-form .form-item-language>select,.node-form .form-item-language>select,#user-profile-form .form-type-select>select,.node-form .form-type-select>select{max-width:60%;}
#user-profile-form .form-type-textfield>label,.node-form .form-type-textfield>label,#user-profile-form .form-type-textfield>input.form-text,.node-form .form-type-textfield>input.form-text{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;margin:0;vertical-align:middle;}.ie7 #user-profile-form .form-type-textfield>label,.ie7 .node-form .form-type-textfield>label,.ie7 #user-profile-form .form-type-textfield>input.form-text,.ie7 .node-form .form-type-textfield>input.form-text{display:inline;}
#user-profile-form .form-type-textfield>label,.node-form .form-type-textfield>label{width:35%;}
#user-profile-form .form-type-textfield>input.form-text,.node-form .form-type-textfield>input.form-text{max-width:60%;}
#user-profile-form .form-type-link-field>label,.node-form .form-type-link-field>label,#user-profile-form .form-type-link-field>input.form-text,.node-form .form-type-link-field>input.form-text{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;margin:0;}.ie7 #user-profile-form .form-type-link-field>label,.ie7 .node-form .form-type-link-field>label,.ie7 #user-profile-form .form-type-link-field>input.form-text,.ie7 .node-form .form-type-link-field>input.form-text{display:inline;}
#user-profile-form .form-type-link-field>label,.node-form .form-type-link-field>label{width:35%;}
#user-profile-form .form-type-link-field div,.node-form .form-type-link-field div{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;margin:0;width:100%;}.ie7 #user-profile-form .form-type-link-field div,.ie7 .node-form .form-type-link-field div{display:inline;}
#user-profile-form .form-type-link-field>div,.node-form .form-type-link-field>div{width:60%;}
#user-profile-form .form-type-link-field input.form-text,.node-form .form-type-link-field input.form-text{max-width:100%;}
#user-profile-form .form-phone-number .form-item,.node-form .form-phone-number .form-item{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;}.ie7 #user-profile-form .form-phone-number .form-item,.ie7 .node-form .form-phone-number .form-item{display:inline;}
#user-profile-form .form-phone-number input.form-text,.node-form .form-phone-number input.form-text{width:100%;}
#user-profile-form .autocomplete-deluxe-button,.node-form .autocomplete-deluxe-button{margin-top:-3px;}
#user-profile-form .addressfield-container-inline>div.form-item,.node-form .addressfield-container-inline>div.form-item{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;margin:0;width:30%;}.ie7 #user-profile-form .addressfield-container-inline>div.form-item,.ie7 .node-form .addressfield-container-inline>div.form-item{display:inline;}
#user-profile-form fieldset.filter-wrapper,.node-form fieldset.filter-wrapper{display:none;}
#user-profile-form input.fid.form-text,.node-form input.fid.form-text{display:none;}
#user-profile-form .form-region-right,.node-form .form-region-right{position:relative;}#user-profile-form .form-region-right fieldset.form-wrapper,.node-form .form-region-right fieldset.form-wrapper{max-width:100%;padding:0;margin:0;}
#user-profile-form .form-region-right .fieldset-wrapper,.node-form .form-region-right .fieldset-wrapper{padding:0;}
#user-profile-form .form-region-right input.form-text,.node-form .form-region-right input.form-text{width:100%;}
#user-profile-form tr.draggable fieldset legend,.node-form tr.draggable fieldset legend{display:none;}
#user-profile-form tr.draggable fieldset .fieldset-content,.node-form tr.draggable fieldset .fieldset-content{padding:0;}#user-profile-form tr.draggable fieldset .fieldset-content .date-padding,.node-form tr.draggable fieldset .fieldset-content .date-padding{padding:0;}
#user-profile-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree,.node-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree{display:block;}#user-profile-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree>ul.term-reference-tree-level,.node-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree>ul.term-reference-tree-level{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;padding:0 2em 0 0;min-width:30%;}.ie7 #user-profile-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree>ul.term-reference-tree-level,.ie7 .node-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree>ul.term-reference-tree-level{display:inline;}
#user-profile-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree .term-reference-track-list-container,.node-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree .term-reference-track-list-container{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;border-left:1px solid #848484;padding:0 0 2em 1em;}.ie7 #user-profile-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree .term-reference-track-list-container,.ie7 .node-form .field-widget-term-reference-tree .form-item.form-type-checkbox-tree .term-reference-tree .term-reference-track-list-container{display:inline;}
.vertical-tabs{background:#f4f4f4;border:1px solid #BFBFBF;margin:0px 0px 10px;position:relative;}
.vertical-tabs .fieldset-content,.vertical-tabs fieldset.titled .fieldset-content{border:0px;padding:10px;}
.vertical-tabs .fieldset-content .fieldset-content{margin-top:20px;}
.vertical-tabs-list li a{display:block;text-shadow:#fff 0px 1px 0px;padding:5px 10px 4px 10px;border-bottom:1px solid #BFBFBF;border-right:1px solid #BFBFBF;color:#494949;background:#e0e0e0;}
.vertical-tabs-list li.last a{border-bottom:0px solid #bfbfbf;}
.vertical-tabs-list .selected a,.vertical-tabs-list li:hover a{background:#f4f4f4;color:#1A1A1A;}
.vertical-tabs-list .selected a{border-right:0 solid #f4f4f4;}
.vertical-tabs-list .summary{font-size:11px;}
.page-admin table,.update tr.warning .version-recommended,.update tr.error .version-recommended{background-color:transparent;border:0px solid transparent;}.page-admin table tr,.update tr.warning .version-recommended tr,.update tr.error .version-recommended tr{border:0px solid transparent;}
.page-admin table tr.even td,.page-admin table tr.odd td,.page-admin table tr.even h3,.page-admin table tr.odd h3{background-color:transparent;}
.page-admin table tr.even:hover,.page-admin table tr.odd:hover{background:#D4EFEE;}
.page-admin table tr.even.ok,.page-admin table tr.odd.ok{background-color:#d1f2a3;color:#000;}
.page-admin table tr.even.warning,.page-admin table tr.odd.warning{background-color:#e9e2a6;color:#000;}
.page-admin table tr.even.error,.page-admin table tr.odd.error{background-color:#ffc4be;color:#000;}
.page-admin table tr.even{background:#EFEFEF;}
.page-admin table tr.ok,.page-admin table tr.ok:hover{color:#468847;background-color:#dff0d8;}
.page-admin table tr.warning,.page-admin table tr.warning:hover{color:#c09853;background-color:#fcf8e3;}
.page-admin table tr.error,.page-admin table tr.error:hover{color:#b94a48;background-color:#f2dede;}
.admin-block-description,.help-items ul li,.confirmation ul li,.item-list ul li,.prose .item-list li,.menu li{border-bottom:0 solid #f4f4f4;}
form .form-actions{background:#eee;border:0 solid #ddd;padding:9px;}
input.teaser-button,input.form-submit,.node-edit,.button,.node-delete{cursor:pointer;padding:0.3em 0.9em;color:#333;text-align:center;font-size:12px;font-weight:normal;border-width:1px;border-style:solid;border-color:#ddd #ddd #ccc;background:#bbddff url();-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;}input.teaser-button.field-add-more-submit,input.form-submit.field-add-more-submit,.node-edit.field-add-more-submit,.button.field-add-more-submit,.node-delete.field-add-more-submit{padding:0.1em 0.4em 0;font-size:10px;}
.node-edit,.button,.node-delete{font-size:10px;padding:0.1em 0.6em;}
input.form-submit:hover,.node-edit:hover,.button:hover,.node-delete:hover{border-color:#ddd #ddd #ccc;-webkit-box-shadow:#ace 0px 0px 0px;color:#bdf;background-color:#848484;}
input.button-yes:not(.field-add-more-submit),.node-edit{background-color:#CCFF2F;}input.button-yes:not(.field-add-more-submit):hover,.node-edit:hover{color:#CCFF2F;}
input.button-no,.node-delete{background-color:#EA4B4A;}input.button-no:hover,.node-delete:hover{color:#EA4B4A;}
body.admin-vertical #admin-menu{background:#222;background-image:none;}
body.admin-vertical #admin-menu-wrapper{margin-left:35px!important;}
body.admin-vertical.admin-expanded #admin-menu-wrapper{border-left:1px solid #323232;margin-left:260px!important;}
#admin-toolbar{z-index:1000!important;}
#views-ui-edit-form div.changed{background-color:#FFF98E;}
#views-ui-edit-form .views-ui-display-tab-bucket h3{font-weight:bold;background-color:#D8D8D8;}
#views-ui-edit-form .defaulted,#views-ui-edit-form .views-ui-display-tab-bucket .views-display-setting.even,#views-ui-edit-form .views-ui-display-tab-bucket .views-display-setting.odd{color:#666;background-color:#E0E0E0;font-style:italic;}#views-ui-edit-form .defaulted a,#views-ui-edit-form .views-ui-display-tab-bucket .views-display-setting.even a,#views-ui-edit-form .views-ui-display-tab-bucket .views-display-setting.odd a{color:#3f80b3;}
#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting,#views-ui-edit-form .views-display-setting.overridden,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.even,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.even,#views-ui-edit-form .views-display-setting.overridden.even,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.odd,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.odd,#views-ui-edit-form .views-display-setting.overridden.odd{color:#7F7F7F;background-color:#F9F9F9;font-style:normal;}#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting a,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting a,#views-ui-edit-form .views-display-setting.overridden a,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.even a,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.even a,#views-ui-edit-form .views-display-setting.overridden.even a,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.odd a,#views-ui-edit-form .views-ui-display-tab-bucket.overridden .views-display-setting.odd a,#views-ui-edit-form .views-display-setting.overridden.odd a{color:#3188D1;}
.view .view-header{padding:0.5em;margin:0 0 1em 0;border:1px solid #CCC;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;border-radius:5px 5px 5px 5px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;font-weight:bold;}
.view .pager{padding:1em 0;margin:0;text-align:right;height:auto;}.view .pager ul{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;padding:0;}.ie7 .view .pager ul{display:inline;}
.view .pager ul li{height:20px;}.view .pager ul li a,.view .pager ul li span{padding:1px 10px 2px;}
.view .view-filters{padding:1em 0;margin:0 0 1em 0;border:1px solid #CCC;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;border-radius:5px 5px 5px 5px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;}.view .view-filters>span.title,.view .view-filters>form{display:moz-inline-stack;display:inline-block;zoom:1;*display:inline;width:auto;position:relative;vertical-align:top;}.ie7 .view .view-filters>span.title,.ie7 .view .view-filters>form{display:inline;}
.view .view-filters>span.title{padding:0.7em 1em;}
.view .view-filters fieldset{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;padding:0 1em;}.ie7 .view .view-filters fieldset{display:inline;}
.view .view-filters fieldset .fieldset-content{padding:0;}
.view .view-filters fieldset legend{display:none;}
.view .view-filters label{font-weight:normal;font-size:0.75em;}
.view .view-filters .form-item{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;padding:0 0.5em 0 0;}.ie7 .view .view-filters .form-item{display:inline;}
.view .view-filters .form-item select,.view .view-filters .form-item input{font-size:0.8em;}
.view fieldset#edit-select{padding:1em 0;margin:0 0 1em 0;border:1px solid #CCC;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;border-radius:5px 5px 5px 5px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;}.view fieldset#edit-select legend,.view fieldset#edit-select .fieldset-content{display:moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;}.ie7 .view fieldset#edit-select legend,.ie7 .view fieldset#edit-select .fieldset-content{display:inline;}
.view fieldset#edit-select legend{width:auto;}.view fieldset#edit-select legend *{background-color:transparent;}
.view fieldset#edit-select .fieldset-content{padding:0;}.view fieldset#edit-select .fieldset-content select,.view fieldset#edit-select .fieldset-content input{font-size:0.8em;}
.view .vbo-fieldset-select-all{width:50%;text-align:left;}.view .vbo-fieldset-select-all .form-item{display:moz-inline-stack;display:inline-block;zoom:1;*display:inline;vertical-align:top;}.ie7 .view .vbo-fieldset-select-all .form-item{display:inline;}
.view .vbo-fieldset-select-all em{padding:0 1em;}
.view.inline-block-list .views-row{display:moz-inline-stack;display:inline-block;zoom:1;*display:inline;vertical-align:top;padding:5px;margin:5px;width:250px;min-height:150px;background-color:#E3E3E3;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;border-radius:5px 5px 5px 5px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ddd;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);}.ie7 .view.inline-block-list .views-row{display:inline;}
.view.inline-block-list .views-row .float-left{float:left;}.view.inline-block-list .views-row .float-left>div{margin:0 10px 10px 0;}
*:focus{border:1px solid #BDF!important;}
.clearfix:before,.clearfix:after{content:"";display:table;}
.clearfix:after{clear:both;}
.clearfix{zoom:1;}
.path-admin-content-nodes span.icon{background-position:0px -30px;}
.custom-admin table caption{text-align:left;padding:2em 0 0 0;font-weight:bold;}
.custom-admin table th{line-height:1;background-color:#f4f4f4 !important;}
.custom-admin table td{padding-top:1em;padding-bottom:1em;}
.custom-admin table td.views-field-field-media{width:100px;}.custom-admin table td.views-field-field-media img{max-width:100%;height:auto;}
.custom-admin table.has-caption th,.custom-admin table.has-caption td.views-field-field-media,.custom-admin table.has-caption td.views-field-views-bulk-operations{background:#e0e0e0 !important;}
.custom-admin table td.views-field-title{width:350px;}
.custom-admin table a.node-title-link{font-size:1.1em;padding:0 0 0.3em;display:inline-block;}
.custom-admin table td.views-field-field-people{width:100px;}
#modalContent div.ctools-modal-content{padding:5px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;border:1 solid #999;}
#modalContent div.ctools-modal-content .modal-header,#modalContent div.ctools-modal-content .modal-header a,#modalContent div.ctools-modal-content .modal-header span{background-color:transparent;color:#000!important;}
div.messages{padding:9px;margin:0.5em 0 0;color:#3a87ad;background:#d9edf7;border:1px solid #bce8f1;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}div.messages.warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5;}
div.messages.error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7;}
div.messages.status{color:#468847;background-color:#dff0d8;border-color:#d6e9c6;}
#better-messages-wrapper{background-color:rgba(255, 255, 255, 0.6);padding:10px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-box-shadow:0 0 6px rgba(0, 0, 0, 0.4);-moz-box-shadow:0 0 6px rgba(0, 0, 0, 0.4);box-shadow:0 0 6px rgba(0, 0, 0, 0.4);}#better-messages-wrapper #better-messages-default .messages-label{display:none;}
#better-messages-wrapper #better-messages-default div.messages{padding:9px;margin:0.5em 0 0;color:#3a87ad;background:#d9edf7;border:1px solid #bce8f1;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;margin:0 0 10px 0;}#better-messages-wrapper #better-messages-default div.messages.warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5;}
#better-messages-wrapper #better-messages-default div.messages.error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7;}
#better-messages-wrapper #better-messages-default div.messages.status{color:#468847;background-color:#dff0d8;border-color:#d6e9c6;}
#better-messages-wrapper #better-messages-default .footer{border:none;padding:0;margin:0;}#better-messages-wrapper #better-messages-default .footer a.message-close{background:#ffffff url('../images/close.png') no-repeat center center;width:15px;height:15px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;display:block;}

View File

@@ -0,0 +1,27 @@
;----------// Theme Information
name = Guibik
description = rubik admin subtheme
core = 7.x
engine = phptemplate
screenshot = screenshot.png
base theme = rubik
;----------// Stylesheets
stylesheets[screen][] = css/guibik.css
;----------// Scripts
scripts[] = "js/guibik.js"
;----------// Regions
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
;----------// Shortcut link
settings[shortcut_module_link] = 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,497 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="400"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="bleeds.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/devseed/7/profiles/buildkit/themes/rubik/images/bleeds.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient2641"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-119.99998,39.999993)"
x1="400"
y1="80"
x2="400"
y2="100" />
<linearGradient
inkscape:collect="always"
id="linearGradient3242">
<stop
style="stop-color:#dddddd;stop-opacity:1;"
offset="0"
id="stop3244" />
<stop
style="stop-color:#dddddd;stop-opacity:0;"
offset="1"
id="stop3246" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 240 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="400 : 240 : 1"
inkscape:persp3d-origin="200 : 160 : 1"
id="perspective65" />
<linearGradient
id="linearGradient3383"
inkscape:collect="always">
<stop
id="stop3385"
offset="0"
style="stop-color:#808080;stop-opacity:1" />
<stop
id="stop3387"
offset="1"
style="stop-color:#6c6c6c;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3357">
<stop
style="stop-color:#808080;stop-opacity:1"
offset="0"
id="stop3359" />
<stop
style="stop-color:#808080;stop-opacity:0"
offset="1"
id="stop3361" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3233">
<stop
style="stop-color:#666666;stop-opacity:1;"
offset="0"
id="stop3235" />
<stop
style="stop-color:#606060;stop-opacity:1"
offset="1"
id="stop3237" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient3182">
<stop
style="stop-color:#000000;stop-opacity:0"
offset="0"
id="stop3184" />
<stop
style="stop-color:#000000;stop-opacity:0.04705882"
offset="1"
id="stop3186" />
</linearGradient>
<linearGradient
id="linearGradient3157">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3159" />
<stop
id="stop3248"
offset="0.80000001"
style="stop-color:#f3f3f3;stop-opacity:1;" />
<stop
style="stop-color:#e8e8e8;stop-opacity:1"
offset="1"
id="stop3161" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient3199"
x1="400"
y1="80"
x2="400"
y2="100"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-180)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient3209"
x1="400"
y1="60"
x2="400"
y2="70"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-70)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3233"
id="linearGradient3247"
x1="0"
y1="155"
x2="0"
y2="170"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-110)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3233"
id="linearGradient2567"
gradientUnits="userSpaceOnUse"
x1="0"
y1="155"
x2="0"
y2="170"
gradientTransform="translate(0,-80)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3357"
id="radialGradient3363"
cx="395.54785"
cy="183.16667"
fx="395.54785"
fy="183.16667"
r="5.5"
gradientTransform="matrix(-1.890231,0,0,-2.7272727,1147.6768,579.54545)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3383"
id="linearGradient3389"
gradientUnits="userSpaceOnUse"
x1="0"
y1="155"
x2="0"
y2="170"
gradientTransform="translate(0,-50)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3357"
id="radialGradient2463"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.890231,0,0,-2.7272727,1147.6768,609.54545)"
cx="395.54785"
cy="183.16667"
fx="395.54785"
fy="183.16667"
r="5.5" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient2637"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1,0.125)"
x1="400"
y1="400"
x2="400"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient3230"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(7.5e-2,0,0,0.5,-30,-35)"
x1="400"
y1="60"
x2="400"
y2="70" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient3234"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(7.5e-2,0,0,0.5,-30,365)"
x1="400"
y1="60"
x2="400"
y2="70" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3242"
id="linearGradient3248"
x1="400"
y1="-60"
x2="400"
y2="-70"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3242"
id="linearGradient3252"
gradientUnits="userSpaceOnUse"
x1="400"
y1="-60"
x2="400"
y2="-70"
gradientTransform="matrix(7.4999997e-2,0,0,0.5,-89.999995,29.999997)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3242"
id="linearGradient3256"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(7.4999997e-2,0,0,0.4999997,-89.99997,429.99998)"
x1="400"
y1="-60"
x2="400"
y2="-70" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient2446"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1,0.125)"
x1="400"
y1="400"
x2="400"
y2="0" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.8146973"
inkscape:cx="79.057128"
inkscape:cy="261.4804"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false">
<inkscape:grid
type="xygrid"
id="grid2383"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="opacity:0;fill:#49add7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 0,0 L 0,50 L 192,50 L 200,58 L 208,50 L 400,50 L 400,0 L 0,0 z"
id="rect2397" />
<rect
style="opacity:1;fill:url(#linearGradient3199);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3191"
width="400"
height="0"
x="0"
y="-100"
transform="scale(1,-1)" />
<rect
y="30"
x="0"
height="30"
width="400"
id="rect3227"
style="opacity:1;fill:url(#linearGradient3247);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#505050;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3249"
width="400"
height="1"
x="0"
y="59" />
<path
style="opacity:1;fill:url(#linearGradient2567);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 0,60 L 0,90 L 388,90 L 398,75 L 388,60 L 0,60 z"
id="rect2550"
sodipodi:nodetypes="cccccc" />
<path
style="opacity:1;fill:#505050;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 0,89 L 0,90 L 388,90 L 388.65625,89 L 0,89 z"
id="rect2552"
sodipodi:nodetypes="ccccc" />
<path
style="opacity:1;fill:#555555;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 387,90 L 397,75 L 387,60 L 388,60 L 398,75 L 388,90"
id="path2573"
sodipodi:nodetypes="cccccc" />
<path
sodipodi:nodetypes="cccccc"
id="path3355"
d="M 388,90 L 398,75 L 388,60 L 389,60 L 399,75 L 389,90"
style="opacity:1;fill:url(#radialGradient3363);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="cccccc"
id="path3367"
d="M 0,90 L 0,120 L 388,120 L 398,105 L 388,90 L 0,90 z"
style="opacity:1;fill:url(#linearGradient3389);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
id="path3369"
d="M 0,119 L 0,120 L 388,120 L 388.65625,119 L 0,119 z"
style="opacity:1;fill:#505050;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccc"
id="path3371"
d="M 387,120 L 397,105 L 387,90 L 388,90 L 398,105 L 388,120"
style="opacity:1;fill:#606060;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="opacity:1;fill:url(#radialGradient2463);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 388,120 L 398,105 L 388,90 L 389,90 L 399,105 L 389,120"
id="path2461"
sodipodi:nodetypes="cccccc" />
<g
style="display:inline"
id="g2421"
transform="translate(0,120)">
<path
sodipodi:nodetypes="ccccccc"
id="rect3190"
d="M 3,0 C 1.338,0 -2.6111925e-18,1.338 0,3 L 0,17 C 0,18.662 1.338,20 3,20 L 20,20 L 20,0 L 3,0 z"
style="fill:#bbbbbb;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
ry="0.5"
y="6"
x="9"
height="8"
width="2"
id="rect3704"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
rx="0.5" />
<rect
ry="0.5"
transform="matrix(0,1,-1,0,0,0)"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3706"
width="2"
height="8"
x="9"
y="-14"
rx="0.5" />
<path
id="path3190"
d="M 0,16 L 0,17 C 0,18.662 1.338,20 3,20 L 20,20 L 20,19 L 3,19 C 1.338,19 0,17.662 0,16 z"
style="fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
style="display:inline"
id="g2427"
transform="translate(20,100)">
<path
style="fill:#bbbbbb;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 3,20 C 1.338,20 -2.6111925e-18,21.338 0,23 L 0,37 C 0,38.662 1.338,40 3,40 L 20,40 L 20,20 L 3,20 z"
id="path3715"
sodipodi:nodetypes="ccccccc" />
<rect
y="-14"
x="29"
height="8"
width="2"
id="rect3719"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0,1,-1,0,0,0)"
ry="0.5"
rx="0.5" />
<path
id="path3195"
d="M 4.4408921e-16,36 L 4.4408921e-16,37 C 4.4408921e-16,38.662 1.338,40 3,40 L 20,40 L 20,39 L 3,39 C 1.338,39 4.4408921e-16,37.662 4.4408921e-16,36 z"
style="fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
id="g2442"
transform="translate(0,350)">
<rect
y="0"
x="0"
height="50"
width="400"
id="rect2385"
style="opacity:1;fill:url(#linearGradient2446);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
ry="0"
y="0"
x="0"
height="1"
width="400"
id="rect3225"
style="opacity:1;fill:#f4f4f4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<rect
style="opacity:1;fill:#bbbbbb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2438"
width="15"
height="15"
x="42"
y="123"
ry="2"
rx="2" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 49.5,125 L 47.5,127 L 49,127 L 49,130 L 46,130 L 46,128.5 L 44,130.5 L 46,132.5 L 46,131 L 49,131 L 49,134 L 47.5,134 L 49.5,136 L 51.5,134 L 50,134 L 50,131 L 53,131 L 53,132.5 L 55,130.5 L 53,128.5 L 53,130 L 50,130 L 50,127 L 51.5,127 L 49.5,125 z"
id="path2440" />
<rect
transform="scale(1,-1)"
ry="0"
y="-30"
x="0"
height="1"
width="400"
id="rect3262"
style="opacity:1;fill:#000000;fill-opacity:0.02352941;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
transform="matrix(0,-1,-1,0,0,0)"
ry="0"
y="-5"
x="-30"
height="5"
width="30"
id="rect3228"
style="opacity:1;fill:url(#linearGradient3230);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:url(#linearGradient3209);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3201"
width="400"
height="10"
x="0"
y="-10"
ry="0"
transform="scale(1,-1)" />
<rect
style="opacity:1;fill:url(#linearGradient3234);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3232"
width="30"
height="5"
x="-30"
y="395"
ry="0"
transform="matrix(0,-1,1,0,0,0)" />
<rect
transform="scale(1,-1)"
ry="0"
y="-1.5"
x="0"
height="1.5"
width="400"
id="rect3268"
style="opacity:1;fill:#000000;fill-opacity:0.07843137;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,678 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="4800"
height="40"
id="svg3509"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="buttons.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/devseed/7/profiles/buildkit/themes/rubik/images/buttons.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs3511">
<linearGradient
inkscape:collect="always"
id="linearGradient4086">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4088" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4090" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient3456"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,-799.99998,-209.99999)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3233"
id="linearGradient3176"
x1="20"
y1="80"
x2="20"
y2="40"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(20,0,0,1,2000,-40)" />
<linearGradient
inkscape:collect="always"
id="linearGradient3182">
<stop
style="stop-color:#000000;stop-opacity:0"
offset="0"
id="stop3184" />
<stop
style="stop-color:#000000;stop-opacity:0.04705882"
offset="1"
id="stop3186" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient2641"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.6699219e-5,-70.000001)"
x1="400"
y1="80"
x2="400"
y2="100" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient3462"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,1600,-210)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
id="linearGradient3233">
<stop
style="stop-color:#666666;stop-opacity:1;"
offset="0"
id="stop3235" />
<stop
style="stop-color:#606060;stop-opacity:1"
offset="1"
id="stop3237" />
</linearGradient>
<linearGradient
id="linearGradient3157">
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="0"
id="stop3159" />
<stop
id="stop3248"
offset="0.80000001"
style="stop-color:#000000;stop-opacity:0.04705882;" />
<stop
style="stop-color:#000000;stop-opacity:0.09411765;"
offset="1"
id="stop3161" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient3472"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,2400,-210)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3478"
id="linearGradient3484"
x1="1214.5"
y1="234"
x2="1214.5"
y2="226"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.6699219e-5,-210)" />
<linearGradient
inkscape:collect="always"
id="linearGradient3478">
<stop
style="stop-color:#a0a0a0;stop-opacity:1"
offset="0"
id="stop3480" />
<stop
style="stop-color:#c0c0c0;stop-opacity:1"
offset="1"
id="stop3482" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3478"
id="linearGradient3507"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(400.50003,-1.2e-6)"
x1="1214.5"
y1="234"
x2="1214.5"
y2="226" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3517" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4086"
id="linearGradient4164"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1600,6.7834472e-8)"
x1="1220.5"
y1="0"
x2="1220.5"
y2="40" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient4079"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.6699219e-5,-110)"
x1="400"
y1="80"
x2="400"
y2="100" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient4111"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,-800.00001,-250)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient4117"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,1200,-250)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient4119"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,1600,-250)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient2474"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.6699219e-5,-70.000001)"
x1="400"
y1="80"
x2="400"
y2="100" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3182"
id="linearGradient2476"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.6699219e-5,-110)"
x1="400"
y1="80"
x2="400"
y2="100" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient2502"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,2400,-250)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3157"
id="linearGradient2504"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.125,3200,-210)"
x1="800"
y1="1680"
x2="800"
y2="2000" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="4401.3318"
inkscape:cy="28.856906"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid3571"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata3514">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:url(#linearGradient4119);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3466"
width="400"
height="40"
x="3600"
y="-40"
transform="scale(1,-1)" />
<rect
y="-40"
x="2800"
height="40"
width="400"
id="rect3460"
style="opacity:1;fill:url(#linearGradient4117);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
transform="scale(1,-1)" />
<g
id="g4143"
transform="translate(1600,-1e-6)">
<path
id="path4145"
d="M 1213.75,17.5 L 1210.5,24 L 1208.5,24 L 1206.0625,20.5 L 1205,20.5 L 1208.5,25.5 L 1210.5,25.5 L 1214.5,17.5 L 1213.75,17.5 z"
style="opacity:1;fill:#ffffff;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="ccccccc"
id="path4147"
d="M 1205,19.000001 L 1207.5,19.000001 L 1209.5,22.000001 L 1212.5,16.000001 L 1214.5,16.000001 L 1210.5,24.000001 L 1208.5,24.000001"
style="opacity:1;fill:#000000;fill-opacity:0.37647059;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path4149"
d="M 1212.5,16 L 1209.5,22 L 1207.5,19 L 1205,19 L 1206.0625,20.5 L 1207.5,20.5 L 1209.5,23.5 L 1212.5,17.5 L 1213.75,17.5 L 1214.5,16 L 1212.5,16 z"
style="opacity:1;fill:#000000;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
id="g4151"
transform="translate(2000,-1e-6)">
<path
id="path4153"
d="M 1606.75,18.25 L 1606,19 L 1607.75,20.75 L 1608.5,20 L 1606.75,18.25 z M 1613.25,18.25 L 1611.5,20 L 1612.25,20.75 L 1614,19 L 1613.25,18.25 z M 1610,21.5 L 1607.5,24 L 1606.75,23.25 L 1606,24 L 1607.5,25.5 L 1610,23 L 1612.5,25.5 L 1614,24 L 1613.25,23.25 L 1612.5,24 L 1610,21.5 z"
style="opacity:1;fill:#ffffff;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path4155"
d="M 1607.5,16 L 1606,17.5 L 1608.5,20 L 1606,22.5 L 1607.5,24 L 1610,21.5 L 1612.5,24 L 1614,22.5 L 1611.5,20 L 1614,17.5 L 1612.5,16 L 1610,18.5 L 1607.5,16 z"
style="opacity:1;fill:#000000;fill-opacity:0.37647059;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path4157"
d="M 1607.5,16 L 1606,17.5 L 1606.5,18 L 1607.5,17 L 1610,19.5 L 1612.5,17 L 1613.5,18 L 1614,17.5 L 1612.5,16 L 1610,18.5 L 1607.5,16 z M 1608,20.5 L 1606,22.5 L 1606.5,23 L 1608.5,21 L 1608,20.5 z M 1612,20.5 L 1611.5,21 L 1613.5,23 L 1614,22.5 L 1612,20.5 z"
style="opacity:1;fill:#000000;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<rect
y="0"
x="0"
height="40"
width="400"
id="rect2386"
style="opacity:1;fill:url(#linearGradient3456);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:url(#linearGradient4111);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3166"
width="400"
height="40"
x="400"
y="-40"
transform="scale(1,-1)" />
<g
id="g4060"
transform="translate(800,0)">
<rect
ry="0"
y="1.717168e-14"
x="0"
height="40"
width="400"
id="rect2639"
style="opacity:1;fill:url(#linearGradient2641);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="opacity:1;fill:#000000;fill-opacity:0.25098039;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 9.5000167,17.000001 C 9.2230167,17.000001 9.0000167,17.223001 9.0000167,17.500001 L 9.0000167,20.000001 L 6.5000167,20.000001 C 6.2230167,20.000001 6.0000167,20.223001 6.0000167,20.500001 L 6.0000167,21.500001 C 6.0000167,21.777001 6.2230167,22.000001 6.5000167,22.000001 L 9.0000167,22.000001 L 9.0000167,24.500001 C 9.0000167,24.777001 9.2230167,25.000001 9.5000167,25.000001 L 10.500017,25.000001 C 10.777017,25.000001 11.000017,24.777001 11.000017,24.500001 L 11.000017,22.000001 L 13.500017,22.000001 C 13.777017,22.000001 14.000017,21.777001 14.000017,21.500001 L 14.000017,20.500001 C 14.000017,20.223001 13.777017,20.000001 13.500017,20.000001 L 11.000017,20.000001 L 11.000017,17.500001 C 11.000017,17.223001 10.777017,17.000001 10.500017,17.000001 L 9.5000167,17.000001 z"
id="path3428" />
<path
id="rect3421"
d="M 9.5000167,16.000001 C 9.2230167,16.000001 9.0000167,16.223001 9.0000167,16.500001 L 9.0000167,19.000001 L 6.5000167,19.000001 C 6.2230167,19.000001 6.0000167,19.223001 6.0000167,19.500001 L 6.0000167,20.500001 C 6.0000167,20.777001 6.2230167,21.000001 6.5000167,21.000001 L 9.0000167,21.000001 L 9.0000167,23.500001 C 9.0000167,23.777001 9.2230167,24.000001 9.5000167,24.000001 L 10.500017,24.000001 C 10.777017,24.000001 11.000017,23.777001 11.000017,23.500001 L 11.000017,21.000001 L 13.500017,21.000001 C 13.777017,21.000001 14.000017,20.777001 14.000017,20.500001 L 14.000017,19.500001 C 14.000017,19.223001 13.777017,19.000001 13.500017,19.000001 L 11.000017,19.000001 L 11.000017,16.500001 C 11.000017,16.223001 10.777017,16.000001 10.500017,16.000001 L 9.5000167,16.000001 z"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
y="4.3819111e-15"
x="20"
height="40"
width="1"
id="rect3432"
style="opacity:1;fill:#ffffff;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3434"
width="1"
height="40"
x="19"
y="4.3819111e-15" />
</g>
<rect
style="opacity:1;fill:url(#linearGradient3462);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3458"
width="400"
height="40"
x="2400"
y="0" />
<rect
y="0"
x="3200"
height="40"
width="400"
id="rect3470"
style="opacity:1;fill:url(#linearGradient3472);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect3573"
width="1"
height="40"
x="2419"
y="0" />
<rect
y="0"
x="2420"
height="40"
width="1"
id="rect3575"
style="opacity:1;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4094"
width="1"
height="40"
x="3219"
y="0" />
<rect
y="0"
x="3220"
height="40"
width="1"
id="rect4096"
style="opacity:1;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<g
id="g4067"
transform="translate(1200,-1e-6)">
<rect
style="opacity:1;fill:url(#linearGradient4079);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4069"
width="400"
height="40"
x="0"
y="-40"
ry="0"
transform="scale(1,-1)" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:0.25098039;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 406,20.5 L 406,21.5 C 405.99999,21.777 406.223,22 406.5,22 L 409,22 L 409,21 L 406.5,21 C 406.223,21 405.99999,20.777 406,20.5 z M 414,20.5 C 414,20.777 413.77699,21 413.5,21 L 411,21 L 411,22 L 413.5,22 C 413.77699,22 414,21.777 414,21.5 L 414,20.5 z M 409,23.5 L 409,24.5 C 408.99999,24.777 409.223,25 409.5,25 L 410.5,25 C 410.77699,25 411,24.777 411,24.5 L 411,23.5 C 411,23.777 410.77699,24 410.5,24 L 409.5,24 C 409.223,24 408.99999,23.777 409,23.5 z"
transform="translate(-400,1e-6)"
id="path4071" />
<path
style="opacity:1;fill:#000000;fill-opacity:0.37647059;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 9.5000167,16.000001 C 9.2230167,16.000001 9.0000167,16.223001 9.0000167,16.500001 L 9.0000167,19.000001 L 6.5000167,19.000001 C 6.2230167,19.000001 6.0000167,19.223001 6.0000167,19.500001 L 6.0000167,20.500001 C 6.0000167,20.777001 6.2230167,21.000001 6.5000167,21.000001 L 9.0000167,21.000001 L 9.0000167,23.500001 C 9.0000167,23.777001 9.2230167,24.000001 9.5000167,24.000001 L 10.500017,24.000001 C 10.777017,24.000001 11.000017,23.777001 11.000017,23.500001 L 11.000017,21.000001 L 13.500017,21.000001 C 13.777017,21.000001 14.000017,20.777001 14.000017,20.500001 L 14.000017,19.500001 C 14.000017,19.223001 13.777017,19.000001 13.500017,19.000001 L 11.000017,19.000001 L 11.000017,16.500001 C 11.000017,16.223001 10.777017,16.000001 10.500017,16.000001 L 9.5000167,16.000001 z"
id="path4073" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4075"
width="1"
height="40"
x="20"
y="4.3819111e-15" />
<rect
y="4.3819111e-15"
x="19"
height="40"
width="1"
id="rect4077"
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
id="g4133"
transform="translate(1200,-4.6325681e-8)">
<path
id="path4089"
d="M 1213.75,17.5 L 1210.5,24 L 1208.5,24 L 1206.0625,20.5 L 1205,20.5 L 1208.5,25.5 L 1210.5,25.5 L 1214.5,17.5 L 1213.75,17.5 z"
style="opacity:1;fill:#ffffff;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="ccccccc"
id="path3474"
d="M 1205,19.000001 L 1207.5,19.000001 L 1209.5,22.000001 L 1212.5,16.000001 L 1214.5,16.000001 L 1210.5,24.000001 L 1208.5,24.000001"
style="opacity:1;fill:#000000;fill-opacity:0.37647059;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path4094"
d="M 1212.5,16 L 1209.5,22 L 1207.5,19 L 1205,19 L 1206.0625,20.5 L 1207.5,20.5 L 1209.5,23.5 L 1212.5,17.5 L 1213.75,17.5 L 1214.5,16 L 1212.5,16 z"
style="opacity:1;fill:#000000;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
id="g4138"
transform="translate(1600,0)">
<path
id="path3499"
d="M 1606.75,18.25 L 1606,19 L 1607.75,20.75 L 1608.5,20 L 1606.75,18.25 z M 1613.25,18.25 L 1611.5,20 L 1612.25,20.75 L 1614,19 L 1613.25,18.25 z M 1610,21.5 L 1607.5,24 L 1606.75,23.25 L 1606,24 L 1607.5,25.5 L 1610,23 L 1612.5,25.5 L 1614,24 L 1613.25,23.25 L 1612.5,24 L 1610,21.5 z"
style="opacity:1;fill:#ffffff;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path3492"
d="M 1607.5,16 L 1606,17.5 L 1608.5,20 L 1606,22.5 L 1607.5,24 L 1610,21.5 L 1612.5,24 L 1614,22.5 L 1611.5,20 L 1614,17.5 L 1612.5,16 L 1610,18.5 L 1607.5,16 z"
style="opacity:1;fill:#000000;fill-opacity:0.37647059;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
id="path4106"
d="M 1607.5,16 L 1606,17.5 L 1606.5,18 L 1607.5,17 L 1610,19.5 L 1612.5,17 L 1613.5,18 L 1614,17.5 L 1612.5,16 L 1610,18.5 L 1607.5,16 z M 1608,20.5 L 1606,22.5 L 1606.5,23 L 1608.5,21 L 1608,20.5 z M 1612,20.5 L 1611.5,21 L 1613.5,23 L 1614,22.5 L 1612,20.5 z"
style="opacity:1;fill:#000000;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<rect
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4125"
width="1"
height="40"
x="2820"
y="0" />
<rect
y="0"
x="2821"
height="40"
width="1"
id="rect4127"
style="opacity:1;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4129"
width="1"
height="40"
x="3619"
y="0" />
<rect
y="0"
x="3620"
height="40"
width="1"
id="rect4131"
style="opacity:1;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<g
id="g2450"
transform="translate(1600,1e-6)">
<rect
ry="0"
y="1.717168e-14"
x="0"
height="40"
width="400"
id="rect2452"
style="opacity:1;fill:url(#linearGradient2474);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="opacity:1;fill:#000000;fill-opacity:0.25098039;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 6.5000167,20.000001 C 6.2230167,20.000001 6.0000167,20.223001 6.0000167,20.500001 L 6.0000167,21.500001 C 6.0000167,21.777001 6.2230167,22.000001 6.5000167,22.000001 L 13.500017,22.000001 C 13.777017,22.000001 14.000017,21.777001 14.000017,21.500001 L 14.000017,20.500001 C 14.000017,20.223001 13.777017,20.000001 13.500017,20.000001 L 6.5000167,20.000001 z"
id="path2454"
sodipodi:nodetypes="ccccccccc" />
<path
id="path2456"
d="M 6.5000167,19.000001 C 6.2230167,19.000001 6.0000167,19.223001 6.0000167,19.500001 L 6.0000167,20.500001 C 6.0000167,20.777001 6.2230167,21.000001 6.5000167,21.000001 L 13.500017,21.000001 C 13.777017,21.000001 14.000017,20.777001 14.000017,20.500001 L 14.000017,19.500001 C 14.000017,19.223001 13.777017,19.000001 13.500017,19.000001 L 6.5000167,19.000001 z"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:nodetypes="ccccccccc" />
<rect
y="4.3819111e-15"
x="20"
height="40"
width="1"
id="rect2458"
style="opacity:1;fill:#ffffff;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2460"
width="1"
height="40"
x="19"
y="4.3819111e-15" />
</g>
<g
id="g2462"
transform="translate(2000,0)">
<rect
style="opacity:1;fill:url(#linearGradient2476);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2464"
width="400"
height="40"
x="0"
y="-40"
ry="0"
transform="scale(1,-1)" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:0.25098039;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 406,20.5 L 406,21.5 C 405.99999,21.777 406.223,22 406.5,22 L 406.5,21 C 406.223,21 405.99999,20.777 406,20.5 z M 414,20.5 C 414,20.777 413.77699,21 413.5,21 L 413.5,22 C 413.77699,22 414,21.777 414,21.5 L 414,20.5 z"
transform="translate(-400,1e-6)"
id="path2466"
sodipodi:nodetypes="cccccccccc" />
<path
style="opacity:1;fill:#000000;fill-opacity:0.37647059;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 6.5000167,19.000001 C 6.2230167,19.000001 6.0000167,19.223001 6.0000167,19.500001 L 6.0000167,20.500001 C 6.0000167,20.777001 6.2230167,21.000001 6.5000167,21.000001 L 13.500017,21.000001 C 13.777017,21.000001 14.000017,20.777001 14.000017,20.500001 L 14.000017,19.500001 C 14.000017,19.223001 13.777017,19.000001 13.500017,19.000001 L 6.5000167,19.000001 z"
id="path2468"
sodipodi:nodetypes="ccccccccc" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2470"
width="1"
height="40"
x="20"
y="4.3819111e-15" />
<rect
y="4.3819111e-15"
x="19"
height="40"
width="1"
id="rect2472"
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<rect
transform="scale(1,-1)"
y="-40"
x="4400"
height="40"
width="400"
id="rect2474"
style="opacity:1;fill:url(#linearGradient2502);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<g
transform="translate(2800,-10e-7)"
id="g2476">
<path
style="opacity:1;fill:#ffffff;fill-opacity:0.25098039000000000;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000"
d="M 1606.75,18.25 L 1606,19 L 1607.75,20.75 L 1608.5,20 L 1606.75,18.25 z M 1613.25,18.25 L 1611.5,20 L 1612.25,20.75 L 1614,19 L 1613.25,18.25 z M 1610,21.5 L 1607.5,24 L 1606.75,23.25 L 1606,24 L 1607.5,25.5 L 1610,23 L 1612.5,25.5 L 1614,24 L 1613.25,23.25 L 1612.5,24 L 1610,21.5 z"
id="path2478" />
<path
style="opacity:1;fill:#000000;fill-opacity:0.37647058999999999;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000"
d="M 1607.5,16 L 1606,17.5 L 1608.5,20 L 1606,22.5 L 1607.5,24 L 1610,21.5 L 1612.5,24 L 1614,22.5 L 1611.5,20 L 1614,17.5 L 1612.5,16 L 1610,18.5 L 1607.5,16 z"
id="path2480" />
</g>
<rect
style="opacity:1;fill:url(#linearGradient2504);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2484"
width="400"
height="40"
x="4000"
y="0" />
<rect
y="0"
x="4019"
height="40"
width="1"
id="rect2486"
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2488"
width="1"
height="40"
x="4020"
y="0" />
<g
transform="translate(2400,0)"
id="g2490">
<path
style="opacity:1;fill:#000000;fill-opacity:0.25098039000000000;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;color:#000000"
d="M 1606.75,18.25 L 1606,19 L 1607.75,20.75 L 1608.5,20 L 1606.75,18.25 z M 1613.25,18.25 L 1611.5,20 L 1612.25,20.75 L 1614,19 L 1613.25,18.25 z M 1610,21.5 L 1607.5,24 L 1606.75,23.25 L 1606,24 L 1607.5,25.5 L 1610,23 L 1612.5,25.5 L 1614,24 L 1613.25,23.25 L 1612.5,24 L 1610,21.5 z"
id="path2492" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 1607.5,16 L 1606,17.5 L 1608.5,20 L 1606,22.5 L 1607.5,24 L 1610,21.5 L 1612.5,24 L 1614,22.5 L 1611.5,20 L 1614,17.5 L 1612.5,16 L 1610,18.5 L 1607.5,16 z"
id="path2494" />
</g>
<rect
y="0"
x="4419"
height="40"
width="1"
id="rect2498"
style="opacity:1;fill:#000000;fill-opacity:0.03137255;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2500"
width="1"
height="40"
x="4420"
y="0" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:0.25098039;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 4408.7353,-9.2203252 L 4408.7353,-8.2203252 C 4408.7352,-7.9433252 4408.9583,-7.7203252 4409.2353,-7.7203252 L 4411.7353,-7.7203252 L 4411.7353,-8.7203252 L 4409.2353,-8.7203252 C 4408.9583,-8.7203252 4408.7352,-8.9433252 4408.7353,-9.2203252 z M 4416.7353,-9.2203252 C 4416.7353,-8.9433252 4416.5122,-8.7203252 4416.2353,-8.7203252 L 4413.7353,-8.7203252 L 4413.7353,-7.7203252 L 4416.2353,-7.7203252 C 4416.5122,-7.7203252 4416.7353,-7.9433252 4416.7353,-8.2203252 L 4416.7353,-9.2203252 z M 4411.7353,-6.2203253 L 4411.7353,-5.2203253 C 4411.7352,-4.9433253 4411.9583,-4.7203253 4412.2353,-4.7203253 L 4413.2353,-4.7203253 C 4413.5122,-4.7203253 4413.7353,-4.9433253 4413.7353,-5.2203253 L 4413.7353,-6.2203253 C 4413.7353,-5.9433253 4413.5122,-5.7203253 4413.2353,-5.7203253 L 4412.2353,-5.7203253 C 4411.9583,-5.7203253 4411.7352,-5.9433253 4411.7353,-6.2203253 z"
id="path3276" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 594 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
id="svg2" inkscape:export-xdpi="90" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-ydpi="90" xmlns:svg="http://www.w3.org/2000/svg" sodipodi:version="0.32" sodipodi:docname="popup.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" inkscape:version="0.46" xmlns:cc="http://creativecommons.org/ns#" inkscape:export-filename="/home/devseed/d6/sites/all/themes/rubik/images/popup.png"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="260px" height="480px"
viewBox="0 0 260 480" enable-background="new 0 0 260 480" xml:space="preserve">
<defs>
<inkscape:perspective inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d">
</inkscape:perspective>
</defs>
<sodipodi:namedview inkscape:pageopacity="0.0" inkscape:zoom="14.551915" inkscape:cx="13.515505" inkscape:cy="13.816348" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageshadow="2">
<inkscape:grid type="xygrid" visible="true" enabled="true" id="grid3153"></inkscape:grid>
</sodipodi:namedview>
<defs>
<inkscape:perspective inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d">
</inkscape:perspective>
</defs>
<sodipodi:namedview inkscape:pageopacity="0.0" inkscape:zoom="14.551915" inkscape:cx="13.515505" inkscape:cy="13.816348" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" gridtolerance="10000" guidetolerance="10" objecttolerance="10" inkscape:pageshadow="2">
<inkscape:grid type="xygrid" visible="true" enabled="true" id="grid3153"></inkscape:grid>
</sodipodi:namedview>
<polygon opacity="0.7" fill="#1A1A1A" points="0,0 0,470.5 122,470.5 130,480 138,470.5 260,470.5 260,0 "/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="200"
height="20"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
inkscape:export-filename="/home/devseed/d7/profiles/reliefweb/themes/rubik/images/vtabs.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:docname="vtabs.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="133.90481"
inkscape:cy="10.209751"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true">
<inkscape:grid
type="xygrid"
id="grid2383"
visible="true"
enabled="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect2385"
width="200"
height="20"
x="0"
y="0" />
<rect
y="0"
x="199"
height="20"
width="1"
id="rect3157"
style="opacity:1;fill:#dddddd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,81 @@
/**
* Implementation of Drupal behavior.
*/
(function($) {
Drupal.behaviors.guibik = {};
Drupal.behaviors.guibik.attach = function(context) {
$('form.form-edit', '.views-edit-view').each(function(index) {
var $this = $(this),
_alt = false,
_submit = function(event){
// console.log('_submit');
event.preventDefault();
$('input[type=submit]#edit-actions-save', $this).focus();
$this.submit();
return false;
};
$(document).bind({
keydown: function(event) {
// console.log('keydown', event);
switch(event.keyCode){
case 18:
_alt = true;
break;
case 83: // s
if(_alt)
return _submit(event);
}
},
keyup: function(event) {
// console.log('keyup', event);
switch(event.keyCode){
case 18:
_alt = false;
break;
}
}
});
// $(document).keydown(function(event){
// console.log(event);
// });
});
};
Drupal.behaviors.init_theme = {};
Drupal.behaviors.init_theme.attach = function (context) {
// Growl-style system messages
$('#messages-and-help > div.messages:not(.processed)')
.addClass('processed')
.each(function() {
// If a message meets these criteria, we don't autoclose
// - contains a link
// - is an error or warning
// - contains a lenghthy amount of text
if ($('a', this).size() || $(this).is('.error') || $(this).is('.warning') || $(this).text().length > 100) {
$(this).prepend("<span class='close'>X</span>");
$('span.close', this).click(function() {
$(this).parent().slideUp('fast');
});
}
else {
// This essentially adds a 3 second pause before hiding the message.
$(this).animate({opacity:1}, 5000, 'linear', function() {
$(this).slideUp('fast');
});
}
});
};
})(jQuery);

View File

@@ -0,0 +1,129 @@
/** COMMONS */
.inline-block{
display:inline-block;
display:moz-inline-stack;
*display:inline;
*zoom:1;
vertical-align:top;
}
/** HTML5 */
.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) {
background: @color;
background: -webkit-gradient(linear,
left bottom,
left top,
color-stop(0, @start),
color-stop(1, @stop));
background: -ms-linear-gradient(bottom,
@start,
@stop);
background: -moz-linear-gradient(center bottom,
@start 0%,
@stop 100%);
}
.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255) {
background: @color;
background: -webkit-gradient(linear,
left bottom,
left top,
color-stop(0, rgb(@start,@start,@start)),
color-stop(1, rgb(@stop,@stop,@stop)));
background: -ms-linear-gradient(bottom,
rgb(@start,@start,@start) 0%,
rgb(@start,@start,@start) 100%);
background: -moz-linear-gradient(center bottom,
rgb(@start,@start,@start) 0%,
rgb(@stop,@stop,@stop) 100%);
}
.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE) {
border-top: solid 1px @top-color;
border-left: solid 1px @left-color;
border-right: solid 1px @right-color;
border-bottom: solid 1px @bottom-color;
}
.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {
-webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
-moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
}
.rounded(@radius: 2px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
-moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
.border-radius(@topleft: 0, @topright: 0, @bottomright: 0, @bottomleft: 0) {
-webkit-border-radius:@topleft @topright @bottomright @bottomleft;
-moz-border-radius:@topleft @topright @bottomright @bottomleft;
border-radius:@topleft @topright @bottomright @bottomleft;
-moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
.opacity(@opacity: 0.5) {
-moz-opacity: @opacity;
-khtml-opacity: @opacity;
-webkit-opacity: @opacity;
opacity: @opacity;
}
.transition-duration(@duration: 0.2s) {
-moz-transition-duration: @duration;
-webkit-transition-duration: @duration;
transition-duration: @duration;
}
.rotation(@deg:5deg){
-webkit-transform: rotate(@deg);
-moz-transform: rotate(@deg);
transform: rotate(@deg);
}
.scale(@ratio:1.5){
-webkit-transform:scale(@ratio);
-moz-transform:scale(@ratio);
transform:scale(@ratio);
}
.transition(@duration:0.2s, @ease:ease-out) {
-webkit-transition: all @duration @ease;
-moz-transition: all @duration @ease;
transition: all @duration @ease;
}
.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) {
-webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
-moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
}
.box-shadow(@arguments) {
-webkit-box-shadow: @arguments;
-moz-box-shadow: @arguments;
box-shadow: @arguments;
}
.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) {
-moz-column-width: @colwidth;
-moz-column-count: @colcount;
-moz-column-gap: @colgap;
-moz-column-rule-color: @columnRuleColor;
-moz-column-rule-style: @columnRuleStyle;
-moz-column-rule-width: @columnRuleWidth;
-webkit-column-width: @colwidth;
-webkit-column-count: @colcount;
-webkit-column-gap: @colgap;
-webkit-column-rule-color: @columnRuleColor;
-webkit-column-rule-style: @columnRuleStyle;
-webkit-column-rule-width: @columnRuleWidth;
column-width: @colwidth;
column-count: @colcount;
column-gap: @colgap;
column-rule-color: @columnRuleColor;
column-rule-style: @columnRuleStyle;
column-rule-width: @columnRuleWidth;
}
.translate(@x:0, @y:0) {
-moz-transform: translate(@x, @y);
-webkit-transform: translate(@x, @y);
-o-transform: translate(@x, @y);
-ms-transform: translate(@x, @y);
transform: translate(@x, @y);
}

View File

@@ -0,0 +1,632 @@
@import 'elements.less';
//@import 'elements.less';
@import "gui.less";
/** table */
@grey:#E0E0E0;
@greylite:#F4F4F4;
/** GENERAL FORM */
a{color:#0092D2;}
table th{background-color: @grey;}
.block,
.item-list,
.help-items ul,
.form-item,
.confirmation ul,
.admin-list,
.node-type-list,
.admin-panel {
border-width:0px;
border-style:solid;
border-color:#fff;
}
.text-format-wrapper .form-item {
background:#F4F4F4;
margin:0px 0px 10px;
border-width:0;
border-style:solid;
border-color:#ddd;
padding: 9px;
}
.form-item label {
color:#1A1A1A;
font-weight:normal;
font-size:12px;
text-transform: none;
}
input.form-autocomplete,
input.form-text,
textarea.form-textarea,
select.form-select {
padding:3px;
border-width:1px;
border-style:solid;
border-color:#BFBFBF;
background:#fff;
color:#1A1A1A;
max-width:100%;
}
span.autocomplete-deluxe-button{top:0.25em;}
.fieldset {
&.titled{margin:20px 0px 10px!important;}
display:block;
position:relative;
min-height:28px;
border: 0 solid #eee;
border-top:1px solid #4C4C4C;
legend{
margin-top:-0.9em;
}
&.collapsible legend{
a.fieldset-title{
padding-right:15px;
&:after{
content:"-";
padding:0 3px 2px;
margin:-5px 0 0 10px;
.rounded();
color:#000;
background-color: #FFF;
/* font-size:9px;*/
line-height:0;
font-weight:bold;
}
&:hover{color:#fff; font-weight:bold;}
}
}
&.collapsed legend{
a.fieldset-title:after{
content:"+";
/* padding:2px 5px 3px;
.rounded();
color:#fff;
background-color: #1A1A1A;
*/ }
}
}
.tabledrag-processed{
border:0 solid #fff;
padding-bottom:2em;
/* border-top:1px solid #4C4C4C;*/
thead{
background-color: transparent;
label{color:inherit; text-shadow: none; padding:0 0 0 0.5em;}
th{background-color: transparent; text-transform:uppercase; font-weight:bold;}
}
}
.item-list h3,
.block .block-title,
.fieldset-title,
.collapsible .fieldset-legend a{
display:inline-block; width:auto;
.rounded();
font-size:12px;
font-weight:normal;
text-transform: uppercase;
margin:0px;
padding:2px 9px 3px;
color:#fff;
background:#666;
}
.block .block-content,
.container-inline .fieldset-content,
.fieldset-content {
padding:10px 9px 9px;
background:#F4F4F4;
}
/** popup description */
.page-content .form-item .description {
color:#fff;
border-top:1px solid #E0E0E0;
/* background: #1A1A1A url() no-repeat scroll top left;*/
background:url(../images/popup.png) 50% 100% no-repeat;
a{text-decoration: underline;}
}
li{list-style: none inside url();}
/** NODE FORM */
#user-profile-form, .node-form{
label{text-transform: uppercase; font-size:1em;}
.fieldset-title,
.vertical-tab-button strong, .horizontal-tab-button strong{text-transform: uppercase; font-size:0.8em; font-weight:bold;}
div.form-type-checkboxes{
&>label, &>div.form-checkboxes{.inlineblock();}
}
.form-item-language, .form-type-select{
&>label, &>select{.inlineblock();}
&>label{width:35%;}
&>select{max-width:60%;}
}
.form-type-textfield{
&>label, &>input.form-text{.inlineblock(); margin:0; vertical-align:middle;}
&>label{width:35%;}
&>input.form-text{max-width:60%;}
}
.form-type-link-field{
&>label, &>input.form-text{.inlineblock(); margin:0;}
&>label{width:35%;}
div{.inlineblock(); margin:0; width:100%;}
&>div{width:60%;}
input.form-text{max-width:100%;}
}
.form-phone-number{
.form-item{.inlineblock();}
input.form-text{width:100%;}
}
.autocomplete-deluxe-button{
margin-top:-3px;
}
.addressfield-container-inline{
&>div.form-item{.inlineblock(); margin:0; width:30%;}
}
fieldset.filter-wrapper{display:none;}
input.fid.form-text{display:none;}
.form-region-right{
position:relative;
fieldset.form-wrapper{max-width:100%; padding:0; margin:0;}
.fieldset-wrapper{padding:0;}
input.form-text{width:100%;}
}
tr.draggable{
fieldset{
legend{display:none;}
.fieldset-content{
padding:0;
.date-padding{padding:0;}
}
}
}
.field-widget-term-reference-tree .form-item.form-type-checkbox-tree{
display: block;
.term-reference-tree{
&>ul.term-reference-tree-level{.inlineblock(); padding:0 2em 0 0; min-width:30%;}
.term-reference-track-list-container{.inlineblock(); border-left:1px solid #848484; padding:0 0 2em 1em;}
}
}
}
/** VERTICAL TABS */
.vertical-tabs {
background:@greylite;
border:1px solid #BFBFBF;
margin:0px 0px 10px;
position:relative;
}
.vertical-tabs .fieldset-content,
.vertical-tabs fieldset.titled .fieldset-content {
border:0px;
padding:10px;
}
.vertical-tabs .fieldset-content .fieldset-content {
margin-top: 20px;
}
.vertical-tabs-list li a {
display:block;
text-shadow:#fff 0px 1px 0px;
padding:5px 10px 4px 10px;
border-bottom:1px solid #BFBFBF;
border-right:1px solid #BFBFBF;
color:#494949;
background: @grey;
}
.vertical-tabs-list li.last a{
border-bottom:0px solid #BFBFBF
}
.vertical-tabs-list .selected a ,
.vertical-tabs-list li:hover a {
background:@greylite;
color:#1A1A1A;
}
.vertical-tabs-list .selected a{
border-right:0 solid @greylite;
}
.vertical-tabs-list .summary { font-size:11px; }
.page-admin table,
.update tr.warning .version-recommended,
.update tr.error .version-recommended{
background-color: transparent;
border:0px solid transparent;
tr{
border:0px solid transparent;
}
}
.page-admin table tr{
&.even, &.odd{
td, h3 {background-color: transparent;}
&:hover{ background: #D4EFEE;}
&.ok{
background-color: #d1f2a3;
color:#000;
}
&.warning{
background-color: #e9e2a6;
color:#000;
}
&.error{
background-color: #ffc4be;
color:#000;
}
}
&.even{
background: #EFEFEF;
}
&.ok, &.ok:hover{
color: #468847;//#036;
background-color: #dff0d8;//#bdf;
// td{
// border-bottom:3px solid #d6e9c6;//#ace;
// }
}
&.warning, &.warning:hover{
color: #c09853;//#840;
background-color: #fcf8e3;//#fe6;
// td{
// border-bottom: 3px solid #fbeed5;//#ed5;
// }
}
&.error, &.error:hover{
color: #b94a48;//#fff;
background-color: #f2dede;//#e63;
// td{
// border-bottom: 3px solid #eed3d7;
// }
}
// td{ border:0 solid #fff;}
}
.admin-block-description,
.help-items ul li,
.confirmation ul li,
.item-list ul li,
.prose .item-list li,
.menu li {
border-bottom:0 solid #f4f4f4;
}
form .form-actions {
background:#eee;
border:0 solid #ddd;
padding:9px;
}
/** boutons */
input.teaser-button,
input.form-submit,
.node-edit, .button, .node-delete{
cursor:pointer;
padding:0.3em 0.9em;
color:#333;
text-align:center;
font-size:12px;
font-weight:normal;
border-width:1px;
border-style:solid;
border-color:#ddd #ddd #ccc;
background:#bdf url();
.rounded();
&.field-add-more-submit{
padding:0.1em 0.4em 0;
font-size:10px;
}
}
.node-edit, .button, .node-delete{font-size:10px;padding:0.1em 0.6em;}
input.form-submit:hover,
.node-edit:hover, .button:hover, .node-delete:hover{
border-color:#ddd #ddd #ccc;
-webkit-box-shadow:#ace 0px 0px 0px;
color:#bdf;
background-color: #848484;
}
input.button-yes:not(.field-add-more-submit), .node-edit{
background-color: #CCFF2F;
&:hover{
color:#CCFF2F;
}
}
input.button-no, .node-delete{
background-color: #EA4B4A;
&:hover{
color:#EA4B4A;
}
}
/** admin module */
/**
*
* /!\ CUSTOM HERE /!\
*
* Provide better display for admin menu ==============================
*/
body.admin-vertical #admin-menu{background:#222;background-image:none;}
body.admin-vertical #admin-menu-wrapper{margin-left:35px!important;}
body.admin-vertical.admin-expanded #admin-menu-wrapper{border-left:1px solid #323232;margin-left:260px!important;}
#admin-toolbar{z-index:1000!important;}
/* --- */
/**
* VIEW
*/
#views-ui-edit-form{
div.changed {
background-color: #FFF98E;
}
.views-ui-display-tab-bucket h3{
font-weight:bold;
background-color: #D8D8D8;
}
.defaulted, .views-ui-display-tab-bucket .views-display-setting.even, .views-ui-display-tab-bucket .views-display-setting.odd{ //:not(.overriden)
color: #666;
background-color: #E0E0E0;
font-style: italic;
/* font-weight:bold;*/
a{color: #3F80B3}
}
.views-ui-display-tab-bucket.overridden .views-display-setting, .views-ui-display-tab-bucket.overridden .views-display-setting,
.views-display-setting.overridden{ //:not(.overriden)
&, &.even, &.odd{
color: #7F7F7F;
background-color: #F9F9F9;
font-style: normal;
/* font-weight:bold;*/
a{color: #3188D1;}
}
}
}
.view{
.view-header{
padding:0.5em; margin:0 0 1em 0;
border: 1px solid #CCC; .border-radius(5px,5px,5px,5px);
font-weight:bold;
}
.pager{
padding:1em 0; margin:0; text-align: right; height:auto;
ul{
.inlineblock(); padding:0;
li{
height:20px;
a, span{padding:1px 10px 2px;}
}
}
}
// EXPOSED
.view-filters{
padding:1em 0; margin:0 0 1em 0;
border: 1px solid #CCC; .border-radius(5px,5px,5px,5px);
&>span.title, &>form{.inlineblock();width:auto;position:relative;vertical-align: top;}
&>span.title{padding:0.7em 1em;}
fieldset{
.inlineblock(); padding:0 1em;
.fieldset-content{padding:0;}
legend{display:none;}
}
/* .views-exposed-form{ */
label{font-weight:normal; font-size:0.75em;}
.form-item{.inlineblock(); padding:0 0.5em 0 0;
select, input{font-size:0.8em;}
}
/* }*/
}
// VBO
fieldset#edit-select{
padding:1em 0; margin:0 0 1em 0;
border: 1px solid #CCC; .border-radius(5px,5px,5px,5px);
legend, .fieldset-content{.inlineblock();}
legend{
width:auto;
*{background-color: transparent;}
}
.fieldset-content{
padding:0;
select, input{font-size:0.8em;}
}
}
.vbo-fieldset-select-all{
width:50%; text-align:left;
.form-item{.inlineblock();vertical-align:top;}
em{padding:0 1em;}
}
}
/** media browser */
.view.inline-block-list{
.views-row {
.inlineblock(); vertical-align:top;
padding: 5px; margin:5px; width:250px; min-height:150px; background-color: #E3E3E3;
.border-radius(5px,5px,5px,5px); border: 1px solid #ddd;
.drop-shadow;
.float-left{
float:left;
&>div{margin:0 10px 10px 0;}
}
}
}
*:focus{
border: 1px solid #BDF!important;
}
/* Contain floats: h5bp.com/q */
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
.path-admin-content-nodes span.icon { background-position:0px -30px; }
/** admin view */
.custom-admin{
table{
caption{ text-align: left; padding:2em 0 0 0; font-weight:bold;}
th{line-height:1; background-color: @greylite!important;}
td{padding-top:1em;padding-bottom:1em;}
td.views-field-field-media{
width:100px;
img{max-width:100%; height:auto;}
}
&.has-caption{
th, td.views-field-field-media, td.views-field-views-bulk-operations{
background: @grey!important;
}
}
td.views-field-title{ width:350px; }
a.node-title-link{font-size:1.1em; padding:0 0 0.3em; display:inline-block;}
td.views-field-field-people{width:100px;}
}
}
#modalContent{
}
#modalContent div.ctools-modal-content{
padding:5px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 1 solid #999;
}
#modalContent div.ctools-modal-content .modal-header,
#modalContent div.ctools-modal-content .modal-header a,
#modalContent div.ctools-modal-content .modal-header span{
background-color: transparent; color:#000!important;
}
/** Messages. */
.messages(){
padding: 9px;
margin: 0.5em 0 0;
color: #3a87ad;//#360;
background: #d9edf7;//#cf8;
border: 1px solid #bce8f1;//#be7;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
&.warning {
color: #c09853;//#840;
background-color: #fcf8e3;//#fe6;
border-color: #fbeed5;//#ed5;
}
&.error {
color: #b94a48;//#fff;
background-color: #f2dede;//#e63;
border-color: #eed3d7;//#d52;
}
&.status {
color: #468847;//#036;
background-color: #dff0d8;//#bdf;
border-color:#d6e9c6;//#ace;
}
}
div.messages {
.messages();
}
#better-messages-wrapper{
background-color: rgba(255,255,255,0.6); .p(10px); .rounded(5px); .drop-shadow(0, 0, 6px, 0.4);
#better-messages-default{
.messages-label{display:none;}
div.messages{
.messages(); margin:0 0 10px 0;
}
.footer{
border:none; padding:0; margin:0;
a.message-close{
background: #fff url('../images/close.png') no-repeat center center;
width:15px; height:15px; .rounded(3px); display:block;
}
}
}
}

View File

@@ -0,0 +1,635 @@
//@import 'elements.less';
@import "gui.less";
/** table */
@grey:#E0E0E0;
@greylite:#F4F4F4;
/** GENERAL FORM */
a{color:#0092D2;}
table th{background-color: @grey;}
.block,
.item-list,
.help-items ul,
.form-item,
.confirmation ul,
.admin-list,
.node-type-list,
.admin-panel {
border-width:0px;
border-style:solid;
border-color:#fff;
}
.text-format-wrapper .form-item {
background:#F4F4F4;
margin:0px 0px 10px;
border-width:0;
border-style:solid;
border-color:#ddd;
padding: 9px;
}
.form-item label {
color:#1A1A1A;
font-weight:normal;
font-size:12px;
text-transform: none;
}
input.form-autocomplete,
input.form-text,
textarea.form-textarea,
select.form-select {
padding:3px;
border-width:1px;
border-style:solid;
border-color:#BFBFBF;
background:#fff;
color:#1A1A1A;
max-width:100%;
}
span.autocomplete-deluxe-button{top:0.25em;}
.fieldset {
&.titled{margin:20px 0px 10px!important;}
display:block;
position:relative;
min-height:28px;
border: 0 solid #eee;
border-top:1px solid #4C4C4C;
legend{
margin-top:-0.9em;
}
&.collapsible legend{
a.fieldset-title{
padding-right:15px;
&:after{
content:"-";
padding:0 3px 2px;
margin:-5px 0 0 10px;
.rounded();
color:#000;
background-color: #FFF;
/* font-size:9px;*/
line-height:0;
font-weight:bold;
}
&:hover{color:#fff; font-weight:bold;}
}
}
&.collapsed legend{
a.fieldset-title:after{
content:"+";
/* padding:2px 5px 3px;
.rounded();
color:#fff;
background-color: #1A1A1A;
*/ }
}
}
.tabledrag-processed{
border:0 solid #fff;
padding-bottom:2em;
/* border-top:1px solid #4C4C4C;*/
thead{
background-color: transparent;
label{color:inherit; text-shadow: none; padding:0 0 0 0.5em;}
th{background-color: transparent; text-transform:uppercase; font-weight:bold;}
}
}
.item-list h3,
.block .block-title,
.fieldset-title,
.collapsible .fieldset-legend a{
display:inline-block; width:auto;
.rounded();
font-size:12px;
font-weight:normal;
text-transform: uppercase;
margin:0px;
padding:2px 9px 3px;
color:#fff;
background:#666;
}
.block .block-content,
.container-inline .fieldset-content,
.fieldset-content {
padding:10px 9px 9px;
background:#F4F4F4;
}
/** popup description */
.page-content .form-item .description {
color:#fff;
border-top:1px solid #E0E0E0;
/* background: #1A1A1A url() no-repeat scroll top left;*/
background:url(../images/popup.png) 50% 100% no-repeat;
a{text-decoration: underline;}
}
li{list-style: none inside url();}
/** NODE FORM */
#user-profile-form, .node-form{
label{text-transform: uppercase; font-size:1em;}
.fieldset-title,
.vertical-tab-button strong, .horizontal-tab-button strong{text-transform: uppercase; font-size:0.8em; font-weight:bold;}
div.form-type-checkboxes{
&>label, &>div.form-checkboxes{.inlineblock();}
}
.form-item-language, .form-type-select{
&>label, &>select{.inlineblock();}
&>label{width:35%;}
&>select{max-width:60%;}
}
.form-type-textfield{
&>label, &>input.form-text{.inlineblock(); margin:0; vertical-align:middle;}
&>label{width:35%;}
&>input.form-text{max-width:60%;}
}
.form-type-link-field{
&>label, &>input.form-text{.inlineblock(); margin:0;}
&>label{width:35%;}
div{.inlineblock(); margin:0; width:100%;}
&>div{width:60%;}
input.form-text{max-width:100%;}
}
.form-phone-number{
.form-item{.inlineblock();}
input.form-text{width:100%;}
}
.autocomplete-deluxe-button{
margin-top:-3px;
}
.addressfield-container-inline{
&>div.form-item{.inlineblock(); margin:0; width:30%;}
}
fieldset.filter-wrapper{display:none;}
input.fid.form-text{display:none;}
.form-region-right{
position:relative;
fieldset.form-wrapper{max-width:100%; padding:0; margin:0;}
.fieldset-wrapper{padding:0;}
input.form-text{width:100%;}
}
tr.draggable{
fieldset{
legend{display:none;}
.fieldset-content{
padding:0;
.date-padding{padding:0;}
}
}
}
.field-widget-term-reference-tree .form-item.form-type-checkbox-tree{
display: block;
.term-reference-tree{
&>ul.term-reference-tree-level{.inlineblock(); padding:0 2em 0 0; min-width:30%;}
.term-reference-track-list-container{.inlineblock(); border-left:1px solid #848484; padding:0 0 2em 1em;}
}
}
}
/** VERTICAL TABS */
.vertical-tabs {
background:@greylite;
border:1px solid #BFBFBF;
margin:0px 0px 10px;
position:relative;
}
.vertical-tabs .fieldset-content,
.vertical-tabs fieldset.titled .fieldset-content {
border:0px;
padding:10px;
}
.vertical-tabs .fieldset-content .fieldset-content {
margin-top: 20px;
}
.vertical-tabs-list li a {
display:block;
text-shadow:#fff 0px 1px 0px;
padding:5px 10px 4px 10px;
border-bottom:1px solid #BFBFBF;
border-right:1px solid #BFBFBF;
color:#494949;
background: @grey;
}
.vertical-tabs-list li.last a{
border-bottom:0px solid #BFBFBF
}
.vertical-tabs-list .selected a ,
.vertical-tabs-list li:hover a {
background:@greylite;
color:#1A1A1A;
}
.vertical-tabs-list .selected a{
border-right:0 solid @greylite;
}
.vertical-tabs-list .summary { font-size:11px; }
<<<<<<< HEAD
.page-admin table,
.update tr.warning .version-recommended,
.update tr.error .version-recommended{
background-color: transparent;
border:0px solid transparent;
tr{
border:0px solid transparent;
}
}
.page-admin table tr.even{
background: #EFEFEF;
}
=======
>>>>>>> d3b84b77338e29b835ff6348fb9f12a810dea950
.page-admin table tr{
&.even, &.odd{
td, h3 {background-color: transparent;}
&:hover{ background: #D4EFEE;}
&.ok{
background-color: #d1f2a3;
}
&.warning{
background-color: #e9e2a6;
}
&.error{
background-color: #ffc4be;
}
}
&.even{
background: #EFEFEF;
}
&.ok, &.ok:hover{
color: #468847;//#036;
background-color: #dff0d8;//#bdf;
// td{
// border-bottom:3px solid #d6e9c6;//#ace;
// }
}
&.warning, &.warning:hover{
color: #c09853;//#840;
background-color: #fcf8e3;//#fe6;
// td{
// border-bottom: 3px solid #fbeed5;//#ed5;
// }
}
&.error, &.error:hover{
color: #b94a48;//#fff;
background-color: #f2dede;//#e63;
// td{
// border-bottom: 3px solid #eed3d7;
// }
}
// td{ border:0 solid #fff;}
}
.admin-block-description,
.help-items ul li,
.confirmation ul li,
.item-list ul li,
.prose .item-list li,
.menu li {
border-bottom:0 solid #f4f4f4;
}
form .form-actions {
background:#eee;
border:0 solid #ddd;
padding:9px;
}
/** boutons */
input.teaser-button,
input.form-submit,
.node-edit, .button, .node-delete{
cursor:pointer;
padding:0.3em 0.9em;
color:#333;
text-align:center;
font-size:12px;
font-weight:normal;
border-width:1px;
border-style:solid;
border-color:#ddd #ddd #ccc;
background:#bdf url();
.rounded();
&.field-add-more-submit{
padding:0.1em 0.4em 0;
font-size:10px;
}
}
.node-edit, .button, .node-delete{font-size:10px;padding:0.1em 0.6em;}
input.form-submit:hover,
.node-edit:hover, .button:hover, .node-delete:hover{
border-color:#ddd #ddd #ccc;
-webkit-box-shadow:#ace 0px 0px 0px;
color:#bdf;
background-color: #848484;
}
input.button-yes:not(.field-add-more-submit), .node-edit{
background-color: #CCFF2F;
&:hover{
color:#CCFF2F;
}
}
input.button-no, .node-delete{
background-color: #EA4B4A;
&:hover{
color:#EA4B4A;
}
}
/** admin module */
/**
*
* /!\ CUSTOM HERE /!\
*
* Provide better display for admin menu ==============================
*/
body.admin-vertical #admin-menu{background:#222;background-image:none;}
body.admin-vertical #admin-menu-wrapper{margin-left:35px!important;}
body.admin-vertical.admin-expanded #admin-menu-wrapper{border-left:1px solid #323232;margin-left:260px!important;}
#admin-toolbar{z-index:1000!important;}
/* --- */
/**
* VIEW
*/
#views-ui-edit-form{
div.changed {
background-color: #FFF98E;
}
.views-ui-display-tab-bucket h3{
font-weight:bold;
background-color: #D8D8D8;
}
.defaulted, .views-ui-display-tab-bucket .views-display-setting.even, .views-ui-display-tab-bucket .views-display-setting.odd{ //:not(.overriden)
color: #666;
background-color: #E0E0E0;
font-style: italic;
/* font-weight:bold;*/
a{color: #3F80B3}
}
.views-ui-display-tab-bucket.overridden .views-display-setting, .views-ui-display-tab-bucket.overridden .views-display-setting,
.views-display-setting.overridden{ //:not(.overriden)
&, &.even, &.odd{
color: #7F7F7F;
background-color: #F9F9F9;
font-style: normal;
/* font-weight:bold;*/
a{color: #3188D1;}
}
}
}
.view{
.view-header{
padding:0.5em; margin:0 0 1em 0;
border: 1px solid #CCC; .border-radius(5px,5px,5px,5px);
font-weight:bold;
}
.pager{
padding:1em 0; margin:0; text-align: right; height:auto;
ul{
.inlineblock(); padding:0;
li{
height:20px;
a, span{padding:1px 10px 2px;}
}
}
}
// EXPOSED
.view-filters{
padding:1em 0; margin:0 0 1em 0;
border: 1px solid #CCC; .border-radius(5px,5px,5px,5px);
&>span.title, &>form{.inlineblock();width:auto;position:relative;vertical-align: top;}
&>span.title{padding:0.7em 1em;}
fieldset{
.inlineblock(); padding:0 1em;
.fieldset-content{padding:0;}
legend{display:none;}
}
/* .views-exposed-form{ */
label{font-weight:normal; font-size:0.75em;}
.form-item{.inlineblock(); padding:0 0.5em 0 0;
select, input{font-size:0.8em;}
}
/* }*/
}
// VBO
fieldset#edit-select{
padding:1em 0; margin:0 0 1em 0;
border: 1px solid #CCC; .border-radius(5px,5px,5px,5px);
legend, .fieldset-content{.inlineblock();}
legend{
width:auto;
*{background-color: transparent;}
}
.fieldset-content{
padding:0;
select, input{font-size:0.8em;}
}
}
.vbo-fieldset-select-all{
width:50%; text-align:left;
.form-item{.inlineblock();vertical-align:top;}
em{padding:0 1em;}
}
}
/** media browser */
.view.inline-block-list{
.views-row {
.inlineblock(); vertical-align:top;
padding: 5px; margin:5px; width:250px; min-height:150px; background-color: #E3E3E3;
.border-radius(5px,5px,5px,5px); border: 1px solid #ddd;
.drop-shadow;
.float-left{
float:left;
&>div{margin:0 10px 10px 0;}
}
}
}
*:focus{
border: 1px solid #BDF!important;
}
/* Contain floats: h5bp.com/q */
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
.path-admin-content-nodes span.icon { background-position:0px -30px; }
/** admin view */
.custom-admin{
table{
caption{ text-align: left; padding:2em 0 0 0; font-weight:bold;}
th{line-height:1; background-color: @greylite!important;}
td{padding-top:1em;padding-bottom:1em;}
td.views-field-field-media{
width:100px;
img{max-width:100%; height:auto;}
}
&.has-caption{
th, td.views-field-field-media, td.views-field-views-bulk-operations{
background: @grey!important;
}
}
td.views-field-title{ width:350px; }
a.node-title-link{font-size:1.1em; padding:0 0 0.3em; display:inline-block;}
td.views-field-field-people{width:100px;}
}
}
#modalContent{
}
#modalContent div.ctools-modal-content{
padding:5px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 1 solid #999;
}
#modalContent div.ctools-modal-content .modal-header,
#modalContent div.ctools-modal-content .modal-header a,
#modalContent div.ctools-modal-content .modal-header span{
background-color: transparent; color:#000!important;
}
/** Messages. */
.messages(){
padding: 9px;
margin: 0.5em 0 0;
color: #3a87ad;//#360;
background: #d9edf7;//#cf8;
border: 1px solid #bce8f1;//#be7;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
&.warning {
color: #c09853;//#840;
background-color: #fcf8e3;//#fe6;
border-color: #fbeed5;//#ed5;
}
&.error {
color: #b94a48;//#fff;
background-color: #f2dede;//#e63;
border-color: #eed3d7;//#d52;
}
&.status {
color: #468847;//#036;
background-color: #dff0d8;//#bdf;
border-color:#d6e9c6;//#ace;
}
}
div.messages {
.messages();
}
#better-messages-wrapper{
background-color: rgba(255,255,255,0.6); .p(10px); .rounded(5px); .drop-shadow(0, 0, 6px, 0.4);
#better-messages-default{
.messages-label{display:none;}
div.messages{
.messages(); margin:0 0 10px 0;
}
.footer{
border:none; padding:0; margin:0;
a.message-close{
background: #fff url('../images/close.png') no-repeat center center;
width:15px; height:15px; .rounded(3px); display:block;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,225 @@
<?php
/**
* Implementation of hook_theme().
*/
function guibik_theme() {
$items = array();
// Content theming.
$items['help'] =
$items['node'] =
$items['comment'] =
$items['comment_wrapper'] = array(
'path' => drupal_get_path('theme', 'rubik') .'/templates',
'template' => 'object',
);
$items['node']['template'] = 'node';
// Help pages really need help. See preprocess_page().
$items['help_page'] = array(
'variables' => array('content' => array()),
'path' => drupal_get_path('theme', 'rubik') .'/templates',
'template' => 'object',
'preprocess functions' => array(
'template_preprocess',
'rubik_preprocess_help_page',
),
'process functions' => array('template_process'),
);
// Form layout: default (2 column).
$items['block_add_block_form'] =
$items['block_admin_configure'] =
$items['comment_form'] =
$items['contact_admin_edit'] =
$items['contact_mail_page'] =
$items['contact_mail_user'] =
$items['filter_admin_format_form'] =
$items['forum_form'] =
$items['locale_languages_edit_form'] =
$items['menu_edit_menu'] =
$items['menu_edit_item'] =
$items['node_type_form'] =
$items['path_admin_form'] =
$items['system_settings_form'] =
$items['system_themes_form'] =
$items['system_modules'] =
$items['system_actions_configure'] =
$items['taxonomy_form_term'] =
$items['taxonomy_form_vocabulary'] =
$items['user_profile_form'] =
$items['user_admin_access_add_form'] = array(
'render element' => 'form',
'path' => drupal_get_path('theme', 'guibik') .'/templates',
'template' => 'form-default',
'preprocess functions' => array(
'rubik_preprocess_form_buttons',
),
);
// These forms require additional massaging.
$items['confirm_form'] = array(
'render element' => 'form',
'path' => drupal_get_path('theme', 'rubik') .'/templates',
'template' => 'form-simple',
'preprocess functions' => array(
'rubik_preprocess_form_confirm'
),
);
$items['node_form'] = array(
'render element' => 'form',
'path' => drupal_get_path('theme', 'guibik') .'/templates',
'template' => 'form-default',
'preprocess functions' => array(
'rubik_preprocess_form_buttons',
'rubik_preprocess_form_node',
),
);
return $items;
}
/**
* Preprocessor for theme('page').
*/
function guibik_preprocess_page(&$vars) {
// Show a warning if base theme is not present.
if (!function_exists('rubik_theme') && user_access('administer site configuration')) {
drupal_set_message(t('The Guibik theme requires the !rubik base theme in order to work properly.', array('!rubik' => l('Rubik', 'http://code.developmentseed.org/tao'))), 'warning');
}
// Process local tasks. Only do this processing if the current theme is
// indeed Rubik. Subthemes must reimplement this call.
global $theme;
if ($theme === 'guibik')
_rubik_local_tasks($vars);
}
function guibik_preprocess_html(&$vars){
$heads['icon'] = array(
'#tag' => 'link',
'#attributes' => array(
'href' => base_path() . path_to_theme() .'/icon.png',
'rel' => 'shortcut icon',
'type' => 'image/png',
),
);
$heads['apple-touch-icon'] = array(
'#tag' => 'link',
'#attributes' => array(
'href' => base_path() . path_to_theme() .'/apple-touch-icon.png',
'rel' => 'apple-touch-icon',
),
);
foreach ($heads as $type=>$head)
drupal_add_html_head($head, $type);
}
function guibik_preprocess_views_view_table(&$vars){
if($vars['title'] != ''){
$vars['classes_array'][] = 'has-caption';
}
// dsm($vars);
}
/**
* Implements theme_form_element().
*/
function OUT_guibik_form_element($variables) {
$element = &$variables['element'];
// This is also used in the installer, pre-database setup.
$t = get_t();
//dsm($element);
// This function is invoked as theme wrapper, but the rendered form element
// may not necessarily have been processed by form_builder().
$element += array(
'#title_display' => 'before',
);
// Add element #id for #type 'item'.
if (isset($element['#markup']) && !empty($element['#id'])) {
$attributes['id'] = $element['#id'];
}
// Add element's #type and #name as class to aid with JS/CSS selectors.
if(!isset($element["#attributes"]['class']))
$element["#attributes"]['class'] = array();
$attributes['class'] = $element["#attributes"]['class'] + array('form-item');
if (!empty($element['#type'])) {
$attributes['class'][] = 'form-type-' . strtr($element['#type'], '_', '-');
}
if (!empty($element['#name'])) {
$attributes['class'][] = 'form-item-' . strtr($element['#name'], array(' ' => '-', '_' => '-', '[' => '-', ']' => ''));
}
// Add a class for disabled elements to facilitate cross-browser styling.
if (!empty($element['#attributes']['disabled'])) {
$attributes['class'][] = 'form-disabled';
}
$output = '<div' . drupal_attributes($attributes) . '>' . "\n";
// If #title is not set, we don't display any label or required marker.
if (!isset($element['#title'])) {
$element['#title_display'] = 'none';
}
$prefix = isset($element['#field_prefix']) ? '<span class="field-prefix">' . $element['#field_prefix'] . '</span> ' : '';
$suffix = isset($element['#field_suffix']) ? ' <span class="field-suffix">' . $element['#field_suffix'] . '</span>' : '';
switch ($element['#title_display']) {
case 'before':
case 'invisible':
$output .= ' ' . theme('form_element_label', $variables);
$output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
break;
case 'after':
$output .= ' ' . $prefix . $element['#children'] . $suffix;
$output .= ' ' . theme('form_element_label', $variables) . "\n";
break;
case 'none':
case 'attribute':
// Output no label and no required marker, only the children.
$output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
break;
}
if (!empty($element['#description'])) {
$output .= '<div class="description">' . $element['#description'] . "</div>\n";
}
$output .= "</div>\n";
return $output;
}
function guibik_form_node_form_alter(&$form, &$form_state){
// dsm($form, 'guibik_form_node_form_alter | $form');
// dsm($form_state, '$form_state');
if(!isset($form['language']['#description']))
$form['language']['#description'] = t('Please consider to leave language in neutral state <strong>if you dont plan to translate this node</strong>, even if your content is (obviously) writed in some non neutral language. Then this node will always be visible.');
}
function guibik_image_field_widget_process($element, &$form_state, $form){
$element['title']['#type'] = "textarea";
return $element;
}
function guibik_field_widget_form_alter(&$element, &$form_state, $context) {
// dsm($context['field']['type'], '$context[field][type]');
if ($context['field']['type'] == 'image') {
foreach ($element as $delta => $item) {
if(!isset($element[$delta]['#process']) || !is_array($element[$delta]['#process']))
continue;
$element[$delta]['#process'][] = "guibik_image_field_widget_process";
}
}
}

View File

@@ -0,0 +1,15 @@
<?php
/*
Available variables are:
$content The messages to put inside Better Messages. Drupal originally calls theme_status_messages() to theme this output.
With this module enabled you'll always have to call theme_better_messages_content() instead of theme_status_messages().
*/
?><div id="better-messages-default">
<div id="messages-inner">
<div class="content">
<?php /* If you want to theme further.. theme_better_messages_content() */ ?>
<?php print $content ?>
</div>
<div class="footer"><span class="message-timer"></span><a class="message-close" href="#"></a></div>
</div>
</div>

View File

@@ -0,0 +1,13 @@
<div class='form form-layout-default clearfix'>
<div class='column-main'><div class='column-wrapper clearfix'>
<?php print drupal_render_children($form); ?>
<?php print rubik_render_clone($actions); ?>
</div></div>
<div class='column-side'><div class='column-wrapper clearfix'>
<?php print drupal_render($sidebar); ?>
<?php print drupal_render($actions); ?>
</div></div>
<?php if (!empty($footer)): ?>
<div class='column-footer'><div class='column-wrapper clearfix'><?php print drupal_render($footer); ?></div></div>
<?php endif; ?>
</div>

View File

@@ -0,0 +1,98 @@
<?php
/**
* @file views-view.tpl.php
* Main view template
*
* Variables available:
* - $classes_array: An array of classes determined in
* template_preprocess_views_view(). Default classes are:
* .view
* .view-[css_name]
* .view-id-[view_name]
* .view-display-id-[display_name]
* .view-dom-id-[dom_id]
* - $classes: A string version of $classes_array for use in the class attribute
* - $css_name: A css-safe version of the view name.
* - $css_class: The user-specified classes names, if any
* - $header: The view header
* - $footer: The view footer
* - $rows: The results of the view query, if any
* - $empty: The empty text to display if the view is empty
* - $pager: The pager next/prev links to display, if any
* - $exposed: Exposed widget form/info to display
* - $feed_icon: Feed icon to display, if any
* - $more: A link to view more, if any
*
* @ingroup views_templates
*/
?>
<div class="<?php print $classes; ?>">
<?php print render($title_prefix); ?>
<?php if ($title): ?>
<?php print $title; ?>
<?php endif; ?>
<?php print render($title_suffix); ?>
<?php if ($header): ?>
<div class="view-header">
<?php print $header; ?>
</div>
<?php endif; ?>
<?php if ($exposed): ?>
<div class="view-filters">
<span class="title"><?php print t('Filters'); ?></span>
<?php print $exposed; ?>
</div>
<?php endif; ?>
<?php if ($pager): ?>
<div class="pager">
<?php print $pager; ?>
</div>
<?php endif; ?>
<?php if ($attachment_before): ?>
<div class="attachment attachment-before">
<?php print $attachment_before; ?>
</div>
<?php endif; ?>
<?php if ($rows): ?>
<div class="view-content">
<?php print $rows; ?>
</div>
<?php elseif ($empty): ?>
<div class="view-empty">
<?php print $empty; ?>
</div>
<?php endif; ?>
<?php if ($pager): ?>
<div class="pager">
<?php print $pager; ?>
</div>
<?php endif; ?>
<?php if ($attachment_after): ?>
<div class="attachment attachment-after">
<?php print $attachment_after; ?>
</div>
<?php endif; ?>
<?php if ($more): ?>
<?php print $more; ?>
<?php endif; ?>
<?php if ($footer): ?>
<div class="view-footer">
<?php print $footer; ?>
</div>
<?php endif; ?>
<?php if ($feed_icon): ?>
<div class="feed-icon">
<?php print $feed_icon; ?>
</div>
<?php endif; ?>
</div><?php /* class view */ ?>

View File

@@ -0,0 +1,3 @@
language: node_js
node_js:
- 0.6

View File

@@ -0,0 +1,363 @@
## 2.3.2 (May 17, 2013)
- Fix dropdown for firefox (middleclick) and mobile
## 2.3.1 (February 28, 2013)
Patch release for @fat's n00bery
- fix missing event type in dropdown
- fix delegated data-attrs for popover/tooltip
- make carousel actually pause when you click cycle
- fix jshint ref in makefile
- fix trying to remove backdrop when no backdrop
## 2.3.0 (February 7, 2013)
Minor release to add carousel indicators, improve tooltips, improve dev setup, and fix hella bugs.
- **Repository changes:**
- **Local instead of global dependencies** for our makefile and install process. Now getting started is way easier—just run `npm install`.
- Upgraded to jQuery 1.9. No changes were needed, but we did upgrade the included jQuery file to the latest release.
- Moved changelog to be within the repo instead of as a wiki page.
- **New and improved features:**
- **Added carousel indicators!** Add the HTML and it automagically works.
- **Added `container` option to tooltips.** The default option is still `insertAfter`, but now you may specify where to insert tooltips (and by extension, popovers) with the optional container parameter.
- Improved popovers now utilize `max-width` instead of `width`, have been widened from 240px to 280px, and will automatically hide the title if one has not been set via CSS `:empty` selector.
- Improved tooltip alignment on edges with [#6713](https://github.com/twitter/bootstrap/pull/6713).
- **Improved accessibility for links in all components.** After merging [#6441](https://github.com/twitter/bootstrap/pull/6441), link hover states now apply to the `:focus` state as well. This goes for basic `<a>` tags, as well as buttons, navs, dropdowns, and more.
- Added print utility classes to show and hide content between `screen` and `print` via CSS.
- Updated input groups to make them behave more like default form controls. Added `display: inline-block;`, increased `margin-bottom`, and added `vertical-align: middle;` to match `<input>` styles.
- Added `.horizontal-three-colors()` gradient mixin (with example in the CSS tests file).
- Added `.text-left`, `.text-center`, and `.text-right` utility classes for easy typographic alignment.
- Added `@ms-viewport` so IE10 can use responsive CSS when in split-screen mode.
- **Docs changes:**
- Added [new justified navigation example](https://f.cloud.github.com/assets/98681/25869/5e2f812c-4afa-11e2-9293-501cd689232d.png).
- Added sticky footer with fixed navbar example.
See more on the [2.3.0 pull request](https://github.com/twitter/bootstrap/pull/6346).
## 2.2.2 (December 8, 2012)
Bugfix release addressing docs, CSS, and some JavaScript issues. Key changes include:
- **Docs:**
- Assets (illustrations and examples) are now retina-ready.
- Replaced [Placehold.it](http://placehold.it) with [Holder.js](http://imsky.github.com/holder/), a client-side and retina-ready placeholder image tool.
- **Dropdowns:** Temporary fix added for dropdowns on mobile to prevent them from closing early.
- **Popovers:**
- No longer inherits `font-size: 0;` when placed in button groups.
- Arrows refactored to work in IE8, and use less code.
- Plugin no longer inserts popover content into a `<p>`, but rather directly into `.popover-content`.
- **Labels and badges:** Now [automatically collapse](https://github.com/twitter/bootstrap/commit/ead5dbeba5cd7acfa560bfb353f5e7c4f4a19256) if they have no content.
- **Tables:** Nesting support with `.table-bordered` and `.table-striped` greatly improved.
- **Typeahead:**
- Now [inserts dropdown menu after the input](https://github.com/twitter/bootstrap/commit/1747caf19d59cad7fdc90ae56a00e0e2849f95f4) instead of at the close of the document.
- Hitting escape will place focus back on the `<input>`.
- Print styles, from HTML5 Boilerplate, have been added.
See more on the [2.2.2 milestone](https://github.com/twitter/bootstrap/issues?milestone=17&state=closed).
## 2.2.1 (October 30, 2012)
Hotfix release to address the carousel bug reports.
## 2.2.0 (October 29, 2012)
### tl;dr
2.1.2 is now 2.2.0: four new example templates, added media component, new typographic scale, fixed that box-shadow mixin bug, fixed z-index issues, and [more](https://github.com/twitter/bootstrap/issues?milestone=15&page=1&state=closed).
### Highlights
- **Added four new example templates** to the docs, including a narrow marketing page, sign in form, sticky footer, and a fancy carousel (created for an upcoming .net magazine article).
- **Added the media component**, to create larger common components like comments, Tweets, etc.
- **New variable-driven typographic scale** based on `@baseFontSize` and `@baseLineHeight`.
- Revamped mini, small, and large padding via new variables for inputs and buttons so everything is the same size.
- Reverted 2.1.1's `.box-shadow();` mixin change that caused compiler errors.
- Improved dropdown submenus to support dropups and left-aligned submenus.
- Fixed z-index issues with tooltips and popovers in modals.
- Hero unit now sets basic type styles for the entire component, rather than on `.hero-unit p { ... }`.
- Updated JavaScript plugins and docs to jQuery 1.8.1.
- Added Contributing.md file.
- Added support for installing Bootstrap via [Bower](http://twitter.github.com/bower).
- Miscellaneous variable improvements across the board.
- Miscellaneous documentation typos fixed.
For the full list of issues included in this release, visit the [2.2.0 milestone on GitHub](https://github.com/twitter/bootstrap/issues?milestone=15&page=1&state=closed)
## 2.1.1 (September 4, 2012)
* New feature: alert text. We documented these new classes, like `.text-success`, at the bottom of the [Typography section](http://twitter.github.com/bootstrap/base-css.html#typography) along with the long undocumented `.muted`.
* Fixed a lot of typos in the docs. Spelling is hard.
* Made the `.box-shadow()` mixin more durable. It no longer requires escaping for multiple shadows, meaning you can easily use variables and functions in them once again.
* Widened `.dl-horizontal dt` and `.horizontal-form .control-group` to better handle the increased font-size.
* Dropdown submenus improved: now you only see the next level, not all levels, on hover of the submenu toggle.
* Clarified jQuery and Bootstrap template requirements in Getting Started section.
* `select` now utilizes `@inputBorder`.
* `.lead` now scales up from `@baseFontSize` instead of being a fixed font-size and line-height.
* Fixed the vertical three color gradient in latest Firefox.
* Reordered some variables that caused errors in certain Less compilers.
View all closed issues on the [2.1.1 milestone](https://github.com/twitter/bootstrap/issues?milestone=14&state=closed).
## 2.1.0 (August 20, 2012)
### Key changes
* Submenu support on dropdowns
* Affix JavaScript plugin
* Block level buttons
* State classes on table rows
* Improved disabled states on navs and dropdowns
* The navbar component is now white by default, with an optional class to darken it
* Improved prepended and appended inputs
* New base font-size and line-height
* Added variable for navbar collapse trigger point
* Fluid grid offsets
* Fluid grid system variables are no longer fixed percentages
* Removed LESS docs page
For full set of changes, see the completed milestone: https://github.com/twitter/bootstrap/issues?milestone=7&page=1&state=closed
## 2.0.4 (June 1, 2012)
### Docs
- Added `type="button"` to all dismiss buttons in alerts and modals to avoid a bug in which they prevent their parent's `form` from properly submitting.
- Added simple documentation to Base CSS for `.lead`.
- Added new CSS test to illustrate how the navbar, static and fixed, behaves.
- Clarified grid sizing copy to include mention of responsive variations.
- Reformatted the LESS docs page to prevent terrible table displays at smaller grid sizes.
- Miscellaneous typos and tweaks.
### CSS
- Refactored forms.less to make our selectors more specific for fewer overrides and less code. Instead of a generic `input` selector and various resets, we target each type of input like `input[type="text"]`, `input[type="password"]`, etc.
- Form field state (e.g., success or error) now applies to checkbox and radio labels.
- Removed redundant CSS on `<p>` for `font-family`, `font-size`, and `line-height`.
- Removed redundant `color` declaration from the `<label>` element.
- Added variables for dropdown dividers border colors.
- `legend` and `.form-actions` share the same `border-color`, `#e5e5e5`.
- Fixed some responsive issues with input-prepend and -append, notably with the fluid grid.
- Added special CSS to prevent `max-width: 100%;` on images from messing up Google Maps rendering.
- Scope opened dropdowns to only immediate children to avoid unintended cascade.
- Similarly, scope floated-right dropdowns to immediate children with `.pull-right > .dropdown-menu`.
- Updated `.placeholder()` mixin to use `&` operator in Less for proper output when compiling.
- Added `-ms-input-placeholder` to `.placeholder()` mixin.
- Added CSS3 hyphens mixin.
- Fixed a bug in IE7/8 where certain form controls would not show text if the parent had a filter opacity set.
## 2.0.3 (April 24, 2012)
Running makefile now require JSHint and Recess.
### HTML and CSS
- Overhauled the responsive utility classes to simplify required CSS, add `!important` to all declarations, and use `display: inherit` in place of `display: block` to account for different types of elements.
- Removed `>` from fluid grid column selectors, meaning every element with a `.span*` class within a `.row-fluid` will use percentage widths instead of fixed-pixels.
- Fixed regression in responsive images support as of 2.0.1. We've re-added `max-width: 100%;` to images by default. We removed it in our last release since we had folks complaining about Google Maps integration and other projects, but we're taking a different stance now on these things and will require developers to make these tweaks on their end.
- Added variable `@navbarBrandColor` for the brand element in navbars, which defaults to `@navbarLinkColor`.
- Font-family mixins now use variables for their stacks.
- Fixed an unescaped `filter` on the `.reset-filter()` mixin that was causing some errors depending on your compiler.
- Fixed regression in `.form-actions` background, which was too dark, by adding a new variable `@formActionsBackground` and changing the color to `#f5f5f5` instead of `#eee`.
- Fixed an issue on button group dropdowns where the background color was not using the button's darker color when the dropdown is open.
- Generalized and simplified the open dropdown classes while adding smarter defaults. Instead of `.dropdown.open`, we now use just `.open`. On the defaults side, all dropdown menus now have rounded corners to start.
- Improved active `.dropdown-toggle` styles (for dropdown buttons) by darkening the background and sharpening the inset shadow to match the active state of buttons.
- Direction of animation on progress bars reversed.
- Fixed input-prepend/append issue with uneditable inputs: `.uneditable-input` was being floated and a missing comma meant its `border-radius` for the append option wasn't being applied properly.
- Removed `height: auto;` from `img` since it was overriding dimensions set via HTML attributes.
- Fixed an issue of double borders on the top of tables with captions or colgroups.
- Fixed issue with anchor buttons in the `.navbar-text`. Instead of a general styling on all anchors within an element with that class, we now have a new class to specifically apply appropriate link color.
- Added support for `@navbarHeight` on the brand/project name and nav links for complete navbar height customization.
- Fixed the black borders on buttons problem in IE7 by removing the border, increasing the line-height, and providing darker background colors.
- Removed excess padding on `.search-query` inputs in IE7 since it doesn't have border-radius.
- Updated alert messages in Components to use `button` elements as close icons instead of `a`. Both can be used, but an `a` will require `href="#"` for dismissal on iOS devices.
- Fixed an issue with prepended/appended inputs in Firefox where `select` elements required two clicks to toggle the dropdown. Resolved by moving the `position: relative` to the `select` by default instead of on `:focus`.
- Added a new mixin, `.backface-visibility`, to help refine CSS 3D tranforms. Examples and explanation of usage can be found on [CSS Tricks](http://css-tricks.com/almanac/properties/b/backface-visibility/).
- Changed specificity of grid classes in responsive layouts under 767px to accurately target `input`, `select`, and `textarea` elements that use `.span*` classes.
- Horizontal description lists, `.dl-horizontal`, now truncate terms that are too long to fit in their fixed-width column. In the < 767px responsive layout, they change to their default stacked layout.
- Changed tabbable tabs to prevent issues in left and right aligned tabs. `.tab-content` would not growing to its parent's full width due to `display: table`. We removed that and the `width: 100%` and instead just set `overflow: auto` to clear the left and right aligned tabs.
- Updated thumbnails to support fluid grid column sizing.
- Added `>` to most of the button group selectors
- Added new variable, `@inputBorderRadius`, to all form controls that previously made use of the static `3px` value everywhere.
- Changed the way we do `border-radius` for tables. Instead of the regular mixin that zeros out all other corners, we specify one corner only so they can be combined for use on single column table headers.
- Updated Glyphicons Halflings from 1.5 to 1.6, introducing 20 new icons.
- Added an `offset` paramater to the `.makeColumn`.
- Increased the specificity of all tabbable nav selectors to include `.nav-collapse` to appropriately scope the responsive navbar behavior.
- Fixed uneditable inputs: text now cuts off and does not wrap, making it behave just like a default `input`.
- Labels and badges are now `vertical-align: baseline;` so they line up with surrounding text.
### Javascript
- Add jshint support
- Add travis-ci support w/ headless phantom integration
- Replace UA sniffing in bootstrap-transitions.js
- Add MSTransitionEnd event to transition plugin
- Fix pause method in carousel (shouldn't restart when hovering over controls)
- Fix crazy opera bug #1776
- Don't open dropdown if target element is disabled
- Always select last item in scrollspy if you've reached the bottom of the document or element
- Typeahead should escape regexp special chars
- If interval is false on carousel, do not auto-cycle
- Add preventDefault support for all initial event types (show, close, hide, etc.)
- Fix collapse bug in ie7+ for initial collapse in
- Fix nested collapse bug
- If transitioning collapse, don't start new transition
- Try to autodetect when to use html/text method in tooltip/popovers to help prevent xss
- Add bootstrap + bootstrap.min.js to gh-pages for @remy and jsbin support
### Documentation and repo
- Combined badges and labels into a single LESS file, labels-badges.less, to reduce repeated CSS.
- Separated responsive features into multiple files. We now have a file for each grouping of media queries (tablets and down, tablets to desktops, and large desktops). Additionally, the visible/hidden utility classes and the responsive navbar are in their own files. The output is the same in the compiled CSS, but this should give folks a bit more flexibility.
- Added a new CSS Tests page in the docs (not in the top nav) for better testing of edge cases and extending the use of standard components.
- Removed the bootstrap.zip file from the repo and the make process for faster building and a lighter repo. From now on, the zip will only be in the documentation branch.
- Fixed incorrect use of class instead of ID for tabs example and added documentation for multiple ways of toggling tabs.
- Fixed required markup listed for the specialized navbar search field.
- Removed all mention of `@siteWidth`, a variable no longer in use.
- Removed mentions of unused `@buttonPrimaryBackground` variable, which is no longer in use.
- Updated LESS docs page to include all the new variables we added in previous releases.
- Removed broken "dropup" menus from tabs and pills examples (shouldn't have been there in the first place).
- Replaced `.badge-error` with `.badge-important`. The error option is not a valid class and was a typo in the docs.
- Fixed mention of how to add plain text to the navbar. Previously the docs stated you only needed a `p` tag, but the required HTML is any element with class `.navbar-text`.
- Clarified the use of `.tabbable` for tabs. The wrapping class is only required for left and right tabs to clear their floats. Also added mention of `.fade` to fade in tabs.
- Updated forms documentation:
- Remove unnecessary duplicate help text in first example
- Added mention of required `input` class, `.search-query`, for the search form variation
- Removed incorrect mention of form fields being `display: block;` to start as fields are `inline-block` to start.
- Added mention of `data-target` attribute for the dropdowns javascript plugin to show how to keep custom URLs intact on links with `.dropdown-toggle` class.
- Updated the Kippt screenshot on the homepage to reflect their recent responsive redesign and upgrade to 2.0.2.
## 2.0.2 (March 12, 2012)
Overview of docs changes, bugfixes, and new features.
### Documentation updates
- All docs pages now have distinct titles, such as <em>Scaffolding &middot; Twitter Bootstrap</em>.
- Updated the Apple touch icons (now black on black instead of the blue grid) and fixed the links to them in the docs.
- Added new global styles docs section to the Scaffolding page.
- Required use of HTML5 doctype
- Overview of global typographic and links details
- Mention of our embedded CSS reset via [Normalize.css](http://necolas.github.com/normalize.css/)
- Added version number to the download button on the docs homepage.
- Updated progress bars section to simplify how the classes stack and more clearly indicate the available optional classes and styles.
- Added a new example, [SoundReady.fm](http://soundready.fm), to the homepage
- Added various sizes to the docs for button groups
### Resolved bugs
- Removed all IE7 hacks and floats from `.input-prepend` and `.input-append`, however, this requires you to **ensure there is no whitespace in your code** between `.add-on` and the `input`.
- In `.input-prepend` and `.input-append`, added ability to use add-ons on both sides when you chain the selectors.
- Updated lingering `.btn-dark` reference to `.btn-inverse`.
- Fixed issue with content being cut off in `.tab-content` for tabbable sections.
- Updated `.navbar .container` to use `width: auto;` to start and then reset the fixed widths via the `#gridSystem` mixin (it's a little dirty, but required to avoid adding another class).
- Modal footer buttons are now aligned by their parent via `text-align: right;` instead of `float: right` on the button level. This was changed to allow the use of `.pull-left` and `.pull-right` to align buttons easily. Double check your button order with this change!
- Fixed problem where default striped progress bar was green instead of blue.
- Fixed CSS selector used for `input` and `textarea` grid sizes to properly apply the CSS (was `input > .span*` and now is `input.span*`).
### New features
- Horizontal dividers support added to nav lists
- Added basic version of badges
- Added visible/hidden classes for devices
- Added support for buttons in input-prepend/append component
- Added .navbar-fixed-bottom support
- Added .dropup support for dropdown menus to pop them upward instead of downward (this is automatically done for the newly added fixed bottom navbar).
- Added mixin for [new image replacement technique](http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/)
- Added pause on hover for the carousel
- Added tons of new variables for typography, buttons, forms, dropdowns, navbar, and more for the LESS pros out there. These variables have also been reflected on the Customize page.
- Added new horizontal description list variation
- Added `.disabled` class support to the pager component (also added a mention of this to the docs)
- Added `.well-large` and `.well-small` classes for extending the well component
For a full issue-by-issue rundown of the release, check out the now closed [2.0.2 milestone on GitHub](https://github.com/twitter/bootstrap/issues?sort=created&direction=desc&state=closed&page=1&milestone=9)
## v2.0.1 (February 17, 2012)
Overview of changes:
- Previously the docs called for use of `.control-label` in the examples, but the CSS didn't make clear use of it. This class is required for horizontal forms and has been reflected in the CSS.
- We've tried our best to improve rendering of buttons and icons across all browsers. Some issues remain; Firefox throws an `!important`on `line-height` for inputs, so that's the big one.
- We refined the label component style to move away from uppercase.
- Added the black button option, `.btn-inverse`.
- Added a mini button class, `.btn-mini`.
- We had to re-add the protocol, `http:` to the HTML5 schim because IE7-8 wouldn't recognize it, dropping some HTML5 support for those browsers and introducing major performance issues.
- Resolved some issues with responsive layouts where media queries would overlap at 768px and 980px.
- Rearranged Scaffolding docs page to split fixed and fluid grid systems.
- Tons of docs updates for typos and language changes.
For full list of changes, see the now closed [v2.0.1 milestone](https://github.com/twitter/bootstrap/issues?milestone=8&state=closed).
## v2.0.0 (January 28, 2012)
Complete rewrite of the library. For full details, head to the upgrading doc at http://twitter.github.com/bootstrap/upgrading.html.
## v1.4.0
### Key bug fixes and changes
- **Updated tables** to make no border the default and add options for condensed and bordered versions
- **Updated form states** to expand on error styles and provide warning and success variations
- New javascript plugin for button states
- Switched to strict mode for Javascript plugins
- Added more data attribute controls to our plugins
- Full list of 25+ issues fixed: https://github.com/twitter/bootstrap/issues?milestone=6&state=closed
## v1.3.0
### New features
- **Javascript plugins** for modals, alerts, dropdowns, scrollspy, tabs, tooltips, and popovers that work with jQuery and Ender
- **Massively updated docs** for both the main page and for the new javascript plugins
- **Inline labels** for marking inline content with key visual flags
- Media thumbnails
- Breadcrumbs
### Updated docs
- Added complete javascript page with detailed documentation for how to use plugins
- Three complete example pages of using Bootstrap, linked from main docs page with thumbnails
- Added section for compiling Less, for guidelines on how to recompile Bootstrap with Less
- Added section for customizing grid variables in Less to roll your own grid system
- Added section for code for using pre and code tags
- Added section for form field sizes that match grid column sizes
### Key bug fixes and changes
- Updated table styles to be just a tad bit more refined
- Added new form input sizes based on the Bootstrap grid system (meaning now you can do `input.span5` for a 280px-wide input)
- Removed `:focus` states from `:active` links in Firefox
- Fixed unqualified `.clearfix` in forms.less that added bottom margin to all containers
- Updated `.container()` mixing to be `.fixed-container()` to prevent conflicts when compiling
- Added focus states (either `box-shadow` or `outline` on `:focus`) to all buttons, links, and inputs
- No longer require `h3` in topbar, but still support for backwards compatibility
## v1.2.0
- **Dropdowns refactored** to be extensible (now work in ul.tabs)
- **Added HTML5 form support** by generalizing the form selectors (e.g., input instead of input[type=text|password])
- **Gradients back in IE**, but removed rounded corners in IE9 to prevent background bleed on buttons and alert messages
- **Simplified the grid CSS** by removing the static .span1-16 classes in favor of CSS-style regex for column styles in the grid
- **Added .one-third and .two-thirds columns** to the grid system
- Fixed bug in disabled buttons where they received :active styles
- Bug fixes
## v1.1.1
- **Redesigned alerts** to be more readable
- **Refactored buttons and alerts CSS** to be simpler
- Updated grid system to be more specific and not require .column or columns
- Improved on specificity of CSS selectors by removing unnecessary tag and parent selectors
- Miscellaneous updates to docs
- Bug fixes
## v1.1.0
- **Added support for IE7 and IE8**
- Added examples directory with first example usage of Bootstrap for a simple website
- Syntax fixes for gradients and color-stops
- Miscellaneous updates to docs
- Bug fixes
## v1.0.0
- **Initial release**

View File

@@ -0,0 +1,75 @@
# Contributing to Bootstrap
Looking to contribute something to Bootstrap? **Here's how you can help.**
## Reporting issues
We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within the Bootstrap core. Please read the following guidelines before opening any issue.
1. **Search for existing issues.** We get a lot of duplicate issues, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available.
2. **Create an isolated and reproducible test case.** Be sure the problem exists in Bootstrap's code with a [reduced test case](http://css-tricks.com/reduced-test-cases/) that should be included in each bug report.
3. **Include a live example.** Make use of jsFiddle or jsBin to share your isolated test cases.
4. **Share as much information as possible.** Include operating system and version, browser and version, version of Bootstrap, customized or vanilla build, etc. where appropriate. Also include steps to reproduce the bug.
## Key branches
- `master` is the latest, deployed version.
- `gh-pages` is the hosted docs (not to be used for pull requests).
- `*-wip` is the official work in progress branch for the next release.
## Notes on the repo
As of v2.0.0, Bootstrap's documentation is powered by Mustache templates and built via `make` before each commit and release. This was done to enable internationalization (translation) in a future release by uploading our strings to the [Twitter Translation Center](http://translate.twttr.com/). Any edits to the docs should be first done in the Mustache files and then recompiled into the HTML.
## Pull requests
- Try to submit pull requests against the latest `*-wip` branch for easier merging
- Any changes to the docs must be made to the Mustache templates, not just the compiled HTML pages
- CSS changes must be done in .less files first, never just the compiled files
- If modifying the .less files, always recompile and commit the compiled files bootstrap.css and bootstrap.min.css
- Try not to pollute your pull request with unintended changes--keep them simple and small
- Try to share which browsers your code has been tested in before submitting a pull request
## Coding standards: HTML
- Two spaces for indentation, never tabs
- Double quotes only, never single quotes
- Always use proper indentation
- Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags)
## Coding standards: CSS
- Adhere to the [Recess CSS property order](http://markdotto.com/2011/11/29/css-property-order/)
- Multiple-line approach (one property and value per line)
- Always a space after a property's colon (.e.g, `display: block;` and not `display:block;`)
- End all lines with a semi-colon
- For multiple, comma-separated selectors, place each selector on it's own line
- Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks).
## Coding standards: JS
- No semicolons
- Comma first
- 2 spaces (no tabs)
- strict mode
- "Attractive"
## License
By contributing your code, you agree to license your contribution under the terms of the APLv2: https://github.com/twitter/bootstrap/blob/master/LICENSE

View File

@@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View File

@@ -0,0 +1,126 @@
BOOTSTRAP = ./docs/assets/css/bootstrap.css
BOOTSTRAP_LESS = ./less/bootstrap.less
BOOTSTRAP_RESPONSIVE = ./docs/assets/css/bootstrap-responsive.css
BOOTSTRAP_RESPONSIVE_LESS = ./less/responsive.less
DATE=$(shell date +%I:%M%p)
CHECK=\033[32m✔\033[39m
HR=\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#
#
# BUILD DOCS
#
build:
@echo "\n${HR}"
@echo "Building Bootstrap..."
@echo "${HR}\n"
@./node_modules/.bin/jshint js/*.js --config js/.jshintrc
@./node_modules/.bin/jshint js/tests/unit/*.js --config js/.jshintrc
@echo "Running JSHint on javascript... ${CHECK} Done"
@./node_modules/.bin/recess --compile ${BOOTSTRAP_LESS} > ${BOOTSTRAP}
@./node_modules/.bin/recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > ${BOOTSTRAP_RESPONSIVE}
@echo "Compiling LESS with Recess... ${CHECK} Done"
@node docs/build
@cp img/* docs/assets/img/
@cp js/*.js docs/assets/js/
@cp js/tests/vendor/jquery.js docs/assets/js/
@echo "Compiling documentation... ${CHECK} Done"
@cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > docs/assets/js/bootstrap.js
@./node_modules/.bin/uglifyjs -nc docs/assets/js/bootstrap.js > docs/assets/js/bootstrap.min.tmp.js
@echo "/**\n* Bootstrap.js v2.3.2 by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > docs/assets/js/copyright.js
@cat docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js > docs/assets/js/bootstrap.min.js
@rm docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js
@echo "Compiling and minifying javascript... ${CHECK} Done"
@echo "\n${HR}"
@echo "Bootstrap successfully built at ${DATE}."
@echo "${HR}\n"
@echo "Thanks for using Bootstrap,"
@echo "<3 @mdo and @fat\n"
#
# RUN JSHINT & QUNIT TESTS IN PHANTOMJS
#
test:
./node_modules/.bin/jshint js/*.js --config js/.jshintrc
./node_modules/.bin/jshint js/tests/unit/*.js --config js/.jshintrc
node js/tests/server.js &
phantomjs js/tests/phantom.js "http://localhost:3000/js/tests"
kill -9 `cat js/tests/pid.txt`
rm js/tests/pid.txt
#
# CLEANS THE ROOT DIRECTORY OF PRIOR BUILDS
#
clean:
rm -r bootstrap
#
# BUILD SIMPLE BOOTSTRAP DIRECTORY
# recess & uglifyjs are required
#
bootstrap: bootstrap-img bootstrap-css bootstrap-js
#
# JS COMPILE
#
bootstrap-js: bootstrap/js/*.js
bootstrap/js/*.js: js/*.js
mkdir -p bootstrap/js
cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > bootstrap/js/bootstrap.js
./node_modules/.bin/uglifyjs -nc bootstrap/js/bootstrap.js > bootstrap/js/bootstrap.min.tmp.js
echo "/*!\n* Bootstrap.js by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > bootstrap/js/copyright.js
cat bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js > bootstrap/js/bootstrap.min.js
rm bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js
#
# CSS COMPLILE
#
bootstrap-css: bootstrap/css/*.css
bootstrap/css/*.css: less/*.less
mkdir -p bootstrap/css
./node_modules/.bin/recess --compile ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.css
./node_modules/.bin/recess --compress ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.min.css
./node_modules/.bin/recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.css
./node_modules/.bin/recess --compress ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.min.css
#
# IMAGES
#
bootstrap-img: bootstrap/img/*
bootstrap/img/*: img/*
mkdir -p bootstrap/img
cp img/* bootstrap/img/
#
# MAKE FOR GH-PAGES 4 FAT & MDO ONLY (O_O )
#
gh-pages: bootstrap docs
rm -f docs/assets/bootstrap.zip
zip -r docs/assets/bootstrap.zip bootstrap
rm -r bootstrap
rm -f ../bootstrap-gh-pages/assets/bootstrap.zip
node docs/build production
cp -r docs/* ../bootstrap-gh-pages
#
# WATCH LESS FILES
#
watch:
echo "Watching less files..."; \
watchr -e "watch('less/.*\.less') { system 'make' }"
.PHONY: docs watch gh-pages bootstrap-img bootstrap-css bootstrap-js

View File

@@ -0,0 +1,113 @@
# [Bootstrap v2.3.2](http://twitter.github.com/bootstrap) [![Build Status](https://secure.travis-ci.org/twitter/bootstrap.png)](http://travis-ci.org/twitter/bootstrap)
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat).
To get started, checkout [http://getbootstrap.com](http://getbootstrap.com)!
## Quick start
Three quick start options are available:
* [Download the latest release](https://github.com/twitter/bootstrap/zipball/master).
* Clone the repo: `git clone git://github.com/twitter/bootstrap.git`.
* Install with Twitter's [Bower](http://bower.io): `bower install bootstrap`.
## Versioning
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.
Releases will be numbered with the following format:
`<major>.<minor>.<patch>`
And constructed with the following guidelines:
* Breaking backward compatibility bumps the major (and resets the minor and patch)
* New additions without breaking backward compatibility bumps the minor (and resets the patch)
* Bug fixes and misc changes bumps the patch
For more information on SemVer, please visit [http://semver.org/](http://semver.org/).
## Bug tracker
Have a bug or a feature request? [Please open a new issue](https://github.com/twitter/bootstrap/issues). Before opening any issue, please search for existing issues and read the [Issue Guidelines](https://github.com/necolas/issue-guidelines), written by [Nicolas Gallagher](https://github.com/necolas/).
## Community
Keep track of development and community news.
* Follow [@twbootstrap on Twitter](http://twitter.com/twbootstrap).
* Read and subscribe to the [The Official Twitter Bootstrap Blog](http://blog.getbootstrap.com).
* Have a question that's not a feature request or bug report? [Ask on the mailing list.](http://groups.google.com/group/twitter-bootstrap)
* Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##twitter-bootstrap` channel.
## Compiling CSS and JavaScript
Bootstrap includes a [makefile](Makefile) with convenient methods for working with the framework. Before getting started, be sure to install [the necessary local dependencies](package.json):
```
$ npm install
```
When completed, you'll be able to run the various make commands provided:
#### build - `make`
Runs the recess compiler to rebuild the `/less` files and compiles the docs. Requires recess and uglify-js.
#### test - `make test`
Runs jshint and qunit tests headlessly in [phantomjs](http://code.google.com/p/phantomjs/) (used for ci). Depends on having phantomjs installed.
#### watch - `make watch`
This is a convenience method for watching just Less files and automatically building them whenever you save. Requires the Watchr gem.
Should you encounter problems with installing dependencies or running the makefile commands, be sure to first uninstall any previous versions (global and local) you may have installed, and then rerun `npm install`.
## Contributing
Please submit all pull requests against *-wip branches. If your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](http://github.com/mdo/code-guide), maintained by [Mark Otto](http://github.com/mdo).
Thanks!
## Authors
**Mark Otto**
+ [http://twitter.com/mdo](http://twitter.com/mdo)
+ [http://github.com/mdo](http://github.com/mdo)
**Jacob Thornton**
+ [http://twitter.com/fat](http://twitter.com/fat)
+ [http://github.com/fat](http://github.com/fat)
## Copyright and license
Copyright 2012 Twitter, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this work except in compliance with the License.
You may obtain a copy of the License in the LICENSE file, or at:
[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,8 @@
{
"name": "bootstrap",
"version": "2.3.2",
"main": ["./docs/assets/js/bootstrap.js", "./docs/assets/css/bootstrap.css"],
"dependencies": {
"jquery": "~1.8.0"
}
}

View File

@@ -0,0 +1,9 @@
{
"name": "twitter/bootstrap"
, "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
, "keywords": ["bootstrap", "css"]
, "homepage": "http://twitter.github.com/bootstrap/"
, "author": "Twitter Inc."
, "license": "Apache-2.0"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,12 @@
{
"validthis": true,
"laxcomma" : true,
"laxbreak" : true,
"browser" : true,
"eqnull" : true,
"debug" : true,
"devel" : true,
"boss" : true,
"expr" : true,
"asi" : true
}

View File

@@ -0,0 +1,117 @@
/* ==========================================================
* bootstrap-affix.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#affix
* ==========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* AFFIX CLASS DEFINITION
* ====================== */
var Affix = function (element, options) {
this.options = $.extend({}, $.fn.affix.defaults, options)
this.$window = $(window)
.on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
this.$element = $(element)
this.checkPosition()
}
Affix.prototype.checkPosition = function () {
if (!this.$element.is(':visible')) return
var scrollHeight = $(document).height()
, scrollTop = this.$window.scrollTop()
, position = this.$element.offset()
, offset = this.options.offset
, offsetBottom = offset.bottom
, offsetTop = offset.top
, reset = 'affix affix-top affix-bottom'
, affix
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top()
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
'bottom' : offsetTop != null && scrollTop <= offsetTop ?
'top' : false
if (this.affixed === affix) return
this.affixed = affix
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
}
/* AFFIX PLUGIN DEFINITION
* ======================= */
var old = $.fn.affix
$.fn.affix = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('affix')
, options = typeof option == 'object' && option
if (!data) $this.data('affix', (data = new Affix(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.affix.Constructor = Affix
$.fn.affix.defaults = {
offset: 0
}
/* AFFIX NO CONFLICT
* ================= */
$.fn.affix.noConflict = function () {
$.fn.affix = old
return this
}
/* AFFIX DATA-API
* ============== */
$(window).on('load', function () {
$('[data-spy="affix"]').each(function () {
var $spy = $(this)
, data = $spy.data()
data.offset = data.offset || {}
data.offsetBottom && (data.offset.bottom = data.offsetBottom)
data.offsetTop && (data.offset.top = data.offsetTop)
$spy.affix(data)
})
})
}(window.jQuery);

View File

@@ -0,0 +1,99 @@
/* ==========================================================
* bootstrap-alert.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#alerts
* ==========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* ALERT CLASS DEFINITION
* ====================== */
var dismiss = '[data-dismiss="alert"]'
, Alert = function (el) {
$(el).on('click', dismiss, this.close)
}
Alert.prototype.close = function (e) {
var $this = $(this)
, selector = $this.attr('data-target')
, $parent
if (!selector) {
selector = $this.attr('href')
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
$parent = $(selector)
e && e.preventDefault()
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
$parent.trigger(e = $.Event('close'))
if (e.isDefaultPrevented()) return
$parent.removeClass('in')
function removeElement() {
$parent
.trigger('closed')
.remove()
}
$.support.transition && $parent.hasClass('fade') ?
$parent.on($.support.transition.end, removeElement) :
removeElement()
}
/* ALERT PLUGIN DEFINITION
* ======================= */
var old = $.fn.alert
$.fn.alert = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('alert')
if (!data) $this.data('alert', (data = new Alert(this)))
if (typeof option == 'string') data[option].call($this)
})
}
$.fn.alert.Constructor = Alert
/* ALERT NO CONFLICT
* ================= */
$.fn.alert.noConflict = function () {
$.fn.alert = old
return this
}
/* ALERT DATA-API
* ============== */
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
}(window.jQuery);

View File

@@ -0,0 +1,105 @@
/* ============================================================
* bootstrap-button.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function ($) {
"use strict"; // jshint ;_;
/* BUTTON PUBLIC CLASS DEFINITION
* ============================== */
var Button = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, $.fn.button.defaults, options)
}
Button.prototype.setState = function (state) {
var d = 'disabled'
, $el = this.$element
, data = $el.data()
, val = $el.is('input') ? 'val' : 'html'
state = state + 'Text'
data.resetText || $el.data('resetText', $el[val]())
$el[val](data[state] || this.options[state])
// push to event loop to allow forms to submit
setTimeout(function () {
state == 'loadingText' ?
$el.addClass(d).attr(d, d) :
$el.removeClass(d).removeAttr(d)
}, 0)
}
Button.prototype.toggle = function () {
var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
$parent && $parent
.find('.active')
.removeClass('active')
this.$element.toggleClass('active')
}
/* BUTTON PLUGIN DEFINITION
* ======================== */
var old = $.fn.button
$.fn.button = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('button')
, options = typeof option == 'object' && option
if (!data) $this.data('button', (data = new Button(this, options)))
if (option == 'toggle') data.toggle()
else if (option) data.setState(option)
})
}
$.fn.button.defaults = {
loadingText: 'loading...'
}
$.fn.button.Constructor = Button
/* BUTTON NO CONFLICT
* ================== */
$.fn.button.noConflict = function () {
$.fn.button = old
return this
}
/* BUTTON DATA-API
* =============== */
$(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
$btn.button('toggle')
})
}(window.jQuery);

View File

@@ -0,0 +1,207 @@
/* ==========================================================
* bootstrap-carousel.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#carousel
* ==========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* CAROUSEL CLASS DEFINITION
* ========================= */
var Carousel = function (element, options) {
this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.options.pause == 'hover' && this.$element
.on('mouseenter', $.proxy(this.pause, this))
.on('mouseleave', $.proxy(this.cycle, this))
}
Carousel.prototype = {
cycle: function (e) {
if (!e) this.paused = false
if (this.interval) clearInterval(this.interval);
this.options.interval
&& !this.paused
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
return this
}
, getActiveIndex: function () {
this.$active = this.$element.find('.item.active')
this.$items = this.$active.parent().children()
return this.$items.index(this.$active)
}
, to: function (pos) {
var activeIndex = this.getActiveIndex()
, that = this
if (pos > (this.$items.length - 1) || pos < 0) return
if (this.sliding) {
return this.$element.one('slid', function () {
that.to(pos)
})
}
if (activeIndex == pos) {
return this.pause().cycle()
}
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
}
, pause: function (e) {
if (!e) this.paused = true
if (this.$element.find('.next, .prev').length && $.support.transition.end) {
this.$element.trigger($.support.transition.end)
this.cycle(true)
}
clearInterval(this.interval)
this.interval = null
return this
}
, next: function () {
if (this.sliding) return
return this.slide('next')
}
, prev: function () {
if (this.sliding) return
return this.slide('prev')
}
, slide: function (type, next) {
var $active = this.$element.find('.item.active')
, $next = next || $active[type]()
, isCycling = this.interval
, direction = type == 'next' ? 'left' : 'right'
, fallback = type == 'next' ? 'first' : 'last'
, that = this
, e
this.sliding = true
isCycling && this.pause()
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
e = $.Event('slide', {
relatedTarget: $next[0]
, direction: direction
})
if ($next.hasClass('active')) return
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
this.$element.one('slid', function () {
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
$nextIndicator && $nextIndicator.addClass('active')
})
}
if ($.support.transition && this.$element.hasClass('slide')) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
$next.addClass(direction)
this.$element.one($.support.transition.end, function () {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false
setTimeout(function () { that.$element.trigger('slid') }, 0)
})
} else {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
this.$element.trigger('slid')
}
isCycling && this.cycle()
return this
}
}
/* CAROUSEL PLUGIN DEFINITION
* ========================== */
var old = $.fn.carousel
$.fn.carousel = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('carousel')
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
, action = typeof option == 'string' ? option : options.slide
if (!data) $this.data('carousel', (data = new Carousel(this, options)))
if (typeof option == 'number') data.to(option)
else if (action) data[action]()
else if (options.interval) data.pause().cycle()
})
}
$.fn.carousel.defaults = {
interval: 5000
, pause: 'hover'
}
$.fn.carousel.Constructor = Carousel
/* CAROUSEL NO CONFLICT
* ==================== */
$.fn.carousel.noConflict = function () {
$.fn.carousel = old
return this
}
/* CAROUSEL DATA-API
* ================= */
$(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = $.extend({}, $target.data(), $this.data())
, slideIndex
$target.carousel(options)
if (slideIndex = $this.attr('data-slide-to')) {
$target.data('carousel').pause().to(slideIndex).cycle()
}
e.preventDefault()
})
}(window.jQuery);

View File

@@ -0,0 +1,167 @@
/* =============================================================
* bootstrap-collapse.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#collapse
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function ($) {
"use strict"; // jshint ;_;
/* COLLAPSE PUBLIC CLASS DEFINITION
* ================================ */
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, $.fn.collapse.defaults, options)
if (this.options.parent) {
this.$parent = $(this.options.parent)
}
this.options.toggle && this.toggle()
}
Collapse.prototype = {
constructor: Collapse
, dimension: function () {
var hasWidth = this.$element.hasClass('width')
return hasWidth ? 'width' : 'height'
}
, show: function () {
var dimension
, scroll
, actives
, hasData
if (this.transitioning || this.$element.hasClass('in')) return
dimension = this.dimension()
scroll = $.camelCase(['scroll', dimension].join('-'))
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
if (actives && actives.length) {
hasData = actives.data('collapse')
if (hasData && hasData.transitioning) return
actives.collapse('hide')
hasData || actives.data('collapse', null)
}
this.$element[dimension](0)
this.transition('addClass', $.Event('show'), 'shown')
$.support.transition && this.$element[dimension](this.$element[0][scroll])
}
, hide: function () {
var dimension
if (this.transitioning || !this.$element.hasClass('in')) return
dimension = this.dimension()
this.reset(this.$element[dimension]())
this.transition('removeClass', $.Event('hide'), 'hidden')
this.$element[dimension](0)
}
, reset: function (size) {
var dimension = this.dimension()
this.$element
.removeClass('collapse')
[dimension](size || 'auto')
[0].offsetWidth
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
return this
}
, transition: function (method, startEvent, completeEvent) {
var that = this
, complete = function () {
if (startEvent.type == 'show') that.reset()
that.transitioning = 0
that.$element.trigger(completeEvent)
}
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
this.transitioning = 1
this.$element[method]('in')
$.support.transition && this.$element.hasClass('collapse') ?
this.$element.one($.support.transition.end, complete) :
complete()
}
, toggle: function () {
this[this.$element.hasClass('in') ? 'hide' : 'show']()
}
}
/* COLLAPSE PLUGIN DEFINITION
* ========================== */
var old = $.fn.collapse
$.fn.collapse = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('collapse')
, options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.collapse.defaults = {
toggle: true
}
$.fn.collapse.Constructor = Collapse
/* COLLAPSE NO CONFLICT
* ==================== */
$.fn.collapse.noConflict = function () {
$.fn.collapse = old
return this
}
/* COLLAPSE DATA-API
* ================= */
$(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
var $this = $(this), href
, target = $this.attr('data-target')
|| e.preventDefault()
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
, option = $(target).data('collapse') ? 'toggle' : $this.data()
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
$(target).collapse(option)
})
}(window.jQuery);

View File

@@ -0,0 +1,169 @@
/* ============================================================
* bootstrap-dropdown.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function ($) {
"use strict"; // jshint ;_;
/* DROPDOWN CLASS DEFINITION
* ========================= */
var toggle = '[data-toggle=dropdown]'
, Dropdown = function (element) {
var $el = $(element).on('click.dropdown.data-api', this.toggle)
$('html').on('click.dropdown.data-api', function () {
$el.parent().removeClass('open')
})
}
Dropdown.prototype = {
constructor: Dropdown
, toggle: function (e) {
var $this = $(this)
, $parent
, isActive
if ($this.is('.disabled, :disabled')) return
$parent = getParent($this)
isActive = $parent.hasClass('open')
clearMenus()
if (!isActive) {
if ('ontouchstart' in document.documentElement) {
// if mobile we we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
}
$parent.toggleClass('open')
}
$this.focus()
return false
}
, keydown: function (e) {
var $this
, $items
, $active
, $parent
, isActive
, index
if (!/(38|40|27)/.test(e.keyCode)) return
$this = $(this)
e.preventDefault()
e.stopPropagation()
if ($this.is('.disabled, :disabled')) return
$parent = getParent($this)
isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus()
return $this.click()
}
$items = $('[role=menu] li:not(.divider):visible a', $parent)
if (!$items.length) return
index = $items.index($items.filter(':focus'))
if (e.keyCode == 38 && index > 0) index-- // up
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
$items
.eq(index)
.focus()
}
}
function clearMenus() {
$('.dropdown-backdrop').remove()
$(toggle).each(function () {
getParent($(this)).removeClass('open')
})
}
function getParent($this) {
var selector = $this.attr('data-target')
, $parent
if (!selector) {
selector = $this.attr('href')
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
$parent = selector && $(selector)
if (!$parent || !$parent.length) $parent = $this.parent()
return $parent
}
/* DROPDOWN PLUGIN DEFINITION
* ========================== */
var old = $.fn.dropdown
$.fn.dropdown = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('dropdown')
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
if (typeof option == 'string') data[option].call($this)
})
}
$.fn.dropdown.Constructor = Dropdown
/* DROPDOWN NO CONFLICT
* ==================== */
$.fn.dropdown.noConflict = function () {
$.fn.dropdown = old
return this
}
/* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */
$(document)
.on('click.dropdown.data-api', clearMenus)
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
}(window.jQuery);

View File

@@ -0,0 +1,247 @@
/* =========================================================
* bootstrap-modal.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#modals
* =========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================= */
!function ($) {
"use strict"; // jshint ;_;
/* MODAL CLASS DEFINITION
* ====================== */
var Modal = function (element, options) {
this.options = options
this.$element = $(element)
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
}
Modal.prototype = {
constructor: Modal
, toggle: function () {
return this[!this.isShown ? 'show' : 'hide']()
}
, show: function () {
var that = this
, e = $.Event('show')
this.$element.trigger(e)
if (this.isShown || e.isDefaultPrevented()) return
this.isShown = true
this.escape()
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
that.$element.appendTo(document.body) //don't move modals dom position
}
that.$element.show()
if (transition) {
that.$element[0].offsetWidth // force reflow
}
that.$element
.addClass('in')
.attr('aria-hidden', false)
that.enforceFocus()
transition ?
that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
that.$element.focus().trigger('shown')
})
}
, hide: function (e) {
e && e.preventDefault()
var that = this
e = $.Event('hide')
this.$element.trigger(e)
if (!this.isShown || e.isDefaultPrevented()) return
this.isShown = false
this.escape()
$(document).off('focusin.modal')
this.$element
.removeClass('in')
.attr('aria-hidden', true)
$.support.transition && this.$element.hasClass('fade') ?
this.hideWithTransition() :
this.hideModal()
}
, enforceFocus: function () {
var that = this
$(document).on('focusin.modal', function (e) {
if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
that.$element.focus()
}
})
}
, escape: function () {
var that = this
if (this.isShown && this.options.keyboard) {
this.$element.on('keyup.dismiss.modal', function ( e ) {
e.which == 27 && that.hide()
})
} else if (!this.isShown) {
this.$element.off('keyup.dismiss.modal')
}
}
, hideWithTransition: function () {
var that = this
, timeout = setTimeout(function () {
that.$element.off($.support.transition.end)
that.hideModal()
}, 500)
this.$element.one($.support.transition.end, function () {
clearTimeout(timeout)
that.hideModal()
})
}
, hideModal: function () {
var that = this
this.$element.hide()
this.backdrop(function () {
that.removeBackdrop()
that.$element.trigger('hidden')
})
}
, removeBackdrop: function () {
this.$backdrop && this.$backdrop.remove()
this.$backdrop = null
}
, backdrop: function (callback) {
var that = this
, animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
this.$backdrop.click(
this.options.backdrop == 'static' ?
$.proxy(this.$element[0].focus, this.$element[0])
: $.proxy(this.hide, this)
)
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
this.$backdrop.addClass('in')
if (!callback) return
doAnimate ?
this.$backdrop.one($.support.transition.end, callback) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
$.support.transition && this.$element.hasClass('fade')?
this.$backdrop.one($.support.transition.end, callback) :
callback()
} else if (callback) {
callback()
}
}
}
/* MODAL PLUGIN DEFINITION
* ======================= */
var old = $.fn.modal
$.fn.modal = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('modal')
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option]()
else if (options.show) data.show()
})
}
$.fn.modal.defaults = {
backdrop: true
, keyboard: true
, show: true
}
$.fn.modal.Constructor = Modal
/* MODAL NO CONFLICT
* ================= */
$.fn.modal.noConflict = function () {
$.fn.modal = old
return this
}
/* MODAL DATA-API
* ============== */
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
, href = $this.attr('href')
, $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
, option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
e.preventDefault()
$target
.modal(option)
.one('hide', function () {
$this.focus()
})
})
}(window.jQuery);

View File

@@ -0,0 +1,114 @@
/* ===========================================================
* bootstrap-popover.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#popovers
* ===========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* =========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* POPOVER PUBLIC CLASS DEFINITION
* =============================== */
var Popover = function (element, options) {
this.init('popover', element, options)
}
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
========================================== */
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
constructor: Popover
, setContent: function () {
var $tip = this.tip()
, title = this.getTitle()
, content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
$tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
$tip.removeClass('fade top bottom left right in')
}
, hasContent: function () {
return this.getTitle() || this.getContent()
}
, getContent: function () {
var content
, $e = this.$element
, o = this.options
content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|| $e.attr('data-content')
return content
}
, tip: function () {
if (!this.$tip) {
this.$tip = $(this.options.template)
}
return this.$tip
}
, destroy: function () {
this.hide().$element.off('.' + this.type).removeData(this.type)
}
})
/* POPOVER PLUGIN DEFINITION
* ======================= */
var old = $.fn.popover
$.fn.popover = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('popover')
, options = typeof option == 'object' && option
if (!data) $this.data('popover', (data = new Popover(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.popover.Constructor = Popover
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
placement: 'right'
, trigger: 'click'
, content: ''
, template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
/* POPOVER NO CONFLICT
* =================== */
$.fn.popover.noConflict = function () {
$.fn.popover = old
return this
}
}(window.jQuery);

View File

@@ -0,0 +1,162 @@
/* =============================================================
* bootstrap-scrollspy.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* SCROLLSPY CLASS DEFINITION
* ========================== */
function ScrollSpy(element, options) {
var process = $.proxy(this.process, this)
, $element = $(element).is('body') ? $(window) : $(element)
, href
this.options = $.extend({}, $.fn.scrollspy.defaults, options)
this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
this.selector = (this.options.target
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|| '') + ' .nav li > a'
this.$body = $('body')
this.refresh()
this.process()
}
ScrollSpy.prototype = {
constructor: ScrollSpy
, refresh: function () {
var self = this
, $targets
this.offsets = $([])
this.targets = $([])
$targets = this.$body
.find(this.selector)
.map(function () {
var $el = $(this)
, href = $el.data('target') || $el.attr('href')
, $href = /^#\w/.test(href) && $(href)
return ( $href
&& $href.length
&& [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
self.offsets.push(this[0])
self.targets.push(this[1])
})
}
, process: function () {
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
, scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
, maxScroll = scrollHeight - this.$scrollElement.height()
, offsets = this.offsets
, targets = this.targets
, activeTarget = this.activeTarget
, i
if (scrollTop >= maxScroll) {
return activeTarget != (i = targets.last()[0])
&& this.activate ( i )
}
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
&& this.activate( targets[i] )
}
}
, activate: function (target) {
var active
, selector
this.activeTarget = target
$(this.selector)
.parent('.active')
.removeClass('active')
selector = this.selector
+ '[data-target="' + target + '"],'
+ this.selector + '[href="' + target + '"]'
active = $(selector)
.parent('li')
.addClass('active')
if (active.parent('.dropdown-menu').length) {
active = active.closest('li.dropdown').addClass('active')
}
active.trigger('activate')
}
}
/* SCROLLSPY PLUGIN DEFINITION
* =========================== */
var old = $.fn.scrollspy
$.fn.scrollspy = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('scrollspy')
, options = typeof option == 'object' && option
if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.scrollspy.Constructor = ScrollSpy
$.fn.scrollspy.defaults = {
offset: 10
}
/* SCROLLSPY NO CONFLICT
* ===================== */
$.fn.scrollspy.noConflict = function () {
$.fn.scrollspy = old
return this
}
/* SCROLLSPY DATA-API
* ================== */
$(window).on('load', function () {
$('[data-spy="scroll"]').each(function () {
var $spy = $(this)
$spy.scrollspy($spy.data())
})
})
}(window.jQuery);

View File

@@ -0,0 +1,144 @@
/* ========================================================
* bootstrap-tab.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* TAB CLASS DEFINITION
* ==================== */
var Tab = function (element) {
this.element = $(element)
}
Tab.prototype = {
constructor: Tab
, show: function () {
var $this = this.element
, $ul = $this.closest('ul:not(.dropdown-menu)')
, selector = $this.attr('data-target')
, previous
, $target
, e
if (!selector) {
selector = $this.attr('href')
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
if ( $this.parent('li').hasClass('active') ) return
previous = $ul.find('.active:last a')[0]
e = $.Event('show', {
relatedTarget: previous
})
$this.trigger(e)
if (e.isDefaultPrevented()) return
$target = $(selector)
this.activate($this.parent('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown'
, relatedTarget: previous
})
})
}
, activate: function ( element, container, callback) {
var $active = container.find('> .active')
, transition = callback
&& $.support.transition
&& $active.hasClass('fade')
function next() {
$active
.removeClass('active')
.find('> .dropdown-menu > .active')
.removeClass('active')
element.addClass('active')
if (transition) {
element[0].offsetWidth // reflow for transition
element.addClass('in')
} else {
element.removeClass('fade')
}
if ( element.parent('.dropdown-menu') ) {
element.closest('li.dropdown').addClass('active')
}
callback && callback()
}
transition ?
$active.one($.support.transition.end, next) :
next()
$active.removeClass('in')
}
}
/* TAB PLUGIN DEFINITION
* ===================== */
var old = $.fn.tab
$.fn.tab = function ( option ) {
return this.each(function () {
var $this = $(this)
, data = $this.data('tab')
if (!data) $this.data('tab', (data = new Tab(this)))
if (typeof option == 'string') data[option]()
})
}
$.fn.tab.Constructor = Tab
/* TAB NO CONFLICT
* =============== */
$.fn.tab.noConflict = function () {
$.fn.tab = old
return this
}
/* TAB DATA-API
* ============ */
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})
}(window.jQuery);

View File

@@ -0,0 +1,361 @@
/* ===========================================================
* bootstrap-tooltip.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame
* ===========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* TOOLTIP PUBLIC CLASS DEFINITION
* =============================== */
var Tooltip = function (element, options) {
this.init('tooltip', element, options)
}
Tooltip.prototype = {
constructor: Tooltip
, init: function (type, element, options) {
var eventIn
, eventOut
, triggers
, trigger
, i
this.type = type
this.$element = $(element)
this.options = this.getOptions(options)
this.enabled = true
triggers = this.options.trigger.split(' ')
for (i = triggers.length; i--;) {
trigger = triggers[i]
if (trigger == 'click') {
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (trigger != 'manual') {
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
}
}
this.options.selector ?
(this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
this.fixTitle()
}
, getOptions: function (options) {
options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
if (options.delay && typeof options.delay == 'number') {
options.delay = {
show: options.delay
, hide: options.delay
}
}
return options
}
, enter: function (e) {
var defaults = $.fn[this.type].defaults
, options = {}
, self
this._options && $.each(this._options, function (key, value) {
if (defaults[key] != value) options[key] = value
}, this)
self = $(e.currentTarget)[this.type](options).data(this.type)
if (!self.options.delay || !self.options.delay.show) return self.show()
clearTimeout(this.timeout)
self.hoverState = 'in'
this.timeout = setTimeout(function() {
if (self.hoverState == 'in') self.show()
}, self.options.delay.show)
}
, leave: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
if (this.timeout) clearTimeout(this.timeout)
if (!self.options.delay || !self.options.delay.hide) return self.hide()
self.hoverState = 'out'
this.timeout = setTimeout(function() {
if (self.hoverState == 'out') self.hide()
}, self.options.delay.hide)
}
, show: function () {
var $tip
, pos
, actualWidth
, actualHeight
, placement
, tp
, e = $.Event('show')
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip = this.tip()
this.setContent()
if (this.options.animation) {
$tip.addClass('fade')
}
placement = typeof this.options.placement == 'function' ?
this.options.placement.call(this, $tip[0], this.$element[0]) :
this.options.placement
$tip
.detach()
.css({ top: 0, left: 0, display: 'block' })
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
pos = this.getPosition()
actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight
switch (placement) {
case 'bottom':
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
break
case 'top':
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
break
case 'left':
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
break
case 'right':
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
break
}
this.applyPlacement(tp, placement)
this.$element.trigger('shown')
}
}
, applyPlacement: function(offset, placement){
var $tip = this.tip()
, width = $tip[0].offsetWidth
, height = $tip[0].offsetHeight
, actualWidth
, actualHeight
, delta
, replace
$tip
.offset(offset)
.addClass(placement)
.addClass('in')
actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight
if (placement == 'top' && actualHeight != height) {
offset.top = offset.top + height - actualHeight
replace = true
}
if (placement == 'bottom' || placement == 'top') {
delta = 0
if (offset.left < 0){
delta = offset.left * -2
offset.left = 0
$tip.offset(offset)
actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight
}
this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
} else {
this.replaceArrow(actualHeight - height, actualHeight, 'top')
}
if (replace) $tip.offset(offset)
}
, replaceArrow: function(delta, dimension, position){
this
.arrow()
.css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
}
, setContent: function () {
var $tip = this.tip()
, title = this.getTitle()
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
$tip.removeClass('fade in top bottom left right')
}
, hide: function () {
var that = this
, $tip = this.tip()
, e = $.Event('hide')
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip.removeClass('in')
function removeWithAnimation() {
var timeout = setTimeout(function () {
$tip.off($.support.transition.end).detach()
}, 500)
$tip.one($.support.transition.end, function () {
clearTimeout(timeout)
$tip.detach()
})
}
$.support.transition && this.$tip.hasClass('fade') ?
removeWithAnimation() :
$tip.detach()
this.$element.trigger('hidden')
return this
}
, fixTitle: function () {
var $e = this.$element
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
}
}
, hasContent: function () {
return this.getTitle()
}
, getPosition: function () {
var el = this.$element[0]
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
width: el.offsetWidth
, height: el.offsetHeight
}, this.$element.offset())
}
, getTitle: function () {
var title
, $e = this.$element
, o = this.options
title = $e.attr('data-original-title')
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
return title
}
, tip: function () {
return this.$tip = this.$tip || $(this.options.template)
}
, arrow: function(){
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
}
, validate: function () {
if (!this.$element[0].parentNode) {
this.hide()
this.$element = null
this.options = null
}
}
, enable: function () {
this.enabled = true
}
, disable: function () {
this.enabled = false
}
, toggleEnabled: function () {
this.enabled = !this.enabled
}
, toggle: function (e) {
var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
self.tip().hasClass('in') ? self.hide() : self.show()
}
, destroy: function () {
this.hide().$element.off('.' + this.type).removeData(this.type)
}
}
/* TOOLTIP PLUGIN DEFINITION
* ========================= */
var old = $.fn.tooltip
$.fn.tooltip = function ( option ) {
return this.each(function () {
var $this = $(this)
, data = $this.data('tooltip')
, options = typeof option == 'object' && option
if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.tooltip.Constructor = Tooltip
$.fn.tooltip.defaults = {
animation: true
, placement: 'top'
, selector: false
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
, trigger: 'hover focus'
, title: ''
, delay: 0
, html: false
, container: false
}
/* TOOLTIP NO CONFLICT
* =================== */
$.fn.tooltip.noConflict = function () {
$.fn.tooltip = old
return this
}
}(window.jQuery);

View File

@@ -0,0 +1,60 @@
/* ===================================================
* bootstrap-transition.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#transitions
* ===================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$(function () {
$.support.transition = (function () {
var transitionEnd = (function () {
var el = document.createElement('bootstrap')
, transEndEventNames = {
'WebkitTransition' : 'webkitTransitionEnd'
, 'MozTransition' : 'transitionend'
, 'OTransition' : 'oTransitionEnd otransitionend'
, 'transition' : 'transitionend'
}
, name
for (name in transEndEventNames){
if (el.style[name] !== undefined) {
return transEndEventNames[name]
}
}
}())
return transitionEnd && {
end: transitionEnd
}
})()
})
}(window.jQuery);

View File

@@ -0,0 +1,335 @@
/* =============================================================
* bootstrap-typeahead.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#typeahead
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function($){
"use strict"; // jshint ;_;
/* TYPEAHEAD PUBLIC CLASS DEFINITION
* ================================= */
var Typeahead = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, $.fn.typeahead.defaults, options)
this.matcher = this.options.matcher || this.matcher
this.sorter = this.options.sorter || this.sorter
this.highlighter = this.options.highlighter || this.highlighter
this.updater = this.options.updater || this.updater
this.source = this.options.source
this.$menu = $(this.options.menu)
this.shown = false
this.listen()
}
Typeahead.prototype = {
constructor: Typeahead
, select: function () {
var val = this.$menu.find('.active').attr('data-value')
this.$element
.val(this.updater(val))
.change()
return this.hide()
}
, updater: function (item) {
return item
}
, show: function () {
var pos = $.extend({}, this.$element.position(), {
height: this.$element[0].offsetHeight
})
this.$menu
.insertAfter(this.$element)
.css({
top: pos.top + pos.height
, left: pos.left
})
.show()
this.shown = true
return this
}
, hide: function () {
this.$menu.hide()
this.shown = false
return this
}
, lookup: function (event) {
var items
this.query = this.$element.val()
if (!this.query || this.query.length < this.options.minLength) {
return this.shown ? this.hide() : this
}
items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
return items ? this.process(items) : this
}
, process: function (items) {
var that = this
items = $.grep(items, function (item) {
return that.matcher(item)
})
items = this.sorter(items)
if (!items.length) {
return this.shown ? this.hide() : this
}
return this.render(items.slice(0, this.options.items)).show()
}
, matcher: function (item) {
return ~item.toLowerCase().indexOf(this.query.toLowerCase())
}
, sorter: function (items) {
var beginswith = []
, caseSensitive = []
, caseInsensitive = []
, item
while (item = items.shift()) {
if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
else if (~item.indexOf(this.query)) caseSensitive.push(item)
else caseInsensitive.push(item)
}
return beginswith.concat(caseSensitive, caseInsensitive)
}
, highlighter: function (item) {
var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>'
})
}
, render: function (items) {
var that = this
items = $(items).map(function (i, item) {
i = $(that.options.item).attr('data-value', item)
i.find('a').html(that.highlighter(item))
return i[0]
})
items.first().addClass('active')
this.$menu.html(items)
return this
}
, next: function (event) {
var active = this.$menu.find('.active').removeClass('active')
, next = active.next()
if (!next.length) {
next = $(this.$menu.find('li')[0])
}
next.addClass('active')
}
, prev: function (event) {
var active = this.$menu.find('.active').removeClass('active')
, prev = active.prev()
if (!prev.length) {
prev = this.$menu.find('li').last()
}
prev.addClass('active')
}
, listen: function () {
this.$element
.on('focus', $.proxy(this.focus, this))
.on('blur', $.proxy(this.blur, this))
.on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this))
if (this.eventSupported('keydown')) {
this.$element.on('keydown', $.proxy(this.keydown, this))
}
this.$menu
.on('click', $.proxy(this.click, this))
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
}
, eventSupported: function(eventName) {
var isSupported = eventName in this.$element
if (!isSupported) {
this.$element.setAttribute(eventName, 'return;')
isSupported = typeof this.$element[eventName] === 'function'
}
return isSupported
}
, move: function (e) {
if (!this.shown) return
switch(e.keyCode) {
case 9: // tab
case 13: // enter
case 27: // escape
e.preventDefault()
break
case 38: // up arrow
e.preventDefault()
this.prev()
break
case 40: // down arrow
e.preventDefault()
this.next()
break
}
e.stopPropagation()
}
, keydown: function (e) {
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
this.move(e)
}
, keypress: function (e) {
if (this.suppressKeyPressRepeat) return
this.move(e)
}
, keyup: function (e) {
switch(e.keyCode) {
case 40: // down arrow
case 38: // up arrow
case 16: // shift
case 17: // ctrl
case 18: // alt
break
case 9: // tab
case 13: // enter
if (!this.shown) return
this.select()
break
case 27: // escape
if (!this.shown) return
this.hide()
break
default:
this.lookup()
}
e.stopPropagation()
e.preventDefault()
}
, focus: function (e) {
this.focused = true
}
, blur: function (e) {
this.focused = false
if (!this.mousedover && this.shown) this.hide()
}
, click: function (e) {
e.stopPropagation()
e.preventDefault()
this.select()
this.$element.focus()
}
, mouseenter: function (e) {
this.mousedover = true
this.$menu.find('.active').removeClass('active')
$(e.currentTarget).addClass('active')
}
, mouseleave: function (e) {
this.mousedover = false
if (!this.focused && this.shown) this.hide()
}
}
/* TYPEAHEAD PLUGIN DEFINITION
* =========================== */
var old = $.fn.typeahead
$.fn.typeahead = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('typeahead')
, options = typeof option == 'object' && option
if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.typeahead.defaults = {
source: []
, items: 8
, menu: '<ul class="typeahead dropdown-menu"></ul>'
, item: '<li><a href="#"></a></li>'
, minLength: 1
}
$.fn.typeahead.Constructor = Typeahead
/* TYPEAHEAD NO CONFLICT
* =================== */
$.fn.typeahead.noConflict = function () {
$.fn.typeahead = old
return this
}
/* TYPEAHEAD DATA-API
* ================== */
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
var $this = $(this)
if ($this.data('typeahead')) return
$this.typeahead($this.data())
})
}(window.jQuery);

View File

@@ -0,0 +1,34 @@
//
// Accordion
// --------------------------------------------------
// Parent container
.accordion {
margin-bottom: @baseLineHeight;
}
// Group == heading + body
.accordion-group {
margin-bottom: 2px;
border: 1px solid #e5e5e5;
.border-radius(@baseBorderRadius);
}
.accordion-heading {
border-bottom: 0;
}
.accordion-heading .accordion-toggle {
display: block;
padding: 8px 15px;
}
// General toggle styles
.accordion-toggle {
cursor: pointer;
}
// Inner needs the styles because you can't animate properly with any styles on the element
.accordion-inner {
padding: 9px 15px;
border-top: 1px solid #e5e5e5;
}

View File

@@ -0,0 +1,79 @@
//
// Alerts
// --------------------------------------------------
// Base styles
// -------------------------
.alert {
padding: 8px 35px 8px 14px;
margin-bottom: @baseLineHeight;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
background-color: @warningBackground;
border: 1px solid @warningBorder;
.border-radius(@baseBorderRadius);
}
.alert,
.alert h4 {
// Specified for the h4 to prevent conflicts of changing @headingsColor
color: @warningText;
}
.alert h4 {
margin: 0;
}
// Adjust close link position
.alert .close {
position: relative;
top: -2px;
right: -21px;
line-height: @baseLineHeight;
}
// Alternate styles
// -------------------------
.alert-success {
background-color: @successBackground;
border-color: @successBorder;
color: @successText;
}
.alert-success h4 {
color: @successText;
}
.alert-danger,
.alert-error {
background-color: @errorBackground;
border-color: @errorBorder;
color: @errorText;
}
.alert-danger h4,
.alert-error h4 {
color: @errorText;
}
.alert-info {
background-color: @infoBackground;
border-color: @infoBorder;
color: @infoText;
}
.alert-info h4 {
color: @infoText;
}
// Block alerts
// -------------------------
.alert-block {
padding-top: 14px;
padding-bottom: 14px;
}
.alert-block > p,
.alert-block > ul {
margin-bottom: 0;
}
.alert-block p + p {
margin-top: 5px;
}

View File

@@ -0,0 +1,63 @@
/*!
* Bootstrap v2.3.2
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
// Core variables and mixins
@import "variables.less"; // Modify this for custom colors, font-sizes, etc
@import "mixins.less";
// CSS Reset
@import "reset.less";
// Grid system and page structure
@import "scaffolding.less";
@import "grid.less";
@import "layouts.less";
// Base CSS
@import "type.less";
@import "code.less";
@import "forms.less";
@import "tables.less";
// Components: common
@import "sprites.less";
@import "dropdowns.less";
@import "wells.less";
@import "component-animations.less";
@import "close.less";
// Components: Buttons & Alerts
@import "buttons.less";
@import "button-groups.less";
@import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
// Components: Nav
// @import "navs.less";
// @import "navbar.less";
// @import "breadcrumbs.less";
// @import "pagination.less";
// @import "pager.less";
// Components: Popovers
@import "modals.less";
@import "tooltip.less";
@import "popovers.less";
// Components: Misc
@import "thumbnails.less";
@import "media.less";
@import "labels-badges.less";
@import "progress-bars.less";
@import "accordion.less";
@import "carousel.less";
@import "hero-unit.less";
// Utility classes
@import "utilities.less"; // Has to be last to override when necessary

View File

@@ -0,0 +1,24 @@
//
// Breadcrumbs
// --------------------------------------------------
.breadcrumb {
padding: 8px 15px;
margin: 0 0 @baseLineHeight;
list-style: none;
background-color: #f5f5f5;
.border-radius(@baseBorderRadius);
> li {
display: inline-block;
.ie7-inline-block();
text-shadow: 0 1px 0 @white;
> .divider {
padding: 0 5px;
color: #ccc;
}
}
> .active {
color: @grayLight;
}
}

View File

@@ -0,0 +1,229 @@
//
// Button groups
// --------------------------------------------------
// Make the div behave like a button
.btn-group {
position: relative;
display: inline-block;
.ie7-inline-block();
font-size: 0; // remove as part 1 of font-size inline-block hack
vertical-align: middle; // match .btn alignment given font-size hack above
white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
.ie7-restore-left-whitespace();
}
// Space out series of button groups
.btn-group + .btn-group {
margin-left: 5px;
}
// Optional: Group multiple button groups together for a toolbar
.btn-toolbar {
font-size: 0; // Hack to remove whitespace that results from using inline-block
margin-top: @baseLineHeight / 2;
margin-bottom: @baseLineHeight / 2;
> .btn + .btn,
> .btn-group + .btn,
> .btn + .btn-group {
margin-left: 5px;
}
}
// Float them, remove border radius, then re-add to first and last elements
.btn-group > .btn {
position: relative;
.border-radius(0);
}
.btn-group > .btn + .btn {
margin-left: -1px;
}
.btn-group > .btn,
.btn-group > .dropdown-menu,
.btn-group > .popover {
font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack
}
// Reset fonts for other sizes
.btn-group > .btn-mini {
font-size: @fontSizeMini;
}
.btn-group > .btn-small {
font-size: @fontSizeSmall;
}
.btn-group > .btn-large {
font-size: @fontSizeLarge;
}
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
.btn-group > .btn:first-child {
margin-left: 0;
.border-top-left-radius(@baseBorderRadius);
.border-bottom-left-radius(@baseBorderRadius);
}
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
.btn-group > .btn:last-child,
.btn-group > .dropdown-toggle {
.border-top-right-radius(@baseBorderRadius);
.border-bottom-right-radius(@baseBorderRadius);
}
// Reset corners for large buttons
.btn-group > .btn.large:first-child {
margin-left: 0;
.border-top-left-radius(@borderRadiusLarge);
.border-bottom-left-radius(@borderRadiusLarge);
}
.btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle {
.border-top-right-radius(@borderRadiusLarge);
.border-bottom-right-radius(@borderRadiusLarge);
}
// On hover/focus/active, bring the proper btn to front
.btn-group > .btn:hover,
.btn-group > .btn:focus,
.btn-group > .btn:active,
.btn-group > .btn.active {
z-index: 2;
}
// On active and open, don't show outline
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
outline: 0;
}
// Split button dropdowns
// ----------------------
// Give the line between buttons some depth
.btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
.box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
*padding-top: 5px;
*padding-bottom: 5px;
}
.btn-group > .btn-mini + .dropdown-toggle {
padding-left: 5px;
padding-right: 5px;
*padding-top: 2px;
*padding-bottom: 2px;
}
.btn-group > .btn-small + .dropdown-toggle {
*padding-top: 5px;
*padding-bottom: 4px;
}
.btn-group > .btn-large + .dropdown-toggle {
padding-left: 12px;
padding-right: 12px;
*padding-top: 7px;
*padding-bottom: 7px;
}
.btn-group.open {
// The clickable button for toggling the menu
// Remove the gradient and set the same inset shadow as the :active state
.dropdown-toggle {
background-image: none;
.box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
}
// Keep the hover's background when dropdown is open
.btn.dropdown-toggle {
background-color: @btnBackgroundHighlight;
}
.btn-primary.dropdown-toggle {
background-color: @btnPrimaryBackgroundHighlight;
}
.btn-warning.dropdown-toggle {
background-color: @btnWarningBackgroundHighlight;
}
.btn-danger.dropdown-toggle {
background-color: @btnDangerBackgroundHighlight;
}
.btn-success.dropdown-toggle {
background-color: @btnSuccessBackgroundHighlight;
}
.btn-info.dropdown-toggle {
background-color: @btnInfoBackgroundHighlight;
}
.btn-inverse.dropdown-toggle {
background-color: @btnInverseBackgroundHighlight;
}
}
// Reposition the caret
.btn .caret {
margin-top: 8px;
margin-left: 0;
}
// Carets in other button sizes
.btn-large .caret {
margin-top: 6px;
}
.btn-large .caret {
border-left-width: 5px;
border-right-width: 5px;
border-top-width: 5px;
}
.btn-mini .caret,
.btn-small .caret {
margin-top: 8px;
}
// Upside down carets for .dropup
.dropup .btn-large .caret {
border-bottom-width: 5px;
}
// Account for other colors
.btn-primary,
.btn-warning,
.btn-danger,
.btn-info,
.btn-success,
.btn-inverse {
.caret {
border-top-color: @white;
border-bottom-color: @white;
}
}
// Vertical button groups
// ----------------------
.btn-group-vertical {
display: inline-block; // makes buttons only take up the width they need
.ie7-inline-block();
}
.btn-group-vertical > .btn {
display: block;
float: none;
max-width: 100%;
.border-radius(0);
}
.btn-group-vertical > .btn + .btn {
margin-left: 0;
margin-top: -1px;
}
.btn-group-vertical > .btn:first-child {
.border-radius(@baseBorderRadius @baseBorderRadius 0 0);
}
.btn-group-vertical > .btn:last-child {
.border-radius(0 0 @baseBorderRadius @baseBorderRadius);
}
.btn-group-vertical > .btn-large:first-child {
.border-radius(@borderRadiusLarge @borderRadiusLarge 0 0);
}
.btn-group-vertical > .btn-large:last-child {
.border-radius(0 0 @borderRadiusLarge @borderRadiusLarge);
}

View File

@@ -0,0 +1,228 @@
//
// Buttons
// --------------------------------------------------
// Base styles
// --------------------------------------------------
// Core
.btn {
display: inline-block;
.ie7-inline-block();
padding: 4px 12px;
margin-bottom: 0; // For input.btn
font-size: @baseFontSize;
line-height: @baseLineHeight;
text-align: center;
vertical-align: middle;
cursor: pointer;
.buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));
border: 1px solid @btnBorder;
*border: 0; // Remove the border to prevent IE7's black border on input:focus
border-bottom-color: darken(@btnBorder, 10%);
.border-radius(@baseBorderRadius);
.ie7-restore-left-whitespace(); // Give IE7 some love
.box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
// Hover/focus state
&:hover,
&:focus {
color: @grayDark;
text-decoration: none;
background-position: 0 -15px;
// transition is only when going to hover/focus, otherwise the background
// behind the gradient (there for IE<=9 fallback) gets mismatched
.transition(background-position .1s linear);
}
// Focus state for keyboard and accessibility
&:focus {
.tab-focus();
}
// Active state
&.active,
&:active {
background-image: none;
outline: 0;
.box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
}
// Disabled state
&.disabled,
&[disabled] {
cursor: default;
background-image: none;
.opacity(65);
.box-shadow(none);
}
}
// Button Sizes
// --------------------------------------------------
// Large
.btn-large {
padding: @paddingLarge;
font-size: @fontSizeLarge;
.border-radius(@borderRadiusLarge);
}
.btn-large [class^="icon-"],
.btn-large [class*=" icon-"] {
margin-top: 4px;
}
// Small
.btn-small {
padding: @paddingSmall;
font-size: @fontSizeSmall;
.border-radius(@borderRadiusSmall);
}
.btn-small [class^="icon-"],
.btn-small [class*=" icon-"] {
margin-top: 0;
}
.btn-mini [class^="icon-"],
.btn-mini [class*=" icon-"] {
margin-top: -1px;
}
// Mini
.btn-mini {
padding: @paddingMini;
font-size: @fontSizeMini;
.border-radius(@borderRadiusSmall);
}
// Block button
// -------------------------
.btn-block {
display: block;
width: 100%;
padding-left: 0;
padding-right: 0;
.box-sizing(border-box);
}
// Vertically space out multiple block buttons
.btn-block + .btn-block {
margin-top: 5px;
}
// Specificity overrides
input[type="submit"],
input[type="reset"],
input[type="button"] {
&.btn-block {
width: 100%;
}
}
// Alternate buttons
// --------------------------------------------------
// Provide *some* extra contrast for those who can get it
.btn-primary.active,
.btn-warning.active,
.btn-danger.active,
.btn-success.active,
.btn-info.active,
.btn-inverse.active {
color: rgba(255,255,255,.75);
}
// Set the backgrounds
// -------------------------
.btn-primary {
.buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
}
// Warning appears are orange
.btn-warning {
.buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
}
// Danger and error appear as red
.btn-danger {
.buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
}
// Success appears as green
.btn-success {
.buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
}
// Info appears as a neutral blue
.btn-info {
.buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
}
// Inverse appears as dark gray
.btn-inverse {
.buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
}
// Cross-browser Jank
// --------------------------------------------------
button.btn,
input[type="submit"].btn {
// Firefox 3.6 only I believe
&::-moz-focus-inner {
padding: 0;
border: 0;
}
// IE7 has some default padding on button controls
*padding-top: 3px;
*padding-bottom: 3px;
&.btn-large {
*padding-top: 7px;
*padding-bottom: 7px;
}
&.btn-small {
*padding-top: 3px;
*padding-bottom: 3px;
}
&.btn-mini {
*padding-top: 1px;
*padding-bottom: 1px;
}
}
// Link buttons
// --------------------------------------------------
// Make a button look and behave like a link
.btn-link,
.btn-link:active,
.btn-link[disabled] {
background-color: transparent;
background-image: none;
.box-shadow(none);
}
.btn-link {
border-color: transparent;
cursor: pointer;
color: @linkColor;
.border-radius(0);
}
.btn-link:hover,
.btn-link:focus {
color: @linkColorHover;
text-decoration: underline;
background-color: transparent;
}
.btn-link[disabled]:hover,
.btn-link[disabled]:focus {
color: @grayDark;
text-decoration: none;
}

View File

@@ -0,0 +1,158 @@
//
// Carousel
// --------------------------------------------------
.carousel {
position: relative;
margin-bottom: @baseLineHeight;
line-height: 1;
}
.carousel-inner {
overflow: hidden;
width: 100%;
position: relative;
}
.carousel-inner {
> .item {
display: none;
position: relative;
.transition(.6s ease-in-out left);
// Account for jankitude on images
> img,
> a > img {
display: block;
line-height: 1;
}
}
> .active,
> .next,
> .prev { display: block; }
> .active {
left: 0;
}
> .next,
> .prev {
position: absolute;
top: 0;
width: 100%;
}
> .next {
left: 100%;
}
> .prev {
left: -100%;
}
> .next.left,
> .prev.right {
left: 0;
}
> .active.left {
left: -100%;
}
> .active.right {
left: 100%;
}
}
// Left/right controls for nav
// ---------------------------
.carousel-control {
position: absolute;
top: 40%;
left: 15px;
width: 40px;
height: 40px;
margin-top: -20px;
font-size: 60px;
font-weight: 100;
line-height: 30px;
color: @white;
text-align: center;
background: @grayDarker;
border: 3px solid @white;
.border-radius(23px);
.opacity(50);
// we can't have this transition here
// because webkit cancels the carousel
// animation if you trip this while
// in the middle of another animation
// ;_;
// .transition(opacity .2s linear);
// Reposition the right one
&.right {
left: auto;
right: 15px;
}
// Hover/focus state
&:hover,
&:focus {
color: @white;
text-decoration: none;
.opacity(90);
}
}
// Carousel indicator pips
// -----------------------------
.carousel-indicators {
position: absolute;
top: 15px;
right: 15px;
z-index: 5;
margin: 0;
list-style: none;
li {
display: block;
float: left;
width: 10px;
height: 10px;
margin-left: 5px;
text-indent: -999px;
background-color: #ccc;
background-color: rgba(255,255,255,.25);
border-radius: 5px;
}
.active {
background-color: #fff;
}
}
// Caption for text below images
// -----------------------------
.carousel-caption {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 15px;
background: @grayDark;
background: rgba(0,0,0,.75);
}
.carousel-caption h4,
.carousel-caption p {
color: @white;
line-height: @baseLineHeight;
}
.carousel-caption h4 {
margin: 0 0 5px;
}
.carousel-caption p {
margin-bottom: 0;
}

View File

@@ -0,0 +1,32 @@
//
// Close icons
// --------------------------------------------------
.close {
float: right;
font-size: 20px;
font-weight: bold;
line-height: @baseLineHeight;
color: @black;
text-shadow: 0 1px 0 rgba(255,255,255,1);
.opacity(20);
&:hover,
&:focus {
color: @black;
text-decoration: none;
cursor: pointer;
.opacity(40);
}
}
// Additional properties for button version
// iOS requires the button element instead of an anchor tag.
// If you want the anchor version, it requires `href="#"`.
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}

View File

@@ -0,0 +1,61 @@
//
// Code (inline and blocK)
// --------------------------------------------------
// Inline and block code styles
code,
pre {
padding: 0 3px 2px;
#font > #family > .monospace;
font-size: @baseFontSize - 2;
color: @grayDark;
.border-radius(3px);
}
// Inline code
code {
padding: 2px 4px;
color: #d14;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
white-space: nowrap;
}
// Blocks of code
pre {
display: block;
padding: (@baseLineHeight - 1) / 2;
margin: 0 0 @baseLineHeight / 2;
font-size: @baseFontSize - 1; // 14px to 13px
line-height: @baseLineHeight;
word-break: break-all;
word-wrap: break-word;
white-space: pre;
white-space: pre-wrap;
background-color: #f5f5f5;
border: 1px solid #ccc; // fallback for IE7-8
border: 1px solid rgba(0,0,0,.15);
.border-radius(@baseBorderRadius);
// Make prettyprint styles more spaced out for readability
&.prettyprint {
margin-bottom: @baseLineHeight;
}
// Account for some code outputs that place code tags in pre tags
code {
padding: 0;
color: inherit;
white-space: pre;
white-space: pre-wrap;
background-color: transparent;
border: 0;
}
}
// Enable scrollable blocks of code
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}

View File

@@ -0,0 +1,22 @@
//
// Component animations
// --------------------------------------------------
.fade {
opacity: 0;
.transition(opacity .15s linear);
&.in {
opacity: 1;
}
}
.collapse {
position: relative;
height: 0;
overflow: hidden;
.transition(height .35s ease);
&.in {
height: auto;
}
}

View File

@@ -0,0 +1,248 @@
//
// Dropdown menus
// --------------------------------------------------
// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
.dropup,
.dropdown {
position: relative;
}
.dropdown-toggle {
// The caret makes the toggle a bit too tall in IE7
*margin-bottom: -3px;
}
.dropdown-toggle:active,
.open .dropdown-toggle {
outline: 0;
}
// Dropdown arrow/caret
// --------------------
.caret {
display: inline-block;
width: 0;
height: 0;
vertical-align: top;
border-top: 4px solid @black;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
content: "";
}
// Place the caret
.dropdown .caret {
margin-top: 8px;
margin-left: 2px;
}
// The dropdown menu (ul)
// ----------------------
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: @zindexDropdown;
display: none; // none by default, but block on "open" of the menu
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0; // override default ul
list-style: none;
background-color: @dropdownBackground;
border: 1px solid #ccc; // Fallback for IE7-8
border: 1px solid @dropdownBorder;
*border-right-width: 2px;
*border-bottom-width: 2px;
.border-radius(6px);
.box-shadow(0 5px 10px rgba(0,0,0,.2));
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
// Aligns the dropdown menu to right
&.pull-right {
right: 0;
left: auto;
}
// Dividers (basically an hr) within the dropdown
.divider {
.nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
}
// Links within the dropdown menu
> li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: @baseLineHeight;
color: @dropdownLinkColor;
white-space: nowrap;
}
}
// Hover/Focus state
// -----------
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a,
.dropdown-submenu:focus > a {
text-decoration: none;
color: @dropdownLinkColorHover;
#gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));
}
// Active state
// ------------
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: @dropdownLinkColorActive;
text-decoration: none;
outline: 0;
#gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%));
}
// Disabled state
// --------------
// Gray out text and ensure the hover/focus state remains gray
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: @grayLight;
}
// Nuke hover/focus effects
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none; // Remove CSS gradient
.reset-filter();
cursor: default;
}
// Open state for the dropdown
// ---------------------------
.open {
// IE7's z-index only goes to the nearest positioned ancestor, which would
// make the menu appear below buttons that appeared later on the page
*z-index: @zindexDropdown;
& > .dropdown-menu {
display: block;
}
}
// Backdrop to catch body clicks on mobile, etc.
// ---------------------------
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: @zindexDropdown - 10;
}
// Right aligned dropdowns
// ---------------------------
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
// Allow for dropdowns to go bottom up (aka, dropup-menu)
// ------------------------------------------------------
// Just add .dropup after the standard .dropdown class and you're set, bro.
// TODO: abstract this so that the navbar fixed styles are not placed here?
.dropup,
.navbar-fixed-bottom .dropdown {
// Reverse the caret
.caret {
border-top: 0;
border-bottom: 4px solid @black;
content: "";
}
// Different positioning for bottom up menu
.dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 1px;
}
}
// Sub menus
// ---------------------------
.dropdown-submenu {
position: relative;
}
// Default dropdowns
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
.border-radius(0 6px 6px 6px);
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
// Dropups
.dropup .dropdown-submenu > .dropdown-menu {
top: auto;
bottom: 0;
margin-top: 0;
margin-bottom: -2px;
.border-radius(5px 5px 5px 0);
}
// Caret to indicate there is a submenu
.dropdown-submenu > a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: darken(@dropdownBackground, 20%);
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
border-left-color: @dropdownLinkColorHover;
}
// Left aligned submenus
.dropdown-submenu.pull-left {
// Undo the float
// Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
float: none;
// Positioning the submenu
> .dropdown-menu {
left: -100%;
margin-left: 10px;
.border-radius(6px 0 6px 6px);
}
}
// Tweak nav headers
// -----------------
// Increase padding from 15px to 20px on sides
.dropdown .dropdown-menu .nav-header {
padding-left: 20px;
padding-right: 20px;
}
// Typeahead
// ---------
.typeahead {
z-index: 1051;
margin-top: 2px; // give it some space to breathe
.border-radius(@baseBorderRadius);
}

View File

@@ -0,0 +1,690 @@
//
// Forms
// --------------------------------------------------
// GENERAL STYLES
// --------------
// Make all forms have space below them
form {
margin: 0 0 @baseLineHeight;
}
fieldset {
padding: 0;
margin: 0;
border: 0;
}
// Groups of fields with labels on top (legends)
legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: @baseLineHeight;
font-size: @baseFontSize * 1.5;
line-height: @baseLineHeight * 2;
color: @grayDark;
border: 0;
border-bottom: 1px solid #e5e5e5;
// Small
small {
font-size: @baseLineHeight * .75;
color: @grayLight;
}
}
// Set font for forms
label,
input,
button,
select,
textarea {
#font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
}
input,
button,
select,
textarea {
font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
}
// Identify controls by their labels
label {
display: block;
margin-bottom: 5px;
}
// Form controls
// -------------------------
// Shared size and type resets
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
display: inline-block;
height: @baseLineHeight;
padding: 4px 6px;
margin-bottom: @baseLineHeight / 2;
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @gray;
.border-radius(@inputBorderRadius);
vertical-align: middle;
}
// Reset appearance properties for textual inputs and textarea
// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
input,
textarea,
.uneditable-input {
width: 206px; // plus 12px padding and 2px border
}
// Reset height since textareas have rows
textarea {
height: auto;
}
// Everything else
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
background-color: @inputBackground;
border: 1px solid @inputBorder;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.transition(~"border linear .2s, box-shadow linear .2s");
// Focus state
&:focus {
border-color: rgba(82,168,236,.8);
outline: 0;
outline: thin dotted \9; /* IE6-9 */
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
}
}
// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
*margin-top: 0; /* IE7 */
margin-top: 1px \9; /* IE8-9 */
line-height: normal;
}
// Reset width of input images, buttons, radios, checkboxes
input[type="file"],
input[type="image"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
width: auto; // Override of generic input selector
}
// Set the height of select and file controls to match text inputs
select,
input[type="file"] {
height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
*margin-top: 4px; /* For IE7, add top margin to align select with labels */
line-height: @inputHeight;
}
// Make select elements obey height by applying a border
select {
width: 220px; // default input width + 10px of padding that doesn't get applied
border: 1px solid @inputBorder;
background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color
}
// Make multiple select elements height not fixed
select[multiple],
select[size] {
height: auto;
}
// Focus for select, file, radio, and checkbox
select:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
.tab-focus();
}
// Uneditable inputs
// -------------------------
// Make uneditable inputs look inactive
.uneditable-input,
.uneditable-textarea {
color: @grayLight;
background-color: darken(@inputBackground, 1%);
border-color: @inputBorder;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
cursor: not-allowed;
}
// For text that needs to appear as an input but should not be an input
.uneditable-input {
overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
white-space: nowrap;
}
// Make uneditable textareas behave like a textarea
.uneditable-textarea {
width: auto;
height: auto;
}
// Placeholder
// -------------------------
// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
input,
textarea {
.placeholder();
}
// CHECKBOXES & RADIOS
// -------------------
// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
min-height: @baseLineHeight; // clear the floating input if there is no label text
padding-left: 20px;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: left;
margin-left: -20px;
}
// Move the options list down to align with labels
.controls > .radio:first-child,
.controls > .checkbox:first-child {
padding-top: 5px; // has to be padding because margin collaspes
}
// Radios and checkboxes on same line
// TODO v3: Convert .inline to .control-inline
.radio.inline,
.checkbox.inline {
display: inline-block;
padding-top: 5px;
margin-bottom: 0;
vertical-align: middle;
}
.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
margin-left: 10px; // space out consecutive inline controls
}
// INPUT SIZES
// -----------
// General classes for quick sizes
.input-mini { width: 60px; }
.input-small { width: 90px; }
.input-medium { width: 150px; }
.input-large { width: 210px; }
.input-xlarge { width: 270px; }
.input-xxlarge { width: 530px; }
// Grid style input sizes
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
.uneditable-input[class*="span"],
// Redeclare since the fluid row class is more specific
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"] {
float: none;
margin-left: 0;
}
// Ensure input-prepend/append never wraps
.input-append input[class*="span"],
.input-append .uneditable-input[class*="span"],
.input-prepend input[class*="span"],
.input-prepend .uneditable-input[class*="span"],
.row-fluid input[class*="span"],
.row-fluid select[class*="span"],
.row-fluid textarea[class*="span"],
.row-fluid .uneditable-input[class*="span"],
.row-fluid .input-prepend [class*="span"],
.row-fluid .input-append [class*="span"] {
display: inline-block;
}
// GRID SIZING FOR INPUTS
// ----------------------
// Grid sizes
#grid > .input(@gridColumnWidth, @gridGutterWidth);
// Control row for multiple inputs per line
.controls-row {
.clearfix(); // Clear the float from controls
}
// Float to collapse white-space for proper grid alignment
.controls-row [class*="span"],
// Redeclare the fluid grid collapse since we undo the float for inputs
.row-fluid .controls-row [class*="span"] {
float: left;
}
// Explicity set top padding on all checkboxes/radios, not just first-child
.controls-row .checkbox[class*="span"],
.controls-row .radio[class*="span"] {
padding-top: 5px;
}
// DISABLED STATE
// --------------
// Disabled and read-only inputs
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
cursor: not-allowed;
background-color: @inputDisabledBackground;
}
// Explicitly reset the colors here
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
background-color: transparent;
}
// FORM FIELD FEEDBACK STATES
// --------------------------
// Warning
.control-group.warning {
.formFieldState(@warningText, @warningText, @warningBackground);
}
// Error
.control-group.error {
.formFieldState(@errorText, @errorText, @errorBackground);
}
// Success
.control-group.success {
.formFieldState(@successText, @successText, @successBackground);
}
// Success
.control-group.info {
.formFieldState(@infoText, @infoText, @infoBackground);
}
// HTML5 invalid states
// Shares styles with the .control-group.error above
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
color: #b94a48;
border-color: #ee5f5b;
&:focus {
border-color: darken(#ee5f5b, 10%);
@shadow: 0 0 6px lighten(#ee5f5b, 20%);
.box-shadow(@shadow);
}
}
// FORM ACTIONS
// ------------
.form-actions {
padding: (@baseLineHeight - 1) 20px @baseLineHeight;
margin-top: @baseLineHeight;
margin-bottom: @baseLineHeight;
background-color: @formActionsBackground;
border-top: 1px solid #e5e5e5;
.clearfix(); // Adding clearfix to allow for .pull-right button containers
}
// HELP TEXT
// ---------
.help-block,
.help-inline {
color: lighten(@textColor, 15%); // lighten the text some for contrast
}
.help-block {
display: block; // account for any element using help-block
margin-bottom: @baseLineHeight / 2;
}
.help-inline {
display: inline-block;
.ie7-inline-block();
vertical-align: middle;
padding-left: 5px;
}
// INPUT GROUPS
// ------------
// Allow us to put symbols and text within the input field for a cleaner look
.input-append,
.input-prepend {
display: inline-block;
margin-bottom: @baseLineHeight / 2;
vertical-align: middle;
font-size: 0; // white space collapse hack
white-space: nowrap; // Prevent span and input from separating
// Reset the white space collapse hack
input,
select,
.uneditable-input,
.dropdown-menu,
.popover {
font-size: @baseFontSize;
}
input,
select,
.uneditable-input {
position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
*margin-left: 0;
vertical-align: top;
.border-radius(0 @inputBorderRadius @inputBorderRadius 0);
// Make input on top when focused so blue border and shadow always show
&:focus {
z-index: 2;
}
}
.add-on {
display: inline-block;
width: auto;
height: @baseLineHeight;
min-width: 16px;
padding: 4px 5px;
font-size: @baseFontSize;
font-weight: normal;
line-height: @baseLineHeight;
text-align: center;
text-shadow: 0 1px 0 @white;
background-color: @grayLighter;
border: 1px solid #ccc;
}
.add-on,
.btn,
.btn-group > .dropdown-toggle {
vertical-align: top;
.border-radius(0);
}
.active {
background-color: lighten(@green, 30);
border-color: @green;
}
}
.input-prepend {
.add-on,
.btn {
margin-right: -1px;
}
.add-on:first-child,
.btn:first-child {
// FYI, `.btn:first-child` accounts for a button group that's prepended
.border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
}
}
.input-append {
input,
select,
.uneditable-input {
.border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ .btn-group .btn:last-child {
.border-radius(0 @inputBorderRadius @inputBorderRadius 0);
}
}
.add-on,
.btn,
.btn-group {
margin-left: -1px;
}
.add-on:last-child,
.btn:last-child,
.btn-group:last-child > .dropdown-toggle {
.border-radius(0 @inputBorderRadius @inputBorderRadius 0);
}
}
// Remove all border-radius for inputs with both prepend and append
.input-prepend.input-append {
input,
select,
.uneditable-input {
.border-radius(0);
+ .btn-group .btn {
.border-radius(0 @inputBorderRadius @inputBorderRadius 0);
}
}
.add-on:first-child,
.btn:first-child {
margin-right: -1px;
.border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
}
.add-on:last-child,
.btn:last-child {
margin-left: -1px;
.border-radius(0 @inputBorderRadius @inputBorderRadius 0);
}
.btn-group:first-child {
margin-left: 0;
}
}
// SEARCH FORM
// -----------
input.search-query {
padding-right: 14px;
padding-right: 4px \9;
padding-left: 14px;
padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
margin-bottom: 0; // Remove the default margin on all inputs
.border-radius(15px);
}
/* Allow for input prepend/append in search forms */
.form-search .input-append .search-query,
.form-search .input-prepend .search-query {
.border-radius(0); // Override due to specificity
}
.form-search .input-append .search-query {
.border-radius(14px 0 0 14px);
}
.form-search .input-append .btn {
.border-radius(0 14px 14px 0);
}
.form-search .input-prepend .search-query {
.border-radius(0 14px 14px 0);
}
.form-search .input-prepend .btn {
.border-radius(14px 0 0 14px);
}
// HORIZONTAL & VERTICAL FORMS
// ---------------------------
// Common properties
// -----------------
.form-search,
.form-inline,
.form-horizontal {
input,
textarea,
select,
.help-inline,
.uneditable-input,
.input-prepend,
.input-append {
display: inline-block;
.ie7-inline-block();
margin-bottom: 0;
vertical-align: middle;
}
// Re-hide hidden elements due to specifity
.hide {
display: none;
}
}
.form-search label,
.form-inline label,
.form-search .btn-group,
.form-inline .btn-group {
display: inline-block;
}
// Remove margin for input-prepend/-append
.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
margin-bottom: 0;
}
// Inline checkbox/radio labels (remove padding on left)
.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
padding-left: 0;
margin-bottom: 0;
vertical-align: middle;
}
// Remove float and margin, set to inline-block
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
float: left;
margin-right: 3px;
margin-left: 0;
}
// Margin to space out fieldsets
.control-group {
margin-bottom: @baseLineHeight / 2;
}
// Legend collapses margin, so next element is responsible for spacing
legend + .control-group {
margin-top: @baseLineHeight;
-webkit-margin-top-collapse: separate;
}
// Horizontal-specific styles
// --------------------------
.form-horizontal {
// Increase spacing between groups
.control-group {
margin-bottom: @baseLineHeight;
.clearfix();
}
// Float the labels left
.control-label {
float: left;
width: @horizontalComponentOffset - 20;
padding-top: 5px;
text-align: right;
}
// Move over all input controls and content
.controls {
// Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
// don't inherit the margin of the parent, in this case .controls
*display: inline-block;
*padding-left: 20px;
margin-left: @horizontalComponentOffset;
*margin-left: 0;
&:first-child {
*padding-left: @horizontalComponentOffset;
}
}
// Remove bottom margin on block level help text since that's accounted for on .control-group
.help-block {
margin-bottom: 0;
}
// And apply it only to .help-block instances that follow a form control
input,
select,
textarea,
.uneditable-input,
.input-prepend,
.input-append {
+ .help-block {
margin-top: @baseLineHeight / 2;
}
}
// Move over buttons in .form-actions to align with .controls
.form-actions {
padding-left: @horizontalComponentOffset;
}
}

View File

@@ -0,0 +1,21 @@
//
// Grid system
// --------------------------------------------------
// Fixed (940px)
#grid > .core(@gridColumnWidth, @gridGutterWidth);
// Fluid (940px)
#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);
// Reset utility classes due to specificity
[class*="span"].hide,
.row-fluid [class*="span"].hide {
display: none;
}
[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
float: right;
}

View File

@@ -0,0 +1,25 @@
//
// Hero unit
// --------------------------------------------------
.hero-unit {
padding: 60px;
margin-bottom: 30px;
font-size: 18px;
font-weight: 200;
line-height: @baseLineHeight * 1.5;
color: @heroUnitLeadColor;
background-color: @heroUnitBackground;
.border-radius(6px);
h1 {
margin-bottom: 0;
font-size: 60px;
line-height: 1;
color: @heroUnitHeadingColor;
letter-spacing: -1px;
}
li {
line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less
}
}

View File

@@ -0,0 +1,84 @@
//
// Labels and badges
// --------------------------------------------------
// Base classes
.label,
.badge {
display: inline-block;
padding: 2px 4px;
font-size: @baseFontSize * .846;
font-weight: bold;
line-height: 14px; // ensure proper line-height if floated
color: @white;
vertical-align: baseline;
white-space: nowrap;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
background-color: @grayLight;
}
// Set unique padding and border-radii
.label {
.border-radius(3px);
}
.badge {
padding-left: 9px;
padding-right: 9px;
.border-radius(9px);
}
// Empty labels/badges collapse
.label,
.badge {
&:empty {
display: none;
}
}
// Hover/focus state, but only for links
a {
&.label:hover,
&.label:focus,
&.badge:hover,
&.badge:focus {
color: @white;
text-decoration: none;
cursor: pointer;
}
}
// Colors
// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
.label,
.badge {
// Important (red)
&-important { background-color: @errorText; }
&-important[href] { background-color: darken(@errorText, 10%); }
// Warnings (orange)
&-warning { background-color: @orange; }
&-warning[href] { background-color: darken(@orange, 10%); }
// Success (green)
&-success { background-color: @successText; }
&-success[href] { background-color: darken(@successText, 10%); }
// Info (turquoise)
&-info { background-color: @infoText; }
&-info[href] { background-color: darken(@infoText, 10%); }
// Inverse (black)
&-inverse { background-color: @grayDark; }
&-inverse[href] { background-color: darken(@grayDark, 10%); }
}
// Quick fix for labels/badges in buttons
.btn {
.label,
.badge {
position: relative;
top: -1px;
}
}
.btn-mini {
.label,
.badge {
top: 0;
}
}

View File

@@ -0,0 +1,16 @@
//
// Layouts
// --------------------------------------------------
// Container (centered, fixed-width layouts)
.container {
.container-fixed();
}
// Fluid layouts (left aligned, with sidebar, min- & max-width content)
.container-fluid {
padding-right: @gridGutterWidth;
padding-left: @gridGutterWidth;
.clearfix();
}

View File

@@ -0,0 +1,55 @@
// Media objects
// Source: http://stubbornella.org/content/?p=497
// --------------------------------------------------
// Common styles
// -------------------------
// Clear the floats
.media,
.media-body {
overflow: hidden;
*overflow: visible;
zoom: 1;
}
// Proper spacing between instances of .media
.media,
.media .media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
// For images and videos, set to block
.media-object {
display: block;
}
// Reset margins on headings for tighter default spacing
.media-heading {
margin: 0 0 5px;
}
// Media image alignment
// -------------------------
.media > .pull-left {
margin-right: 10px;
}
.media > .pull-right {
margin-left: 10px;
}
// Media list variation
// -------------------------
// Undo default ul/ol styles
.media-list {
margin-left: 0;
list-style: none;
}

View File

@@ -0,0 +1,702 @@
//
// Mixins
// --------------------------------------------------
// UTILITY MIXINS
// --------------------------------------------------
// Clearfix
// --------
// For clearing floats like a boss h5bp.com/q
.clearfix {
*zoom: 1;
&:before,
&:after {
display: table;
content: "";
// Fixes Opera/contenteditable bug:
// http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
line-height: 0;
}
&:after {
clear: both;
}
}
// Webkit-style focus
// ------------------
.tab-focus() {
// Default
outline: thin dotted #333;
// Webkit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
// Center-align a block level element
// ----------------------------------
.center-block() {
display: block;
margin-left: auto;
margin-right: auto;
}
// IE7 inline-block
// ----------------
.ie7-inline-block() {
*display: inline; /* IE7 inline-block hack */
*zoom: 1;
}
// IE7 likes to collapse whitespace on either side of the inline-block elements.
// Ems because we're attempting to match the width of a space character. Left
// version is for form buttons, which typically come after other elements, and
// right version is for icons, which come before. Applying both is ok, but it will
// mean that space between those elements will be .6em (~2 space characters) in IE7,
// instead of the 1 space in other browsers.
.ie7-restore-left-whitespace() {
*margin-left: .3em;
&:first-child {
*margin-left: 0;
}
}
.ie7-restore-right-whitespace() {
*margin-right: .3em;
}
// Sizing shortcuts
// -------------------------
.size(@height, @width) {
width: @width;
height: @height;
}
.square(@size) {
.size(@size, @size);
}
// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
&:-moz-placeholder {
color: @color;
}
&:-ms-input-placeholder {
color: @color;
}
&::-webkit-input-placeholder {
color: @color;
}
}
// Text overflow
// -------------------------
// Requires inline-block or block for proper styling
.text-overflow() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
// CSS image replacement
// -------------------------
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
// FONTS
// --------------------------------------------------
#font {
#family {
.serif() {
font-family: @serifFontFamily;
}
.sans-serif() {
font-family: @sansFontFamily;
}
.monospace() {
font-family: @monoFontFamily;
}
}
.shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
font-size: @size;
font-weight: @weight;
line-height: @lineHeight;
}
.serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
#font > #family > .serif;
#font > .shorthand(@size, @weight, @lineHeight);
}
.sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
#font > #family > .sans-serif;
#font > .shorthand(@size, @weight, @lineHeight);
}
.monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
#font > #family > .monospace;
#font > .shorthand(@size, @weight, @lineHeight);
}
}
// FORMS
// --------------------------------------------------
// Block level inputs
.input-block-level {
display: block;
width: 100%;
min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
.box-sizing(border-box); // Makes inputs behave like true block-level elements
}
// Mixin for form field states
.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
// Set the text color
.control-label,
.help-block,
.help-inline {
color: @textColor;
}
// Style inputs accordingly
.checkbox,
.radio,
input,
select,
textarea {
color: @textColor;
}
input,
select,
textarea {
border-color: @borderColor;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
&:focus {
border-color: darken(@borderColor, 10%);
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%);
.box-shadow(@shadow);
}
}
// Give a small background color for input-prepend/-append
.input-prepend .add-on,
.input-append .add-on {
color: @textColor;
background-color: @backgroundColor;
border-color: @textColor;
}
}
// CSS3 PROPERTIES
// --------------------------------------------------
// Border Radius
.border-radius(@radius) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
// Single Corner Border Radius
.border-top-left-radius(@radius) {
-webkit-border-top-left-radius: @radius;
-moz-border-radius-topleft: @radius;
border-top-left-radius: @radius;
}
.border-top-right-radius(@radius) {
-webkit-border-top-right-radius: @radius;
-moz-border-radius-topright: @radius;
border-top-right-radius: @radius;
}
.border-bottom-right-radius(@radius) {
-webkit-border-bottom-right-radius: @radius;
-moz-border-radius-bottomright: @radius;
border-bottom-right-radius: @radius;
}
.border-bottom-left-radius(@radius) {
-webkit-border-bottom-left-radius: @radius;
-moz-border-radius-bottomleft: @radius;
border-bottom-left-radius: @radius;
}
// Single Side Border Radius
.border-top-radius(@radius) {
.border-top-right-radius(@radius);
.border-top-left-radius(@radius);
}
.border-right-radius(@radius) {
.border-top-right-radius(@radius);
.border-bottom-right-radius(@radius);
}
.border-bottom-radius(@radius) {
.border-bottom-right-radius(@radius);
.border-bottom-left-radius(@radius);
}
.border-left-radius(@radius) {
.border-top-left-radius(@radius);
.border-bottom-left-radius(@radius);
}
// Drop shadows
.box-shadow(@shadow) {
-webkit-box-shadow: @shadow;
-moz-box-shadow: @shadow;
box-shadow: @shadow;
}
// Transitions
.transition(@transition) {
-webkit-transition: @transition;
-moz-transition: @transition;
-o-transition: @transition;
transition: @transition;
}
.transition-delay(@transition-delay) {
-webkit-transition-delay: @transition-delay;
-moz-transition-delay: @transition-delay;
-o-transition-delay: @transition-delay;
transition-delay: @transition-delay;
}
.transition-duration(@transition-duration) {
-webkit-transition-duration: @transition-duration;
-moz-transition-duration: @transition-duration;
-o-transition-duration: @transition-duration;
transition-duration: @transition-duration;
}
// Transformations
.rotate(@degrees) {
-webkit-transform: rotate(@degrees);
-moz-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
-o-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.scale(@ratio) {
-webkit-transform: scale(@ratio);
-moz-transform: scale(@ratio);
-ms-transform: scale(@ratio);
-o-transform: scale(@ratio);
transform: scale(@ratio);
}
.translate(@x, @y) {
-webkit-transform: translate(@x, @y);
-moz-transform: translate(@x, @y);
-ms-transform: translate(@x, @y);
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
}
.skew(@x, @y) {
-webkit-transform: skew(@x, @y);
-moz-transform: skew(@x, @y);
-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
-o-transform: skew(@x, @y);
transform: skew(@x, @y);
-webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
}
.translate3d(@x, @y, @z) {
-webkit-transform: translate3d(@x, @y, @z);
-moz-transform: translate3d(@x, @y, @z);
-o-transform: translate3d(@x, @y, @z);
transform: translate3d(@x, @y, @z);
}
// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden
// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
.backface-visibility(@visibility){
-webkit-backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
backface-visibility: @visibility;
}
// Background clipping
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
.background-clip(@clip) {
-webkit-background-clip: @clip;
-moz-background-clip: @clip;
background-clip: @clip;
}
// Background sizing
.background-size(@size) {
-webkit-background-size: @size;
-moz-background-size: @size;
-o-background-size: @size;
background-size: @size;
}
// Box sizing
.box-sizing(@boxmodel) {
-webkit-box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
box-sizing: @boxmodel;
}
// User select
// For selecting text on the page
.user-select(@select) {
-webkit-user-select: @select;
-moz-user-select: @select;
-ms-user-select: @select;
-o-user-select: @select;
user-select: @select;
}
// Resize anything
.resizable(@direction) {
resize: @direction; // Options: horizontal, vertical, both
overflow: auto; // Safari fix
}
// CSS3 Content Columns
.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
-webkit-column-count: @columnCount;
-moz-column-count: @columnCount;
column-count: @columnCount;
-webkit-column-gap: @columnGap;
-moz-column-gap: @columnGap;
column-gap: @columnGap;
}
// Optional hyphenation
.hyphens(@mode: auto) {
word-wrap: break-word;
-webkit-hyphens: @mode;
-moz-hyphens: @mode;
-ms-hyphens: @mode;
-o-hyphens: @mode;
hyphens: @mode;
}
// Opacity
.opacity(@opacity) {
opacity: @opacity / 100;
filter: ~"alpha(opacity=@{opacity})";
}
// BACKGROUNDS
// --------------------------------------------------
// Add an alphatransparency value to any background or border color (via Elyse Holladay)
#translucent {
.background(@color: @white, @alpha: 1) {
background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
}
.border(@color: @white, @alpha: 1) {
border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
.background-clip(padding-box);
}
}
// Gradient Bar Colors for buttons and alerts
.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
color: @textColor;
text-shadow: @textShadow;
#gradient > .vertical(@primaryColor, @secondaryColor);
border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
}
// Gradients
#gradient {
.horizontal(@startColor: #555, @endColor: #333) {
background-color: @endColor;
background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down
}
.vertical(@startColor: #555, @endColor: #333) {
background-color: mix(@startColor, @endColor, 60%);
background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down
}
.directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
background-color: @endColor;
background-repeat: repeat-x;
background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10
}
.horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
background-color: mix(@midColor, @endColor, 80%);
background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
}
.vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
background-color: mix(@midColor, @endColor, 80%);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
}
.radial(@innerColor: #555, @outerColor: #333) {
background-color: @outerColor;
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
background-repeat: no-repeat;
}
.striped(@color: #555, @angle: 45deg) {
background-color: @color;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
}
}
// Reset filters for IE
.reset-filter() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}
// COMPONENT MIXINS
// --------------------------------------------------
// Horizontal dividers
// -------------------------
// Dividers (basically an hr) within dropdowns and nav lists
.nav-divider(@top: #e5e5e5, @bottom: @white) {
// IE7 needs a set width since we gave a height. Restricting just
// to IE7 to keep the 1px left/right space in other browsers.
// It is unclear where IE is getting the extra space that we need
// to negative-margin away, but so it goes.
*width: 100%;
height: 1px;
margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
*margin: -5px 0 5px;
overflow: hidden;
background-color: @top;
border-bottom: 1px solid @bottom;
}
// Button backgrounds
// ------------------
.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
// gradientBar will set the background to a pleasing blend of these, to support IE<=9
.gradientBar(@startColor, @endColor, @textColor, @textShadow);
*background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
.reset-filter();
// in these cases the gradient won't cover the background, so we override
&:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
color: @textColor;
background-color: @endColor;
*background-color: darken(@endColor, 5%);
}
// IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
&:active,
&.active {
background-color: darken(@endColor, 10%) e("\9");
}
}
// Navbar vertical align
// -------------------------
// Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
.navbarVerticalAlign(@elementHeight) {
margin-top: (@navbarHeight - @elementHeight) / 2;
}
// Grid System
// -----------
// Centered container element
.container-fixed() {
margin-right: auto;
margin-left: auto;
.clearfix();
}
// Table columns
.tableColumns(@columnSpan: 1) {
float: none; // undo default grid column styles
width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
margin-left: 0; // undo default grid column styles
}
// Make a Grid
// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
.makeRow() {
margin-left: @gridGutterWidth * -1;
.clearfix();
}
.makeColumn(@columns: 1, @offset: 0) {
float: left;
margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
}
// The Grid
#grid {
.core (@gridColumnWidth, @gridGutterWidth) {
.spanX (@index) when (@index > 0) {
.span@{index} { .span(@index); }
.spanX(@index - 1);
}
.spanX (0) {}
.offsetX (@index) when (@index > 0) {
.offset@{index} { .offset(@index); }
.offsetX(@index - 1);
}
.offsetX (0) {}
.offset (@columns) {
margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
}
.span (@columns) {
width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
}
.row {
margin-left: @gridGutterWidth * -1;
.clearfix();
}
[class*="span"] {
float: left;
min-height: 1px; // prevent collapsing columns
margin-left: @gridGutterWidth;
}
// Set the container width, and override it for fixed navbars in media queries
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container { .span(@gridColumns); }
// generate .spanX and .offsetX
.spanX (@gridColumns);
.offsetX (@gridColumns);
}
.fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {
.spanX (@index) when (@index > 0) {
.span@{index} { .span(@index); }
.spanX(@index - 1);
}
.spanX (0) {}
.offsetX (@index) when (@index > 0) {
.offset@{index} { .offset(@index); }
.offset@{index}:first-child { .offsetFirstChild(@index); }
.offsetX(@index - 1);
}
.offsetX (0) {}
.offset (@columns) {
margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);
*margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);
}
.offsetFirstChild (@columns) {
margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth);
*margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
}
.span (@columns) {
width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
*width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
}
.row-fluid {
width: 100%;
.clearfix();
[class*="span"] {
.input-block-level();
float: left;
margin-left: @fluidGridGutterWidth;
*margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
}
[class*="span"]:first-child {
margin-left: 0;
}
// Space grid-sized controls properly if multiple per line
.controls-row [class*="span"] + [class*="span"] {
margin-left: @fluidGridGutterWidth;
}
// generate .spanX and .offsetX
.spanX (@gridColumns);
.offsetX (@gridColumns);
}
}
.input(@gridColumnWidth, @gridGutterWidth) {
.spanX (@index) when (@index > 0) {
input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); }
.spanX(@index - 1);
}
.spanX (0) {}
.span(@columns) {
width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14;
}
input,
textarea,
.uneditable-input {
margin-left: 0; // override margin-left from core grid system
}
// Space grid-sized controls properly if multiple per line
.controls-row [class*="span"] + [class*="span"] {
margin-left: @gridGutterWidth;
}
// generate .spanX
.spanX (@gridColumns);
}
}

View File

@@ -0,0 +1,95 @@
//
// Modals
// --------------------------------------------------
// Background
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: @zindexModalBackdrop;
background-color: @black;
// Fade for backdrop
&.fade { opacity: 0; }
}
.modal-backdrop,
.modal-backdrop.fade.in {
.opacity(80);
}
// Base modal
.modal {
position: fixed;
top: 10%;
left: 50%;
z-index: @zindexModal;
width: 560px;
margin-left: -280px;
background-color: @white;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.3);
*border: 1px solid #999; /* IE6-7 */
.border-radius(6px);
.box-shadow(0 3px 7px rgba(0,0,0,0.3));
.background-clip(padding-box);
// Remove focus outline from opened modal
outline: none;
&.fade {
.transition(e('opacity .3s linear, top .3s ease-out'));
top: -25%;
}
&.fade.in { top: 10%; }
}
.modal-header {
padding: 9px 15px;
border-bottom: 1px solid #eee;
// Close icon
.close { margin-top: 2px; }
// Heading
h3 {
margin: 0;
line-height: 30px;
}
}
// Body (where all modal content resides)
.modal-body {
position: relative;
overflow-y: auto;
max-height: 400px;
padding: 15px;
}
// Remove bottom margin if need be
.modal-form {
margin-bottom: 0;
}
// Footer (for actions)
.modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
text-align: right; // right align buttons
background-color: #f5f5f5;
border-top: 1px solid #ddd;
.border-radius(0 0 6px 6px);
.box-shadow(inset 0 1px 0 @white);
.clearfix(); // clear it in case folks use .pull-* classes on buttons
// Properly space out buttons
.btn + .btn {
margin-left: 5px;
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
}
// but override that for button groups
.btn-group .btn + .btn {
margin-left: -1px;
}
// and override it for block buttons as well
.btn-block + .btn-block {
margin-left: 0;
}
}

View File

@@ -0,0 +1,497 @@
//
// Navbars (Redux)
// --------------------------------------------------
// COMMON STYLES
// -------------
// Base class and wrapper
.navbar {
overflow: visible;
margin-bottom: @baseLineHeight;
// Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
*position: relative;
*z-index: 2;
}
// Inner for background effects
// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present
.navbar-inner {
min-height: @navbarHeight;
padding-left: 20px;
padding-right: 20px;
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
border: 1px solid @navbarBorder;
.border-radius(@baseBorderRadius);
.box-shadow(0 1px 4px rgba(0,0,0,.065));
// Prevent floats from breaking the navbar
.clearfix();
}
// Set width to auto for default container
// We then reset it for fixed navbars in the #gridSystem mixin
.navbar .container {
width: auto;
}
// Override the default collapsed state
.nav-collapse.collapse {
height: auto;
overflow: visible;
}
// Brand: website or project name
// -------------------------
.navbar .brand {
float: left;
display: block;
// Vertically center the text given @navbarHeight
padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);
margin-left: -20px; // negative indent to left-align the text down the page
font-size: 20px;
font-weight: 200;
color: @navbarBrandColor;
text-shadow: 0 1px 0 @navbarBackgroundHighlight;
&:hover,
&:focus {
text-decoration: none;
}
}
// Plain text in topbar
// -------------------------
.navbar-text {
margin-bottom: 0;
line-height: @navbarHeight;
color: @navbarText;
}
// Janky solution for now to account for links outside the .nav
// -------------------------
.navbar-link {
color: @navbarLinkColor;
&:hover,
&:focus {
color: @navbarLinkColorHover;
}
}
// Dividers in navbar
// -------------------------
.navbar .divider-vertical {
height: @navbarHeight;
margin: 0 9px;
border-left: 1px solid @navbarBackground;
border-right: 1px solid @navbarBackgroundHighlight;
}
// Buttons in navbar
// -------------------------
.navbar .btn,
.navbar .btn-group {
.navbarVerticalAlign(30px); // Vertically center in navbar
}
.navbar .btn-group .btn,
.navbar .input-prepend .btn,
.navbar .input-append .btn,
.navbar .input-prepend .btn-group,
.navbar .input-append .btn-group {
margin-top: 0; // then undo the margin here so we don't accidentally double it
}
// Navbar forms
// -------------------------
.navbar-form {
margin-bottom: 0; // remove default bottom margin
.clearfix();
input,
select,
.radio,
.checkbox {
.navbarVerticalAlign(30px); // Vertically center in navbar
}
input,
select,
.btn {
display: inline-block;
margin-bottom: 0;
}
input[type="image"],
input[type="checkbox"],
input[type="radio"] {
margin-top: 3px;
}
.input-append,
.input-prepend {
margin-top: 5px;
white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
input {
margin-top: 0; // remove the margin on top since it's on the parent
}
}
}
// Navbar search
// -------------------------
.navbar-search {
position: relative;
float: left;
.navbarVerticalAlign(30px); // Vertically center in navbar
margin-bottom: 0;
.search-query {
margin-bottom: 0;
padding: 4px 14px;
#font > .sans-serif(13px, normal, 1);
.border-radius(15px); // redeclare because of specificity of the type attribute
}
}
// Static navbar
// -------------------------
.navbar-static-top {
position: static;
margin-bottom: 0; // remove 18px margin for default navbar
.navbar-inner {
.border-radius(0);
}
}
// Fixed navbar
// -------------------------
// Shared (top/bottom) styles
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
right: 0;
left: 0;
z-index: @zindexFixedNavbar;
margin-bottom: 0; // remove 18px margin for default navbar
}
.navbar-fixed-top .navbar-inner,
.navbar-static-top .navbar-inner {
border-width: 0 0 1px;
}
.navbar-fixed-bottom .navbar-inner {
border-width: 1px 0 0;
}
.navbar-fixed-top .navbar-inner,
.navbar-fixed-bottom .navbar-inner {
padding-left: 0;
padding-right: 0;
.border-radius(0);
}
// Reset container width
// Required here as we reset the width earlier on and the grid mixins don't override early enough
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
#grid > .core > .span(@gridColumns);
}
// Fixed to top
.navbar-fixed-top {
top: 0;
}
.navbar-fixed-top,
.navbar-static-top {
.navbar-inner {
.box-shadow(~"0 1px 10px rgba(0,0,0,.1)");
}
}
// Fixed to bottom
.navbar-fixed-bottom {
bottom: 0;
.navbar-inner {
.box-shadow(~"0 -1px 10px rgba(0,0,0,.1)");
}
}
// NAVIGATION
// ----------
.navbar .nav {
position: relative;
left: 0;
display: block;
float: left;
margin: 0 10px 0 0;
}
.navbar .nav.pull-right {
float: right; // redeclare due to specificity
margin-right: 0; // remove margin on float right nav
}
.navbar .nav > li {
float: left;
}
// Links
.navbar .nav > li > a {
float: none;
// Vertically center the text given @navbarHeight
padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);
color: @navbarLinkColor;
text-decoration: none;
text-shadow: 0 1px 0 @navbarBackgroundHighlight;
}
.navbar .nav .dropdown-toggle .caret {
margin-top: 8px;
}
// Hover/focus
.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active
color: @navbarLinkColorHover;
text-decoration: none;
}
// Active nav items
.navbar .nav > .active > a,
.navbar .nav > .active > a:hover,
.navbar .nav > .active > a:focus {
color: @navbarLinkColorActive;
text-decoration: none;
background-color: @navbarLinkBackgroundActive;
.box-shadow(inset 0 3px 8px rgba(0,0,0,.125));
}
// Navbar button for toggling navbar items in responsive layouts
// These definitions need to come after '.navbar .btn'
.navbar .btn-navbar {
display: none;
float: right;
padding: 7px 10px;
margin-left: 5px;
margin-right: 5px;
.buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));
.box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
}
.navbar .btn-navbar .icon-bar {
display: block;
width: 18px;
height: 2px;
background-color: #f5f5f5;
.border-radius(1px);
.box-shadow(0 1px 0 rgba(0,0,0,.25));
}
.btn-navbar .icon-bar + .icon-bar {
margin-top: 3px;
}
// Dropdown menus
// --------------
// Menu position and menu carets
.navbar .nav > li > .dropdown-menu {
&:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: @dropdownBorder;
position: absolute;
top: -7px;
left: 9px;
}
&:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid @dropdownBackground;
position: absolute;
top: -6px;
left: 10px;
}
}
// Menu position and menu caret support for dropups via extra dropup class
.navbar-fixed-bottom .nav > li > .dropdown-menu {
&:before {
border-top: 7px solid #ccc;
border-top-color: @dropdownBorder;
border-bottom: 0;
bottom: -7px;
top: auto;
}
&:after {
border-top: 6px solid @dropdownBackground;
border-bottom: 0;
bottom: -6px;
top: auto;
}
}
// Caret should match text color on hover/focus
.navbar .nav li.dropdown > a:hover .caret,
.navbar .nav li.dropdown > a:focus .caret {
border-top-color: @navbarLinkColorHover;
border-bottom-color: @navbarLinkColorHover;
}
// Remove background color from open dropdown
.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
background-color: @navbarLinkBackgroundActive;
color: @navbarLinkColorActive;
}
.navbar .nav li.dropdown > .dropdown-toggle .caret {
border-top-color: @navbarLinkColor;
border-bottom-color: @navbarLinkColor;
}
.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
border-top-color: @navbarLinkColorActive;
border-bottom-color: @navbarLinkColorActive;
}
// Right aligned menus need alt position
.navbar .pull-right > li > .dropdown-menu,
.navbar .nav > li > .dropdown-menu.pull-right {
left: auto;
right: 0;
&:before {
left: auto;
right: 12px;
}
&:after {
left: auto;
right: 13px;
}
.dropdown-menu {
left: auto;
right: 100%;
margin-left: 0;
margin-right: -1px;
.border-radius(6px 0 6px 6px);
}
}
// Inverted navbar
// -------------------------
.navbar-inverse {
.navbar-inner {
#gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);
border-color: @navbarInverseBorder;
}
.brand,
.nav > li > a {
color: @navbarInverseLinkColor;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
&:hover,
&:focus {
color: @navbarInverseLinkColorHover;
}
}
.brand {
color: @navbarInverseBrandColor;
}
.navbar-text {
color: @navbarInverseText;
}
.nav > li > a:focus,
.nav > li > a:hover {
background-color: @navbarInverseLinkBackgroundHover;
color: @navbarInverseLinkColorHover;
}
.nav .active > a,
.nav .active > a:hover,
.nav .active > a:focus {
color: @navbarInverseLinkColorActive;
background-color: @navbarInverseLinkBackgroundActive;
}
// Inline text links
.navbar-link {
color: @navbarInverseLinkColor;
&:hover,
&:focus {
color: @navbarInverseLinkColorHover;
}
}
// Dividers in navbar
.divider-vertical {
border-left-color: @navbarInverseBackground;
border-right-color: @navbarInverseBackgroundHighlight;
}
// Dropdowns
.nav li.dropdown.open > .dropdown-toggle,
.nav li.dropdown.active > .dropdown-toggle,
.nav li.dropdown.open.active > .dropdown-toggle {
background-color: @navbarInverseLinkBackgroundActive;
color: @navbarInverseLinkColorActive;
}
.nav li.dropdown > a:hover .caret,
.nav li.dropdown > a:focus .caret {
border-top-color: @navbarInverseLinkColorActive;
border-bottom-color: @navbarInverseLinkColorActive;
}
.nav li.dropdown > .dropdown-toggle .caret {
border-top-color: @navbarInverseLinkColor;
border-bottom-color: @navbarInverseLinkColor;
}
.nav li.dropdown.open > .dropdown-toggle .caret,
.nav li.dropdown.active > .dropdown-toggle .caret,
.nav li.dropdown.open.active > .dropdown-toggle .caret {
border-top-color: @navbarInverseLinkColorActive;
border-bottom-color: @navbarInverseLinkColorActive;
}
// Navbar search
.navbar-search {
.search-query {
color: @white;
background-color: @navbarInverseSearchBackground;
border-color: @navbarInverseSearchBorder;
.box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
.transition(none);
.placeholder(@navbarInverseSearchPlaceholderColor);
// Focus states (we use .focused since IE7-8 and down doesn't support :focus)
&:focus,
&.focused {
padding: 5px 15px;
color: @grayDark;
text-shadow: 0 1px 0 @white;
background-color: @navbarInverseSearchBackgroundFocus;
border: 0;
.box-shadow(0 0 3px rgba(0,0,0,.15));
outline: 0;
}
}
}
// Navbar collapse button
.btn-navbar {
.buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));
}
}

View File

@@ -0,0 +1,409 @@
//
// Navs
// --------------------------------------------------
// BASE CLASS
// ----------
.nav {
margin-left: 0;
margin-bottom: @baseLineHeight;
list-style: none;
}
// Make links block level
.nav > li > a {
display: block;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: @grayLighter;
}
// Prevent IE8 from misplacing imgs
// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
.nav > li > a > img {
max-width: none;
}
// Redeclare pull classes because of specifity
.nav > .pull-right {
float: right;
}
// Nav headers (for dropdowns and lists)
.nav-header {
display: block;
padding: 3px 15px;
font-size: 11px;
font-weight: bold;
line-height: @baseLineHeight;
color: @grayLight;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
text-transform: uppercase;
}
// Space them out when they follow another list item (link)
.nav li + .nav-header {
margin-top: 9px;
}
// NAV LIST
// --------
.nav-list {
padding-left: 15px;
padding-right: 15px;
margin-bottom: 0;
}
.nav-list > li > a,
.nav-list .nav-header {
margin-left: -15px;
margin-right: -15px;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
.nav-list > li > a {
padding: 3px 15px;
}
.nav-list > .active > a,
.nav-list > .active > a:hover,
.nav-list > .active > a:focus {
color: @white;
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
background-color: @linkColor;
}
.nav-list [class^="icon-"],
.nav-list [class*=" icon-"] {
margin-right: 2px;
}
// Dividers (basically an hr) within the dropdown
.nav-list .divider {
.nav-divider();
}
// TABS AND PILLS
// -------------
// Common styles
.nav-tabs,
.nav-pills {
.clearfix();
}
.nav-tabs > li,
.nav-pills > li {
float: left;
}
.nav-tabs > li > a,
.nav-pills > li > a {
padding-right: 12px;
padding-left: 12px;
margin-right: 2px;
line-height: 14px; // keeps the overall height an even number
}
// TABS
// ----
// Give the tabs something to sit on
.nav-tabs {
border-bottom: 1px solid #ddd;
}
// Make the list-items overlay the bottom border
.nav-tabs > li {
margin-bottom: -1px;
}
// Actual tabs (as links)
.nav-tabs > li > a {
padding-top: 8px;
padding-bottom: 8px;
line-height: @baseLineHeight;
border: 1px solid transparent;
.border-radius(4px 4px 0 0);
&:hover,
&:focus {
border-color: @grayLighter @grayLighter #ddd;
}
}
// Active state, and it's :hover/:focus to override normal :hover/:focus
.nav-tabs > .active > a,
.nav-tabs > .active > a:hover,
.nav-tabs > .active > a:focus {
color: @gray;
background-color: @bodyBackground;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
// PILLS
// -----
// Links rendered as pills
.nav-pills > li > a {
padding-top: 8px;
padding-bottom: 8px;
margin-top: 2px;
margin-bottom: 2px;
.border-radius(5px);
}
// Active state
.nav-pills > .active > a,
.nav-pills > .active > a:hover,
.nav-pills > .active > a:focus {
color: @white;
background-color: @linkColor;
}
// STACKED NAV
// -----------
// Stacked tabs and pills
.nav-stacked > li {
float: none;
}
.nav-stacked > li > a {
margin-right: 0; // no need for the gap between nav items
}
// Tabs
.nav-tabs.nav-stacked {
border-bottom: 0;
}
.nav-tabs.nav-stacked > li > a {
border: 1px solid #ddd;
.border-radius(0);
}
.nav-tabs.nav-stacked > li:first-child > a {
.border-top-radius(4px);
}
.nav-tabs.nav-stacked > li:last-child > a {
.border-bottom-radius(4px);
}
.nav-tabs.nav-stacked > li > a:hover,
.nav-tabs.nav-stacked > li > a:focus {
border-color: #ddd;
z-index: 2;
}
// Pills
.nav-pills.nav-stacked > li > a {
margin-bottom: 3px;
}
.nav-pills.nav-stacked > li:last-child > a {
margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
}
// DROPDOWNS
// ---------
.nav-tabs .dropdown-menu {
.border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu
}
.nav-pills .dropdown-menu {
.border-radius(6px); // make rounded corners match the pills
}
// Default dropdown links
// -------------------------
// Make carets use linkColor to start
.nav .dropdown-toggle .caret {
border-top-color: @linkColor;
border-bottom-color: @linkColor;
margin-top: 6px;
}
.nav .dropdown-toggle:hover .caret,
.nav .dropdown-toggle:focus .caret {
border-top-color: @linkColorHover;
border-bottom-color: @linkColorHover;
}
/* move down carets for tabs */
.nav-tabs .dropdown-toggle .caret {
margin-top: 8px;
}
// Active dropdown links
// -------------------------
.nav .active .dropdown-toggle .caret {
border-top-color: #fff;
border-bottom-color: #fff;
}
.nav-tabs .active .dropdown-toggle .caret {
border-top-color: @gray;
border-bottom-color: @gray;
}
// Active:hover/:focus dropdown links
// -------------------------
.nav > .dropdown.active > a:hover,
.nav > .dropdown.active > a:focus {
cursor: pointer;
}
// Open dropdowns
// -------------------------
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
.nav > li.dropdown.open.active > a:hover,
.nav > li.dropdown.open.active > a:focus {
color: @white;
background-color: @grayLight;
border-color: @grayLight;
}
.nav li.dropdown.open .caret,
.nav li.dropdown.open.active .caret,
.nav li.dropdown.open a:hover .caret,
.nav li.dropdown.open a:focus .caret {
border-top-color: @white;
border-bottom-color: @white;
.opacity(100);
}
// Dropdowns in stacked tabs
.tabs-stacked .open > a:hover,
.tabs-stacked .open > a:focus {
border-color: @grayLight;
}
// TABBABLE
// --------
// COMMON STYLES
// -------------
// Clear any floats
.tabbable {
.clearfix();
}
.tab-content {
overflow: auto; // prevent content from running below tabs
}
// Remove border on bottom, left, right
.tabs-below > .nav-tabs,
.tabs-right > .nav-tabs,
.tabs-left > .nav-tabs {
border-bottom: 0;
}
// Show/hide tabbable areas
.tab-content > .tab-pane,
.pill-content > .pill-pane {
display: none;
}
.tab-content > .active,
.pill-content > .active {
display: block;
}
// BOTTOM
// ------
.tabs-below > .nav-tabs {
border-top: 1px solid #ddd;
}
.tabs-below > .nav-tabs > li {
margin-top: -1px;
margin-bottom: 0;
}
.tabs-below > .nav-tabs > li > a {
.border-radius(0 0 4px 4px);
&:hover,
&:focus {
border-bottom-color: transparent;
border-top-color: #ddd;
}
}
.tabs-below > .nav-tabs > .active > a,
.tabs-below > .nav-tabs > .active > a:hover,
.tabs-below > .nav-tabs > .active > a:focus {
border-color: transparent #ddd #ddd #ddd;
}
// LEFT & RIGHT
// ------------
// Common styles
.tabs-left > .nav-tabs > li,
.tabs-right > .nav-tabs > li {
float: none;
}
.tabs-left > .nav-tabs > li > a,
.tabs-right > .nav-tabs > li > a {
min-width: 74px;
margin-right: 0;
margin-bottom: 3px;
}
// Tabs on the left
.tabs-left > .nav-tabs {
float: left;
margin-right: 19px;
border-right: 1px solid #ddd;
}
.tabs-left > .nav-tabs > li > a {
margin-right: -1px;
.border-radius(4px 0 0 4px);
}
.tabs-left > .nav-tabs > li > a:hover,
.tabs-left > .nav-tabs > li > a:focus {
border-color: @grayLighter #ddd @grayLighter @grayLighter;
}
.tabs-left > .nav-tabs .active > a,
.tabs-left > .nav-tabs .active > a:hover,
.tabs-left > .nav-tabs .active > a:focus {
border-color: #ddd transparent #ddd #ddd;
*border-right-color: @white;
}
// Tabs on the right
.tabs-right > .nav-tabs {
float: right;
margin-left: 19px;
border-left: 1px solid #ddd;
}
.tabs-right > .nav-tabs > li > a {
margin-left: -1px;
.border-radius(0 4px 4px 0);
}
.tabs-right > .nav-tabs > li > a:hover,
.tabs-right > .nav-tabs > li > a:focus {
border-color: @grayLighter @grayLighter @grayLighter #ddd;
}
.tabs-right > .nav-tabs .active > a,
.tabs-right > .nav-tabs .active > a:hover,
.tabs-right > .nav-tabs .active > a:focus {
border-color: #ddd #ddd #ddd transparent;
*border-left-color: @white;
}
// DISABLED STATES
// ---------------
// Gray out text
.nav > .disabled > a {
color: @grayLight;
}
// Nuke hover/focus effects
.nav > .disabled > a:hover,
.nav > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
cursor: default;
}

View File

@@ -0,0 +1,43 @@
//
// Pager pagination
// --------------------------------------------------
.pager {
margin: @baseLineHeight 0;
list-style: none;
text-align: center;
.clearfix();
}
.pager li {
display: inline;
}
.pager li > a,
.pager li > span {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
border: 1px solid #ddd;
.border-radius(15px);
}
.pager li > a:hover,
.pager li > a:focus {
text-decoration: none;
background-color: #f5f5f5;
}
.pager .next > a,
.pager .next > span {
float: right;
}
.pager .previous > a,
.pager .previous > span {
float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
color: @grayLight;
background-color: #fff;
cursor: default;
}

View File

@@ -0,0 +1,123 @@
//
// Pagination (multiple pages)
// --------------------------------------------------
// Space out pagination from surrounding content
.pagination {
margin: @baseLineHeight 0;
}
.pagination ul {
// Allow for text-based alignment
display: inline-block;
.ie7-inline-block();
// Reset default ul styles
margin-left: 0;
margin-bottom: 0;
// Visuals
.border-radius(@baseBorderRadius);
.box-shadow(0 1px 2px rgba(0,0,0,.05));
}
.pagination ul > li {
display: inline; // Remove list-style and block-level defaults
}
.pagination ul > li > a,
.pagination ul > li > span {
float: left; // Collapse white-space
padding: 4px 12px;
line-height: @baseLineHeight;
text-decoration: none;
background-color: @paginationBackground;
border: 1px solid @paginationBorder;
border-left-width: 0;
}
.pagination ul > li > a:hover,
.pagination ul > li > a:focus,
.pagination ul > .active > a,
.pagination ul > .active > span {
background-color: @paginationActiveBackground;
}
.pagination ul > .active > a,
.pagination ul > .active > span {
color: @grayLight;
cursor: default;
}
.pagination ul > .disabled > span,
.pagination ul > .disabled > a,
.pagination ul > .disabled > a:hover,
.pagination ul > .disabled > a:focus {
color: @grayLight;
background-color: transparent;
cursor: default;
}
.pagination ul > li:first-child > a,
.pagination ul > li:first-child > span {
border-left-width: 1px;
.border-left-radius(@baseBorderRadius);
}
.pagination ul > li:last-child > a,
.pagination ul > li:last-child > span {
.border-right-radius(@baseBorderRadius);
}
// Alignment
// --------------------------------------------------
.pagination-centered {
text-align: center;
}
.pagination-right {
text-align: right;
}
// Sizing
// --------------------------------------------------
// Large
.pagination-large {
ul > li > a,
ul > li > span {
padding: @paddingLarge;
font-size: @fontSizeLarge;
}
ul > li:first-child > a,
ul > li:first-child > span {
.border-left-radius(@borderRadiusLarge);
}
ul > li:last-child > a,
ul > li:last-child > span {
.border-right-radius(@borderRadiusLarge);
}
}
// Small and mini
.pagination-mini,
.pagination-small {
ul > li:first-child > a,
ul > li:first-child > span {
.border-left-radius(@borderRadiusSmall);
}
ul > li:last-child > a,
ul > li:last-child > span {
.border-right-radius(@borderRadiusSmall);
}
}
// Small
.pagination-small {
ul > li > a,
ul > li > span {
padding: @paddingSmall;
font-size: @fontSizeSmall;
}
}
// Mini
.pagination-mini {
ul > li > a,
ul > li > span {
padding: @paddingMini;
font-size: @fontSizeMini;
}
}

View File

@@ -0,0 +1,133 @@
//
// Popovers
// --------------------------------------------------
.popover {
position: absolute;
top: 0;
left: 0;
z-index: @zindexPopover;
display: none;
max-width: 276px;
padding: 1px;
text-align: left; // Reset given new insertion method
background-color: @popoverBackground;
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0,0,0,.2);
.border-radius(6px);
.box-shadow(0 5px 10px rgba(0,0,0,.2));
// Overrides for proper insertion
white-space: normal;
// Offset the popover to account for the popover arrow
&.top { margin-top: -10px; }
&.right { margin-left: 10px; }
&.bottom { margin-top: 10px; }
&.left { margin-left: -10px; }
}
.popover-title {
margin: 0; // reset heading margin
padding: 8px 14px;
font-size: 14px;
font-weight: normal;
line-height: 18px;
background-color: @popoverTitleBackground;
border-bottom: 1px solid darken(@popoverTitleBackground, 5%);
.border-radius(5px 5px 0 0);
&:empty {
display: none;
}
}
.popover-content {
padding: 9px 14px;
}
// Arrows
//
// .arrow is outer, .arrow:after is inner
.popover .arrow,
.popover .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover .arrow {
border-width: @popoverArrowOuterWidth;
}
.popover .arrow:after {
border-width: @popoverArrowWidth;
content: "";
}
.popover {
&.top .arrow {
left: 50%;
margin-left: -@popoverArrowOuterWidth;
border-bottom-width: 0;
border-top-color: #999; // IE8 fallback
border-top-color: @popoverArrowOuterColor;
bottom: -@popoverArrowOuterWidth;
&:after {
bottom: 1px;
margin-left: -@popoverArrowWidth;
border-bottom-width: 0;
border-top-color: @popoverArrowColor;
}
}
&.right .arrow {
top: 50%;
left: -@popoverArrowOuterWidth;
margin-top: -@popoverArrowOuterWidth;
border-left-width: 0;
border-right-color: #999; // IE8 fallback
border-right-color: @popoverArrowOuterColor;
&:after {
left: 1px;
bottom: -@popoverArrowWidth;
border-left-width: 0;
border-right-color: @popoverArrowColor;
}
}
&.bottom .arrow {
left: 50%;
margin-left: -@popoverArrowOuterWidth;
border-top-width: 0;
border-bottom-color: #999; // IE8 fallback
border-bottom-color: @popoverArrowOuterColor;
top: -@popoverArrowOuterWidth;
&:after {
top: 1px;
margin-left: -@popoverArrowWidth;
border-top-width: 0;
border-bottom-color: @popoverArrowColor;
}
}
&.left .arrow {
top: 50%;
right: -@popoverArrowOuterWidth;
margin-top: -@popoverArrowOuterWidth;
border-right-width: 0;
border-left-color: #999; // IE8 fallback
border-left-color: @popoverArrowOuterColor;
&:after {
right: 1px;
border-right-width: 0;
border-left-color: @popoverArrowColor;
bottom: -@popoverArrowWidth;
}
}
}

View File

@@ -0,0 +1,122 @@
//
// Progress bars
// --------------------------------------------------
// ANIMATIONS
// ----------
// Webkit
@-webkit-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Firefox
@-moz-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// IE9
@-ms-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Opera
@-o-keyframes progress-bar-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
// Spec
@keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// THE BARS
// --------
// Outer container
.progress {
overflow: hidden;
height: @baseLineHeight;
margin-bottom: @baseLineHeight;
#gradient > .vertical(#f5f5f5, #f9f9f9);
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
.border-radius(@baseBorderRadius);
}
// Bar of progress
.progress .bar {
width: 0%;
height: 100%;
color: @white;
float: left;
font-size: 12px;
text-align: center;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
#gradient > .vertical(#149bdf, #0480be);
.box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
.box-sizing(border-box);
.transition(width .6s ease);
}
.progress .bar + .bar {
.box-shadow(~"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)");
}
// Striped bars
.progress-striped .bar {
#gradient > .striped(#149bdf);
.background-size(40px 40px);
}
// Call animation for the active one
.progress.active .bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-moz-animation: progress-bar-stripes 2s linear infinite;
-ms-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
// COLORS
// ------
// Danger (red)
.progress-danger .bar, .progress .bar-danger {
#gradient > .vertical(#ee5f5b, #c43c35);
}
.progress-danger.progress-striped .bar, .progress-striped .bar-danger {
#gradient > .striped(#ee5f5b);
}
// Success (green)
.progress-success .bar, .progress .bar-success {
#gradient > .vertical(#62c462, #57a957);
}
.progress-success.progress-striped .bar, .progress-striped .bar-success {
#gradient > .striped(#62c462);
}
// Info (teal)
.progress-info .bar, .progress .bar-info {
#gradient > .vertical(#5bc0de, #339bb9);
}
.progress-info.progress-striped .bar, .progress-striped .bar-info {
#gradient > .striped(#5bc0de);
}
// Warning (orange)
.progress-warning .bar, .progress .bar-warning {
#gradient > .vertical(lighten(@orange, 15%), @orange);
}
.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
#gradient > .striped(lighten(@orange, 15%));
}

View File

@@ -0,0 +1,216 @@
//
// Reset CSS
// Adapted from http://github.com/necolas/normalize.css
// --------------------------------------------------
// Display in IE6-9 and FF3
// -------------------------
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
display: block;
}
// Display block in IE6-9 and FF3
// -------------------------
audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
// Prevents modern browsers from displaying 'audio' without controls
// -------------------------
audio:not([controls]) {
display: none;
}
// Base settings
// -------------------------
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
// Focus states
a:focus {
.tab-focus();
}
// Hover & Active
a:hover,
a:active {
outline: 0;
}
// Prevents sub and sup affecting line-height in all browsers
// -------------------------
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
// Img border in a's and image quality
// -------------------------
img {
/* Responsive images (ensure images don't scale beyond their parents) */
max-width: 100%; /* Part 1: Set a maxium relative to the parent */
width: auto\9; /* IE7-8 need help adjusting responsive images */
height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */
vertical-align: middle;
border: 0;
-ms-interpolation-mode: bicubic;
}
// Prevent max-width from affecting Google Maps
#map_canvas img,
.google-maps img {
max-width: none;
}
// Forms
// -------------------------
// Font size in all browsers, margin changes, misc consistency
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible; // Inner spacing ie IE6/7
line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
}
button::-moz-focus-inner,
input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
padding: 0;
border: 0;
}
button,
html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
}
label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
}
input[type="search"] { // Appearance in Safari/Chrome
.box-sizing(content-box);
-webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
}
textarea {
overflow: auto; // Remove vertical scrollbar in IE6-9
vertical-align: top; // Readability and alignment cross-browser
}
// Printing
// -------------------------
// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
@media print {
* {
text-shadow: none !important;
color: #000 !important; // Black prints faster: h5bp.com/s
background: transparent !important;
box-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
// Don't show links for images, or javascript/internal links
.ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group; // h5bp.com/t
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
@page {
margin: 0.5cm;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}

View File

@@ -0,0 +1,28 @@
//
// Responsive: Large desktop and up
// --------------------------------------------------
@media (min-width: 1200px) {
// Fixed grid
#grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);
// Fluid grid
#grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);
// Input grid
#grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);
// Thumbnails
.thumbnails {
margin-left: -@gridGutterWidth1200;
}
.thumbnails > li {
margin-left: @gridGutterWidth1200;
}
.row-fluid .thumbnails {
margin-left: 0;
}
}

View File

@@ -0,0 +1,193 @@
//
// Responsive: Landscape phone to desktop/tablet
// --------------------------------------------------
@media (max-width: 767px) {
// Padding to set content in a bit
body {
padding-left: 20px;
padding-right: 20px;
}
// Negative indent the now static "fixed" navbar
.navbar-fixed-top,
.navbar-fixed-bottom,
.navbar-static-top {
margin-left: -20px;
margin-right: -20px;
}
// Remove padding on container given explicit padding set on body
.container-fluid {
padding: 0;
}
// TYPOGRAPHY
// ----------
// Reset horizontal dl
.dl-horizontal {
dt {
float: none;
clear: none;
width: auto;
text-align: left;
}
dd {
margin-left: 0;
}
}
// GRID & CONTAINERS
// -----------------
// Remove width from containers
.container {
width: auto;
}
// Fluid rows
.row-fluid {
width: 100%;
}
// Undo negative margin on rows and thumbnails
.row,
.thumbnails {
margin-left: 0;
}
.thumbnails > li {
float: none;
margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present
}
// Make all grid-sized elements block level again
[class*="span"],
.uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing
.row-fluid [class*="span"] {
float: none;
display: block;
width: 100%;
margin-left: 0;
.box-sizing(border-box);
}
.span12,
.row-fluid .span12 {
width: 100%;
.box-sizing(border-box);
}
.row-fluid [class*="offset"]:first-child {
margin-left: 0;
}
// FORM FIELDS
// -----------
// Make span* classes full width
.input-large,
.input-xlarge,
.input-xxlarge,
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
.uneditable-input {
.input-block-level();
}
// But don't let it screw up prepend/append inputs
.input-prepend input,
.input-append input,
.input-prepend input[class*="span"],
.input-append input[class*="span"] {
display: inline-block; // redeclare so they don't wrap to new lines
width: auto;
}
.controls-row [class*="span"] + [class*="span"] {
margin-left: 0;
}
// Modals
.modal {
position: fixed;
top: 20px;
left: 20px;
right: 20px;
width: auto;
margin: 0;
&.fade { top: -100px; }
&.fade.in { top: 20px; }
}
}
// UP TO LANDSCAPE PHONE
// ---------------------
@media (max-width: 480px) {
// Smooth out the collapsing/expanding nav
.nav-collapse {
-webkit-transform: translate3d(0, 0, 0); // activate the GPU
}
// Block level the page header small tag for readability
.page-header h1 small {
display: block;
line-height: @baseLineHeight;
}
// Update checkboxes for iOS
input[type="checkbox"],
input[type="radio"] {
border: 1px solid #ccc;
}
// Remove the horizontal form styles
.form-horizontal {
.control-label {
float: none;
width: auto;
padding-top: 0;
text-align: left;
}
// Move over all input controls and content
.controls {
margin-left: 0;
}
// Move the options list down to align with labels
.control-list {
padding-top: 0; // has to be padding because margin collaspes
}
// Move over buttons in .form-actions to align with .controls
.form-actions {
padding-left: 10px;
padding-right: 10px;
}
}
// Medias
// Reset float and spacing to stack
.media .pull-left,
.media .pull-right {
float: none;
display: block;
margin-bottom: 10px;
}
// Remove side margins since we stack instead of indent
.media-object {
margin-right: 0;
margin-left: 0;
}
// Modals
.modal {
top: 10px;
left: 10px;
right: 10px;
}
.modal-header .close {
padding: 10px;
margin: -10px;
}
// Carousel
.carousel-caption {
position: static;
}
}

Some files were not shown because too many files have changed in this diff Show More