├── README.md ├── component.php ├── cpanel.php ├── css ├── bootstrap-theme.css ├── bootstrap3-adapter.min.css ├── index.html ├── template-rtl.css ├── template.bak.css ├── template.bak3.css └── template.css ├── error.php ├── favicon.ico ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── index.html ├── html ├── editor_content.css ├── index.html ├── message.php ├── mod_version │ ├── default.php │ └── index.html ├── modules.php └── pagination.php ├── images ├── admin │ ├── blank.png │ ├── checked_out.png │ ├── collapseall.png │ ├── disabled.png │ ├── downarrow-1.png │ ├── downarrow.png │ ├── downarrow0.png │ ├── expandall.png │ ├── featured.png │ ├── filesave.png │ ├── filter_16.png │ ├── icon-16-add.png │ ├── icon-16-allow.png │ ├── icon-16-allowinactive.png │ ├── icon-16-deny.png │ ├── icon-16-denyinactive.png │ ├── icon-16-links.png │ ├── icon-16-notice-note.png │ ├── icon-16-protected.png │ ├── index.html │ ├── menu_divider.png │ ├── note_add_16.png │ ├── publish_g.png │ ├── publish_r.png │ ├── publish_x.png │ ├── publish_y.png │ ├── sort_asc.png │ ├── sort_desc.png │ ├── tick.png │ ├── trash.png │ ├── uparrow-1.png │ ├── uparrow.png │ └── uparrow0.png ├── emailButton.png ├── index.html ├── joomla.png ├── login-joomla.png ├── logo.png ├── pdf_button.png ├── printButton.png └── system │ ├── index.html │ ├── sort_asc.png │ └── sort_desc.png ├── img ├── glyphicons-halflings-white.png ├── glyphicons-halflings.png └── index.html ├── index.html ├── index.php ├── js ├── application.js ├── bootstrap.min.js ├── classes.js ├── index.html ├── jquery.js └── template.js ├── language ├── en-GB │ ├── en-GB.tpl_isis3.ini │ ├── en-GB.tpl_isis3.sys.ini │ └── index.html ├── index.html └── zh-TW │ ├── zh-TW.tpl_isis3.ini │ └── zh-TW.tpl_isis3.sys.ini ├── less ├── adapter │ ├── .csscomb.json │ ├── .csslintrc │ ├── accordion.less │ ├── alerts.less │ ├── badges.less │ ├── bootstrap3-adapter.less │ ├── breadcrumbs.less │ ├── buttons.less │ ├── component-animations.less │ ├── forms.less │ ├── forms2.less │ ├── grid.less │ ├── grid3.less │ ├── icons.less │ ├── index.html │ ├── labels.less │ ├── mixins.less │ ├── mixins2.less │ ├── modals.less │ ├── navbar.less │ ├── navs2.less │ ├── pagination.less │ ├── progress-bars.less │ ├── responsive-1200px-min.less │ ├── responsive-767px-max.less │ ├── responsive-768px-979px.less │ ├── responsive-navbar.less │ ├── responsive-utilities.less │ ├── responsive.less │ ├── scaffolding.less │ ├── tables.less │ ├── thumbnails.less │ ├── type.less │ ├── variables.less │ ├── variables2.less │ └── wells.less ├── bootstrap2 │ ├── accordion.less │ ├── alerts.less │ ├── bootstrap-extended.less │ ├── bootstrap-rtl.less │ ├── bootstrap.less │ ├── breadcrumbs.less │ ├── button-groups.less │ ├── buttons.less │ ├── carousel.less │ ├── close.less │ ├── code.less │ ├── component-animations.less │ ├── dropdowns.less │ ├── forms.less │ ├── grid.less │ ├── hero-unit.less │ ├── icomoon.less │ ├── index.html │ ├── labels-badges.less │ ├── layouts.less │ ├── media.less │ ├── mixins.less │ ├── modals.joomla.less │ ├── modals.less │ ├── navbar.less │ ├── navs.less │ ├── pager.less │ ├── pagination.less │ ├── popovers.less │ ├── progress-bars.less │ ├── reset.less │ ├── responsive-1200px-min.less │ ├── responsive-767px-max.joomla.less │ ├── responsive-767px-max.less │ ├── responsive-768px-979px.less │ ├── responsive-navbar.less │ ├── responsive-utilities.less │ ├── responsive.less │ ├── scaffolding.less │ ├── sprites.less │ ├── tables.less │ ├── thumbnails.less │ ├── tooltip.less │ ├── type.less │ ├── utilities.less │ ├── variables.less │ └── wells.less ├── bootstrap3 │ ├── .csscomb.json │ ├── .csslintrc │ ├── alerts.less │ ├── badges.less │ ├── bootstrap.less │ ├── breadcrumbs.less │ ├── button-groups.less │ ├── buttons.less │ ├── carousel.less │ ├── close.less │ ├── code.less │ ├── component-animations.less │ ├── dropdowns.less │ ├── forms.less │ ├── glyphicons.less │ ├── grid.less │ ├── index.html │ ├── input-groups.less │ ├── jumbotron.less │ ├── labels.less │ ├── list-group.less │ ├── media.less │ ├── mixins.less │ ├── modals.less │ ├── navbar.less │ ├── navs.less │ ├── normalize.less │ ├── pager.less │ ├── pagination.less │ ├── panels.less │ ├── popovers.less │ ├── print.less │ ├── progress-bars.less │ ├── responsive-utilities.less │ ├── scaffolding.less │ ├── tables.less │ ├── theme.less │ ├── thumbnails.less │ ├── tooltip.less │ ├── type.less │ ├── utilities.less │ ├── variables.less │ └── wells.less ├── icomoon.less ├── index.html ├── template-rtl.less ├── template.less └── variables.less ├── login.php ├── templateDetails.xml ├── template_preview.png └── template_thumbnail.png /README.md: -------------------------------------------------------------------------------- 1 | # Joomla Isis template for Bootstrap 3 [![Analytics](https://ga-beacon.appspot.com/UA-48372917-1/joomla-bootstrap3-isis-template/readme)](https://github.com/igrigorik/ga-beacon) 2 | 3 | This is Joomla!3 isis template but using Bootstrap 3 styles. 4 | 5 | This template support both Bootstrap 2 & 3 syntax, by including the [Bootstrap 3 Adapter](https://github.com/asika32764/bootstrap3-adapter). 6 | 7 | ## Installation 8 | 9 | [Download](https://github.com/asika32764/joomla-bootstrap3-isis-template/releases) package and install it in Joomla admin. 10 | 11 | ## Development 12 | 13 | ### Compiling CSS 14 | 15 | If you want to change some less code, please install [NodeJS less](https://www.npmjs.org/package/less) first: 16 | 17 | ``` 18 | $ npm install -g less 19 | ``` 20 | 21 | Then cd to `{JOOMLA}/administrator/template/isis3/less` and run: 22 | 23 | ``` 24 | $ lessc template.less ../css/template.css 25 | ``` 26 | 27 | Now you will get a compiled css file at `css/template.css`. 28 | 29 | ### LESS folders 30 | 31 | ``` 32 | less 33 | | 34 | |--- adapter // Bootstrap3 adapter less files 35 | | 36 | |--- bootstrap2 // Old Joomla isis template less files 37 | | 38 | |--- bootstrap3 // Bootstrap 3 less files 39 | ``` 40 | 41 | ## Screen shots 42 | 43 | ![admin-1](http://cl.ly/Ugpu/140328-0006.jpg) 44 | 45 | ![admin-2](http://cl.ly/UhDn/140328-0005.jpg) 46 | 47 | -------------------------------------------------------------------------------- /component.php: -------------------------------------------------------------------------------- 1 | language = $doc->language; 16 | $this->direction = $doc->direction; 17 | 18 | // Add JavaScript Frameworks 19 | JHtml::_('bootstrap.framework'); 20 | 21 | $doc->addScript($this->baseurl . '/templates/' . $this->template . '/js/template.js'); 22 | 23 | // Add Stylesheets 24 | $doc->addStyleSheet($this->baseurl . '/templates/' . $this->template . '/css/template.css'); 25 | 26 | // Load optional RTL Bootstrap CSS 27 | JHtml::_('bootstrap.loadCss', false, $this->direction); 28 | 29 | // Load specific language related CSS 30 | $file = 'language/' . $lang->getTag() . '/' . $lang->getTag() . '.css'; 31 | 32 | if (is_file($file)) 33 | { 34 | $doc->addStyleSheet($file); 35 | } 36 | ?> 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | params->get('linkColor')) : ?> 48 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /cpanel.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/favicon.ico -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /fonts/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /html/editor_content.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #000; 3 | font-family: Arial,sans-serif; 4 | line-height: 1.3em; 5 | font-size: 96%; 6 | color: #333; 7 | } 8 | 9 | h1 { 10 | font-family:Helvetica ,Arial,sans-serif; 11 | font-size: 16px; 12 | font-weight: bold; 13 | color: #ff0000; 14 | } 15 | 16 | h2 { 17 | font-family: Arial, Helvetica,sans-serif; 18 | font-size: 14px; 19 | font-weight: normal; 20 | color: #333; 21 | } 22 | 23 | h3 { 24 | font-weight: bold; 25 | font-family: Helvetica,Arial,sans-serif; 26 | font-size: 19px; 27 | color: #135cae; 28 | } 29 | 30 | h4 { 31 | font-weight: bold; 32 | font-family: Arial, Helvetica, sans-serif; 33 | color: #333; 34 | } 35 | 36 | a:link, a:visited { 37 | color: #1B57B1; text-decoration: none; 38 | font-weight: normal; 39 | } 40 | 41 | a:hover { 42 | color: #00c; text-decoration: underline; 43 | font-weight: normal; 44 | } 45 | 46 | div.caption { padding: 0 10px 0 10px; } 47 | div.caption img { border: 1px solid #CCC; } 48 | div.caption p { font-size: .90em; color: #666; text-align: center; } 49 | 50 | div.teaser { background:#ccc; } 51 | -------------------------------------------------------------------------------- /html/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /html/message.php: -------------------------------------------------------------------------------- 1 | "; 16 | $alert = array('error' => 'alert-error', 'warning' => '', 'notice' => 'alert-info', 'message' => 'alert-success'); 17 | 18 | // Only render the message list and the close button if $msgList has items 19 | if (is_array($msgList) && (count($msgList) >= 1)) 20 | { 21 | $buffer .= ''; 22 | foreach ($msgList as $type => $msgs) 23 | { 24 | $buffer .= '
'; 25 | $buffer .= "\n

" . JText::_($type) . "

"; 26 | if (count($msgs)) 27 | { 28 | foreach ($msgs as $msg) 29 | { 30 | $buffer .= "\n\t\t

" . $msg . "

"; 31 | } 32 | } 33 | $buffer .= "\n
"; 34 | } 35 | } 36 | 37 | $buffer .= "\n"; 38 | 39 | return $buffer; 40 | } 41 | -------------------------------------------------------------------------------- /html/mod_version/default.php: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /html/mod_version/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /html/modules.php: -------------------------------------------------------------------------------- 1 | 19 | * 20 | * This gives template designers ultimate control over how modules are rendered. 21 | * 22 | * NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same 23 | * two arguments. 24 | */ 25 | 26 | /* 27 | * Module chrome for rendering the module in a submenu 28 | */ 29 | function modChrome_title($module, &$params, &$attribs) 30 | { 31 | if ($module->content) 32 | { 33 | echo "
".$module->title."
"; 34 | echo $module->content; 35 | } 36 | } 37 | 38 | function modChrome_no($module, &$params, &$attribs) 39 | { 40 | if ($module->content) 41 | { 42 | echo $module->content; 43 | } 44 | } 45 | 46 | function modChrome_well($module, &$params, &$attribs) 47 | { 48 | if ($module->content) 49 | { 50 | $bootstrapSize = $params->get('bootstrap_size'); 51 | $moduleClass = !empty($bootstrapSize) ? ' span' . (int) $bootstrapSize . '' : ''; 52 | 53 | if ( $moduleClass ) 54 | { 55 | echo '
'; 56 | } 57 | 58 | echo '
'; 59 | echo ''; 60 | echo $module->content; 61 | echo '
'; 62 | 63 | if ( $moduleClass ) 64 | { 65 | echo '
'; 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /images/admin/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/blank.png -------------------------------------------------------------------------------- /images/admin/checked_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/checked_out.png -------------------------------------------------------------------------------- /images/admin/collapseall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/collapseall.png -------------------------------------------------------------------------------- /images/admin/disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/disabled.png -------------------------------------------------------------------------------- /images/admin/downarrow-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/downarrow-1.png -------------------------------------------------------------------------------- /images/admin/downarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/downarrow.png -------------------------------------------------------------------------------- /images/admin/downarrow0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/downarrow0.png -------------------------------------------------------------------------------- /images/admin/expandall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/expandall.png -------------------------------------------------------------------------------- /images/admin/featured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/featured.png -------------------------------------------------------------------------------- /images/admin/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/filesave.png -------------------------------------------------------------------------------- /images/admin/filter_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/filter_16.png -------------------------------------------------------------------------------- /images/admin/icon-16-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-add.png -------------------------------------------------------------------------------- /images/admin/icon-16-allow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-allow.png -------------------------------------------------------------------------------- /images/admin/icon-16-allowinactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-allowinactive.png -------------------------------------------------------------------------------- /images/admin/icon-16-deny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-deny.png -------------------------------------------------------------------------------- /images/admin/icon-16-denyinactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-denyinactive.png -------------------------------------------------------------------------------- /images/admin/icon-16-links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-links.png -------------------------------------------------------------------------------- /images/admin/icon-16-notice-note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-notice-note.png -------------------------------------------------------------------------------- /images/admin/icon-16-protected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/icon-16-protected.png -------------------------------------------------------------------------------- /images/admin/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/admin/menu_divider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/menu_divider.png -------------------------------------------------------------------------------- /images/admin/note_add_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/note_add_16.png -------------------------------------------------------------------------------- /images/admin/publish_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/publish_g.png -------------------------------------------------------------------------------- /images/admin/publish_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/publish_r.png -------------------------------------------------------------------------------- /images/admin/publish_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/publish_x.png -------------------------------------------------------------------------------- /images/admin/publish_y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/publish_y.png -------------------------------------------------------------------------------- /images/admin/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/sort_asc.png -------------------------------------------------------------------------------- /images/admin/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/sort_desc.png -------------------------------------------------------------------------------- /images/admin/tick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/tick.png -------------------------------------------------------------------------------- /images/admin/trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/trash.png -------------------------------------------------------------------------------- /images/admin/uparrow-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/uparrow-1.png -------------------------------------------------------------------------------- /images/admin/uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/uparrow.png -------------------------------------------------------------------------------- /images/admin/uparrow0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/admin/uparrow0.png -------------------------------------------------------------------------------- /images/emailButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/emailButton.png -------------------------------------------------------------------------------- /images/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/joomla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/joomla.png -------------------------------------------------------------------------------- /images/login-joomla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/login-joomla.png -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/logo.png -------------------------------------------------------------------------------- /images/pdf_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/pdf_button.png -------------------------------------------------------------------------------- /images/printButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/printButton.png -------------------------------------------------------------------------------- /images/system/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/system/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/system/sort_asc.png -------------------------------------------------------------------------------- /images/system/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/images/system/sort_desc.png -------------------------------------------------------------------------------- /img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /img/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /js/application.js: -------------------------------------------------------------------------------- 1 | $('.dropdown-toggle').dropdown() 2 | $('.collapse').collapse('show') 3 | $('#myModal').modal('hide') 4 | $('.typeahead').typeahead() 5 | $('.tabs').button() 6 | $('.tip').tooltip() 7 | $(".alert-message").alert() -------------------------------------------------------------------------------- /js/classes.js: -------------------------------------------------------------------------------- 1 | // Add classes 2 | 3 | window.onload=function() { 4 | var input = document.getElementsByTagName("input"); 5 | for (var i = 0; i < input.length; i++) { 6 | if (input[i].className == 'button') { 7 | input[i].className = 'btn btn-primary'; 8 | } 9 | } 10 | 11 | var button = document.getElementsByTagName("button"); 12 | for (var i = 0; i < input.length; i++) { 13 | if (button[i].className == 'button') { 14 | button[i].className = 'btn btn-primary'; 15 | } 16 | } 17 | 18 | var p = document.getElementsByTagName("p"); 19 | for (var i = 0; i < p.length; i++) { 20 | if (p[i].className == 'readmore') { 21 | p[i].className = 'btn'; 22 | } 23 | } 24 | 25 | var table = document.getElementsByTagName("table"); 26 | for (var i = 0; i < table.length; i++) { 27 | if (table[i].className == 'category') { 28 | table[i].className = 'table table-striped'; 29 | } 30 | } 31 | 32 | var ul = document.getElementsByTagName("ul"); 33 | for (var i = 0; i < ul.length; i++) { 34 | if (ul[i].className == 'actions') { 35 | ul[i].className = 'nav nav-pills'; 36 | } 37 | } 38 | 39 | var ul = document.getElementsByTagName("ul"); 40 | for (var i = 0; i < ul.length; i++) { 41 | if (ul[i].className == 'pagenav') { 42 | ul[i].className = 'pagination'; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /js/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /js/template.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @package Joomla.Administrator 3 | * @subpackage Templates.isis3 4 | * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. 5 | * @license GNU General Public License version 2 or later; see LICENSE.txt 6 | * @since 3.0 7 | */ 8 | 9 | (function($) 10 | { 11 | $(document).ready(function() 12 | { 13 | $('*[rel=tooltip]').tooltip() 14 | 15 | // Turn radios into btn-group 16 | $('.radio.btn-group label').addClass('btn'); 17 | $('.btn-group label:not(.active)').click(function() 18 | { 19 | var label = $(this); 20 | var input = $('#' + label.attr('for')); 21 | 22 | if (!input.prop('checked')) { 23 | label.closest('.btn-group').find('label').removeClass('active btn-success btn-danger btn-primary'); 24 | if (input.val() == '') { 25 | label.addClass('active btn-primary'); 26 | } else if (input.val() == 0) { 27 | label.addClass('active btn-danger'); 28 | } else { 29 | label.addClass('active btn-success'); 30 | } 31 | input.prop('checked', true); 32 | } 33 | }); 34 | $('.btn-group input[checked=checked]').each(function() 35 | { 36 | if ($(this).val() == '') { 37 | $('label[for=' + $(this).attr('id') + ']').addClass('active btn-primary'); 38 | } else if ($(this).val() == 0) { 39 | $('label[for=' + $(this).attr('id') + ']').addClass('active btn-danger'); 40 | } else { 41 | $('label[for=' + $(this).attr('id') + ']').addClass('active btn-success'); 42 | } 43 | }); 44 | // add color classes to chosen field based on value 45 | $('select[class^="chzn-color"], select[class*=" chzn-color"]').on('liszt:ready', function(){ 46 | var select = $(this); 47 | var cls = this.className.replace(/^.(chzn-color[a-z0-9-_]*)$.*/, '\1'); 48 | var container = select.next('.chzn-container').find('.chzn-single'); 49 | container.addClass(cls).attr('rel', 'value_' + select.val()); 50 | select.on('change click', function() 51 | { 52 | container.attr('rel', 'value_' + select.val()); 53 | }); 54 | 55 | }); 56 | }) 57 | })(jQuery); 58 | -------------------------------------------------------------------------------- /language/en-GB/en-GB.tpl_isis3.ini: -------------------------------------------------------------------------------- 1 | ; Joomla! Project 2 | ; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved. 3 | ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php 4 | ; Note : All ini files need to be saved as UTF-8 5 | 6 | ISIS="Isis Administrator template" 7 | TPL_ISIS_CLEAR_CACHE="Clear Cache" 8 | TPL_ISIS_COLOR_DESC="Choose a colour for the navigation bar. If left blank the Default (#13294a) is used." 9 | TPL_ISIS_COLOR_HEADER_DESC="Choose a colour for the header. If left blank the Default (#184a7d) is used." 10 | TPL_ISIS_COLOR_HEADER_LABEL="Header Colour" 11 | TPL_ISIS_COLOR_LABEL="Nav Bar Colour" 12 | TPL_ISIS_COLOR_SIDEBAR_DESC="Choose a colour for the Sidebar Background. If left blank the Default (#0088cc) is used." 13 | TPL_ISIS_COLOR_SIDEBAR_LABEL="Sidebar Colour" 14 | TPL_ISIS_COLOR_LINK_DESC="Choose a colour for the Link. If left blank the Default (#0088cc) is used." 15 | TPL_ISIS_COLOR_LINK_LABEL="Link Colour" 16 | TPL_ISIS_EDIT_ACCOUNT="Edit Account" 17 | TPL_ISIS_FIELD_ADMIN_MENUS_DESC="If you intend to use Joomla Administrator on a monitor, set this to 'No'. It will prevent the collapse of the Administrator menus when reducing the width of the window. Default is 'Yes'." 18 | TPL_ISIS_FIELD_ADMIN_MENUS_LABEL="Collapse Administrator Menu" 19 | TPL_ISIS_HEADER_DESC="Optional display of header." 20 | TPL_ISIS_HEADER_LABEL="Display Header" 21 | TPL_ISIS_INSTALLER="Installer" 22 | TPL_ISIS_ISFREESOFTWARE="Joomla is free software released under the GNU General Public License." 23 | TPL_ISIS_LOGIN_LOGO_DESC="Upload a custom logo for the login area of admin template." 24 | TPL_ISIS_LOGIN_LOGO_LABEL="Login Logo" 25 | TPL_ISIS_LOGO_DESC="Upload a custom logo for the admin template." 26 | TPL_ISIS_LOGO_LABEL="Logo" 27 | TPL_ISIS_LOGOUT="Logout" 28 | TPL_ISIS_PREVIEW="Preview %s" 29 | TPL_ISIS_STATUS_BOTTOM="Fixed bottom" 30 | TPL_ISIS_STATUS_DESC="Choose the location of the status module." 31 | TPL_ISIS_STATUS_LABEL="Status Module Position" 32 | TPL_ISIS_STATUS_TOP="Top" 33 | TPL_ISIS_STICKY_DESC="Optionally set the toolbar to a fixed (pinned) location." 34 | TPL_ISIS_STICKY_LABEL="Pinned Toolbar" 35 | TPL_ISIS_TOOLBAR="Toolbar" 36 | TPL_ISIS_XML_DESCRIPTION="Continuing the Egyptian god/goddess theme (Khepri from 1.5 and Hathor from 1.6), Isis is the Joomla 3 admin template based on Bootstrap from Twitter and the launch of the Joomla User Interface library (JUI)." 37 | -------------------------------------------------------------------------------- /language/en-GB/en-GB.tpl_isis3.sys.ini: -------------------------------------------------------------------------------- 1 | ; Joomla! Project 2 | ; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved. 3 | ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php 4 | ; Note : All ini files need to be saved as UTF-8 5 | 6 | ISIS="Isis Administrator template" 7 | TPL_ISIS_POSITION_BOTTOM="Bottom" 8 | TPL_ISIS_POSITION_CPANEL="Cpanel" 9 | TPL_ISIS_POSITION_CP_SHELL="Unused" 10 | TPL_ISIS_POSITION_DEBUG="Debug" 11 | TPL_ISIS_POSITION_FOOTER="Footer" 12 | TPL_ISIS_POSITION_ICON="Quick Icons" 13 | TPL_ISIS_POSITION_LOGIN="Login" 14 | TPL_ISIS_POSITION_MENU="Menu" 15 | TPL_ISIS_POSITION_POSTINSTALL="Postinstall" 16 | TPL_ISIS_POSITION_STATUS="Status" 17 | TPL_ISIS_POSITION_SUBMENU="Submenu" 18 | TPL_ISIS_POSITION_TITLE="Title" 19 | TPL_ISIS_POSITION_TOOLBAR="Toolbar" 20 | TPL_ISIS_XML_DESCRIPTION="Continuing the Egyptian god/goddess theme (Khepri from 1.5 and Hathor from 1.6), Isis is the Joomla 3 admin template based on Bootstrap from Twitter and the launch of the Joomla User Interface library (JUI)." -------------------------------------------------------------------------------- /language/en-GB/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /language/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /language/zh-TW/zh-TW.tpl_isis3.ini: -------------------------------------------------------------------------------- 1 | ; Joomla! Project 2 | ; Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. 3 | ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php 4 | ; Note : All ini files need to be saved as UTF-8 5 | 6 | ISIS="Isis管理區佈景" 7 | TPL_ISIS_CLEAR_CACHE="清除快取" 8 | TPL_ISIS_COLOR_DESC="選擇用於導覽列的顏色,如不輸入則會使用預設值(#13294a) 。" 9 | TPL_ISIS_COLOR_HEADER_DESC="選擇用於頁頭的顏色,如不輸入則會使用預設值(#184a7d)。" 10 | TPL_ISIS_COLOR_HEADER_LABEL="頁頭顏色" 11 | TPL_ISIS_COLOR_LABEL="導覽列顏色" 12 | TPL_ISIS_COLOR_SIDEBAR_DESC="邊欄的背景顏色。保留空白則會使用預設值 (#0088cc)。" 13 | TPL_ISIS_COLOR_SIDEBAR_LABEL="邊欄顏色" 14 | TPL_ISIS_EDIT_ACCOUNT="編輯帳號" 15 | TPL_ISIS_FIELD_ADMIN_MENUS_DESC="如果你打算在電腦螢幕上使用 Joomla! 管理區請設定為「否」。這樣可以在減少視窗寬度時,防止管理區選單折疊,預設值為「是」。" 16 | TPL_ISIS_FIELD_ADMIN_MENUS_LABEL="折疊管理區選單" 17 | TPL_ISIS_HEADER_DESC="可選擇性的顯示表頭" 18 | TPL_ISIS_HEADER_LABEL="顯示標頭" 19 | TPL_ISIS_INSTALLER="安裝程式" 20 | TPL_ISIS_ISFREESOFTWARE="Joomla! 是基於 GNU General Public License 發佈的自由軟體。" 21 | TPL_ISIS_LOGO_DESC="上傳給管理區佈景主題用的自訂標誌(Logo)。" 22 | TPL_ISIS_LOGO_LABEL="標誌(Logo)" 23 | TPL_ISIS_LOGOUT="登出" 24 | TPL_ISIS_PREVIEW="預覽 %s" 25 | TPL_ISIS_STATUS_BOTTOM="固定的底部" 26 | TPL_ISIS_STATUS_DESC="選擇狀態模組的位置。" 27 | TPL_ISIS_STATUS_LABEL="狀態模組位置" 28 | TPL_ISIS_STATUS_TOP="頂部" 29 | TPL_ISIS_STICKY_DESC="設定工具列在固定的(黏住的)位置的可選擇性設定" 30 | TPL_ISIS_STICKY_LABEL="黏住的(Sticky)工具列" 31 | TPL_ISIS_TOOLBAR="工具列" 32 | TPL_ISIS_XML_DESCRIPTION="承續埃及神明為名的佈景主題 (1.5 的 Khepri 與 1.6 的 Hathor),Isis 為 Joomla! 3 管理區佈景主題,基於來自Twitter的 Bootstrap 框架,以及使用Joomla使用者介面函式庫(JUI)。" 33 | -------------------------------------------------------------------------------- /language/zh-TW/zh-TW.tpl_isis3.sys.ini: -------------------------------------------------------------------------------- 1 | ; Joomla! Project 2 | ; Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. 3 | ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php 4 | ; Note : All ini files need to be saved as UTF-8 5 | 6 | ISIS="Isis管理區佈景" 7 | TPL_ISIS_POSITION_BOTTOM="底部" 8 | TPL_ISIS_POSITION_CPANEL="控制台" 9 | TPL_ISIS_POSITION_CP_SHELL="未使用" 10 | TPL_ISIS_POSITION_DEBUG="除錯" 11 | TPL_ISIS_POSITION_FOOTER="頁腳" 12 | TPL_ISIS_POSITION_ICON="捷徑圖示" 13 | TPL_ISIS_POSITION_LOGIN="登入" 14 | TPL_ISIS_POSITION_MENU="選單" 15 | TPL_ISIS_POSITION_POSTINSTALL="安裝後" 16 | TPL_ISIS_POSITION_STATUS="狀態" 17 | TPL_ISIS_POSITION_SUBMENU="子選單" 18 | TPL_ISIS_POSITION_TITLE="標題" 19 | TPL_ISIS_POSITION_TOOLBAR="工具列" 20 | TPL_ISIS_XML_DESCRIPTION="承續埃及神明為名的佈景主題 (1.5 的 Khepri 與 1.6 的 Hathor),Isis 為 Joomla! 3 管理區佈景主題,基於來自Twitter的 Bootstrap 框架,以及使用Joomla使用者介面函式庫(JUI)。" -------------------------------------------------------------------------------- /less/adapter/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /less/adapter/accordion.less: -------------------------------------------------------------------------------- 1 | // 2 | // Accordion 3 | // -------------------------------------------------- 4 | 5 | 6 | // Parent container 7 | .accordion { 8 | margin-bottom: @baseLineHeight; 9 | } 10 | 11 | // Group == heading + body 12 | .accordion-group { 13 | margin-bottom: 2px; 14 | border: 1px solid #e5e5e5; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .accordion-heading { 18 | border-bottom: 0; 19 | } 20 | .accordion-heading .accordion-toggle { 21 | display: block; 22 | padding: 8px 15px; 23 | } 24 | 25 | // General toggle styles 26 | .accordion-toggle { 27 | cursor: pointer; 28 | } 29 | 30 | // Inner needs the styles because you can't animate properly with any styles on the element 31 | .accordion-inner { 32 | padding: 9px 15px; 33 | border-top: 1px solid #e5e5e5; 34 | } 35 | -------------------------------------------------------------------------------- /less/adapter/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissable alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable { 41 | padding-right: (@alert-padding + 20); 42 | 43 | // Adjust close link position 44 | .close { 45 | position: relative; 46 | top: -2px; 47 | right: -21px; 48 | color: inherit; 49 | } 50 | } 51 | 52 | // Alternate styles 53 | // 54 | // Generate contextual modifier classes for colorizing the alert. 55 | .alert-warning, 56 | .alert { 57 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 58 | } 59 | .alert-success { 60 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 61 | } 62 | .alert-info { 63 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 64 | } 65 | .alert-danger { 66 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 67 | } 68 | -------------------------------------------------------------------------------- /less/adapter/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Set unique padding and border-radii 7 | .badge { 8 | padding-left: 9px; 9 | padding-right: 9px; 10 | .border-radius(9px); 11 | } 12 | 13 | // Empty labels/badges collapse 14 | .badge { 15 | &:empty { 16 | display: none; 17 | } 18 | } 19 | 20 | // Hover/focus state, but only for links 21 | a { 22 | &.badge:hover, 23 | &.badge:focus { 24 | color: @white; 25 | text-decoration: none; 26 | cursor: pointer; 27 | } 28 | } 29 | 30 | // Colors 31 | // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) 32 | .badge { 33 | // Important (red) 34 | &-important { background-color: @label-danger-bg; } 35 | &-important[href] { background-color: darken(@label-danger-bg, 10%); } 36 | // Warnings (orange) 37 | &-warning { background-color: @label-warning-bg; } 38 | &-warning[href] { background-color: darken(@label-warning-bg, 10%); } 39 | // Success (green) 40 | &-success { background-color: @label-success-bg; } 41 | &-success[href] { background-color: darken(@label-success-bg, 10%); } 42 | // Info (turquoise) 43 | &-info { background-color: @label-info-bg; } 44 | &-info[href] { background-color: darken(@label-info-bg, 10%); } 45 | // Inverse (black) 46 | &-inverse { background-color: @label-inverse-bg; } 47 | &-inverse[href] { background-color: darken(@label-inverse-bg, 10%); } 48 | } 49 | -------------------------------------------------------------------------------- /less/adapter/bootstrap3-adapter.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | // @import "variables2.less"; 4 | // @import "mixins.less"; 5 | // @import "mixins2.less"; 6 | 7 | // Core CSS 8 | @import "scaffolding.less"; 9 | @import "type.less"; 10 | // @import "code.less"; 11 | @import "grid.less"; 12 | @import "responsive.less"; 13 | @import "tables.less"; 14 | @import "forms.less"; 15 | @import "forms2.less"; 16 | @import "buttons.less"; 17 | 18 | // Components 19 | @import "component-animations.less"; 20 | // @import "icons.less"; 21 | // @import "dropdowns.less"; 22 | // @import "button-groups.less"; 23 | // @import "input-groups.less"; 24 | @import "navs2.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | // @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | // @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | // @import "media.less"; 36 | // @import "list-group.less"; 37 | // @import "panels.less"; 38 | @import "wells.less"; 39 | // @import "close.less"; 40 | 41 | // Components w/ JavaScript 42 | @import "modals.less"; 43 | @import "accordion.less"; 44 | // @import "tooltip.less"; 45 | // @import "popovers.less"; 46 | // @import "carousel.less"; 47 | 48 | // Utility classes 49 | // @import "utilities.less"; 50 | // @import "responsive-utilities.less"; 51 | -------------------------------------------------------------------------------- /less/adapter/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | > li { 8 | > .divider { 9 | display: none; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /less/adapter/buttons.less: -------------------------------------------------------------------------------- 1 | // 2 | // Buttons 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // -------------------------------------------------- 8 | 9 | .btn { 10 | display: inline-block; 11 | margin-bottom: 0; // For input.btn 12 | font-weight: @btn-font-weight; 13 | text-align: center; 14 | vertical-align: middle; 15 | cursor: pointer; 16 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 17 | border: 1px solid transparent; 18 | white-space: nowrap; 19 | .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); 20 | .user-select(none); 21 | 22 | &, 23 | &:active, 24 | &.active { 25 | &:focus { 26 | .tab-focus(); 27 | } 28 | } 29 | 30 | &:hover, 31 | &:focus { 32 | color: @btn-default-color; 33 | text-decoration: none; 34 | } 35 | 36 | &:active, 37 | &.active { 38 | outline: 0; 39 | background-image: none; 40 | .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 41 | } 42 | 43 | &.disabled, 44 | &[disabled], 45 | fieldset[disabled] & { 46 | cursor: not-allowed; 47 | pointer-events: none; // Future-proof disabling of clicks 48 | .opacity(.65); 49 | .box-shadow(none); 50 | } 51 | } 52 | 53 | 54 | // Alternate buttons 55 | // -------------------------------------------------- 56 | 57 | .btn { 58 | .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); 59 | } 60 | .btn-primary { 61 | .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); 62 | } 63 | // Success appears as green 64 | .btn-success { 65 | .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); 66 | } 67 | // Info appears as blue-green 68 | .btn-info { 69 | .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); 70 | } 71 | // Warning appears as orange 72 | .btn-warning { 73 | .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); 74 | } 75 | // Danger and error appear as red 76 | .btn-danger { 77 | .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); 78 | } 79 | // Inverse appear as black 80 | .btn-inverse { 81 | .button-variant(@btn-inverse-color; @btn-inverse-bg; @btn-inverse-border); 82 | } 83 | 84 | // Link buttons 85 | // ------------------------- 86 | 87 | // Make a button look and behave like a link 88 | .btn-link { 89 | color: @link-color; 90 | font-weight: normal; 91 | cursor: pointer; 92 | border-radius: 0; 93 | 94 | &, 95 | &:active, 96 | &[disabled], 97 | fieldset[disabled] & { 98 | background-color: transparent; 99 | .box-shadow(none); 100 | } 101 | &, 102 | &:hover, 103 | &:focus, 104 | &:active { 105 | border-color: transparent; 106 | } 107 | &:hover, 108 | &:focus { 109 | color: @link-hover-color; 110 | text-decoration: underline; 111 | background-color: transparent; 112 | } 113 | &[disabled], 114 | fieldset[disabled] & { 115 | &:hover, 116 | &:focus { 117 | color: @btn-link-disabled-color; 118 | text-decoration: none; 119 | } 120 | } 121 | } 122 | 123 | // Button Sizes 124 | // -------------------------------------------------- 125 | 126 | .btn-large { 127 | // line-height: ensure even-numbered height of button next to large input 128 | .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); 129 | } 130 | .btn-small { 131 | // line-height: ensure proper height of button next to small input 132 | .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); 133 | } 134 | .btn-mini { 135 | .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); 136 | } 137 | -------------------------------------------------------------------------------- /less/adapter/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .modal.fade.in { 19 | display: block !important; 20 | position: fixed; 21 | } 22 | 23 | .collapse { 24 | position: relative; 25 | height: 0px; 26 | overflow: hidden; 27 | .transition2(height .35s ease); 28 | &.in { 29 | height: auto; 30 | } 31 | } -------------------------------------------------------------------------------- /less/adapter/forms.less: -------------------------------------------------------------------------------- 1 | 2 | .radio.inline, 3 | .checkbox.inline { 4 | display: inline-block; 5 | padding-left: 20px; 6 | margin-bottom: 0; 7 | vertical-align: middle; 8 | font-weight: normal; 9 | cursor: pointer; 10 | } 11 | .radio.inline + .radio.inline, 12 | .checkbox.inline + .checkbox.inline { 13 | margin-top: 0; 14 | margin-left: 10px; // space out consecutive inline controls 15 | } 16 | 17 | .checkbox.inline:first-child { 18 | margin-top: 0; 19 | } 20 | -------------------------------------------------------------------------------- /less/adapter/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | .container { 6 | padding: 0; 7 | } 8 | 9 | // Fixed (940px) 10 | #grid > .core(@gridColumnWidth, @gridGutterWidth); 11 | 12 | // Fluid (940px) 13 | #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); 14 | 15 | // Reset utility classes due to specificity 16 | [class*="span"].hide, 17 | .row-fluid [class*="span"].hide { 18 | display: none; 19 | } 20 | 21 | [class*="span"].pull-right, 22 | .row-fluid [class*="span"].pull-right { 23 | float: right; 24 | } 25 | -------------------------------------------------------------------------------- /less/adapter/grid3.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | // Container widths 6 | // 7 | // Set the container width, and override it for fixed navbars in media queries. 8 | 9 | .container { 10 | .container-fixed(); 11 | 12 | @media (min-width: @screen-sm-min) { 13 | width: @container-sm; 14 | } 15 | @media (min-width: @screen-md-min) { 16 | width: @container-md; 17 | } 18 | @media (min-width: @screen-lg-min) { 19 | width: @container-lg; 20 | } 21 | } 22 | 23 | 24 | // Fluid container 25 | // 26 | // Utilizes the mixin meant for fixed width containers, but without any defined 27 | // width for fluid, full width layouts. 28 | 29 | .container-fluid { 30 | .container-fixed(); 31 | } 32 | 33 | 34 | // Row 35 | // 36 | // Rows contain and clear the floats of your columns. 37 | 38 | .row { 39 | .make-row(); 40 | } 41 | .row-fluid { 42 | .make-row(); 43 | } 44 | 45 | // Framework grid generation 46 | // 47 | // Used only by Bootstrap to generate the correct number of grid classes given 48 | // any value of `@grid-columns`. 49 | 50 | .make-grid-columns2() { 51 | // Common styles for all sizes of grid columns, widths 1-12 52 | .col(@index) when (@index = 1) { // initial 53 | @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; 54 | .col((@index + 1), @item); 55 | } 56 | .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo 57 | @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; 58 | .col((@index + 1), ~"@{list}, @{item}"); 59 | } 60 | .col(@index, @list) when (@index > @grid-columns) { // terminal 61 | @{list} { 62 | position: relative; 63 | // Prevent columns from collapsing when empty 64 | min-height: 1px; 65 | // Inner gutter via padding 66 | padding-left: (@grid-gutter-width / 2); 67 | padding-right: (@grid-gutter-width / 2); 68 | } 69 | } 70 | .col(1); // kickstart it 71 | } 72 | 73 | .float-grid-columns2(@class) { 74 | .col(@index) when (@index = 1) { // initial 75 | @item: ~".@{class}@{index}"; 76 | .col((@index + 1), @item); 77 | } 78 | .col(@index, @list) when (@index =< @grid-columns) { // general 79 | @item: ~".@{class}@{index}"; 80 | .col((@index + 1), ~"@{list}, @{item}"); 81 | } 82 | .col(@index, @list) when (@index > @grid-columns) { // terminal 83 | @{list} { 84 | float: left; 85 | } 86 | } 87 | .col(1); // kickstart it 88 | } 89 | 90 | .calc-grid-column2(@index, @class, @type) when (@type = offset) { 91 | .offset@{index} { 92 | margin-left: percentage((@index / @grid-columns)); 93 | } 94 | } 95 | 96 | // Basic looping in LESS 97 | .loop-grid-columns2(@index, @class, @type) when (@index >= 0) { 98 | .calc-grid-column2(@index, @class, @type); 99 | // next iteration 100 | .loop-grid-columns2((@index - 1), @class, @type); 101 | } 102 | 103 | .calc-grid-column2(@index, @class, @type) when (@type = width) and (@index > 0) { 104 | .@{class}@{index} { 105 | width: percentage((@index / @grid-columns)); 106 | } 107 | } 108 | 109 | // Create grid for specific class 110 | .make-grid2(@class) { 111 | .float-grid-columns2(@class); 112 | .loop-grid-columns2(@grid-columns, @class, width); 113 | // .loop-grid-columns2(@grid-columns, @class, pull); 114 | // .loop-grid-columns2(@grid-columns, @class, push); 115 | .loop-grid-columns2(@grid-columns, @class, offset); 116 | } 117 | 118 | // Medium grid 119 | // 120 | // Columns, offsets, pushes, and pulls for the desktop device range. 121 | 122 | @media (min-width: @screen-md-min) { 123 | .make-grid2(span); 124 | } 125 | 126 | [class*="span"] { 127 | min-height: 1px; // prevent collapsing columns 128 | } 129 | -------------------------------------------------------------------------------- /less/adapter/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /less/adapter/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | &[href] { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | 66 | .label-important { 67 | .label-variant(@label-danger-bg); 68 | } 69 | 70 | .label-inverse { 71 | .label-variant(@label-inverse-bg); 72 | } 73 | -------------------------------------------------------------------------------- /less/adapter/modals.less: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // -------------------------------------------------- 4 | 5 | // .modal-open - body class for killing the scroll 6 | // .modal - container to scroll within 7 | // .modal-dialog - positioning shell for the actual modal 8 | // .modal-content - actual modal w/ bg and corners and shit 9 | 10 | // Kill the scroll on the body 11 | .modal-open { 12 | overflow: hidden; 13 | } 14 | 15 | // Container that the modal scrolls within 16 | div.modal { 17 | &.hide { 18 | display: block; 19 | overflow: auto; 20 | overflow-y: scroll; 21 | position: fixed; 22 | top: 0; 23 | right: 0; 24 | bottom: 0; 25 | left: 0; 26 | z-index: @zindex-modal; 27 | -webkit-overflow-scrolling: touch; 28 | 29 | // Prevent Chrome on Windows from adding a focus outline. For details, see 30 | // https://github.com/twbs/bootstrap/pull/10951. 31 | outline: 0; 32 | } 33 | 34 | // When fading in the modal, animate it to slide down 35 | &.fade { 36 | .translate(0, -25%); 37 | .transition-transform(~"0.3s ease-out"); 38 | } 39 | &.in { 40 | .translate(0, 0); 41 | } 42 | &.hide { 43 | display: block !important; 44 | visibility: hidden; 45 | position: fixed; 46 | } 47 | &.hide.in { 48 | visibility: visible; 49 | } 50 | } 51 | 52 | // Shell div to position the modal with bottom padding 53 | div.modal.hide { 54 | position: relative; 55 | width: auto; 56 | margin: 10px; 57 | } 58 | 59 | // Actual modal 60 | div.modal.hide { 61 | position: relative; 62 | background-color: @modal-content-bg; 63 | border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) 64 | border: 1px solid @modal-content-border-color; 65 | border-radius: @border-radius-large; 66 | .box-shadow(0 3px 9px rgba(0,0,0,.5)); 67 | background-clip: padding-box; 68 | // Remove focus outline from opened modal 69 | outline: none; 70 | } 71 | 72 | // Modal background 73 | .modal-backdrop { 74 | position: fixed; 75 | top: 0; 76 | right: 0; 77 | bottom: 0; 78 | left: 0; 79 | z-index: @zindex-modal-background; 80 | background-color: @modal-backdrop-bg; 81 | // Fade for backdrop 82 | &.fade { .opacity(0); } 83 | &.in { .opacity(@modal-backdrop-opacity); } 84 | } 85 | 86 | // Modal header 87 | // Top section of the modal w/ title and dismiss 88 | .modal-header { 89 | padding: @modal-title-padding; 90 | border-bottom: 1px solid @modal-header-border-color; 91 | min-height: (@modal-title-padding + @modal-title-line-height); 92 | } 93 | // Close icon 94 | .modal-header .close { 95 | margin-top: -2px; 96 | } 97 | 98 | // Title text within header 99 | .modal-title { 100 | margin: 0; 101 | line-height: @modal-title-line-height; 102 | } 103 | 104 | // Modal body 105 | // Where all modal content resides (sibling of .modal-header and .modal-footer) 106 | .modal-body { 107 | position: relative; 108 | padding: @modal-inner-padding; 109 | } 110 | 111 | // Footer (for actions) 112 | .modal-footer { 113 | margin-top: 15px; 114 | padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding; 115 | text-align: right; // right align buttons 116 | border-top: 1px solid @modal-footer-border-color; 117 | &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons 118 | 119 | // Properly space out buttons 120 | .btn + .btn { 121 | margin-left: 5px; 122 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs 123 | } 124 | // but override that for button groups 125 | .btn-group .btn + .btn { 126 | margin-left: -1px; 127 | } 128 | // and override it for block buttons as well 129 | .btn-block + .btn-block { 130 | margin-left: 0; 131 | } 132 | } 133 | 134 | // Scale up the modal 135 | @media (min-width: @screen-sm-min) { 136 | // Automatically set modal's width for larger viewports 137 | div.modal.hide { 138 | width: @modal-md; 139 | margin: 30px auto; 140 | } 141 | div.modal.hide { 142 | .box-shadow(0 5px 15px rgba(0,0,0,.5)); 143 | } 144 | 145 | // Modal sizes 146 | .modal-sm { width: @modal-sm; } 147 | } 148 | 149 | @media (min-width: @screen-md-min) { 150 | .modal-lg { width: @modal-lg; } 151 | } 152 | -------------------------------------------------------------------------------- /less/adapter/navs2.less: -------------------------------------------------------------------------------- 1 | // 2 | // Navs 3 | // -------------------------------------------------- 4 | 5 | .nav { 6 | margin-bottom: @baseLineHeight; 7 | } 8 | 9 | // STACKED NAV 10 | // ----------- 11 | 12 | //// Stacked tabs and pills 13 | //.nav-stacked > li { 14 | // float: none; 15 | //} 16 | //.nav-stacked > li > a { 17 | // margin-right: 0; // no need for the gap between nav items 18 | //} 19 | 20 | // Tabs 21 | .nav-tabs.nav-stacked { 22 | border-bottom: 0; 23 | } 24 | .nav-tabs.nav-stacked > li > a { 25 | border: 1px solid #ddd; 26 | .border-radius(0); 27 | } 28 | .nav-tabs.nav-stacked > li:first-child > a { 29 | .border-top-radius(4px); 30 | } 31 | .nav-tabs.nav-stacked > li:last-child > a { 32 | .border-bottom-radius(4px); 33 | } 34 | .nav-tabs.nav-stacked > li > a:hover, 35 | .nav-tabs.nav-stacked > li > a:focus { 36 | border-color: #ddd; 37 | z-index: 2; 38 | } 39 | 40 | // Adapter 41 | .nav-tabs.nav-stacked > li + li { 42 | margin-top: 0; 43 | } 44 | 45 | // Pills 46 | .nav-pills.nav-stacked > li > a { 47 | margin-bottom: 3px; 48 | } 49 | .nav-pills.nav-stacked > li:last-child > a { 50 | margin-bottom: 1px; // decrease margin to match sizing of stacked tabs 51 | } 52 | 53 | // Nav headers (for dropdowns and lists) 54 | .nav-header { 55 | display: block; 56 | padding: 3px 15px; 57 | font-size: 11px; 58 | font-weight: bold; 59 | line-height: @baseLineHeight; 60 | color: @grayLight; 61 | text-shadow: 0 1px 0 rgba(255,255,255,.5); 62 | text-transform: uppercase; 63 | } 64 | // Space them out when they follow another list item (link) 65 | .nav li + .nav-header { 66 | margin-top: 9px; 67 | } 68 | 69 | // TABBABLE 70 | // -------- 71 | 72 | 73 | // COMMON STYLES 74 | // ------------- 75 | 76 | // Clear any floats 77 | .tabbable { 78 | .clearfix(); 79 | } 80 | .tab-content { 81 | overflow: auto; // prevent content from running below tabs 82 | } 83 | 84 | // Remove border on bottom, left, right 85 | .tabs-below > .nav-tabs, 86 | .tabs-right > .nav-tabs, 87 | .tabs-left > .nav-tabs { 88 | border-bottom: 0; 89 | } 90 | 91 | // Show/hide tabbable areas 92 | .tab-content > .tab-pane, 93 | .pill-content > .pill-pane { 94 | display: none; 95 | } 96 | .tab-content > .active, 97 | .pill-content > .active { 98 | display: block; 99 | } 100 | 101 | // BOTTOM 102 | // ------ 103 | 104 | .tabs-below > .nav-tabs { 105 | border-top: 1px solid #ddd; 106 | } 107 | .tabs-below > .nav-tabs > li { 108 | margin-top: -1px; 109 | margin-bottom: 0; 110 | } 111 | .tabs-below > .nav-tabs > li > a { 112 | .border-radius(0 0 4px 4px); 113 | &:hover, 114 | &:focus { 115 | border-bottom-color: transparent; 116 | border-top-color: #ddd; 117 | } 118 | } 119 | .tabs-below > .nav-tabs > .active > a, 120 | .tabs-below > .nav-tabs > .active > a:hover, 121 | .tabs-below > .nav-tabs > .active > a:focus { 122 | border-color: transparent #ddd #ddd #ddd; 123 | } 124 | 125 | // LEFT & RIGHT 126 | // ------------ 127 | 128 | // Common styles 129 | .tabs-left > .nav-tabs > li, 130 | .tabs-right > .nav-tabs > li { 131 | float: none; 132 | } 133 | .tabs-left > .nav-tabs > li > a, 134 | .tabs-right > .nav-tabs > li > a { 135 | min-width: 74px; 136 | margin-right: 0; 137 | margin-bottom: 3px; 138 | } 139 | 140 | // Tabs on the left 141 | .tabs-left > .nav-tabs { 142 | float: left; 143 | margin-right: 19px; 144 | border-right: 1px solid #ddd; 145 | } 146 | .tabs-left > .nav-tabs > li > a { 147 | margin-right: -1px; 148 | .border-radius(4px 0 0 4px); 149 | } 150 | .tabs-left > .nav-tabs > li > a:hover, 151 | .tabs-left > .nav-tabs > li > a:focus { 152 | border-color: @grayLighter #ddd @grayLighter @grayLighter; 153 | } 154 | .tabs-left > .nav-tabs .active > a, 155 | .tabs-left > .nav-tabs .active > a:hover, 156 | .tabs-left > .nav-tabs .active > a:focus { 157 | border-color: #ddd transparent #ddd #ddd; 158 | *border-right-color: @white; 159 | } 160 | 161 | // Tabs on the right 162 | .tabs-right > .nav-tabs { 163 | float: right; 164 | margin-left: 19px; 165 | border-left: 1px solid #ddd; 166 | } 167 | .tabs-right > .nav-tabs > li > a { 168 | margin-left: -1px; 169 | .border-radius(0 4px 4px 0); 170 | } 171 | .tabs-right > .nav-tabs > li > a:hover, 172 | .tabs-right > .nav-tabs > li > a:focus { 173 | border-color: @grayLighter @grayLighter @grayLighter #ddd; 174 | } 175 | .tabs-right > .nav-tabs .active > a, 176 | .tabs-right > .nav-tabs .active > a:hover, 177 | .tabs-right > .nav-tabs .active > a:focus { 178 | border-color: #ddd #ddd #ddd transparent; 179 | *border-left-color: @white; 180 | } 181 | -------------------------------------------------------------------------------- /less/adapter/pagination.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination (multiple pages) 3 | // -------------------------------------------------- 4 | .pagination { 5 | width: 100%; 6 | } 7 | 8 | .pagination ul { 9 | display: inline-block; 10 | padding-left: 0; 11 | margin: @line-height-computed 0; 12 | border-radius: @border-radius-base; 13 | 14 | > li { 15 | display: inline; // Remove list-style and block-level defaults 16 | > a, 17 | > span { 18 | position: relative; 19 | float: left; // Collapse white-space 20 | padding: @padding-base-vertical @padding-base-horizontal; 21 | line-height: @line-height-base; 22 | text-decoration: none; 23 | color: @pagination-color; 24 | background-color: @pagination-bg; 25 | border: 1px solid @pagination-border; 26 | margin-left: -1px; 27 | } 28 | &:first-child { 29 | > a, 30 | > span { 31 | margin-left: 0; 32 | .border-left-radius(@border-radius-base); 33 | } 34 | } 35 | &:last-child { 36 | > a, 37 | > span { 38 | .border-right-radius(@border-radius-base); 39 | } 40 | } 41 | } 42 | 43 | > li > a, 44 | > li > span { 45 | &:hover, 46 | &:focus { 47 | color: @pagination-hover-color; 48 | background-color: @pagination-hover-bg; 49 | border-color: @pagination-hover-border; 50 | } 51 | } 52 | 53 | > .active > a, 54 | > .active > span { 55 | &, 56 | &:hover, 57 | &:focus { 58 | z-index: 2; 59 | color: @pagination-active-color; 60 | background-color: @pagination-active-bg; 61 | border-color: @pagination-active-border; 62 | cursor: default; 63 | } 64 | } 65 | 66 | > .disabled { 67 | > span, 68 | > span:hover, 69 | > span:focus, 70 | > a, 71 | > a:hover, 72 | > a:focus { 73 | color: @pagination-disabled-color; 74 | background-color: @pagination-disabled-bg; 75 | border-color: @pagination-disabled-border; 76 | cursor: not-allowed; 77 | } 78 | } 79 | } 80 | 81 | // Sizing 82 | // -------------------------------------------------- 83 | 84 | // Large 85 | .pagination-large ul { 86 | .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large); 87 | } 88 | 89 | // Small 90 | .pagination-small ul { 91 | .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small); 92 | } 93 | 94 | // Mini 95 | .pagination-mini ul { 96 | .pagination-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @border-radius-small); 97 | } 98 | 99 | // Alignment 100 | // -------------------------------------------------- 101 | 102 | .pagination-centered { 103 | text-align: center; 104 | } 105 | .pagination-right { 106 | text-align: right; 107 | } 108 | -------------------------------------------------------------------------------- /less/adapter/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | 23 | // Bar itself 24 | // ------------------------- 25 | 26 | // Outer container 27 | .progress { 28 | overflow: hidden; 29 | height: @line-height-computed; 30 | margin-bottom: @line-height-computed; 31 | background-color: @progress-bg; 32 | border-radius: @border-radius-base; 33 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 34 | } 35 | 36 | // Bar of progress 37 | .progress .bar { 38 | float: left; 39 | width: 0%; 40 | height: 100%; 41 | font-size: @font-size-small; 42 | line-height: @line-height-computed; 43 | color: @progress-bar-color; 44 | text-align: center; 45 | background-color: @progress-bar-bg; 46 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 47 | .transition(width .6s ease); 48 | } 49 | 50 | // Striped bars 51 | .progress-striped .bar { 52 | #gradient > .striped(); 53 | background-size: 40px 40px; 54 | } 55 | 56 | // Call animation for the active one 57 | .progress.active .bar { 58 | .animation(progress-bar-stripes 2s linear infinite); 59 | } 60 | 61 | 62 | 63 | // Variations 64 | // ------------------------- 65 | 66 | .progress-success .bar { 67 | .progress-bar-variant(@progress-bar-success-bg); 68 | } 69 | 70 | .progress-info .bar { 71 | .progress-bar-variant(@progress-bar-info-bg); 72 | } 73 | 74 | .progress-warning .bar { 75 | .progress-bar-variant(@progress-bar-warning-bg); 76 | } 77 | 78 | .progress-danger .bar { 79 | .progress-bar-variant(@progress-bar-danger-bg); 80 | } 81 | -------------------------------------------------------------------------------- /less/adapter/responsive-1200px-min.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Large desktop and up 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 1200px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); 16 | 17 | // Thumbnails 18 | .thumbnails { 19 | margin-left: -@gridGutterWidth1200; 20 | } 21 | .thumbnails > li { 22 | margin-left: @gridGutterWidth1200; 23 | } 24 | .row-fluid .thumbnails { 25 | margin-left: 0; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /less/adapter/responsive-767px-max.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Landscape phone to desktop/tablet 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (max-width: 767px) { 7 | 8 | // Padding to set content in a bit 9 | body { 10 | padding-left: 20px; 11 | padding-right: 20px; 12 | } 13 | // Negative indent the now static "fixed" navbar 14 | .navbar-fixed-top, 15 | .navbar-fixed-bottom, 16 | .navbar-static-top { 17 | margin-left: -20px; 18 | margin-right: -20px; 19 | } 20 | // Remove padding on container given explicit padding set on body 21 | .container-fluid { 22 | padding: 0; 23 | } 24 | 25 | // TYPOGRAPHY 26 | // ---------- 27 | // Reset horizontal dl 28 | .dl-horizontal { 29 | dt { 30 | float: none; 31 | clear: none; 32 | width: auto; 33 | text-align: left; 34 | } 35 | dd { 36 | margin-left: 0; 37 | } 38 | } 39 | 40 | // GRID & CONTAINERS 41 | // ----------------- 42 | // Remove width from containers 43 | .container { 44 | width: auto; 45 | } 46 | // Fluid rows 47 | .row-fluid { 48 | width: 100%; 49 | } 50 | // Undo negative margin on rows and thumbnails 51 | .row, 52 | .thumbnails { 53 | margin-left: 0; 54 | } 55 | .thumbnails > li { 56 | float: none; 57 | margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present 58 | } 59 | // Make all grid-sized elements block level again 60 | [class*="span"], 61 | .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing 62 | .row-fluid [class*="span"] { 63 | float: none; 64 | display: block; 65 | width: 100%; 66 | margin-left: 0; 67 | .box-sizing(border-box); 68 | } 69 | .span12, 70 | .row-fluid .span12 { 71 | width: 100%; 72 | .box-sizing(border-box); 73 | } 74 | .row-fluid [class*="offset"]:first-child { 75 | margin-left: 0; 76 | } 77 | 78 | // FORM FIELDS 79 | // ----------- 80 | // Make span* classes full width 81 | .input-large, 82 | .input-xlarge, 83 | .input-xxlarge, 84 | input[class*="span"], 85 | select[class*="span"], 86 | textarea[class*="span"], 87 | .uneditable-input { 88 | .input-block-level(); 89 | } 90 | // But don't let it screw up prepend/append inputs 91 | .input-prepend input, 92 | .input-append input, 93 | .input-prepend input[class*="span"], 94 | .input-append input[class*="span"] { 95 | display: inline-block; // redeclare so they don't wrap to new lines 96 | width: auto; 97 | } 98 | .controls-row [class*="span"] + [class*="span"] { 99 | margin-left: 0; 100 | } 101 | 102 | // Modals 103 | .modal.hide { 104 | position: fixed; 105 | top: 20px; 106 | left: 20px; 107 | right: 20px; 108 | width: auto; 109 | margin: 0; 110 | &.fade { top: -100px; } 111 | &.fade.in { top: 20px; } 112 | } 113 | 114 | } 115 | 116 | 117 | 118 | // UP TO LANDSCAPE PHONE 119 | // --------------------- 120 | 121 | @media (max-width: 480px) { 122 | 123 | // Smooth out the collapsing/expanding nav 124 | .nav-collapse { 125 | -webkit-transform: translate3d(0, 0, 0); // activate the GPU 126 | } 127 | 128 | // Block level the page header small tag for readability 129 | .page-header h1 small { 130 | display: block; 131 | line-height: @baseLineHeight; 132 | } 133 | 134 | // Update checkboxes for iOS 135 | input[type="checkbox"], 136 | input[type="radio"] { 137 | border: 1px solid #ccc; 138 | } 139 | 140 | // Remove the horizontal form styles 141 | .form-horizontal { 142 | .control-label { 143 | float: none; 144 | width: auto; 145 | padding-top: 0; 146 | text-align: left; 147 | } 148 | // Move over all input controls and content 149 | .controls { 150 | margin-left: 0; 151 | } 152 | // Move the options list down to align with labels 153 | .control-list { 154 | padding-top: 0; // has to be padding because margin collaspes 155 | } 156 | // Move over buttons in .form-actions to align with .controls 157 | .form-actions { 158 | padding-left: 10px; 159 | padding-right: 10px; 160 | } 161 | } 162 | 163 | // Medias 164 | // Reset float and spacing to stack 165 | .media .pull-left, 166 | .media .pull-right { 167 | float: none; 168 | display: block; 169 | margin-bottom: 10px; 170 | } 171 | // Remove side margins since we stack instead of indent 172 | .media-object { 173 | margin-right: 0; 174 | margin-left: 0; 175 | } 176 | 177 | // Modals 178 | .modal.hide { 179 | top: 10px; 180 | left: 10px; 181 | right: 10px; 182 | } 183 | .modal-header .close { 184 | padding: 10px; 185 | margin: -10px; 186 | } 187 | 188 | // Carousel 189 | .carousel-caption { 190 | position: static; 191 | } 192 | 193 | } 194 | -------------------------------------------------------------------------------- /less/adapter/responsive-768px-979px.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Tablet to desktop 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 768px) and (max-width: 979px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth768, @gridGutterWidth768); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth768, @gridGutterWidth768); 16 | 17 | // No need to reset .thumbnails here since it's the same @gridGutterWidth 18 | 19 | } 20 | -------------------------------------------------------------------------------- /less/adapter/responsive-navbar.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Navbar 3 | // -------------------------------------------------- 4 | 5 | 6 | // TABLETS AND BELOW 7 | // ----------------- 8 | @media (max-width: @navbarCollapseWidth) { 9 | 10 | // UNFIX THE TOPBAR 11 | // ---------------- 12 | // Remove any padding from the body 13 | body { 14 | padding-top: 0; 15 | } 16 | // Unfix the navbars 17 | .navbar-fixed-top, 18 | .navbar-fixed-bottom { 19 | position: static; 20 | } 21 | .navbar-fixed-top { 22 | margin-bottom: @baseLineHeight; 23 | } 24 | .navbar-fixed-bottom { 25 | margin-top: @baseLineHeight; 26 | } 27 | .navbar-fixed-top .navbar-inner, 28 | .navbar-fixed-bottom .navbar-inner { 29 | padding: 5px; 30 | } 31 | .navbar .container { 32 | width: auto; 33 | padding: 0; 34 | } 35 | // Account for brand name 36 | .navbar .brand { 37 | padding-left: 10px; 38 | padding-right: 10px; 39 | margin: 0 0 0 -5px; 40 | } 41 | 42 | // COLLAPSIBLE NAVBAR 43 | // ------------------ 44 | // Nav collapse clears brand 45 | .nav-collapse { 46 | clear: both; 47 | } 48 | // Block-level the nav 49 | .nav-collapse .nav { 50 | float: none; 51 | margin: 0 0 (@baseLineHeight / 2); 52 | } 53 | .nav-collapse .nav > li { 54 | float: none; 55 | } 56 | .nav-collapse .nav > li > a { 57 | margin-bottom: 2px; 58 | } 59 | .nav-collapse .nav > .divider-vertical { 60 | display: none; 61 | } 62 | .nav-collapse .nav .nav-header { 63 | color: @navbarText; 64 | text-shadow: none; 65 | } 66 | // Nav and dropdown links in navbar 67 | .nav-collapse .nav > li > a, 68 | .nav-collapse .dropdown-menu a { 69 | padding: 9px 15px; 70 | font-weight: bold; 71 | color: @navbarLinkColor; 72 | .border-radius(3px); 73 | } 74 | // Buttons 75 | .nav-collapse .btn { 76 | padding: 4px 10px 4px; 77 | font-weight: normal; 78 | .border-radius(@baseBorderRadius); 79 | } 80 | .nav-collapse .dropdown-menu li + li a { 81 | margin-bottom: 2px; 82 | } 83 | .nav-collapse .nav > li > a:hover, 84 | .nav-collapse .nav > li > a:focus, 85 | .nav-collapse .dropdown-menu a:hover, 86 | .nav-collapse .dropdown-menu a:focus { 87 | background-color: @navbarBackground; 88 | } 89 | .navbar-inverse .nav-collapse .nav > li > a, 90 | .navbar-inverse .nav-collapse .dropdown-menu a { 91 | color: @navbarInverseLinkColor; 92 | } 93 | .navbar-inverse .nav-collapse .nav > li > a:hover, 94 | .navbar-inverse .nav-collapse .nav > li > a:focus, 95 | .navbar-inverse .nav-collapse .dropdown-menu a:hover, 96 | .navbar-inverse .nav-collapse .dropdown-menu a:focus { 97 | background-color: @navbarInverseBackground; 98 | } 99 | // Buttons in the navbar 100 | .nav-collapse.in .btn-group { 101 | margin-top: 5px; 102 | padding: 0; 103 | } 104 | // Dropdowns in the navbar 105 | .nav-collapse .dropdown-menu { 106 | position: static; 107 | top: auto; 108 | left: auto; 109 | float: none; 110 | display: none; 111 | max-width: none; 112 | margin: 0 15px; 113 | padding: 0; 114 | background-color: transparent; 115 | border: none; 116 | .border-radius(0); 117 | .box-shadow(none); 118 | } 119 | .nav-collapse .open > .dropdown-menu { 120 | display: block; 121 | } 122 | 123 | .nav-collapse .dropdown-menu:before, 124 | .nav-collapse .dropdown-menu:after { 125 | display: none; 126 | } 127 | .nav-collapse .dropdown-menu .divider { 128 | display: none; 129 | } 130 | .nav-collapse .nav > li > .dropdown-menu { 131 | &:before, 132 | &:after { 133 | display: none; 134 | } 135 | } 136 | // Forms in navbar 137 | .nav-collapse .navbar-form, 138 | .nav-collapse .navbar-search { 139 | float: none; 140 | padding: (@baseLineHeight / 2) 15px; 141 | margin: (@baseLineHeight / 2) 0; 142 | border-top: 1px solid @navbarBackground; 143 | border-bottom: 1px solid @navbarBackground; 144 | .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)"); 145 | } 146 | .navbar-inverse .nav-collapse .navbar-form, 147 | .navbar-inverse .nav-collapse .navbar-search { 148 | border-top-color: @navbarInverseBackground; 149 | border-bottom-color: @navbarInverseBackground; 150 | } 151 | // Pull right (secondary) nav content 152 | .navbar .nav-collapse .nav.pull-right { 153 | float: none; 154 | margin-left: 0; 155 | } 156 | // Hide everything in the navbar save .brand and toggle button */ 157 | .nav-collapse, 158 | .nav-collapse.collapse { 159 | overflow: hidden; 160 | height: 0; 161 | } 162 | // Navbar button 163 | .navbar .btn-navbar { 164 | display: block; 165 | } 166 | 167 | // STATIC NAVBAR 168 | // ------------- 169 | .navbar-static .navbar-inner { 170 | padding-left: 10px; 171 | padding-right: 10px; 172 | } 173 | 174 | 175 | } 176 | 177 | 178 | // DEFAULT DESKTOP 179 | // --------------- 180 | 181 | @media (min-width: @navbarCollapseDesktopWidth) { 182 | 183 | // Required to make the collapsing navbar work on regular desktops 184 | .nav-collapse.collapse { 185 | height: auto !important; 186 | overflow: visible !important; 187 | } 188 | 189 | } 190 | -------------------------------------------------------------------------------- /less/adapter/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // IE10 Metro responsive 7 | // Required for Windows 8 Metro split-screen snapping with IE10 8 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ 9 | @-ms-viewport{ 10 | width: device-width; 11 | } 12 | 13 | // Hide from screenreaders and browsers 14 | // Credit: HTML5 Boilerplate 15 | .hidden { 16 | display: none; 17 | visibility: hidden; 18 | } 19 | 20 | // Visibility utilities 21 | 22 | // For desktops 23 | .visible-phone { display: none !important; } 24 | .visible-tablet { display: none !important; } 25 | .hidden-phone { } 26 | .hidden-tablet { } 27 | .hidden-desktop { display: none !important; } 28 | .visible-desktop { display: inherit !important; } 29 | 30 | // Tablets & small desktops only 31 | @media (min-width: 768px) and (max-width: 979px) { 32 | // Hide everything else 33 | .hidden-desktop { display: inherit !important; } 34 | .visible-desktop { display: none !important ; } 35 | // Show 36 | .visible-tablet { display: inherit !important; } 37 | // Hide 38 | .hidden-tablet { display: none !important; } 39 | } 40 | 41 | // Phones only 42 | @media (max-width: 767px) { 43 | // Hide everything else 44 | .hidden-desktop { display: inherit !important; } 45 | .visible-desktop { display: none !important; } 46 | // Show 47 | .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior 48 | // Hide 49 | .hidden-phone { display: none !important; } 50 | } 51 | 52 | // Print utilities 53 | .visible-print { display: none !important; } 54 | .hidden-print { } 55 | 56 | @media print { 57 | .visible-print { display: inherit !important; } 58 | .hidden-print { display: none !important; } 59 | } 60 | -------------------------------------------------------------------------------- /less/adapter/responsive.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.3.2 3 | * 4 | * Copyright 2013 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world by @mdo and @fat. 9 | */ 10 | 11 | 12 | // Responsive.less 13 | // For phone and tablet devices 14 | // ------------------------------------------------------------- 15 | 16 | 17 | // REPEAT VARIABLES & MIXINS 18 | // ------------------------- 19 | // Required since we compile the responsive stuff separately 20 | 21 | @import "variables2.less"; // Modify this for custom colors, font-sizes, etc 22 | @import "mixins2.less"; 23 | 24 | 25 | // RESPONSIVE CLASSES 26 | // ------------------ 27 | 28 | @import "responsive-utilities.less"; 29 | 30 | 31 | // MEDIA QUERIES 32 | // ------------------ 33 | 34 | // Large desktops 35 | @import "responsive-1200px-min.less"; 36 | 37 | // Tablets to regular desktops 38 | @import "responsive-768px-979px.less"; 39 | 40 | // Phones to portrait tablets and narrow desktops 41 | @import "responsive-767px-max.less"; 42 | 43 | 44 | // RESPONSIVE NAVBAR 45 | // ------------------ 46 | 47 | // From 979px and below, show a button to toggle navbar contents 48 | @import "responsive-navbar.less"; 49 | -------------------------------------------------------------------------------- /less/adapter/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | // Image thumbnails 6 | // 7 | // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. 8 | .img-polaroid { 9 | padding: @thumbnail-padding; 10 | line-height: @line-height-base; 11 | background-color: @thumbnail-bg; 12 | border: 1px solid @thumbnail-border; 13 | border-radius: @thumbnail-border-radius; 14 | .transition(all .2s ease-in-out); 15 | 16 | // Keep them at most 100% wide 17 | .img-responsive(inline-block); 18 | } 19 | -------------------------------------------------------------------------------- /less/adapter/tables.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tables 3 | // -------------------------------------------------- 4 | 5 | .table-row-variant(error; @state-danger-bg); -------------------------------------------------------------------------------- /less/adapter/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files 7 | 8 | // Make wrapper ul behave like the grid 9 | .thumbnails { 10 | margin-left: -@gridGutterWidth; 11 | list-style: none; 12 | .clearfix(); 13 | } 14 | // Fluid rows have no left margin 15 | .row-fluid .thumbnails { 16 | margin-left: 0; 17 | } 18 | 19 | // Float li to make thumbnails appear in a row 20 | .thumbnails > li { 21 | float: left; // Explicity set the float since we don't require .span* classes 22 | margin-bottom: @baseLineHeight; 23 | margin-left: @gridGutterWidth; 24 | } 25 | 26 | // The actual thumbnail (can be `a` or `div`) 27 | .thumbnail { 28 | display: block; 29 | padding: 4px; 30 | line-height: @baseLineHeight; 31 | border: 1px solid #ddd; 32 | .border-radius(@baseBorderRadius); 33 | .box-shadow(0 1px 3px rgba(0,0,0,.055)); 34 | .transition(all .2s ease-in-out); 35 | } 36 | // Add a hover/focus state for linked versions only 37 | a.thumbnail:hover, 38 | a.thumbnail:focus { 39 | border-color: @linkColor; 40 | .box-shadow(0 1px 4px rgba(0,105,214,.25)); 41 | } 42 | 43 | // Images and captions 44 | .thumbnail > img { 45 | display: block; 46 | max-width: 100%; 47 | margin-left: auto; 48 | margin-right: auto; 49 | } 50 | .thumbnail .caption { 51 | padding: 9px; 52 | color: @gray; 53 | } 54 | -------------------------------------------------------------------------------- /less/adapter/type.less: -------------------------------------------------------------------------------- 1 | // 2 | // Typography 3 | // -------------------------------------------------- 4 | 5 | // Contextual colors 6 | .muted { 7 | color: @text-muted; 8 | } 9 | 10 | // Single-line list items 11 | ul.inline, 12 | ol.inline { 13 | margin-left: 0; 14 | list-style: none; 15 | > li { 16 | display: inline-block; 17 | .ie7-inline-block(); 18 | padding-left: 5px; 19 | padding-right: 5px; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /less/adapter/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | // Sizes 6 | .well-large { 7 | padding: 24px; 8 | border-radius: @border-radius-large; 9 | } 10 | .well-small { 11 | padding: 9px; 12 | border-radius: @border-radius-small; 13 | } 14 | -------------------------------------------------------------------------------- /less/bootstrap2/accordion.less: -------------------------------------------------------------------------------- 1 | // 2 | // Accordion 3 | // -------------------------------------------------- 4 | 5 | 6 | // Parent container 7 | .accordion { 8 | margin-bottom: @baseLineHeight; 9 | } 10 | 11 | // Group == heading + body 12 | .accordion-group { 13 | margin-bottom: 2px; 14 | border: 1px solid #e5e5e5; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .accordion-heading { 18 | border-bottom: 0; 19 | } 20 | .accordion-heading .accordion-toggle { 21 | display: block; 22 | padding: 8px 15px; 23 | } 24 | 25 | // General toggle styles 26 | .accordion-toggle { 27 | cursor: pointer; 28 | } 29 | 30 | // Inner needs the styles because you can't animate properly with any styles on the element 31 | .accordion-inner { 32 | padding: 9px 15px; 33 | border-top: 1px solid #e5e5e5; 34 | } 35 | -------------------------------------------------------------------------------- /less/bootstrap2/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: 8px 35px 8px 14px; 11 | margin-bottom: @baseLineHeight; 12 | text-shadow: 0 1px 0 rgba(255,255,255,.5); 13 | background-color: @warningBackground; 14 | border: 1px solid @warningBorder; 15 | .border-radius(@baseBorderRadius); 16 | } 17 | .alert, 18 | .alert h4 { 19 | // Specified for the h4 to prevent conflicts of changing @headingsColor 20 | color: @warningText; 21 | } 22 | .alert h4 { 23 | margin: 0; 24 | } 25 | 26 | // Adjust close link position 27 | .alert .close { 28 | position: relative; 29 | top: -2px; 30 | right: -21px; 31 | line-height: @baseLineHeight; 32 | } 33 | 34 | 35 | // Alternate styles 36 | // ------------------------- 37 | 38 | .alert-success { 39 | background-color: @successBackground; 40 | border-color: @successBorder; 41 | color: @successText; 42 | } 43 | .alert-success h4 { 44 | color: @successText; 45 | } 46 | .alert-danger, 47 | .alert-error { 48 | background-color: @errorBackground; 49 | border-color: @errorBorder; 50 | color: @errorText; 51 | } 52 | .alert-danger h4, 53 | .alert-error h4 { 54 | color: @errorText; 55 | } 56 | .alert-info { 57 | background-color: @infoBackground; 58 | border-color: @infoBorder; 59 | color: @infoText; 60 | } 61 | .alert-info h4 { 62 | color: @infoText; 63 | } 64 | 65 | 66 | // Block alerts 67 | // ------------------------- 68 | 69 | .alert-block { 70 | padding-top: 14px; 71 | padding-bottom: 14px; 72 | } 73 | .alert-block > p, 74 | .alert-block > ul { 75 | margin-bottom: 0; 76 | } 77 | .alert-block p + p { 78 | margin-top: 5px; 79 | } 80 | -------------------------------------------------------------------------------- /less/bootstrap2/bootstrap.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v2.3.2 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | // Core variables and mixins 12 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 13 | @import "mixins.less"; 14 | 15 | // CSS Reset 16 | @import "reset.less"; 17 | 18 | // Grid system and page structure 19 | @import "scaffolding.less"; 20 | @import "grid.less"; 21 | @import "layouts.less"; 22 | 23 | // Base CSS 24 | @import "type.less"; 25 | @import "code.less"; 26 | @import "forms.less"; 27 | @import "tables.less"; 28 | 29 | // Components: common 30 | @import "sprites.less"; 31 | @import "dropdowns.less"; 32 | @import "wells.less"; 33 | @import "component-animations.less"; 34 | @import "close.less"; 35 | 36 | // Components: Buttons & Alerts 37 | @import "buttons.less"; 38 | @import "button-groups.less"; 39 | @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less 40 | 41 | // Components: Nav 42 | @import "navs.less"; 43 | @import "navbar.less"; 44 | @import "breadcrumbs.less"; 45 | @import "pagination.less"; 46 | @import "pager.less"; 47 | 48 | // Components: Popovers 49 | @import "modals.less"; 50 | @import "tooltip.less"; 51 | @import "popovers.less"; 52 | 53 | // Components: Misc 54 | @import "thumbnails.less"; 55 | @import "media.less"; 56 | @import "labels-badges.less"; 57 | @import "progress-bars.less"; 58 | @import "accordion.less"; 59 | @import "carousel.less"; 60 | @import "hero-unit.less"; 61 | 62 | // Utility classes 63 | @import "utilities.less"; // Has to be last to override when necessary 64 | 65 | // > Joomla JUI 66 | 67 | /* Joomla JUI NOTE: Original .modal definition has to be commented in modals.less and responsive-767px-max.less */ 68 | 69 | @import "modals.joomla.less"; 70 | @import "responsive-767px-max.joomla.less"; 71 | // < Joomla JUI 72 | -------------------------------------------------------------------------------- /less/bootstrap2/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: 8px 15px; 8 | margin: 0 0 @baseLineHeight; 9 | list-style: none; 10 | background-color: #f5f5f5; 11 | .border-radius(@baseBorderRadius); 12 | > li { 13 | display: inline-block; 14 | .ie7-inline-block(); 15 | text-shadow: 0 1px 0 @white; 16 | > .divider { 17 | padding: 0 5px; 18 | color: #ccc; 19 | } 20 | } 21 | > .active { 22 | color: @grayLight; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /less/bootstrap2/carousel.less: -------------------------------------------------------------------------------- 1 | // 2 | // Carousel 3 | // -------------------------------------------------- 4 | 5 | 6 | .carousel { 7 | position: relative; 8 | margin-bottom: @baseLineHeight; 9 | line-height: 1; 10 | } 11 | 12 | .carousel-inner { 13 | overflow: hidden; 14 | width: 100%; 15 | position: relative; 16 | } 17 | 18 | .carousel-inner { 19 | 20 | > .item { 21 | display: none; 22 | position: relative; 23 | .transition(.6s ease-in-out left); 24 | 25 | // Account for jankitude on images 26 | > img, 27 | > a > img { 28 | display: block; 29 | line-height: 1; 30 | } 31 | } 32 | 33 | > .active, 34 | > .next, 35 | > .prev { display: block; } 36 | 37 | > .active { 38 | left: 0; 39 | } 40 | 41 | > .next, 42 | > .prev { 43 | position: absolute; 44 | top: 0; 45 | width: 100%; 46 | } 47 | 48 | > .next { 49 | left: 100%; 50 | } 51 | > .prev { 52 | left: -100%; 53 | } 54 | > .next.left, 55 | > .prev.right { 56 | left: 0; 57 | } 58 | 59 | > .active.left { 60 | left: -100%; 61 | } 62 | > .active.right { 63 | left: 100%; 64 | } 65 | 66 | } 67 | 68 | // Left/right controls for nav 69 | // --------------------------- 70 | 71 | .carousel-control { 72 | position: absolute; 73 | top: 40%; 74 | left: 15px; 75 | width: 40px; 76 | height: 40px; 77 | margin-top: -20px; 78 | font-size: 60px; 79 | font-weight: 100; 80 | line-height: 30px; 81 | color: @white; 82 | text-align: center; 83 | background: @grayDarker; 84 | border: 3px solid @white; 85 | .border-radius(23px); 86 | .opacity(50); 87 | 88 | // we can't have this transition here 89 | // because webkit cancels the carousel 90 | // animation if you trip this while 91 | // in the middle of another animation 92 | // ;_; 93 | // .transition(opacity .2s linear); 94 | 95 | // Reposition the right one 96 | &.right { 97 | left: auto; 98 | right: 15px; 99 | } 100 | 101 | // Hover/focus state 102 | &:hover, 103 | &:focus { 104 | color: @white; 105 | text-decoration: none; 106 | .opacity(90); 107 | } 108 | } 109 | 110 | // Carousel indicator pips 111 | // ----------------------------- 112 | .carousel-indicators { 113 | position: absolute; 114 | top: 15px; 115 | right: 15px; 116 | z-index: 5; 117 | margin: 0; 118 | list-style: none; 119 | 120 | li { 121 | display: block; 122 | float: left; 123 | width: 10px; 124 | height: 10px; 125 | margin-left: 5px; 126 | text-indent: -999px; 127 | background-color: #ccc; 128 | background-color: rgba(255,255,255,.25); 129 | border-radius: 5px; 130 | } 131 | .active { 132 | background-color: #fff; 133 | } 134 | } 135 | 136 | // Caption for text below images 137 | // ----------------------------- 138 | 139 | .carousel-caption { 140 | position: absolute; 141 | left: 0; 142 | right: 0; 143 | bottom: 0; 144 | padding: 15px; 145 | background: @grayDark; 146 | background: rgba(0,0,0,.75); 147 | } 148 | .carousel-caption h4, 149 | .carousel-caption p { 150 | color: @white; 151 | line-height: @baseLineHeight; 152 | } 153 | .carousel-caption h4 { 154 | margin: 0 0 5px; 155 | } 156 | .carousel-caption p { 157 | margin-bottom: 0; 158 | } 159 | -------------------------------------------------------------------------------- /less/bootstrap2/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: 20px; 9 | font-weight: bold; 10 | line-height: @baseLineHeight; 11 | color: @black; 12 | text-shadow: 0 1px 0 rgba(255,255,255,1); 13 | .opacity(20); 14 | &:hover, 15 | &:focus { 16 | color: @black; 17 | text-decoration: none; 18 | cursor: pointer; 19 | .opacity(40); 20 | } 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button.close { 27 | padding: 3; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | -------------------------------------------------------------------------------- /less/bootstrap2/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and blocK) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | pre { 9 | padding: 0 3px 2px; 10 | #font > #family > .monospace; 11 | font-size: @baseFontSize - 2; 12 | color: @grayDark; 13 | .border-radius(3px); 14 | } 15 | 16 | // Inline code 17 | code { 18 | padding: 2px 4px; 19 | color: #d14; 20 | background-color: #f7f7f9; 21 | border: 1px solid #e1e1e8; 22 | white-space: nowrap; 23 | } 24 | 25 | // Blocks of code 26 | pre { 27 | display: block; 28 | padding: (@baseLineHeight - 1) / 2; 29 | margin: 0 0 @baseLineHeight / 2; 30 | font-size: @baseFontSize - 1; // 14px to 13px 31 | line-height: @baseLineHeight; 32 | word-break: break-all; 33 | word-wrap: break-word; 34 | white-space: pre; 35 | white-space: pre-wrap; 36 | background-color: #f5f5f5; 37 | border: 1px solid #ccc; // fallback for IE7-8 38 | border: 1px solid rgba(0,0,0,.15); 39 | .border-radius(@baseBorderRadius); 40 | 41 | // Make prettyprint styles more spaced out for readability 42 | &.prettyprint { 43 | margin-bottom: @baseLineHeight; 44 | } 45 | 46 | // Account for some code outputs that place code tags in pre tags 47 | code { 48 | padding: 0; 49 | color: inherit; 50 | white-space: pre; 51 | white-space: pre-wrap; 52 | background-color: transparent; 53 | border: 0; 54 | } 55 | } 56 | 57 | // Enable scrollable blocks of code 58 | .pre-scrollable { 59 | max-height: 340px; 60 | overflow-y: scroll; 61 | } -------------------------------------------------------------------------------- /less/bootstrap2/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | 6 | .fade { 7 | opacity: 0; 8 | .transition(opacity .15s linear); 9 | &.in { 10 | opacity: 1; 11 | } 12 | } 13 | 14 | .collapse { 15 | position: relative; 16 | height: 0; 17 | overflow: hidden; 18 | .transition(height .35s ease); 19 | &.in { 20 | height: auto; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /less/bootstrap2/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Fixed (940px) 7 | #grid > .core(@gridColumnWidth, @gridGutterWidth); 8 | 9 | // Fluid (940px) 10 | #grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); 11 | 12 | // Reset utility classes due to specificity 13 | [class*="span"].hide, 14 | .row-fluid [class*="span"].hide { 15 | display: none; 16 | } 17 | 18 | [class*="span"].pull-right, 19 | .row-fluid [class*="span"].pull-right { 20 | float: right; 21 | } 22 | -------------------------------------------------------------------------------- /less/bootstrap2/hero-unit.less: -------------------------------------------------------------------------------- 1 | // 2 | // Hero unit 3 | // -------------------------------------------------- 4 | 5 | 6 | .hero-unit { 7 | padding: 60px; 8 | margin-bottom: 30px; 9 | font-size: 18px; 10 | font-weight: 200; 11 | line-height: @baseLineHeight * 1.5; 12 | color: @heroUnitLeadColor; 13 | background-color: @heroUnitBackground; 14 | .border-radius(6px); 15 | h1 { 16 | margin-bottom: 0; 17 | font-size: 60px; 18 | line-height: 1; 19 | color: @heroUnitHeadingColor; 20 | letter-spacing: -1px; 21 | } 22 | li { 23 | line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /less/bootstrap2/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /less/bootstrap2/labels-badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels and badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .label, 8 | .badge { 9 | display: inline-block; 10 | padding: 2px 4px; 11 | font-size: @baseFontSize * .846; 12 | font-weight: bold; 13 | line-height: 14px; // ensure proper line-height if floated 14 | color: @white; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 18 | background-color: @grayLight; 19 | } 20 | // Set unique padding and border-radii 21 | .label { 22 | .border-radius(3px); 23 | } 24 | .badge { 25 | padding-left: 9px; 26 | padding-right: 9px; 27 | .border-radius(9px); 28 | } 29 | 30 | // Empty labels/badges collapse 31 | .label, 32 | .badge { 33 | &:empty { 34 | display: none; 35 | } 36 | } 37 | 38 | // Hover/focus state, but only for links 39 | a { 40 | &.label:hover, 41 | &.label:focus, 42 | &.badge:hover, 43 | &.badge:focus { 44 | color: @white; 45 | text-decoration: none; 46 | cursor: pointer; 47 | } 48 | } 49 | 50 | // Colors 51 | // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) 52 | .label, 53 | .badge { 54 | // Important (red) 55 | &-important { background-color: @errorText; } 56 | &-important[href] { background-color: darken(@errorText, 10%); } 57 | // Warnings (orange) 58 | &-warning { background-color: @orange; } 59 | &-warning[href] { background-color: darken(@orange, 10%); } 60 | // Success (green) 61 | &-success { background-color: @successText; } 62 | &-success[href] { background-color: darken(@successText, 10%); } 63 | // Info (turquoise) 64 | &-info { background-color: @infoText; } 65 | &-info[href] { background-color: darken(@infoText, 10%); } 66 | // Inverse (black) 67 | &-inverse { background-color: @grayDark; } 68 | &-inverse[href] { background-color: darken(@grayDark, 10%); } 69 | } 70 | 71 | // Quick fix for labels/badges in buttons 72 | .btn { 73 | .label, 74 | .badge { 75 | position: relative; 76 | top: -1px; 77 | } 78 | } 79 | .btn-mini { 80 | .label, 81 | .badge { 82 | top: 0; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /less/bootstrap2/layouts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Layouts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container (centered, fixed-width layouts) 7 | .container { 8 | .container-fixed(); 9 | } 10 | 11 | // Fluid layouts (left aligned, with sidebar, min- & max-width content) 12 | .container-fluid { 13 | padding-right: @gridGutterWidth; 14 | padding-left: @gridGutterWidth; 15 | .clearfix(); 16 | } -------------------------------------------------------------------------------- /less/bootstrap2/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | *overflow: visible; 14 | zoom: 1; 15 | } 16 | 17 | // Proper spacing between instances of .media 18 | .media, 19 | .media .media { 20 | margin-top: 15px; 21 | } 22 | .media:first-child { 23 | margin-top: 0; 24 | } 25 | 26 | // For images and videos, set to block 27 | .media-object { 28 | display: block; 29 | } 30 | 31 | // Reset margins on headings for tighter default spacing 32 | .media-heading { 33 | margin: 0 0 5px; 34 | } 35 | 36 | 37 | // Media image alignment 38 | // ------------------------- 39 | 40 | .media > .pull-left { 41 | margin-right: 10px; 42 | } 43 | .media > .pull-right { 44 | margin-left: 10px; 45 | } 46 | 47 | 48 | // Media list variation 49 | // ------------------------- 50 | 51 | // Undo default ul/ol styles 52 | .media-list { 53 | margin-left: 0; 54 | list-style: none; 55 | } 56 | -------------------------------------------------------------------------------- /less/bootstrap2/modals.joomla.less: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // -------------------------------------------------- 4 | 5 | /* Joomla JUI NOTE: Original .modal definition has to be commented */ 6 | 7 | // > Joomla JUI 8 | // Base modal 9 | div.modal { 10 | position: fixed; 11 | top: 10%; 12 | left: 50%; 13 | z-index: @zindexModal; 14 | width: 580px; 15 | margin-left: -280px; 16 | background-color: @white; 17 | border: 1px solid #999; 18 | border: 1px solid rgba(0,0,0,.3); 19 | *border: 1px solid #999; /* IE6-7 */ 20 | .border-radius(6px); 21 | .box-shadow(0 3px 7px rgba(0,0,0,0.3)); 22 | .background-clip(padding-box); 23 | // Remove focus outline from opened modal 24 | outline: none; 25 | 26 | &.fade { 27 | .transition(e('opacity .3s linear, top .3s ease-out')); 28 | top: -25%; 29 | } 30 | &.fade.in { top: 10%; } 31 | } 32 | //Modal for Batch views 33 | .modal-batch { 34 | overflow-y: visible; 35 | } 36 | // < Joomla JUI 37 | -------------------------------------------------------------------------------- /less/bootstrap2/modals.less: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // -------------------------------------------------- 4 | 5 | // Background 6 | .modal-backdrop { 7 | position: fixed; 8 | top: 0; 9 | right: 0; 10 | bottom: 0; 11 | left: 0; 12 | z-index: @zindexModalBackdrop; 13 | background-color: @black; 14 | // Fade for backdrop 15 | &.fade { opacity: 0; } 16 | } 17 | 18 | .modal-backdrop, 19 | .modal-backdrop.fade.in { 20 | .opacity(80); 21 | } 22 | 23 | // Base modal 24 | // > Joomla JUI 25 | // .modal REMOVED 26 | // < Joomla JUI 27 | 28 | .modal-header { 29 | padding: 9px 15px; 30 | border-bottom: 1px solid #eee; 31 | // Close icon 32 | .close { margin-top: 2px; } 33 | // Heading 34 | h3 { 35 | margin: 0; 36 | line-height: 30px; 37 | } 38 | } 39 | 40 | // Body (where all modal content resides) 41 | .modal-body { 42 | position: relative; 43 | overflow-y: auto; 44 | max-height: 400px; 45 | padding: 15px; 46 | } 47 | // Remove bottom margin if need be 48 | .modal-form { 49 | margin-bottom: 0; 50 | } 51 | 52 | // Footer (for actions) 53 | .modal-footer { 54 | padding: 14px 15px 15px; 55 | margin-bottom: 0; 56 | text-align: right; // right align buttons 57 | background-color: #f5f5f5; 58 | border-top: 1px solid #ddd; 59 | .border-radius(0 0 6px 6px); 60 | .box-shadow(inset 0 1px 0 @white); 61 | .clearfix(); // clear it in case folks use .pull-* classes on buttons 62 | 63 | // Properly space out buttons 64 | .btn + .btn { 65 | margin-left: 5px; 66 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs 67 | } 68 | // but override that for button groups 69 | .btn-group .btn + .btn { 70 | margin-left: -1px; 71 | } 72 | // and override it for block buttons as well 73 | .btn-block + .btn-block { 74 | margin-left: 0; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /less/bootstrap2/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | margin: @baseLineHeight 0; 8 | list-style: none; 9 | text-align: center; 10 | .clearfix(); 11 | } 12 | .pager li { 13 | display: inline; 14 | } 15 | .pager li > a, 16 | .pager li > span { 17 | display: inline-block; 18 | padding: 5px 14px; 19 | background-color: #fff; 20 | border: 1px solid #ddd; 21 | .border-radius(15px); 22 | } 23 | .pager li > a:hover, 24 | .pager li > a:focus { 25 | text-decoration: none; 26 | background-color: #f5f5f5; 27 | } 28 | .pager .next > a, 29 | .pager .next > span { 30 | float: right; 31 | } 32 | .pager .previous > a, 33 | .pager .previous > span { 34 | float: left; 35 | } 36 | .pager .disabled > a, 37 | .pager .disabled > a:hover, 38 | .pager .disabled > a:focus, 39 | .pager .disabled > span { 40 | color: @grayLight; 41 | background-color: #fff; 42 | cursor: default; 43 | } -------------------------------------------------------------------------------- /less/bootstrap2/pagination.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination (multiple pages) 3 | // -------------------------------------------------- 4 | 5 | // Space out pagination from surrounding content 6 | .pagination { 7 | margin: @baseLineHeight 0; 8 | } 9 | 10 | .pagination ul { 11 | // Allow for text-based alignment 12 | display: inline-block; 13 | .ie7-inline-block(); 14 | // Reset default ul styles 15 | margin-left: 0; 16 | margin-bottom: 0; 17 | // Visuals 18 | .border-radius(@baseBorderRadius); 19 | .box-shadow(0 1px 2px rgba(0,0,0,.05)); 20 | } 21 | .pagination ul > li { 22 | display: inline; // Remove list-style and block-level defaults 23 | } 24 | .pagination ul > li > a, 25 | .pagination ul > li > span { 26 | float: left; // Collapse white-space 27 | padding: 4px 12px; 28 | line-height: @baseLineHeight; 29 | text-decoration: none; 30 | background-color: @paginationBackground; 31 | border: 1px solid @paginationBorder; 32 | border-left-width: 0; 33 | } 34 | .pagination ul > li > a:hover, 35 | .pagination ul > li > a:focus, 36 | .pagination ul > .active > a, 37 | .pagination ul > .active > span { 38 | background-color: @paginationActiveBackground; 39 | } 40 | .pagination ul > .active > a, 41 | .pagination ul > .active > span { 42 | color: @grayLight; 43 | cursor: default; 44 | } 45 | .pagination ul > .disabled > span, 46 | .pagination ul > .disabled > a, 47 | .pagination ul > .disabled > a:hover, 48 | .pagination ul > .disabled > a:focus { 49 | color: @grayLight; 50 | background-color: transparent; 51 | cursor: default; 52 | } 53 | .pagination ul > li:first-child > a, 54 | .pagination ul > li:first-child > span { 55 | border-left-width: 1px; 56 | .border-left-radius(@baseBorderRadius); 57 | } 58 | .pagination ul > li:last-child > a, 59 | .pagination ul > li:last-child > span { 60 | .border-right-radius(@baseBorderRadius); 61 | } 62 | 63 | 64 | // Alignment 65 | // -------------------------------------------------- 66 | 67 | .pagination-centered { 68 | text-align: center; 69 | } 70 | .pagination-right { 71 | text-align: right; 72 | } 73 | 74 | 75 | // Sizing 76 | // -------------------------------------------------- 77 | 78 | // Large 79 | .pagination-large { 80 | ul > li > a, 81 | ul > li > span { 82 | padding: @paddingLarge; 83 | font-size: @fontSizeLarge; 84 | } 85 | ul > li:first-child > a, 86 | ul > li:first-child > span { 87 | .border-left-radius(@borderRadiusLarge); 88 | } 89 | ul > li:last-child > a, 90 | ul > li:last-child > span { 91 | .border-right-radius(@borderRadiusLarge); 92 | } 93 | } 94 | 95 | // Small and mini 96 | .pagination-mini, 97 | .pagination-small { 98 | ul > li:first-child > a, 99 | ul > li:first-child > span { 100 | .border-left-radius(@borderRadiusSmall); 101 | } 102 | ul > li:last-child > a, 103 | ul > li:last-child > span { 104 | .border-right-radius(@borderRadiusSmall); 105 | } 106 | } 107 | 108 | // Small 109 | .pagination-small { 110 | ul > li > a, 111 | ul > li > span { 112 | padding: @paddingSmall; 113 | font-size: @fontSizeSmall; 114 | } 115 | } 116 | // Mini 117 | .pagination-mini { 118 | ul > li > a, 119 | ul > li > span { 120 | padding: @paddingMini; 121 | font-size: @fontSizeMini; 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /less/bootstrap2/popovers.less: -------------------------------------------------------------------------------- 1 | // 2 | // Popovers 3 | // -------------------------------------------------- 4 | 5 | 6 | .popover { 7 | position: absolute; 8 | top: 0; 9 | left: 0; 10 | z-index: @zindexPopover; 11 | display: none; 12 | max-width: 276px; 13 | padding: 1px; 14 | text-align: left; // Reset given new insertion method 15 | background-color: @popoverBackground; 16 | -webkit-background-clip: padding-box; 17 | -moz-background-clip: padding; 18 | background-clip: padding-box; 19 | border: 1px solid #ccc; 20 | border: 1px solid rgba(0,0,0,.2); 21 | .border-radius(6px); 22 | .box-shadow(0 5px 10px rgba(0,0,0,.2)); 23 | 24 | // Overrides for proper insertion 25 | white-space: normal; 26 | 27 | // Offset the popover to account for the popover arrow 28 | &.top { margin-top: -10px; } 29 | &.right { margin-left: 10px; } 30 | &.bottom { margin-top: 10px; } 31 | &.left { margin-left: -10px; } 32 | } 33 | 34 | .popover-title { 35 | margin: 0; // reset heading margin 36 | padding: 8px 14px; 37 | font-size: 14px; 38 | font-weight: normal; 39 | line-height: 18px; 40 | background-color: @popoverTitleBackground; 41 | border-bottom: 1px solid darken(@popoverTitleBackground, 5%); 42 | .border-radius(5px 5px 0 0); 43 | 44 | &:empty { 45 | display: none; 46 | } 47 | } 48 | 49 | .popover-content { 50 | padding: 9px 14px; 51 | } 52 | 53 | // Arrows 54 | // 55 | // .arrow is outer, .arrow:after is inner 56 | 57 | .popover .arrow, 58 | .popover .arrow:after { 59 | position: absolute; 60 | display: block; 61 | width: 0; 62 | height: 0; 63 | border-color: transparent; 64 | border-style: solid; 65 | } 66 | .popover .arrow { 67 | border-width: @popoverArrowOuterWidth; 68 | } 69 | .popover .arrow:after { 70 | border-width: @popoverArrowWidth; 71 | content: ""; 72 | } 73 | 74 | .popover { 75 | &.top .arrow { 76 | left: 50%; 77 | margin-left: -@popoverArrowOuterWidth; 78 | border-bottom-width: 0; 79 | border-top-color: #999; // IE8 fallback 80 | border-top-color: @popoverArrowOuterColor; 81 | bottom: -@popoverArrowOuterWidth; 82 | &:after { 83 | bottom: 1px; 84 | margin-left: -@popoverArrowWidth; 85 | border-bottom-width: 0; 86 | border-top-color: @popoverArrowColor; 87 | } 88 | } 89 | &.right .arrow { 90 | top: 50%; 91 | left: -@popoverArrowOuterWidth; 92 | margin-top: -@popoverArrowOuterWidth; 93 | border-left-width: 0; 94 | border-right-color: #999; // IE8 fallback 95 | border-right-color: @popoverArrowOuterColor; 96 | &:after { 97 | left: 1px; 98 | bottom: -@popoverArrowWidth; 99 | border-left-width: 0; 100 | border-right-color: @popoverArrowColor; 101 | } 102 | } 103 | &.bottom .arrow { 104 | left: 50%; 105 | margin-left: -@popoverArrowOuterWidth; 106 | border-top-width: 0; 107 | border-bottom-color: #999; // IE8 fallback 108 | border-bottom-color: @popoverArrowOuterColor; 109 | top: -@popoverArrowOuterWidth; 110 | &:after { 111 | top: 1px; 112 | margin-left: -@popoverArrowWidth; 113 | border-top-width: 0; 114 | border-bottom-color: @popoverArrowColor; 115 | } 116 | } 117 | 118 | &.left .arrow { 119 | top: 50%; 120 | right: -@popoverArrowOuterWidth; 121 | margin-top: -@popoverArrowOuterWidth; 122 | border-right-width: 0; 123 | border-left-color: #999; // IE8 fallback 124 | border-left-color: @popoverArrowOuterColor; 125 | &:after { 126 | right: 1px; 127 | border-right-width: 0; 128 | border-left-color: @popoverArrowColor; 129 | bottom: -@popoverArrowWidth; 130 | } 131 | } 132 | 133 | } 134 | -------------------------------------------------------------------------------- /less/bootstrap2/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // ANIMATIONS 7 | // ---------- 8 | 9 | // Webkit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Firefox 16 | @-moz-keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | // IE9 22 | @-ms-keyframes progress-bar-stripes { 23 | from { background-position: 40px 0; } 24 | to { background-position: 0 0; } 25 | } 26 | 27 | // Opera 28 | @-o-keyframes progress-bar-stripes { 29 | from { background-position: 0 0; } 30 | to { background-position: 40px 0; } 31 | } 32 | 33 | // Spec 34 | @keyframes progress-bar-stripes { 35 | from { background-position: 40px 0; } 36 | to { background-position: 0 0; } 37 | } 38 | 39 | 40 | 41 | // THE BARS 42 | // -------- 43 | 44 | // Outer container 45 | .progress { 46 | overflow: hidden; 47 | height: @baseLineHeight; 48 | margin-bottom: @baseLineHeight; 49 | #gradient > .vertical(#f5f5f5, #f9f9f9); 50 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 51 | .border-radius(@baseBorderRadius); 52 | } 53 | 54 | // Bar of progress 55 | .progress .bar { 56 | width: 0%; 57 | height: 100%; 58 | color: @white; 59 | float: left; 60 | font-size: 12px; 61 | text-align: center; 62 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 63 | #gradient > .vertical(#149bdf, #0480be); 64 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 65 | .box-sizing(border-box); 66 | .transition(width .6s ease); 67 | } 68 | .progress .bar + .bar { 69 | .box-shadow(~"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)"); 70 | } 71 | 72 | // Striped bars 73 | .progress-striped .bar { 74 | #gradient > .striped(#149bdf); 75 | .background-size(40px 40px); 76 | } 77 | 78 | // Call animation for the active one 79 | .progress.active .bar { 80 | -webkit-animation: progress-bar-stripes 2s linear infinite; 81 | -moz-animation: progress-bar-stripes 2s linear infinite; 82 | -ms-animation: progress-bar-stripes 2s linear infinite; 83 | -o-animation: progress-bar-stripes 2s linear infinite; 84 | animation: progress-bar-stripes 2s linear infinite; 85 | } 86 | 87 | 88 | 89 | // COLORS 90 | // ------ 91 | 92 | // Danger (red) 93 | .progress-danger .bar, .progress .bar-danger { 94 | #gradient > .vertical(#ee5f5b, #c43c35); 95 | } 96 | .progress-danger.progress-striped .bar, .progress-striped .bar-danger { 97 | #gradient > .striped(#ee5f5b); 98 | } 99 | 100 | // Success (green) 101 | .progress-success .bar, .progress .bar-success { 102 | #gradient > .vertical(#62c462, #57a957); 103 | } 104 | .progress-success.progress-striped .bar, .progress-striped .bar-success { 105 | #gradient > .striped(#62c462); 106 | } 107 | 108 | // Info (teal) 109 | .progress-info .bar, .progress .bar-info { 110 | #gradient > .vertical(#5bc0de, #339bb9); 111 | } 112 | .progress-info.progress-striped .bar, .progress-striped .bar-info { 113 | #gradient > .striped(#5bc0de); 114 | } 115 | 116 | // Warning (orange) 117 | .progress-warning .bar, .progress .bar-warning { 118 | #gradient > .vertical(lighten(@orange, 15%), @orange); 119 | } 120 | .progress-warning.progress-striped .bar, .progress-striped .bar-warning { 121 | #gradient > .striped(lighten(@orange, 15%)); 122 | } 123 | -------------------------------------------------------------------------------- /less/bootstrap2/reset.less: -------------------------------------------------------------------------------- 1 | // 2 | // Reset CSS 3 | // Adapted from http://github.com/necolas/normalize.css 4 | // -------------------------------------------------- 5 | 6 | 7 | // Display in IE6-9 and FF3 8 | // ------------------------- 9 | 10 | article, 11 | aside, 12 | details, 13 | figcaption, 14 | figure, 15 | footer, 16 | header, 17 | hgroup, 18 | nav, 19 | section { 20 | display: block; 21 | } 22 | 23 | // Display block in IE6-9 and FF3 24 | // ------------------------- 25 | 26 | audio, 27 | canvas, 28 | video { 29 | display: inline-block; 30 | *display: inline; 31 | *zoom: 1; 32 | } 33 | 34 | // Prevents modern browsers from displaying 'audio' without controls 35 | // ------------------------- 36 | 37 | audio:not([controls]) { 38 | display: none; 39 | } 40 | 41 | // Base settings 42 | // ------------------------- 43 | 44 | html { 45 | font-size: 100%; 46 | -webkit-text-size-adjust: 100%; 47 | -ms-text-size-adjust: 100%; 48 | } 49 | // Focus states 50 | a:focus { 51 | .tab-focus(); 52 | } 53 | // Hover & Active 54 | a:hover, 55 | a:active { 56 | outline: 0; 57 | } 58 | 59 | // Prevents sub and sup affecting line-height in all browsers 60 | // ------------------------- 61 | 62 | sub, 63 | sup { 64 | position: relative; 65 | font-size: 75%; 66 | line-height: 0; 67 | vertical-align: baseline; 68 | } 69 | sup { 70 | top: -0.5em; 71 | } 72 | sub { 73 | bottom: -0.25em; 74 | } 75 | 76 | // Img border in a's and image quality 77 | // ------------------------- 78 | 79 | img { 80 | /* Responsive images (ensure images don't scale beyond their parents) */ 81 | max-width: 100%; /* Part 1: Set a maxium relative to the parent */ 82 | width: auto\9; /* IE7-8 need help adjusting responsive images */ 83 | height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */ 84 | 85 | vertical-align: middle; 86 | border: 0; 87 | -ms-interpolation-mode: bicubic; 88 | } 89 | 90 | // Prevent max-width from affecting Google Maps 91 | #map_canvas img, 92 | .google-maps img { 93 | max-width: none; 94 | } 95 | 96 | // Forms 97 | // ------------------------- 98 | 99 | // Font size in all browsers, margin changes, misc consistency 100 | button, 101 | input, 102 | select, 103 | textarea { 104 | margin: 0; 105 | font-size: 100%; 106 | vertical-align: middle; 107 | } 108 | button, 109 | input { 110 | *overflow: visible; // Inner spacing ie IE6/7 111 | line-height: normal; // FF3/4 have !important on line-height in UA stylesheet 112 | } 113 | button::-moz-focus-inner, 114 | input::-moz-focus-inner { // Inner padding and border oddities in FF3/4 115 | padding: 0; 116 | border: 0; 117 | } 118 | button, 119 | html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 120 | input[type="reset"], 121 | input[type="submit"] { 122 | -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS. 123 | cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. 124 | } 125 | label, 126 | select, 127 | button, 128 | input[type="button"], 129 | input[type="reset"], 130 | input[type="submit"], 131 | input[type="radio"], 132 | input[type="checkbox"] { 133 | cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. 134 | } 135 | input[type="search"] { // Appearance in Safari/Chrome 136 | .box-sizing(content-box); 137 | -webkit-appearance: textfield; 138 | } 139 | input[type="search"]::-webkit-search-decoration, 140 | input[type="search"]::-webkit-search-cancel-button { 141 | -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5 142 | } 143 | textarea { 144 | overflow: auto; // Remove vertical scrollbar in IE6-9 145 | vertical-align: top; // Readability and alignment cross-browser 146 | } 147 | 148 | 149 | // Printing 150 | // ------------------------- 151 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css 152 | 153 | @media print { 154 | 155 | * { 156 | text-shadow: none !important; 157 | color: #000 !important; // Black prints faster: h5bp.com/s 158 | background: transparent !important; 159 | box-shadow: none !important; 160 | } 161 | 162 | a, 163 | a:visited { 164 | text-decoration: underline; 165 | } 166 | 167 | a[href]:after { 168 | content: " (" attr(href) ")"; 169 | } 170 | 171 | abbr[title]:after { 172 | content: " (" attr(title) ")"; 173 | } 174 | 175 | // Don't show links for images, or javascript/internal links 176 | .ir a:after, 177 | a[href^="javascript:"]:after, 178 | a[href^="#"]:after { 179 | content: ""; 180 | } 181 | 182 | pre, 183 | blockquote { 184 | border: 1px solid #999; 185 | page-break-inside: avoid; 186 | } 187 | 188 | thead { 189 | display: table-header-group; // h5bp.com/t 190 | } 191 | 192 | tr, 193 | img { 194 | page-break-inside: avoid; 195 | } 196 | 197 | img { 198 | max-width: 100% !important; 199 | } 200 | 201 | @page { 202 | margin: 0.5cm; 203 | } 204 | 205 | p, 206 | h2, 207 | h3 { 208 | orphans: 3; 209 | widows: 3; 210 | } 211 | 212 | h2, 213 | h3 { 214 | page-break-after: avoid; 215 | } 216 | } 217 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive-1200px-min.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Large desktop and up 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 1200px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); 16 | 17 | // Thumbnails 18 | .thumbnails { 19 | margin-left: -@gridGutterWidth1200; 20 | } 21 | .thumbnails > li { 22 | margin-left: @gridGutterWidth1200; 23 | } 24 | .row-fluid .thumbnails { 25 | margin-left: 0; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive-767px-max.joomla.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Landscape phone to desktop/tablet 3 | // -------------------------------------------------- 4 | 5 | /* Joomla JUI NOTE: Original .modal definition has to be commented */ 6 | 7 | // > Joomla JUI 8 | @media (max-width: 767px) { 9 | 10 | // Modals 11 | div.modal { 12 | position: fixed; 13 | top: 20px; 14 | left: 20px; 15 | right: 20px; 16 | width: auto; 17 | margin: 0; 18 | &.fade { top: -100px; } 19 | &.fade.in { top: 20px; } 20 | } 21 | 22 | } 23 | 24 | // UP TO LANDSCAPE PHONE 25 | // --------------------- 26 | 27 | @media (max-width: 480px) { 28 | 29 | // Modals 30 | div.modal { 31 | top: 10px; 32 | left: 10px; 33 | right: 10px; 34 | } 35 | 36 | } 37 | // < Joomla JUI 38 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive-767px-max.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Landscape phone to desktop/tablet 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (max-width: 767px) { 7 | 8 | // Padding to set content in a bit 9 | body { 10 | padding-left: 20px; 11 | padding-right: 20px; 12 | } 13 | // Negative indent the now static "fixed" navbar 14 | .navbar-fixed-top, 15 | .navbar-fixed-bottom, 16 | .navbar-static-top { 17 | margin-left: -20px; 18 | margin-right: -20px; 19 | } 20 | // Remove padding on container given explicit padding set on body 21 | .container-fluid { 22 | padding: 0; 23 | } 24 | 25 | // TYPOGRAPHY 26 | // ---------- 27 | // Reset horizontal dl 28 | .dl-horizontal { 29 | dt { 30 | float: none; 31 | clear: none; 32 | width: auto; 33 | text-align: left; 34 | } 35 | dd { 36 | margin-left: 0; 37 | } 38 | } 39 | 40 | // GRID & CONTAINERS 41 | // ----------------- 42 | // Remove width from containers 43 | .container { 44 | width: auto; 45 | } 46 | // Fluid rows 47 | .row-fluid { 48 | width: 100%; 49 | } 50 | // Undo negative margin on rows and thumbnails 51 | .row, 52 | .thumbnails { 53 | margin-left: 0; 54 | } 55 | .thumbnails > li { 56 | float: none; 57 | margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present 58 | } 59 | // Make all grid-sized elements block level again 60 | [class*="span"], 61 | .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing 62 | .row-fluid [class*="span"] { 63 | float: none; 64 | display: block; 65 | width: 100%; 66 | margin-left: 0; 67 | .box-sizing(border-box); 68 | } 69 | .span12, 70 | .row-fluid .span12 { 71 | width: 100%; 72 | .box-sizing(border-box); 73 | } 74 | .row-fluid [class*="offset"]:first-child { 75 | margin-left: 0; 76 | } 77 | 78 | // FORM FIELDS 79 | // ----------- 80 | // Make span* classes full width 81 | .input-large, 82 | .input-xlarge, 83 | .input-xxlarge, 84 | input[class*="span"], 85 | select[class*="span"], 86 | textarea[class*="span"], 87 | .uneditable-input { 88 | .input-block-level(); 89 | } 90 | // But don't let it screw up prepend/append inputs 91 | .input-prepend input, 92 | .input-append input, 93 | .input-prepend input[class*="span"], 94 | .input-append input[class*="span"] { 95 | display: inline-block; // redeclare so they don't wrap to new lines 96 | width: auto; 97 | } 98 | .controls-row [class*="span"] + [class*="span"] { 99 | margin-left: 0; 100 | } 101 | 102 | // Modals 103 | // /* >>> JUI >>> */ 104 | // .modal REMOVED 105 | // /* <<< JUI <<< */ 106 | 107 | } 108 | 109 | 110 | 111 | // UP TO LANDSCAPE PHONE 112 | // --------------------- 113 | 114 | @media (max-width: 480px) { 115 | 116 | // Smooth out the collapsing/expanding nav 117 | .nav-collapse { 118 | -webkit-transform: translate3d(0, 0, 0); // activate the GPU 119 | } 120 | 121 | // Block level the page header small tag for readability 122 | .page-header h1 small { 123 | display: block; 124 | line-height: @baseLineHeight; 125 | } 126 | 127 | // Update checkboxes for iOS 128 | input[type="checkbox"], 129 | input[type="radio"] { 130 | border: 1px solid #ccc; 131 | } 132 | 133 | // Remove the horizontal form styles 134 | .form-horizontal { 135 | .control-label { 136 | float: none; 137 | width: auto; 138 | padding-top: 0; 139 | text-align: left; 140 | } 141 | // Move over all input controls and content 142 | .controls { 143 | margin-left: 0; 144 | } 145 | // Move the options list down to align with labels 146 | .control-list { 147 | padding-top: 0; // has to be padding because margin collaspes 148 | } 149 | // Move over buttons in .form-actions to align with .controls 150 | .form-actions { 151 | padding-left: 10px; 152 | padding-right: 10px; 153 | } 154 | } 155 | 156 | // Medias 157 | // Reset float and spacing to stack 158 | .media .pull-left, 159 | .media .pull-right { 160 | float: none; 161 | display: block; 162 | margin-bottom: 10px; 163 | } 164 | // Remove side margins since we stack instead of indent 165 | .media-object { 166 | margin-right: 0; 167 | margin-left: 0; 168 | } 169 | 170 | // Modals 171 | // > Joomla JUI 172 | // .modal REMOVED 173 | // < Joomla JUI 174 | 175 | .modal-header .close { 176 | padding: 10px; 177 | margin: -10px; 178 | } 179 | 180 | // Carousel 181 | .carousel-caption { 182 | position: static; 183 | } 184 | 185 | } 186 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive-768px-979px.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Tablet to desktop 3 | // -------------------------------------------------- 4 | 5 | 6 | @media (min-width: 768px) and (max-width: 979px) { 7 | 8 | // Fixed grid 9 | #grid > .core(@gridColumnWidth768, @gridGutterWidth768); 10 | 11 | // Fluid grid 12 | #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); 13 | 14 | // Input grid 15 | #grid > .input(@gridColumnWidth768, @gridGutterWidth768); 16 | 17 | // No need to reset .thumbnails here since it's the same @gridGutterWidth 18 | 19 | } 20 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive-navbar.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Navbar 3 | // -------------------------------------------------- 4 | 5 | 6 | // TABLETS AND BELOW 7 | // ----------------- 8 | @media (max-width: @navbarCollapseWidth) { 9 | 10 | // UNFIX THE TOPBAR 11 | // ---------------- 12 | // Remove any padding from the body 13 | body { 14 | padding-top: 0; 15 | } 16 | // Unfix the navbars 17 | .navbar-fixed-top, 18 | .navbar-fixed-bottom { 19 | position: static; 20 | } 21 | .navbar-fixed-top { 22 | margin-bottom: @baseLineHeight; 23 | } 24 | .navbar-fixed-bottom { 25 | margin-top: @baseLineHeight; 26 | } 27 | .navbar-fixed-top .navbar-inner, 28 | .navbar-fixed-bottom .navbar-inner { 29 | padding: 5px; 30 | } 31 | .navbar .container { 32 | width: auto; 33 | padding: 0; 34 | } 35 | // Account for brand name 36 | .navbar .brand { 37 | padding-left: 10px; 38 | padding-right: 10px; 39 | margin: 0 0 0 -5px; 40 | } 41 | 42 | // COLLAPSIBLE NAVBAR 43 | // ------------------ 44 | // Nav collapse clears brand 45 | .nav-collapse { 46 | clear: both; 47 | } 48 | // Block-level the nav 49 | .nav-collapse .nav { 50 | float: none; 51 | margin: 0 0 (@baseLineHeight / 2); 52 | } 53 | .nav-collapse .nav > li { 54 | float: none; 55 | } 56 | .nav-collapse .nav > li > a { 57 | margin-bottom: 2px; 58 | } 59 | .nav-collapse .nav > .divider-vertical { 60 | display: none; 61 | } 62 | .nav-collapse .nav .nav-header { 63 | color: @navbarText; 64 | text-shadow: none; 65 | } 66 | // Nav and dropdown links in navbar 67 | .nav-collapse .nav > li > a, 68 | .nav-collapse .dropdown-menu a { 69 | padding: 9px 15px; 70 | font-weight: bold; 71 | color: @navbarLinkColor; 72 | .border-radius(3px); 73 | } 74 | // Buttons 75 | .nav-collapse .btn { 76 | padding: 4px 10px 4px; 77 | font-weight: normal; 78 | .border-radius(@baseBorderRadius); 79 | } 80 | .nav-collapse .dropdown-menu li + li a { 81 | margin-bottom: 2px; 82 | } 83 | .nav-collapse .nav > li > a:hover, 84 | .nav-collapse .nav > li > a:focus, 85 | .nav-collapse .dropdown-menu a:hover, 86 | .nav-collapse .dropdown-menu a:focus { 87 | background-color: @navbarBackground; 88 | } 89 | .navbar-inverse .nav-collapse .nav > li > a, 90 | .navbar-inverse .nav-collapse .dropdown-menu a { 91 | color: @navbarInverseLinkColor; 92 | } 93 | .navbar-inverse .nav-collapse .nav > li > a:hover, 94 | .navbar-inverse .nav-collapse .nav > li > a:focus, 95 | .navbar-inverse .nav-collapse .dropdown-menu a:hover, 96 | .navbar-inverse .nav-collapse .dropdown-menu a:focus { 97 | background-color: @navbarInverseBackground; 98 | } 99 | // Buttons in the navbar 100 | .nav-collapse.in .btn-group { 101 | margin-top: 5px; 102 | padding: 0; 103 | } 104 | // Dropdowns in the navbar 105 | .nav-collapse .dropdown-menu { 106 | position: static; 107 | top: auto; 108 | left: auto; 109 | float: none; 110 | display: none; 111 | max-width: none; 112 | margin: 0 15px; 113 | padding: 0; 114 | background-color: transparent; 115 | border: none; 116 | .border-radius(0); 117 | .box-shadow(none); 118 | } 119 | .nav-collapse .open > .dropdown-menu { 120 | display: block; 121 | } 122 | 123 | .nav-collapse .dropdown-menu:before, 124 | .nav-collapse .dropdown-menu:after { 125 | display: none; 126 | } 127 | .nav-collapse .dropdown-menu .divider { 128 | display: none; 129 | } 130 | .nav-collapse .nav > li > .dropdown-menu { 131 | &:before, 132 | &:after { 133 | display: none; 134 | } 135 | } 136 | // Forms in navbar 137 | .nav-collapse .navbar-form, 138 | .nav-collapse .navbar-search { 139 | float: none; 140 | padding: (@baseLineHeight / 2) 15px; 141 | margin: (@baseLineHeight / 2) 0; 142 | border-top: 1px solid @navbarBackground; 143 | border-bottom: 1px solid @navbarBackground; 144 | .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)"); 145 | } 146 | .navbar-inverse .nav-collapse .navbar-form, 147 | .navbar-inverse .nav-collapse .navbar-search { 148 | border-top-color: @navbarInverseBackground; 149 | border-bottom-color: @navbarInverseBackground; 150 | } 151 | // Pull right (secondary) nav content 152 | .navbar .nav-collapse .nav.pull-right { 153 | float: none; 154 | margin-left: 0; 155 | } 156 | // Hide everything in the navbar save .brand and toggle button */ 157 | .nav-collapse, 158 | .nav-collapse.collapse { 159 | overflow: hidden; 160 | height: 0; 161 | } 162 | // Navbar button 163 | .navbar .btn-navbar { 164 | display: block; 165 | } 166 | 167 | // STATIC NAVBAR 168 | // ------------- 169 | .navbar-static .navbar-inner { 170 | padding-left: 10px; 171 | padding-right: 10px; 172 | } 173 | 174 | 175 | } 176 | 177 | 178 | // DEFAULT DESKTOP 179 | // --------------- 180 | 181 | @media (min-width: @navbarCollapseDesktopWidth) { 182 | 183 | // Required to make the collapsing navbar work on regular desktops 184 | .nav-collapse.collapse { 185 | height: auto !important; 186 | overflow: visible !important; 187 | } 188 | 189 | } 190 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // IE10 Metro responsive 7 | // Required for Windows 8 Metro split-screen snapping with IE10 8 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ 9 | @-ms-viewport{ 10 | width: device-width; 11 | } 12 | 13 | // Hide from screenreaders and browsers 14 | // Credit: HTML5 Boilerplate 15 | .hidden { 16 | display: none; 17 | visibility: hidden; 18 | } 19 | 20 | // Visibility utilities 21 | 22 | // For desktops 23 | .visible-phone { display: none !important; } 24 | .visible-tablet { display: none !important; } 25 | .hidden-phone { } 26 | .hidden-tablet { } 27 | .hidden-desktop { display: none !important; } 28 | .visible-desktop { display: inherit !important; } 29 | 30 | // Tablets & small desktops only 31 | @media (min-width: 768px) and (max-width: 979px) { 32 | // Hide everything else 33 | .hidden-desktop { display: inherit !important; } 34 | .visible-desktop { display: none !important ; } 35 | // Show 36 | .visible-tablet { display: inherit !important; } 37 | // Hide 38 | .hidden-tablet { display: none !important; } 39 | } 40 | 41 | // Phones only 42 | @media (max-width: 767px) { 43 | // Hide everything else 44 | .hidden-desktop { display: inherit !important; } 45 | .visible-desktop { display: none !important; } 46 | // Show 47 | .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior 48 | // Hide 49 | .hidden-phone { display: none !important; } 50 | } 51 | 52 | // Print utilities 53 | .visible-print { display: none !important; } 54 | .hidden-print { } 55 | 56 | @media print { 57 | .visible-print { display: inherit !important; } 58 | .hidden-print { display: none !important; } 59 | } 60 | -------------------------------------------------------------------------------- /less/bootstrap2/responsive.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.3.2 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | 12 | // Responsive.less 13 | // For phone and tablet devices 14 | // ------------------------------------------------------------- 15 | 16 | 17 | // REPEAT VARIABLES & MIXINS 18 | // ------------------------- 19 | // Required since we compile the responsive stuff separately 20 | 21 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 22 | @import "mixins.less"; 23 | 24 | 25 | // RESPONSIVE CLASSES 26 | // ------------------ 27 | 28 | @import "responsive-utilities.less"; 29 | 30 | 31 | // MEDIA QUERIES 32 | // ------------------ 33 | 34 | // Large desktops 35 | @import "responsive-1200px-min.less"; 36 | 37 | // Tablets to regular desktops 38 | @import "responsive-768px-979px.less"; 39 | 40 | // Phones to portrait tablets and narrow desktops 41 | @import "responsive-767px-max.less"; 42 | 43 | 44 | // RESPONSIVE NAVBAR 45 | // ------------------ 46 | 47 | // From 979px and below, show a button to toggle navbar contents 48 | @import "responsive-navbar.less"; 49 | -------------------------------------------------------------------------------- /less/bootstrap2/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Body reset 7 | // ------------------------- 8 | 9 | body { 10 | margin: 0; 11 | font-family: @baseFontFamily; 12 | font-size: @baseFontSize; 13 | line-height: @baseLineHeight; 14 | color: @textColor; 15 | background-color: @bodyBackground; 16 | } 17 | 18 | 19 | // Links 20 | // ------------------------- 21 | 22 | a { 23 | color: @linkColor; 24 | text-decoration: none; 25 | } 26 | a:hover, 27 | a:focus { 28 | color: @linkColorHover; 29 | text-decoration: underline; 30 | } 31 | 32 | 33 | // Images 34 | // ------------------------- 35 | 36 | // Rounded corners 37 | .img-rounded { 38 | .border-radius(6px); 39 | } 40 | 41 | // Add polaroid-esque trim 42 | .img-polaroid { 43 | padding: 4px; 44 | background-color: #fff; 45 | border: 1px solid #ccc; 46 | border: 1px solid rgba(0,0,0,.2); 47 | .box-shadow(0 1px 3px rgba(0,0,0,.1)); 48 | } 49 | 50 | // Perfect circle 51 | .img-circle { 52 | .border-radius(500px); // crank the border-radius so it works with most reasonably sized images 53 | } 54 | -------------------------------------------------------------------------------- /less/bootstrap2/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files 7 | 8 | // Make wrapper ul behave like the grid 9 | .thumbnails { 10 | margin-left: -@gridGutterWidth; 11 | list-style: none; 12 | .clearfix(); 13 | } 14 | // Fluid rows have no left margin 15 | .row-fluid .thumbnails { 16 | margin-left: 0; 17 | } 18 | 19 | // Float li to make thumbnails appear in a row 20 | .thumbnails > li { 21 | float: left; // Explicity set the float since we don't require .span* classes 22 | margin-bottom: @baseLineHeight; 23 | margin-left: @gridGutterWidth; 24 | } 25 | 26 | // The actual thumbnail (can be `a` or `div`) 27 | .thumbnail { 28 | display: block; 29 | padding: 4px; 30 | line-height: @baseLineHeight; 31 | border: 1px solid #ddd; 32 | .border-radius(@baseBorderRadius); 33 | .box-shadow(0 1px 3px rgba(0,0,0,.055)); 34 | .transition(all .2s ease-in-out); 35 | } 36 | // Add a hover/focus state for linked versions only 37 | a.thumbnail:hover, 38 | a.thumbnail:focus { 39 | border-color: @linkColor; 40 | .box-shadow(0 1px 4px rgba(0,105,214,.25)); 41 | } 42 | 43 | // Images and captions 44 | .thumbnail > img { 45 | display: block; 46 | max-width: 100%; 47 | margin-left: auto; 48 | margin-right: auto; 49 | } 50 | .thumbnail .caption { 51 | padding: 9px; 52 | color: @gray; 53 | } 54 | -------------------------------------------------------------------------------- /less/bootstrap2/tooltip.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tooltips 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .tooltip { 8 | position: absolute; 9 | z-index: @zindexTooltip; 10 | display: block; 11 | visibility: visible; 12 | font-size: 11px; 13 | line-height: 1.4; 14 | .opacity(0); 15 | &.in { .opacity(80); } 16 | &.top { margin-top: -3px; padding: 5px 0; } 17 | &.right { margin-left: 3px; padding: 0 5px; } 18 | &.bottom { margin-top: 3px; padding: 5px 0; } 19 | &.left { margin-left: -3px; padding: 0 5px; } 20 | } 21 | 22 | // Wrapper for the tooltip content 23 | .tooltip-inner { 24 | max-width: 200px; 25 | padding: 8px; 26 | color: @tooltipColor; 27 | text-align: center; 28 | text-decoration: none; 29 | background-color: @tooltipBackground; 30 | .border-radius(@baseBorderRadius); 31 | } 32 | 33 | // Arrows 34 | .tooltip-arrow { 35 | position: absolute; 36 | width: 0; 37 | height: 0; 38 | border-color: transparent; 39 | border-style: solid; 40 | } 41 | .tooltip { 42 | &.top .tooltip-arrow { 43 | bottom: 0; 44 | left: 50%; 45 | margin-left: -@tooltipArrowWidth; 46 | border-width: @tooltipArrowWidth @tooltipArrowWidth 0; 47 | border-top-color: @tooltipArrowColor; 48 | } 49 | &.right .tooltip-arrow { 50 | top: 50%; 51 | left: 0; 52 | margin-top: -@tooltipArrowWidth; 53 | border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0; 54 | border-right-color: @tooltipArrowColor; 55 | } 56 | &.left .tooltip-arrow { 57 | top: 50%; 58 | right: 0; 59 | margin-top: -@tooltipArrowWidth; 60 | border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth; 61 | border-left-color: @tooltipArrowColor; 62 | } 63 | &.bottom .tooltip-arrow { 64 | top: 0; 65 | left: 50%; 66 | margin-left: -@tooltipArrowWidth; 67 | border-width: 0 @tooltipArrowWidth @tooltipArrowWidth; 68 | border-bottom-color: @tooltipArrowColor; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /less/bootstrap2/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Quick floats 7 | .pull-right { 8 | float: right; 9 | } 10 | .pull-left { 11 | float: left; 12 | } 13 | 14 | // Toggling content 15 | .hide { 16 | display: none; 17 | } 18 | .show { 19 | display: block; 20 | } 21 | 22 | // Visibility 23 | .invisible { 24 | visibility: hidden; 25 | } 26 | 27 | // For Affix plugin 28 | .affix { 29 | position: fixed; 30 | } 31 | -------------------------------------------------------------------------------- /less/bootstrap2/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @wellBackground; 12 | border: 1px solid darken(@wellBackground, 7%); 13 | .border-radius(@baseBorderRadius); 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-large { 23 | padding: 24px; 24 | .border-radius(@borderRadiusLarge); 25 | } 26 | .well-small { 27 | padding: 9px; 28 | .border-radius(@borderRadiusSmall); 29 | } 30 | -------------------------------------------------------------------------------- /less/bootstrap3/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /less/bootstrap3/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissable alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable { 41 | padding-right: (@alert-padding + 20); 42 | 43 | // Adjust close link position 44 | .close { 45 | position: relative; 46 | top: -2px; 47 | right: -21px; 48 | color: inherit; 49 | } 50 | } 51 | 52 | // Alternate styles 53 | // 54 | // Generate contextual modifier classes for colorizing the alert. 55 | 56 | .alert-success { 57 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 58 | } 59 | .alert-info { 60 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 61 | } 62 | .alert-warning { 63 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 64 | } 65 | .alert-danger { 66 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 67 | } 68 | -------------------------------------------------------------------------------- /less/bootstrap3/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | } 36 | 37 | // Hover state, but only for links 38 | a.badge { 39 | &:hover, 40 | &:focus { 41 | color: @badge-link-hover-color; 42 | text-decoration: none; 43 | cursor: pointer; 44 | } 45 | } 46 | 47 | // Account for counters in navs 48 | a.list-group-item.active > .badge, 49 | .nav-pills > .active > a > .badge { 50 | color: @badge-active-color; 51 | background-color: @badge-active-bg; 52 | } 53 | .nav-pills > li > a > .badge { 54 | margin-left: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /less/bootstrap3/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | 9 | // Core CSS 10 | @import "scaffolding.less"; 11 | @import "type.less"; 12 | @import "code.less"; 13 | @import "grid.less"; 14 | @import "tables.less"; 15 | @import "forms.less"; 16 | @import "buttons.less"; 17 | 18 | // Components 19 | @import "component-animations.less"; 20 | @import "glyphicons.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "wells.less"; 39 | @import "close.less"; 40 | 41 | // Components w/ JavaScript 42 | @import "modals.less"; 43 | @import "tooltip.less"; 44 | @import "popovers.less"; 45 | @import "carousel.less"; 46 | 47 | // Utility classes 48 | @import "utilities.less"; 49 | @import "responsive-utilities.less"; 50 | -------------------------------------------------------------------------------- /less/bootstrap3/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /less/bootstrap3/buttons.less: -------------------------------------------------------------------------------- 1 | // 2 | // Buttons 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // -------------------------------------------------- 8 | 9 | .btn { 10 | display: inline-block; 11 | margin-bottom: 0; // For input.btn 12 | font-weight: @btn-font-weight; 13 | text-align: center; 14 | vertical-align: middle; 15 | cursor: pointer; 16 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 17 | border: 1px solid transparent; 18 | white-space: nowrap; 19 | .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); 20 | .user-select(none); 21 | 22 | &, 23 | &:active, 24 | &.active { 25 | &:focus { 26 | .tab-focus(); 27 | } 28 | } 29 | 30 | &:hover, 31 | &:focus { 32 | color: @btn-default-color; 33 | text-decoration: none; 34 | } 35 | 36 | &:active, 37 | &.active { 38 | outline: 0; 39 | background-image: none; 40 | .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 41 | } 42 | 43 | &.disabled, 44 | &[disabled], 45 | fieldset[disabled] & { 46 | cursor: not-allowed; 47 | pointer-events: none; // Future-proof disabling of clicks 48 | .opacity(.65); 49 | .box-shadow(none); 50 | } 51 | } 52 | 53 | 54 | // Alternate buttons 55 | // -------------------------------------------------- 56 | 57 | .btn-default { 58 | .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); 59 | } 60 | .btn-primary { 61 | .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); 62 | } 63 | // Success appears as green 64 | .btn-success { 65 | .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); 66 | } 67 | // Info appears as blue-green 68 | .btn-info { 69 | .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); 70 | } 71 | // Warning appears as orange 72 | .btn-warning { 73 | .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); 74 | } 75 | // Danger and error appear as red 76 | .btn-danger { 77 | .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); 78 | } 79 | 80 | 81 | // Link buttons 82 | // ------------------------- 83 | 84 | // Make a button look and behave like a link 85 | .btn-link { 86 | color: @link-color; 87 | font-weight: normal; 88 | cursor: pointer; 89 | border-radius: 0; 90 | 91 | &, 92 | &:active, 93 | &[disabled], 94 | fieldset[disabled] & { 95 | background-color: transparent; 96 | .box-shadow(none); 97 | } 98 | &, 99 | &:hover, 100 | &:focus, 101 | &:active { 102 | border-color: transparent; 103 | } 104 | &:hover, 105 | &:focus { 106 | color: @link-hover-color; 107 | text-decoration: underline; 108 | background-color: transparent; 109 | } 110 | &[disabled], 111 | fieldset[disabled] & { 112 | &:hover, 113 | &:focus { 114 | color: @btn-link-disabled-color; 115 | text-decoration: none; 116 | } 117 | } 118 | } 119 | 120 | 121 | // Button Sizes 122 | // -------------------------------------------------- 123 | 124 | .btn-lg { 125 | // line-height: ensure even-numbered height of button next to large input 126 | .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); 127 | } 128 | .btn-sm { 129 | // line-height: ensure proper height of button next to small input 130 | .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); 131 | } 132 | .btn-xs { 133 | .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); 134 | } 135 | 136 | 137 | // Block button 138 | // -------------------------------------------------- 139 | 140 | .btn-block { 141 | display: block; 142 | width: 100%; 143 | padding-left: 0; 144 | padding-right: 0; 145 | } 146 | 147 | // Vertically space out multiple block buttons 148 | .btn-block + .btn-block { 149 | margin-top: 5px; 150 | } 151 | 152 | // Specificity overrides 153 | input[type="submit"], 154 | input[type="reset"], 155 | input[type="button"] { 156 | &.btn-block { 157 | width: 100%; 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /less/bootstrap3/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /less/bootstrap3/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | white-space: nowrap; 21 | border-radius: @border-radius-base; 22 | } 23 | 24 | // User input typically entered via keyboard 25 | kbd { 26 | padding: 2px 4px; 27 | font-size: 90%; 28 | color: @kbd-color; 29 | background-color: @kbd-bg; 30 | border-radius: @border-radius-small; 31 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 32 | } 33 | 34 | // Blocks of code 35 | pre { 36 | display: block; 37 | padding: ((@line-height-computed - 1) / 2); 38 | margin: 0 0 (@line-height-computed / 2); 39 | font-size: (@font-size-base - 1); // 14px to 13px 40 | line-height: @line-height-base; 41 | word-break: break-all; 42 | word-wrap: break-word; 43 | color: @pre-color; 44 | background-color: @pre-bg; 45 | border: 1px solid @pre-border-color; 46 | border-radius: @border-radius-base; 47 | 48 | // Account for some code outputs that place code tags in pre tags 49 | code { 50 | padding: 0; 51 | font-size: inherit; 52 | color: inherit; 53 | white-space: pre-wrap; 54 | background-color: transparent; 55 | border-radius: 0; 56 | } 57 | } 58 | 59 | // Enable scrollable blocks of code 60 | .pre-scrollable { 61 | max-height: @pre-scrollable-max-height; 62 | overflow-y: scroll; 63 | } 64 | -------------------------------------------------------------------------------- /less/bootstrap3/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | // display: none; 20 | &.in { 21 | display: block; 22 | } 23 | } 24 | .collapsing { 25 | position: relative; 26 | height: 0; 27 | overflow: hidden; 28 | .transition(height .35s ease); 29 | } 30 | -------------------------------------------------------------------------------- /less/bootstrap3/dropdowns.less: -------------------------------------------------------------------------------- 1 | // 2 | // Dropdown menus 3 | // -------------------------------------------------- 4 | 5 | 6 | // Dropdown arrow/caret 7 | .caret { 8 | display: inline-block; 9 | width: 0; 10 | height: 0; 11 | margin-left: 2px; 12 | vertical-align: middle; 13 | border-top: @caret-width-base solid; 14 | border-right: @caret-width-base solid transparent; 15 | border-left: @caret-width-base solid transparent; 16 | } 17 | 18 | // The dropdown wrapper (div) 19 | .dropdown { 20 | position: relative; 21 | } 22 | 23 | // Prevent the focus on the dropdown toggle when closing dropdowns 24 | .dropdown-toggle:focus { 25 | outline: 0; 26 | } 27 | 28 | // The dropdown menu (ul) 29 | .dropdown-menu { 30 | position: absolute; 31 | top: 100%; 32 | left: 0; 33 | z-index: @zindex-dropdown; 34 | display: none; // none by default, but block on "open" of the menu 35 | float: left; 36 | min-width: 160px; 37 | padding: 5px 0; 38 | margin: 2px 0 0; // override default ul 39 | list-style: none; 40 | font-size: @font-size-base; 41 | background-color: @dropdown-bg; 42 | border: 1px solid @dropdown-fallback-border; // IE8 fallback 43 | border: 1px solid @dropdown-border; 44 | border-radius: @border-radius-base; 45 | .box-shadow(0 6px 12px rgba(0,0,0,.175)); 46 | background-clip: padding-box; 47 | 48 | // Aligns the dropdown menu to right 49 | // 50 | // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` 51 | &.pull-right { 52 | right: 0; 53 | left: auto; 54 | } 55 | 56 | // Dividers (basically an hr) within the dropdown 57 | .divider { 58 | .nav-divider(@dropdown-divider-bg); 59 | } 60 | 61 | // Links within the dropdown menu 62 | > li > a { 63 | display: block; 64 | padding: 3px 20px; 65 | clear: both; 66 | font-weight: normal; 67 | line-height: @line-height-base; 68 | color: @dropdown-link-color; 69 | white-space: nowrap; // prevent links from randomly breaking onto new lines 70 | } 71 | } 72 | 73 | // Hover/Focus state 74 | .dropdown-menu > li > a { 75 | &:hover, 76 | &:focus { 77 | text-decoration: none; 78 | color: @dropdown-link-hover-color; 79 | background-color: @dropdown-link-hover-bg; 80 | } 81 | } 82 | 83 | // Active state 84 | .dropdown-menu > .active > a { 85 | &, 86 | &:hover, 87 | &:focus { 88 | color: @dropdown-link-active-color; 89 | text-decoration: none; 90 | outline: 0; 91 | background-color: @dropdown-link-active-bg; 92 | } 93 | } 94 | 95 | // Disabled state 96 | // 97 | // Gray out text and ensure the hover/focus state remains gray 98 | 99 | .dropdown-menu > .disabled > a { 100 | &, 101 | &:hover, 102 | &:focus { 103 | color: @dropdown-link-disabled-color; 104 | } 105 | } 106 | // Nuke hover/focus effects 107 | .dropdown-menu > .disabled > a { 108 | &:hover, 109 | &:focus { 110 | text-decoration: none; 111 | background-color: transparent; 112 | background-image: none; // Remove CSS gradient 113 | .reset-filter(); 114 | cursor: not-allowed; 115 | } 116 | } 117 | 118 | // Open state for the dropdown 119 | .open { 120 | // Show the menu 121 | > .dropdown-menu { 122 | display: block; 123 | } 124 | 125 | // Remove the outline when :focus is triggered 126 | > a { 127 | outline: 0; 128 | } 129 | } 130 | 131 | // Menu positioning 132 | // 133 | // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown 134 | // menu with the parent. 135 | .dropdown-menu-right { 136 | left: auto; // Reset the default from `.dropdown-menu` 137 | right: 0; 138 | } 139 | // With v3, we enabled auto-flipping if you have a dropdown within a right 140 | // aligned nav component. To enable the undoing of that, we provide an override 141 | // to restore the default dropdown menu alignment. 142 | // 143 | // This is only for left-aligning a dropdown menu within a `.navbar-right` or 144 | // `.pull-right` nav component. 145 | .dropdown-menu-left { 146 | left: 0; 147 | right: auto; 148 | } 149 | 150 | // Dropdown section headers 151 | .dropdown-header { 152 | display: block; 153 | padding: 3px 20px; 154 | font-size: @font-size-small; 155 | line-height: @line-height-base; 156 | color: @dropdown-header-color; 157 | } 158 | 159 | // Backdrop to catch body clicks on mobile, etc. 160 | .dropdown-backdrop { 161 | position: fixed; 162 | left: 0; 163 | right: 0; 164 | bottom: 0; 165 | top: 0; 166 | z-index: (@zindex-dropdown - 10); 167 | } 168 | 169 | // Right aligned dropdowns 170 | .pull-right > .dropdown-menu { 171 | right: 0; 172 | left: auto; 173 | } 174 | 175 | // Allow for dropdowns to go bottom up (aka, dropup-menu) 176 | // 177 | // Just add .dropup after the standard .dropdown class and you're set, bro. 178 | // TODO: abstract this so that the navbar fixed styles are not placed here? 179 | 180 | .dropup, 181 | .navbar-fixed-bottom .dropdown { 182 | // Reverse the caret 183 | .caret { 184 | border-top: 0; 185 | border-bottom: @caret-width-base solid; 186 | content: ""; 187 | } 188 | // Different positioning for bottom up menu 189 | .dropdown-menu { 190 | top: auto; 191 | bottom: 100%; 192 | margin-bottom: 1px; 193 | } 194 | } 195 | 196 | 197 | // Component alignment 198 | // 199 | // Reiterate per navbar.less and the modified component alignment there. 200 | 201 | @media (min-width: @grid-float-breakpoint) { 202 | .navbar-right { 203 | .dropdown-menu { 204 | .dropdown-menu-right(); 205 | } 206 | // Necessary for overrides of the default right aligned menu. 207 | // Will remove come v4 in all likelihood. 208 | .dropdown-menu-left { 209 | .dropdown-menu-left(); 210 | } 211 | } 212 | } 213 | 214 | -------------------------------------------------------------------------------- /less/bootstrap3/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /less/bootstrap3/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /less/bootstrap3/input-groups.less: -------------------------------------------------------------------------------- 1 | // 2 | // Input groups 3 | // -------------------------------------------------- 4 | 5 | // Base styles 6 | // ------------------------- 7 | .input-group { 8 | position: relative; // For dropdowns 9 | display: table; 10 | border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table 11 | 12 | // Undo padding and float of grid classes 13 | &[class*="col-"] { 14 | float: none; 15 | padding-left: 0; 16 | padding-right: 0; 17 | } 18 | 19 | .form-control { 20 | // Ensure that the input is always above the *appended* addon button for 21 | // proper border colors. 22 | position: relative; 23 | z-index: 2; 24 | 25 | // IE9 fubars the placeholder attribute in text inputs and the arrows on 26 | // select elements in input groups. To fix it, we float the input. Details: 27 | // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 28 | float: left; 29 | 30 | width: 100%; 31 | margin-bottom: 0; 32 | } 33 | } 34 | 35 | // Sizing options 36 | // 37 | // Remix the default form control sizing classes into new ones for easier 38 | // manipulation. 39 | 40 | .input-group-lg > .form-control, 41 | .input-group-lg > .input-group-addon, 42 | .input-group-lg > .input-group-btn > .btn { .input-lg(); } 43 | .input-group-sm > .form-control, 44 | .input-group-sm > .input-group-addon, 45 | .input-group-sm > .input-group-btn > .btn { .input-sm(); } 46 | 47 | 48 | // Display as table-cell 49 | // ------------------------- 50 | .input-group-addon, 51 | .input-group-btn, 52 | .input-group .form-control { 53 | display: table-cell; 54 | 55 | &:not(:first-child):not(:last-child) { 56 | border-radius: 0; 57 | } 58 | } 59 | // Addon and addon wrapper for buttons 60 | .input-group-addon, 61 | .input-group-btn { 62 | width: 1%; 63 | white-space: nowrap; 64 | vertical-align: middle; // Match the inputs 65 | } 66 | 67 | // Text input groups 68 | // ------------------------- 69 | .input-group-addon { 70 | padding: @padding-base-vertical @padding-base-horizontal; 71 | font-size: @font-size-base; 72 | font-weight: normal; 73 | line-height: 1; 74 | color: @input-color; 75 | text-align: center; 76 | background-color: @input-group-addon-bg; 77 | border: 1px solid @input-group-addon-border-color; 78 | border-radius: @border-radius-base; 79 | 80 | // Sizing 81 | &.input-sm { 82 | padding: @padding-small-vertical @padding-small-horizontal; 83 | font-size: @font-size-small; 84 | border-radius: @border-radius-small; 85 | } 86 | &.input-lg { 87 | padding: @padding-large-vertical @padding-large-horizontal; 88 | font-size: @font-size-large; 89 | border-radius: @border-radius-large; 90 | } 91 | 92 | // Nuke default margins from checkboxes and radios to vertically center within. 93 | input[type="radio"], 94 | input[type="checkbox"] { 95 | margin-top: 0; 96 | } 97 | } 98 | 99 | // Reset rounded corners 100 | .input-group .form-control:first-child, 101 | .input-group-addon:first-child, 102 | .input-group-btn:first-child > .btn, 103 | .input-group-btn:first-child > .btn-group > .btn, 104 | .input-group-btn:first-child > .dropdown-toggle, 105 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), 106 | .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { 107 | .border-right-radius(0); 108 | } 109 | .input-group-addon:first-child { 110 | border-right: 0; 111 | } 112 | .input-group .form-control:last-child, 113 | .input-group-addon:last-child, 114 | .input-group-btn:last-child > .btn, 115 | .input-group-btn:last-child > .btn-group > .btn, 116 | .input-group-btn:last-child > .dropdown-toggle, 117 | .input-group-btn:first-child > .btn:not(:first-child), 118 | .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { 119 | .border-left-radius(0); 120 | } 121 | .input-group-addon:last-child { 122 | border-left: 0; 123 | } 124 | 125 | // Button input groups 126 | // ------------------------- 127 | .input-group-btn { 128 | position: relative; 129 | // Jankily prevent input button groups from wrapping with `white-space` and 130 | // `font-size` in combination with `inline-block` on buttons. 131 | font-size: 0; 132 | white-space: nowrap; 133 | 134 | // Negative margin for spacing, position for bringing hovered/focused/actived 135 | // element above the siblings. 136 | > .btn { 137 | position: relative; 138 | + .btn { 139 | margin-left: -1px; 140 | } 141 | // Bring the "active" button to the front 142 | &:hover, 143 | &:focus, 144 | &:active { 145 | z-index: 2; 146 | } 147 | } 148 | 149 | // Negative margin to only have a 1px border between the two 150 | &:first-child { 151 | > .btn, 152 | > .btn-group { 153 | margin-right: -1px; 154 | } 155 | } 156 | &:last-child { 157 | > .btn, 158 | > .btn-group { 159 | margin-left: -1px; 160 | } 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /less/bootstrap3/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding; 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: (@jumbotron-padding / 2); 18 | font-size: @jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | .container & { 23 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 24 | } 25 | 26 | .container { 27 | max-width: 100%; 28 | } 29 | 30 | @media screen and (min-width: @screen-sm-min) { 31 | padding-top: (@jumbotron-padding * 1.6); 32 | padding-bottom: (@jumbotron-padding * 1.6); 33 | 34 | .container & { 35 | padding-left: (@jumbotron-padding * 2); 36 | padding-right: (@jumbotron-padding * 2); 37 | } 38 | 39 | h1, 40 | .h1 { 41 | font-size: (@font-size-base * 4.5); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /less/bootstrap3/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | &[href] { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /less/bootstrap3/list-group.less: -------------------------------------------------------------------------------- 1 | // 2 | // List groups 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | // 8 | // Easily usable on
    ,
      , or
      . 9 | 10 | .list-group { 11 | // No need to set list-style: none; since .list-group-item is block level 12 | margin-bottom: 20px; 13 | padding-left: 0; // reset padding because ul and ol 14 | } 15 | 16 | 17 | // Individual list items 18 | // 19 | // Use on `li`s or `div`s within the `.list-group` parent. 20 | 21 | .list-group-item { 22 | position: relative; 23 | display: block; 24 | padding: 10px 15px; 25 | // Place the border on the list items and negative margin up for better styling 26 | margin-bottom: -1px; 27 | background-color: @list-group-bg; 28 | border: 1px solid @list-group-border; 29 | 30 | // Round the first and last items 31 | &:first-child { 32 | .border-top-radius(@list-group-border-radius); 33 | } 34 | &:last-child { 35 | margin-bottom: 0; 36 | .border-bottom-radius(@list-group-border-radius); 37 | } 38 | 39 | // Align badges within list items 40 | > .badge { 41 | float: right; 42 | } 43 | > .badge + .badge { 44 | margin-right: 5px; 45 | } 46 | } 47 | 48 | 49 | // Linked list items 50 | // 51 | // Use anchor elements instead of `li`s or `div`s to create linked list items. 52 | // Includes an extra `.active` modifier class for showing selected items. 53 | 54 | a.list-group-item { 55 | color: @list-group-link-color; 56 | 57 | .list-group-item-heading { 58 | color: @list-group-link-heading-color; 59 | } 60 | 61 | // Hover state 62 | &:hover, 63 | &:focus { 64 | text-decoration: none; 65 | background-color: @list-group-hover-bg; 66 | } 67 | 68 | // Active class on item itself, not parent 69 | &.active, 70 | &.active:hover, 71 | &.active:focus { 72 | z-index: 2; // Place active items above their siblings for proper border styling 73 | color: @list-group-active-color; 74 | background-color: @list-group-active-bg; 75 | border-color: @list-group-active-border; 76 | 77 | // Force color to inherit for custom content 78 | .list-group-item-heading { 79 | color: inherit; 80 | } 81 | .list-group-item-text { 82 | color: @list-group-active-text-color; 83 | } 84 | } 85 | } 86 | 87 | 88 | // Contextual variants 89 | // 90 | // Add modifier classes to change text and background color on individual items. 91 | // Organizationally, this must come after the `:hover` states. 92 | 93 | .list-group-item-variant(success; @state-success-bg; @state-success-text); 94 | .list-group-item-variant(info; @state-info-bg; @state-info-text); 95 | .list-group-item-variant(warning; @state-warning-bg; @state-warning-text); 96 | .list-group-item-variant(danger; @state-danger-bg; @state-danger-text); 97 | 98 | 99 | // Custom content options 100 | // 101 | // Extra classes for creating well-formatted content within `.list-group-item`s. 102 | 103 | .list-group-item-heading { 104 | margin-top: 0; 105 | margin-bottom: 5px; 106 | } 107 | .list-group-item-text { 108 | margin-bottom: 0; 109 | line-height: 1.3; 110 | } 111 | -------------------------------------------------------------------------------- /less/bootstrap3/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | zoom: 1; 14 | } 15 | 16 | // Proper spacing between instances of .media 17 | .media, 18 | .media .media { 19 | margin-top: 15px; 20 | } 21 | .media:first-child { 22 | margin-top: 0; 23 | } 24 | 25 | // For images and videos, set to block 26 | .media-object { 27 | display: block; 28 | } 29 | 30 | // Reset margins on headings for tighter default spacing 31 | .media-heading { 32 | margin: 0 0 5px; 33 | } 34 | 35 | 36 | // Media image alignment 37 | // ------------------------- 38 | 39 | .media { 40 | > .pull-left { 41 | margin-right: 10px; 42 | } 43 | > .pull-right { 44 | margin-left: 10px; 45 | } 46 | } 47 | 48 | 49 | // Media list variation 50 | // ------------------------- 51 | 52 | // Undo default ul/ol styles 53 | .media-list { 54 | padding-left: 0; 55 | list-style: none; 56 | } 57 | -------------------------------------------------------------------------------- /less/bootstrap3/modals.less: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // -------------------------------------------------- 4 | 5 | // .modal-open - body class for killing the scroll 6 | // .modal - container to scroll within 7 | // .modal-dialog - positioning shell for the actual modal 8 | // .modal-content - actual modal w/ bg and corners and shit 9 | 10 | // Kill the scroll on the body 11 | .modal-open { 12 | overflow: hidden; 13 | } 14 | 15 | // Container that the modal scrolls within 16 | div.modal { 17 | display: none; 18 | overflow: auto; 19 | overflow-y: scroll; 20 | position: fixed; 21 | top: 0; 22 | right: 0; 23 | // bottom: 0; 24 | left: 0; 25 | z-index: @zindex-modal; 26 | -webkit-overflow-scrolling: touch; 27 | 28 | // Prevent Chrome on Windows from adding a focus outline. For details, see 29 | // https://github.com/twbs/bootstrap/pull/10951. 30 | outline: 0; 31 | 32 | // When fading in the modal, animate it to slide down 33 | &.fade .modal-dialog { 34 | .translate(0, -25%); 35 | .transition-transform(~"0.3s ease-out"); 36 | } 37 | &.in .modal-dialog { .translate(0, 0)} 38 | } 39 | 40 | // Shell div to position the modal with bottom padding 41 | .modal-dialog { 42 | position: relative; 43 | width: auto; 44 | margin: 10px; 45 | } 46 | 47 | // Actual modal 48 | .modal-content { 49 | position: relative; 50 | background-color: @modal-content-bg; 51 | border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) 52 | border: 1px solid @modal-content-border-color; 53 | border-radius: @border-radius-large; 54 | .box-shadow(0 3px 9px rgba(0,0,0,.5)); 55 | background-clip: padding-box; 56 | // Remove focus outline from opened modal 57 | outline: none; 58 | } 59 | 60 | // Modal background 61 | .modal-backdrop { 62 | position: fixed; 63 | top: 0; 64 | right: 0; 65 | bottom: 0; 66 | left: 0; 67 | z-index: @zindex-modal-background; 68 | background-color: @modal-backdrop-bg; 69 | // Fade for backdrop 70 | &.fade { .opacity(0); } 71 | &.in { .opacity(@modal-backdrop-opacity); } 72 | } 73 | 74 | // Modal header 75 | // Top section of the modal w/ title and dismiss 76 | .modal-header { 77 | padding: @modal-title-padding; 78 | border-bottom: 1px solid @modal-header-border-color; 79 | min-height: (@modal-title-padding + @modal-title-line-height); 80 | } 81 | // Close icon 82 | .modal-header .close { 83 | margin-top: -2px; 84 | } 85 | 86 | // Title text within header 87 | .modal-title { 88 | margin: 0; 89 | line-height: @modal-title-line-height; 90 | } 91 | 92 | // Modal body 93 | // Where all modal content resides (sibling of .modal-header and .modal-footer) 94 | .modal-body { 95 | position: relative; 96 | padding: @modal-inner-padding; 97 | } 98 | 99 | // Footer (for actions) 100 | .modal-footer { 101 | margin-top: 15px; 102 | padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding; 103 | text-align: right; // right align buttons 104 | border-top: 1px solid @modal-footer-border-color; 105 | &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons 106 | 107 | // Properly space out buttons 108 | .btn + .btn { 109 | margin-left: 5px; 110 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs 111 | } 112 | // but override that for button groups 113 | .btn-group .btn + .btn { 114 | margin-left: -1px; 115 | } 116 | // and override it for block buttons as well 117 | .btn-block + .btn-block { 118 | margin-left: 0; 119 | } 120 | } 121 | 122 | // Scale up the modal 123 | @media (min-width: @screen-sm-min) { 124 | // Automatically set modal's width for larger viewports 125 | .modal-dialog { 126 | width: @modal-md; 127 | margin: 30px auto; 128 | } 129 | .modal-content { 130 | .box-shadow(0 5px 15px rgba(0,0,0,.5)); 131 | } 132 | 133 | // Modal sizes 134 | .modal-sm { width: @modal-sm; } 135 | } 136 | 137 | @media (min-width: @screen-md-min) { 138 | .modal-lg { width: @modal-lg; } 139 | } 140 | -------------------------------------------------------------------------------- /less/bootstrap3/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: not-allowed; 52 | } 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /less/bootstrap3/pagination.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination (multiple pages) 3 | // -------------------------------------------------- 4 | .pagination { 5 | display: inline-block; 6 | padding-left: 0; 7 | margin: @line-height-computed 0; 8 | border-radius: @border-radius-base; 9 | 10 | > li { 11 | display: inline; // Remove list-style and block-level defaults 12 | > a, 13 | > span { 14 | position: relative; 15 | float: left; // Collapse white-space 16 | padding: @padding-base-vertical @padding-base-horizontal; 17 | line-height: @line-height-base; 18 | text-decoration: none; 19 | color: @pagination-color; 20 | background-color: @pagination-bg; 21 | border: 1px solid @pagination-border; 22 | margin-left: -1px; 23 | } 24 | &:first-child { 25 | > a, 26 | > span { 27 | margin-left: 0; 28 | .border-left-radius(@border-radius-base); 29 | } 30 | } 31 | &:last-child { 32 | > a, 33 | > span { 34 | .border-right-radius(@border-radius-base); 35 | } 36 | } 37 | } 38 | 39 | > li > a, 40 | > li > span { 41 | &:hover, 42 | &:focus { 43 | color: @pagination-hover-color; 44 | background-color: @pagination-hover-bg; 45 | border-color: @pagination-hover-border; 46 | } 47 | } 48 | 49 | > .active > a, 50 | > .active > span { 51 | &, 52 | &:hover, 53 | &:focus { 54 | z-index: 2; 55 | color: @pagination-active-color; 56 | background-color: @pagination-active-bg; 57 | border-color: @pagination-active-border; 58 | cursor: default; 59 | } 60 | } 61 | 62 | > .disabled { 63 | > span, 64 | > span:hover, 65 | > span:focus, 66 | > a, 67 | > a:hover, 68 | > a:focus { 69 | color: @pagination-disabled-color; 70 | background-color: @pagination-disabled-bg; 71 | border-color: @pagination-disabled-border; 72 | cursor: not-allowed; 73 | } 74 | } 75 | } 76 | 77 | // Sizing 78 | // -------------------------------------------------- 79 | 80 | // Large 81 | .pagination-lg { 82 | .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large); 83 | } 84 | 85 | // Small 86 | .pagination-sm { 87 | .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small); 88 | } 89 | -------------------------------------------------------------------------------- /less/bootstrap3/popovers.less: -------------------------------------------------------------------------------- 1 | // 2 | // Popovers 3 | // -------------------------------------------------- 4 | 5 | 6 | .popover { 7 | position: absolute; 8 | top: 0; 9 | left: 0; 10 | z-index: @zindex-popover; 11 | display: none; 12 | max-width: @popover-max-width; 13 | padding: 1px; 14 | text-align: left; // Reset given new insertion method 15 | background-color: @popover-bg; 16 | background-clip: padding-box; 17 | border: 1px solid @popover-fallback-border-color; 18 | border: 1px solid @popover-border-color; 19 | border-radius: @border-radius-large; 20 | .box-shadow(0 5px 10px rgba(0,0,0,.2)); 21 | 22 | // Overrides for proper insertion 23 | white-space: normal; 24 | 25 | // Offset the popover to account for the popover arrow 26 | &.top { margin-top: -@popover-arrow-width; } 27 | &.right { margin-left: @popover-arrow-width; } 28 | &.bottom { margin-top: @popover-arrow-width; } 29 | &.left { margin-left: -@popover-arrow-width; } 30 | } 31 | 32 | .popover-title { 33 | margin: 0; // reset heading margin 34 | padding: 8px 14px; 35 | font-size: @font-size-base; 36 | font-weight: normal; 37 | line-height: 18px; 38 | background-color: @popover-title-bg; 39 | border-bottom: 1px solid darken(@popover-title-bg, 5%); 40 | border-radius: 5px 5px 0 0; 41 | } 42 | 43 | .popover-content { 44 | padding: 9px 14px; 45 | } 46 | 47 | // Arrows 48 | // 49 | // .arrow is outer, .arrow:after is inner 50 | 51 | .popover > .arrow { 52 | &, 53 | &:after { 54 | position: absolute; 55 | display: block; 56 | width: 0; 57 | height: 0; 58 | border-color: transparent; 59 | border-style: solid; 60 | } 61 | } 62 | .popover > .arrow { 63 | border-width: @popover-arrow-outer-width; 64 | } 65 | .popover > .arrow:after { 66 | border-width: @popover-arrow-width; 67 | content: ""; 68 | } 69 | 70 | .popover { 71 | &.top > .arrow { 72 | left: 50%; 73 | margin-left: -@popover-arrow-outer-width; 74 | border-bottom-width: 0; 75 | border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback 76 | border-top-color: @popover-arrow-outer-color; 77 | bottom: -@popover-arrow-outer-width; 78 | &:after { 79 | content: " "; 80 | bottom: 1px; 81 | margin-left: -@popover-arrow-width; 82 | border-bottom-width: 0; 83 | border-top-color: @popover-arrow-color; 84 | } 85 | } 86 | &.right > .arrow { 87 | top: 50%; 88 | left: -@popover-arrow-outer-width; 89 | margin-top: -@popover-arrow-outer-width; 90 | border-left-width: 0; 91 | border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback 92 | border-right-color: @popover-arrow-outer-color; 93 | &:after { 94 | content: " "; 95 | left: 1px; 96 | bottom: -@popover-arrow-width; 97 | border-left-width: 0; 98 | border-right-color: @popover-arrow-color; 99 | } 100 | } 101 | &.bottom > .arrow { 102 | left: 50%; 103 | margin-left: -@popover-arrow-outer-width; 104 | border-top-width: 0; 105 | border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback 106 | border-bottom-color: @popover-arrow-outer-color; 107 | top: -@popover-arrow-outer-width; 108 | &:after { 109 | content: " "; 110 | top: 1px; 111 | margin-left: -@popover-arrow-width; 112 | border-top-width: 0; 113 | border-bottom-color: @popover-arrow-color; 114 | } 115 | } 116 | 117 | &.left > .arrow { 118 | top: 50%; 119 | right: -@popover-arrow-outer-width; 120 | margin-top: -@popover-arrow-outer-width; 121 | border-right-width: 0; 122 | border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback 123 | border-left-color: @popover-arrow-outer-color; 124 | &:after { 125 | content: " "; 126 | right: 1px; 127 | border-right-width: 0; 128 | border-left-color: @popover-arrow-color; 129 | bottom: -@popover-arrow-width; 130 | } 131 | } 132 | 133 | } 134 | -------------------------------------------------------------------------------- /less/bootstrap3/print.less: -------------------------------------------------------------------------------- 1 | // 2 | // Basic print styles 3 | // -------------------------------------------------- 4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css 5 | 6 | @media print { 7 | 8 | * { 9 | text-shadow: none !important; 10 | color: #000 !important; // Black prints faster: h5bp.com/s 11 | background: transparent !important; 12 | box-shadow: none !important; 13 | } 14 | 15 | a, 16 | a:visited { 17 | text-decoration: underline; 18 | } 19 | 20 | a[href]:after { 21 | content: " (" attr(href) ")"; 22 | } 23 | 24 | abbr[title]:after { 25 | content: " (" attr(title) ")"; 26 | } 27 | 28 | // Don't show links for images, or javascript/internal links 29 | a[href^="javascript:"]:after, 30 | a[href^="#"]:after { 31 | content: ""; 32 | } 33 | 34 | pre, 35 | blockquote { 36 | border: 1px solid #999; 37 | page-break-inside: avoid; 38 | } 39 | 40 | thead { 41 | display: table-header-group; // h5bp.com/t 42 | } 43 | 44 | tr, 45 | img { 46 | page-break-inside: avoid; 47 | } 48 | 49 | img { 50 | max-width: 100% !important; 51 | } 52 | 53 | p, 54 | h2, 55 | h3 { 56 | orphans: 3; 57 | widows: 3; 58 | } 59 | 60 | h2, 61 | h3 { 62 | page-break-after: avoid; 63 | } 64 | 65 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245 66 | // Once fixed, we can just straight up remove this. 67 | select { 68 | background: #fff !important; 69 | } 70 | 71 | // Bootstrap components 72 | .navbar { 73 | display: none; 74 | } 75 | .table { 76 | td, 77 | th { 78 | background-color: #fff !important; 79 | } 80 | } 81 | .btn, 82 | .dropup > .btn { 83 | > .caret { 84 | border-top-color: #000 !important; 85 | } 86 | } 87 | .label { 88 | border: 1px solid #000; 89 | } 90 | 91 | .table { 92 | border-collapse: collapse !important; 93 | } 94 | .table-bordered { 95 | th, 96 | td { 97 | border: 1px solid #ddd !important; 98 | } 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /less/bootstrap3/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | 23 | // Bar itself 24 | // ------------------------- 25 | 26 | // Outer container 27 | .progress { 28 | overflow: hidden; 29 | height: @line-height-computed; 30 | margin-bottom: @line-height-computed; 31 | background-color: @progress-bg; 32 | border-radius: @border-radius-base; 33 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 34 | } 35 | 36 | // Bar of progress 37 | .progress-bar { 38 | float: left; 39 | width: 0%; 40 | height: 100%; 41 | font-size: @font-size-small; 42 | line-height: @line-height-computed; 43 | color: @progress-bar-color; 44 | text-align: center; 45 | background-color: @progress-bar-bg; 46 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 47 | .transition(width .6s ease); 48 | } 49 | 50 | // Striped bars 51 | .progress-striped .progress-bar { 52 | #gradient > .striped(); 53 | background-size: 40px 40px; 54 | } 55 | 56 | // Call animation for the active one 57 | .progress.active .progress-bar { 58 | .animation(progress-bar-stripes 2s linear infinite); 59 | } 60 | 61 | 62 | 63 | // Variations 64 | // ------------------------- 65 | 66 | .progress-bar-success { 67 | .progress-bar-variant(@progress-bar-success-bg); 68 | } 69 | 70 | .progress-bar-info { 71 | .progress-bar-variant(@progress-bar-info-bg); 72 | } 73 | 74 | .progress-bar-warning { 75 | .progress-bar-variant(@progress-bar-warning-bg); 76 | } 77 | 78 | .progress-bar-danger { 79 | .progress-bar-variant(@progress-bar-danger-bg); 80 | } 81 | -------------------------------------------------------------------------------- /less/bootstrap3/responsive-utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // IE10 in Windows (Phone) 8 7 | // 8 | // Support for responsive views via media queries is kind of borked in IE10, for 9 | // Surface/desktop in split view and for Windows Phone 8. This particular fix 10 | // must be accompanied by a snippet of JavaScript to sniff the user agent and 11 | // apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at 12 | // our Getting Started page for more information on this bug. 13 | // 14 | // For more information, see the following: 15 | // 16 | // Issue: https://github.com/twbs/bootstrap/issues/10497 17 | // Docs: http://getbootstrap.com/getting-started/#browsers 18 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ 19 | 20 | @-ms-viewport { 21 | width: device-width; 22 | } 23 | 24 | 25 | // Visibility utilities 26 | .visible-xs, 27 | .visible-sm, 28 | .visible-md, 29 | .visible-lg { 30 | .responsive-invisibility(); 31 | } 32 | 33 | .visible-xs { 34 | @media (max-width: @screen-xs-max) { 35 | .responsive-visibility(); 36 | } 37 | } 38 | .visible-sm { 39 | @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { 40 | .responsive-visibility(); 41 | } 42 | } 43 | .visible-md { 44 | @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { 45 | .responsive-visibility(); 46 | } 47 | } 48 | .visible-lg { 49 | @media (min-width: @screen-lg-min) { 50 | .responsive-visibility(); 51 | } 52 | } 53 | 54 | .hidden-xs { 55 | @media (max-width: @screen-xs-max) { 56 | .responsive-invisibility(); 57 | } 58 | } 59 | .hidden-sm { 60 | @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { 61 | .responsive-invisibility(); 62 | } 63 | } 64 | .hidden-md { 65 | @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { 66 | .responsive-invisibility(); 67 | } 68 | } 69 | .hidden-lg { 70 | @media (min-width: @screen-lg-min) { 71 | .responsive-invisibility(); 72 | } 73 | } 74 | 75 | 76 | // Print utilities 77 | // 78 | // Media queries are placed on the inside to be mixin-friendly. 79 | 80 | .visible-print { 81 | .responsive-invisibility(); 82 | 83 | @media print { 84 | .responsive-visibility(); 85 | } 86 | } 87 | 88 | .hidden-print { 89 | @media print { 90 | .responsive-invisibility(); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /less/bootstrap3/scaffolding.less: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Reset the box-sizing 7 | // 8 | // Heads up! This reset may cause conflicts with some third-party widgets. 9 | // For recommendations on resolving such conflicts, see 10 | // http://getbootstrap.com/getting-started/#third-box-sizing 11 | * { 12 | .box-sizing(border-box); 13 | } 14 | *:before, 15 | *:after { 16 | .box-sizing(border-box); 17 | } 18 | 19 | 20 | // Body reset 21 | 22 | html { 23 | font-size: 62.5%; 24 | -webkit-tap-highlight-color: rgba(0,0,0,0); 25 | } 26 | 27 | body { 28 | font-family: @font-family-base; 29 | font-size: @font-size-base; 30 | line-height: @line-height-base; 31 | color: @text-color; 32 | background-color: @body-bg; 33 | } 34 | 35 | // Reset fonts for relevant elements 36 | input, 37 | button, 38 | select, 39 | textarea { 40 | font-family: inherit; 41 | font-size: inherit; 42 | line-height: inherit; 43 | } 44 | 45 | 46 | // Links 47 | 48 | a { 49 | color: @link-color; 50 | text-decoration: none; 51 | 52 | &:hover, 53 | &:focus { 54 | color: @link-hover-color; 55 | text-decoration: underline; 56 | } 57 | 58 | &:focus { 59 | .tab-focus(); 60 | } 61 | } 62 | 63 | 64 | // Figures 65 | // 66 | // We reset this here because previously Normalize had no `figure` margins. This 67 | // ensures we don't break anyone's use of the element. 68 | 69 | figure { 70 | margin: 0; 71 | } 72 | 73 | 74 | // Images 75 | 76 | img { 77 | vertical-align: middle; 78 | } 79 | 80 | // Responsive images (ensure images don't scale beyond their parents) 81 | .img-responsive { 82 | .img-responsive(); 83 | } 84 | 85 | // Rounded corners 86 | .img-rounded { 87 | border-radius: @border-radius-large; 88 | } 89 | 90 | // Image thumbnails 91 | // 92 | // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. 93 | .img-thumbnail { 94 | padding: @thumbnail-padding; 95 | line-height: @line-height-base; 96 | background-color: @thumbnail-bg; 97 | border: 1px solid @thumbnail-border; 98 | border-radius: @thumbnail-border-radius; 99 | .transition(all .2s ease-in-out); 100 | 101 | // Keep them at most 100% wide 102 | .img-responsive(inline-block); 103 | } 104 | 105 | // Perfect circle 106 | .img-circle { 107 | border-radius: 50%; // set radius in percents 108 | } 109 | 110 | 111 | // Horizontal rules 112 | 113 | hr { 114 | margin-top: @line-height-computed; 115 | margin-bottom: @line-height-computed; 116 | border: 0; 117 | border-top: 1px solid @hr-border; 118 | } 119 | 120 | 121 | // Only display content to screen readers 122 | // 123 | // See: http://a11yproject.com/posts/how-to-hide-content/ 124 | 125 | .sr-only { 126 | position: absolute; 127 | width: 1px; 128 | height: 1px; 129 | margin: -1px; 130 | padding: 0; 131 | overflow: hidden; 132 | clip: rect(0,0,0,0); 133 | border: 0; 134 | } 135 | -------------------------------------------------------------------------------- /less/bootstrap3/tables.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tables 3 | // -------------------------------------------------- 4 | 5 | 6 | table { 7 | max-width: 100%; 8 | background-color: @table-bg; 9 | } 10 | th { 11 | text-align: left; 12 | } 13 | 14 | 15 | // Baseline styles 16 | 17 | .table { 18 | width: 100%; 19 | margin-bottom: @line-height-computed; 20 | // Cells 21 | > thead, 22 | > tbody, 23 | > tfoot { 24 | > tr { 25 | > th, 26 | > td { 27 | padding: @table-cell-padding; 28 | line-height: @line-height-base; 29 | vertical-align: top; 30 | border-top: 1px solid @table-border-color; 31 | } 32 | } 33 | } 34 | // Bottom align for column headings 35 | > thead > tr > th { 36 | vertical-align: bottom; 37 | border-bottom: 2px solid @table-border-color; 38 | } 39 | // Remove top border from thead by default 40 | > caption + thead, 41 | > colgroup + thead, 42 | > thead:first-child { 43 | > tr:first-child { 44 | > th, 45 | > td { 46 | border-top: 0; 47 | } 48 | } 49 | } 50 | // Account for multiple tbody instances 51 | > tbody + tbody { 52 | border-top: 2px solid @table-border-color; 53 | } 54 | 55 | // Nesting 56 | .table { 57 | background-color: @body-bg; 58 | } 59 | } 60 | 61 | 62 | // Condensed table w/ half padding 63 | 64 | .table-condensed { 65 | > thead, 66 | > tbody, 67 | > tfoot { 68 | > tr { 69 | > th, 70 | > td { 71 | padding: @table-condensed-cell-padding; 72 | } 73 | } 74 | } 75 | } 76 | 77 | 78 | // Bordered version 79 | // 80 | // Add borders all around the table and between all the columns. 81 | 82 | .table-bordered { 83 | border: 1px solid @table-border-color; 84 | > thead, 85 | > tbody, 86 | > tfoot { 87 | > tr { 88 | > th, 89 | > td { 90 | border: 1px solid @table-border-color; 91 | } 92 | } 93 | } 94 | > thead > tr { 95 | > th, 96 | > td { 97 | border-bottom-width: 2px; 98 | } 99 | } 100 | } 101 | 102 | 103 | // Zebra-striping 104 | // 105 | // Default zebra-stripe styles (alternating gray and transparent backgrounds) 106 | 107 | .table-striped { 108 | > tbody > tr:nth-child(odd) { 109 | > td, 110 | > th { 111 | background-color: @table-bg-accent; 112 | } 113 | } 114 | } 115 | 116 | 117 | // Hover effect 118 | // 119 | // Placed here since it has to come after the potential zebra striping 120 | 121 | .table-hover { 122 | > tbody > tr:hover { 123 | > td, 124 | > th { 125 | background-color: @table-bg-hover; 126 | } 127 | } 128 | } 129 | 130 | 131 | // Table cell sizing 132 | // 133 | // Reset default table behavior 134 | 135 | table col[class*="col-"] { 136 | position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623) 137 | float: none; 138 | display: table-column; 139 | } 140 | table { 141 | td, 142 | th { 143 | &[class*="col-"] { 144 | position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623) 145 | float: none; 146 | display: table-cell; 147 | } 148 | } 149 | } 150 | 151 | 152 | // Table backgrounds 153 | // 154 | // Exact selectors below required to override `.table-striped` and prevent 155 | // inheritance to nested tables. 156 | 157 | // Generate the contextual variants 158 | .table-row-variant(active; @table-bg-active); 159 | .table-row-variant(success; @state-success-bg); 160 | .table-row-variant(info; @state-info-bg); 161 | .table-row-variant(warning; @state-warning-bg); 162 | .table-row-variant(danger; @state-danger-bg); 163 | 164 | 165 | // Responsive tables 166 | // 167 | // Wrap your tables in `.table-responsive` and we'll make them mobile friendly 168 | // by enabling horizontal scrolling. Only applies <768px. Everything above that 169 | // will display normally. 170 | 171 | @media (max-width: @screen-xs-max) { 172 | .table-responsive { 173 | width: 100%; 174 | margin-bottom: (@line-height-computed * 0.75); 175 | overflow-y: hidden; 176 | overflow-x: scroll; 177 | -ms-overflow-style: -ms-autohiding-scrollbar; 178 | border: 1px solid @table-border-color; 179 | -webkit-overflow-scrolling: touch; 180 | 181 | // Tighten up spacing 182 | > .table { 183 | margin-bottom: 0; 184 | 185 | // Ensure the content doesn't wrap 186 | > thead, 187 | > tbody, 188 | > tfoot { 189 | > tr { 190 | > th, 191 | > td { 192 | white-space: nowrap; 193 | } 194 | } 195 | } 196 | } 197 | 198 | // Special overrides for the bordered tables 199 | > .table-bordered { 200 | border: 0; 201 | 202 | // Nuke the appropriate borders so that the parent can handle them 203 | > thead, 204 | > tbody, 205 | > tfoot { 206 | > tr { 207 | > th:first-child, 208 | > td:first-child { 209 | border-left: 0; 210 | } 211 | > th:last-child, 212 | > td:last-child { 213 | border-right: 0; 214 | } 215 | } 216 | } 217 | 218 | // Only nuke the last row's bottom-border in `tbody` and `tfoot` since 219 | // chances are there will be only one `tr` in a `thead` and that would 220 | // remove the border altogether. 221 | > tbody, 222 | > tfoot { 223 | > tr:last-child { 224 | > th, 225 | > td { 226 | border-bottom: 0; 227 | } 228 | } 229 | } 230 | 231 | } 232 | } 233 | } 234 | -------------------------------------------------------------------------------- /less/bootstrap3/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(all .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /less/bootstrap3/tooltip.less: -------------------------------------------------------------------------------- 1 | // 2 | // Tooltips 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .tooltip { 8 | position: absolute; 9 | z-index: @zindex-tooltip; 10 | display: block; 11 | visibility: visible; 12 | font-size: @font-size-small; 13 | line-height: 1.4; 14 | .opacity(0); 15 | 16 | &.in { .opacity(@tooltip-opacity); } 17 | &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; } 18 | &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; } 19 | &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; } 20 | &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; } 21 | } 22 | 23 | // Wrapper for the tooltip content 24 | .tooltip-inner { 25 | max-width: @tooltip-max-width; 26 | padding: 3px 8px; 27 | color: @tooltip-color; 28 | text-align: center; 29 | text-decoration: none; 30 | background-color: @tooltip-bg; 31 | border-radius: @border-radius-base; 32 | } 33 | 34 | // Arrows 35 | .tooltip-arrow { 36 | position: absolute; 37 | width: 0; 38 | height: 0; 39 | border-color: transparent; 40 | border-style: solid; 41 | } 42 | .tooltip { 43 | &.top .tooltip-arrow { 44 | bottom: 0; 45 | left: 50%; 46 | margin-left: -@tooltip-arrow-width; 47 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0; 48 | border-top-color: @tooltip-arrow-color; 49 | } 50 | &.top-left .tooltip-arrow { 51 | bottom: 0; 52 | left: @tooltip-arrow-width; 53 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0; 54 | border-top-color: @tooltip-arrow-color; 55 | } 56 | &.top-right .tooltip-arrow { 57 | bottom: 0; 58 | right: @tooltip-arrow-width; 59 | border-width: @tooltip-arrow-width @tooltip-arrow-width 0; 60 | border-top-color: @tooltip-arrow-color; 61 | } 62 | &.right .tooltip-arrow { 63 | top: 50%; 64 | left: 0; 65 | margin-top: -@tooltip-arrow-width; 66 | border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0; 67 | border-right-color: @tooltip-arrow-color; 68 | } 69 | &.left .tooltip-arrow { 70 | top: 50%; 71 | right: 0; 72 | margin-top: -@tooltip-arrow-width; 73 | border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width; 74 | border-left-color: @tooltip-arrow-color; 75 | } 76 | &.bottom .tooltip-arrow { 77 | top: 0; 78 | left: 50%; 79 | margin-left: -@tooltip-arrow-width; 80 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; 81 | border-bottom-color: @tooltip-arrow-color; 82 | } 83 | &.bottom-left .tooltip-arrow { 84 | top: 0; 85 | left: @tooltip-arrow-width; 86 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; 87 | border-bottom-color: @tooltip-arrow-color; 88 | } 89 | &.bottom-right .tooltip-arrow { 90 | top: 0; 91 | right: @tooltip-arrow-width; 92 | border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; 93 | border-bottom-color: @tooltip-arrow-color; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /less/bootstrap3/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | } 57 | -------------------------------------------------------------------------------- /less/bootstrap3/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /less/icomoon.less: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'IcoMoon'; 3 | src: url('../../../../media/jui/fonts/IcoMoon.eot'); 4 | src: url('../../../../media/jui/fonts/IcoMoon.eot?#iefix') format('embedded-opentype'), 5 | url('../../../../media/jui/fonts/IcoMoon.woff') format('woff'), 6 | url('../../../../media/jui/fonts/IcoMoon.ttf') format('truetype'), 7 | url('../../../../media/jui/fonts/IcoMoon.svg#IcoMoon') format('svg'); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | @import "../../../../media/jui/less/icomoon.less"; 12 | .icon-edit:before { 13 | color: @btnInfoBackgroundHighlight; 14 | } 15 | .icon-publish:before, 16 | .icon-save:before, 17 | .icon-ok:before, 18 | .icon-save-new:before, 19 | .icon-save-copy:before, 20 | .btn-toolbar .icon-copy:before { 21 | color: @btnSuccessBackgroundHighlight; 22 | } 23 | .icon-unpublish:before, 24 | .icon-not-ok:before, 25 | .icon-eye-close:before, 26 | .icon-ban-circle:before, 27 | .icon-minus-sign:before, 28 | .btn-toolbar .icon-cancel:before { 29 | color: @btnDangerBackgroundHighlight; 30 | } 31 | .icon-featured:before, 32 | .icon-default:before, 33 | .icon-pending:before { 34 | color: @btnWarningBackgroundHighlight; 35 | } 36 | -------------------------------------------------------------------------------- /less/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /less/template-rtl.less: -------------------------------------------------------------------------------- 1 | @import "template.less"; 2 | @import "../../../../media/jui/less/bootstrap-rtl.less"; 3 | 4 | .navbar { 5 | .admin-logo { 6 | float: right; 7 | padding: 7px 15px 0px 12px; 8 | } 9 | .brand { 10 | float: left; 11 | padding: 6px 10px; 12 | } 13 | .nav { 14 | margin: 0 0 0 10px; 15 | > li > a { 16 | padding: 6px 10px; 17 | } 18 | } 19 | } 20 | .container-logo { 21 | padding-top: 0; 22 | float: left; 23 | text-align: left; 24 | } 25 | .page-title { 26 | [class^="icon-"], 27 | [class*=" icon-"] { 28 | margin-right: 0; 29 | margin-left: 16px; 30 | } 31 | } 32 | @media (max-width: 767px) { 33 | .navbar { 34 | .admin-logo { 35 | margin-right: 10px; 36 | padding: 9px 9px 0 9px; 37 | } 38 | .btn-navbar { 39 | float: left; 40 | margin-right: 5px; 41 | margin-left: 3px; 42 | } 43 | .nav-collapse .nav.pull-left { 44 | float: none; 45 | margin-left: 0; 46 | margin-right: 0; 47 | } 48 | } 49 | .nav-collapse .nav > li { 50 | float: none; 51 | } 52 | .page-title { 53 | [class^="icon-"], 54 | [class*=" icon-"] { 55 | margin-left: 10px; 56 | } 57 | } 58 | } 59 | /* Status module */ 60 | #status .badge { 61 | margin-left: 0; 62 | } 63 | /* Menus */ 64 | .dropdown-menu > li > a { 65 | text-align: right; 66 | } 67 | /* Dropdown toggle icon align */ 68 | .btn-group > .btn + .dropdown-toggle { 69 | float: none; 70 | } 71 | 72 | /* For grid.boolean */ 73 | a.grid_false { 74 | display: inline-block; 75 | height: 16px; 76 | width: 16px; 77 | background-image: url('../images/admin/publish_r.png'); 78 | } 79 | a.grid_true { 80 | display: inline-block; 81 | height: 16px; 82 | width: 16px; 83 | background-image: url('../images/admin/icon-16-allow.png'); 84 | } 85 | -------------------------------------------------------------------------------- /login.php: -------------------------------------------------------------------------------- 1 | params->get('headerColor', '#184A7D'); 18 | $templateColor = $this->params->get('templateColor', '#13294A'); 19 | 20 | // Add JavaScript Frameworks 21 | JHtml::_('bootstrap.framework'); 22 | JHtml::_('bootstrap.tooltip'); 23 | 24 | // Add Stylesheets 25 | $doc->addStyleSheet($this->baseurl . '/templates/' . $this->template . '/css/template.css'); 26 | 27 | // Load optional RTL Bootstrap CSS 28 | JHtml::_('bootstrap.loadCss', false, $this->direction); 29 | 30 | // Load specific language related CSS 31 | $file = 'language/' . $lang->getTag() . '/' . $lang->getTag() . '.css'; 32 | 33 | if (is_file($file)) 34 | { 35 | $doc->addStyleSheet($file); 36 | } 37 | 38 | // Detecting Active Variables 39 | $option = $app->input->getCmd('option', ''); 40 | $view = $app->input->getCmd('view', ''); 41 | $layout = $app->input->getCmd('layout', ''); 42 | $task = $app->input->getCmd('task', ''); 43 | $itemid = $app->input->getCmd('Itemid', ''); 44 | $sitename = $app->get('sitename'); 45 | 46 | ?> 47 | 48 | 49 | 50 | 51 | 52 | 53 | 58 | 86 | 89 | 90 | 91 | "> 92 | 93 |
      94 |
      95 | 96 | 106 | 109 | 110 |
      111 |
      112 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /templateDetails.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | isis3 5 | 3.4.2 6 | 3/28/2014 7 | Simon Asika 8 | asika32764@gmail.com 9 | Copyright (C) 2012 - 2015 SMS Taiwan, Inc. All rights reserved. 10 | TPL_ISIS_XML_DESCRIPTION 11 | 12 | component.php 13 | cpanel.php 14 | favicon.ico 15 | index.php 16 | login.php 17 | error.php 18 | templateDetails.xml 19 | template_preview.png 20 | template_thumbnail.png 21 | css 22 | html 23 | images 24 | img 25 | js 26 | language 27 | less 28 | 29 | 30 | menu 31 | submenu 32 | toolbar 33 | title 34 | status 35 | icon 36 | cp_shell 37 | cpanel 38 | bottom 39 | footer 40 | login 41 | debug 42 | 43 | 44 | 45 |
      46 | 47 | 51 | 52 | 56 | 57 | 61 | 62 | 66 | 67 | 70 | 71 | 74 | 75 | 81 | 83 | 85 | 86 | 87 | 93 | 95 | 97 | 98 | 99 | 104 | 106 | 108 | 109 | 110 | 116 | 118 | 120 | 121 | 122 |
      123 |
      124 |
      125 |
      126 | -------------------------------------------------------------------------------- /template_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/template_preview.png -------------------------------------------------------------------------------- /template_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asika32764/joomla-bootstrap3-isis-template/537db943eab51fb6e7cc7cfe3f85416eaba6bd98/template_thumbnail.png --------------------------------------------------------------------------------