From 4e4d802b43ed5cf9616202f75b5ed47b8fb0564d Mon Sep 17 00:00:00 2001 From: Nicolas Pochet Date: Tue, 5 Feb 2019 16:07:27 +0100 Subject: [PATCH] Add ubuntu theme (#55) --- .../local/local_settings.d/_05_snap_tweaks.py | 5 +- .../themes/ubuntu/_styles.scss | 236 +++++ .../themes/ubuntu/_variables.scss | 17 + .../themes/ubuntu/bootstrap/_styles.scss | 2 + .../themes/ubuntu/bootstrap/_variables.scss | 853 ++++++++++++++++++ .../ubuntu/bootstrap/components/_navbar.scss | 80 ++ .../ubuntu/bootstrap/components/_navs.scss | 26 + .../themes/ubuntu/horizon/_styles.scss | 11 + .../themes/ubuntu/horizon/_variables.scss | 6 + .../components/_context_selection.scss | 53 ++ .../horizon/components/_pie_charts.scss | 12 + .../ubuntu/horizon/components/_sidebar.scss | 84 ++ .../ubuntu/img/image-background-pattern.png | Bin 0 -> 92706 bytes .../themes/ubuntu/img/logo-ubuntu-orange.svg | 15 + .../themes/ubuntu/img/logo-ubuntu-white.svg | 15 + 15 files changed, 1412 insertions(+), 3 deletions(-) create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_styles.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_variables.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_styles.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_variables.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navbar.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navs.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_styles.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_variables.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_context_selection.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_pie_charts.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_sidebar.scss create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/image-background-pattern.png create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-orange.svg create mode 100644 snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-white.svg diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.d/_05_snap_tweaks.py b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.d/_05_snap_tweaks.py index bfa1ca8..a3b4ae9 100644 --- a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.d/_05_snap_tweaks.py +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.d/_05_snap_tweaks.py @@ -17,7 +17,6 @@ STATIC_ROOT = '/var/snap/microstack/common/var/horizon/static' # the fix.) AVAILABLE_THEMES = [ ('default', 'Default', 'themes/default'), -# ('material', 'Material', 'themes/material'), + # ('material', 'Material', 'themes/material'), + ('ubuntu', 'Ubuntu', 'themes/ubuntu'), ] - - diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_styles.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_styles.scss new file mode 100644 index 0000000..cca943b --- /dev/null +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_styles.scss @@ -0,0 +1,236 @@ +@import "bootstrap/styles"; +@import "horizon/styles"; + +/* Ubuntu styles */ +body, +.page-header { + font-family: Ubuntu, Arial, "libra sans", sans-serif; + font-weight: 300; +} + +p { + margin: 10px 0; +} + +a, +a:link, +a:visited { + color: $brand-color; +} + +.row { + margin-bottom: 20px; + margin-top: 20px; +} + +table { + background-color: $table-bg; + border: 1px solid #ddd; +} + +.table_actions { + margin-bottom: 10px; +} + +.topbar, +.topbar .switcher_bar .btn.btn-topnav, +.navbar-default { + background: $brand-color; +} + +.navbar-default .navbar-nav > li > a { + border-color: $brand-color; + color: $white !important; + + &:hover, + &:focus { + border-color: $topbar-link-hover; + background: $topbar-link-hover; + color: $white; + } +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: $topbar-link-hover; + color: $white; +} + +.navbar-brand { + background-image: url("/static/themes/ubuntu/img/logo-ubuntu-white.svg"); + background-position: 20px 4px; + background-repeat: no-repeat; + background-size: 110px; + + img { + opacity: 0; + } +} + +.nav_accordion dt li a.active, +.nav_accordion dd li a.active { + border-left: 4px solid $brand-color; + color: $brand-color; +} + +.nav-tabs { + margin-bottom: 10px; +} + +.navbar .dropdown-menu:before { + display: none; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover { + background-color: $nav-active-color; + + &:hover { + background-color: $nav-hover-color; + } +} + +.d3_pie_chart_usage .arc.inner { + fill: $brand-color; +} + +.container-fluid { + padding-bottom: 5px; + padding-top: 5px; +} + +.fa.hz-icon-required { + color: $brand-color; +} + +.context-selection > li > ul > li > a > .fa.fa-check { + left: 0.5em; + padding: 0; +} + +.form-group label { + margin-right: 5px; +} + +/* Login splash screen */ +#splash { + background: url("/static/themes/ubuntu/img/image-background-pattern.png"); + background: linear-gradient(to right, rgba(100, 100, 100, 0.2), transparent), url("/static/themes/ubuntu/img/image-background-pattern.png"); + + .login { + background-color: $white; + box-shadow: 0px 1px 3px 1px rgba(51,51,51,0.2); + -moz-box-shadow: 0px 1px 3px 1px rgba(51,51,51,0.2); + -webkit-box-shadow: 0px 1px 3px 1px rgba(51,51,51,0.2); + max-width: 500px; + padding-bottom: 20px; + padding-top: 60px; + position: relative; + + .splash-logo { + display: none; + } + + &:after { + background-image: url("/static/themes/ubuntu/img/logo-ubuntu-orange.svg"); + background-repeat: no-repeat; + background-size: 110px; + color: $brand-color; + content: "OpenStack Dashboard"; + display: block; + font-size: 21px; + left: 20px; + line-height: 1.7em; + position: absolute; + text-indent: 115px; + top: 25px; + width: 100%; + } + + .horizontal-center { + margin: 0; + width: auto; + } + } +} + +/* Sidebar panel */ +a.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:hover, +button.list-group-item:focus, +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + color: #888; + background-color: $light-grey; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + font-weight: bold; +} + +/* Buttons (btn) */ +.btn-primary { + background-color: $brand-color; + border-color: darken($brand-color, 5%); + color: $white !important; + margin-right: 5px; + + &.pull-right { + margin-right: 0; + } +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle { + background-color: lighten($brand-color, 5%); + border-color: $brand-color; +} + +.btn-primary.disabled { + background-color: #efefef; + border: 1px solid #efefef; +} + +.btn-primary.disabled:hover, +.btn-primary.disabled:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled]:hover, +.btn-primary[disabled]:focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary:hover, +fieldset[disabled] .btn-primary:focus, +fieldset[disabled] .btn-primary.focus { + background: $brand-color; + color: $white; + cursor: not-allowed; + opacity: .3; +} + +/* btn-danger overrides */ +.dropdown-menu > li > .btn.btn-danger { + color: $brand-danger; + background-color: $white; +} + +.btn-danger, a.btn-danger, a.btn-danger:link, a.btn-danger:visited { + color: $white; + background-color: $brand-danger; + border-color: darken($brand-danger, 5%); +} + +a.btn-danger:hover { + background-color: darken($brand-danger, 5%); +} + +/* Loading spinner */ +.modal-body p { + margin: 0 0 9px; +} diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_variables.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_variables.scss new file mode 100644 index 0000000..807d00b --- /dev/null +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/_variables.scss @@ -0,0 +1,17 @@ +@import "bootstrap/variables"; +@import "horizon/variables"; +@import "/horizon/lib/font_awesome/scss/variables"; + +/* Custom Variables */ +$font-size-base: 16px; +$brand-color: #e95420; +$topbar-link-hover: #ec5b29; +$white: #fff; +$light-grey: #f7f7f7; + +$brand-primary: $brand-color; + +$nav-active-color: #b83a10; +$nav-hover-color: #e1662f; + +$table-bg: #efefef; diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_styles.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_styles.scss new file mode 100644 index 0000000..d9fa4c6 --- /dev/null +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_styles.scss @@ -0,0 +1,2 @@ +@import 'components/navs'; +@import 'components/navbar'; \ No newline at end of file diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_variables.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_variables.scss new file mode 100644 index 0000000..c3f7f05 --- /dev/null +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/_variables.scss @@ -0,0 +1,853 @@ +// a flag to toggle asset pipeline / compass integration +// defaults to true if twbs-font-path function is present (no function => twbs-font-path('') parsed as string == right side) +// in Sass 3.3 this can be improved with: function-exists(twbs-font-path) +$bootstrap-sass-asset-helper: (twbs-font-path("") != unquote('twbs-font-path("")')) !default; +// +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + + +/* Bootstrap variables overrides */ + + +$gray-darker: lighten(#000, 13.5%) !default; // #222 +$gray-dark: lighten(#000, 20%) !default; // #333 +$gray: #6e6e6e !default; +$gray-light: #BBB !default; +$gray-lighter: lighten(#000, 93.5%) !default; // #eee + +$brand-primary: #428bca !default; +$brand-success: #5cb85c !default; +$brand-info: #5bc0de !default; +$brand-warning: #f0ad4e !default; +$brand-danger: #d9534f !default; + + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for ``. +$body-bg: #fff !default; +//** Global text color on ``. +$text-color: $gray-dark !default; + +//** Global textual link color. +$link-color: $brand-primary !default; +//** Link hover color set via `darken()` function. +$link-hover-color: darken($link-color, 15%) !default; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; +$font-family-serif: Georgia, "Times New Roman", Times, serif !default; +//** Default monospace fonts for ``, ``, and `
`.
+$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
+$font-family-base:        $font-family-sans-serif !default;
+
+$font-size-base:          13px !default;
+$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
+
+$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
+$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
+$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
+$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-h5:            $font-size-base !default;
+$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base:        1.428571429 !default; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
+
+//** By default, this inherits from the ``.
+$headings-font-family:    inherit !default;
+$headings-font-weight:    500 !default;
+$headings-line-height:    1.1 !default;
+$headings-color:          inherit !default;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+$icon-font-path: "../../bootstrap/fonts/bootstrap/" !default;
+//** File name for all font files.
+$icon-font-name:          "glyphicons-halflings-regular" !default;
+//** Element ID within SVG icon file.
+$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical:     6px !default;
+$padding-base-horizontal:   12px !default;
+
+$padding-large-vertical:    10px !default;
+$padding-large-horizontal:  16px !default;
+
+$padding-small-vertical:    5px !default;
+$padding-small-horizontal:  10px !default;
+
+$padding-xs-vertical:       1px !default;
+$padding-xs-horizontal:     5px !default;
+
+$line-height-large:         1.33 !default;
+$line-height-small:         1.5 !default;
+
+$border-radius-base:        4px !default;
+$border-radius-large:       6px !default;
+$border-radius-small:       3px !default;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color:    #fff !default;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg:       $brand-primary !default;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+$caret-width-base:          4px !default;
+//** Carets increase slightly in size for larger components.
+$caret-width-large:         5px !default;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ``s.
+$table-cell-padding:            8px !default;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding:  5px !default;
+
+//** Default background color used for all tables.
+$table-bg:                      transparent !default;
+//** Background color used for `.table-striped`.
+$table-bg-accent:               #f9f9f9 !default;
+//** Background color used for `.table-hover`.
+$table-bg-hover:                #f5f5f5 !default;
+$table-bg-active:               $table-bg-hover !default;
+
+//** Border color for table and cell borders.
+$table-border-color:            #ddd !default;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$btn-font-weight:                normal !default;
+
+$btn-default-color:              #333 !default;
+$btn-default-bg:                 #fff !default;
+$btn-default-border:             #ccc !default;
+
+$btn-primary-color:              #fff !default;
+$btn-primary-bg:                 $brand-primary !default;
+$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
+
+$btn-success-color:              #fff !default;
+$btn-success-bg:                 $brand-success !default;
+$btn-success-border:             darken($btn-success-bg, 5%) !default;
+
+$btn-info-color:                 #fff !default;
+$btn-info-bg:                    $brand-info !default;
+$btn-info-border:                darken($btn-info-bg, 5%) !default;
+
+$btn-warning-color:              #fff !default;
+$btn-warning-bg:                 $brand-warning !default;
+$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
+
+$btn-danger-color:               #fff !default;
+$btn-danger-bg:                  $brand-danger !default;
+$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
+
+$btn-link-disabled-color:        $gray-light !default;
+
+
+//== Forms
+//
+//##
+
+//** `` background color
+$input-bg:                       #fff !default;
+//** `` background color
+$input-bg-disabled:              $gray-lighter !default;
+
+//** Text color for ``s
+$input-color:                    $gray !default;
+//** `` border color
+$input-border:                   #ccc !default;
+//** `` border radius
+$input-border-radius:            $border-radius-base !default;
+//** Border color for inputs on focus
+$input-border-focus:             #66afe9 !default;
+
+//** Placeholder text color
+$input-color-placeholder:        $gray-light !default;
+
+//** Default `.form-control` height
+$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
+//** Large `.form-control` height
+$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
+//** Small `.form-control` height
+$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
+
+$legend-color:                   $gray-dark !default;
+$legend-border-color:            #e5e5e5 !default;
+
+//** Background color for textual input addons
+$input-group-addon-bg:           $gray-lighter !default;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border !default;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg:                    #fff !default;
+//** Dropdown menu `border-color`.
+$dropdown-border:                rgba(0,0,0,.15) !default;
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border:       #ccc !default;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg:            #e5e5e5 !default;
+
+//** Dropdown link text color.
+$dropdown-link-color:            $gray-dark !default;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg:         #f5f5f5 !default;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color:     $component-active-color !default;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg:        $component-active-bg !default;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color:   $gray-light !default;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color:          $gray !default;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color:           #000 !default;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar:            1000 !default;
+$zindex-dropdown:          1000 !default;
+$zindex-popover:           1060 !default;
+$zindex-tooltip:           1070 !default;
+$zindex-navbar-fixed:      1030 !default;
+$zindex-modal-background:  1040 !default;
+$zindex-modal:             1050 !default;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs:                  480px !default;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min:              $screen-xs !default;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone:               $screen-xs-min !default;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm:                  768px !default;
+$screen-sm-min:              $screen-sm !default;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet:              $screen-sm-min !default;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md:                  992px !default;
+$screen-md-min:              $screen-md !default;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop:             $screen-md-min !default;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg:                  1200px !default;
+$screen-lg-min:              $screen-lg !default;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop:          $screen-lg-min !default;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max:              ($screen-sm-min - 1) !default;
+$screen-sm-max:              ($screen-md-min - 1) !default;
+$screen-md-max:              ($screen-lg-min - 1) !default;
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns:              12 !default;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width:         30px !default;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint:     $screen-sm-min !default;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet:             ((720px + $grid-gutter-width)) !default;
+//** For `$screen-sm-min` and up.
+$container-sm:                 $container-tablet !default;
+
+// Medium screen / desktop
+$container-desktop:            ((940px + $grid-gutter-width)) !default;
+//** For `$screen-md-min` and up.
+$container-md:                 $container-desktop !default;
+
+// Large screen / wide desktop
+$container-large-desktop:      ((1140px + $grid-gutter-width)) !default;
+//** For `$screen-lg-min` and up.
+$container-lg:                 $container-large-desktop !default;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height:                    36px !default;
+$navbar-margin-bottom:             $line-height-computed !default;
+$navbar-border-radius:             0 !default;
+$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
+$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
+$navbar-collapse-max-height:       340px !default;
+
+$navbar-default-color:             #333 !default;
+$navbar-default-bg:                #eee !default;
+$navbar-default-border:            #ccc !default;
+
+// Navbar links
+$navbar-default-link-color:                $navbar-default-color !default;
+$navbar-default-link-hover-color:          $navbar-default-color !default;
+$navbar-default-link-hover-bg:             #d5d5d5 !default;
+$navbar-default-link-active-color:         $navbar-default-color !default;
+$navbar-default-link-active-bg:            $navbar-default-link-hover-bg !default;
+$navbar-default-link-disabled-color:       $gray-light !default;
+$navbar-default-link-disabled-bg:          transparent !default;
+
+// Navbar brand label
+$navbar-default-brand-color:               $navbar-default-link-color !default;
+$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
+$navbar-default-brand-hover-bg:            transparent !default;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg:           #ddd !default;
+$navbar-default-toggle-icon-bar-bg:        #888 !default;
+$navbar-default-toggle-border-color:       #ddd !default;
+
+
+// Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color:                      $gray-light !default;
+$navbar-inverse-bg:                         #222 !default;
+$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
+
+// Inverted navbar links
+$navbar-inverse-link-color:                 $gray-light !default;
+$navbar-inverse-link-hover-color:           #fff !default;
+$navbar-inverse-link-hover-bg:              transparent !default;
+$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
+$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
+$navbar-inverse-link-disabled-color:        #444 !default;
+$navbar-inverse-link-disabled-bg:           transparent !default;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
+$navbar-inverse-brand-hover-color:          #fff !default;
+$navbar-inverse-brand-hover-bg:             transparent !default;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg:            #333 !default;
+$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
+$navbar-inverse-toggle-border-color:        #333 !default;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding:                          0.5em 1.2em !default;
+$nav-link-hover-bg:                         #dbdcdf !default;
+
+$nav-disabled-link-color:                   $gray-light !default;
+$nav-disabled-link-hover-color:             $gray-light !default;
+
+$nav-open-link-hover-color:                 #fff !default;
+
+//== Tabs
+$nav-tabs-border-color:                     #ddd !default;
+
+$nav-tabs-link-hover-border-color:          $gray-lighter !default;
+
+$nav-tabs-active-link-hover-bg:             $body-bg !default;
+$nav-tabs-active-link-hover-color:          $gray !default;
+$nav-tabs-active-link-hover-border-color:   #ddd !default;
+
+$nav-tabs-justified-link-border-color:            #ddd !default;
+$nav-tabs-justified-active-link-border-color:     $body-bg !default;
+
+//== Pills
+$nav-pills-border-radius:                   0 !default;
+$nav-pills-active-link-hover-bg:            #e3e4e6 !default;
+$nav-pills-active-link-hover-color:         $gray !default;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color:                     $link-color !default;
+$pagination-bg:                        #fff !default;
+$pagination-border:                    #ddd !default;
+
+$pagination-hover-color:               $link-hover-color !default;
+$pagination-hover-bg:                  $gray-lighter !default;
+$pagination-hover-border:              #ddd !default;
+
+$pagination-active-color:              #fff !default;
+$pagination-active-bg:                 $brand-primary !default;
+$pagination-active-border:             $brand-primary !default;
+
+$pagination-disabled-color:            $gray-light !default;
+$pagination-disabled-bg:               #fff !default;
+$pagination-disabled-border:           #ddd !default;
+
+
+//== Pager
+//
+//##
+
+$pager-bg:                             $pagination-bg !default;
+$pager-border:                         $pagination-border !default;
+$pager-border-radius:                  15px !default;
+
+$pager-hover-bg:                       $pagination-hover-bg !default;
+
+$pager-active-bg:                      $pagination-active-bg !default;
+$pager-active-color:                   $pagination-active-color !default;
+
+$pager-disabled-color:                 $pagination-disabled-color !default;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding:              30px !default;
+$jumbotron-color:                inherit !default;
+$jumbotron-bg:                   $gray-lighter !default;
+$jumbotron-heading-color:        inherit !default;
+$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text:             #3c763d !default;
+$state-success-bg:               #dff0d8 !default;
+$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
+
+$state-info-text:                #31708f !default;
+$state-info-bg:                  #d9edf7 !default;
+$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
+
+$state-warning-text:             #8a6d3b !default;
+$state-warning-bg:               #fcf8e3 !default;
+$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
+
+$state-danger-text:              #a94442 !default;
+$state-danger-bg:                #f2dede !default;
+$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width:           200px !default;
+//** Tooltip text color
+$tooltip-color:               #fff !default;
+//** Tooltip background color
+$tooltip-bg:                  #000 !default;
+$tooltip-opacity:             .9 !default;
+
+//** Tooltip arrow width
+$tooltip-arrow-width:         5px !default;
+//** Tooltip arrow color
+$tooltip-arrow-color:         $tooltip-bg !default;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg:                          #fff !default;
+//** Popover maximum width
+$popover-max-width:                   276px !default;
+//** Popover border color
+$popover-border-color:                rgba(0,0,0,.2) !default;
+//** Popover fallback border color
+$popover-fallback-border-color:       #ccc !default;
+
+//** Popover title background color
+$popover-title-bg:                    darken($popover-bg, 3%) !default;
+
+//** Popover arrow width
+$popover-arrow-width:                 10px !default;
+//** Popover arrow color
+$popover-arrow-color:                 #fff !default;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
+//** Popover outer arrow color
+$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg:            $gray-light !default;
+//** Primary label background color
+$label-primary-bg:            $brand-primary !default;
+//** Success label background color
+$label-success-bg:            $brand-success !default;
+//** Info label background color
+$label-info-bg:               $brand-info !default;
+//** Warning label background color
+$label-warning-bg:            $brand-warning !default;
+//** Danger label background color
+$label-danger-bg:             $brand-danger !default;
+
+//** Default label text color
+$label-color:                 #fff !default;
+//** Default text color of a linked label
+$label-link-hover-color:      #fff !default;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding:         15px !default;
+
+//** Padding applied to the modal title
+$modal-title-padding:         15px !default;
+//** Modal title line-height
+$modal-title-line-height:     $line-height-base !default;
+
+//** Background color of modal content area
+$modal-content-bg:                             #fff !default;
+//** Modal content border color
+$modal-content-border-color:                   rgba(0,0,0,.2) !default;
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color:          #999 !default;
+
+//** Modal backdrop background color
+$modal-backdrop-bg:           #000 !default;
+//** Modal backdrop opacity
+$modal-backdrop-opacity:      .5 !default;
+//** Modal header border color
+$modal-header-border-color:   #e5e5e5 !default;
+//** Modal footer border color
+$modal-footer-border-color:   $modal-header-border-color !default;
+
+$modal-lg:                    900px !default;
+$modal-md:                    732px !default;
+$modal-sm:                    300px !default;
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding:               15px !default;
+$alert-border-radius:         $border-radius-base !default;
+$alert-link-font-weight:      bold !default;
+
+$alert-success-bg:            $state-success-bg !default;
+$alert-success-text:          $state-success-text !default;
+$alert-success-border:        $state-success-border !default;
+
+$alert-info-bg:               $state-info-bg !default;
+$alert-info-text:             $state-info-text !default;
+$alert-info-border:           $state-info-border !default;
+
+$alert-warning-bg:            $state-warning-bg !default;
+$alert-warning-text:          $state-warning-text !default;
+$alert-warning-border:        $state-warning-border !default;
+
+$alert-danger-bg:             $state-danger-bg !default;
+$alert-danger-text:           $state-danger-text !default;
+$alert-danger-border:         $state-danger-border !default;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg:                 #f5f5f5 !default;
+//** Progress bar text color
+$progress-bar-color:          #fff !default;
+
+//** Default progress bar color
+$progress-bar-bg:             $brand-primary !default;
+//** Success progress bar color
+$progress-bar-success-bg:     $brand-success !default;
+//** Warning progress bar color
+$progress-bar-warning-bg:     $brand-warning !default;
+//** Danger progress bar color
+$progress-bar-danger-bg:      $brand-danger !default;
+//** Info progress bar color
+$progress-bar-info-bg:        $brand-info !default;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg:                 #fff !default;
+//** `.list-group-item` border color
+$list-group-border:             #ddd !default;
+//** List group border radius
+$list-group-border-radius:      $border-radius-base !default;
+
+//** Background color of single list items on hover
+$list-group-hover-bg:           #f5f5f5 !default;
+//** Text color of active list items
+$list-group-active-color:       $component-active-color !default;
+//** Background color of active list items
+$list-group-active-bg:          $component-active-bg !default;
+//** Border color of active list elements
+$list-group-active-border:      $list-group-active-bg !default;
+//** Text color for content within active list items
+$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
+
+//** Text color of disabled list items
+$list-group-disabled-color:      $gray-light !default;
+//** Background color of disabled list items
+$list-group-disabled-bg:         $gray-lighter !default;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color !default;
+
+$list-group-link-color:         #555 !default;
+$list-group-link-hover-color:   $list-group-link-color !default;
+$list-group-link-heading-color: #333 !default;
+
+
+//== Panels
+//
+//##
+
+$panel-bg:                    #fff !default;
+$panel-body-padding:          15px !default;
+$panel-heading-padding:       10px 15px !default;
+$panel-footer-padding:        $panel-heading-padding !default;
+$panel-border-radius:         $border-radius-base !default;
+
+//** Border color for elements within panels
+$panel-inner-border:          #ddd !default;
+$panel-footer-bg:             #f5f5f5 !default;
+
+$panel-default-text:          $gray-dark !default;
+$panel-default-border:        #ddd !default;
+$panel-default-heading-bg:    #f5f5f5 !default;
+
+$panel-primary-text:          #fff !default;
+$panel-primary-border:        $brand-primary !default;
+$panel-primary-heading-bg:    $brand-primary !default;
+
+$panel-success-text:          $state-success-text !default;
+$panel-success-border:        $state-success-border !default;
+$panel-success-heading-bg:    $state-success-bg !default;
+
+$panel-info-text:             $state-info-text !default;
+$panel-info-border:           $state-info-border !default;
+$panel-info-heading-bg:       $state-info-bg !default;
+
+$panel-warning-text:          $state-warning-text !default;
+$panel-warning-border:        $state-warning-border !default;
+$panel-warning-heading-bg:    $state-warning-bg !default;
+
+$panel-danger-text:           $state-danger-text !default;
+$panel-danger-border:         $state-danger-border !default;
+$panel-danger-heading-bg:     $state-danger-bg !default;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding:           4px !default;
+//** Thumbnail background color
+$thumbnail-bg:                $body-bg !default;
+//** Thumbnail border color
+$thumbnail-border:            #ddd !default;
+//** Thumbnail border radius
+$thumbnail-border-radius:     $border-radius-base !default;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color:     $text-color !default;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding:   9px !default;
+
+
+//== Wells
+//
+//##
+
+$well-bg:                     #f5f5f5 !default;
+$well-border:                 darken($well-bg, 7%) !default;
+
+
+//== Badges
+//
+//##
+
+$badge-color:                 #fff !default;
+//** Linked badge text color on hover
+$badge-link-hover-color:      #fff !default;
+$badge-bg:                    $gray-light !default;
+
+//** Badge text color in active nav link
+$badge-active-color:          $link-color !default;
+//** Badge background color in active nav link
+$badge-active-bg:             #fff !default;
+
+$badge-font-weight:           bold !default;
+$badge-line-height:           1 !default;
+$badge-border-radius:         10px !default;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical:   8px !default;
+$breadcrumb-padding-horizontal: 15px !default;
+//** Breadcrumb background color
+$breadcrumb-bg:                 #f5f5f5 !default;
+//** Breadcrumb text color
+$breadcrumb-color:              #ccc !default;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color:       $gray-light !default;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator:          "/" !default;
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
+
+$carousel-control-color:                      #fff !default;
+$carousel-control-width:                      15% !default;
+$carousel-control-opacity:                    .5 !default;
+$carousel-control-font-size:                  20px !default;
+
+$carousel-indicator-active-bg:                #fff !default;
+$carousel-indicator-border-color:             #fff !default;
+
+$carousel-caption-color:                      #fff !default;
+
+
+//== Close
+//
+//##
+
+$close-font-weight:           bold !default;
+$close-color:                 #000 !default;
+$close-text-shadow:           0 1px 0 #fff !default;
+
+
+//== Code
+//
+//##
+
+$code-color:                  #c7254e !default;
+$code-bg:                     #f9f2f4 !default;
+
+$kbd-color:                   #fff !default;
+$kbd-bg:                      #333 !default;
+
+$pre-bg:                      #f5f5f5 !default;
+$pre-color:                   $gray-dark !default;
+$pre-border-color:            #ccc !default;
+$pre-scrollable-max-height:   340px !default;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px !default;
+//** Text muted color
+$text-muted:                  $gray-light !default;
+//** Abbreviations and acronyms border color
+$abbr-border-color:           $gray-light !default;
+//** Headings small color
+$headings-small-color:        $gray-light !default;
+//** Blockquote small color
+$blockquote-small-color:      $gray-light !default;
+//** Blockquote font size
+$blockquote-font-size:        ($font-size-base * 1.25) !default;
+//** Blockquote border color
+$blockquote-border-color:     $gray-lighter !default;
+//** Page header border color
+$page-header-border-color:    $gray-lighter !default;
+//** Width of horizontal description list titles
+$dl-horizontal-offset:        $component-offset-horizontal !default;
+//** Horizontal line color.
+$hr-border:                   $gray-lighter !default;
+
+
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navbar.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navbar.scss
new file mode 100644
index 0000000..55cce3d
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navbar.scss
@@ -0,0 +1,80 @@
+// These are helper variables for this file only.
+// They inherit from bootstrap/variables and should
+// scope to only this logic for overriding the native
+// bootstrap navbar.
+$navbar-dropdown-arrow-size:   $font-size-small / 2;
+$navbar-dropdown-arrow-offset: $padding-small-horizontal;
+
+.navbar-brand {
+  display: block;
+  padding: 0 $padding-small-horizontal;
+
+  &:before {
+    content: '';
+    display: inline-block;
+    height: 100%;
+    vertical-align: middle;
+  }
+}
+
+.navbar {
+  margin-bottom: 0;
+  border-top: none;
+  border-right: none;
+  border-left: none;
+
+  .navbar-toggle {
+    border-color: transparent;
+  }
+
+  // Pushes the menu slightly down from the navbar
+  li > .dropdown-menu {
+    margin-top: 2px;
+  }
+
+  @media (min-width:$screen-sm) {
+    // Sets default values for upper arrow on navbar dropdowns
+    .dropdown-menu {
+      &:before, &:after {
+        position: absolute;
+        content: '';
+      }
+    }
+
+    // Defaults the arrow to the left side
+    .dropdown-menu {
+      &:before {
+        top: ($navbar-dropdown-arrow-size + 1) * -1;
+        left: $navbar-dropdown-arrow-offset - 1;
+        border-right: $navbar-dropdown-arrow-size + 1 solid transparent;
+        border-bottom: $navbar-dropdown-arrow-size + 1 solid $dropdown-border;
+        border-left: $navbar-dropdown-arrow-size + 1 solid transparent;
+        border-bottom-color: rgba(0, 0, 0, 0.2);
+      }
+
+      &:after {
+        top: -$navbar-dropdown-arrow-size;
+        left: $navbar-dropdown-arrow-offset;
+        border-right: $navbar-dropdown-arrow-size solid transparent;
+        border-bottom: $navbar-dropdown-arrow-size solid $body-bg;
+        border-left: $navbar-dropdown-arrow-size solid transparent;
+      }
+    }
+  }
+}
+
+// Changes the arrow to the right side for .navbar-right items
+.navbar-right .dropdown-menu {
+
+  &:before, &:after {
+    left: auto;
+  }
+
+  &:before {
+    right: $navbar-dropdown-arrow-offset - 1;
+  }
+
+  &:after {
+    right: $navbar-dropdown-arrow-offset;
+  }
+}
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navs.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navs.scss
new file mode 100644
index 0000000..8b99aee
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/bootstrap/components/_navs.scss
@@ -0,0 +1,26 @@
+.nav-pills.nav-stacked {
+  a {
+    color: $gray;
+  }
+
+  & > li {
+    & > a {
+      border-top: 1px solid $gray-light;
+      border-bottom: 1px solid $gray-light;
+      border-radius: 0;
+      font-weight: bold;
+    }
+  }
+
+  & > li + li {
+    margin-top: 0;
+
+    & > a {
+      border-top: none;
+    }
+  }
+
+  & > li > .in {
+    border-bottom: 1px solid $gray-light;
+  }
+}
\ No newline at end of file
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_styles.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_styles.scss
new file mode 100644
index 0000000..023766b
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_styles.scss
@@ -0,0 +1,11 @@
+@import "/horizon/lib/bootstrap_scss/scss/bootstrap/mixins/vendor-prefixes";
+
+@import 'components/_context_selection';
+@import 'components/sidebar';
+@import 'components/pie_charts';
+
+.navbar-brand {
+
+  // The 114 is a legacy value to push the context-menu over
+  padding-right: 114px;
+}
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_variables.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_variables.scss
new file mode 100644
index 0000000..6e963c0
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/_variables.scss
@@ -0,0 +1,6 @@
+$sidebar-box-shadow-color: #c7c7c7;
+$sidebar-box-shadow: -3px 2px 6px -2px $sidebar-box-shadow-color inset, -1px 0 0 0 $sidebar-box-shadow-color inset;
+$sidebar-background-color: $table-bg-accent;
+$sidebar-active-color: #d93c27;
+$sidebar-active-indicator-width: $caret-width-base;
+$sidebar-active-box-shadow: -3px 3px 6px -3px;
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_context_selection.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_context_selection.scss
new file mode 100644
index 0000000..4d28b66
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_context_selection.scss
@@ -0,0 +1,53 @@
+//Keep the native bootstrap experience for smaller screens
+@media(min-width: $screen-sm) {
+
+  .context-selection {
+    width: auto;
+    padding: 0;
+
+    & > li {
+      display: table-cell;
+      padding: $padding-xs-horizontal 0;
+
+      & > ul > li {
+
+        &.dropdown-header,
+        & > a {
+          padding: $bs-dropdown-item-padding-vertical $bs-dropdown-item-padding-horizontal*2 $bs-dropdown-item-padding-vertical $bs-dropdown-item-padding-horizontal;
+        }
+
+        &.dropdown-header {
+          color: $dropdown-header-color;
+        }
+
+        & > a  {
+          display: inline-block;
+          width: 100%;
+
+          & > .fa.fa-check {
+            left: auto;
+            float: auto;
+            padding-left: $bs-dropdown-item-padding-horizontal/2;
+          }
+        }
+      }
+
+      &:not(:last-child) {
+        border-right: 1px solid $gray-light;
+      }
+    }
+  }
+
+  .open .context-selection {
+    display: table;
+
+    // display: table pushes down our little arrow a single pixel
+    &:before {
+      top: -($font-size-small/2);
+    }
+
+    &:after {
+      top: -($font-size-small/2) + 1;
+    }
+  }
+}
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_pie_charts.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_pie_charts.scss
new file mode 100644
index 0000000..f6aa5b2
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_pie_charts.scss
@@ -0,0 +1,12 @@
+.d3_pie_chart_usage {
+  .arc {
+    stroke: $gray-light;
+    fill: $gray-lighter;
+  }
+}
+
+.d3_pie_chart_distribution {
+  .legend-group {
+    padding: 1px $padding-small-vertical;
+  }
+}
\ No newline at end of file
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_sidebar.scss b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_sidebar.scss
new file mode 100644
index 0000000..d15759f
--- /dev/null
+++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/horizon/components/_sidebar.scss
@@ -0,0 +1,84 @@
+// Sidebar specific helper variables need to fallback to Bootstrap
+// variables.  This allows this specific _sidenav user experience
+// to easily cascade to a different Bootstrap theme
+$sidebar-active-color: $brand-primary !default;
+$sidebar-box-shadow:  -3px 2px 6px -2px $gray-light inset, -1px 0 0 0 $gray-light inset !default;
+
+
+#sidebar {
+  background-color: $sidebar-background-color;
+  @include box-shadow($sidebar-box-shadow);
+  height: 100%;
+
+  // Legacy padding at the top of nav ... we should remove this.
+  padding-top: $line-height-computed;
+
+  .nav-header > a > .nav-header-title {
+    text-align: left;
+    text-transform: none;
+    padding: $padding-small-vertical 0;
+    border-bottom: $padding-base-vertical/2 solid $gray-light;
+  }
+
+  .panel {
+    background-color: transparent;
+  }
+
+  .openstack-dashboard {
+    & > a {
+      border-radius: 0;
+    }
+  }
+
+  .openstack-panel {
+    & > a {
+      color: $gray;
+      padding: $padding-large-vertical $padding-large-horizontal;
+    }
+
+    &.active > a {
+      font-weight: normal;
+      color: $sidebar-active-color;
+      background: $body-bg;
+      border-bottom: 1px solid $dropdown-divider-bg;
+      border-left: $sidebar-active-indicator-width solid $sidebar-active-color;
+      border-top: 1px solid $dropdown-divider-bg;
+      @include box-shadow($sidebar-active-box-shadow $sidebar-box-shadow-color);
+    }
+  }
+
+  .openstack-panel > a,
+  .openstack-dashboard > a.collapsed,
+  .nav-header > a {
+    background-color: transparent;
+  }
+
+  .openstack-dashboard > a:hover,
+  .openstack-dashboard > a:focus,
+  li > a {
+    background-color: $nav-pills-active-link-hover-bg;
+  }
+
+  li > a {
+    @include transition(all 0.3s ease 0s);
+    outline: 0;
+  }
+
+  // Sets the arrow toggles for each dashboard list
+  .openstack-dashboard [data-toggle="collapse"] {
+
+    .openstack-toggle.fa {
+      font-size: $font-size-small;
+
+      &::before {
+        content: $fa-var-angle-up;
+      }
+    }
+
+    &.collapsed {
+      .openstack-toggle.fa {
+        @include rotate(180deg);
+      }
+    }
+  }
+}
diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/image-background-pattern.png b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/image-background-pattern.png
new file mode 100644
index 0000000000000000000000000000000000000000..f19c7b906f7a216d60a394e3f3cdd20d01a43d6c
GIT binary patch
literal 92706
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

KZGu6>+NiM1WZ?7L? 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 literal 0 HcmV?d00001 diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-orange.svg b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-orange.svg new file mode 100644 index 0000000..5c55d65 --- /dev/null +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-orange.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-white.svg b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-white.svg new file mode 100644 index 0000000..be9e768 --- /dev/null +++ b/snap-overlay/lib/python2.7/site-packages/openstack_dashboard/themes/ubuntu/img/logo-ubuntu-white.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +