├── .gitignore ├── .gitreview ├── LICENSE ├── MANIFEST.in ├── README.txt ├── setup.cfg ├── setup.py ├── tox.ini └── xstatic ├── __init__.py └── pkg ├── __init__.py └── bootswatch ├── __init__.py └── data ├── README.md ├── cerulean ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── cosmo ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── cyborg ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── darkly ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── flatly ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── journal ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── lumen ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── paper ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── readable ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── sandstone ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── simplex ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── slate ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── spacelab ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── superhero ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less ├── united ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less └── yeti ├── _bootswatch.scss ├── _variables.scss ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── index.html ├── thumbnail.png └── variables.less /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.sw? 3 | *.sqlite3 4 | .DS_STORE 5 | *.egg-info 6 | .venv 7 | .tox 8 | build 9 | dist 10 | -------------------------------------------------------------------------------- /.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=review.opendev.org 3 | port=29418 4 | project=openstack/xstatic-bootswatch.git 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Thomas Park 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.txt 2 | recursive-include xstatic * 3 | global-exclude *.pyc 4 | global-exclude *.pyo 5 | global-exclude *.orig 6 | global-exclude *.rej 7 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | 2 | XStatic-bootswatch 3 | ------------------ 4 | 5 | bootswatch javascript library packaged for setuptools (easy_install) / pip. 6 | 7 | This package is intended to be used by **any** project that needs these files. 8 | 9 | It intentionally does **not** provide any extra code except some metadata 10 | **nor** has any extra requirements. You MAY use some minimal support code from 11 | the XStatic base package, if you like. 12 | 13 | You can find more info about the xstatic packaging way in the package 14 | `XStatic`. 15 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | name = XStatic-bootswatch 3 | description = bootswatch 3.3.7 (XStatic packaging standard) 4 | description-file = README.rst 5 | maintainer = Rob Cresswell 6 | maintainer-email = robert.cresswell@outlook.com 7 | home-page = http://bootswatch.com 8 | keywords = bootswatch xstatic 9 | license = MIT 10 | zip_safe = False 11 | namespace_packages = 12 | xstatic 13 | xstatic.pkg 14 | 15 | [files] 16 | packages = 17 | xstatic 18 | 19 | [bdist_wheel] 20 | universal = True 21 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | from xstatic.pkg import bootswatch as xs 3 | 4 | # The README.txt file should be written in reST so that PyPI can use 5 | # it to generate your project's PyPI page. 6 | long_description = open('README.txt').read() 7 | 8 | setup( 9 | name=xs.PACKAGE_NAME, 10 | version=xs.PACKAGE_VERSION, 11 | description=xs.DESCRIPTION, 12 | long_description=long_description, 13 | classifiers=xs.CLASSIFIERS, 14 | keywords=xs.KEYWORDS, 15 | maintainer=xs.MAINTAINER, 16 | maintainer_email=xs.MAINTAINER_EMAIL, 17 | license=xs.LICENSE, 18 | url=xs.HOMEPAGE, 19 | platforms=xs.PLATFORMS, 20 | packages=find_packages(), 21 | namespace_packages=['xstatic', 'xstatic.pkg'], 22 | include_package_data=True, 23 | zip_safe=False, 24 | install_requires=[], 25 | ) 26 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | minversion = 1.6 3 | skipsdist = True 4 | envlist = py27,py33,py34 5 | 6 | [testenv:venv] 7 | basepython = python3 8 | commands = {posargs} 9 | 10 | -------------------------------------------------------------------------------- /xstatic/__init__.py: -------------------------------------------------------------------------------- 1 | __import__('pkg_resources').declare_namespace(__name__) 2 | -------------------------------------------------------------------------------- /xstatic/pkg/__init__.py: -------------------------------------------------------------------------------- 1 | __import__('pkg_resources').declare_namespace(__name__) 2 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | XStatic resource package 4 | 5 | See package 'XStatic' for documentation and basic tools. 6 | """ 7 | 8 | # official name, upper/lowercase allowed, no spaces 9 | DISPLAY_NAME = 'bootswatch' 10 | 11 | # name used for PyPi 12 | PACKAGE_NAME = 'XStatic-%s' % DISPLAY_NAME 13 | 14 | NAME = __name__.split('.')[-1] # package name (e.g. 'foo' or 'foo_bar') 15 | # please use a all-lowercase valid python 16 | # package name 17 | 18 | VERSION = '3.3.7' # version of the packaged files, please use the upstream 19 | # version number 20 | BUILD = '0' # our package build number, so we can release new builds 21 | # with fixes for xstatic stuff. 22 | PACKAGE_VERSION = VERSION + '.' + BUILD # version used for PyPi 23 | 24 | DESCRIPTION = "%s %s (XStatic packaging standard)" % (DISPLAY_NAME, VERSION) 25 | 26 | PLATFORMS = 'any' 27 | CLASSIFIERS = [] 28 | KEYWORDS = 'bootswatch xstatic' 29 | 30 | # XStatic-* package maintainer: 31 | MAINTAINER = 'Rob Cresswell' 32 | MAINTAINER_EMAIL = 'robert.cresswell@outlook.com' 33 | 34 | # this refers to the project homepage of the stuff we packaged: 35 | HOMEPAGE = 'http://bootswatch.com' 36 | 37 | # this refers to all files: 38 | LICENSE = 'MIT' 39 | 40 | from os.path import join, dirname 41 | BASE_DIR = join(dirname(__file__), 'data') 42 | # linux package maintainers just can point to their file locations like this: 43 | #BASE_DIR = '/usr/share/javascript/' + NAME 44 | 45 | # location of the Javascript file that's the entry point for this package, if 46 | # one exists, relative to BASE_DIR 47 | 48 | 49 | LOCATIONS = { 50 | # CDN locations (if no public CDN exists, use an empty dict) 51 | # if value is a string, it is a base location, just append relative 52 | # path/filename. if value is a dict, do another lookup using the 53 | # relative path/filename you want. 54 | # your relative path/filenames should usually be without version 55 | # information, because either the base dir/url is exactly for this 56 | # version or the mapping will care for accessing this version. 57 | } 58 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/README.md: -------------------------------------------------------------------------------- 1 | Bootswatch 2 | ========== 3 | 4 | [![Bootswatch Logo](./assets/img/logo-dark.png)](http://bootswatch.com) 5 | 6 | Bootswatch is a collection of open source themes for [Bootstrap](http://getbootstrap.com/). Check it out at [bootswatch.com](http://bootswatch.com). 7 | 8 | Usage 9 | ----- 10 | Download the `bootstrap.min.css` file associated with a theme and replace Bootstrap's default stylesheet. You must still include Bootstrap's JavaScript file to have functional dropdowns, modals, etc. 11 | 12 | The themes are also hosted on [BootstrapCDN](http://www.bootstrapcdn.com/bootswatch/). 13 | 14 | You can import a theme into your styles using either LESS or SASS. 15 | 16 | LESS: 17 | 18 | ``` 19 | @import "bootstrap/less/bootstrap.less"; 20 | @import "bootswatch/theme/variables.less"; 21 | @import "bootswatch/theme/bootswatch.less"; 22 | 23 | ``` 24 | 25 | SASS: 26 | 27 | ``` 28 | @import "bootswatch/theme/variables"; 29 | @import "bootstrap-sass-official/assets/stylesheets/bootstrap"; 30 | @import "bootswatch/theme/bootswatch"; 31 | 32 | ``` 33 | 34 | 35 | Customization 36 | ------ 37 | Bootswatch is open source and you’re welcome to modify the themes. 38 | 39 | Each theme consists of two LESS files. `variables.less`, which is included by default in Bootstrap, allows you to customize [these settings](http://getbootstrap.com/customize/#less-variables). `bootswatch.less` introduces more extensive structural changes. 40 | 41 | These files are also available in SASS. 42 | 43 | Check out the [Help page](http://bootswatch.com/help/) for more details on building your own theme. 44 | 45 | API 46 | ----- 47 | 48 | A simple API is available for integrating your platform with Bootswatch. More info at http://bootswatch.com/help/#api 49 | 50 | Contributing 51 | ----- 52 | It's through your contributions that Bootswatch will continue to improve. You can contribute in several ways. 53 | 54 | **Issues:** Provide a detailed report of any bugs you encounter and open an issue on [GitHub](https://github.com/thomaspark/bootswatch/issues). 55 | 56 | **Documentation:** If you'd like to fix a typo or beef up the docs, you can fork the project, make your changes, and submit a pull request. 57 | 58 | **Code:** Make a fix and submit it as a pull request. When making changes, it's important to keep the CSS, LESS and SASS versions in sync. To do this, be sure to edit the LESS source files for the particular theme, then run the tasks `grunt swatch` and `grunt:convert_less` to build the CSS and LESS. 59 | 60 | **Donation:** Donations are gratefully accepted via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=F22JEM3Q78JC2) and [Gratipay](https://gratipay.com/bootswatch/). 61 | 62 | Author 63 | ------ 64 | Thomas Park 65 | 66 | + http://github.com/thomaspark 67 | + http://thomaspark.co 68 | 69 | Thanks 70 | ------ 71 | [Mark Otto](https://github.com/mdo) and [Jacob Thornton](https://github.com/fat) for [Bootstrap](https://github.com/twbs/bootstrap). 72 | 73 | [Jenil Gogari](http://www.jgog.in/) for his contributions to the Flatly theme. 74 | 75 | [James Taylor](https://github.com/jostylr) for [cors-lite](https://github.com/jostylr/cors-lite). 76 | 77 | [Corey Sewell](https://github.com/cjsewell) for SASS conversion. 78 | 79 | 80 | Copyright and License 81 | ---- 82 | Copyright 2014-2016 Thomas Park 83 | 84 | Code released under the MIT License. 85 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cerulean/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Cerulean 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @mixin btn-shadow($color){ 6 | @include gradient-vertical-three-colors(lighten($color, 8%), $color, 60%, darken($color, 4%)); 7 | filter: none; 8 | border-bottom: 1px solid darken($color, 10%); 9 | } 10 | 11 | // Navbar ===================================================================== 12 | 13 | .navbar { 14 | @include btn-shadow($navbar-default-bg); 15 | filter: none; 16 | @include box-shadow(0 1px 10px rgba(0, 0, 0, 0.1)); 17 | 18 | &-default { 19 | 20 | .badge { 21 | background-color: #fff; 22 | color: $navbar-default-bg; 23 | } 24 | } 25 | 26 | &-inverse { 27 | @include gradient-vertical-three-colors(lighten($navbar-inverse-bg, 8%), lighten($navbar-inverse-bg, 4%), 60%, darken($navbar-inverse-bg, 2%)); 28 | filter: none; 29 | border-bottom: 1px solid darken($navbar-inverse-bg, 10%); 30 | 31 | .badge { 32 | background-color: #fff; 33 | color: $navbar-inverse-bg; 34 | } 35 | } 36 | 37 | .navbar-nav > li > a, 38 | &-brand { 39 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); 40 | } 41 | } 42 | 43 | @media (max-width: $grid-float-breakpoint-max) { 44 | 45 | .navbar { 46 | 47 | .dropdown-header { 48 | color: #fff; 49 | } 50 | 51 | .dropdown-menu { 52 | a { 53 | color: #fff; 54 | } 55 | } 56 | } 57 | } 58 | 59 | // Buttons ==================================================================== 60 | 61 | .btn { 62 | 63 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); 64 | 65 | .caret { 66 | border-top-color: #fff; 67 | } 68 | } 69 | 70 | .btn-default { 71 | 72 | @include btn-shadow($btn-default-bg); 73 | 74 | &:hover { 75 | color: $btn-default-color; 76 | } 77 | 78 | .caret { 79 | border-top-color: $text-color; 80 | } 81 | } 82 | 83 | .btn-default { 84 | @include btn-shadow($btn-default-bg); 85 | } 86 | 87 | .btn-primary { 88 | @include btn-shadow($btn-primary-bg); 89 | } 90 | 91 | .btn-success { 92 | @include btn-shadow($btn-success-bg); 93 | } 94 | 95 | .btn-info { 96 | @include btn-shadow($btn-info-bg); 97 | } 98 | 99 | .btn-warning { 100 | @include btn-shadow($btn-warning-bg); 101 | } 102 | 103 | .btn-danger { 104 | @include btn-shadow($btn-danger-bg); 105 | } 106 | 107 | // Typography ================================================================= 108 | 109 | // Tables ===================================================================== 110 | 111 | // Forms ====================================================================== 112 | 113 | // Navs ======================================================================= 114 | 115 | // Indicators ================================================================= 116 | 117 | // Progress bars ============================================================== 118 | 119 | // Containers ================================================================= 120 | 121 | .panel-primary, 122 | .panel-success, 123 | .panel-warning, 124 | .panel-danger, 125 | .panel-info { 126 | 127 | .panel-heading, 128 | .panel-title { 129 | color: #fff; 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cerulean/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Cerulean 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | .btn-shadow(@color) { 6 | #gradient > .vertical-three-colors(lighten(@color, 8%), @color, 60%, darken(@color, 4%)); 7 | filter: none; 8 | border-bottom: 1px solid darken(@color, 10%); 9 | } 10 | 11 | // Navbar ===================================================================== 12 | 13 | .navbar { 14 | .btn-shadow(@navbar-default-bg); 15 | filter: none; 16 | .box-shadow(0 1px 10px rgba(0, 0, 0, 0.1)); 17 | 18 | &-default { 19 | 20 | .badge { 21 | background-color: #fff; 22 | color: @navbar-default-bg; 23 | } 24 | } 25 | 26 | &-inverse { 27 | #gradient > .vertical-three-colors(lighten(@navbar-inverse-bg, 8%), lighten(@navbar-inverse-bg, 4%), 60%, darken(@navbar-inverse-bg, 2%)); 28 | filter: none; 29 | border-bottom: 1px solid darken(@navbar-inverse-bg, 10%); 30 | 31 | .badge { 32 | background-color: #fff; 33 | color: @navbar-inverse-bg; 34 | } 35 | } 36 | 37 | .navbar-nav > li > a, 38 | &-brand { 39 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); 40 | } 41 | } 42 | 43 | @media (max-width: @grid-float-breakpoint-max) { 44 | 45 | .navbar { 46 | 47 | .dropdown-header { 48 | color: #fff; 49 | } 50 | 51 | .dropdown-menu { 52 | a { 53 | color: #fff; 54 | } 55 | } 56 | } 57 | } 58 | 59 | // Buttons ==================================================================== 60 | 61 | .btn { 62 | 63 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); 64 | 65 | .caret { 66 | border-top-color: #fff; 67 | } 68 | } 69 | 70 | .btn-default { 71 | 72 | .btn-shadow(@btn-default-bg); 73 | 74 | &:hover { 75 | color: @btn-default-color; 76 | } 77 | 78 | .caret { 79 | border-top-color: @text-color; 80 | } 81 | } 82 | 83 | .btn-default { 84 | .btn-shadow(@btn-default-bg); 85 | } 86 | 87 | .btn-primary { 88 | .btn-shadow(@btn-primary-bg); 89 | } 90 | 91 | .btn-success { 92 | .btn-shadow(@btn-success-bg); 93 | } 94 | 95 | .btn-info { 96 | .btn-shadow(@btn-info-bg); 97 | } 98 | 99 | .btn-warning { 100 | .btn-shadow(@btn-warning-bg); 101 | } 102 | 103 | .btn-danger { 104 | .btn-shadow(@btn-danger-bg); 105 | } 106 | 107 | // Typography ================================================================= 108 | 109 | // Tables ===================================================================== 110 | 111 | // Forms ====================================================================== 112 | 113 | // Navs ======================================================================= 114 | 115 | // Indicators ================================================================= 116 | 117 | // Progress bars ============================================================== 118 | 119 | // Containers ================================================================= 120 | 121 | .panel-primary, 122 | .panel-success, 123 | .panel-warning, 124 | .panel-danger, 125 | .panel-info { 126 | 127 | .panel-heading, 128 | .panel-title { 129 | color: #fff; 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cerulean/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/cerulean/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cosmo/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Cosmo 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | 12 | &-inverse { 13 | 14 | .badge { 15 | background-color: #fff; 16 | color: $brand-primary; 17 | } 18 | } 19 | } 20 | 21 | // Buttons ==================================================================== 22 | 23 | // Typography ================================================================= 24 | 25 | body { 26 | -webkit-font-smoothing: antialiased; 27 | } 28 | 29 | .text-primary, 30 | .text-primary:hover { 31 | color: $brand-primary; 32 | } 33 | 34 | .text-success, 35 | .text-success:hover { 36 | color: $brand-success; 37 | } 38 | 39 | .text-danger, 40 | .text-danger:hover { 41 | color: $brand-danger; 42 | } 43 | 44 | .text-warning, 45 | .text-warning:hover { 46 | color: $brand-warning; 47 | } 48 | 49 | .text-info, 50 | .text-info:hover { 51 | color: $brand-info; 52 | } 53 | 54 | // Tables ===================================================================== 55 | 56 | table, 57 | .table { 58 | 59 | a:not(.btn) { 60 | text-decoration: underline; 61 | } 62 | 63 | .dropdown-menu a { 64 | text-decoration: none; 65 | } 66 | 67 | .success, 68 | .warning, 69 | .danger, 70 | .info { 71 | color: #fff; 72 | 73 | a { 74 | color: #fff; 75 | } 76 | } 77 | } 78 | 79 | // Forms ====================================================================== 80 | 81 | 82 | .has-warning { 83 | .help-block, 84 | .control-label, 85 | .radio, 86 | .checkbox, 87 | .radio-inline, 88 | .checkbox-inline, 89 | &.radio label, 90 | &.checkbox label, 91 | &.radio-inline label, 92 | &.checkbox-inline label, 93 | .form-control-feedback { 94 | color: $brand-warning; 95 | } 96 | 97 | .form-control, 98 | .form-control:focus, 99 | .input-group-addon { 100 | border: 1px solid $brand-warning; 101 | } 102 | } 103 | 104 | .has-error { 105 | .help-block, 106 | .control-label, 107 | .radio, 108 | .checkbox, 109 | .radio-inline, 110 | .checkbox-inline, 111 | &.radio label, 112 | &.checkbox label, 113 | &.radio-inline label, 114 | &.checkbox-inline label, 115 | .form-control-feedback { 116 | color: $brand-danger; 117 | } 118 | 119 | .form-control, 120 | .form-control:focus, 121 | .input-group-addon { 122 | border: 1px solid $brand-danger; 123 | } 124 | } 125 | 126 | .has-success { 127 | .help-block, 128 | .control-label, 129 | .radio, 130 | .checkbox, 131 | .radio-inline, 132 | .checkbox-inline, 133 | &.radio label, 134 | &.checkbox label, 135 | &.radio-inline label, 136 | &.checkbox-inline label, 137 | .form-control-feedback { 138 | color: $brand-success; 139 | } 140 | 141 | .form-control, 142 | .form-control:focus, 143 | .input-group-addon { 144 | border: 1px solid $brand-success; 145 | } 146 | } 147 | 148 | // Navs ======================================================================= 149 | 150 | .nav-pills { 151 | 152 | & > li > a { 153 | border-radius: 0; 154 | } 155 | } 156 | 157 | .dropdown-menu { 158 | 159 | & > li > a:hover, 160 | & > li > a:focus { 161 | background-image: none; 162 | } 163 | } 164 | 165 | // Indicators ================================================================= 166 | 167 | .close { 168 | text-decoration: none; 169 | text-shadow: none; 170 | opacity: 0.4; 171 | 172 | &:hover, 173 | &:focus { 174 | opacity: 1; 175 | } 176 | } 177 | 178 | .alert { 179 | border: none; 180 | 181 | .alert-link { 182 | text-decoration: underline; 183 | color: #fff; 184 | } 185 | } 186 | 187 | .label { 188 | border-radius: 0; 189 | } 190 | 191 | // Progress bars ============================================================== 192 | 193 | .progress { 194 | height: 8px; 195 | @include box-shadow(none); 196 | .progress-bar { 197 | font-size: 8px; 198 | line-height: 8px; 199 | } 200 | } 201 | 202 | // Containers ================================================================= 203 | 204 | .panel { 205 | &-heading, 206 | &-footer { 207 | border-top-right-radius: 0; 208 | border-top-left-radius: 0; 209 | } 210 | 211 | &-default { 212 | .close { 213 | color: $text-color; 214 | } 215 | } 216 | } 217 | 218 | a.list-group-item { 219 | 220 | &-success { 221 | &.active { 222 | background-color: $state-success-bg; 223 | } 224 | 225 | &.active:hover, 226 | &.active:focus { 227 | background-color: darken($state-success-bg, 5%); 228 | } 229 | } 230 | 231 | &-warning { 232 | &.active { 233 | background-color: $state-warning-bg; 234 | } 235 | 236 | &.active:hover, 237 | &.active:focus { 238 | background-color: darken($state-warning-bg, 5%); 239 | } 240 | } 241 | 242 | &-danger { 243 | &.active { 244 | background-color: $state-danger-bg; 245 | } 246 | 247 | &.active:hover, 248 | &.active:focus { 249 | background-color: darken($state-danger-bg, 5%); 250 | } 251 | } 252 | } 253 | 254 | .modal { 255 | .close { 256 | color: $text-color; 257 | } 258 | } 259 | 260 | .popover { 261 | color: $text-color; 262 | } 263 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cosmo/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Cosmo 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | 16 | &-inverse { 17 | 18 | .badge { 19 | background-color: #fff; 20 | color: @brand-primary; 21 | } 22 | } 23 | } 24 | 25 | // Buttons ==================================================================== 26 | 27 | // Typography ================================================================= 28 | 29 | body { 30 | -webkit-font-smoothing: antialiased; 31 | } 32 | 33 | .text-primary, 34 | .text-primary:hover { 35 | color: @brand-primary; 36 | } 37 | 38 | .text-success, 39 | .text-success:hover { 40 | color: @brand-success; 41 | } 42 | 43 | .text-danger, 44 | .text-danger:hover { 45 | color: @brand-danger; 46 | } 47 | 48 | .text-warning, 49 | .text-warning:hover { 50 | color: @brand-warning; 51 | } 52 | 53 | .text-info, 54 | .text-info:hover { 55 | color: @brand-info; 56 | } 57 | 58 | // Tables ===================================================================== 59 | 60 | table, 61 | .table { 62 | 63 | a:not(.btn) { 64 | text-decoration: underline; 65 | } 66 | 67 | .dropdown-menu a { 68 | text-decoration: none; 69 | } 70 | 71 | .success, 72 | .warning, 73 | .danger, 74 | .info { 75 | color: #fff; 76 | 77 | a { 78 | color: #fff; 79 | } 80 | } 81 | } 82 | 83 | // Forms ====================================================================== 84 | 85 | 86 | .has-warning { 87 | .help-block, 88 | .control-label, 89 | .radio, 90 | .checkbox, 91 | .radio-inline, 92 | .checkbox-inline, 93 | &.radio label, 94 | &.checkbox label, 95 | &.radio-inline label, 96 | &.checkbox-inline label, 97 | .form-control-feedback { 98 | color: @brand-warning; 99 | } 100 | 101 | .form-control, 102 | .form-control:focus, 103 | .input-group-addon { 104 | border: 1px solid @brand-warning; 105 | } 106 | } 107 | 108 | .has-error { 109 | .help-block, 110 | .control-label, 111 | .radio, 112 | .checkbox, 113 | .radio-inline, 114 | .checkbox-inline, 115 | &.radio label, 116 | &.checkbox label, 117 | &.radio-inline label, 118 | &.checkbox-inline label, 119 | .form-control-feedback { 120 | color: @brand-danger; 121 | } 122 | 123 | .form-control, 124 | .form-control:focus, 125 | .input-group-addon { 126 | border: 1px solid @brand-danger; 127 | } 128 | } 129 | 130 | .has-success { 131 | .help-block, 132 | .control-label, 133 | .radio, 134 | .checkbox, 135 | .radio-inline, 136 | .checkbox-inline, 137 | &.radio label, 138 | &.checkbox label, 139 | &.radio-inline label, 140 | &.checkbox-inline label, 141 | .form-control-feedback { 142 | color: @brand-success; 143 | } 144 | 145 | .form-control, 146 | .form-control:focus, 147 | .input-group-addon { 148 | border: 1px solid @brand-success; 149 | } 150 | } 151 | 152 | // Navs ======================================================================= 153 | 154 | .nav-pills { 155 | 156 | & > li > a { 157 | border-radius: 0; 158 | } 159 | } 160 | 161 | .dropdown-menu { 162 | 163 | & > li > a:hover, 164 | & > li > a:focus { 165 | background-image: none; 166 | } 167 | } 168 | 169 | // Indicators ================================================================= 170 | 171 | .close { 172 | text-decoration: none; 173 | text-shadow: none; 174 | opacity: 0.4; 175 | 176 | &:hover, 177 | &:focus { 178 | opacity: 1; 179 | } 180 | } 181 | 182 | .alert { 183 | border: none; 184 | 185 | .alert-link { 186 | text-decoration: underline; 187 | color: #fff; 188 | } 189 | } 190 | 191 | .label { 192 | border-radius: 0; 193 | } 194 | 195 | // Progress bars ============================================================== 196 | 197 | .progress { 198 | height: 8px; 199 | .box-shadow(none); 200 | .progress-bar { 201 | font-size: 8px; 202 | line-height: 8px; 203 | } 204 | } 205 | 206 | // Containers ================================================================= 207 | 208 | .panel { 209 | &-heading, 210 | &-footer { 211 | border-top-right-radius: 0; 212 | border-top-left-radius: 0; 213 | } 214 | 215 | &-default { 216 | .close { 217 | color: @text-color; 218 | } 219 | } 220 | } 221 | 222 | a.list-group-item { 223 | 224 | &-success { 225 | &.active { 226 | background-color: @state-success-bg; 227 | } 228 | 229 | &.active:hover, 230 | &.active:focus { 231 | background-color: darken(@state-success-bg, 5%); 232 | } 233 | } 234 | 235 | &-warning { 236 | &.active { 237 | background-color: @state-warning-bg; 238 | } 239 | 240 | &.active:hover, 241 | &.active:focus { 242 | background-color: darken(@state-warning-bg, 5%); 243 | } 244 | } 245 | 246 | &-danger { 247 | &.active { 248 | background-color: @state-danger-bg; 249 | } 250 | 251 | &.active:hover, 252 | &.active:focus { 253 | background-color: darken(@state-danger-bg, 5%); 254 | } 255 | } 256 | } 257 | 258 | .modal { 259 | .close { 260 | color: @text-color; 261 | } 262 | } 263 | 264 | .popover { 265 | color: @text-color; 266 | } 267 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cosmo/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/cosmo/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cyborg/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Cyborg 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Roboto:400,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | // Buttons ==================================================================== 11 | 12 | // Typography ================================================================= 13 | 14 | .text-primary, 15 | .text-primary:hover { 16 | color: $brand-primary; 17 | } 18 | 19 | .text-success, 20 | .text-success:hover { 21 | color: $brand-success; 22 | } 23 | 24 | .text-danger, 25 | .text-danger:hover { 26 | color: $brand-danger; 27 | } 28 | 29 | .text-warning, 30 | .text-warning:hover { 31 | color: $brand-warning; 32 | } 33 | 34 | .text-info, 35 | .text-info:hover { 36 | color: $brand-info; 37 | } 38 | 39 | .bg-success, 40 | .bg-info, 41 | .bg-warning, 42 | .bg-danger { 43 | color: #fff; 44 | } 45 | 46 | // Tables ===================================================================== 47 | 48 | table, 49 | .table { 50 | color: #fff; 51 | 52 | a:not(.btn) { 53 | color: #fff; 54 | text-decoration: underline; 55 | } 56 | 57 | .dropdown-menu a { 58 | text-decoration: none; 59 | } 60 | 61 | .text-muted { 62 | color: $text-muted; 63 | } 64 | } 65 | 66 | .table-responsive > .table { 67 | background-color: $table-bg; 68 | } 69 | 70 | // Forms ====================================================================== 71 | 72 | .has-warning { 73 | .help-block, 74 | .control-label, 75 | .radio, 76 | .checkbox, 77 | .radio-inline, 78 | .checkbox-inline, 79 | &.radio label, 80 | &.checkbox label, 81 | &.radio-inline label, 82 | &.checkbox-inline label, 83 | .form-control-feedback { 84 | color: $brand-warning; 85 | } 86 | 87 | .form-control, 88 | .form-control:focus, 89 | .input-group-addon { 90 | border-color: $brand-warning; 91 | } 92 | } 93 | 94 | .has-error { 95 | .help-block, 96 | .control-label, 97 | .radio, 98 | .checkbox, 99 | .radio-inline, 100 | .checkbox-inline, 101 | &.radio label, 102 | &.checkbox label, 103 | &.radio-inline label, 104 | &.checkbox-inline label, 105 | .form-control-feedback { 106 | color: $brand-danger; 107 | } 108 | 109 | .form-control, 110 | .form-control:focus, 111 | .input-group-addon { 112 | border-color: $brand-danger; 113 | } 114 | } 115 | 116 | .has-success { 117 | .help-block, 118 | .control-label, 119 | .radio, 120 | .checkbox, 121 | .radio-inline, 122 | .checkbox-inline, 123 | &.radio label, 124 | &.checkbox label, 125 | &.radio-inline label, 126 | &.checkbox-inline label, 127 | .form-control-feedback { 128 | color: $brand-success; 129 | } 130 | 131 | .form-control, 132 | .form-control:focus, 133 | .input-group-addon { 134 | border-color: $brand-success; 135 | } 136 | } 137 | 138 | legend { 139 | color: #fff; 140 | } 141 | 142 | .input-group-addon { 143 | background-color: $btn-default-bg; 144 | } 145 | 146 | // Navs ======================================================================= 147 | 148 | .nav-tabs, 149 | .nav-pills, 150 | .breadcrumb, 151 | .pager { 152 | 153 | a { 154 | color: #fff; 155 | } 156 | } 157 | 158 | // Indicators ================================================================= 159 | 160 | .alert { 161 | 162 | .alert-link, 163 | a { 164 | color: $alert-warning-text; 165 | text-decoration: underline; 166 | } 167 | 168 | .close { 169 | text-decoration: none; 170 | } 171 | } 172 | 173 | .close { 174 | color: #fff; 175 | text-decoration: none; 176 | opacity: 0.4; 177 | 178 | &:hover, 179 | &:focus { 180 | color: #fff; 181 | opacity: 1; 182 | } 183 | } 184 | 185 | // Progress bars ============================================================== 186 | 187 | // Containers ================================================================= 188 | 189 | a.thumbnail:hover, 190 | a.thumbnail:focus, 191 | a.thumbnail.active { 192 | border-color: $thumbnail-border; 193 | } 194 | 195 | a.list-group-item { 196 | 197 | &.active, 198 | &.active:hover, 199 | &.active:focus { 200 | border-color: $list-group-border; 201 | } 202 | 203 | &-success { 204 | &.active { 205 | background-color: $state-success-bg; 206 | } 207 | 208 | &.active:hover, 209 | &.active:focus { 210 | background-color: darken($state-success-bg, 5%); 211 | } 212 | } 213 | 214 | &-warning { 215 | &.active { 216 | background-color: $state-warning-bg; 217 | } 218 | 219 | &.active:hover, 220 | &.active:focus { 221 | background-color: darken($state-warning-bg, 5%); 222 | } 223 | } 224 | 225 | &-danger { 226 | &.active { 227 | background-color: $state-danger-bg; 228 | } 229 | 230 | &.active:hover, 231 | &.active:focus { 232 | background-color: darken($state-danger-bg, 5%); 233 | } 234 | } 235 | } 236 | 237 | .jumbotron { 238 | 239 | h1, h2, h3, h4, h5, h6 { 240 | color: #fff; 241 | } 242 | } -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cyborg/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Cyborg 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Roboto:400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | // Buttons ==================================================================== 15 | 16 | // Typography ================================================================= 17 | 18 | .text-primary, 19 | .text-primary:hover { 20 | color: @brand-primary; 21 | } 22 | 23 | .text-success, 24 | .text-success:hover { 25 | color: @brand-success; 26 | } 27 | 28 | .text-danger, 29 | .text-danger:hover { 30 | color: @brand-danger; 31 | } 32 | 33 | .text-warning, 34 | .text-warning:hover { 35 | color: @brand-warning; 36 | } 37 | 38 | .text-info, 39 | .text-info:hover { 40 | color: @brand-info; 41 | } 42 | 43 | .bg-success, 44 | .bg-info, 45 | .bg-warning, 46 | .bg-danger { 47 | color: #fff; 48 | } 49 | 50 | // Tables ===================================================================== 51 | 52 | table, 53 | .table { 54 | color: #fff; 55 | 56 | a:not(.btn) { 57 | color: #fff; 58 | text-decoration: underline; 59 | } 60 | 61 | .dropdown-menu a { 62 | text-decoration: none; 63 | } 64 | 65 | .text-muted { 66 | color: @text-muted; 67 | } 68 | } 69 | 70 | .table-responsive > .table { 71 | background-color: @table-bg; 72 | } 73 | 74 | // Forms ====================================================================== 75 | 76 | .has-warning { 77 | .help-block, 78 | .control-label, 79 | .radio, 80 | .checkbox, 81 | .radio-inline, 82 | .checkbox-inline, 83 | &.radio label, 84 | &.checkbox label, 85 | &.radio-inline label, 86 | &.checkbox-inline label, 87 | .form-control-feedback { 88 | color: @brand-warning; 89 | } 90 | 91 | .form-control, 92 | .form-control:focus, 93 | .input-group-addon { 94 | border-color: @brand-warning; 95 | } 96 | } 97 | 98 | .has-error { 99 | .help-block, 100 | .control-label, 101 | .radio, 102 | .checkbox, 103 | .radio-inline, 104 | .checkbox-inline, 105 | &.radio label, 106 | &.checkbox label, 107 | &.radio-inline label, 108 | &.checkbox-inline label, 109 | .form-control-feedback { 110 | color: @brand-danger; 111 | } 112 | 113 | .form-control, 114 | .form-control:focus, 115 | .input-group-addon { 116 | border-color: @brand-danger; 117 | } 118 | } 119 | 120 | .has-success { 121 | .help-block, 122 | .control-label, 123 | .radio, 124 | .checkbox, 125 | .radio-inline, 126 | .checkbox-inline, 127 | &.radio label, 128 | &.checkbox label, 129 | &.radio-inline label, 130 | &.checkbox-inline label, 131 | .form-control-feedback { 132 | color: @brand-success; 133 | } 134 | 135 | .form-control, 136 | .form-control:focus, 137 | .input-group-addon { 138 | border-color: @brand-success; 139 | } 140 | } 141 | 142 | legend { 143 | color: #fff; 144 | } 145 | 146 | .input-group-addon { 147 | background-color: @btn-default-bg; 148 | } 149 | 150 | // Navs ======================================================================= 151 | 152 | .nav-tabs, 153 | .nav-pills, 154 | .breadcrumb, 155 | .pager { 156 | 157 | a { 158 | color: #fff; 159 | } 160 | } 161 | 162 | // Indicators ================================================================= 163 | 164 | .alert { 165 | 166 | .alert-link, 167 | a { 168 | color: @alert-warning-text; 169 | text-decoration: underline; 170 | } 171 | 172 | .close { 173 | text-decoration: none; 174 | } 175 | } 176 | 177 | .close { 178 | color: #fff; 179 | text-decoration: none; 180 | opacity: 0.4; 181 | 182 | &:hover, 183 | &:focus { 184 | color: #fff; 185 | opacity: 1; 186 | } 187 | } 188 | 189 | // Progress bars ============================================================== 190 | 191 | // Containers ================================================================= 192 | 193 | a.thumbnail:hover, 194 | a.thumbnail:focus, 195 | a.thumbnail.active { 196 | border-color: @thumbnail-border; 197 | } 198 | 199 | a.list-group-item { 200 | 201 | &.active, 202 | &.active:hover, 203 | &.active:focus { 204 | border-color: @list-group-border; 205 | } 206 | 207 | &-success { 208 | &.active { 209 | background-color: @state-success-bg; 210 | } 211 | 212 | &.active:hover, 213 | &.active:focus { 214 | background-color: darken(@state-success-bg, 5%); 215 | } 216 | } 217 | 218 | &-warning { 219 | &.active { 220 | background-color: @state-warning-bg; 221 | } 222 | 223 | &.active:hover, 224 | &.active:focus { 225 | background-color: darken(@state-warning-bg, 5%); 226 | } 227 | } 228 | 229 | &-danger { 230 | &.active { 231 | background-color: @state-danger-bg; 232 | } 233 | 234 | &.active:hover, 235 | &.active:focus { 236 | background-color: darken(@state-danger-bg, 5%); 237 | } 238 | } 239 | } 240 | 241 | .jumbotron { 242 | 243 | h1, h2, h3, h4, h5, h6 { 244 | color: #fff; 245 | } 246 | } -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/cyborg/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/cyborg/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/darkly/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Darkly 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Lato:400,700,400italic" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | border-width: 0; 12 | 13 | &-default { 14 | 15 | .badge { 16 | background-color: #fff; 17 | color: $navbar-default-bg; 18 | } 19 | } 20 | 21 | &-inverse { 22 | 23 | .badge { 24 | background-color: #fff; 25 | color: $navbar-inverse-bg; 26 | } 27 | } 28 | 29 | &-brand { 30 | line-height: 1; 31 | } 32 | 33 | &-form { 34 | .form-control { 35 | background-color: white; 36 | 37 | &:focus { 38 | border-color: white; 39 | } 40 | } 41 | } 42 | } 43 | 44 | // Buttons ==================================================================== 45 | 46 | .btn { 47 | border-width: 2px; 48 | } 49 | 50 | .btn:active { 51 | @include box-shadow(none); 52 | } 53 | 54 | .btn-group.open .dropdown-toggle { 55 | @include box-shadow(none); 56 | } 57 | 58 | // Typography ================================================================= 59 | 60 | .text-primary, 61 | .text-primary:hover { 62 | color: lighten($brand-primary, 10%); 63 | } 64 | 65 | .text-success, 66 | .text-success:hover { 67 | color: $brand-success; 68 | } 69 | 70 | .text-danger, 71 | .text-danger:hover { 72 | color: $brand-danger; 73 | } 74 | 75 | .text-warning, 76 | .text-warning:hover { 77 | color: $brand-warning; 78 | } 79 | 80 | .text-info, 81 | .text-info:hover { 82 | color: $brand-info; 83 | } 84 | 85 | // Tables ===================================================================== 86 | 87 | table, 88 | .table { 89 | 90 | a:not(.btn) { 91 | text-decoration: underline; 92 | } 93 | 94 | .dropdown-menu a { 95 | text-decoration: none; 96 | } 97 | 98 | .success, 99 | .warning, 100 | .danger, 101 | .info { 102 | color: #fff; 103 | 104 | > th > a, 105 | > td > a, 106 | > a { 107 | color: #fff; 108 | } 109 | } 110 | 111 | > thead > tr > th, 112 | > tbody > tr > th, 113 | > tfoot > tr > th, 114 | > thead > tr > td, 115 | > tbody > tr > td, 116 | > tfoot > tr > td { 117 | border: none; 118 | } 119 | 120 | &-bordered > thead > tr > th, 121 | &-bordered > tbody > tr > th, 122 | &-bordered > tfoot > tr > th, 123 | &-bordered > thead > tr > td, 124 | &-bordered > tbody > tr > td, 125 | &-bordered > tfoot > tr > td { 126 | border: 1px solid $table-border-color; 127 | } 128 | } 129 | 130 | // Forms ====================================================================== 131 | 132 | input, 133 | textarea { 134 | color: $input-color; 135 | } 136 | 137 | .form-control, 138 | input, 139 | textarea { 140 | border: 2px hidden transparent; 141 | @include box-shadow(none); 142 | 143 | &:focus { 144 | @include box-shadow(none); 145 | } 146 | } 147 | 148 | .form-control-feedback { 149 | color: $input-color; 150 | } 151 | 152 | .has-warning { 153 | .help-block, 154 | .control-label, 155 | .radio, 156 | .checkbox, 157 | .radio-inline, 158 | .checkbox-inline, 159 | &.radio label, 160 | &.checkbox label, 161 | &.radio-inline label, 162 | &.checkbox-inline label, 163 | .form-control-feedback { 164 | color: $brand-warning; 165 | } 166 | 167 | .form-control, 168 | .form-control:focus { 169 | @include box-shadow(none); 170 | } 171 | 172 | .input-group-addon { 173 | border-color: $brand-warning; 174 | } 175 | } 176 | 177 | .has-error { 178 | .help-block, 179 | .control-label, 180 | .radio, 181 | .checkbox, 182 | .radio-inline, 183 | .checkbox-inline, 184 | &.radio label, 185 | &.checkbox label, 186 | &.radio-inline label, 187 | &.checkbox-inline label, 188 | .form-control-feedback { 189 | color: $brand-danger; 190 | } 191 | 192 | .form-control, 193 | .form-control:focus { 194 | @include box-shadow(none); 195 | } 196 | 197 | .input-group-addon { 198 | border-color: $brand-danger; 199 | } 200 | } 201 | 202 | .has-success { 203 | .help-block, 204 | .control-label, 205 | .radio, 206 | .checkbox, 207 | .radio-inline, 208 | .checkbox-inline, 209 | &.radio label, 210 | &.checkbox label, 211 | &.radio-inline label, 212 | &.checkbox-inline label, 213 | .form-control-feedback { 214 | color: $brand-success; 215 | } 216 | 217 | .form-control, 218 | .form-control:focus { 219 | @include box-shadow(none); 220 | } 221 | 222 | .input-group-addon { 223 | border-color: $brand-success; 224 | } 225 | } 226 | 227 | .input-group-addon { 228 | color: $text-color; 229 | } 230 | 231 | // Navs ======================================================================= 232 | 233 | .nav { 234 | .open > a, 235 | .open > a:hover, 236 | .open > a:focus { 237 | border-color: $nav-tabs-border-color; 238 | } 239 | } 240 | 241 | .nav-tabs > li > a, 242 | .nav-pills > li > a { 243 | color: #fff; 244 | } 245 | 246 | .pager { 247 | a, 248 | a:hover { 249 | color: #fff; 250 | } 251 | 252 | .disabled { 253 | &>a, 254 | &>a:hover, 255 | &>a:focus, 256 | &>span { 257 | background-color: $pagination-disabled-bg; 258 | } 259 | } 260 | } 261 | 262 | .breadcrumb a { 263 | color: #fff; 264 | } 265 | 266 | // Indicators ================================================================= 267 | 268 | .close { 269 | text-decoration: none; 270 | text-shadow: none; 271 | opacity: 0.4; 272 | 273 | &:hover, 274 | &:focus { 275 | opacity: 1; 276 | } 277 | } 278 | 279 | .alert { 280 | .alert-link { 281 | color: #fff; 282 | text-decoration: underline; 283 | } 284 | } 285 | 286 | // Progress bars ============================================================== 287 | 288 | .progress { 289 | height: 10px; 290 | @include box-shadow(none); 291 | .progress-bar { 292 | font-size: 10px; 293 | line-height: 10px; 294 | } 295 | } 296 | 297 | // Containers ================================================================= 298 | 299 | .well { 300 | @include box-shadow(none); 301 | } 302 | 303 | a.list-group-item { 304 | 305 | &.active, 306 | &.active:hover, 307 | &.active:focus { 308 | border-color: $list-group-border; 309 | } 310 | 311 | &-success { 312 | &.active { 313 | background-color: $state-success-bg; 314 | } 315 | 316 | &.active:hover, 317 | &.active:focus { 318 | background-color: darken($state-success-bg, 5%); 319 | } 320 | } 321 | 322 | &-warning { 323 | &.active { 324 | background-color: $state-warning-bg; 325 | } 326 | 327 | &.active:hover, 328 | &.active:focus { 329 | background-color: darken($state-warning-bg, 5%); 330 | } 331 | } 332 | 333 | &-danger { 334 | &.active { 335 | background-color: $state-danger-bg; 336 | } 337 | 338 | &.active:hover, 339 | &.active:focus { 340 | background-color: darken($state-danger-bg, 5%); 341 | } 342 | } 343 | } 344 | 345 | .popover { 346 | color: $text-color; 347 | } 348 | 349 | .panel-default > .panel-heading { 350 | background-color: $panel-footer-bg; 351 | } 352 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/darkly/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Darkly 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Lato:400,700,400italic"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | border-width: 0; 16 | 17 | &-default { 18 | 19 | .badge { 20 | background-color: #fff; 21 | color: @navbar-default-bg; 22 | } 23 | } 24 | 25 | &-inverse { 26 | 27 | .badge { 28 | background-color: #fff; 29 | color: @navbar-inverse-bg; 30 | } 31 | } 32 | 33 | &-brand { 34 | line-height: 1; 35 | } 36 | 37 | &-form { 38 | .form-control { 39 | background-color: white; 40 | 41 | &:focus { 42 | border-color: white; 43 | } 44 | } 45 | } 46 | } 47 | 48 | // Buttons ==================================================================== 49 | 50 | .btn { 51 | border-width: 2px; 52 | } 53 | 54 | .btn:active { 55 | .box-shadow(none); 56 | } 57 | 58 | .btn-group.open .dropdown-toggle { 59 | .box-shadow(none); 60 | } 61 | 62 | // Typography ================================================================= 63 | 64 | .text-primary, 65 | .text-primary:hover { 66 | color: lighten(@brand-primary, 10%); 67 | } 68 | 69 | .text-success, 70 | .text-success:hover { 71 | color: @brand-success; 72 | } 73 | 74 | .text-danger, 75 | .text-danger:hover { 76 | color: @brand-danger; 77 | } 78 | 79 | .text-warning, 80 | .text-warning:hover { 81 | color: @brand-warning; 82 | } 83 | 84 | .text-info, 85 | .text-info:hover { 86 | color: @brand-info; 87 | } 88 | 89 | // Tables ===================================================================== 90 | 91 | table, 92 | .table { 93 | 94 | a:not(.btn) { 95 | text-decoration: underline; 96 | } 97 | 98 | .dropdown-menu a { 99 | text-decoration: none; 100 | } 101 | 102 | .success, 103 | .warning, 104 | .danger, 105 | .info { 106 | color: #fff; 107 | 108 | > th > a, 109 | > td > a, 110 | > a { 111 | color: #fff; 112 | } 113 | } 114 | 115 | > thead > tr > th, 116 | > tbody > tr > th, 117 | > tfoot > tr > th, 118 | > thead > tr > td, 119 | > tbody > tr > td, 120 | > tfoot > tr > td { 121 | border: none; 122 | } 123 | 124 | &-bordered > thead > tr > th, 125 | &-bordered > tbody > tr > th, 126 | &-bordered > tfoot > tr > th, 127 | &-bordered > thead > tr > td, 128 | &-bordered > tbody > tr > td, 129 | &-bordered > tfoot > tr > td { 130 | border: 1px solid @table-border-color; 131 | } 132 | } 133 | 134 | // Forms ====================================================================== 135 | 136 | input, 137 | textarea { 138 | color: @input-color; 139 | } 140 | 141 | .form-control, 142 | input, 143 | textarea { 144 | border: 2px hidden transparent; 145 | .box-shadow(none); 146 | 147 | &:focus { 148 | .box-shadow(none); 149 | } 150 | } 151 | 152 | .form-control-feedback { 153 | color: @input-color; 154 | } 155 | 156 | .has-warning { 157 | .help-block, 158 | .control-label, 159 | .radio, 160 | .checkbox, 161 | .radio-inline, 162 | .checkbox-inline, 163 | &.radio label, 164 | &.checkbox label, 165 | &.radio-inline label, 166 | &.checkbox-inline label, 167 | .form-control-feedback { 168 | color: @brand-warning; 169 | } 170 | 171 | .form-control, 172 | .form-control:focus { 173 | .box-shadow(none); 174 | } 175 | 176 | .input-group-addon { 177 | border-color: @brand-warning; 178 | } 179 | } 180 | 181 | .has-error { 182 | .help-block, 183 | .control-label, 184 | .radio, 185 | .checkbox, 186 | .radio-inline, 187 | .checkbox-inline, 188 | &.radio label, 189 | &.checkbox label, 190 | &.radio-inline label, 191 | &.checkbox-inline label, 192 | .form-control-feedback { 193 | color: @brand-danger; 194 | } 195 | 196 | .form-control, 197 | .form-control:focus { 198 | .box-shadow(none); 199 | } 200 | 201 | .input-group-addon { 202 | border-color: @brand-danger; 203 | } 204 | } 205 | 206 | .has-success { 207 | .help-block, 208 | .control-label, 209 | .radio, 210 | .checkbox, 211 | .radio-inline, 212 | .checkbox-inline, 213 | &.radio label, 214 | &.checkbox label, 215 | &.radio-inline label, 216 | &.checkbox-inline label, 217 | .form-control-feedback { 218 | color: @brand-success; 219 | } 220 | 221 | .form-control, 222 | .form-control:focus { 223 | .box-shadow(none); 224 | } 225 | 226 | .input-group-addon { 227 | border-color: @brand-success; 228 | } 229 | } 230 | 231 | .input-group-addon { 232 | color: @text-color; 233 | } 234 | 235 | // Navs ======================================================================= 236 | 237 | .nav { 238 | .open > a, 239 | .open > a:hover, 240 | .open > a:focus { 241 | border-color: @nav-tabs-border-color; 242 | } 243 | } 244 | 245 | .nav-tabs > li > a, 246 | .nav-pills > li > a { 247 | color: #fff; 248 | } 249 | 250 | .pager { 251 | a, 252 | a:hover { 253 | color: #fff; 254 | } 255 | 256 | .disabled { 257 | &>a, 258 | &>a:hover, 259 | &>a:focus, 260 | &>span { 261 | background-color: @pagination-disabled-bg; 262 | } 263 | } 264 | } 265 | 266 | .breadcrumb a { 267 | color: #fff; 268 | } 269 | 270 | // Indicators ================================================================= 271 | 272 | .close { 273 | text-decoration: none; 274 | text-shadow: none; 275 | opacity: 0.4; 276 | 277 | &:hover, 278 | &:focus { 279 | opacity: 1; 280 | } 281 | } 282 | 283 | .alert { 284 | .alert-link { 285 | color: #fff; 286 | text-decoration: underline; 287 | } 288 | } 289 | 290 | // Progress bars ============================================================== 291 | 292 | .progress { 293 | height: 10px; 294 | .box-shadow(none); 295 | .progress-bar { 296 | font-size: 10px; 297 | line-height: 10px; 298 | } 299 | } 300 | 301 | // Containers ================================================================= 302 | 303 | .well { 304 | .box-shadow(none); 305 | } 306 | 307 | a.list-group-item { 308 | 309 | &.active, 310 | &.active:hover, 311 | &.active:focus { 312 | border-color: @list-group-border; 313 | } 314 | 315 | &-success { 316 | &.active { 317 | background-color: @state-success-bg; 318 | } 319 | 320 | &.active:hover, 321 | &.active:focus { 322 | background-color: darken(@state-success-bg, 5%); 323 | } 324 | } 325 | 326 | &-warning { 327 | &.active { 328 | background-color: @state-warning-bg; 329 | } 330 | 331 | &.active:hover, 332 | &.active:focus { 333 | background-color: darken(@state-warning-bg, 5%); 334 | } 335 | } 336 | 337 | &-danger { 338 | &.active { 339 | background-color: @state-danger-bg; 340 | } 341 | 342 | &.active:hover, 343 | &.active:focus { 344 | background-color: darken(@state-danger-bg, 5%); 345 | } 346 | } 347 | } 348 | 349 | .popover { 350 | color: @text-color; 351 | } 352 | 353 | .panel-default > .panel-heading { 354 | background-color: @panel-footer-bg; 355 | } 356 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/darkly/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/darkly/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/flatly/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Flatly 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Lato:400,700,400italic" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | border-width: 0; 12 | 13 | &-default { 14 | 15 | .badge { 16 | background-color: #fff; 17 | color: $navbar-default-bg; 18 | } 19 | } 20 | 21 | &-inverse { 22 | 23 | .badge { 24 | background-color: #fff; 25 | color: $navbar-inverse-bg; 26 | } 27 | } 28 | 29 | &-brand { 30 | line-height: 1; 31 | } 32 | } 33 | 34 | // Buttons ==================================================================== 35 | 36 | .btn { 37 | border-width: 2px; 38 | } 39 | 40 | .btn:active { 41 | @include box-shadow(none); 42 | } 43 | 44 | .btn-group.open .dropdown-toggle { 45 | @include box-shadow(none); 46 | } 47 | 48 | // Typography ================================================================= 49 | 50 | .text-primary, 51 | .text-primary:hover { 52 | color: $brand-primary; 53 | } 54 | 55 | .text-success, 56 | .text-success:hover { 57 | color: $brand-success; 58 | } 59 | 60 | .text-danger, 61 | .text-danger:hover { 62 | color: $brand-danger; 63 | } 64 | 65 | .text-warning, 66 | .text-warning:hover { 67 | color: $brand-warning; 68 | } 69 | 70 | .text-info, 71 | .text-info:hover { 72 | color: $brand-info; 73 | } 74 | 75 | // Tables ===================================================================== 76 | 77 | table, 78 | .table { 79 | 80 | a:not(.btn) { 81 | text-decoration: underline; 82 | } 83 | 84 | .dropdown-menu a { 85 | text-decoration: none; 86 | } 87 | 88 | .success, 89 | .warning, 90 | .danger, 91 | .info { 92 | color: #fff; 93 | 94 | > th > a, 95 | > td > a, 96 | > a { 97 | color: #fff; 98 | } 99 | } 100 | 101 | > thead > tr > th, 102 | > tbody > tr > th, 103 | > tfoot > tr > th, 104 | > thead > tr > td, 105 | > tbody > tr > td, 106 | > tfoot > tr > td { 107 | border: none; 108 | } 109 | 110 | &-bordered > thead > tr > th, 111 | &-bordered > tbody > tr > th, 112 | &-bordered > tfoot > tr > th, 113 | &-bordered > thead > tr > td, 114 | &-bordered > tbody > tr > td, 115 | &-bordered > tfoot > tr > td { 116 | border: 1px solid $table-border-color; 117 | } 118 | } 119 | 120 | // Forms ====================================================================== 121 | 122 | .form-control, 123 | input { 124 | border-width: 2px; 125 | @include box-shadow(none); 126 | 127 | &:focus { 128 | @include box-shadow(none); 129 | } 130 | } 131 | 132 | .has-warning { 133 | .help-block, 134 | .control-label, 135 | .radio, 136 | .checkbox, 137 | .radio-inline, 138 | .checkbox-inline, 139 | &.radio label, 140 | &.checkbox label, 141 | &.radio-inline label, 142 | &.checkbox-inline label, 143 | .form-control-feedback { 144 | color: $brand-warning; 145 | } 146 | 147 | .form-control, 148 | .form-control:focus { 149 | border: 2px solid $brand-warning; 150 | } 151 | 152 | .input-group-addon { 153 | border-color: $brand-warning; 154 | } 155 | } 156 | 157 | .has-error { 158 | .help-block, 159 | .control-label, 160 | .radio, 161 | .checkbox, 162 | .radio-inline, 163 | .checkbox-inline, 164 | &.radio label, 165 | &.checkbox label, 166 | &.radio-inline label, 167 | &.checkbox-inline label, 168 | .form-control-feedback { 169 | color: $brand-danger; 170 | } 171 | 172 | .form-control, 173 | .form-control:focus { 174 | border: 2px solid $brand-danger; 175 | } 176 | 177 | .input-group-addon { 178 | border-color: $brand-danger; 179 | } 180 | } 181 | 182 | .has-success { 183 | .help-block, 184 | .control-label, 185 | .radio, 186 | .checkbox, 187 | .radio-inline, 188 | .checkbox-inline, 189 | &.radio label, 190 | &.checkbox label, 191 | &.radio-inline label, 192 | &.checkbox-inline label, 193 | .form-control-feedback { 194 | color: $brand-success; 195 | } 196 | 197 | .form-control, 198 | .form-control:focus { 199 | border: 2px solid $brand-success; 200 | } 201 | 202 | .input-group-addon { 203 | border-color: $brand-success; 204 | } 205 | } 206 | 207 | // Navs ======================================================================= 208 | 209 | .nav { 210 | .open > a, 211 | .open > a:hover, 212 | .open > a:focus { 213 | border-color: transparent; 214 | } 215 | } 216 | 217 | .pager { 218 | a, 219 | a:hover { 220 | color: #fff; 221 | } 222 | 223 | .disabled { 224 | &>a, 225 | &>a:hover, 226 | &>a:focus, 227 | &>span { 228 | background-color: $pagination-disabled-bg; 229 | } 230 | } 231 | } 232 | 233 | // Indicators ================================================================= 234 | 235 | .close { 236 | color: #fff; 237 | text-decoration: none; 238 | opacity: 0.4; 239 | 240 | &:hover, 241 | &:focus { 242 | color: #fff; 243 | opacity: 1; 244 | } 245 | } 246 | 247 | .alert { 248 | 249 | .alert-link { 250 | color: #fff; 251 | text-decoration: underline; 252 | } 253 | } 254 | 255 | // Progress bars ============================================================== 256 | 257 | .progress { 258 | height: 10px; 259 | @include box-shadow(none); 260 | .progress-bar { 261 | font-size: 10px; 262 | line-height: 10px; 263 | } 264 | } 265 | 266 | // Containers ================================================================= 267 | 268 | .well { 269 | @include box-shadow(none); 270 | } 271 | 272 | a.list-group-item { 273 | 274 | &.active, 275 | &.active:hover, 276 | &.active:focus { 277 | border-color: $list-group-border; 278 | } 279 | 280 | &-success { 281 | &.active { 282 | background-color: $state-success-bg; 283 | } 284 | 285 | &.active:hover, 286 | &.active:focus { 287 | background-color: darken($state-success-bg, 5%); 288 | } 289 | } 290 | 291 | &-warning { 292 | &.active { 293 | background-color: $state-warning-bg; 294 | } 295 | 296 | &.active:hover, 297 | &.active:focus { 298 | background-color: darken($state-warning-bg, 5%); 299 | } 300 | } 301 | 302 | &-danger { 303 | &.active { 304 | background-color: $state-danger-bg; 305 | } 306 | 307 | &.active:hover, 308 | &.active:focus { 309 | background-color: darken($state-danger-bg, 5%); 310 | } 311 | } 312 | } 313 | 314 | .panel { 315 | &-default { 316 | .close { 317 | color: $text-color; 318 | } 319 | } 320 | } 321 | 322 | .modal { 323 | .close { 324 | color: $text-color; 325 | } 326 | } 327 | 328 | .popover { 329 | color: $text-color; 330 | } 331 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/flatly/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Flatly 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Lato:400,700,400italic"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | border-width: 0; 16 | 17 | &-default { 18 | 19 | .badge { 20 | background-color: #fff; 21 | color: @navbar-default-bg; 22 | } 23 | } 24 | 25 | &-inverse { 26 | 27 | .badge { 28 | background-color: #fff; 29 | color: @navbar-inverse-bg; 30 | } 31 | } 32 | 33 | &-brand { 34 | line-height: 1; 35 | } 36 | } 37 | 38 | // Buttons ==================================================================== 39 | 40 | .btn { 41 | border-width: 2px; 42 | } 43 | 44 | .btn:active { 45 | .box-shadow(none); 46 | } 47 | 48 | .btn-group.open .dropdown-toggle { 49 | .box-shadow(none); 50 | } 51 | 52 | // Typography ================================================================= 53 | 54 | .text-primary, 55 | .text-primary:hover { 56 | color: @brand-primary; 57 | } 58 | 59 | .text-success, 60 | .text-success:hover { 61 | color: @brand-success; 62 | } 63 | 64 | .text-danger, 65 | .text-danger:hover { 66 | color: @brand-danger; 67 | } 68 | 69 | .text-warning, 70 | .text-warning:hover { 71 | color: @brand-warning; 72 | } 73 | 74 | .text-info, 75 | .text-info:hover { 76 | color: @brand-info; 77 | } 78 | 79 | // Tables ===================================================================== 80 | 81 | table, 82 | .table { 83 | 84 | a:not(.btn) { 85 | text-decoration: underline; 86 | } 87 | 88 | .dropdown-menu a { 89 | text-decoration: none; 90 | } 91 | 92 | .success, 93 | .warning, 94 | .danger, 95 | .info { 96 | color: #fff; 97 | 98 | > th > a, 99 | > td > a, 100 | > a { 101 | color: #fff; 102 | } 103 | } 104 | 105 | > thead > tr > th, 106 | > tbody > tr > th, 107 | > tfoot > tr > th, 108 | > thead > tr > td, 109 | > tbody > tr > td, 110 | > tfoot > tr > td { 111 | border: none; 112 | } 113 | 114 | &-bordered > thead > tr > th, 115 | &-bordered > tbody > tr > th, 116 | &-bordered > tfoot > tr > th, 117 | &-bordered > thead > tr > td, 118 | &-bordered > tbody > tr > td, 119 | &-bordered > tfoot > tr > td { 120 | border: 1px solid @table-border-color; 121 | } 122 | } 123 | 124 | // Forms ====================================================================== 125 | 126 | .form-control, 127 | input { 128 | border-width: 2px; 129 | .box-shadow(none); 130 | 131 | &:focus { 132 | .box-shadow(none); 133 | } 134 | } 135 | 136 | .has-warning { 137 | .help-block, 138 | .control-label, 139 | .radio, 140 | .checkbox, 141 | .radio-inline, 142 | .checkbox-inline, 143 | &.radio label, 144 | &.checkbox label, 145 | &.radio-inline label, 146 | &.checkbox-inline label, 147 | .form-control-feedback { 148 | color: @brand-warning; 149 | } 150 | 151 | .form-control, 152 | .form-control:focus { 153 | border: 2px solid @brand-warning; 154 | } 155 | 156 | .input-group-addon { 157 | border-color: @brand-warning; 158 | } 159 | } 160 | 161 | .has-error { 162 | .help-block, 163 | .control-label, 164 | .radio, 165 | .checkbox, 166 | .radio-inline, 167 | .checkbox-inline, 168 | &.radio label, 169 | &.checkbox label, 170 | &.radio-inline label, 171 | &.checkbox-inline label, 172 | .form-control-feedback { 173 | color: @brand-danger; 174 | } 175 | 176 | .form-control, 177 | .form-control:focus { 178 | border: 2px solid @brand-danger; 179 | } 180 | 181 | .input-group-addon { 182 | border-color: @brand-danger; 183 | } 184 | } 185 | 186 | .has-success { 187 | .help-block, 188 | .control-label, 189 | .radio, 190 | .checkbox, 191 | .radio-inline, 192 | .checkbox-inline, 193 | &.radio label, 194 | &.checkbox label, 195 | &.radio-inline label, 196 | &.checkbox-inline label, 197 | .form-control-feedback { 198 | color: @brand-success; 199 | } 200 | 201 | .form-control, 202 | .form-control:focus { 203 | border: 2px solid @brand-success; 204 | } 205 | 206 | .input-group-addon { 207 | border-color: @brand-success; 208 | } 209 | } 210 | 211 | // Navs ======================================================================= 212 | 213 | .nav { 214 | .open > a, 215 | .open > a:hover, 216 | .open > a:focus { 217 | border-color: transparent; 218 | } 219 | } 220 | 221 | .pager { 222 | a, 223 | a:hover { 224 | color: #fff; 225 | } 226 | 227 | .disabled { 228 | &>a, 229 | &>a:hover, 230 | &>a:focus, 231 | &>span { 232 | background-color: @pagination-disabled-bg; 233 | } 234 | } 235 | } 236 | 237 | // Indicators ================================================================= 238 | 239 | .close { 240 | color: #fff; 241 | text-decoration: none; 242 | opacity: 0.4; 243 | 244 | &:hover, 245 | &:focus { 246 | color: #fff; 247 | opacity: 1; 248 | } 249 | } 250 | 251 | .alert { 252 | 253 | .alert-link { 254 | color: #fff; 255 | text-decoration: underline; 256 | } 257 | } 258 | 259 | // Progress bars ============================================================== 260 | 261 | .progress { 262 | height: 10px; 263 | .box-shadow(none); 264 | .progress-bar { 265 | font-size: 10px; 266 | line-height: 10px; 267 | } 268 | } 269 | 270 | // Containers ================================================================= 271 | 272 | .well { 273 | .box-shadow(none); 274 | } 275 | 276 | a.list-group-item { 277 | 278 | &.active, 279 | &.active:hover, 280 | &.active:focus { 281 | border-color: @list-group-border; 282 | } 283 | 284 | &-success { 285 | &.active { 286 | background-color: @state-success-bg; 287 | } 288 | 289 | &.active:hover, 290 | &.active:focus { 291 | background-color: darken(@state-success-bg, 5%); 292 | } 293 | } 294 | 295 | &-warning { 296 | &.active { 297 | background-color: @state-warning-bg; 298 | } 299 | 300 | &.active:hover, 301 | &.active:focus { 302 | background-color: darken(@state-warning-bg, 5%); 303 | } 304 | } 305 | 306 | &-danger { 307 | &.active { 308 | background-color: @state-danger-bg; 309 | } 310 | 311 | &.active:hover, 312 | &.active:focus { 313 | background-color: darken(@state-danger-bg, 5%); 314 | } 315 | } 316 | } 317 | 318 | .panel { 319 | &-default { 320 | .close { 321 | color: @text-color; 322 | } 323 | } 324 | } 325 | 326 | .modal { 327 | .close { 328 | color: @text-color; 329 | } 330 | } 331 | 332 | .popover { 333 | color: @text-color; 334 | } 335 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/flatly/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/flatly/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/journal/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Journal 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=News+Cycle:400,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | font-size: 18px; 12 | font-family: $font-family-sans-serif; 13 | font-weight: $headings-font-weight; 14 | 15 | &-default { 16 | 17 | .badge { 18 | background-color: #000; 19 | color: #fff; 20 | } 21 | } 22 | 23 | &-inverse { 24 | 25 | .badge { 26 | background-color: #fff; 27 | color: $navbar-inverse-bg; 28 | } 29 | } 30 | } 31 | 32 | .navbar-brand { 33 | font-size: inherit; 34 | font-weight: $headings-font-weight; 35 | text-transform: uppercase; 36 | } 37 | 38 | // Buttons ==================================================================== 39 | 40 | // Typography ================================================================= 41 | 42 | // Tables ===================================================================== 43 | 44 | // Forms ====================================================================== 45 | 46 | .has-warning { 47 | .help-block, 48 | .control-label, 49 | .radio, 50 | .checkbox, 51 | .radio-inline, 52 | .checkbox-inline, 53 | &.radio label, 54 | &.checkbox label, 55 | &.radio-inline label, 56 | &.checkbox-inline label, 57 | .form-control-feedback { 58 | color: $brand-danger; 59 | } 60 | 61 | .form-control, 62 | .form-control:focus { 63 | border-color: $brand-danger; 64 | } 65 | } 66 | 67 | .has-error { 68 | .help-block, 69 | .control-label, 70 | .radio, 71 | .checkbox, 72 | .radio-inline, 73 | .checkbox-inline, 74 | &.radio label, 75 | &.checkbox label, 76 | &.radio-inline label, 77 | &.checkbox-inline label, 78 | .form-control-feedback { 79 | color: $brand-primary; 80 | } 81 | 82 | .form-control, 83 | .form-control:focus { 84 | border-color: $brand-primary; 85 | } 86 | } 87 | 88 | .has-success { 89 | .help-block, 90 | .control-label, 91 | .radio, 92 | .checkbox, 93 | .radio-inline, 94 | .checkbox-inline, 95 | &.radio label, 96 | &.checkbox label, 97 | &.radio-inline label, 98 | &.checkbox-inline label, 99 | .form-control-feedback { 100 | color: $brand-success; 101 | } 102 | 103 | .form-control, 104 | .form-control:focus { 105 | border-color: $brand-success; 106 | } 107 | } 108 | 109 | // Navs ======================================================================= 110 | 111 | // Indicators ================================================================= 112 | 113 | .badge { 114 | padding-bottom: 4px; 115 | vertical-align: 3px; 116 | font-size: 10px; 117 | } 118 | 119 | // Progress bars ============================================================== 120 | 121 | // Containers ================================================================= 122 | 123 | .jumbotron { 124 | 125 | h1, h2, h3, h4, h5, h6 { 126 | font-family: $font-family-sans-serif; 127 | font-weight: $headings-font-weight; 128 | color: #000; 129 | } 130 | } 131 | 132 | .panel { 133 | 134 | &-primary, 135 | &-success, 136 | &-warning, 137 | &-danger, 138 | &-info { 139 | .panel-title { 140 | color: #fff; 141 | } 142 | } 143 | 144 | 145 | } 146 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/journal/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Journal 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=News+Cycle:400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | font-size: 18px; 16 | font-family: @font-family-sans-serif; 17 | font-weight: @headings-font-weight; 18 | 19 | &-default { 20 | 21 | .badge { 22 | background-color: #000; 23 | color: #fff; 24 | } 25 | } 26 | 27 | &-inverse { 28 | 29 | .badge { 30 | background-color: #fff; 31 | color: @navbar-inverse-bg; 32 | } 33 | } 34 | } 35 | 36 | .navbar-brand { 37 | font-size: inherit; 38 | font-weight: @headings-font-weight; 39 | text-transform: uppercase; 40 | } 41 | 42 | // Buttons ==================================================================== 43 | 44 | // Typography ================================================================= 45 | 46 | // Tables ===================================================================== 47 | 48 | // Forms ====================================================================== 49 | 50 | .has-warning { 51 | .help-block, 52 | .control-label, 53 | .radio, 54 | .checkbox, 55 | .radio-inline, 56 | .checkbox-inline, 57 | &.radio label, 58 | &.checkbox label, 59 | &.radio-inline label, 60 | &.checkbox-inline label, 61 | .form-control-feedback { 62 | color: @brand-danger; 63 | } 64 | 65 | .form-control, 66 | .form-control:focus { 67 | border-color: @brand-danger; 68 | } 69 | } 70 | 71 | .has-error { 72 | .help-block, 73 | .control-label, 74 | .radio, 75 | .checkbox, 76 | .radio-inline, 77 | .checkbox-inline, 78 | &.radio label, 79 | &.checkbox label, 80 | &.radio-inline label, 81 | &.checkbox-inline label, 82 | .form-control-feedback { 83 | color: @brand-primary; 84 | } 85 | 86 | .form-control, 87 | .form-control:focus { 88 | border-color: @brand-primary; 89 | } 90 | } 91 | 92 | .has-success { 93 | .help-block, 94 | .control-label, 95 | .radio, 96 | .checkbox, 97 | .radio-inline, 98 | .checkbox-inline, 99 | &.radio label, 100 | &.checkbox label, 101 | &.radio-inline label, 102 | &.checkbox-inline label, 103 | .form-control-feedback { 104 | color: @brand-success; 105 | } 106 | 107 | .form-control, 108 | .form-control:focus { 109 | border-color: @brand-success; 110 | } 111 | } 112 | 113 | // Navs ======================================================================= 114 | 115 | // Indicators ================================================================= 116 | 117 | .badge { 118 | padding-bottom: 4px; 119 | vertical-align: 3px; 120 | font-size: 10px; 121 | } 122 | 123 | // Progress bars ============================================================== 124 | 125 | // Containers ================================================================= 126 | 127 | .jumbotron { 128 | 129 | h1, h2, h3, h4, h5, h6 { 130 | font-family: @font-family-sans-serif; 131 | font-weight: @headings-font-weight; 132 | color: #000; 133 | } 134 | } 135 | 136 | .panel { 137 | 138 | &-primary, 139 | &-success, 140 | &-warning, 141 | &-danger, 142 | &-info { 143 | .panel-title { 144 | color: #fff; 145 | } 146 | } 147 | 148 | 149 | } 150 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/journal/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/journal/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/lumen/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Lumen 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic" !default; 6 | @import url($web-font-path); 7 | 8 | @mixin shadow($width: 4px){ 9 | border-width: 0 1px $width 1px; 10 | } 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | @include shadow(); 16 | } 17 | 18 | // Buttons ==================================================================== 19 | 20 | .btn { 21 | padding: ($padding-base-vertical + 2) $padding-base-horizontal $padding-base-vertical; 22 | @include shadow(); 23 | font-size: 12px; 24 | font-weight: bold; 25 | text-transform: uppercase; 26 | 27 | &:hover { 28 | margin-top: 1px; 29 | border-bottom-width: 3px; 30 | } 31 | 32 | &:active { 33 | margin-top: 2px; 34 | border-bottom-width: 2px; 35 | @include box-shadow(none); 36 | } 37 | 38 | &-lg, 39 | &-group-lg > .btn { 40 | padding: ($padding-large-vertical + 2) $padding-large-horizontal $padding-large-vertical; 41 | line-height: 15px; 42 | } 43 | 44 | &-sm, 45 | &-group-sm > .btn { 46 | padding: ($padding-small-vertical + 2) $padding-small-horizontal $padding-small-vertical; 47 | } 48 | 49 | &-xs, 50 | &-group-xs > .btn { 51 | padding: ($padding-xs-vertical + 2) $padding-xs-horizontal $padding-xs-vertical; 52 | } 53 | 54 | &-default:hover, 55 | &-default:focus, 56 | &-group.open .dropdown-toggle.btn-default { 57 | background-color: $btn-default-bg; 58 | border-color: $btn-default-border; 59 | } 60 | 61 | &-primary:hover, 62 | &-primary:focus, 63 | &-group.open .dropdown-toggle.btn-primary { 64 | background-color: $btn-primary-bg; 65 | border-color: $btn-primary-border; 66 | } 67 | 68 | &-success:hover, 69 | &-success:focus, 70 | &-group.open .dropdown-toggle.btn-success { 71 | background-color: $btn-success-bg; 72 | border-color: $btn-success-border; 73 | } 74 | 75 | &-info:hover, 76 | &-info:focus, 77 | &-group.open .dropdown-toggle.btn-info { 78 | background-color: $btn-info-bg; 79 | border-color: $btn-info-border; 80 | } 81 | 82 | &-warning:hover, 83 | &-warning:focus, 84 | &-group.open .dropdown-toggle.btn-warning { 85 | background-color: $btn-warning-bg; 86 | border-color: $btn-warning-border; 87 | } 88 | 89 | &-danger:hover, 90 | &-danger:focus, 91 | &-group.open .dropdown-toggle.btn-danger { 92 | background-color: $btn-danger-bg; 93 | border-color: $btn-danger-border; 94 | } 95 | 96 | &-group.open .dropdown-toggle { 97 | @include box-shadow(none); 98 | } 99 | } 100 | 101 | .navbar-btn { 102 | &:hover { 103 | margin-top: 8px 104 | } 105 | 106 | &:active { 107 | margin-top: 9px 108 | } 109 | 110 | &.btn-sm { 111 | &:hover { 112 | margin-top: 11px 113 | } 114 | 115 | &:active { 116 | margin-top: 12px 117 | } 118 | } 119 | 120 | &.btn-xs { 121 | &:hover { 122 | margin-top: 15px 123 | } 124 | 125 | &:active { 126 | margin-top: 16px 127 | } 128 | } 129 | } 130 | 131 | .btn-group-vertical { 132 | .btn + .btn { 133 | &:hover { 134 | border-top-width: 1px; 135 | } 136 | 137 | &:active { 138 | border-top-width: 2px; 139 | } 140 | } 141 | } 142 | 143 | // Typography ================================================================= 144 | 145 | .text-primary, 146 | .text-primary:hover { 147 | color: $brand-primary; 148 | } 149 | 150 | .text-success, 151 | .text-success:hover { 152 | color: $brand-success; 153 | } 154 | 155 | .text-danger, 156 | .text-danger:hover { 157 | color: $brand-danger; 158 | } 159 | 160 | .text-warning, 161 | .text-warning:hover { 162 | color: $brand-warning; 163 | } 164 | 165 | .text-info, 166 | .text-info:hover { 167 | color: $brand-info; 168 | } 169 | 170 | // Tables ===================================================================== 171 | 172 | table, 173 | .table { 174 | 175 | a:not(.btn) { 176 | text-decoration: underline; 177 | } 178 | 179 | .dropdown-menu a { 180 | text-decoration: none; 181 | } 182 | 183 | .success, 184 | .warning, 185 | .danger, 186 | .info { 187 | color: #fff; 188 | 189 | a:not(.btn) { 190 | color: #fff; 191 | } 192 | } 193 | 194 | &:not(.table-bordered) { 195 | > thead > tr > th, 196 | > tbody > tr > th, 197 | > tfoot > tr > th, 198 | > thead > tr > td, 199 | > tbody > tr > td, 200 | > tfoot > tr > td { 201 | border-color: transparent; 202 | } 203 | } 204 | } 205 | 206 | // Forms ====================================================================== 207 | 208 | .form-control { 209 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 210 | } 211 | 212 | label { 213 | font-weight: normal; 214 | } 215 | 216 | .has-warning { 217 | .help-block, 218 | .control-label, 219 | .radio, 220 | .checkbox, 221 | .radio-inline, 222 | .checkbox-inline, 223 | &.radio label, 224 | &.checkbox label, 225 | &.radio-inline label, 226 | &.checkbox-inline label, 227 | .form-control-feedback { 228 | color: $brand-warning; 229 | } 230 | 231 | .form-control, 232 | .form-control:focus { 233 | border: 1px solid $brand-warning; 234 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 235 | } 236 | 237 | .input-group-addon { 238 | border: 1px solid $brand-warning; 239 | } 240 | } 241 | 242 | .has-error { 243 | .help-block, 244 | .control-label, 245 | .radio, 246 | .checkbox, 247 | .radio-inline, 248 | .checkbox-inline, 249 | &.radio label, 250 | &.checkbox label, 251 | &.radio-inline label, 252 | &.checkbox-inline label, 253 | .form-control-feedback { 254 | color: $brand-danger; 255 | } 256 | 257 | .form-control, 258 | .form-control:focus { 259 | border: 1px solid $brand-danger; 260 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 261 | } 262 | 263 | .input-group-addon { 264 | border: 1px solid $brand-danger; 265 | } 266 | } 267 | 268 | .has-success { 269 | .help-block, 270 | .control-label, 271 | .radio, 272 | .checkbox, 273 | .radio-inline, 274 | .checkbox-inline, 275 | &.radio label, 276 | &.checkbox label, 277 | &.radio-inline label, 278 | &.checkbox-inline label, 279 | .form-control-feedback { 280 | color: $brand-success; 281 | } 282 | 283 | .form-control, 284 | .form-control:focus { 285 | border: 1px solid $brand-success; 286 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 287 | } 288 | 289 | .input-group-addon { 290 | border: 1px solid $brand-success; 291 | } 292 | } 293 | 294 | // Navs ======================================================================= 295 | 296 | .nav { 297 | .open > a, 298 | .open > a:hover, 299 | .open > a:focus { 300 | border-color: transparent; 301 | } 302 | } 303 | 304 | .nav-tabs { 305 | 306 | > li > a { 307 | margin-top: 6px; 308 | border-color: $navbar-default-border; 309 | color: $gray-dark; 310 | @include transition(all 0.2s ease-in-out); 311 | } 312 | 313 | > li > a:hover, 314 | > li > a:focus, 315 | > li.active > a, 316 | > li.active > a:hover, 317 | > li.active > a:focus, 318 | .open > a, 319 | .open > a:hover, 320 | .open > a:focus { 321 | padding-bottom: ($padding-large-vertical + 3); 322 | margin-top: 0; 323 | } 324 | 325 | .open > a, 326 | .open > a:hover, 327 | .open > a:focus { 328 | border-color: $navbar-default-border; 329 | } 330 | 331 | > li.disabled > a:hover, 332 | > li.disabled > a:focus { 333 | padding-top: 10px; 334 | padding-bottom: 10px; 335 | margin-top: 6px; 336 | } 337 | 338 | &.nav-justified > li { 339 | vertical-align: bottom; 340 | } 341 | } 342 | 343 | .dropdown-menu { 344 | margin-top: 0; 345 | @include shadow(); 346 | border-top-width: 1px; 347 | @include box-shadow(none); 348 | } 349 | 350 | .breadcrumb { 351 | border-color: darken($breadcrumb-bg, 5%); 352 | border-style: solid; 353 | @include shadow(); 354 | } 355 | 356 | .pagination, 357 | .pager { 358 | 359 | > li > a, 360 | > li > span { 361 | position: relative; 362 | top: 0; 363 | @include shadow(); 364 | color: $pagination-color; 365 | font-size: 12px; 366 | font-weight: bold; 367 | text-transform: uppercase; 368 | 369 | &:hover { 370 | top: 1px; 371 | border-bottom-width: 3px; 372 | } 373 | 374 | &:active { 375 | top: 2px; 376 | border-bottom-width: 2px; 377 | } 378 | } 379 | 380 | > .disabled > a, 381 | > .disabled > span { 382 | 383 | &:hover { 384 | top: 0; 385 | @include shadow(); 386 | } 387 | 388 | &:active { 389 | top: 0; 390 | @include shadow(); 391 | } 392 | } 393 | } 394 | 395 | .pager { 396 | 397 | > li > a, 398 | > li > span, 399 | > .disabled > a, 400 | > .disabled > span { 401 | 402 | &, 403 | &:hover, 404 | &:active { 405 | border-left-width: 2px; 406 | border-right-width: 2px; 407 | } 408 | } 409 | } 410 | 411 | // Indicators ================================================================= 412 | 413 | .close { 414 | color: #fff; 415 | text-decoration: none; 416 | opacity: 0.4; 417 | 418 | &:hover, 419 | &:focus { 420 | color: #fff; 421 | opacity: 1; 422 | } 423 | } 424 | 425 | .alert { 426 | @include shadow(); 427 | 428 | .alert-link { 429 | font-weight: normal; 430 | color: #fff; 431 | text-decoration: underline; 432 | } 433 | } 434 | 435 | .label { 436 | font-weight: normal; 437 | } 438 | 439 | // Progress bars ============================================================== 440 | 441 | .progress { 442 | border: 1px solid $navbar-default-border; 443 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.1)); 444 | 445 | &-bar { 446 | @include box-shadow(inset 0 -4px 0 rgba(0, 0, 0, 0.15)); 447 | } 448 | } 449 | 450 | // Containers ================================================================= 451 | 452 | .well { 453 | border: 1px solid $navbar-default-border; 454 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.05)); 455 | } 456 | 457 | a.list-group-item { 458 | 459 | &.active, 460 | &.active:hover, 461 | &.active:focus { 462 | border-color: $list-group-border; 463 | } 464 | 465 | &-success { 466 | &.active { 467 | background-color: $state-success-bg; 468 | } 469 | 470 | &.active:hover, 471 | &.active:focus { 472 | background-color: darken($state-success-bg, 5%); 473 | } 474 | } 475 | 476 | &-warning { 477 | &.active { 478 | background-color: $state-warning-bg; 479 | } 480 | 481 | &.active:hover, 482 | &.active:focus { 483 | background-color: darken($state-warning-bg, 5%); 484 | } 485 | } 486 | 487 | &-danger { 488 | &.active { 489 | background-color: $state-danger-bg; 490 | } 491 | 492 | &.active:hover, 493 | &.active:focus { 494 | background-color: darken($state-danger-bg, 5%); 495 | } 496 | } 497 | } 498 | 499 | .jumbotron { 500 | border: 1px solid $navbar-default-border; 501 | @include box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.05)); 502 | } 503 | 504 | .panel { 505 | border: 1px solid $navbar-default-border; 506 | @include shadow(); 507 | 508 | &-default { 509 | .close { 510 | color: $text-color; 511 | } 512 | } 513 | } 514 | 515 | .modal { 516 | .close { 517 | color: $text-color; 518 | } 519 | } 520 | 521 | .popover { 522 | color: $text-color; 523 | } 524 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/lumen/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Lumen 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | .shadow (@width: 4px) { 13 | border-width: 0 1px @width 1px; 14 | } 15 | 16 | // Navbar ===================================================================== 17 | 18 | .navbar { 19 | .shadow(); 20 | } 21 | 22 | // Buttons ==================================================================== 23 | 24 | .btn { 25 | padding: (@padding-base-vertical + 2) @padding-base-horizontal @padding-base-vertical; 26 | .shadow(); 27 | font-size: 12px; 28 | font-weight: bold; 29 | text-transform: uppercase; 30 | 31 | &:hover { 32 | margin-top: 1px; 33 | border-bottom-width: 3px; 34 | } 35 | 36 | &:active { 37 | margin-top: 2px; 38 | border-bottom-width: 2px; 39 | .box-shadow(none); 40 | } 41 | 42 | &-lg, 43 | &-group-lg > .btn { 44 | padding: (@padding-large-vertical + 2) @padding-large-horizontal @padding-large-vertical; 45 | line-height: 15px; 46 | } 47 | 48 | &-sm, 49 | &-group-sm > .btn { 50 | padding: (@padding-small-vertical + 2) @padding-small-horizontal @padding-small-vertical; 51 | } 52 | 53 | &-xs, 54 | &-group-xs > .btn { 55 | padding: (@padding-xs-vertical + 2) @padding-xs-horizontal @padding-xs-vertical; 56 | } 57 | 58 | &-default:hover, 59 | &-default:focus, 60 | &-group.open .dropdown-toggle.btn-default { 61 | background-color: @btn-default-bg; 62 | border-color: @btn-default-border; 63 | } 64 | 65 | &-primary:hover, 66 | &-primary:focus, 67 | &-group.open .dropdown-toggle.btn-primary { 68 | background-color: @btn-primary-bg; 69 | border-color: @btn-primary-border; 70 | } 71 | 72 | &-success:hover, 73 | &-success:focus, 74 | &-group.open .dropdown-toggle.btn-success { 75 | background-color: @btn-success-bg; 76 | border-color: @btn-success-border; 77 | } 78 | 79 | &-info:hover, 80 | &-info:focus, 81 | &-group.open .dropdown-toggle.btn-info { 82 | background-color: @btn-info-bg; 83 | border-color: @btn-info-border; 84 | } 85 | 86 | &-warning:hover, 87 | &-warning:focus, 88 | &-group.open .dropdown-toggle.btn-warning { 89 | background-color: @btn-warning-bg; 90 | border-color: @btn-warning-border; 91 | } 92 | 93 | &-danger:hover, 94 | &-danger:focus, 95 | &-group.open .dropdown-toggle.btn-danger { 96 | background-color: @btn-danger-bg; 97 | border-color: @btn-danger-border; 98 | } 99 | 100 | &-group.open .dropdown-toggle { 101 | .box-shadow(none); 102 | } 103 | } 104 | 105 | .navbar-btn { 106 | &:hover { 107 | margin-top: 8px 108 | } 109 | 110 | &:active { 111 | margin-top: 9px 112 | } 113 | 114 | &.btn-sm { 115 | &:hover { 116 | margin-top: 11px 117 | } 118 | 119 | &:active { 120 | margin-top: 12px 121 | } 122 | } 123 | 124 | &.btn-xs { 125 | &:hover { 126 | margin-top: 15px 127 | } 128 | 129 | &:active { 130 | margin-top: 16px 131 | } 132 | } 133 | } 134 | 135 | .btn-group-vertical { 136 | .btn + .btn { 137 | &:hover { 138 | border-top-width: 1px; 139 | } 140 | 141 | &:active { 142 | border-top-width: 2px; 143 | } 144 | } 145 | } 146 | 147 | // Typography ================================================================= 148 | 149 | .text-primary, 150 | .text-primary:hover { 151 | color: @brand-primary; 152 | } 153 | 154 | .text-success, 155 | .text-success:hover { 156 | color: @brand-success; 157 | } 158 | 159 | .text-danger, 160 | .text-danger:hover { 161 | color: @brand-danger; 162 | } 163 | 164 | .text-warning, 165 | .text-warning:hover { 166 | color: @brand-warning; 167 | } 168 | 169 | .text-info, 170 | .text-info:hover { 171 | color: @brand-info; 172 | } 173 | 174 | // Tables ===================================================================== 175 | 176 | table, 177 | .table { 178 | 179 | a:not(.btn) { 180 | text-decoration: underline; 181 | } 182 | 183 | .dropdown-menu a { 184 | text-decoration: none; 185 | } 186 | 187 | .success, 188 | .warning, 189 | .danger, 190 | .info { 191 | color: #fff; 192 | 193 | a:not(.btn) { 194 | color: #fff; 195 | } 196 | } 197 | 198 | &:not(.table-bordered) { 199 | > thead > tr > th, 200 | > tbody > tr > th, 201 | > tfoot > tr > th, 202 | > thead > tr > td, 203 | > tbody > tr > td, 204 | > tfoot > tr > td { 205 | border-color: transparent; 206 | } 207 | } 208 | } 209 | 210 | // Forms ====================================================================== 211 | 212 | .form-control { 213 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 214 | } 215 | 216 | label { 217 | font-weight: normal; 218 | } 219 | 220 | .has-warning { 221 | .help-block, 222 | .control-label, 223 | .radio, 224 | .checkbox, 225 | .radio-inline, 226 | .checkbox-inline, 227 | &.radio label, 228 | &.checkbox label, 229 | &.radio-inline label, 230 | &.checkbox-inline label, 231 | .form-control-feedback { 232 | color: @brand-warning; 233 | } 234 | 235 | .form-control, 236 | .form-control:focus { 237 | border: 1px solid @brand-warning; 238 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 239 | } 240 | 241 | .input-group-addon { 242 | border: 1px solid @brand-warning; 243 | } 244 | } 245 | 246 | .has-error { 247 | .help-block, 248 | .control-label, 249 | .radio, 250 | .checkbox, 251 | .radio-inline, 252 | .checkbox-inline, 253 | &.radio label, 254 | &.checkbox label, 255 | &.radio-inline label, 256 | &.checkbox-inline label, 257 | .form-control-feedback { 258 | color: @brand-danger; 259 | } 260 | 261 | .form-control, 262 | .form-control:focus { 263 | border: 1px solid @brand-danger; 264 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 265 | } 266 | 267 | .input-group-addon { 268 | border: 1px solid @brand-danger; 269 | } 270 | } 271 | 272 | .has-success { 273 | .help-block, 274 | .control-label, 275 | .radio, 276 | .checkbox, 277 | .radio-inline, 278 | .checkbox-inline, 279 | &.radio label, 280 | &.checkbox label, 281 | &.radio-inline label, 282 | &.checkbox-inline label, 283 | .form-control-feedback { 284 | color: @brand-success; 285 | } 286 | 287 | .form-control, 288 | .form-control:focus { 289 | border: 1px solid @brand-success; 290 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.075)); 291 | } 292 | 293 | .input-group-addon { 294 | border: 1px solid @brand-success; 295 | } 296 | } 297 | 298 | // Navs ======================================================================= 299 | 300 | .nav { 301 | .open > a, 302 | .open > a:hover, 303 | .open > a:focus { 304 | border-color: transparent; 305 | } 306 | } 307 | 308 | .nav-tabs { 309 | 310 | > li > a { 311 | margin-top: 6px; 312 | border-color: @navbar-default-border; 313 | color: @gray-dark; 314 | .transition(all 0.2s ease-in-out); 315 | } 316 | 317 | > li > a:hover, 318 | > li > a:focus, 319 | > li.active > a, 320 | > li.active > a:hover, 321 | > li.active > a:focus, 322 | .open > a, 323 | .open > a:hover, 324 | .open > a:focus { 325 | padding-bottom: (@padding-large-vertical + 3); 326 | margin-top: 0; 327 | } 328 | 329 | .open > a, 330 | .open > a:hover, 331 | .open > a:focus { 332 | border-color: @navbar-default-border; 333 | } 334 | 335 | > li.disabled > a:hover, 336 | > li.disabled > a:focus { 337 | padding-top: 10px; 338 | padding-bottom: 10px; 339 | margin-top: 6px; 340 | } 341 | 342 | &.nav-justified > li { 343 | vertical-align: bottom; 344 | } 345 | } 346 | 347 | .dropdown-menu { 348 | margin-top: 0; 349 | .shadow(); 350 | border-top-width: 1px; 351 | .box-shadow(none); 352 | } 353 | 354 | .breadcrumb { 355 | border-color: darken(@breadcrumb-bg, 5%); 356 | border-style: solid; 357 | .shadow(); 358 | } 359 | 360 | .pagination, 361 | .pager { 362 | 363 | > li > a, 364 | > li > span { 365 | position: relative; 366 | top: 0; 367 | .shadow(); 368 | color: @pagination-color; 369 | font-size: 12px; 370 | font-weight: bold; 371 | text-transform: uppercase; 372 | 373 | &:hover { 374 | top: 1px; 375 | border-bottom-width: 3px; 376 | } 377 | 378 | &:active { 379 | top: 2px; 380 | border-bottom-width: 2px; 381 | } 382 | } 383 | 384 | > .disabled > a, 385 | > .disabled > span { 386 | 387 | &:hover { 388 | top: 0; 389 | .shadow(); 390 | } 391 | 392 | &:active { 393 | top: 0; 394 | .shadow(); 395 | } 396 | } 397 | } 398 | 399 | .pager { 400 | 401 | > li > a, 402 | > li > span, 403 | > .disabled > a, 404 | > .disabled > span { 405 | 406 | &, 407 | &:hover, 408 | &:active { 409 | border-left-width: 2px; 410 | border-right-width: 2px; 411 | } 412 | } 413 | } 414 | 415 | // Indicators ================================================================= 416 | 417 | .close { 418 | color: #fff; 419 | text-decoration: none; 420 | opacity: 0.4; 421 | 422 | &:hover, 423 | &:focus { 424 | color: #fff; 425 | opacity: 1; 426 | } 427 | } 428 | 429 | .alert { 430 | .shadow(); 431 | 432 | .alert-link { 433 | font-weight: normal; 434 | color: #fff; 435 | text-decoration: underline; 436 | } 437 | } 438 | 439 | .label { 440 | font-weight: normal; 441 | } 442 | 443 | // Progress bars ============================================================== 444 | 445 | .progress { 446 | border: 1px solid @navbar-default-border; 447 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.1)); 448 | 449 | &-bar { 450 | .box-shadow(inset 0 -4px 0 rgba(0, 0, 0, 0.15)); 451 | } 452 | } 453 | 454 | // Containers ================================================================= 455 | 456 | .well { 457 | border: 1px solid @navbar-default-border; 458 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.05)); 459 | } 460 | 461 | a.list-group-item { 462 | 463 | &.active, 464 | &.active:hover, 465 | &.active:focus { 466 | border-color: @list-group-border; 467 | } 468 | 469 | &-success { 470 | &.active { 471 | background-color: @state-success-bg; 472 | } 473 | 474 | &.active:hover, 475 | &.active:focus { 476 | background-color: darken(@state-success-bg, 5%); 477 | } 478 | } 479 | 480 | &-warning { 481 | &.active { 482 | background-color: @state-warning-bg; 483 | } 484 | 485 | &.active:hover, 486 | &.active:focus { 487 | background-color: darken(@state-warning-bg, 5%); 488 | } 489 | } 490 | 491 | &-danger { 492 | &.active { 493 | background-color: @state-danger-bg; 494 | } 495 | 496 | &.active:hover, 497 | &.active:focus { 498 | background-color: darken(@state-danger-bg, 5%); 499 | } 500 | } 501 | } 502 | 503 | .jumbotron { 504 | border: 1px solid @navbar-default-border; 505 | .box-shadow(inset 0 2px 0 rgba(0, 0, 0, 0.05)); 506 | } 507 | 508 | .panel { 509 | border: 1px solid @navbar-default-border; 510 | .shadow(); 511 | 512 | &-default { 513 | .close { 514 | color: @text-color; 515 | } 516 | } 517 | } 518 | 519 | .modal { 520 | .close { 521 | color: @text-color; 522 | } 523 | } 524 | 525 | .popover { 526 | color: @text-color; 527 | } 528 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/lumen/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/lumen/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/paper/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Paper 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | border: none; 12 | @include box-shadow(0 1px 2px rgba(0,0,0,.3)); 13 | 14 | &-brand { 15 | font-size: 24px; 16 | } 17 | 18 | &-inverse { 19 | .navbar-form { 20 | 21 | input[type=text], 22 | input[type=password] { 23 | color: #fff; 24 | @include box-shadow(inset 0 -1px 0 $navbar-inverse-link-color); 25 | @include placeholder($navbar-inverse-link-color); 26 | 27 | &:focus { 28 | @include box-shadow(inset 0 -2px 0 #fff); 29 | } 30 | } 31 | } 32 | } 33 | } 34 | 35 | // Buttons ==================================================================== 36 | 37 | @mixin btn($class,$bg){ 38 | .btn-#{$class} { 39 | background-size: 200% 200%; 40 | background-position: 50%; 41 | 42 | &:focus { 43 | background-color: $bg; 44 | } 45 | 46 | &:hover, 47 | &:active:hover { 48 | background-color: darken($bg, 6%); 49 | } 50 | 51 | &:active { 52 | background-color: darken($bg, 12%); 53 | @include gradient-radial(darken($bg, 12%) 10%, $bg 11%); 54 | background-size: 1000% 1000%; 55 | @include box-shadow(2px 2px 4px rgba(0,0,0,.4)); 56 | } 57 | } 58 | } 59 | 60 | @include btn(default,$btn-default-bg); 61 | @include btn(primary,$btn-primary-bg); 62 | @include btn(success,$btn-success-bg); 63 | @include btn(info,$btn-info-bg); 64 | @include btn(warning,$btn-warning-bg); 65 | @include btn(danger,$btn-danger-bg); 66 | @include btn(link,#fff); 67 | 68 | .btn { 69 | text-transform: uppercase; 70 | border: none; 71 | @include box-shadow(1px 1px 4px rgba(0,0,0,.4)); 72 | @include transition(all 0.4s); 73 | 74 | &-link { 75 | border-radius: $btn-border-radius-base; 76 | @include box-shadow(none); 77 | color: $btn-default-color; 78 | 79 | &:hover, 80 | &:focus { 81 | @include box-shadow(none); 82 | color: $btn-default-color; 83 | text-decoration: none; 84 | } 85 | } 86 | 87 | &-default { 88 | 89 | &.disabled { 90 | background-color: rgba(0, 0, 0, 0.1); 91 | color: rgba(0, 0, 0, 0.4); 92 | opacity: 1; 93 | } 94 | } 95 | } 96 | 97 | .btn-group { 98 | .btn + .btn, 99 | .btn + .btn-group, 100 | .btn-group + .btn, 101 | .btn-group + .btn-group { 102 | margin-left: 0; 103 | } 104 | 105 | &-vertical { 106 | > .btn + .btn, 107 | > .btn + .btn-group, 108 | > .btn-group + .btn, 109 | > .btn-group + .btn-group { 110 | margin-top: 0; 111 | } 112 | } 113 | } 114 | 115 | // Typography ================================================================= 116 | 117 | body { 118 | -webkit-font-smoothing: antialiased; 119 | letter-spacing: .1px; 120 | } 121 | 122 | p { 123 | margin: 0 0 1em; 124 | } 125 | 126 | input, 127 | button { 128 | -webkit-font-smoothing: antialiased; 129 | letter-spacing: .1px; 130 | } 131 | 132 | a { 133 | @include transition(all 0.2s); 134 | } 135 | 136 | // Tables ===================================================================== 137 | 138 | .table-hover { 139 | > tbody > tr, 140 | > tbody > tr > th, 141 | > tbody > tr > td { 142 | @include transition(all 0.2s); 143 | } 144 | } 145 | 146 | // Forms ====================================================================== 147 | 148 | label { 149 | font-weight: normal; 150 | } 151 | 152 | textarea, 153 | textarea.form-control, 154 | input.form-control, 155 | input[type=text], 156 | input[type=password], 157 | input[type=email], 158 | input[type=number], 159 | [type=text].form-control, 160 | [type=password].form-control, 161 | [type=email].form-control, 162 | [type=tel].form-control, 163 | [contenteditable].form-control { 164 | padding: 0; 165 | border: none; 166 | border-radius: 0; 167 | -webkit-appearance: none; 168 | @include box-shadow(inset 0 -1px 0 #ddd); 169 | font-size: 16px; 170 | 171 | &:focus { 172 | @include box-shadow(inset 0 -2px 0 $brand-primary); 173 | } 174 | 175 | &[disabled], 176 | &[readonly] { 177 | @include box-shadow(none); 178 | border-bottom: 1px dotted #ddd; 179 | } 180 | 181 | &.input { 182 | &-sm { 183 | font-size: $font-size-small; 184 | } 185 | 186 | &-lg { 187 | font-size: $font-size-large; 188 | } 189 | } 190 | } 191 | 192 | select, 193 | select.form-control { 194 | border: 0; 195 | border-radius: 0; 196 | -webkit-appearance: none; 197 | -moz-appearance: none; 198 | appearance: none; 199 | padding-left: 0; 200 | padding-right: 0\9; // remove padding for < ie9 since default arrow can't be removed 201 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=); 202 | background-size: 13px; 203 | background-repeat: no-repeat; 204 | background-position: right center; 205 | @include box-shadow(inset 0 -1px 0 #ddd); 206 | font-size: 16px; 207 | line-height: 1.5; 208 | 209 | &::-ms-expand { 210 | display: none; 211 | } 212 | 213 | &.input { 214 | &-sm { 215 | font-size: $font-size-small; 216 | } 217 | 218 | &-lg { 219 | font-size: $font-size-large; 220 | } 221 | } 222 | 223 | &:focus { 224 | @include box-shadow(inset 0 -2px 0 $brand-primary); 225 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=); 226 | } 227 | 228 | &[multiple] { 229 | background: none; 230 | } 231 | } 232 | 233 | .radio, 234 | .radio-inline, 235 | .checkbox, 236 | .checkbox-inline { 237 | label { 238 | padding-left: 25px; 239 | } 240 | 241 | input[type="radio"], 242 | input[type="checkbox"] { 243 | margin-left: -25px; 244 | } 245 | } 246 | 247 | input[type="radio"], 248 | .radio input[type="radio"], 249 | .radio-inline input[type="radio"] { 250 | position: relative; 251 | margin-top: 6px; 252 | margin-right: 4px; 253 | vertical-align: top; 254 | border: none; 255 | background-color: transparent; 256 | -webkit-appearance: none; 257 | appearance: none; 258 | cursor: pointer; 259 | 260 | &:focus { 261 | outline: none; 262 | } 263 | 264 | &:before, 265 | &:after { 266 | content: ""; 267 | display: block; 268 | width: 18px; 269 | height: 18px; 270 | border-radius: 50%; 271 | @include transition(240ms); 272 | } 273 | 274 | &:before { 275 | position: absolute; 276 | left: 0; 277 | top: -3px; 278 | background-color: $brand-primary; 279 | @include scale(0); 280 | } 281 | 282 | &:after { 283 | position: relative; 284 | top: -3px; 285 | border: 2px solid $gray; 286 | } 287 | 288 | &:checked:before { 289 | @include scale(0.5); 290 | } 291 | 292 | &:disabled:checked:before { 293 | background-color: $gray-light; 294 | } 295 | 296 | &:checked:after { 297 | border-color: $brand-primary; 298 | } 299 | 300 | &:disabled:after, 301 | &:disabled:checked:after { 302 | border-color: $gray-light; 303 | } 304 | } 305 | 306 | input[type="checkbox"], 307 | .checkbox input[type="checkbox"], 308 | .checkbox-inline input[type="checkbox"] { 309 | position: relative; 310 | border: none; 311 | margin-bottom: -4px; 312 | -webkit-appearance: none; 313 | appearance: none; 314 | cursor: pointer; 315 | 316 | &:focus { 317 | outline: none; 318 | } 319 | 320 | &:focus:after { 321 | border-color: $brand-primary; 322 | } 323 | 324 | &:after { 325 | content: ""; 326 | display: block; 327 | width: 18px; 328 | height: 18px; 329 | margin-top: -2px; 330 | margin-right: 5px; 331 | border: 2px solid $gray; 332 | border-radius: 2px; 333 | @include transition(240ms); 334 | } 335 | 336 | &:checked:before { 337 | content: ""; 338 | position: absolute; 339 | top: 0; 340 | left: 6px; 341 | display: table; 342 | width: 6px; 343 | height: 12px; 344 | border: 2px solid #fff; 345 | border-top-width: 0; 346 | border-left-width: 0; 347 | @include rotate(45deg); 348 | } 349 | 350 | &:checked:after { 351 | background-color: $brand-primary; 352 | border-color: $brand-primary; 353 | } 354 | 355 | &:disabled:after { 356 | border-color: $gray-light; 357 | } 358 | 359 | &:disabled:checked:after { 360 | background-color: $gray-light; 361 | border-color: transparent; 362 | } 363 | } 364 | 365 | .has-warning { 366 | input:not([type=checkbox]), 367 | .form-control, 368 | input.form-control[readonly], 369 | input[type=text][readonly], 370 | [type=text].form-control[readonly], 371 | input:not([type=checkbox]):focus, 372 | .form-control:focus { 373 | border-bottom: none; 374 | @include box-shadow(inset 0 -2px 0 $brand-warning); 375 | } 376 | } 377 | 378 | .has-error { 379 | input:not([type=checkbox]), 380 | .form-control, 381 | input.form-control[readonly], 382 | input[type=text][readonly], 383 | [type=text].form-control[readonly], 384 | input:not([type=checkbox]):focus, 385 | .form-control:focus { 386 | border-bottom: none; 387 | @include box-shadow(inset 0 -2px 0 $brand-danger); 388 | } 389 | } 390 | 391 | .has-success { 392 | input:not([type=checkbox]), 393 | .form-control, 394 | input.form-control[readonly], 395 | input[type=text][readonly], 396 | [type=text].form-control[readonly], 397 | input:not([type=checkbox]):focus, 398 | .form-control:focus { 399 | border-bottom: none; 400 | @include box-shadow(inset 0 -2px 0 $brand-success); 401 | } 402 | } 403 | 404 | // Remove the Bootstrap feedback styles for input addons 405 | .input-group-addon { 406 | .has-warning &, .has-error &, .has-success & { 407 | color: $input-color; 408 | border-color: $input-group-addon-border-color; 409 | background-color: $input-group-addon-bg; 410 | } 411 | } 412 | 413 | .form-group-lg { 414 | select, 415 | select.form-control { 416 | line-height: 1.5; 417 | } 418 | } 419 | 420 | // Navs ======================================================================= 421 | 422 | .nav-tabs { 423 | > li > a, 424 | > li > a:focus { 425 | margin-right: 0; 426 | background-color: transparent; 427 | border: none; 428 | color: $navbar-default-link-color; 429 | @include box-shadow(inset 0 -1px 0 #ddd); 430 | @include transition(all 0.2s); 431 | 432 | &:hover { 433 | background-color: transparent; 434 | @include box-shadow(inset 0 -2px 0 $brand-primary); 435 | color: $brand-primary; 436 | } 437 | } 438 | 439 | & > li.active > a, 440 | & > li.active > a:focus { 441 | border: none; 442 | @include box-shadow(inset 0 -2px 0 $brand-primary); 443 | color: $brand-primary; 444 | 445 | &:hover { 446 | border: none; 447 | color: $brand-primary; 448 | } 449 | } 450 | 451 | & > li.disabled > a { 452 | @include box-shadow(inset 0 -1px 0 #ddd); 453 | } 454 | 455 | &.nav-justified { 456 | 457 | & > li > a, 458 | & > li > a:hover, 459 | & > li > a:focus, 460 | & > .active > a, 461 | & > .active > a:hover, 462 | & > .active > a:focus { 463 | border: none; 464 | } 465 | } 466 | 467 | .dropdown-menu { 468 | margin-top: 0; 469 | } 470 | } 471 | 472 | .dropdown-menu { 473 | margin-top: 0; 474 | border: none; 475 | @include box-shadow(0 1px 4px rgba(0,0,0,.3)); 476 | } 477 | 478 | // Indicators ================================================================= 479 | 480 | .alert { 481 | border: none; 482 | color: #fff; 483 | 484 | &-success { 485 | background-color: $brand-success; 486 | } 487 | 488 | &-info { 489 | background-color: $brand-info; 490 | } 491 | 492 | &-warning { 493 | background-color: $brand-warning; 494 | } 495 | 496 | &-danger { 497 | background-color: $brand-danger; 498 | } 499 | 500 | a:not(.close):not(.btn), 501 | .alert-link { 502 | color: #fff; 503 | font-weight: bold; 504 | } 505 | 506 | .close { 507 | color: #fff; 508 | } 509 | } 510 | 511 | .badge { 512 | padding: 4px 6px 4px; 513 | } 514 | 515 | .progress { 516 | position: relative; 517 | z-index: 1; 518 | height: 6px; 519 | border-radius: 0; 520 | 521 | @include box-shadow(none); 522 | 523 | &-bar { 524 | @include box-shadow(none); 525 | 526 | &:last-child { 527 | border-radius: 0 3px 3px 0; 528 | } 529 | 530 | &:last-child { 531 | &:before { 532 | display: block; 533 | content: ""; 534 | position: absolute; 535 | width: 100%; 536 | height: 100%; 537 | left: 0; 538 | right: 0; 539 | z-index: -1; 540 | background-color: lighten($progress-bar-bg, 35%); 541 | } 542 | } 543 | 544 | &-success:last-child.progress-bar:before { 545 | background-color: lighten($brand-success, 35%); 546 | } 547 | 548 | &-info:last-child.progress-bar:before { 549 | background-color: lighten($brand-info, 45%); 550 | } 551 | &-warning:last-child.progress-bar:before { 552 | background-color: lighten($brand-warning, 35%); 553 | } 554 | 555 | &-danger:last-child.progress-bar:before { 556 | background-color: lighten($brand-danger, 25%); 557 | } 558 | } 559 | } 560 | 561 | // Progress bars ============================================================== 562 | 563 | // Containers ================================================================= 564 | 565 | .close { 566 | font-size: 34px; 567 | font-weight: 300; 568 | line-height: 24px; 569 | opacity: 0.6; 570 | @include transition(all 0.2s); 571 | 572 | &:hover { 573 | opacity: 1; 574 | } 575 | } 576 | 577 | .list-group { 578 | 579 | &-item { 580 | padding: 15px; 581 | } 582 | 583 | &-item-text { 584 | color: $gray-light; 585 | } 586 | } 587 | 588 | .well { 589 | border-radius: 0; 590 | @include box-shadow(none); 591 | } 592 | 593 | .panel { 594 | border: none; 595 | border-radius: 2px; 596 | @include box-shadow(0 1px 4px rgba(0,0,0,.3)); 597 | 598 | &-heading { 599 | border-bottom: none; 600 | } 601 | 602 | &-footer { 603 | border-top: none; 604 | } 605 | } 606 | 607 | .popover { 608 | border: none; 609 | @include box-shadow(0 1px 4px rgba(0,0,0,.3)); 610 | } 611 | 612 | .carousel { 613 | &-caption { 614 | h1, h2, h3, h4, h5, h6 { 615 | color: inherit; 616 | } 617 | } 618 | } 619 | 620 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/paper/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Paper 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | border: none; 16 | .box-shadow(0 1px 2px rgba(0,0,0,.3)); 17 | 18 | &-brand { 19 | font-size: 24px; 20 | } 21 | 22 | &-inverse { 23 | .navbar-form { 24 | 25 | input[type=text], 26 | input[type=password] { 27 | color: #fff; 28 | .box-shadow(inset 0 -1px 0 @navbar-inverse-link-color); 29 | .placeholder(@navbar-inverse-link-color); 30 | 31 | &:focus { 32 | .box-shadow(inset 0 -2px 0 #fff); 33 | } 34 | } 35 | } 36 | } 37 | } 38 | 39 | // Buttons ==================================================================== 40 | 41 | #btn(@class,@bg) { 42 | .btn-@{class} { 43 | background-size: 200% 200%; 44 | background-position: 50%; 45 | 46 | &:focus { 47 | background-color: @bg; 48 | } 49 | 50 | &:hover, 51 | &:active:hover { 52 | background-color: darken(@bg, 6%); 53 | } 54 | 55 | &:active { 56 | background-color: darken(@bg, 12%); 57 | #gradient > .radial(darken(@bg, 12%) 10%, @bg 11%); 58 | background-size: 1000% 1000%; 59 | .box-shadow(2px 2px 4px rgba(0,0,0,.4)); 60 | } 61 | } 62 | } 63 | 64 | #btn(default,@btn-default-bg); 65 | #btn(primary,@btn-primary-bg); 66 | #btn(success,@btn-success-bg); 67 | #btn(info,@btn-info-bg); 68 | #btn(warning,@btn-warning-bg); 69 | #btn(danger,@btn-danger-bg); 70 | #btn(link,#fff); 71 | 72 | .btn { 73 | text-transform: uppercase; 74 | border: none; 75 | .box-shadow(1px 1px 4px rgba(0,0,0,.4)); 76 | .transition(all 0.4s); 77 | 78 | &-link { 79 | border-radius: @btn-border-radius-base; 80 | .box-shadow(none); 81 | color: @btn-default-color; 82 | 83 | &:hover, 84 | &:focus { 85 | .box-shadow(none); 86 | color: @btn-default-color; 87 | text-decoration: none; 88 | } 89 | } 90 | 91 | &-default { 92 | 93 | &.disabled { 94 | background-color: rgba(0, 0, 0, 0.1); 95 | color: rgba(0, 0, 0, 0.4); 96 | opacity: 1; 97 | } 98 | } 99 | } 100 | 101 | .btn-group { 102 | .btn + .btn, 103 | .btn + .btn-group, 104 | .btn-group + .btn, 105 | .btn-group + .btn-group { 106 | margin-left: 0; 107 | } 108 | 109 | &-vertical { 110 | > .btn + .btn, 111 | > .btn + .btn-group, 112 | > .btn-group + .btn, 113 | > .btn-group + .btn-group { 114 | margin-top: 0; 115 | } 116 | } 117 | } 118 | 119 | // Typography ================================================================= 120 | 121 | body { 122 | -webkit-font-smoothing: antialiased; 123 | letter-spacing: .1px; 124 | } 125 | 126 | p { 127 | margin: 0 0 1em; 128 | } 129 | 130 | input, 131 | button { 132 | -webkit-font-smoothing: antialiased; 133 | letter-spacing: .1px; 134 | } 135 | 136 | a { 137 | .transition(all 0.2s); 138 | } 139 | 140 | // Tables ===================================================================== 141 | 142 | .table-hover { 143 | > tbody > tr, 144 | > tbody > tr > th, 145 | > tbody > tr > td { 146 | .transition(all 0.2s); 147 | } 148 | } 149 | 150 | // Forms ====================================================================== 151 | 152 | label { 153 | font-weight: normal; 154 | } 155 | 156 | textarea, 157 | textarea.form-control, 158 | input.form-control, 159 | input[type=text], 160 | input[type=password], 161 | input[type=email], 162 | input[type=number], 163 | [type=text].form-control, 164 | [type=password].form-control, 165 | [type=email].form-control, 166 | [type=tel].form-control, 167 | [contenteditable].form-control { 168 | padding: 0; 169 | border: none; 170 | border-radius: 0; 171 | -webkit-appearance: none; 172 | .box-shadow(inset 0 -1px 0 #ddd); 173 | font-size: 16px; 174 | 175 | &:focus { 176 | .box-shadow(inset 0 -2px 0 @brand-primary); 177 | } 178 | 179 | &[disabled], 180 | &[readonly] { 181 | .box-shadow(none); 182 | border-bottom: 1px dotted #ddd; 183 | } 184 | 185 | &.input { 186 | &-sm { 187 | font-size: @font-size-small; 188 | } 189 | 190 | &-lg { 191 | font-size: @font-size-large; 192 | } 193 | } 194 | } 195 | 196 | select, 197 | select.form-control { 198 | border: 0; 199 | border-radius: 0; 200 | -webkit-appearance: none; 201 | -moz-appearance: none; 202 | appearance: none; 203 | padding-left: 0; 204 | padding-right: 0\9; // remove padding for < ie9 since default arrow can't be removed 205 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=); 206 | background-size: 13px; 207 | background-repeat: no-repeat; 208 | background-position: right center; 209 | .box-shadow(inset 0 -1px 0 #ddd); 210 | font-size: 16px; 211 | line-height: 1.5; 212 | 213 | &::-ms-expand { 214 | display: none; 215 | } 216 | 217 | &.input { 218 | &-sm { 219 | font-size: @font-size-small; 220 | } 221 | 222 | &-lg { 223 | font-size: @font-size-large; 224 | } 225 | } 226 | 227 | &:focus { 228 | .box-shadow(inset 0 -2px 0 @brand-primary); 229 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=); 230 | } 231 | 232 | &[multiple] { 233 | background: none; 234 | } 235 | } 236 | 237 | .radio, 238 | .radio-inline, 239 | .checkbox, 240 | .checkbox-inline { 241 | label { 242 | padding-left: 25px; 243 | } 244 | 245 | input[type="radio"], 246 | input[type="checkbox"] { 247 | margin-left: -25px; 248 | } 249 | } 250 | 251 | input[type="radio"], 252 | .radio input[type="radio"], 253 | .radio-inline input[type="radio"] { 254 | position: relative; 255 | margin-top: 6px; 256 | margin-right: 4px; 257 | vertical-align: top; 258 | border: none; 259 | background-color: transparent; 260 | -webkit-appearance: none; 261 | appearance: none; 262 | cursor: pointer; 263 | 264 | &:focus { 265 | outline: none; 266 | } 267 | 268 | &:before, 269 | &:after { 270 | content: ""; 271 | display: block; 272 | width: 18px; 273 | height: 18px; 274 | border-radius: 50%; 275 | .transition(240ms); 276 | } 277 | 278 | &:before { 279 | position: absolute; 280 | left: 0; 281 | top: -3px; 282 | background-color: @brand-primary; 283 | .scale(0); 284 | } 285 | 286 | &:after { 287 | position: relative; 288 | top: -3px; 289 | border: 2px solid @gray; 290 | } 291 | 292 | &:checked:before { 293 | .scale(0.5); 294 | } 295 | 296 | &:disabled:checked:before { 297 | background-color: @gray-light; 298 | } 299 | 300 | &:checked:after { 301 | border-color: @brand-primary; 302 | } 303 | 304 | &:disabled:after, 305 | &:disabled:checked:after { 306 | border-color: @gray-light; 307 | } 308 | } 309 | 310 | input[type="checkbox"], 311 | .checkbox input[type="checkbox"], 312 | .checkbox-inline input[type="checkbox"] { 313 | position: relative; 314 | border: none; 315 | margin-bottom: -4px; 316 | -webkit-appearance: none; 317 | appearance: none; 318 | cursor: pointer; 319 | 320 | &:focus { 321 | outline: none; 322 | } 323 | 324 | &:focus:after { 325 | border-color: @brand-primary; 326 | } 327 | 328 | &:after { 329 | content: ""; 330 | display: block; 331 | width: 18px; 332 | height: 18px; 333 | margin-top: -2px; 334 | margin-right: 5px; 335 | border: 2px solid @gray; 336 | border-radius: 2px; 337 | .transition(240ms); 338 | } 339 | 340 | &:checked:before { 341 | content: ""; 342 | position: absolute; 343 | top: 0; 344 | left: 6px; 345 | display: table; 346 | width: 6px; 347 | height: 12px; 348 | border: 2px solid #fff; 349 | border-top-width: 0; 350 | border-left-width: 0; 351 | .rotate(45deg); 352 | } 353 | 354 | &:checked:after { 355 | background-color: @brand-primary; 356 | border-color: @brand-primary; 357 | } 358 | 359 | &:disabled:after { 360 | border-color: @gray-light; 361 | } 362 | 363 | &:disabled:checked:after { 364 | background-color: @gray-light; 365 | border-color: transparent; 366 | } 367 | } 368 | 369 | .has-warning { 370 | input:not([type=checkbox]), 371 | .form-control, 372 | input.form-control[readonly], 373 | input[type=text][readonly], 374 | [type=text].form-control[readonly], 375 | input:not([type=checkbox]):focus, 376 | .form-control:focus { 377 | border-bottom: none; 378 | .box-shadow(inset 0 -2px 0 @brand-warning); 379 | } 380 | } 381 | 382 | .has-error { 383 | input:not([type=checkbox]), 384 | .form-control, 385 | input.form-control[readonly], 386 | input[type=text][readonly], 387 | [type=text].form-control[readonly], 388 | input:not([type=checkbox]):focus, 389 | .form-control:focus { 390 | border-bottom: none; 391 | .box-shadow(inset 0 -2px 0 @brand-danger); 392 | } 393 | } 394 | 395 | .has-success { 396 | input:not([type=checkbox]), 397 | .form-control, 398 | input.form-control[readonly], 399 | input[type=text][readonly], 400 | [type=text].form-control[readonly], 401 | input:not([type=checkbox]):focus, 402 | .form-control:focus { 403 | border-bottom: none; 404 | .box-shadow(inset 0 -2px 0 @brand-success); 405 | } 406 | } 407 | 408 | // Remove the Bootstrap feedback styles for input addons 409 | .input-group-addon { 410 | .has-warning &, .has-error &, .has-success & { 411 | color: @input-color; 412 | border-color: @input-group-addon-border-color; 413 | background-color: @input-group-addon-bg; 414 | } 415 | } 416 | 417 | .form-group-lg { 418 | select, 419 | select.form-control { 420 | line-height: 1.5; 421 | } 422 | } 423 | 424 | // Navs ======================================================================= 425 | 426 | .nav-tabs { 427 | > li > a, 428 | > li > a:focus { 429 | margin-right: 0; 430 | background-color: transparent; 431 | border: none; 432 | color: @navbar-default-link-color; 433 | .box-shadow(inset 0 -1px 0 #ddd); 434 | .transition(all 0.2s); 435 | 436 | &:hover { 437 | background-color: transparent; 438 | .box-shadow(inset 0 -2px 0 @brand-primary); 439 | color: @brand-primary; 440 | } 441 | } 442 | 443 | & > li.active > a, 444 | & > li.active > a:focus { 445 | border: none; 446 | .box-shadow(inset 0 -2px 0 @brand-primary); 447 | color: @brand-primary; 448 | 449 | &:hover { 450 | border: none; 451 | color: @brand-primary; 452 | } 453 | } 454 | 455 | & > li.disabled > a { 456 | .box-shadow(inset 0 -1px 0 #ddd); 457 | } 458 | 459 | &.nav-justified { 460 | 461 | & > li > a, 462 | & > li > a:hover, 463 | & > li > a:focus, 464 | & > .active > a, 465 | & > .active > a:hover, 466 | & > .active > a:focus { 467 | border: none; 468 | } 469 | } 470 | 471 | .dropdown-menu { 472 | margin-top: 0; 473 | } 474 | } 475 | 476 | .dropdown-menu { 477 | margin-top: 0; 478 | border: none; 479 | .box-shadow(0 1px 4px rgba(0,0,0,.3)); 480 | } 481 | 482 | // Indicators ================================================================= 483 | 484 | .alert { 485 | border: none; 486 | color: #fff; 487 | 488 | &-success { 489 | background-color: @brand-success; 490 | } 491 | 492 | &-info { 493 | background-color: @brand-info; 494 | } 495 | 496 | &-warning { 497 | background-color: @brand-warning; 498 | } 499 | 500 | &-danger { 501 | background-color: @brand-danger; 502 | } 503 | 504 | a:not(.close):not(.btn), 505 | .alert-link { 506 | color: #fff; 507 | font-weight: bold; 508 | } 509 | 510 | .close { 511 | color: #fff; 512 | } 513 | } 514 | 515 | .badge { 516 | padding: 4px 6px 4px; 517 | } 518 | 519 | .progress { 520 | position: relative; 521 | z-index: 1; 522 | height: 6px; 523 | border-radius: 0; 524 | 525 | .box-shadow(none); 526 | 527 | &-bar { 528 | .box-shadow(none); 529 | 530 | &:last-child { 531 | border-radius: 0 3px 3px 0; 532 | } 533 | 534 | &:last-child { 535 | &:before { 536 | display: block; 537 | content: ""; 538 | position: absolute; 539 | width: 100%; 540 | height: 100%; 541 | left: 0; 542 | right: 0; 543 | z-index: -1; 544 | background-color: lighten(@progress-bar-bg, 35%); 545 | } 546 | } 547 | 548 | &-success:last-child.progress-bar:before { 549 | background-color: lighten(@brand-success, 35%); 550 | } 551 | 552 | &-info:last-child.progress-bar:before { 553 | background-color: lighten(@brand-info, 45%); 554 | } 555 | &-warning:last-child.progress-bar:before { 556 | background-color: lighten(@brand-warning, 35%); 557 | } 558 | 559 | &-danger:last-child.progress-bar:before { 560 | background-color: lighten(@brand-danger, 25%); 561 | } 562 | } 563 | } 564 | 565 | // Progress bars ============================================================== 566 | 567 | // Containers ================================================================= 568 | 569 | .close { 570 | font-size: 34px; 571 | font-weight: 300; 572 | line-height: 24px; 573 | opacity: 0.6; 574 | .transition(all 0.2s); 575 | 576 | &:hover { 577 | opacity: 1; 578 | } 579 | } 580 | 581 | .list-group { 582 | 583 | &-item { 584 | padding: 15px; 585 | } 586 | 587 | &-item-text { 588 | color: @gray-light; 589 | } 590 | } 591 | 592 | .well { 593 | border-radius: 0; 594 | .box-shadow(none); 595 | } 596 | 597 | .panel { 598 | border: none; 599 | border-radius: 2px; 600 | .box-shadow(0 1px 4px rgba(0,0,0,.3)); 601 | 602 | &-heading { 603 | border-bottom: none; 604 | } 605 | 606 | &-footer { 607 | border-top: none; 608 | } 609 | } 610 | 611 | .popover { 612 | border: none; 613 | .box-shadow(0 1px 4px rgba(0,0,0,.3)); 614 | } 615 | 616 | .carousel { 617 | &-caption { 618 | h1, h2, h3, h4, h5, h6 { 619 | color: inherit; 620 | } 621 | } 622 | } 623 | 624 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/paper/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/paper/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/readable/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Readable 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Raleway:400,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | font-family: $headings-font-family; 12 | 13 | &-nav, 14 | &-form { 15 | margin-left: 0; 16 | margin-right: 0; 17 | } 18 | 19 | &-nav > li > a { 20 | $margin-vertical: (($navbar-height - 2*$padding-base-vertical - $line-height-computed - 2px) / 2); 21 | margin: $margin-vertical 6px; 22 | padding: $padding-base-vertical $padding-base-horizontal; 23 | border: 1px solid transparent; 24 | border-radius: $border-radius-base; 25 | 26 | &:hover { 27 | border: 1px solid #ddd; 28 | } 29 | } 30 | 31 | &-nav > .active > a, 32 | &-nav > .active > a:hover { 33 | border: 1px solid #ddd; 34 | } 35 | 36 | &-default .navbar-nav > .active > a:hover { 37 | color: $navbar-default-link-hover-color; 38 | } 39 | 40 | &-inverse .navbar-nav > .active > a:hover { 41 | color: $navbar-inverse-link-hover-color; 42 | } 43 | 44 | &-brand { 45 | padding-top: (($navbar-height - 2*$font-size-large) / 2); 46 | padding-bottom: (($navbar-height - 2*$font-size-large) / 2); 47 | line-height: 1.9; 48 | } 49 | } 50 | 51 | @media (min-width: $grid-float-breakpoint) { 52 | .navbar { 53 | .navbar-nav > li > a { 54 | padding: $padding-base-vertical $padding-base-horizontal; 55 | } 56 | } 57 | } 58 | 59 | @media (max-width: ($grid-float-breakpoint - 1)) { 60 | .navbar { 61 | .navbar-nav > li > a { 62 | margin: 0; 63 | } 64 | } 65 | } 66 | 67 | // Buttons ==================================================================== 68 | 69 | .btn { 70 | font-family: $headings-font-family; 71 | } 72 | 73 | // Typography ================================================================= 74 | 75 | // Tables ===================================================================== 76 | 77 | // Forms ====================================================================== 78 | 79 | legend { 80 | font-family: $headings-font-family; 81 | } 82 | 83 | .input-group-addon { 84 | font-family: $font-family-sans-serif; 85 | } 86 | 87 | // Navs ======================================================================= 88 | 89 | .nav { 90 | .open > a, 91 | .open > a:hover, 92 | .open > a:focus { 93 | border: 1px solid #ddd; 94 | } 95 | } 96 | 97 | .pagination { 98 | 99 | font-family: $headings-font-family; 100 | 101 | &-lg > li > a, 102 | &-lg > li > span { 103 | padding: 14px 24px; 104 | } 105 | } 106 | 107 | .pager { 108 | 109 | font-family: $headings-font-family; 110 | 111 | a { 112 | color: $text-color; 113 | } 114 | 115 | a:hover { 116 | border-color: transparent; 117 | color: #fff; 118 | } 119 | 120 | .disabled a { 121 | border-color: $pager-border; 122 | } 123 | } 124 | 125 | // Indicators ================================================================= 126 | 127 | .close { 128 | color: #fff; 129 | text-decoration: none; 130 | text-shadow: none; 131 | opacity: 0.4; 132 | 133 | &:hover, 134 | &:focus { 135 | color: #fff; 136 | opacity: 1; 137 | } 138 | } 139 | 140 | .alert { 141 | .alert-link { 142 | color: $alert-success-text; 143 | text-decoration: underline; 144 | } 145 | } 146 | 147 | .label { 148 | font-family: $headings-font-family; 149 | font-weight: normal; 150 | 151 | &-default { 152 | border: 1px solid #ddd; 153 | color: $text-color; 154 | } 155 | 156 | } 157 | 158 | .badge { 159 | padding: 1px 7px 5px; 160 | vertical-align: 2px; 161 | font-family: $headings-font-family; 162 | font-weight: normal; 163 | } 164 | 165 | // Progress bars ============================================================== 166 | 167 | // Containers ================================================================= 168 | 169 | .panel { 170 | @include box-shadow(none); 171 | 172 | &-default { 173 | .close { 174 | color: $text-color; 175 | } 176 | } 177 | } 178 | 179 | .modal { 180 | .close { 181 | color: $text-color; 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/readable/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Readable 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Raleway:400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | font-family: @headings-font-family; 16 | 17 | &-nav, 18 | &-form { 19 | margin-left: 0; 20 | margin-right: 0; 21 | } 22 | 23 | &-nav > li > a { 24 | @margin-vertical: ((@navbar-height - 2*@padding-base-vertical - @line-height-computed - 2px) / 2); 25 | margin: @margin-vertical 6px; 26 | padding: @padding-base-vertical @padding-base-horizontal; 27 | border: 1px solid transparent; 28 | border-radius: @border-radius-base; 29 | 30 | &:hover { 31 | border: 1px solid #ddd; 32 | } 33 | } 34 | 35 | &-nav > .active > a, 36 | &-nav > .active > a:hover { 37 | border: 1px solid #ddd; 38 | } 39 | 40 | &-default .navbar-nav > .active > a:hover { 41 | color: @navbar-default-link-hover-color; 42 | } 43 | 44 | &-inverse .navbar-nav > .active > a:hover { 45 | color: @navbar-inverse-link-hover-color; 46 | } 47 | 48 | &-brand { 49 | padding-top: ((@navbar-height - 2*@font-size-large) / 2); 50 | padding-bottom: ((@navbar-height - 2*@font-size-large) / 2); 51 | line-height: 1.9; 52 | } 53 | } 54 | 55 | @media (min-width: @grid-float-breakpoint) { 56 | .navbar { 57 | .navbar-nav > li > a { 58 | padding: @padding-base-vertical @padding-base-horizontal; 59 | } 60 | } 61 | } 62 | 63 | @media (max-width: (@grid-float-breakpoint - 1)) { 64 | .navbar { 65 | .navbar-nav > li > a { 66 | margin: 0; 67 | } 68 | } 69 | } 70 | 71 | // Buttons ==================================================================== 72 | 73 | .btn { 74 | font-family: @headings-font-family; 75 | } 76 | 77 | // Typography ================================================================= 78 | 79 | // Tables ===================================================================== 80 | 81 | // Forms ====================================================================== 82 | 83 | legend { 84 | font-family: @headings-font-family; 85 | } 86 | 87 | .input-group-addon { 88 | font-family: @font-family-sans-serif; 89 | } 90 | 91 | // Navs ======================================================================= 92 | 93 | .nav { 94 | .open > a, 95 | .open > a:hover, 96 | .open > a:focus { 97 | border: 1px solid #ddd; 98 | } 99 | } 100 | 101 | .pagination { 102 | 103 | font-family: @headings-font-family; 104 | 105 | &-lg > li > a, 106 | &-lg > li > span { 107 | padding: 14px 24px; 108 | } 109 | } 110 | 111 | .pager { 112 | 113 | font-family: @headings-font-family; 114 | 115 | a { 116 | color: @text-color; 117 | } 118 | 119 | a:hover { 120 | border-color: transparent; 121 | color: #fff; 122 | } 123 | 124 | .disabled a { 125 | border-color: @pager-border; 126 | } 127 | } 128 | 129 | // Indicators ================================================================= 130 | 131 | .close { 132 | color: #fff; 133 | text-decoration: none; 134 | text-shadow: none; 135 | opacity: 0.4; 136 | 137 | &:hover, 138 | &:focus { 139 | color: #fff; 140 | opacity: 1; 141 | } 142 | } 143 | 144 | .alert { 145 | .alert-link { 146 | color: @alert-success-text; 147 | text-decoration: underline; 148 | } 149 | } 150 | 151 | .label { 152 | font-family: @headings-font-family; 153 | font-weight: normal; 154 | 155 | &-default { 156 | border: 1px solid #ddd; 157 | color: @text-color; 158 | } 159 | 160 | } 161 | 162 | .badge { 163 | padding: 1px 7px 5px; 164 | vertical-align: 2px; 165 | font-family: @headings-font-family; 166 | font-weight: normal; 167 | } 168 | 169 | // Progress bars ============================================================== 170 | 171 | // Containers ================================================================= 172 | 173 | .panel { 174 | .box-shadow(none); 175 | 176 | &-default { 177 | .close { 178 | color: @text-color; 179 | } 180 | } 181 | } 182 | 183 | .modal { 184 | .close { 185 | color: @text-color; 186 | } 187 | } 188 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/readable/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/readable/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/sandstone/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Sandstone 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Roboto:400,500,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .sandstone { 11 | font-size: 11px; 12 | line-height: 22px; 13 | font-weight: 500; 14 | text-transform: uppercase; 15 | } 16 | 17 | .navbar { 18 | .nav > li > a { 19 | @extend .sandstone; 20 | } 21 | 22 | &-form input, 23 | &-form .form-control { 24 | border: none; 25 | } 26 | } 27 | 28 | // Buttons ==================================================================== 29 | 30 | .btn { 31 | border: none; 32 | @extend .sandstone; 33 | 34 | &:hover { 35 | border-color: transparent; 36 | } 37 | 38 | &-lg { 39 | line-height: 26px; 40 | } 41 | 42 | &-default { 43 | &:hover { 44 | background-color: $navbar-default-link-active-bg; 45 | } 46 | } 47 | } 48 | 49 | // Typography ================================================================= 50 | 51 | // Tables ===================================================================== 52 | 53 | // Forms ====================================================================== 54 | 55 | input, 56 | .form-control { 57 | @include box-shadow(none); 58 | 59 | &:focus { 60 | border-color: $input-border; 61 | @include box-shadow(none); 62 | } 63 | } 64 | 65 | // Navs ======================================================================= 66 | 67 | .nav { 68 | @extend .sandstone; 69 | 70 | .open > a, 71 | .open > a:hover, 72 | .open > a:focus { 73 | border-color: $gray-light; 74 | } 75 | } 76 | 77 | .nav-tabs { 78 | 79 | & > li > a { 80 | background-color: $gray-lighter; 81 | border-color: $nav-tabs-border-color; 82 | color: $gray; 83 | } 84 | 85 | > li.disabled > a:hover { 86 | background-color: $gray-lighter; 87 | } 88 | } 89 | 90 | .nav-pills { 91 | a { 92 | color: $gray; 93 | } 94 | 95 | li > a { 96 | border: 1px solid transparent; 97 | } 98 | 99 | li.active > a, 100 | li > a:hover { 101 | border-color: $gray-light; 102 | } 103 | 104 | li.disabled > a { 105 | border-color: transparent; 106 | } 107 | } 108 | 109 | .breadcrumb { 110 | @extend .sandstone; 111 | 112 | border: 1px solid $gray-light; 113 | 114 | a { 115 | color: $gray; 116 | } 117 | } 118 | 119 | .pagination { 120 | @extend .sandstone; 121 | } 122 | 123 | .pager { 124 | @extend .sandstone; 125 | 126 | li > a { 127 | color: $gray; 128 | } 129 | } 130 | 131 | .dropdown-menu { 132 | & > li > a { 133 | @extend .sandstone; 134 | } 135 | } 136 | 137 | // Indicators ================================================================= 138 | 139 | .alert { 140 | 141 | a, 142 | .alert-link { 143 | color: #fff; 144 | } 145 | } 146 | 147 | .tooltip { 148 | @extend .sandstone; 149 | } 150 | 151 | // Progress bars ============================================================== 152 | 153 | .progress { 154 | border-radius: 10px; 155 | background-color: $gray-light; 156 | @include box-shadow(none); 157 | 158 | &-bar { 159 | @include box-shadow(none); 160 | } 161 | } 162 | 163 | // Containers ================================================================= 164 | 165 | .list-group { 166 | &-item { 167 | padding: 16px 24px; 168 | } 169 | } 170 | 171 | .well { 172 | @include box-shadow(none); 173 | } 174 | 175 | .panel { 176 | @include box-shadow(none); 177 | 178 | .panel-heading, 179 | .panel-title { 180 | @extend .sandstone; 181 | color: #fff; 182 | } 183 | 184 | .panel-footer { 185 | @extend .sandstone; 186 | } 187 | 188 | &-default { 189 | .panel-heading, 190 | .panel-title, 191 | .panel-footer { 192 | color: $gray; 193 | } 194 | } 195 | } 196 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/sandstone/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Sandstone 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Roboto:400,500,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .sandstone { 15 | font-size: 11px; 16 | line-height: 22px; 17 | font-weight: 500; 18 | text-transform: uppercase; 19 | } 20 | 21 | .navbar { 22 | .nav > li > a { 23 | .sandstone; 24 | } 25 | 26 | &-form input, 27 | &-form .form-control { 28 | border: none; 29 | } 30 | } 31 | 32 | // Buttons ==================================================================== 33 | 34 | .btn { 35 | border: none; 36 | .sandstone; 37 | 38 | &:hover { 39 | border-color: transparent; 40 | } 41 | 42 | &-lg { 43 | line-height: 26px; 44 | } 45 | 46 | &-default { 47 | &:hover { 48 | background-color: @navbar-default-link-active-bg; 49 | } 50 | } 51 | } 52 | 53 | // Typography ================================================================= 54 | 55 | // Tables ===================================================================== 56 | 57 | // Forms ====================================================================== 58 | 59 | input, 60 | .form-control { 61 | .box-shadow(none); 62 | 63 | &:focus { 64 | border-color: @input-border; 65 | .box-shadow(none); 66 | } 67 | } 68 | 69 | // Navs ======================================================================= 70 | 71 | .nav { 72 | .sandstone; 73 | 74 | .open > a, 75 | .open > a:hover, 76 | .open > a:focus { 77 | border-color: @gray-light; 78 | } 79 | } 80 | 81 | .nav-tabs { 82 | 83 | & > li > a { 84 | background-color: @gray-lighter; 85 | border-color: @nav-tabs-border-color; 86 | color: @gray; 87 | } 88 | 89 | > li.disabled > a:hover { 90 | background-color: @gray-lighter; 91 | } 92 | } 93 | 94 | .nav-pills { 95 | a { 96 | color: @gray; 97 | } 98 | 99 | li > a { 100 | border: 1px solid transparent; 101 | } 102 | 103 | li.active > a, 104 | li > a:hover { 105 | border-color: @gray-light; 106 | } 107 | 108 | li.disabled > a { 109 | border-color: transparent; 110 | } 111 | } 112 | 113 | .breadcrumb { 114 | .sandstone; 115 | 116 | border: 1px solid @gray-light; 117 | 118 | a { 119 | color: @gray; 120 | } 121 | } 122 | 123 | .pagination { 124 | .sandstone; 125 | } 126 | 127 | .pager { 128 | .sandstone; 129 | 130 | li > a { 131 | color: @gray; 132 | } 133 | } 134 | 135 | .dropdown-menu { 136 | & > li > a { 137 | .sandstone; 138 | } 139 | } 140 | 141 | // Indicators ================================================================= 142 | 143 | .alert { 144 | 145 | a, 146 | .alert-link { 147 | color: #fff; 148 | } 149 | } 150 | 151 | .tooltip { 152 | .sandstone; 153 | } 154 | 155 | // Progress bars ============================================================== 156 | 157 | .progress { 158 | border-radius: 10px; 159 | background-color: @gray-light; 160 | .box-shadow(none); 161 | 162 | &-bar { 163 | .box-shadow(none); 164 | } 165 | } 166 | 167 | // Containers ================================================================= 168 | 169 | .list-group { 170 | &-item { 171 | padding: 16px 24px; 172 | } 173 | } 174 | 175 | .well { 176 | .box-shadow(none); 177 | } 178 | 179 | .panel { 180 | .box-shadow(none); 181 | 182 | .panel-heading, 183 | .panel-title { 184 | .sandstone; 185 | color: #fff; 186 | } 187 | 188 | .panel-footer { 189 | .sandstone; 190 | } 191 | 192 | &-default { 193 | .panel-heading, 194 | .panel-title, 195 | .panel-footer { 196 | color: @gray; 197 | } 198 | } 199 | } 200 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/sandstone/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/sandstone/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/simplex/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Simplex 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Open+Sans:400,700" !default; 6 | @import url($web-font-path); 7 | 8 | @mixin btn-shadow($color){ 9 | @include gradient-vertical-three-colors(lighten($color, 3%), $color, 6%, darken($color, 3%)); 10 | filter: none; 11 | border: 1px solid darken($color, 10%); 12 | } 13 | 14 | // Navbar ===================================================================== 15 | 16 | .navbar { 17 | 18 | &-inverse { 19 | 20 | .badge { 21 | background-color: #fff; 22 | color: $brand-primary; 23 | } 24 | } 25 | } 26 | 27 | // Buttons ==================================================================== 28 | 29 | .btn { 30 | font-family: $headings-font-family; 31 | } 32 | 33 | .btn-default, 34 | .btn-default:hover { 35 | @include btn-shadow($btn-default-bg); 36 | } 37 | 38 | .btn-primary, 39 | .btn-primary:hover { 40 | @include btn-shadow($btn-primary-bg); 41 | } 42 | 43 | .btn-success, 44 | .btn-success:hover { 45 | @include btn-shadow($btn-success-bg); 46 | } 47 | 48 | .btn-info, 49 | .btn-info:hover { 50 | @include btn-shadow($btn-info-bg); 51 | } 52 | 53 | .btn-warning, 54 | .btn-warning:hover { 55 | @include btn-shadow($btn-warning-bg); 56 | } 57 | 58 | .btn-danger, 59 | .btn-danger:hover { 60 | @include btn-shadow($btn-danger-bg); 61 | } 62 | 63 | // Typography ================================================================= 64 | 65 | body { 66 | font-weight: 200; 67 | } 68 | 69 | // Tables ===================================================================== 70 | 71 | th { 72 | color: $headings-color; 73 | } 74 | 75 | // Forms ====================================================================== 76 | 77 | legend { 78 | color: $headings-color; 79 | } 80 | 81 | label { 82 | font-weight: normal; 83 | } 84 | 85 | .has-warning { 86 | .help-block, 87 | .control-label, 88 | .radio, 89 | .checkbox, 90 | .radio-inline, 91 | .checkbox-inline, 92 | &.radio label, 93 | &.checkbox label, 94 | &.radio-inline label, 95 | &.checkbox-inline label, 96 | .form-control-feedback { 97 | color: $brand-danger; 98 | } 99 | 100 | .form-control, 101 | .form-control:focus { 102 | border-color: $brand-danger; 103 | } 104 | } 105 | 106 | .has-error { 107 | .help-block, 108 | .control-label, 109 | .radio, 110 | .checkbox, 111 | .radio-inline, 112 | .checkbox-inline, 113 | &.radio label, 114 | &.checkbox label, 115 | &.radio-inline label, 116 | &.checkbox-inline label, 117 | .form-control-feedback { 118 | color: $brand-primary; 119 | } 120 | 121 | .form-control, 122 | .form-control:focus { 123 | border-color: $brand-primary; 124 | } 125 | } 126 | 127 | .has-success { 128 | .help-block, 129 | .control-label, 130 | .radio, 131 | .checkbox, 132 | .radio-inline, 133 | .checkbox-inline, 134 | &.radio label, 135 | &.checkbox label, 136 | &.radio-inline label, 137 | &.checkbox-inline label, 138 | .form-control-feedback { 139 | color: $brand-success; 140 | } 141 | 142 | .form-control, 143 | .form-control:focus { 144 | border-color: $brand-success; 145 | } 146 | } 147 | 148 | // Navs ======================================================================= 149 | 150 | .pager { 151 | a { 152 | color: $headings-color; 153 | } 154 | 155 | a:hover, 156 | .active > a, { 157 | border-color: $brand-primary; 158 | color: #fff; 159 | } 160 | 161 | .disabled > a { 162 | border-color: $pager-border; 163 | } 164 | } 165 | 166 | // Indicators ================================================================= 167 | 168 | // Progress bars ============================================================== 169 | 170 | // Containers ================================================================= -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/simplex/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Simplex 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Open+Sans:400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | .btn-shadow(@color) { 13 | #gradient > .vertical-three-colors(lighten(@color, 3%), @color, 6%, darken(@color, 3%)); 14 | filter: none; 15 | border: 1px solid darken(@color, 10%); 16 | } 17 | 18 | // Navbar ===================================================================== 19 | 20 | .navbar { 21 | 22 | &-inverse { 23 | 24 | .badge { 25 | background-color: #fff; 26 | color: @brand-primary; 27 | } 28 | } 29 | } 30 | 31 | // Buttons ==================================================================== 32 | 33 | .btn { 34 | font-family: @headings-font-family; 35 | } 36 | 37 | .btn-default, 38 | .btn-default:hover { 39 | .btn-shadow(@btn-default-bg); 40 | } 41 | 42 | .btn-primary, 43 | .btn-primary:hover { 44 | .btn-shadow(@btn-primary-bg); 45 | } 46 | 47 | .btn-success, 48 | .btn-success:hover { 49 | .btn-shadow(@btn-success-bg); 50 | } 51 | 52 | .btn-info, 53 | .btn-info:hover { 54 | .btn-shadow(@btn-info-bg); 55 | } 56 | 57 | .btn-warning, 58 | .btn-warning:hover { 59 | .btn-shadow(@btn-warning-bg); 60 | } 61 | 62 | .btn-danger, 63 | .btn-danger:hover { 64 | .btn-shadow(@btn-danger-bg); 65 | } 66 | 67 | // Typography ================================================================= 68 | 69 | body { 70 | font-weight: 200; 71 | } 72 | 73 | // Tables ===================================================================== 74 | 75 | th { 76 | color: @headings-color; 77 | } 78 | 79 | // Forms ====================================================================== 80 | 81 | legend { 82 | color: @headings-color; 83 | } 84 | 85 | label { 86 | font-weight: normal; 87 | } 88 | 89 | .has-warning { 90 | .help-block, 91 | .control-label, 92 | .radio, 93 | .checkbox, 94 | .radio-inline, 95 | .checkbox-inline, 96 | &.radio label, 97 | &.checkbox label, 98 | &.radio-inline label, 99 | &.checkbox-inline label, 100 | .form-control-feedback { 101 | color: @brand-danger; 102 | } 103 | 104 | .form-control, 105 | .form-control:focus { 106 | border-color: @brand-danger; 107 | } 108 | } 109 | 110 | .has-error { 111 | .help-block, 112 | .control-label, 113 | .radio, 114 | .checkbox, 115 | .radio-inline, 116 | .checkbox-inline, 117 | &.radio label, 118 | &.checkbox label, 119 | &.radio-inline label, 120 | &.checkbox-inline label, 121 | .form-control-feedback { 122 | color: @brand-primary; 123 | } 124 | 125 | .form-control, 126 | .form-control:focus { 127 | border-color: @brand-primary; 128 | } 129 | } 130 | 131 | .has-success { 132 | .help-block, 133 | .control-label, 134 | .radio, 135 | .checkbox, 136 | .radio-inline, 137 | .checkbox-inline, 138 | &.radio label, 139 | &.checkbox label, 140 | &.radio-inline label, 141 | &.checkbox-inline label, 142 | .form-control-feedback { 143 | color: @brand-success; 144 | } 145 | 146 | .form-control, 147 | .form-control:focus { 148 | border-color: @brand-success; 149 | } 150 | } 151 | 152 | // Navs ======================================================================= 153 | 154 | .pager { 155 | a { 156 | color: @headings-color; 157 | } 158 | 159 | a:hover, 160 | .active > a, { 161 | border-color: @brand-primary; 162 | color: #fff; 163 | } 164 | 165 | .disabled > a { 166 | border-color: @pager-border; 167 | } 168 | } 169 | 170 | // Indicators ================================================================= 171 | 172 | // Progress bars ============================================================== 173 | 174 | // Containers ================================================================= -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/simplex/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/simplex/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/slate/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Slate 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @mixin btn-shadow($color){ 6 | @include gradient-vertical-three-colors(lighten($color, 6%), $color, 60%, darken($color, 4%)); 7 | filter: none; 8 | } 9 | 10 | @mixin btn-shadow-inverse($color){ 11 | @include gradient-vertical-three-colors(darken($color, 24%), darken($color, 18%), 40%, darken($color, 16%)); 12 | filter: none; 13 | } 14 | 15 | // Navbar ===================================================================== 16 | 17 | .navbar { 18 | 19 | @include btn-shadow($navbar-default-bg); 20 | border: 1px solid rgba(0, 0, 0, 0.6); 21 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 22 | 23 | .navbar-nav > li > a { 24 | border-right: 1px solid rgba(0, 0, 0, 0.2); 25 | border-left: 1px solid rgba(255, 255, 255, 0.1); 26 | 27 | &:hover { 28 | @include btn-shadow-inverse($navbar-default-bg); 29 | border-left-color: transparent; 30 | } 31 | } 32 | 33 | &-inverse { 34 | @include btn-shadow($navbar-inverse-bg); 35 | 36 | .badge { 37 | background-color: $navbar-inverse-link-active-bg; 38 | } 39 | 40 | .navbar-nav > li > a { 41 | 42 | &:hover { 43 | @include btn-shadow-inverse($navbar-inverse-bg); 44 | } 45 | } 46 | } 47 | 48 | .nav .open > a { 49 | border-color: transparent; 50 | } 51 | 52 | &-nav > li.active > a { 53 | border-left-color: transparent; 54 | } 55 | 56 | &-form { 57 | margin-left: 5px; 58 | margin-right: 5px; 59 | } 60 | } 61 | 62 | // Buttons ==================================================================== 63 | 64 | .btn, 65 | .btn:hover { 66 | border-color: rgba(0, 0, 0, 0.6); 67 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 68 | } 69 | 70 | .btn-default { 71 | @include btn-shadow($btn-default-bg); 72 | 73 | &:hover { 74 | @include btn-shadow-inverse($btn-default-bg); 75 | } 76 | } 77 | 78 | .btn-primary { 79 | @include btn-shadow($btn-primary-bg); 80 | 81 | &:hover { 82 | @include btn-shadow-inverse($btn-primary-bg); 83 | } 84 | } 85 | 86 | .btn-success { 87 | @include btn-shadow($btn-success-bg); 88 | 89 | &:hover { 90 | @include btn-shadow-inverse($btn-success-bg); 91 | } 92 | } 93 | 94 | .btn-info { 95 | @include btn-shadow($btn-info-bg); 96 | 97 | &:hover { 98 | @include btn-shadow-inverse($btn-info-bg); 99 | } 100 | } 101 | 102 | .btn-warning { 103 | @include btn-shadow($btn-warning-bg); 104 | 105 | &:hover { 106 | @include btn-shadow-inverse($btn-warning-bg); 107 | } 108 | } 109 | 110 | .btn-danger { 111 | @include btn-shadow($btn-danger-bg); 112 | 113 | &:hover { 114 | @include btn-shadow-inverse($btn-danger-bg); 115 | } 116 | } 117 | 118 | .btn-link, 119 | .btn-link:hover { 120 | border-color: transparent; 121 | } 122 | 123 | // Typography ================================================================= 124 | 125 | h1, h2, h3, h4, h5, h6 { 126 | text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); 127 | } 128 | 129 | .text-primary, 130 | .text-primary:hover { 131 | color: $brand-primary; 132 | } 133 | 134 | .text-success, 135 | .text-success:hover { 136 | color: $brand-success; 137 | } 138 | 139 | .text-danger, 140 | .text-danger:hover { 141 | color: $brand-danger; 142 | } 143 | 144 | .text-warning, 145 | .text-warning:hover { 146 | color: $brand-warning; 147 | } 148 | 149 | .text-info, 150 | .text-info:hover { 151 | color: $brand-info; 152 | } 153 | 154 | // Tables ===================================================================== 155 | 156 | .table { 157 | 158 | .success, 159 | .warning, 160 | .danger, 161 | .info { 162 | color: #fff; 163 | } 164 | 165 | &-bordered tbody { 166 | 167 | tr.success, 168 | tr.warning, 169 | tr.danger { 170 | 171 | td, 172 | &:hover td { 173 | border-color: $table-border-color; 174 | } 175 | } 176 | } 177 | } 178 | 179 | .table-responsive > .table { 180 | background-color: $table-bg; 181 | } 182 | 183 | // Forms ====================================================================== 184 | 185 | input, 186 | textarea { 187 | color: $input-color; 188 | } 189 | 190 | .has-warning { 191 | .help-block, 192 | .control-label, 193 | .radio, 194 | .checkbox, 195 | .radio-inline, 196 | .checkbox-inline, 197 | &.radio label, 198 | &.checkbox label, 199 | &.radio-inline label, 200 | &.checkbox-inline label, 201 | .form-control-feedback { 202 | color: $brand-warning; 203 | } 204 | 205 | .form-control, 206 | .form-control:focus { 207 | border-color: $brand-warning; 208 | } 209 | 210 | .input-group-addon { 211 | background-color: $gray-dark; 212 | border-color: $input-group-addon-border-color; 213 | } 214 | } 215 | 216 | .has-error { 217 | .help-block, 218 | .control-label, 219 | .radio, 220 | .checkbox, 221 | .radio-inline, 222 | .checkbox-inline, 223 | &.radio label, 224 | &.checkbox label, 225 | &.radio-inline label, 226 | &.checkbox-inline label, 227 | .form-control-feedback { 228 | color: $brand-danger; 229 | } 230 | 231 | .form-control, 232 | .form-control:focus { 233 | border-color: $brand-danger; 234 | } 235 | 236 | .input-group-addon { 237 | background-color: $gray-dark; 238 | border-color: $input-group-addon-border-color; 239 | } 240 | } 241 | 242 | .has-success { 243 | .help-block, 244 | .control-label, 245 | .radio, 246 | .checkbox, 247 | .radio-inline, 248 | .checkbox-inline, 249 | &.radio label, 250 | &.checkbox label, 251 | &.radio-inline label, 252 | &.checkbox-inline label, 253 | .form-control-feedback { 254 | color: $brand-success; 255 | } 256 | 257 | .form-control, 258 | .form-control:focus { 259 | border-color: $brand-success; 260 | } 261 | 262 | .input-group-addon { 263 | background-color: $gray-dark; 264 | border-color: $input-group-addon-border-color; 265 | } 266 | } 267 | 268 | legend { 269 | color: #fff; 270 | } 271 | 272 | .input-group-addon { 273 | background-color: $gray-dark; 274 | @include btn-shadow($btn-default-bg); 275 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 276 | color: $btn-default-color; 277 | } 278 | 279 | // Navs ======================================================================= 280 | 281 | .nav { 282 | 283 | .open > a, 284 | .open > a:hover, 285 | .open > a:focus { 286 | border-color: rgba(0, 0, 0, 0.6); 287 | } 288 | 289 | } 290 | 291 | .nav-pills { 292 | 293 | & > li > a { 294 | @include btn-shadow($btn-default-bg); 295 | border: 1px solid rgba(0, 0, 0, 0.6); 296 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 297 | 298 | &:hover { 299 | @include btn-shadow-inverse($btn-default-bg); 300 | border: 1px solid rgba(0, 0, 0, 0.6); 301 | } 302 | } 303 | 304 | & > li.active > a, 305 | & > li.active > a:hover { 306 | background-color: none; 307 | @include btn-shadow-inverse($btn-default-bg); 308 | border: 1px solid rgba(0, 0, 0, 0.6); 309 | } 310 | 311 | & > li.disabled > a, 312 | & > li.disabled > a:hover { 313 | @include btn-shadow($btn-default-bg); 314 | } 315 | } 316 | 317 | .pagination { 318 | 319 | & > li > a, 320 | & > li > span { 321 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 322 | @include btn-shadow($btn-default-bg); 323 | 324 | &:hover { 325 | @include btn-shadow-inverse($btn-default-bg); 326 | } 327 | } 328 | 329 | & > li.active > a, 330 | & > li.active > span { 331 | @include btn-shadow-inverse($btn-default-bg); 332 | } 333 | 334 | & > li.disabled > a, 335 | & > li.disabled > a:hover, 336 | & > li.disabled > span, 337 | & > li.disabled > span:hover { 338 | background-color: transparent; 339 | @include btn-shadow($btn-default-bg); 340 | } 341 | } 342 | 343 | .pager { 344 | 345 | & > li > a { 346 | @include btn-shadow($btn-default-bg); 347 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 348 | 349 | &:hover { 350 | @include btn-shadow-inverse($btn-default-bg); 351 | } 352 | } 353 | 354 | & > li.disabled > a, 355 | & > li.disabled > a:hover { 356 | background-color: transparent; 357 | @include btn-shadow($btn-default-bg); 358 | } 359 | } 360 | 361 | .breadcrumb { 362 | border: 1px solid rgba(0, 0, 0, 0.6); 363 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 364 | @include btn-shadow($btn-default-bg); 365 | } 366 | 367 | // Indicators ================================================================= 368 | 369 | .alert { 370 | 371 | .alert-link, 372 | a { 373 | color: #fff; 374 | text-decoration: underline; 375 | } 376 | 377 | .close { 378 | color: $close-color; 379 | text-decoration: none; 380 | } 381 | } 382 | 383 | // Progress bars ============================================================== 384 | 385 | // Containers ================================================================= 386 | 387 | a.thumbnail:hover, 388 | a.thumbnail:focus, 389 | a.thumbnail.active { 390 | border-color: $thumbnail-border; 391 | } 392 | 393 | a.list-group-item { 394 | 395 | &.active, 396 | &.active:hover, 397 | &.active:focus { 398 | border-color: $list-group-border; 399 | } 400 | 401 | &-success { 402 | &.active { 403 | background-color: $state-success-bg; 404 | } 405 | 406 | &.active:hover, 407 | &.active:focus { 408 | background-color: darken($state-success-bg, 5%); 409 | } 410 | } 411 | 412 | &-warning { 413 | &.active { 414 | background-color: $state-warning-bg; 415 | } 416 | 417 | &.active:hover, 418 | &.active:focus { 419 | background-color: darken($state-warning-bg, 5%); 420 | } 421 | } 422 | 423 | &-danger { 424 | &.active { 425 | background-color: $state-danger-bg; 426 | } 427 | 428 | &.active:hover, 429 | &.active:focus { 430 | background-color: darken($state-danger-bg, 5%); 431 | } 432 | } 433 | } 434 | 435 | .jumbotron { 436 | border: 1px solid rgba(0, 0, 0, 0.6); 437 | } 438 | 439 | .panel-primary, 440 | .panel-success, 441 | .panel-danger, 442 | .panel-warning, 443 | .panel-info { 444 | 445 | .panel-heading { 446 | border-color: #000; 447 | } 448 | } -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/slate/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Slate 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | .btn-shadow(@color) { 6 | #gradient > .vertical-three-colors(lighten(@color, 6%), @color, 60%, darken(@color, 4%)); 7 | filter: none; 8 | } 9 | 10 | .btn-shadow-inverse(@color) { 11 | #gradient > .vertical-three-colors(darken(@color, 24%), darken(@color, 18%), 40%, darken(@color, 16%)); 12 | filter: none; 13 | } 14 | 15 | // Navbar ===================================================================== 16 | 17 | .navbar { 18 | 19 | .btn-shadow(@navbar-default-bg); 20 | border: 1px solid rgba(0, 0, 0, 0.6); 21 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 22 | 23 | .navbar-nav > li > a { 24 | border-right: 1px solid rgba(0, 0, 0, 0.2); 25 | border-left: 1px solid rgba(255, 255, 255, 0.1); 26 | 27 | &:hover { 28 | .btn-shadow-inverse(@navbar-default-bg); 29 | border-left-color: transparent; 30 | } 31 | } 32 | 33 | &-inverse { 34 | .btn-shadow(@navbar-inverse-bg); 35 | 36 | .badge { 37 | background-color: @navbar-inverse-link-active-bg; 38 | } 39 | 40 | .navbar-nav > li > a { 41 | 42 | &:hover { 43 | .btn-shadow-inverse(@navbar-inverse-bg); 44 | } 45 | } 46 | } 47 | 48 | .nav .open > a { 49 | border-color: transparent; 50 | } 51 | 52 | &-nav > li.active > a { 53 | border-left-color: transparent; 54 | } 55 | 56 | &-form { 57 | margin-left: 5px; 58 | margin-right: 5px; 59 | } 60 | } 61 | 62 | // Buttons ==================================================================== 63 | 64 | .btn, 65 | .btn:hover { 66 | border-color: rgba(0, 0, 0, 0.6); 67 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 68 | } 69 | 70 | .btn-default { 71 | .btn-shadow(@btn-default-bg); 72 | 73 | &:hover { 74 | .btn-shadow-inverse(@btn-default-bg); 75 | } 76 | } 77 | 78 | .btn-primary { 79 | .btn-shadow(@btn-primary-bg); 80 | 81 | &:hover { 82 | .btn-shadow-inverse(@btn-primary-bg); 83 | } 84 | } 85 | 86 | .btn-success { 87 | .btn-shadow(@btn-success-bg); 88 | 89 | &:hover { 90 | .btn-shadow-inverse(@btn-success-bg); 91 | } 92 | } 93 | 94 | .btn-info { 95 | .btn-shadow(@btn-info-bg); 96 | 97 | &:hover { 98 | .btn-shadow-inverse(@btn-info-bg); 99 | } 100 | } 101 | 102 | .btn-warning { 103 | .btn-shadow(@btn-warning-bg); 104 | 105 | &:hover { 106 | .btn-shadow-inverse(@btn-warning-bg); 107 | } 108 | } 109 | 110 | .btn-danger { 111 | .btn-shadow(@btn-danger-bg); 112 | 113 | &:hover { 114 | .btn-shadow-inverse(@btn-danger-bg); 115 | } 116 | } 117 | 118 | .btn-link, 119 | .btn-link:hover { 120 | border-color: transparent; 121 | } 122 | 123 | // Typography ================================================================= 124 | 125 | h1, h2, h3, h4, h5, h6 { 126 | text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); 127 | } 128 | 129 | .text-primary, 130 | .text-primary:hover { 131 | color: @brand-primary; 132 | } 133 | 134 | .text-success, 135 | .text-success:hover { 136 | color: @brand-success; 137 | } 138 | 139 | .text-danger, 140 | .text-danger:hover { 141 | color: @brand-danger; 142 | } 143 | 144 | .text-warning, 145 | .text-warning:hover { 146 | color: @brand-warning; 147 | } 148 | 149 | .text-info, 150 | .text-info:hover { 151 | color: @brand-info; 152 | } 153 | 154 | // Tables ===================================================================== 155 | 156 | .table { 157 | 158 | .success, 159 | .warning, 160 | .danger, 161 | .info { 162 | color: #fff; 163 | } 164 | 165 | &-bordered tbody { 166 | 167 | tr.success, 168 | tr.warning, 169 | tr.danger { 170 | 171 | td, 172 | &:hover td { 173 | border-color: @table-border-color; 174 | } 175 | } 176 | } 177 | } 178 | 179 | .table-responsive > .table { 180 | background-color: @table-bg; 181 | } 182 | 183 | // Forms ====================================================================== 184 | 185 | input, 186 | textarea { 187 | color: @input-color; 188 | } 189 | 190 | .has-warning { 191 | .help-block, 192 | .control-label, 193 | .radio, 194 | .checkbox, 195 | .radio-inline, 196 | .checkbox-inline, 197 | &.radio label, 198 | &.checkbox label, 199 | &.radio-inline label, 200 | &.checkbox-inline label, 201 | .form-control-feedback { 202 | color: @brand-warning; 203 | } 204 | 205 | .form-control, 206 | .form-control:focus { 207 | border-color: @brand-warning; 208 | } 209 | 210 | .input-group-addon { 211 | background-color: @gray-dark; 212 | border-color: @input-group-addon-border-color; 213 | } 214 | } 215 | 216 | .has-error { 217 | .help-block, 218 | .control-label, 219 | .radio, 220 | .checkbox, 221 | .radio-inline, 222 | .checkbox-inline, 223 | &.radio label, 224 | &.checkbox label, 225 | &.radio-inline label, 226 | &.checkbox-inline label, 227 | .form-control-feedback { 228 | color: @brand-danger; 229 | } 230 | 231 | .form-control, 232 | .form-control:focus { 233 | border-color: @brand-danger; 234 | } 235 | 236 | .input-group-addon { 237 | background-color: @gray-dark; 238 | border-color: @input-group-addon-border-color; 239 | } 240 | } 241 | 242 | .has-success { 243 | .help-block, 244 | .control-label, 245 | .radio, 246 | .checkbox, 247 | .radio-inline, 248 | .checkbox-inline, 249 | &.radio label, 250 | &.checkbox label, 251 | &.radio-inline label, 252 | &.checkbox-inline label, 253 | .form-control-feedback { 254 | color: @brand-success; 255 | } 256 | 257 | .form-control, 258 | .form-control:focus { 259 | border-color: @brand-success; 260 | } 261 | 262 | .input-group-addon { 263 | background-color: @gray-dark; 264 | border-color: @input-group-addon-border-color; 265 | } 266 | } 267 | 268 | legend { 269 | color: #fff; 270 | } 271 | 272 | .input-group-addon { 273 | background-color: @gray-dark; 274 | .btn-shadow(@btn-default-bg); 275 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 276 | color: @btn-default-color; 277 | } 278 | 279 | // Navs ======================================================================= 280 | 281 | .nav { 282 | 283 | .open > a, 284 | .open > a:hover, 285 | .open > a:focus { 286 | border-color: rgba(0, 0, 0, 0.6); 287 | } 288 | 289 | } 290 | 291 | .nav-pills { 292 | 293 | & > li > a { 294 | .btn-shadow(@btn-default-bg); 295 | border: 1px solid rgba(0, 0, 0, 0.6); 296 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 297 | 298 | &:hover { 299 | .btn-shadow-inverse(@btn-default-bg); 300 | border: 1px solid rgba(0, 0, 0, 0.6); 301 | } 302 | } 303 | 304 | & > li.active > a, 305 | & > li.active > a:hover { 306 | background-color: none; 307 | .btn-shadow-inverse(@btn-default-bg); 308 | border: 1px solid rgba(0, 0, 0, 0.6); 309 | } 310 | 311 | & > li.disabled > a, 312 | & > li.disabled > a:hover { 313 | .btn-shadow(@btn-default-bg); 314 | } 315 | } 316 | 317 | .pagination { 318 | 319 | & > li > a, 320 | & > li > span { 321 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 322 | .btn-shadow(@btn-default-bg); 323 | 324 | &:hover { 325 | .btn-shadow-inverse(@btn-default-bg); 326 | } 327 | } 328 | 329 | & > li.active > a, 330 | & > li.active > span { 331 | .btn-shadow-inverse(@btn-default-bg); 332 | } 333 | 334 | & > li.disabled > a, 335 | & > li.disabled > a:hover, 336 | & > li.disabled > span, 337 | & > li.disabled > span:hover { 338 | background-color: transparent; 339 | .btn-shadow(@btn-default-bg); 340 | } 341 | } 342 | 343 | .pager { 344 | 345 | & > li > a { 346 | .btn-shadow(@btn-default-bg); 347 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 348 | 349 | &:hover { 350 | .btn-shadow-inverse(@btn-default-bg); 351 | } 352 | } 353 | 354 | & > li.disabled > a, 355 | & > li.disabled > a:hover { 356 | background-color: transparent; 357 | .btn-shadow(@btn-default-bg); 358 | } 359 | } 360 | 361 | .breadcrumb { 362 | border: 1px solid rgba(0, 0, 0, 0.6); 363 | text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); 364 | .btn-shadow(@btn-default-bg); 365 | } 366 | 367 | // Indicators ================================================================= 368 | 369 | .alert { 370 | 371 | .alert-link, 372 | a { 373 | color: #fff; 374 | text-decoration: underline; 375 | } 376 | 377 | .close { 378 | color: @close-color; 379 | text-decoration: none; 380 | } 381 | } 382 | 383 | // Progress bars ============================================================== 384 | 385 | // Containers ================================================================= 386 | 387 | a.thumbnail:hover, 388 | a.thumbnail:focus, 389 | a.thumbnail.active { 390 | border-color: @thumbnail-border; 391 | } 392 | 393 | a.list-group-item { 394 | 395 | &.active, 396 | &.active:hover, 397 | &.active:focus { 398 | border-color: @list-group-border; 399 | } 400 | 401 | &-success { 402 | &.active { 403 | background-color: @state-success-bg; 404 | } 405 | 406 | &.active:hover, 407 | &.active:focus { 408 | background-color: darken(@state-success-bg, 5%); 409 | } 410 | } 411 | 412 | &-warning { 413 | &.active { 414 | background-color: @state-warning-bg; 415 | } 416 | 417 | &.active:hover, 418 | &.active:focus { 419 | background-color: darken(@state-warning-bg, 5%); 420 | } 421 | } 422 | 423 | &-danger { 424 | &.active { 425 | background-color: @state-danger-bg; 426 | } 427 | 428 | &.active:hover, 429 | &.active:focus { 430 | background-color: darken(@state-danger-bg, 5%); 431 | } 432 | } 433 | } 434 | 435 | .jumbotron { 436 | border: 1px solid rgba(0, 0, 0, 0.6); 437 | } 438 | 439 | .panel-primary, 440 | .panel-success, 441 | .panel-danger, 442 | .panel-warning, 443 | .panel-info { 444 | 445 | .panel-heading { 446 | border-color: #000; 447 | } 448 | } -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/slate/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/slate/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/spacelab/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Spacelab 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700" !default; 6 | @import url($web-font-path); 7 | 8 | @mixin btn-shadow($color){ 9 | @include gradient-vertical-three-colors(lighten($color, 15%), $color, 50%, darken($color, 4%)); 10 | filter: none; 11 | border: 1px solid darken($color, 10%); 12 | } 13 | 14 | // Navbar ===================================================================== 15 | 16 | .navbar { 17 | 18 | @include btn-shadow($navbar-default-bg); 19 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); 20 | 21 | &-inverse { 22 | @include btn-shadow($navbar-inverse-bg); 23 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 24 | 25 | .badge { 26 | background-color: #fff; 27 | color: $navbar-inverse-bg; 28 | } 29 | } 30 | 31 | .badge { 32 | text-shadow: none; 33 | } 34 | 35 | &-nav > li > a, 36 | &-nav > li > a:hover { 37 | padding-top: ($navbar-padding-vertical + 2px); 38 | padding-bottom: ($navbar-padding-vertical - 2px); 39 | @include transition(color ease-in-out .2s); 40 | } 41 | 42 | &-brand, 43 | &-brand:hover { 44 | @include transition(color ease-in-out .2s); 45 | } 46 | 47 | .caret, 48 | .caret:hover { 49 | @include transition(border-color ease-in-out .2s); 50 | } 51 | 52 | .dropdown-menu { 53 | text-shadow: none; 54 | } 55 | } 56 | 57 | // Buttons ==================================================================== 58 | 59 | .btn { 60 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 61 | 62 | &-default { 63 | @include btn-shadow($btn-default-bg); 64 | 65 | &:hover { 66 | @include btn-shadow(darken($btn-default-bg, 4%)); 67 | } 68 | } 69 | 70 | &-primary { 71 | @include btn-shadow($btn-primary-bg); 72 | 73 | &:hover { 74 | @include btn-shadow(darken($btn-primary-bg, 4%)); 75 | } 76 | } 77 | 78 | &-success { 79 | @include btn-shadow($btn-success-bg); 80 | 81 | &:hover { 82 | @include btn-shadow(darken($btn-success-bg, 4%)); 83 | } 84 | } 85 | 86 | &-info { 87 | @include btn-shadow($btn-info-bg); 88 | 89 | &:hover { 90 | @include btn-shadow(darken($btn-info-bg, 4%)); 91 | } 92 | } 93 | 94 | &-warning { 95 | @include btn-shadow($btn-warning-bg); 96 | 97 | &:hover { 98 | @include btn-shadow(darken($btn-warning-bg, 4%)); 99 | } 100 | } 101 | 102 | &-danger { 103 | @include btn-shadow($btn-danger-bg); 104 | 105 | &:hover { 106 | @include btn-shadow(darken($btn-danger-bg, 4%)); 107 | } 108 | } 109 | 110 | &-link { 111 | text-shadow: none; 112 | } 113 | 114 | &:active, 115 | &.active { 116 | background-image: none; 117 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 118 | } 119 | } 120 | 121 | // Typography ================================================================= 122 | 123 | // Tables ===================================================================== 124 | 125 | // Forms ====================================================================== 126 | 127 | // Navs ======================================================================= 128 | 129 | // Indicators ================================================================= 130 | 131 | // Progress bars ============================================================== 132 | 133 | // Containers ================================================================= 134 | 135 | .panel { 136 | 137 | &-primary { 138 | .panel-title { 139 | color: #fff; 140 | } 141 | } 142 | } -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/spacelab/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Spacelab 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | .btn-shadow(@color) { 13 | #gradient > .vertical-three-colors(lighten(@color, 15%), @color, 50%, darken(@color, 4%)); 14 | filter: none; 15 | border: 1px solid darken(@color, 10%); 16 | } 17 | 18 | // Navbar ===================================================================== 19 | 20 | .navbar { 21 | 22 | .btn-shadow(@navbar-default-bg); 23 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); 24 | 25 | &-inverse { 26 | .btn-shadow(@navbar-inverse-bg); 27 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 28 | 29 | .badge { 30 | background-color: #fff; 31 | color: @navbar-inverse-bg; 32 | } 33 | } 34 | 35 | .badge { 36 | text-shadow: none; 37 | } 38 | 39 | &-nav > li > a, 40 | &-nav > li > a:hover { 41 | padding-top: (@navbar-padding-vertical + 2px); 42 | padding-bottom: (@navbar-padding-vertical - 2px); 43 | .transition(color ease-in-out .2s); 44 | } 45 | 46 | &-brand, 47 | &-brand:hover { 48 | .transition(color ease-in-out .2s); 49 | } 50 | 51 | .caret, 52 | .caret:hover { 53 | .transition(border-color ease-in-out .2s); 54 | } 55 | 56 | .dropdown-menu { 57 | text-shadow: none; 58 | } 59 | } 60 | 61 | // Buttons ==================================================================== 62 | 63 | .btn { 64 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 65 | 66 | &-default { 67 | .btn-shadow(@btn-default-bg); 68 | 69 | &:hover { 70 | .btn-shadow(darken(@btn-default-bg, 4%)); 71 | } 72 | } 73 | 74 | &-primary { 75 | .btn-shadow(@btn-primary-bg); 76 | 77 | &:hover { 78 | .btn-shadow(darken(@btn-primary-bg, 4%)); 79 | } 80 | } 81 | 82 | &-success { 83 | .btn-shadow(@btn-success-bg); 84 | 85 | &:hover { 86 | .btn-shadow(darken(@btn-success-bg, 4%)); 87 | } 88 | } 89 | 90 | &-info { 91 | .btn-shadow(@btn-info-bg); 92 | 93 | &:hover { 94 | .btn-shadow(darken(@btn-info-bg, 4%)); 95 | } 96 | } 97 | 98 | &-warning { 99 | .btn-shadow(@btn-warning-bg); 100 | 101 | &:hover { 102 | .btn-shadow(darken(@btn-warning-bg, 4%)); 103 | } 104 | } 105 | 106 | &-danger { 107 | .btn-shadow(@btn-danger-bg); 108 | 109 | &:hover { 110 | .btn-shadow(darken(@btn-danger-bg, 4%)); 111 | } 112 | } 113 | 114 | &-link { 115 | text-shadow: none; 116 | } 117 | 118 | &:active, 119 | &.active { 120 | background-image: none; 121 | .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 122 | } 123 | } 124 | 125 | // Typography ================================================================= 126 | 127 | // Tables ===================================================================== 128 | 129 | // Forms ====================================================================== 130 | 131 | // Navs ======================================================================= 132 | 133 | // Indicators ================================================================= 134 | 135 | // Progress bars ============================================================== 136 | 137 | // Containers ================================================================= 138 | 139 | .panel { 140 | 141 | &-primary { 142 | .panel-title { 143 | color: #fff; 144 | } 145 | } 146 | } -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/spacelab/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/spacelab/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/superhero/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Superhero 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Lato:300,400,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | @include box-shadow(none); 12 | border: none; 13 | font-size: $font-size-small; 14 | 15 | &-default { 16 | 17 | .badge { 18 | background-color: #fff; 19 | color: $navbar-default-bg; 20 | } 21 | } 22 | 23 | &-inverse { 24 | 25 | .badge { 26 | background-color: #fff; 27 | color: $navbar-inverse-bg; 28 | } 29 | } 30 | } 31 | 32 | // Buttons ==================================================================== 33 | 34 | .btn { 35 | 36 | &-default { 37 | &:hover { 38 | background-color: darken($btn-default-bg, 3%); 39 | } 40 | } 41 | 42 | &-sm, 43 | &-xs { 44 | font-size: $font-size-small; 45 | } 46 | } 47 | 48 | // Typography ================================================================= 49 | 50 | .text-primary, 51 | .text-primary:hover { 52 | color: $brand-primary; 53 | } 54 | 55 | .text-success, 56 | .text-success:hover { 57 | color: $brand-success; 58 | } 59 | 60 | .text-danger, 61 | .text-danger:hover { 62 | color: $brand-danger; 63 | } 64 | 65 | .text-warning, 66 | .text-warning:hover { 67 | color: $brand-warning; 68 | } 69 | 70 | .text-info, 71 | .text-info:hover { 72 | color: $brand-info; 73 | } 74 | 75 | .page-header { 76 | border-bottom-color: $table-border-color; 77 | } 78 | 79 | .dropdown-menu { 80 | 81 | border: none; 82 | margin: 0; 83 | @include box-shadow(none); 84 | 85 | > li > a { 86 | font-size: $font-size-small; 87 | } 88 | } 89 | 90 | .btn-group.open .dropdown-toggle { 91 | @include box-shadow(none); 92 | } 93 | 94 | .dropdown-header { 95 | font-size: $font-size-small; 96 | } 97 | 98 | // Tables ===================================================================== 99 | 100 | table, 101 | .table { 102 | font-size: $font-size-small; 103 | 104 | a:not(.btn) { 105 | color: #fff; 106 | text-decoration: underline; 107 | } 108 | 109 | .dropdown-menu a { 110 | text-decoration: none; 111 | } 112 | 113 | .text-muted { 114 | color: $text-muted; 115 | } 116 | 117 | > thead > tr > th, 118 | > tbody > tr > th, 119 | > tfoot > tr > th, 120 | > thead > tr > td, 121 | > tbody > tr > td, 122 | > tfoot > tr > td { 123 | border-color: transparent; 124 | } 125 | } 126 | 127 | // Forms ====================================================================== 128 | 129 | input, 130 | textarea { 131 | color: $input-color; 132 | } 133 | 134 | label, 135 | .radio label, 136 | .checkbox label, 137 | .help-block { 138 | font-size: $font-size-small; 139 | } 140 | 141 | .input-addon, 142 | .input-group-addon { 143 | color: $text-color; 144 | } 145 | 146 | .has-warning { 147 | .help-block, 148 | .control-label, 149 | .radio, 150 | .checkbox, 151 | .radio-inline, 152 | .checkbox-inline, 153 | &.radio label, 154 | &.checkbox label, 155 | &.radio-inline label, 156 | &.checkbox-inline label, 157 | .form-control-feedback { 158 | color: $brand-warning; 159 | } 160 | 161 | .form-control, 162 | .form-control:focus { 163 | border: 4px solid $brand-warning; 164 | } 165 | 166 | .input-group-addon { 167 | border: none; 168 | } 169 | } 170 | 171 | .has-error { 172 | .help-block, 173 | .control-label, 174 | .radio, 175 | .checkbox, 176 | .radio-inline, 177 | .checkbox-inline, 178 | &.radio label, 179 | &.checkbox label, 180 | &.radio-inline label, 181 | &.checkbox-inline label, 182 | .form-control-feedback { 183 | color: $brand-danger; 184 | } 185 | 186 | .form-control, 187 | .form-control:focus { 188 | border: 4px solid $brand-danger; 189 | } 190 | 191 | .input-group-addon { 192 | border: none; 193 | } 194 | } 195 | 196 | .has-success { 197 | .help-block, 198 | .control-label, 199 | .radio, 200 | .checkbox, 201 | .radio-inline, 202 | .checkbox-inline, 203 | &.radio label, 204 | &.checkbox label, 205 | &.radio-inline label, 206 | &.checkbox-inline label, 207 | .form-control-feedback { 208 | color: $brand-success; 209 | } 210 | 211 | .form-control, 212 | .form-control:focus { 213 | border: 4px solid $brand-success; 214 | } 215 | 216 | .input-group-addon { 217 | border: none; 218 | } 219 | } 220 | 221 | .form-control:focus { 222 | @include box-shadow(none); 223 | } 224 | 225 | .has-warning, 226 | .has-error, 227 | .has-success { 228 | .form-control:focus { 229 | @include box-shadow(none); 230 | } 231 | } 232 | 233 | // Navs ======================================================================= 234 | 235 | .nav { 236 | .open > a, 237 | .open > a:hover, 238 | .open > a:focus { 239 | border-color: transparent; 240 | } 241 | } 242 | 243 | .nav-tabs { 244 | > li > a { 245 | color: $text-color; 246 | } 247 | } 248 | 249 | .nav-pills { 250 | > li > a { 251 | color: $text-color; 252 | } 253 | } 254 | 255 | .pager { 256 | a { 257 | color: $text-color; 258 | } 259 | } 260 | 261 | // Indicators ================================================================= 262 | 263 | .alert { 264 | color: #fff; 265 | 266 | a, 267 | .alert-link { 268 | color: #fff; 269 | } 270 | } 271 | 272 | .close { 273 | opacity: 0.4; 274 | 275 | &:hover, 276 | &:focus { 277 | opacity: 1; 278 | } 279 | } 280 | 281 | // Progress bars ============================================================== 282 | 283 | // Containers ================================================================= 284 | 285 | .well { 286 | @include box-shadow(none); 287 | } 288 | 289 | a.list-group-item { 290 | 291 | &.active, 292 | &.active:hover, 293 | &.active:focus { 294 | border: none; 295 | } 296 | 297 | &-success { 298 | &.active { 299 | background-color: $state-success-bg; 300 | } 301 | 302 | &.active:hover, 303 | &.active:focus { 304 | background-color: darken($state-success-bg, 5%); 305 | } 306 | } 307 | 308 | &-warning { 309 | &.active { 310 | background-color: $state-warning-bg; 311 | } 312 | 313 | &.active:hover, 314 | &.active:focus { 315 | background-color: darken($state-warning-bg, 5%); 316 | } 317 | } 318 | 319 | &-danger { 320 | &.active { 321 | background-color: $state-danger-bg; 322 | } 323 | 324 | &.active:hover, 325 | &.active:focus { 326 | background-color: darken($state-danger-bg, 5%); 327 | } 328 | } 329 | } 330 | 331 | .panel { 332 | border: none; 333 | 334 | &-default > .panel-heading { 335 | background-color: $table-bg-hover; 336 | color: $text-color; 337 | } 338 | } 339 | 340 | .thumbnail { 341 | background-color: $well-bg; 342 | border: none; 343 | } 344 | 345 | .modal { 346 | padding: 0; 347 | 348 | &-header, 349 | &-footer { 350 | background-color: $table-bg-hover; 351 | border: none; 352 | border-radius: 0; 353 | } 354 | } 355 | 356 | .popover { 357 | &-title { 358 | border: none; 359 | } 360 | } 361 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/superhero/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Superhero 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Lato:300,400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | .box-shadow(none); 16 | border: none; 17 | font-size: @font-size-small; 18 | 19 | &-default { 20 | 21 | .badge { 22 | background-color: #fff; 23 | color: @navbar-default-bg; 24 | } 25 | } 26 | 27 | &-inverse { 28 | 29 | .badge { 30 | background-color: #fff; 31 | color: @navbar-inverse-bg; 32 | } 33 | } 34 | } 35 | 36 | // Buttons ==================================================================== 37 | 38 | .btn { 39 | 40 | &-default { 41 | &:hover { 42 | background-color: darken(@btn-default-bg, 3%); 43 | } 44 | } 45 | 46 | &-sm, 47 | &-xs { 48 | font-size: @font-size-small; 49 | } 50 | } 51 | 52 | // Typography ================================================================= 53 | 54 | .text-primary, 55 | .text-primary:hover { 56 | color: @brand-primary; 57 | } 58 | 59 | .text-success, 60 | .text-success:hover { 61 | color: @brand-success; 62 | } 63 | 64 | .text-danger, 65 | .text-danger:hover { 66 | color: @brand-danger; 67 | } 68 | 69 | .text-warning, 70 | .text-warning:hover { 71 | color: @brand-warning; 72 | } 73 | 74 | .text-info, 75 | .text-info:hover { 76 | color: @brand-info; 77 | } 78 | 79 | .page-header { 80 | border-bottom-color: @table-border-color; 81 | } 82 | 83 | .dropdown-menu { 84 | 85 | border: none; 86 | margin: 0; 87 | .box-shadow(none); 88 | 89 | > li > a { 90 | font-size: @font-size-small; 91 | } 92 | } 93 | 94 | .btn-group.open .dropdown-toggle { 95 | .box-shadow(none); 96 | } 97 | 98 | .dropdown-header { 99 | font-size: @font-size-small; 100 | } 101 | 102 | // Tables ===================================================================== 103 | 104 | table, 105 | .table { 106 | font-size: @font-size-small; 107 | 108 | a:not(.btn) { 109 | color: #fff; 110 | text-decoration: underline; 111 | } 112 | 113 | .dropdown-menu a { 114 | text-decoration: none; 115 | } 116 | 117 | .text-muted { 118 | color: @text-muted; 119 | } 120 | 121 | > thead > tr > th, 122 | > tbody > tr > th, 123 | > tfoot > tr > th, 124 | > thead > tr > td, 125 | > tbody > tr > td, 126 | > tfoot > tr > td { 127 | border-color: transparent; 128 | } 129 | } 130 | 131 | // Forms ====================================================================== 132 | 133 | input, 134 | textarea { 135 | color: @input-color; 136 | } 137 | 138 | label, 139 | .radio label, 140 | .checkbox label, 141 | .help-block { 142 | font-size: @font-size-small; 143 | } 144 | 145 | .input-addon, 146 | .input-group-addon { 147 | color: @text-color; 148 | } 149 | 150 | .has-warning { 151 | .help-block, 152 | .control-label, 153 | .radio, 154 | .checkbox, 155 | .radio-inline, 156 | .checkbox-inline, 157 | &.radio label, 158 | &.checkbox label, 159 | &.radio-inline label, 160 | &.checkbox-inline label, 161 | .form-control-feedback { 162 | color: @brand-warning; 163 | } 164 | 165 | .form-control, 166 | .form-control:focus { 167 | border: 4px solid @brand-warning; 168 | } 169 | 170 | .input-group-addon { 171 | border: none; 172 | } 173 | } 174 | 175 | .has-error { 176 | .help-block, 177 | .control-label, 178 | .radio, 179 | .checkbox, 180 | .radio-inline, 181 | .checkbox-inline, 182 | &.radio label, 183 | &.checkbox label, 184 | &.radio-inline label, 185 | &.checkbox-inline label, 186 | .form-control-feedback { 187 | color: @brand-danger; 188 | } 189 | 190 | .form-control, 191 | .form-control:focus { 192 | border: 4px solid @brand-danger; 193 | } 194 | 195 | .input-group-addon { 196 | border: none; 197 | } 198 | } 199 | 200 | .has-success { 201 | .help-block, 202 | .control-label, 203 | .radio, 204 | .checkbox, 205 | .radio-inline, 206 | .checkbox-inline, 207 | &.radio label, 208 | &.checkbox label, 209 | &.radio-inline label, 210 | &.checkbox-inline label, 211 | .form-control-feedback { 212 | color: @brand-success; 213 | } 214 | 215 | .form-control, 216 | .form-control:focus { 217 | border: 4px solid @brand-success; 218 | } 219 | 220 | .input-group-addon { 221 | border: none; 222 | } 223 | } 224 | 225 | .form-control:focus { 226 | .box-shadow(none); 227 | } 228 | 229 | .has-warning, 230 | .has-error, 231 | .has-success { 232 | .form-control:focus { 233 | .box-shadow(none); 234 | } 235 | } 236 | 237 | // Navs ======================================================================= 238 | 239 | .nav { 240 | .open > a, 241 | .open > a:hover, 242 | .open > a:focus { 243 | border-color: transparent; 244 | } 245 | } 246 | 247 | .nav-tabs { 248 | > li > a { 249 | color: @text-color; 250 | } 251 | } 252 | 253 | .nav-pills { 254 | > li > a { 255 | color: @text-color; 256 | } 257 | } 258 | 259 | .pager { 260 | a { 261 | color: @text-color; 262 | } 263 | } 264 | 265 | // Indicators ================================================================= 266 | 267 | .alert { 268 | color: #fff; 269 | 270 | a, 271 | .alert-link { 272 | color: #fff; 273 | } 274 | } 275 | 276 | .close { 277 | opacity: 0.4; 278 | 279 | &:hover, 280 | &:focus { 281 | opacity: 1; 282 | } 283 | } 284 | 285 | // Progress bars ============================================================== 286 | 287 | // Containers ================================================================= 288 | 289 | .well { 290 | .box-shadow(none); 291 | } 292 | 293 | a.list-group-item { 294 | 295 | &.active, 296 | &.active:hover, 297 | &.active:focus { 298 | border: none; 299 | } 300 | 301 | &-success { 302 | &.active { 303 | background-color: @state-success-bg; 304 | } 305 | 306 | &.active:hover, 307 | &.active:focus { 308 | background-color: darken(@state-success-bg, 5%); 309 | } 310 | } 311 | 312 | &-warning { 313 | &.active { 314 | background-color: @state-warning-bg; 315 | } 316 | 317 | &.active:hover, 318 | &.active:focus { 319 | background-color: darken(@state-warning-bg, 5%); 320 | } 321 | } 322 | 323 | &-danger { 324 | &.active { 325 | background-color: @state-danger-bg; 326 | } 327 | 328 | &.active:hover, 329 | &.active:focus { 330 | background-color: darken(@state-danger-bg, 5%); 331 | } 332 | } 333 | } 334 | 335 | .panel { 336 | border: none; 337 | 338 | &-default > .panel-heading { 339 | background-color: @table-bg-hover; 340 | color: @text-color; 341 | } 342 | } 343 | 344 | .thumbnail { 345 | background-color: @well-bg; 346 | border: none; 347 | } 348 | 349 | .modal { 350 | padding: 0; 351 | 352 | &-header, 353 | &-footer { 354 | background-color: @table-bg-hover; 355 | border: none; 356 | border-radius: 0; 357 | } 358 | } 359 | 360 | .popover { 361 | &-title { 362 | border: none; 363 | } 364 | } 365 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/superhero/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/superhero/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/united/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // United 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Ubuntu:400,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | 12 | &-default { 13 | 14 | .badge { 15 | background-color: #fff; 16 | color: $navbar-default-bg; 17 | } 18 | } 19 | 20 | &-inverse { 21 | 22 | .badge { 23 | background-color: #fff; 24 | color: $navbar-inverse-bg; 25 | } 26 | } 27 | } 28 | 29 | @media (max-width: $grid-float-breakpoint-max) { 30 | 31 | .navbar { 32 | 33 | .dropdown-menu { 34 | a { 35 | color: #fff; 36 | } 37 | } 38 | } 39 | } 40 | 41 | 42 | // Buttons ==================================================================== 43 | 44 | // Typography ================================================================= 45 | 46 | // Tables ===================================================================== 47 | 48 | // Forms ====================================================================== 49 | 50 | // Navs ======================================================================= 51 | 52 | // Indicators ================================================================= 53 | 54 | // Progress bars ============================================================== 55 | 56 | // Containers ================================================================= -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/united/bootswatch.less: -------------------------------------------------------------------------------- 1 | // United 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Ubuntu:400,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | 16 | &-default { 17 | 18 | .badge { 19 | background-color: #fff; 20 | color: @navbar-default-bg; 21 | } 22 | } 23 | 24 | &-inverse { 25 | 26 | .badge { 27 | background-color: #fff; 28 | color: @navbar-inverse-bg; 29 | } 30 | } 31 | } 32 | 33 | @media (max-width: @grid-float-breakpoint-max) { 34 | 35 | .navbar { 36 | 37 | .dropdown-menu { 38 | a { 39 | color: #fff; 40 | } 41 | } 42 | } 43 | } 44 | 45 | 46 | // Buttons ==================================================================== 47 | 48 | // Typography ================================================================= 49 | 50 | // Tables ===================================================================== 51 | 52 | // Forms ====================================================================== 53 | 54 | // Navs ======================================================================= 55 | 56 | // Indicators ================================================================= 57 | 58 | // Progress bars ============================================================== 59 | 60 | // Containers ================================================================= -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/united/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/united/thumbnail.png -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/yeti/_bootswatch.scss: -------------------------------------------------------------------------------- 1 | // Yeti 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | $web-font-path: "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700" !default; 6 | @import url($web-font-path); 7 | 8 | // Navbar ===================================================================== 9 | 10 | .navbar { 11 | border: none; 12 | font-size: 13px; 13 | font-weight: 300; 14 | 15 | .navbar-toggle:hover .icon-bar { 16 | background-color: #b3b3b3; 17 | } 18 | 19 | &-collapse { 20 | border-top-color: $dropdown-divider-bg; 21 | @include box-shadow(none); 22 | } 23 | 24 | .btn { 25 | padding-top: 6px; 26 | padding-bottom: 6px; 27 | } 28 | 29 | &-form { 30 | margin-top: 7px; 31 | margin-bottom: 5px; 32 | 33 | .form-control { 34 | height: auto; 35 | padding: $padding-xs-vertical $padding-xs-horizontal; 36 | } 37 | } 38 | 39 | &-text { 40 | margin: 12px 15px; 41 | line-height: 21px; 42 | } 43 | 44 | .dropdown { 45 | 46 | &-menu { 47 | border: none; 48 | 49 | > li > a, 50 | > li > a:focus { 51 | background-color: transparent; 52 | font-size: 13px; 53 | font-weight: 300; 54 | } 55 | } 56 | 57 | &-header { 58 | color: rgba(255, 255, 255, 0.5); 59 | } 60 | 61 | } 62 | 63 | &-default { 64 | 65 | .dropdown-menu { 66 | background-color: $navbar-default-bg; 67 | 68 | > li > a, 69 | > li > a:focus { 70 | color: $navbar-default-color; 71 | } 72 | 73 | > li > a:hover, 74 | > .active > a, 75 | > .active > a:hover { 76 | background-color: $navbar-default-link-hover-bg; 77 | } 78 | } 79 | } 80 | 81 | &-inverse { 82 | 83 | .dropdown-menu { 84 | background-color: $navbar-inverse-bg; 85 | 86 | > li > a, 87 | > li > a:focus { 88 | color: $navbar-inverse-color; 89 | } 90 | 91 | > li > a:hover, 92 | > .active > a, 93 | > .active > a:hover { 94 | background-color: $navbar-inverse-link-hover-bg; 95 | } 96 | } 97 | } 98 | } 99 | 100 | // Buttons ==================================================================== 101 | 102 | .btn { 103 | padding: $padding-base-vertical $padding-base-horizontal; 104 | 105 | &-lg { 106 | padding: $padding-large-vertical $padding-large-horizontal; 107 | } 108 | 109 | &-sm { 110 | padding: $padding-small-vertical $padding-small-horizontal; 111 | } 112 | 113 | &-xs { 114 | padding: $padding-xs-vertical $padding-xs-horizontal; 115 | } 116 | } 117 | 118 | .btn-group { 119 | 120 | .btn ~ .dropdown-toggle { 121 | padding-left: 16px; 122 | padding-right: 16px; 123 | } 124 | 125 | .dropdown-menu { 126 | border-top-width: 0; 127 | } 128 | 129 | &.dropup .dropdown-menu { 130 | border-top-width: 1px; 131 | border-bottom-width: 0; 132 | margin-bottom: 0; 133 | } 134 | 135 | .dropdown-toggle { 136 | 137 | &.btn-default ~ .dropdown-menu { 138 | background-color: $btn-default-bg; 139 | border-color: $btn-default-border; 140 | 141 | > li > a { 142 | color: $btn-default-color; 143 | } 144 | 145 | > li > a:hover { 146 | background-color: darken($btn-default-bg, 8%); 147 | } 148 | } 149 | 150 | &.btn-primary ~ .dropdown-menu { 151 | background-color: $btn-primary-bg; 152 | border-color: $btn-primary-border; 153 | 154 | > li > a { 155 | color: $btn-primary-color; 156 | } 157 | 158 | > li > a:hover { 159 | background-color: darken($btn-primary-bg, 8%); 160 | } 161 | } 162 | 163 | &.btn-success ~ .dropdown-menu { 164 | background-color: $btn-success-bg; 165 | border-color: $btn-success-border; 166 | 167 | > li > a { 168 | color: $btn-success-color; 169 | } 170 | 171 | > li > a:hover { 172 | background-color: darken($btn-success-bg, 8%); 173 | } 174 | } 175 | 176 | &.btn-info ~ .dropdown-menu { 177 | background-color: $btn-info-bg; 178 | border-color: $btn-info-border; 179 | 180 | > li > a { 181 | color: $btn-info-color; 182 | } 183 | 184 | > li > a:hover { 185 | background-color: darken($btn-info-bg, 8%); 186 | } 187 | } 188 | 189 | &.btn-warning ~ .dropdown-menu { 190 | background-color: $btn-warning-bg; 191 | border-color: $btn-warning-border; 192 | 193 | > li > a { 194 | color: $btn-warning-color; 195 | } 196 | 197 | > li > a:hover { 198 | background-color: darken($btn-warning-bg, 8%); 199 | } 200 | } 201 | 202 | &.btn-danger ~ .dropdown-menu { 203 | background-color: $btn-danger-bg; 204 | border-color: $btn-danger-border; 205 | 206 | > li > a { 207 | color: $btn-danger-color; 208 | } 209 | 210 | > li > a:hover { 211 | background-color: darken($btn-danger-bg, 8%); 212 | } 213 | } 214 | } 215 | } 216 | 217 | // Typography ================================================================= 218 | 219 | .lead { 220 | color: $gray; 221 | } 222 | 223 | cite { 224 | font-style: italic; 225 | } 226 | 227 | blockquote { 228 | border-left-width: 1px; 229 | color: $gray; 230 | 231 | &.pull-right { 232 | border-right-width: 1px; 233 | } 234 | 235 | small { 236 | font-size: $font-size-small; 237 | font-weight: 300; 238 | } 239 | } 240 | 241 | // Tables ===================================================================== 242 | 243 | table { 244 | font-size: $font-size-small; 245 | } 246 | 247 | // Forms ====================================================================== 248 | 249 | label, 250 | .control-label, 251 | .help-block, 252 | .checkbox, 253 | .radio { 254 | font-size: $font-size-small; 255 | font-weight: normal; 256 | } 257 | 258 | input[type="radio"], 259 | input[type="checkbox"] { 260 | margin-top: 1px; 261 | } 262 | 263 | // Navs ======================================================================= 264 | 265 | .nav { 266 | .open > a, 267 | .open > a:hover, 268 | .open > a:focus { 269 | border-color: transparent; 270 | } 271 | } 272 | 273 | .nav-tabs { 274 | > li > a { 275 | background-color: $btn-default-bg; 276 | color: $text-color; 277 | } 278 | 279 | .caret { 280 | border-top-color: $text-color; 281 | border-bottom-color: $text-color; 282 | } 283 | } 284 | 285 | .nav-pills { 286 | font-weight: 300; 287 | } 288 | 289 | .breadcrumb { 290 | border: 1px solid $table-border-color; 291 | border-radius: 3px; 292 | font-size: 10px; 293 | font-weight: 300; 294 | text-transform: uppercase; 295 | } 296 | 297 | .pagination { 298 | font-size: $font-size-small; 299 | font-weight: 300; 300 | color: $gray-light; 301 | 302 | > li { 303 | > a, 304 | > span { 305 | margin-left: 4px; 306 | color: $gray-light; 307 | } 308 | } 309 | 310 | > .active { 311 | > a, 312 | > span { 313 | color: #fff; 314 | } 315 | } 316 | 317 | > li, 318 | > li:first-child, 319 | > li:last-child { 320 | > a, 321 | > span { 322 | border-radius: 3px; 323 | } 324 | } 325 | 326 | &-lg > li > a, 327 | &-lg > li > span { 328 | padding-left: 22px; 329 | padding-right: 22px; 330 | } 331 | 332 | &-sm > li > a, 333 | &-sm > li > span { 334 | padding: 0 5px; 335 | } 336 | } 337 | 338 | .pager { 339 | font-size: $font-size-small; 340 | font-weight: 300; 341 | color: $gray-light; 342 | } 343 | 344 | .list-group { 345 | font-size: $font-size-small; 346 | font-weight: 300; 347 | } 348 | 349 | // Indicators ================================================================= 350 | 351 | .close { 352 | opacity: 0.4; 353 | text-decoration: none; 354 | text-shadow: none; 355 | 356 | &:hover, 357 | &:focus { 358 | opacity: 1; 359 | } 360 | } 361 | 362 | .alert { 363 | font-size: $font-size-small; 364 | font-weight: 300; 365 | 366 | .alert-link { 367 | font-weight: normal; 368 | color: #fff; 369 | text-decoration: underline; 370 | } 371 | } 372 | 373 | .label { 374 | padding-left: 1em; 375 | padding-right: 1em; 376 | border-radius: 0; 377 | font-weight: 300; 378 | 379 | &-default { 380 | background-color: $btn-default-bg; 381 | color: $btn-default-color; 382 | } 383 | } 384 | 385 | .badge { 386 | font-weight: 300; 387 | } 388 | 389 | // Progress bars ============================================================== 390 | 391 | .progress { 392 | height: 22px; 393 | padding: 2px; 394 | background-color: #f6f6f6; 395 | border: 1px solid #ccc; 396 | @include box-shadow(none); 397 | } 398 | 399 | // Containers ================================================================= 400 | 401 | .dropdown { 402 | 403 | &-menu { 404 | padding: 0; 405 | margin-top: 0; 406 | font-size: $font-size-small; 407 | 408 | > li > a { 409 | padding: 12px 15px; 410 | } 411 | } 412 | 413 | &-header { 414 | padding-left: 15px; 415 | padding-right: 15px; 416 | font-size: 9px; 417 | text-transform: uppercase; 418 | } 419 | } 420 | 421 | .popover { 422 | color: #fff; 423 | font-size: 12px; 424 | font-weight: 300; 425 | } 426 | 427 | .panel { 428 | &-heading, 429 | &-footer { 430 | border-top-right-radius: 0; 431 | border-top-left-radius: 0; 432 | } 433 | 434 | &-default { 435 | .close { 436 | color: $text-color; 437 | } 438 | } 439 | } 440 | 441 | .modal { 442 | .close { 443 | color: $text-color; 444 | } 445 | } 446 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/yeti/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Yeti 3.3.7 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @web-font-path: "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700"; 6 | 7 | .web-font(@path) { 8 | @import url("@{path}"); 9 | } 10 | .web-font(@web-font-path); 11 | 12 | // Navbar ===================================================================== 13 | 14 | .navbar { 15 | border: none; 16 | font-size: 13px; 17 | font-weight: 300; 18 | 19 | .navbar-toggle:hover .icon-bar { 20 | background-color: #b3b3b3; 21 | } 22 | 23 | &-collapse { 24 | border-top-color: @dropdown-divider-bg; 25 | .box-shadow(none); 26 | } 27 | 28 | .btn { 29 | padding-top: 6px; 30 | padding-bottom: 6px; 31 | } 32 | 33 | &-form { 34 | margin-top: 7px; 35 | margin-bottom: 5px; 36 | 37 | .form-control { 38 | height: auto; 39 | padding: @padding-xs-vertical @padding-xs-horizontal; 40 | } 41 | } 42 | 43 | &-text { 44 | margin: 12px 15px; 45 | line-height: 21px; 46 | } 47 | 48 | .dropdown { 49 | 50 | &-menu { 51 | border: none; 52 | 53 | > li > a, 54 | > li > a:focus { 55 | background-color: transparent; 56 | font-size: 13px; 57 | font-weight: 300; 58 | } 59 | } 60 | 61 | &-header { 62 | color: rgba(255, 255, 255, 0.5); 63 | } 64 | 65 | } 66 | 67 | &-default { 68 | 69 | .dropdown-menu { 70 | background-color: @navbar-default-bg; 71 | 72 | > li > a, 73 | > li > a:focus { 74 | color: @navbar-default-color; 75 | } 76 | 77 | > li > a:hover, 78 | > .active > a, 79 | > .active > a:hover { 80 | background-color: @navbar-default-link-hover-bg; 81 | } 82 | } 83 | } 84 | 85 | &-inverse { 86 | 87 | .dropdown-menu { 88 | background-color: @navbar-inverse-bg; 89 | 90 | > li > a, 91 | > li > a:focus { 92 | color: @navbar-inverse-color; 93 | } 94 | 95 | > li > a:hover, 96 | > .active > a, 97 | > .active > a:hover { 98 | background-color: @navbar-inverse-link-hover-bg; 99 | } 100 | } 101 | } 102 | } 103 | 104 | // Buttons ==================================================================== 105 | 106 | .btn { 107 | padding: @padding-base-vertical @padding-base-horizontal; 108 | 109 | &-lg { 110 | padding: @padding-large-vertical @padding-large-horizontal; 111 | } 112 | 113 | &-sm { 114 | padding: @padding-small-vertical @padding-small-horizontal; 115 | } 116 | 117 | &-xs { 118 | padding: @padding-xs-vertical @padding-xs-horizontal; 119 | } 120 | } 121 | 122 | .btn-group { 123 | 124 | .btn ~ .dropdown-toggle { 125 | padding-left: 16px; 126 | padding-right: 16px; 127 | } 128 | 129 | .dropdown-menu { 130 | border-top-width: 0; 131 | } 132 | 133 | &.dropup .dropdown-menu { 134 | border-top-width: 1px; 135 | border-bottom-width: 0; 136 | margin-bottom: 0; 137 | } 138 | 139 | .dropdown-toggle { 140 | 141 | &.btn-default ~ .dropdown-menu { 142 | background-color: @btn-default-bg; 143 | border-color: @btn-default-border; 144 | 145 | > li > a { 146 | color: @btn-default-color; 147 | } 148 | 149 | > li > a:hover { 150 | background-color: darken(@btn-default-bg, 8%); 151 | } 152 | } 153 | 154 | &.btn-primary ~ .dropdown-menu { 155 | background-color: @btn-primary-bg; 156 | border-color: @btn-primary-border; 157 | 158 | > li > a { 159 | color: @btn-primary-color; 160 | } 161 | 162 | > li > a:hover { 163 | background-color: darken(@btn-primary-bg, 8%); 164 | } 165 | } 166 | 167 | &.btn-success ~ .dropdown-menu { 168 | background-color: @btn-success-bg; 169 | border-color: @btn-success-border; 170 | 171 | > li > a { 172 | color: @btn-success-color; 173 | } 174 | 175 | > li > a:hover { 176 | background-color: darken(@btn-success-bg, 8%); 177 | } 178 | } 179 | 180 | &.btn-info ~ .dropdown-menu { 181 | background-color: @btn-info-bg; 182 | border-color: @btn-info-border; 183 | 184 | > li > a { 185 | color: @btn-info-color; 186 | } 187 | 188 | > li > a:hover { 189 | background-color: darken(@btn-info-bg, 8%); 190 | } 191 | } 192 | 193 | &.btn-warning ~ .dropdown-menu { 194 | background-color: @btn-warning-bg; 195 | border-color: @btn-warning-border; 196 | 197 | > li > a { 198 | color: @btn-warning-color; 199 | } 200 | 201 | > li > a:hover { 202 | background-color: darken(@btn-warning-bg, 8%); 203 | } 204 | } 205 | 206 | &.btn-danger ~ .dropdown-menu { 207 | background-color: @btn-danger-bg; 208 | border-color: @btn-danger-border; 209 | 210 | > li > a { 211 | color: @btn-danger-color; 212 | } 213 | 214 | > li > a:hover { 215 | background-color: darken(@btn-danger-bg, 8%); 216 | } 217 | } 218 | } 219 | } 220 | 221 | // Typography ================================================================= 222 | 223 | .lead { 224 | color: @gray; 225 | } 226 | 227 | cite { 228 | font-style: italic; 229 | } 230 | 231 | blockquote { 232 | border-left-width: 1px; 233 | color: @gray; 234 | 235 | &.pull-right { 236 | border-right-width: 1px; 237 | } 238 | 239 | small { 240 | font-size: @font-size-small; 241 | font-weight: 300; 242 | } 243 | } 244 | 245 | // Tables ===================================================================== 246 | 247 | table { 248 | font-size: @font-size-small; 249 | } 250 | 251 | // Forms ====================================================================== 252 | 253 | label, 254 | .control-label, 255 | .help-block, 256 | .checkbox, 257 | .radio { 258 | font-size: @font-size-small; 259 | font-weight: normal; 260 | } 261 | 262 | input[type="radio"], 263 | input[type="checkbox"] { 264 | margin-top: 1px; 265 | } 266 | 267 | // Navs ======================================================================= 268 | 269 | .nav { 270 | .open > a, 271 | .open > a:hover, 272 | .open > a:focus { 273 | border-color: transparent; 274 | } 275 | } 276 | 277 | .nav-tabs { 278 | > li > a { 279 | background-color: @btn-default-bg; 280 | color: @text-color; 281 | } 282 | 283 | .caret { 284 | border-top-color: @text-color; 285 | border-bottom-color: @text-color; 286 | } 287 | } 288 | 289 | .nav-pills { 290 | font-weight: 300; 291 | } 292 | 293 | .breadcrumb { 294 | border: 1px solid @table-border-color; 295 | border-radius: 3px; 296 | font-size: 10px; 297 | font-weight: 300; 298 | text-transform: uppercase; 299 | } 300 | 301 | .pagination { 302 | font-size: @font-size-small; 303 | font-weight: 300; 304 | color: @gray-light; 305 | 306 | > li { 307 | > a, 308 | > span { 309 | margin-left: 4px; 310 | color: @gray-light; 311 | } 312 | } 313 | 314 | > .active { 315 | > a, 316 | > span { 317 | color: #fff; 318 | } 319 | } 320 | 321 | > li, 322 | > li:first-child, 323 | > li:last-child { 324 | > a, 325 | > span { 326 | border-radius: 3px; 327 | } 328 | } 329 | 330 | &-lg > li > a, 331 | &-lg > li > span { 332 | padding-left: 22px; 333 | padding-right: 22px; 334 | } 335 | 336 | &-sm > li > a, 337 | &-sm > li > span { 338 | padding: 0 5px; 339 | } 340 | } 341 | 342 | .pager { 343 | font-size: @font-size-small; 344 | font-weight: 300; 345 | color: @gray-light; 346 | } 347 | 348 | .list-group { 349 | font-size: @font-size-small; 350 | font-weight: 300; 351 | } 352 | 353 | // Indicators ================================================================= 354 | 355 | .close { 356 | opacity: 0.4; 357 | text-decoration: none; 358 | text-shadow: none; 359 | 360 | &:hover, 361 | &:focus { 362 | opacity: 1; 363 | } 364 | } 365 | 366 | .alert { 367 | font-size: @font-size-small; 368 | font-weight: 300; 369 | 370 | .alert-link { 371 | font-weight: normal; 372 | color: #fff; 373 | text-decoration: underline; 374 | } 375 | } 376 | 377 | .label { 378 | padding-left: 1em; 379 | padding-right: 1em; 380 | border-radius: 0; 381 | font-weight: 300; 382 | 383 | &-default { 384 | background-color: @btn-default-bg; 385 | color: @btn-default-color; 386 | } 387 | } 388 | 389 | .badge { 390 | font-weight: 300; 391 | } 392 | 393 | // Progress bars ============================================================== 394 | 395 | .progress { 396 | height: 22px; 397 | padding: 2px; 398 | background-color: #f6f6f6; 399 | border: 1px solid #ccc; 400 | .box-shadow(none); 401 | } 402 | 403 | // Containers ================================================================= 404 | 405 | .dropdown { 406 | 407 | &-menu { 408 | padding: 0; 409 | margin-top: 0; 410 | font-size: @font-size-small; 411 | 412 | > li > a { 413 | padding: 12px 15px; 414 | } 415 | } 416 | 417 | &-header { 418 | padding-left: 15px; 419 | padding-right: 15px; 420 | font-size: 9px; 421 | text-transform: uppercase; 422 | } 423 | } 424 | 425 | .popover { 426 | color: #fff; 427 | font-size: 12px; 428 | font-weight: 300; 429 | } 430 | 431 | .panel { 432 | &-heading, 433 | &-footer { 434 | border-top-right-radius: 0; 435 | border-top-left-radius: 0; 436 | } 437 | 438 | &-default { 439 | .close { 440 | color: @text-color; 441 | } 442 | } 443 | } 444 | 445 | .modal { 446 | .close { 447 | color: @text-color; 448 | } 449 | } 450 | -------------------------------------------------------------------------------- /xstatic/pkg/bootswatch/data/yeti/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/xstatic-bootswatch/15e974be96fcb16d64fbf6ab58aab20e27d218a0/xstatic/pkg/bootswatch/data/yeti/thumbnail.png --------------------------------------------------------------------------------