Commit f180707b by Torkel Ödegaard

Merge branch 'master' into dashboard_loading_refactoring

parents d198095d 9a53779b
# vNext
vNext
**New features or improvements**
- Ability to set y min/max for right y-axis (RR #519, Closes #360) - thx @acedrew
**Fixes**
- Fixes regex InfluxDB queries intoduced in 1.6.0 (PR #500)
- Bug in when using % sign in legends (aliases), fixed by removing url decoding of metric names (Fixes #506)
- Series names and column name typeahead cache fix (Fixes #522)
- Fixed influxdb issue with raw query that caused wrong value column detection (Fixes #504)
- Default property that marks which datasource is default in config.js is now optional (Fixes #526)
# 1.6.0 (2014-06-16)
#### New features or improvements
- New Y-axis formater for metric values that represent seconds (Issue #427) - thx @jippi
......@@ -28,6 +41,7 @@
Use datasources config instead. panel_names removed from config.js. Use plugins.panels to add custom panels
#### Fixes
- Graphite query lexer change, can now handle regex parameters for aliasSub function (Fixes #126)
- Filter option loading when having muliple nested filters now works better.
Options are now reloaded correctly and there are no multiple renders/refresh inbetween (#447),
After an option is changed and a nested template param is also reloaded, if the current value
......
......@@ -71,7 +71,14 @@ Header set Access-Control-Allow-Headers "origin, authorization, accept"
```
Note that using "\*" leaves your graphite instance quite open so you might want to consider using "http://my.graphite-dom.ain" in place of "\*"
If your Graphite web is proteced by basic authentication, you have to enable the HTTP verb OPTIONS, origin
Here is the same thing, in nginx format:
```
add_header "Access-Control-Allow-Origin" "*";
add_header "Access-Control-Allow-Credentials" "true";
add_header "Access-Control-Allow-Methods" "GET, OPTIONS";
add_header "Access-Control-Allow-Headers" "Authorization, origin, accept";
```
If your Graphite web is protected by basic authentication, you have to enable the HTTP verb OPTIONS, origin
(no wildcards are allowed in this case) and add Access-Control-Allow-Credentials. This looks like the following for Apache:
```
Header set Access-Control-Allow-Origin "http://mygrafana.com:5656"
......@@ -86,7 +93,20 @@ Header set Access-Control-Allow-Credentials true
</LimitExcept>
</Location>
```
And in nginx:
```
auth_basic "Restricted";
auth_basic_user_file /path/to/my/htpasswd/file;
if ($http_origin ~* (https?://[^/]*\.somedomain\.com(:[0-9]+)?)) { #Test if request is from allowed domain, you can use multiple if
set $cors "true"; #statements to allow multiple domains, simply setting $cors to true in each one.
}
if ($cors = 'true') {
add_header Access-Control-Allow-Origin $http_origin; #this mirrors back whatever domain the request came from as authorized, as
add_header "Access-Control-Allow-Credentials" "true"; #as long as it matches one of your if statements
add_header "Access-Control-Allow-Methods" "GET, OPTIONS";
add_header "Access-Control-Allow-Headers" "Authorization, origin, accept";
}
```
# Roadmap
- Improve and refine the target parser and editing
- Improve graphite import feature
......
{
"version": "1.5.4",
"url": "http://grafanarel.s3.amazonaws.com/grafana-1.5.4.tar.gz"
"version": "1.6.0",
"url": "http://grafanarel.s3.amazonaws.com/grafana-1.6.0.tar.gz"
}
\ No newline at end of file
......@@ -4,7 +4,7 @@
"company": "Coding Instinct AB"
},
"name": "grafana",
"version": "1.6.0-rc.1",
"version": "1.6.0",
"repository": {
"type": "git",
"url": "http://github.com/torkelo/grafana.git"
......@@ -32,17 +32,17 @@
"expect.js": "~0.2.0",
"karma-script-launcher": "~0.1.0",
"karma-firefox-launcher": "~0.1.3",
"karma-chrome-launcher": "~0.1.2",
"karma-chrome-launcher": "~0.1.4",
"karma-html2js-preprocessor": "~0.1.0",
"karma-jasmine": "~0.1.5",
"karma-jasmine": "~0.2.2",
"requirejs": "~2.1.9",
"karma-requirejs": "~0.2.1",
"karma-coffee-preprocessor": "~0.1.2",
"karma-phantomjs-launcher": "~0.1.1",
"karma": "~0.10.9",
"grunt-karma": "~0.6.2",
"karma-mocha": "~0.1.1",
"karma-expect": "~1.0.0",
"karma": "~0.12.16",
"grunt-karma": "~0.8.3",
"karma-mocha": "~0.1.4",
"karma-expect": "~1.1.0",
"grunt-cli": "~0.1.13",
"jshint-stylish": "~0.1.5",
"grunt-contrib-concat": "^0.4.0",
......
......@@ -42,6 +42,7 @@ function (angular) {
$scope.seriesBlur = function() {
if ($scope.oldSeries !== $scope.target.series) {
$scope.oldSeries = $scope.target.series;
$scope.columnList = null;
$scope.get_data();
}
};
......@@ -67,7 +68,7 @@ function (angular) {
};
$scope.listSeries = function(query, callback) {
if (!seriesList) {
if (!seriesList || query === '') {
seriesList = [];
$scope.datasource.listSeries().then(function(series) {
seriesList = series;
......
......@@ -259,8 +259,8 @@ function (angular, $, kbn, moment, _) {
var defaults = {
position: 'left',
show: scope.panel['y-axis'],
min: scope.panel.grid.min,
max: scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.max,
min: scope.panel.grid.leftMin,
max: scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.leftMax,
};
options.yaxes.push(defaults);
......@@ -268,6 +268,8 @@ function (angular, $, kbn, moment, _) {
if (_.findWhere(data, {yaxis: 2})) {
var secondY = _.clone(defaults);
secondY.position = 'right';
secondY.min = scope.panel.grid.rightMin;
secondY.max = scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.rightMax;
options.yaxes.push(secondY);
configureAxisMode(options.yaxes[1], scope.panel.y_formats[1]);
}
......
......@@ -114,10 +114,4 @@ define(['angular', 'jquery', 'underscore', 'moment'], function (angular, $, _, m
};
});
module.filter('urlDecode', function() {
return function(input) {
return decodeURIComponent(input);
};
});
});
\ No newline at end of file
......@@ -17,7 +17,7 @@
</a>
<ul class="dropdown-menu">
<li ng-repeat="option in filter.options">
<a ng-click="filterOptionSelected(filter, option)">{{option.text | urlDecode}}</a>
<a ng-click="filterOptionSelected(filter, option)">{{option.text}}</a>
</li>
</ul>
</li>
......
<div class="editor-row">
<div class="editor-row">
<div class="section">
<h5>Axes</h5>
<div class="editor-option">
<label class="small">X-Axis</label><input type="checkbox" ng-model="panel['x-axis']" ng-checked="panel['x-axis']" ng-change="render()">
</div>
<div class="editor-option">
<label class="small">Y-Axis</label><input type="checkbox" ng-model="panel['y-axis']" ng-checked="panel['y-axis']" ng-change="render()">
</div>
<div class="editor-option">
<label class="small">Left Y Format <tip>Y-axis formatting</tip></label>
<select class="input-small" ng-model="panel.y_formats[0]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
</div>
<div class="editor-option">
<label class="small">Right Y Format <tip>Y-axis formatting</tip></label>
<select class="input-small" ng-model="panel.y_formats[1]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
</div>
<div class="editor-option">
<label class="small">Left Y-axis label</label>
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.leftYAxisLabel">
</div>
<div class="editor-option">
<label class="small">Right Y-axis label</label>
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.rightYAxisLabel">
</div>
<h5>Left Y Axis</h5>
<div class="editor-option">
<label class="small">Format <tip>Y-axis formatting</tip></label>
<select class="input-small" ng-model="panel.y_formats[0]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
</div>
<div class="editor-option">
<label class="small">Min / <a ng-click="toggleGridMinMax('leftMin')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.leftMin)"></i></a></label>
<input type="number" class="input-small" ng-model="panel.grid.leftMin" ng-change="render()" ng-model-onblur />
</div>
<div class="editor-option">
<label class="small">Max / <a ng-click="toggleGridMinMax('leftMax')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.leftMax)"></i></a></label>
<input type="number" class="input-small" ng-model="panel.grid.leftMax" ng-change="render()" ng-model-onblur />
</div>
<div class="editor-option">
<label class="small">Label</label>
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.leftYAxisLabel">
</div>
</div>
<div class="section">
<h5>Right Y Axis</h5>
<div class="editor-option">
<label class="small">Format <tip>Y-axis formatting</tip></label>
<select class="input-small" ng-model="panel.y_formats[1]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
</div>
<div class="editor-option">
<label class="small">Min / <a ng-click="toggleGridMinMax('rightMin')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.rightMin)"></i></a></label>
<input type="number" class="input-small" ng-model="panel.grid.rightMin" ng-change="render()" ng-model-onblur />
</div>
<div class="editor-option">
<label class="small">Max / <a ng-click="toggleGridMinMax('rightMax')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.rightMax)"></i></a></label>
<input type="number" class="input-small" ng-model="panel.grid.rightMax" ng-change="render()" ng-model-onblur />
</div>
<div class="editor-option">
<label class="small">Label</label>
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.rightYAxisLabel">
</div>
</div>
</div>
<div class="editor-row">
<div class="section">
<h5>Grid</h5>
<div class="editor-option">
<label class="small">Min / <a ng-click="toggleGridMinMax('min')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.min)"></i></a></label>
<input type="number" class="input-small" ng-model="panel.grid.min" ng-change="render()" ng-model-onblur />
</div>
<div class="editor-option">
<label class="small">Max / <a ng-click="toggleGridMinMax('max')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.max)"></i></a></label>
<input type="number" class="input-small" ng-model="panel.grid.max" ng-change="render()" ng-model-onblur />
</div>
</div>
<div class="editor-row">
<div class="section">
<h5>Grid thresholds</h5>
......@@ -102,4 +100,14 @@
</div>
<div class="section">
<h5>Show Axes</h5>
<div class="editor-option">
<label class="small">X-Axis</label><input type="checkbox" ng-model="panel['x-axis']" ng-checked="panel['x-axis']" ng-change="render()">
</div>
<div class="editor-option">
<label class="small">Y-Axis</label><input type="checkbox" ng-model="panel['y-axis']" ng-checked="panel['y-axis']" ng-change="render()">
</div>
</div>
</div>
......@@ -9,7 +9,7 @@
</i>
<span class='small histogram-legend-item'>
<a ng-click="toggleSeries(series, $event)" data-unique="1" data-placement="{{series.yaxis === 2 ? 'bottomRight' : 'bottomLeft'}}">
{{series.alias | urlDecode}}
{{series.alias}}
</a>
<span ng-if="panel.legend.values">
<span ng-show="panel.legend.current">
......
......@@ -95,8 +95,10 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
* grid.ma1::: Maximum y-axis value
*/
grid : {
max: null,
min: null,
leftMax: null,
rightMax: null,
leftMin: null,
rightMin: null,
threshold1: null,
threshold2: null,
threshold1Color: 'rgba(216, 200, 27, 0.27)',
......@@ -191,10 +193,21 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
_.defaults($scope.panel.legend, _d.legend);
}
if ($scope.panel.grid.min) {
$scope.panel.grid.leftMin = $scope.panel.grid.min;
delete $scope.panel.grid.min;
}
if ($scope.panel.grid.max) {
$scope.panel.grid.leftMax = $scope.panel.grid.max;
delete $scope.panel.grid.max;
}
if ($scope.panel.y_format) {
$scope.panel.y_formats[0] = $scope.panel.y_format;
delete $scope.panel.y_format;
}
if ($scope.panel.y2_format) {
$scope.panel.y_formats[1] = $scope.panel.y2_format;
delete $scope.panel.y2_format;
......
......@@ -15,6 +15,9 @@ function (angular, _, config) {
this.init = function() {
var defaultDatasource = _.findWhere(_.values(config.datasources), { default: true });
if (!defaultDatasource) {
defaultDatasource = config.datasources[_.keys(config.datasources)[0]];
}
this.default = this.datasourceFactory(defaultDatasource);
};
......
......@@ -646,62 +646,6 @@ define([
var jump = 1; // A length of a jump, after we're done
// parsing this character.
// Special treatment for some escaped characters.
if (char === "\\") {
this.skip();
char = this.peek();
switch (char) {
case "'":
break;
case "b":
char = "\b";
break;
case "f":
char = "\f";
break;
case "n":
char = "\n";
break;
case "r":
char = "\r";
break;
case "t":
char = "\t";
break;
case "0":
char = "\0";
break;
case "u":
char = String.fromCharCode(parseInt(this.input.substr(1, 4), 16));
jump = 5;
break;
case "v":
char = "\v";
break;
case "x":
var x = parseInt(this.input.substr(1, 2), 16);
char = String.fromCharCode(x);
jump = 3;
break;
case "\\":
case "\"":
case "/":
break;
case "":
char = "";
break;
case "!":
if (value.slice(value.length - 2) === "<") {
break;
}
/*falls through */
default:
// Weird escaping.
}
}
value += char;
this.skip(jump);
}
......
......@@ -43,7 +43,7 @@ function (angular, _, kbn) {
var groupByIndex = lowerCaseQueryElements.indexOf("group");
var orderIndex = lowerCaseQueryElements.indexOf("order");
if (lowerCaseQueryElements[1].indexOf(',')) {
if (lowerCaseQueryElements[1].indexOf(',') !== -1) {
groupByField = lowerCaseQueryElements[1].replace(',', '');
}
......@@ -68,7 +68,7 @@ function (angular, _, kbn) {
}
else {
var template = "select [[group]][[group_comma]] [[func]](\"[[column]]\") as \"[[column]]_[[func]]\" from \"[[series]]\" " +
var template = "select [[group]][[group_comma]] [[func]]([[column]]) from [[series]] " +
"where [[timeFilter]] [[condition_add]] [[condition_key]] [[condition_op]] [[condition_value]] " +
"group by time([[interval]])[[group_comma]] [[group]] order asc";
......@@ -86,6 +86,10 @@ function (angular, _, kbn) {
group: target.groupby_field_add ? target.groupby_field : '',
};
if(!templateData.series.match('^/.*/')) {
templateData.series = '"' + templateData.series + '"';
}
query = _.template(template, templateData, this.templateSettings);
query = filterSrv.applyTemplateToTarget(query);
......@@ -112,11 +116,10 @@ function (angular, _, kbn) {
};
InfluxDatasource.prototype.listColumns = function(seriesName) {
return this.doInfluxRequest('select * from "' + seriesName + '" limit 1').then(function(data) {
return this.doInfluxRequest('select * from /' + seriesName + '/ limit 1').then(function(data) {
if (!data) {
return [];
}
return data[0].columns;
});
};
......@@ -229,7 +232,7 @@ function (angular, _, kbn) {
datapoints[i] = [metricValue, groupPoints[i][timeCol]];
}
seriesName = alias ? alias : key;
seriesName = alias ? alias : (series.name + '.' + key);
// if mulitple groups append key to alias
if (alias && groupByField) {
......
......@@ -32,6 +32,9 @@ function (Settings) {
// default start dashboard
default_route: '/dashboard/file/default.json',
// Elasticsearch index for storing dashboards
grafana_index: "grafana-dash",
// timezoneOFfset:
// If you experiance problems with zoom, it is probably caused by timezone diff between
// your browser and the graphite-web application. timezoneOffset setting can be used to have Grafana
......@@ -44,9 +47,6 @@ function (Settings) {
//
timezoneOffset: null,
// Elasticsearch index for storing dashboards
grafana_index: "grafana-dash",
// set to false to disable unsaved changes warning
unsaved_changes_warning: true,
......@@ -54,7 +54,6 @@ function (Settings) {
// Example: "1m", "1h"
playlist_timespan: "1m",
// Add your own custom pannels
plugins: {
panels: []
......
// Slate 2.3.2
// Bootswatch
// -----------------------------------------------------
// TYPOGRAPHY
// -----------------------------------------------------
h1, h2, h3, h4, h5, h6 {
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
}
code, pre {
background-color: #F7F7F7;
border: 1px solid darken(@grayDarker, 5%);
text-shadow: none;
}
// SCAFFOLDING
// -----------------------------------------------------
legend, .page-header {
border-bottom: 1px solid @hrBorder;
}
hr {
border-bottom: none;
}
// NAVBAR
// -----------------------------------------------------
.navbar {
.navbar-inner {
#gradient > .vertical-three-colors(@grayDark, darken(@bodyBackground,3%), 70%, darken(@bodyBackground,3%));
}
.brand {
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border-right: none;
}
.navbar-text {
padding: 0 15px;
font-weight: bold;
}
.nav > li > a {
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border-right: 1px solid rgba(0, 0, 0, 0.2);
border-left: 1px solid rgba(255, 255, 255, 0.1);
&:hover {
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border-left: 1px solid transparent;
border-right: 1px solid transparent;
}
}
.nav > li.active > a,
.nav > li.active > a:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(lighten(@grayDarker, 2%), lighten(@grayDark, 2%), 0deg);
border-right: 1px solid darken(@gray, 15%);
}
.navbar-search .search-query {
border: 1px solid darken(@gray, 15%);
}
.btn,
.btn-group {
margin: 4px 0;
}
.divider-vertical {
background-color: transparent;
border-right: none;
}
.dropdown-menu::after {
border-bottom: 6px solid @grayDark;
}
&-inverse {
.navbar-inner {
#gradient > .vertical-three-colors(darken(@grayDarker, 3%), darken(@grayDarker, 8%), 70%, darken(@grayDarker, 8%));
}
.nav li > a {
background-image: none;
background-color: transparent;
}
.nav li > a:hover,
.nav li.active > a,
.nav li.active > a:hover {
#gradient > .directional(darken(@grayDarker, 10%), darken(@grayDarker, 5%), 280deg);
}
}
}
@media (max-width: @navbarCollapseWidth) {
.navbar .nav-collapse {
.nav li > a,
.nav li > a:hover,
.nav .active > a,
.nav .active > a:hover {
.box-shadow(none);
color: @grayLighter;
border: 1px solid transparent;
background-color: transparent;
background-image: none;
}
.nav li > a:hover,
.nav .active > a:hover {
background-color: @grayDarker;
}
.navbar-form,
.navbar-search {
border-color: transparent;
.box-shadow(none);
}
.nav-header {
color: @grayLight;
}
}
.navbar-inverse .nav-collapse {
.nav li > a:hover,
.nav .active > a:hover {
background-color: @grayDarker !important;
}
}
}
.nav-tabs {
.active > a, .active a:hover {
border-bottom: 1px solid darken(@grayDark, 5%);;
}
}
div.subnav {
margin: 0 1px;
//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
border: 1px solid transparent;
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
.nav > li > a {
color: @grayLighter;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
border-right: 1px solid darken(@gray, 15%);
border-left: 1px solid @gray;
&:hover {
color: @grayLighter;
background-color: @grayDark;
//#gradient > .directional(@grayDarker, @grayDark, 280deg);
border-left: 1px solid transparent;
border-right: 1px solid transparent;
}
}
.nav > li.active > a,
.nav > li.active > a:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
border-right: 1px solid darken(@gray, 15%);
}
.nav > li:first-child > a,
.nav > li:first-child > a:hover {
border-left: 1px solid transparent;
}
.nav > li.active:last-child > a,
.nav > li:last-child > a:hover {
border-right: 1px solid darken(@gray, 15%);
}
.open .dropdown-toggle {
border-right: 1px solid darken(@gray, 15%);
border-left: 1px solid @gray;
}
&.subnav-fixed {
top: @navbarHeight;
margin: 0;
.box-shadow(none);
.nav > li.active:first-child > a,
.nav > li:first-child > a:hover {
border-left: 1px solid darken(@gray, 15%);
}
}
}
// NAV
// -----------------------------------------------------
.nav {
.nav-header {
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
}
& > li > a {
//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
border: none;
color: @grayLight;
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}
li.active > a,
li.active > a:hover {
background-color: transparent;
color: @white;
}
& > li.disabled > a,
& > li.disabled > a:hover {
color: @gray;
}
li > a:hover {
background-color: transparent;
color: @grayLighter;
}
}
.breadcrumb {
border: 1px solid transparent;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
a {
color: @grayLighter;
font-weight: bold;
}
li {
color: @grayLight;
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}
}
.pagination {
ul {
.box-shadow(none);
}
ul > li > a,
ul > li > span {
border-left: 1px solid @gray;
border-right: 1px solid darken(@gray, 15%);
border-top: none;
border-bottom: none;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
color: @grayLighter;
font-weight: bold;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
&:hover {
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border-left: 1px solid transparent;
}
}
ul > .active > a,
ul > .active > a:hover,
ul > .active > span,
ul > .active > span:hover {
color: @grayLighter;
background-color: @grayDark;
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
border-left: 1px solid transparent;
}
ul > .disabled > a,
ul > .disabled > a:hover,
ul > .disabled > span,
ul > .disabled > span:hover {
border-left: 1px solid @gray;
border-right: 1px solid darken(@gray, 15%);
border-top: none;
border-bottom: none;
#gradient > .vertical-three-colors(@grayLight, @gray, 70%, @gray);
}
}
.pager {
li > a,
li > span {
border: 1px solid transparent;
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
&:hover {
#gradient > .directional(@grayDarker, @grayDark, 280deg);
border: 1px solid transparent;
}
}
.disabled a,
.disabled a:hover {
background-color: transparent;
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
}
}
// BUTTONS
// -----------------------------------------------------
.btn {
.buttonBackground(@gray, darken(@gray, 10%));
.border-radius(3px);
border: 1px solid @grayDarker;
}
.btn, .btn:hover {
color: @white;
font-weight: bold;
text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.3);
}
.btn-primary {
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
color: @grayDark;
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3);
}
.btn-warning {
.buttonBackground(lighten(@orange, 15%), @orange);
}
.btn-danger {
.buttonBackground(@red, #bd362f);
}
.btn-success {
.buttonBackground(@green, #51a351);
}
.btn-info {
.buttonBackground(@blue, #2f96b4);
}
.btn-inverse {
.buttonBackground(@gray, @grayDarker);
}
.caret {
border-top-color: @white;
}
// TABLES
// -----------------------------------------------------
.table {
tbody tr.success td {
background-color: @successText;
}
tbody tr.error td {
background-color: @errorText;
}
tbody tr.info td {
background-color: @infoText;
}
}
// FORMS
// -----------------------------------------------------
label, input, button, select, textarea, legend {
color: @textColor;
}
legend, label {
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
}
.input-prepend .add-on,
.input-append .add-on {
vertical-align: top;
background-color: @gray;
border-top: 1px solid @grayLight;
border-left: 1px solid @grayLight;
border-bottom: 1px solid @grayDark;
border-right: 1px solid @grayDark;
text-shadow: none;
}
.input-append .btn,
.input-prepend .btn {
margin-top: -1px;
padding: 5px 14px;
}
.uneditable-input,
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
color: @gray;
background: @grayDarker;
}
.form-actions {
border-top: none;
}
// DROPDOWNS
// -----------------------------------------------------
.dropdown-menu {
.box-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
}
.dropdown.open .dropdown-toggle {
background-color: @grayDark;
color: @grayLighter;
}
.dropdown-submenu > a::after {
border-left-color: @white;
}
// ALERTS, LABELS, BADGES
// -----------------------------------------------------
.label, .alert {
color: rgba(255, 255, 255, 0.9);
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.3));
}
.alert {
background-color: @orange;
border-color: @orange;
.alert-heading {
color: rgba(255, 255, 255, 0.9);
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.4);
}
}
.alert-success {
background-color: @successText;
border-color: @successText;
}
.alert-error {
background-color: @errorText;
border-color: @errorText;
}
.alert-info {
background-color: @infoText;
border-color: @infoText;
}
// MISC
// -----------------------------------------------------
.well, .hero-unit {
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
}
.thumbnail,
a.thumbnail:hover {
border: 1px solid darken(@grayDarker, 5%);
}
.progress {
background-color: darken(@grayDarker, 3%);
#gradient > .vertical(darken(@grayDarker, 3%), darken(@grayDarker, 3%));
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
}
.footer {
border-top: 1px solid darken(@grayDarker, 5%);
p {
color: @textColor;
}
}
.modal {
background-color: darken(@grayDark, 5%);
&-header {
border-bottom: none;
}
&-body {
border-bottom: 1px solid #1C1E22;
}
&-footer {
border-top: none;
background-color: @grayDarker;
.box-shadow(none);
}
}
// MEDIA QUERIES
// -----------------------------------------------------
@media (max-width: 979px) {
.navbar .brand {
border-right: none;
}
}
@media (max-width: 768px) {
div.subnav .nav > li + li > a {
border-top: 1px solid transparent;
}
}
\ No newline at end of file
// Slate 2.3.2
// Variables
// --------------------------------------------------
// Global values
// --------------------------------------------------
// Grays
// -------------------------
@black: #000;
@grayDarker: #272B30;
@grayDark: #3A3F44;
@gray: #52575C;
@grayLight: #7A8288;
@grayLighter: #BBBFC2;
@white: #fff;
// Accent colors
// -------------------------
@blue: #5bc0de;
@blueDark: #108CBB;
@green: #62c462;
@red: #ee5f5b;
@yellow: #F6D30D;
@orange: #f89406;
@pink: #c3325f;
@purple: #7a43b6;
// Scaffolding
// -------------------------
@bodyBackground: @grayDarker;
@textColor: #C8C8C8;
// Links
// -------------------------
@linkColor: @white;
@linkColorHover: @white;
// Typography
// -------------------------
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace;
@baseFontSize: 14px;
@baseFontFamily: @sansFontFamily;
@baseLineHeight: 21px;
@altFontFamily: @serifFontFamily;
@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
@headingsFontWeight: bold; // instead of browser default, bold
@headingsColor: inherit; // empty to use BS default, @textColor
// Component sizing
// -------------------------
// Based on 14px font-size and 20px line-height
@fontSizeLarge: @baseFontSize * 1.25; // ~18px
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
@fontSizeMini: @baseFontSize * 0.75; // ~11px
@paddingLarge: 11px 19px; // 44px
@paddingSmall: 2px 10px; // 26px
@paddingMini: 0px 6px; // 22px
@baseBorderRadius: 4px;
@borderRadiusLarge: 6px;
@borderRadiusSmall: 3px;
// Tables
// -------------------------
@tableBackground: transparent; // overall background-color
@tableBackgroundAccent: darken(@grayDark, 5%); // for striping
@tableBackgroundHover: @grayDark; // for hover
@tableBorder: lighten(@grayDark, 2%); // table and cell border
// Buttons
// -------------------------
@btnBackground: @gray;
@btnBackgroundHighlight: darken(@gray, 10%);
@btnBorder: darken(@gray, 20%);
@btnPrimaryBackground: @grayLight;
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
@btnInfoBackground: @blue;
@btnInfoBackgroundHighlight: #2f96b4;
@btnSuccessBackground: @green;
@btnSuccessBackgroundHighlight: #51a351;
@btnWarningBackground: lighten(@orange, 15%);
@btnWarningBackgroundHighlight: @orange;
@btnDangerBackground: @red;
@btnDangerBackgroundHighlight: #bd362f;
@btnInverseBackground: @gray;
@btnInverseBackgroundHighlight: @grayDarker;
// Forms
// -------------------------
@inputText: @white;
@inputBackground: @gray;
@inputBorder: @grayLight;
@inputBorderRadius: @baseBorderRadius;
@inputDisabledBackground: @grayLighter;
@formActionsBackground: darken(@grayDarker, 3%);
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
// Dropdowns
// -------------------------
@dropdownBackground: @grayDark;
@dropdownBorder: rgba(0,0,0,.2);
@dropdownDividerTop: transparent;
@dropdownDividerBottom: darken(@grayDarker, 5%);
@dropdownLinkColor: @grayLight;
@dropdownLinkColorHover: @white;
@dropdownLinkColorActive: @white;
@dropdownLinkBackgroundActive: @grayDarker;
@dropdownLinkBackgroundHover: @grayDarker;
// COMPONENT VARIABLES
// --------------------------------------------------
// Z-index master list
// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
@zindexDropdown: 1000;
@zindexPopover: 1010;
@zindexTooltip: 1030;
@zindexFixedNavbar: 1030;
@zindexModalBackdrop: 1040;
@zindexModal: 1050;
// Sprite icons path
// -------------------------
@iconSpritePath: "../img/glyphicons-halflings.png";
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
// Input placeholder text color
// -------------------------
@placeholderText: @grayLight;
// Hr border color
// -------------------------
@hrBorder: darken(@grayDarker, 5%);
// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset: 180px;
// Wells
// -------------------------
@wellBackground: darken(@grayDarker, 3%);
// Navbar
// -------------------------
@navbarCollapseWidth: 979px;
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
@navbarHeight: 40px;
@navbarBackground: @grayDarker;
@navbarBackgroundHighlight: @grayDark;
@navbarBorder: darken(@navbarBackground, 12%);
@navbarText: @textColor;
@navbarLinkColor: @textColor;
@navbarLinkColorHover: @white;
@navbarLinkColorActive: @navbarLinkColorHover;
@navbarLinkBackgroundHover: @grayDark;
@navbarLinkBackgroundActive: @navbarBackground;
@navbarBrandColor: @grayLighter;
// Inverted navbar
@navbarInverseBackground: darken(@grayDarker, 10%);
@navbarInverseBackgroundHighlight: @grayDarker;
@navbarInverseBorder: #252525;
@navbarInverseText: @grayLight;
@navbarInverseLinkColor: @grayLight;
@navbarInverseLinkColorHover: @white;
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
@navbarInverseLinkBackgroundHover: transparent;
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
@navbarInverseSearchBackgroundFocus: @white;
@navbarInverseSearchBorder: @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor: #ccc;
@navbarInverseBrandColor: @navbarInverseLinkColor;
// Pagination
// -------------------------
@paginationBackground: #fff;
@paginationBorder: #ddd;
@paginationActiveBackground: #f5f5f5;
// Hero unit
// -------------------------
@heroUnitBackground: darken(@grayDarker, 3%);
@heroUnitHeadingColor: inherit;
@heroUnitLeadColor: inherit;
// Form states and alerts
// -------------------------
@warningText: #c09853;
@warningBackground: #fcf8e3;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@errorText: #b94a48;
@errorBackground: #f2dede;
@errorBorder: darken(spin(@errorBackground, -10), 3%);
@successText: #468847;
@successBackground: #dff0d8;
@successBorder: darken(spin(@successBackground, -10), 5%);
@infoText: #3a87ad;
@infoBackground: #d9edf7;
@infoBorder: darken(spin(@infoBackground, -10), 7%);
// Tooltips and popovers
// -------------------------
@tooltipColor: #fff;
@tooltipBackground: @dropdownBackground;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: @tooltipBackground;
@popoverBackground: @dropdownBackground;
@popoverArrowWidth: 10px;
@popoverArrowColor: @dropdownBackground;
@popoverTitleBackground: lighten(@popoverBackground, 3%);
// Special enhancement for popovers
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
@popoverArrowOuterColor: rgba(0,0,0,.25);
// GRID
// --------------------------------------------------
// Default 940px grid
// -------------------------
@gridColumns: 12;
@gridColumnWidth: 60px;
@gridGutterWidth: 10px;
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
// 1200px min
@gridColumnWidth1200: 70px;
@gridGutterWidth1200: 10px;
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
// 768px-979px
@gridColumnWidth768: 42px;
@gridGutterWidth768: 10px;
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
// Fluid grid
// -------------------------
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
@gridGutterWidth: 10px;
//@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
// 1200px min
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
@gridGutterWidth: 10px;
//@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
// 768px-979px
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
@gridGutterWidth: 10px;
//@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Buttons &middot; Bootstrap</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<style>
body {
padding-top: 30px;
padding-bottom: 30px;
}
</style>
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
</head>
<body>
<div class="container">
<h2>Dropups</h2>
<div class="btn-toolbar">
<div class="btn-group dropup">
<button class="btn">Dropup</button>
<button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
<div class="btn-group dropup">
<button class="btn btn-primary">Dropup</button>
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
<div class="btn-group dropup">
<button class="btn btn-danger">Dropup</button>
<button class="btn btn-danger dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
<div class="btn-group dropup">
<button class="btn btn-warning">Dropup</button>
<button class="btn btn-warning dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
<div class="btn-group dropup">
<button class="btn btn-success">Dropup</button>
<button class="btn btn-success dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
<div class="btn-group dropup">
<button class="btn btn-info">Dropup</button>
<button class="btn btn-info dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
<div class="btn-group dropup">
<button class="btn btn-inverse">Dropup</button>
<button class="btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
</div><!-- /btn-toolbar -->
</div> <!-- /container -->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../docs/assets/js/jquery.js"></script>
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
<script src="../../docs/assets/js/bootstrap-button.js"></script>
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
</body>
</html>
/*!
* Bootstrap CSS Tests
*/
/* Remove background image */
body {
background-image: none;
}
/* Space out subhead */
.subhead {
margin-bottom: 36px;
}
/*h4 {
margin-bottom: 5px;
}
*/
.type-test {
margin-bottom: 20px;
padding: 0 20px 20px;
background: url(../../docs/assets/img/grid-baseline-20px.png);
}
.type-test h1,
.type-test h2,
.type-test h3,
.type-test h4,
.type-test h5,
.type-test h6 {
background-color: rgba(255,0,0,.2);
}
/* colgroup tests */
.col1 {
background-color: rgba(255,0,0,.1);
}
.col2 {
background-color: rgba(0,255,0,.1);
}
.col3 {
background-color: rgba(0,0,255,.1);
}
/* Fluid row inputs */
#rowInputs .row > [class*=span],
#fluidRowInputs .row-fluid > [class*=span] {
background-color: rgba(255,0,0,.1);
}
/* Fluid grid */
.fluid-grid {
margin-bottom: 45px;
}
.fluid-grid .row {
height: 40px;
padding-top: 10px;
margin-top: 10px;
color: #ddd;
text-align: center;
}
.fluid-grid .span1 {
background-color: #999;
}
/* Gradients */
[class^="gradient-"] {
width: 100%;
height: 400px;
margin: 20px 0;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.gradient-horizontal {
background-color: #333333;
background-image: -moz-linear-gradient(left, #555555, #333333);
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#555555), to(#333333));
background-image: -webkit-linear-gradient(left, #555555, #333333);
background-image: -o-linear-gradient(left, #555555, #333333);
background-image: linear-gradient(to right, #555555, #333333);
background-repeat: repeat-x;
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=1);
}
.gradient-vertical {
background-color: #474747;
background-image: -moz-linear-gradient(top, #555555, #333333);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#333333));
background-image: -webkit-linear-gradient(top, #555555, #333333);
background-image: -o-linear-gradient(top, #555555, #333333);
background-image: linear-gradient(to bottom, #555555, #333333);
background-repeat: repeat-x;
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=0);
}
.gradient-directional {
background-color: #333333;
background-image: -moz-linear-gradient(45deg, #555555, #333333);
background-image: -webkit-linear-gradient(45deg, #555555, #333333);
background-image: -o-linear-gradient(45deg, #555555, #333333);
background-image: linear-gradient(45deg, #555555, #333333);
background-repeat: repeat-x;
}
.gradient-vertical-three {
background-color: #8940a5;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));
background-image: -webkit-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);
background-image: -moz-linear-gradient(top, #00b3ee, #7a43b6 50%, #c3325f);
background-image: -o-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);
background-image: linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);
background-repeat: no-repeat;
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff00b3ee', endColorstr='#ffc3325f', GradientType=0);
}
.gradient-radial {
background-color: #333333;
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(#555555), to(#333333));
background-image: -webkit-radial-gradient(circle, #555555, #333333);
background-image: -moz-radial-gradient(circle, #555555, #333333);
background-image: -o-radial-gradient(circle, #555555, #333333);
background-repeat: no-repeat;
}
.gradient-striped {
background-color: #555555;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.gradient-horizontal-three {
background-color: #00b3ee;
background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));
background-image: -webkit-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);
background-image: -moz-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);
background-image: -o-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);
background-image: linear-gradient(to right, #00b3ee, #7a43b6 50%, #c3325f);
background-repeat: no-repeat;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00b3ee', endColorstr='#c3325f', GradientType=0);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CSS Tests · Twitter Bootstrap</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<link href="../../docs/assets/css/docs.css" rel="stylesheet">
<link href="../../docs/assets/js/google-code-prettify/prettify.css" rel="stylesheet">
<!-- CSS just for the tests page -->
<link href="css-tests.css" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
</head>
<body>
<!-- Navbar
================================================== -->
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="../../docs/index.html">Bootstrap</a>
</div>
</div>
</div>
<!-- Masthead
================================================== -->
<header class="jumbotron subhead" id="overview">
<div class="container">
<h1>CSS Tests</h1>
<p class="lead">One stop shop for quick debugging and edge-case tests of CSS.</p>
</div>
</header>
<div class="bs-docs-canvas">
<div class="container">
<!-- Typography
================================================== -->
<div class="page-header">
<h1>Typography</h1>
</div>
<div class="row">
<div class="span6">
<div class="type-test">
<h1>h1. Heading 1</h1>
<h2>h2. Heading 2</h2>
<h3>h3. Heading 3</h3>
<h4>h4. Heading 4</h4>
<h5>h5. Heading 5</h5>
<h6>h6. Heading 6</h6>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
<div class="span6">
<div class="type-test">
<h1>h1. Heading 1</h1>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<h2>h2. Heading 2</h2>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<h3>h3. Heading 3</h3>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<h4>h4. Heading 4</h4>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<h5>h5. Heading 5</h5>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<h6>h6. Heading 6</h6>
<p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
</div>
<!-- Responsive images
================================================== -->
<div class="page-header">
<h1>Responsive images</h1>
</div>
<div class="row">
<div class="span4">
<img data-src="holder.js/600x600" height="200">
</div>
<div class="span4">
<img data-src="holder.js/600x600">
</div>
<div class="span4">
<img data-src="holder.js/600x600">
</div>
</div>
<br>
<div class="row">
<div class="span4">
<img data-src="holder.js/600x900" style="width: 200px;">
</div>
<div class="span4">
<img data-src="holder.js/200x300">
</div>
<div class="span4">
<img data-src="holder.js/600x600">
</div>
</div>
<br><br>
<!-- Fluid grid
================================================== -->
<div class="page-header">
<h1>Fluid grids</h1>
</div>
<div class="fluid-grid">
<div class="row">
<div class="span12">12
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
<div class="row">
<div class="span11">11
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
<div class="span1">1
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
<div class="row">
<div class="span10">10
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
<div class="span2">2
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
<div class="row">
<div class="span9">9
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
<div class="span3">3
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
<div class="row">
<div class="span8">8
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
<div class="span4">4
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
<div class="row">
<div class="span7">7
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
<div class="span5">5
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
<div class="row">
<div class="span6">6
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
<div class="span6">6
<div class="row-fluid">
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
<div class="span1">1</div>
</div>
</div>
</div>
</div> <!-- fluid grids -->
<!-- Tables
================================================== -->
<div class="page-header">
<h1>Tables</h1>
</div>
<div class="row">
<div class="span6">
<h4>Bordered without thead</h4>
<table class="table table-bordered">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
<h4>Bordered without thead, with caption</h4>
<table class="table table-bordered">
<caption>Table caption</caption>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
<h4>Bordered without thead, with colgroup</h4>
<table class="table table-bordered">
<colgroup>
<col class="col1">
<col class="col2">
<col class="col3">
</colgroup>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>3</td>
<td>6</td>
<td>9</td>
</tr>
</tfoot>
</table>
<h4>Bordered with thead, with colgroup</h4>
<table class="table table-bordered">
<colgroup>
<col class="col1">
<col class="col2">
<col class="col3">
</colgroup>
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>3</td>
<td>6</td>
<td>9</td>
</tr>
</tfoot>
</table>
</div><!--/span-->
<div class="span6">
<h4>Bordered with thead and caption</h4>
<table class="table table-bordered">
<caption>Table caption</caption>
<thead>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>3</td>
<td>6</td>
<td>9</td>
</tr>
</tfoot>
</table>
<h4>Bordered with rowspan and colspan</h4>
<table class="table table-bordered">
<thead>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">1 and 2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td rowspan="2">2</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">1</td>
<td>3</td>
</tr>
<tr>
<td colspan="2">2 and 3</td>
</tr>
</tbody>
</table>
</div><!--/span-->
</div><!--/row-->
<h4>Grid sizing</h4>
<div class="row">
<div class="span12">
<table class="table table-bordered">
<thead>
<tr>
<th class="span3">1</th>
<th class="span4">2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">1 and 2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td rowspan="2">2</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">1</td>
<td>3</td>
</tr>
<tr>
<td colspan="2">2 and 3</td>
</tr>
</tbody>
</table>
</div>
</div><!--/row-->
<h4>Nesting and striping</h4>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Test</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Test</th>
<th>Test</th>
</tr>
</thead>
<tbody>
<tr>
<td>
test
</td>
<td>
test
</td>
</tr>
<tr>
<td>
test
</td>
<td>
test
</td>
</tr>
<tr>
<td>
test
</td>
<td>
test
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<h4>Fluid grid sizing</h4>
<div class="row-fluid">
<div class="span12">
<table class="table table-bordered">
<thead>
<tr>
<th class="span3">1</th>
<th class="span4">2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">1 and 2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td rowspan="2">2</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">1</td>
<td>3</td>
</tr>
<tr>
<td colspan="2">2 and 3</td>
</tr>
</tbody>
</table>
</div>
</div><!--/row-->
<!-- Forms
================================================== -->
<div class="page-header">
<h1>Forms</h1>
</div>
<h4>Buttons and button groups</h4>
<form class="form-inline">
<button class="btn btn-success">Save</button>
<button class="btn btn-info">Add new</button>
<div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user"></i> User
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Profile</a></li>
<li class="divider"></li>
<li><a href="#">Sign Out</a></li>
</ul>
</div>
</form>
<h4>Horizontal form errors</h4>
<form class="form-horizontal">
<div class="control-group error">
<label class="control-label" for="inputError">Radio with error</label>
<div class="controls">
<label class="radio">
<input type="radio" id="inputError"> Oh hai
</label>
<span class="help-inline">Please correct the error</span>
</div>
</div>
</form>
<div class="row">
<div class="span4">
<h4>Prepend and append on inputs</h4>
<form>
<div class="controls">
<div class="input-prepend">
<span class="add-on">@</span>
<input class="span2" id="prependedInput" size="16" type="text">
</div>
</div>
<div class="controls">
<div class="input-append">
<input class="span2" id="prependedInput" size="16" type="text">
<span class="add-on">@</span>
</div>
</div>
<div class="controls">
<div class="input-prepend input-append">
<span class="add-on">$</span>
<input class="span2" id="prependedInput" size="16" type="text">
<span class="add-on">.00</span>
</div>
</div>
</form>
</div><!--/span-->
<div class="span4">
<h4>Prepend and append with uneditable</h4>
<form>
<div class="input-prepend">
<span class="add-on">$</span>
<span class="span2 uneditable-input">Some value here</span>
</div>
<div class="input-append">
<span class="span2 uneditable-input">Some value here</span>
<span class="add-on">.00</span>
</div>
<div class="input-prepend input-append">
<span class="add-on">$</span>
<span class="span2 uneditable-input">Some value here</span>
<span class="add-on">.00</span>
</div>
</form>
</div><!--/span-->
<div class="span4">
<h4>Prepend with type="submit"</h4>
<form class="form-search">
<div class="input-append">
<input type="text" class="span2 search-query" value="" name="q">
<input type="submit" value="Search" class="btn">
</div>
</form>
<div class="input-append">
<input type="text" class="span2" value="" name="">
<input type="submit" value="Button" class="btn">
</div>
<div class="input-append">
<input type="text" size="16" id="appendedInputButtons" class="span2">
<input type="submit" value="Search" class="btn">
<button type="button" class="btn">Options</button>
</div>
</div><!--/span-->
</div><!--/row-->
<h4>Fluid prepended and appended inputs</h4>
<div class="row-fluid">
<div class="span6">
<form>
<div class="controls">
<div class="input-prepend">
<span class="add-on">@</span><input class="span2" id="prependedInput" size="16" type="text">
</div>
</div>
<div class="controls">
<div class="input-append">
<input class="span2" id="prependedInput" size="16" type="text"><span class="add-on">@</span>
</div>
</div>
<div class="controls">
<div class="input-prepend input-append">
<span class="add-on">$</span><input class="span2" id="prependedInput" size="16" type="text"><span class="add-on">.00</span>
</div>
</div>
</form>
</div>
</div>
<h4>Fixed row with inputs</h4>
<p>Inputs should not extend past the light red background, set on their parent, a <code>.span*</code> column.</p>
<div class="rowInputs">
<div class="row">
<div class="span12">
<input type="text" class="span1" placeholder="span1">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span2" placeholder="span2">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span3" placeholder="span3">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span4" placeholder="span4">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span5" placeholder="span5">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span6" placeholder="span6">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span7" placeholder="span7">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span8" placeholder="span8">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span9" placeholder="span9">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span10" placeholder="span10">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span11" placeholder="span11">
</div><!--/span-->
</div><!--/row-->
<div class="row">
<div class="span12">
<input type="text" class="span12" placeholder="span12">
</div><!--/span-->
</div><!--/row-->
</div>
<br>
<h4>Fluid row with inputs</h4>
<p>Inputs should not extend past the light red background, set on their parent, a <code>.span*</code> column.</p>
<div id="fluidRowInputs">
<div class="row-fluid">
<div class="span12">
<input type="text" class="span1" placeholder="span1">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span2" placeholder="span2">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span3" placeholder="span3">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span4" placeholder="span4">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span5" placeholder="span5">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span6" placeholder="span6">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span7" placeholder="span7">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span8" placeholder="span8">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span9" placeholder="span9">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span10" placeholder="span10">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span11" placeholder="span11">
</div><!--/span-->
</div><!--/row-->
<div class="row-fluid">
<div class="span12">
<input type="text" class="span12" placeholder="span12">
</div><!--/span-->
</div><!--/row-->
</div>
<br>
<h4>Inline form in fluid row</h4>
<div class="row-fluid">
<div class="span12">
<form class="form-inline">
<input type="text" class="span3" placeholder="Email">
<input type="password" class="span3" placeholder="Password">
<label class="checkbox">
<input type="checkbox"> Remember me
</label>
<button type="submit" class="btn">Sign in</button>
</form>
</div>
</div>
<br>
<h4>Fluid textarea at .span12</h4>
<div class="row-fluid">
<div class="span12">
<textarea class="span12"></textarea>
</div>
</div>
<br>
<h4>Selects</h4>
<form>
<select class="span4">
<option>Option</option>
</select>
</form>
<br>
<!-- Dropdowns
================================================== -->
<div class="page-header">
<h1>Dropdowns</h1>
</div>
<h4>Dropdown link with hash URL</h4>
<ul class="nav nav-pills">
<li class="active"><a href="#">Link</a></li>
<li><a href="#">Example link</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Dropdown <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
<h4>Dropdown link with custom URL and data-target</h4>
<ul class="nav nav-pills">
<li class="active"><a href="#">Link</a></li>
<li><a href="#">Example link</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="path/to/page.html">
Dropdown <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
<h4>Dropdown on a button</h4>
<div style="position: relative;">
<button class="btn" type="button" data-toggle="dropdown">Dropdown <span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>
<br>
<!-- Thumbnails
================================================== -->
<div class="page-header">
<h1>Thumbnails</h1>
</div>
<h4>Default thumbnails (no grid sizing)</h4>
<ul class="thumbnails">
<li class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</li>
<li class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</li>
<li class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</li>
<li class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</li>
</ul>
<!-- NOT CURRENTLY SUPPORTED
<h4>Offset thumbnails</h4>
<ul class="thumbnails">
<li class="span3 offset3">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
<li class="span3">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
<li class="span3">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
</ul>
-->
<h4>Standard grid sizing</h4>
<ul class="thumbnails">
<li class="span3">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
<li class="span3 offset3">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
<li class="span3">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
</ul>
<h4>Fluid thumbnails</h4>
<div class="row-fluid">
<div class="span8">
<ul class="thumbnails">
<li class="span4">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
<li class="span4">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
<li class="span4">
<a href="#" class="thumbnail">
<img data-src="holder.js/260x180" alt="">
</a>
</li>
</ul>
</div>
</div>
<!-- Tabs
================================================== -->
<div class="page-header">
<h1>Tabs</h1>
</div>
<div class="tabbable tabs-left" style="margin-bottom: 18px;">
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1" data-toggle="tab">Section 1</a></li>
<li><a href="#tab2" data-toggle="tab">Section 2</a></li>
<li><a href="#tab3" data-toggle="tab">Section 3</a></li>
</ul>
<div class="tab-content" style="padding-bottom: 9px; border-bottom: 1px solid #ddd;">
<div class="tab-pane active" id="tab1">
<p>I'm in Section 1.</p>
<div class="tabbable" style="background: #f5f5f5; padding: 20px;">
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1-1" data-toggle="tab">1.1</a></li>
<li><a href="#tab1-2" data-toggle="tab">1.2</a></li>
<li><a href="#tab1-3" data-toggle="tab">1.3</a></li>
</ul>
<div class="tab-content" style="padding-bottom: 9px; border-bottom: 1px solid #ddd;">
<div class="tab-pane active" id="tab1-1">
<p>I'm in Section 1.1.</p>
</div>
<div class="tab-pane" id="tab1-2">
<p>I'm in Section 1.2.</p>
</div>
<div class="tab-pane" id="tab1-3">
<p>I'm in Section 1.3.</p>
</div>
</div>
</div>
</div>
<div class="tab-pane" id="tab2">
<p>Howdy, I'm in Section 2.</p>
</div>
<div class="tab-pane" id="tab3">
<p>What up girl, this is Section 3.</p>
</div>
</div>
</div> <!-- /tabbable -->
<br>
<!-- Labels
================================================== -->
<div class="page-header">
<h1>Labels</h1>
</div>
<div class="row">
<div class="span4">
<h4>Inline label</h4>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Maecenas sed diam <span class="label label-warning">Label name</span> eget risus varius blandit sit amet non magna. Fusce <code>.class-name</code> dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
</div><!--/span-->
<div class="span4">
<form class="form-horizontal">
<label>Example label</label>
<input type="text" placeholder="Input"> <span class="help-inline"><span class="label">Hey!</span> Read this.</span>
</form>
</div><!--/span-->
<div class="span4">
<button class="btn">Action <span class="badge">2</span></button>
<button class="btn">Action <span class="label">2</span></button>
</div><!--/span-->
</div><!--/row-->
<br>
<!-- Button groups
================================================== -->
<div class="page-header">
<h1>Buttons</h1>
</div>
<table class="table table-bordered">
<tbody>
<tr>
<td>
Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue. Donec ullamcorper nulla non metus auctor fringilla. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
</td>
<td>
<div class="btn-group">
<button class="btn">1</button>
<button class="btn">2</button>
<button class="btn">3</button>
<button class="btn">4</button>
</div>
</td>
</tr>
</tbody>
</table>
<h4>Mini buttons: text and icon</h4>
<div class="btn-group">
<button class="btn btn-mini">Button text</button>
<button class="btn btn-mini"><i class="icon-cog"></i></button>
</div>
<br>
<!-- Responsive utility classes
================================================== -->
<div class="page-header">
<h1>Responsive utility classes</h1>
</div>
<h4>Visible on...</h4>
<ul class="responsive-utilities-test visible-on">
<li>Phone<span class="visible-phone">✔ Phone</span></li>
<li>Tablet<span class="visible-tablet">✔ Tablet</span></li>
<li>Desktop<span class="visible-desktop">✔ Desktop</span></li>
</ul>
<ul class="responsive-utilities-test visible-on">
<li>Phone + Tablet<span class="visible-phone visible-tablet">✔ Phone + Tablet</span></li>
<li>Tablet + Desktop<span class="visible-tablet visible-desktop">✔ Tablet + Desktop</span></li>
<li>All<span class="visible-phone visible-tablet visible-desktop">✔ All</span></li>
</ul>
<h4>Hidden on...</h4>
<ul class="responsive-utilities-test hidden-on">
<li>Phone<span class="hidden-phone">✔ Phone</span></li>
<li>Tablet<span class="hidden-tablet">✔ Tablet</span></li>
<li>Desktop<span class="hidden-desktop">✔ Desktop</span></li>
</ul>
<ul class="responsive-utilities-test hidden-on">
<li>Phone + Tablet<span class="hidden-phone hidden-tablet">✔ Phone + Tablet</span></li>
<li>Tablet + Desktop<span class="hidden-tablet hidden-desktop">✔ Tablet + Desktop</span></li>
<li>All<span class="hidden-phone hidden-tablet hidden-desktop">✔ All</span></li>
</ul>
<!-- Gradients
================================================== -->
<div class="page-header">
<h1>Gradients</h1>
</div>
<h4>Horizontal</h4>
<div class="gradient-horizontal"></div>
<h4>Vertical</h4>
<div class="gradient-vertical"></div>
<h4>Directional</h4>
<div class="gradient-directional"></div>
<h4>Three colors</h4>
<div class="gradient-vertical-three"></div>
<h4>Radial</h4>
<div class="gradient-radial"></div>
<h4>Striped</h4>
<div class="gradient-striped"></div>
<h4>Horizontal three colors</h4>
<div class="gradient-horizontal-three"></div>
<div class="page-header">
<h1>Alerts</h1>
</div>
<h4>Alert default</h4>
<div class="alert">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Alert!</strong> Best check yourself, you're not looking too good.
</div>
<div class="alert alert-block">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<p><strong>Alert!</strong> Best check yourself, you're not looking too good.</p>
</div>
<h4>Success</h4>
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Success!</strong> Best check yourself, you're not looking too good.
</div>
<div class="alert alert-block alert-success">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<p><strong>Success!</strong> Best check yourself, you're not looking too good.</p>
</div>
<h4>Info</h4>
<div class="alert alert-info">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Info!</strong> Best check yourself, you're not looking too good.
</div>
<div class="alert alert-block alert-info">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<p><strong>Info!</strong> Best check yourself, you're not looking too good.</p>
</div>
<h4>Warning</h4>
<div class="alert ">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Warning!</strong> Best check yourself, you're not looking too good.
</div>
<div class="alert alert-block alert-warning">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<p><strong>Warning!</strong> Best check yourself, you're not looking too good.</p>
</div>
<h4>Error</h4>
<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Error!</strong> Best check yourself, you're not looking too good.
</div>
<div class="alert alert-block alert-error">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<p><strong>Error!</strong> Best check yourself, you're not looking too good.</p>
</div>
</div><!-- /container -->
<!-- Footer
================================================== -->
<footer class="footer">
<div class="container">
<p class="pull-right"><a href="#">Back to top</a></p>
<p>Designed and built with all the love in the world <a href="http://twitter.com/twitter" target="_blank">@twitter</a> by <a href="http://twitter.com/mdo" target="_blank">@mdo</a> and <a href="http://twitter.com/fat" target="_blank">@fat</a>.</p>
<p>Code licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0</a>. Documentation licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
<p>Icons from <a href="http://glyphicons.com">Glyphicons Free</a>, licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
<ul class="footer-links">
<li><a href="http://blog.getbootstrap.com">Read the blog</a></li>
<li><a href="https://github.com/twbs/bootstrap/issues?state=open">Submit issues</a></li>
<li><a href="https://github.com/twbs/bootstrap/wiki">Roadmap and changelog</a></li>
</ul>
</div>
</footer>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
<script src="../../docs/assets/js/jquery.js"></script>
<script src="../../docs/assets/js/google-code-prettify/prettify.js"></script>
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
<script src="../../docs/assets/js/bootstrap-button.js"></script>
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
<script src="../../docs/assets/js/application.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<style>
body {
padding-top: 30px;
padding-bottom: 30px;
}
</style>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
</head>
<body>
<form class="container">
<div class="page-header">
<h1>Fixed grid</h1>
</div>
<h3>Vertical alignment</h3>
<input type="text" class="span2" placeholder="span2">
<select class="span2"><option>span2</option></select>
<span class="uneditable-input span2">span1</span>
<h3>Width across elements</h3>
<div>
<input type="text" class="span2" placeholder="span2">
</div>
<div>
<select class="span2"><option>span2</option></select>
</div>
<div>
<span class="uneditable-input span2">span2</span>
</div>
<div class="page-header">
<h1>Fluid grid</h1>
</div>
<div class="row-fluid">
<input type="text" class="span2" placeholder="span2">
<select class="span2"><option>span2</option></select>
<span class="uneditable-input span2">span1</span>
</div>
</form> <!-- /container -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<style>
body {
padding-top: 30px;
padding-bottom: 30px;
}
</style>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
</head>
<body>
<form class="container">
<div class="page-header">
<h1>Form controls</h1>
</div>
<div class="row">
<div class="span4">
<label>Select</label>
<select>
<option>Select</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
<hr>
<label>textarea</label>
<textarea>Textarea</textarea>
<hr>
<label>text</label>
<input type="text" value="Text input">
<hr>
<label>password</label>
<input type="password" value="Password input">
<hr>
<label>checkbox</label>
<input type="checkbox" value="">
<hr>
<label>radio</label>
<input type="radio" value="">
<hr>
<label>button</label>
<input type="button" value="Button">
<hr>
<label>submit</label>
<input type="submit" value="Submit">
<hr>
<label>reset</label>
<input type="reset" value="Reset">
</div><!-- /span4 -->
<div class="span4">
<label>file</label>
<input type="file" value="">
<hr>
<label>hidden</label>
<input type="hidden" value="hidden">
<hr>
<label>image</label>
<input type="image" value="">
<hr>
<label>datetime</label>
<input type="datetime" value="">
<hr>
<label>datetime-local</label>
<input type="datetime-local" value="">
<hr>
<label>date</label>
<input type="date" value="">
<hr>
<label>month</label>
<input type="month" value="">
<hr>
<label>time</label>
<input type="time" value="">
<hr>
<label>week</label>
<input type="week" value="">
</div><!-- /span4 -->
<div class="span4">
<label>number</label>
<input type="number" value="">
<hr>
<label>range</label>
<input type="range" value="">
<hr>
<label>email</label>
<input type="email" value="">
<hr>
<label>url</label>
<input type="url" value="">
<hr>
<label>search</label>
<input type="search" value="">
<hr>
<label>tel</label>
<input type="tel" value="">
<hr>
<label>color</label>
<input type="color" value="">
</div><!-- /span4 -->
</div><!-- /row -->
</form> <!-- /container -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<style>
body {
padding-top: 60px;
padding-bottom: 30px;
}
</style>
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
</head>
<body>
<!-- Fixed navbar -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Project name</a>
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li class="nav-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav pull-right">
<li><a href="./navbar.html">Default</a></li>
<li><a href="./navbar-static-top.html">Static top</a></li>
<li class="active"><a href="./navbar-fixed-top.html">Fixed top</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
<!-- Main hero unit for a primary marketing message or call to action -->
<div class="hero-unit">
<h1>Navbar example</h1>
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
<p>
<a class="btn btn-large btn-primary" href="../components.html#navbar">View navbar docs &raquo;</a>
</p>
</div>
</div> <!-- /container -->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../docs/assets/js/jquery.js"></script>
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
<script src="../../docs/assets/js/bootstrap-button.js"></script>
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<style>
body {
padding-bottom: 30px;
}
.hero-unit {
margin-top: 20px;
}
</style>
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
</head>
<body>
<!-- Static navbar -->
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Project name</a>
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li class="nav-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav pull-right">
<li><a href="./navbar.html">Default</a></li>
<li class="active"><a href="./navbar-static-top.html">Static top</a></li>
<li><a href="./navbar-fixed-top.html">Fixed top</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
<!-- Main hero unit for a primary marketing message or call to action -->
<div class="hero-unit">
<h1>Navbar example</h1>
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
<p>
<a class="btn btn-large btn-primary" href="../components.html#navbar">View navbar docs &raquo;</a>
</p>
</div>
</div> <!-- /container -->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../docs/assets/js/jquery.js"></script>
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
<script src="../../docs/assets/js/bootstrap-button.js"></script>
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
<style>
body {
padding-top: 0;
padding-bottom: 30px;
}
.navbar {
margin-top: 20px;
}
</style>
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
</head>
<body>
<div class="container">
<!-- Static navbar -->
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Project name</a>
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li class="nav-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav pull-right">
<li class="active"><a href="./navbar.html">Default</a></li>
<li><a href="./navbar-static-top.html">Static top</a></li>
<li><a href="./navbar-fixed-top.html">Fixed top</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<!-- Main hero unit for a primary marketing message or call to action -->
<div class="hero-unit">
<h1>Navbar example</h1>
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
<p>
<a class="btn btn-large btn-primary" href="../components.html#navbar">View navbar docs &raquo;</a>
</p>
</div>
</div> <!-- /container -->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../docs/assets/js/jquery.js"></script>
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
<script src="../../docs/assets/js/bootstrap-button.js"></script>
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment