From 13a3c1e29473aa9f563e8db4ad94cb3eee9bdfe6 Mon Sep 17 00:00:00 2001 From: Gareth Coles Date: Tue, 5 Jun 2018 16:07:35 +0100 Subject: Move from CSS to SCSS (#86) * Rewrite existing style.css with sass * Add "uses-rst" class for pages that use rendered RST This replaces the previous method of just listing every page in the sass * Remove old debug print * Mixins and error pages * Newly built CSS * Add SASS cache to .gitignore * New error SASS * Slight changes to error template * Add UIKit SCSS to repo This includes the LICENSE and our customizations, which makes life way easier for contributors * Reorganize sass folder; your watchers can avoid uikit now * Sass folder should be called scss * Change variable names * [SCSS] Linting * Fix scss_lint gem name [ci skip] * [SCSS] Now you can compile with just Python! * Temporary hack to make the wiki editor taller * [SCSS] @jchristgit * [SCSS.py] Require specification of include dir to simplify the SCSS imports * [SCSS] All inline styles have been removed * [SCSS] Update UIKit theme to import from our variables * [SCSS] Remove extra newlines in errors/_common.scss --- scss/pysite/_fonts.scss | 20 + scss/pysite/_mixins.scss | 43 + scss/pysite/_uikit_shim.scss | 110 ++ scss/pysite/_variables.scss | 8 + scss/pysite/pages/_rst.scss | 19 + scss/pysite/pages/errors/_common.scss | 131 ++ scss/pysite/pages/main/_index.scss | 11 + scss/pysite/pages/main/about/_partners.scss | 12 + scss/pysite/pages/main/about/_privacy.scss | 12 + scss/pysite/pages/main/info/_resources.scss | 29 + scss/pysite/pages/main/jams/_index.scss | 11 + scss/pysite/pages/main/jams/_join.scss | 33 + scss/pysite/pages/staff/jams/_edit_ending.scss | 12 + scss/pysite/pages/staff/jams/_edit_info.scss | 12 + .../pages/staff/jams/forms/_preamble_edit.scss | 12 + .../pages/staff/jams/forms/_questions_view.scss | 13 + scss/pysite/pages/staff/jams/forms/_view.scss | 13 + .../pysite/pages/staff/jams/infractions/_view.scss | 12 + scss/pysite/pages/staff/tables/_edit.scss | 12 + scss/pysite/pages/staff/tables/_table.scss | 12 + scss/pysite/pages/wiki/_common.scss | 82 + scss/pysite/style.scss | 169 ++ scss/uikit/LICENSE | 21 + scss/uikit/_mixins-theme.scss | 2069 ++++++++++++++++++++ scss/uikit/_mixins.scss | 1653 ++++++++++++++++ scss/uikit/_uikit-theme.scss | 9 + scss/uikit/_uikit.scss | 5 + scss/uikit/_variables-theme.scss | 1109 +++++++++++ scss/uikit/_variables.scss | 1002 ++++++++++ scss/uikit/components/_import.components.scss | 56 + scss/uikit/components/_import.scss | 94 + scss/uikit/components/_import.utilities.scss | 19 + scss/uikit/components/accordion.scss | 118 ++ scss/uikit/components/alert.scss | 147 ++ scss/uikit/components/align.scss | 142 ++ scss/uikit/components/animation.scss | 390 ++++ scss/uikit/components/article.scss | 110 ++ scss/uikit/components/background.scss | 136 ++ scss/uikit/components/badge.scss | 83 + scss/uikit/components/base.scss | 629 ++++++ scss/uikit/components/breadcrumb.scss | 122 ++ scss/uikit/components/button.scss | 451 +++++ scss/uikit/components/card.scss | 363 ++++ scss/uikit/components/close.scss | 57 + scss/uikit/components/column.scss | 138 ++ scss/uikit/components/comment.scss | 173 ++ scss/uikit/components/container.scss | 106 + scss/uikit/components/countdown.scss | 126 ++ scss/uikit/components/cover.scss | 57 + scss/uikit/components/description-list.scss | 71 + scss/uikit/components/divider.scss | 129 ++ scss/uikit/components/dotnav.scss | 157 ++ scss/uikit/components/drop.scss | 74 + scss/uikit/components/dropdown.scss | 150 ++ scss/uikit/components/flex.scss | 209 ++ scss/uikit/components/form-range.scss | 185 ++ scss/uikit/components/form.scss | 764 ++++++++ scss/uikit/components/grid-masonry.scss | 69 + scss/uikit/components/grid.scss | 352 ++++ scss/uikit/components/heading.scss | 223 +++ scss/uikit/components/height.scss | 54 + scss/uikit/components/icon.scss | 223 +++ scss/uikit/components/iconnav.scss | 140 ++ scss/uikit/components/inverse.scss | 46 + scss/uikit/components/label.scss | 102 + scss/uikit/components/leader.scss | 66 + scss/uikit/components/lightbox.scss | 232 +++ scss/uikit/components/link.scss | 123 ++ scss/uikit/components/list.scss | 187 ++ scss/uikit/components/margin.scss | 163 ++ scss/uikit/components/marker.scss | 63 + scss/uikit/components/mixin.scss | 32 + scss/uikit/components/modal.scss | 368 ++++ scss/uikit/components/nav.scss | 357 ++++ scss/uikit/components/navbar.scss | 537 +++++ scss/uikit/components/notification.scss | 190 ++ scss/uikit/components/offcanvas.scss | 301 +++ scss/uikit/components/overlay.scss | 85 + scss/uikit/components/padding.scss | 81 + scss/uikit/components/pagination.scss | 128 ++ scss/uikit/components/placeholder.scss | 45 + scss/uikit/components/position.scss | 250 +++ scss/uikit/components/print.scss | 61 + scss/uikit/components/progress.scss | 105 + scss/uikit/components/search.scss | 328 ++++ scss/uikit/components/section.scss | 224 +++ scss/uikit/components/slidenav.scss | 122 ++ scss/uikit/components/slider.scss | 99 + scss/uikit/components/slideshow.scss | 93 + scss/uikit/components/sortable.scss | 101 + scss/uikit/components/spinner.scss | 74 + scss/uikit/components/sticky.scss | 53 + scss/uikit/components/subnav.scss | 232 +++ scss/uikit/components/svg.scss | 39 + scss/uikit/components/switcher.scss | 47 + scss/uikit/components/tab.scss | 191 ++ scss/uikit/components/table.scss | 316 +++ scss/uikit/components/text.scss | 258 +++ scss/uikit/components/thumbnav.scss | 123 ++ scss/uikit/components/tile.scss | 224 +++ scss/uikit/components/tooltip.scss | 84 + scss/uikit/components/totop.scss | 71 + scss/uikit/components/transition.scss | 145 ++ scss/uikit/components/utility.scss | 493 +++++ scss/uikit/components/variables.scss | 117 ++ scss/uikit/components/visibility.scss | 151 ++ scss/uikit/components/width.scss | 397 ++++ scss/uikit/theme/_import.scss | 80 + scss/uikit/theme/accordion.scss | 58 + scss/uikit/theme/alert.scss | 46 + scss/uikit/theme/align.scss | 14 + scss/uikit/theme/animation.scss | 14 + scss/uikit/theme/article.scss | 51 + scss/uikit/theme/background.scss | 14 + scss/uikit/theme/badge.scss | 29 + scss/uikit/theme/base.scss | 116 ++ scss/uikit/theme/breadcrumb.scss | 45 + scss/uikit/theme/button.scss | 161 ++ scss/uikit/theme/card.scss | 125 ++ scss/uikit/theme/close.scss | 29 + scss/uikit/theme/column.scss | 14 + scss/uikit/theme/comment.scss | 69 + scss/uikit/theme/container.scss | 14 + scss/uikit/theme/countdown.scss | 53 + scss/uikit/theme/description-list.scss | 32 + scss/uikit/theme/divider.scss | 41 + scss/uikit/theme/dotnav.scss | 52 + scss/uikit/theme/drop.scss | 14 + scss/uikit/theme/dropdown.scss | 45 + scss/uikit/theme/form-range.scss | 45 + scss/uikit/theme/form.scss | 131 ++ scss/uikit/theme/grid.scss | 14 + scss/uikit/theme/heading.scss | 59 + scss/uikit/theme/height.scss | 14 + scss/uikit/theme/icon.scss | 50 + scss/uikit/theme/iconnav.scss | 34 + scss/uikit/theme/inverse.scss | 14 + scss/uikit/theme/label.scss | 43 + scss/uikit/theme/leader.scss | 26 + scss/uikit/theme/lightbox.scss | 48 + scss/uikit/theme/link.scss | 55 + scss/uikit/theme/list.scss | 39 + scss/uikit/theme/margin.scss | 14 + scss/uikit/theme/marker.scss | 29 + scss/uikit/theme/modal.scss | 84 + scss/uikit/theme/nav.scss | 94 + scss/uikit/theme/navbar.scss | 136 ++ scss/uikit/theme/notification.scss | 44 + scss/uikit/theme/offcanvas.scss | 32 + scss/uikit/theme/overlay.scss | 33 + scss/uikit/theme/padding.scss | 14 + scss/uikit/theme/pagination.scss | 41 + scss/uikit/theme/placeholder.scss | 29 + scss/uikit/theme/position.scss | 14 + scss/uikit/theme/progress.scss | 24 + scss/uikit/theme/search.scss | 73 + scss/uikit/theme/section.scss | 32 + scss/uikit/theme/slidenav.scss | 52 + scss/uikit/theme/sortable.scss | 38 + scss/uikit/theme/spinner.scss | 14 + scss/uikit/theme/sticky.scss | 14 + scss/uikit/theme/subnav.scss | 74 + scss/uikit/theme/tab.scss | 74 + scss/uikit/theme/table.scss | 68 + scss/uikit/theme/text.scss | 50 + scss/uikit/theme/thumbnav.scss | 42 + scss/uikit/theme/tile.scss | 32 + scss/uikit/theme/tooltip.scss | 20 + scss/uikit/theme/totop.scss | 32 + scss/uikit/theme/transition.scss | 14 + scss/uikit/theme/utility.scss | 49 + scss/uikit/theme/variables.scss | 36 + scss/uikit/theme/width.scss | 14 + scss/uikit/uikit_blurple.scss | 14 + 174 files changed, 23495 insertions(+) create mode 100644 scss/pysite/_fonts.scss create mode 100644 scss/pysite/_mixins.scss create mode 100644 scss/pysite/_uikit_shim.scss create mode 100644 scss/pysite/_variables.scss create mode 100644 scss/pysite/pages/_rst.scss create mode 100644 scss/pysite/pages/errors/_common.scss create mode 100644 scss/pysite/pages/main/_index.scss create mode 100644 scss/pysite/pages/main/about/_partners.scss create mode 100644 scss/pysite/pages/main/about/_privacy.scss create mode 100644 scss/pysite/pages/main/info/_resources.scss create mode 100644 scss/pysite/pages/main/jams/_index.scss create mode 100644 scss/pysite/pages/main/jams/_join.scss create mode 100644 scss/pysite/pages/staff/jams/_edit_ending.scss create mode 100644 scss/pysite/pages/staff/jams/_edit_info.scss create mode 100644 scss/pysite/pages/staff/jams/forms/_preamble_edit.scss create mode 100644 scss/pysite/pages/staff/jams/forms/_questions_view.scss create mode 100644 scss/pysite/pages/staff/jams/forms/_view.scss create mode 100644 scss/pysite/pages/staff/jams/infractions/_view.scss create mode 100644 scss/pysite/pages/staff/tables/_edit.scss create mode 100644 scss/pysite/pages/staff/tables/_table.scss create mode 100644 scss/pysite/pages/wiki/_common.scss create mode 100644 scss/pysite/style.scss create mode 100644 scss/uikit/LICENSE create mode 100644 scss/uikit/_mixins-theme.scss create mode 100644 scss/uikit/_mixins.scss create mode 100644 scss/uikit/_uikit-theme.scss create mode 100644 scss/uikit/_uikit.scss create mode 100644 scss/uikit/_variables-theme.scss create mode 100644 scss/uikit/_variables.scss create mode 100644 scss/uikit/components/_import.components.scss create mode 100644 scss/uikit/components/_import.scss create mode 100644 scss/uikit/components/_import.utilities.scss create mode 100644 scss/uikit/components/accordion.scss create mode 100644 scss/uikit/components/alert.scss create mode 100644 scss/uikit/components/align.scss create mode 100644 scss/uikit/components/animation.scss create mode 100644 scss/uikit/components/article.scss create mode 100644 scss/uikit/components/background.scss create mode 100644 scss/uikit/components/badge.scss create mode 100644 scss/uikit/components/base.scss create mode 100644 scss/uikit/components/breadcrumb.scss create mode 100644 scss/uikit/components/button.scss create mode 100644 scss/uikit/components/card.scss create mode 100644 scss/uikit/components/close.scss create mode 100644 scss/uikit/components/column.scss create mode 100644 scss/uikit/components/comment.scss create mode 100644 scss/uikit/components/container.scss create mode 100644 scss/uikit/components/countdown.scss create mode 100644 scss/uikit/components/cover.scss create mode 100644 scss/uikit/components/description-list.scss create mode 100644 scss/uikit/components/divider.scss create mode 100644 scss/uikit/components/dotnav.scss create mode 100644 scss/uikit/components/drop.scss create mode 100644 scss/uikit/components/dropdown.scss create mode 100644 scss/uikit/components/flex.scss create mode 100644 scss/uikit/components/form-range.scss create mode 100644 scss/uikit/components/form.scss create mode 100644 scss/uikit/components/grid-masonry.scss create mode 100644 scss/uikit/components/grid.scss create mode 100644 scss/uikit/components/heading.scss create mode 100644 scss/uikit/components/height.scss create mode 100644 scss/uikit/components/icon.scss create mode 100644 scss/uikit/components/iconnav.scss create mode 100644 scss/uikit/components/inverse.scss create mode 100644 scss/uikit/components/label.scss create mode 100644 scss/uikit/components/leader.scss create mode 100644 scss/uikit/components/lightbox.scss create mode 100644 scss/uikit/components/link.scss create mode 100644 scss/uikit/components/list.scss create mode 100644 scss/uikit/components/margin.scss create mode 100644 scss/uikit/components/marker.scss create mode 100644 scss/uikit/components/mixin.scss create mode 100644 scss/uikit/components/modal.scss create mode 100644 scss/uikit/components/nav.scss create mode 100644 scss/uikit/components/navbar.scss create mode 100644 scss/uikit/components/notification.scss create mode 100644 scss/uikit/components/offcanvas.scss create mode 100644 scss/uikit/components/overlay.scss create mode 100644 scss/uikit/components/padding.scss create mode 100644 scss/uikit/components/pagination.scss create mode 100644 scss/uikit/components/placeholder.scss create mode 100644 scss/uikit/components/position.scss create mode 100644 scss/uikit/components/print.scss create mode 100644 scss/uikit/components/progress.scss create mode 100644 scss/uikit/components/search.scss create mode 100644 scss/uikit/components/section.scss create mode 100644 scss/uikit/components/slidenav.scss create mode 100644 scss/uikit/components/slider.scss create mode 100644 scss/uikit/components/slideshow.scss create mode 100644 scss/uikit/components/sortable.scss create mode 100644 scss/uikit/components/spinner.scss create mode 100644 scss/uikit/components/sticky.scss create mode 100644 scss/uikit/components/subnav.scss create mode 100644 scss/uikit/components/svg.scss create mode 100644 scss/uikit/components/switcher.scss create mode 100644 scss/uikit/components/tab.scss create mode 100644 scss/uikit/components/table.scss create mode 100644 scss/uikit/components/text.scss create mode 100644 scss/uikit/components/thumbnav.scss create mode 100644 scss/uikit/components/tile.scss create mode 100644 scss/uikit/components/tooltip.scss create mode 100644 scss/uikit/components/totop.scss create mode 100644 scss/uikit/components/transition.scss create mode 100644 scss/uikit/components/utility.scss create mode 100644 scss/uikit/components/variables.scss create mode 100644 scss/uikit/components/visibility.scss create mode 100644 scss/uikit/components/width.scss create mode 100644 scss/uikit/theme/_import.scss create mode 100644 scss/uikit/theme/accordion.scss create mode 100644 scss/uikit/theme/alert.scss create mode 100644 scss/uikit/theme/align.scss create mode 100644 scss/uikit/theme/animation.scss create mode 100644 scss/uikit/theme/article.scss create mode 100644 scss/uikit/theme/background.scss create mode 100644 scss/uikit/theme/badge.scss create mode 100644 scss/uikit/theme/base.scss create mode 100644 scss/uikit/theme/breadcrumb.scss create mode 100644 scss/uikit/theme/button.scss create mode 100644 scss/uikit/theme/card.scss create mode 100644 scss/uikit/theme/close.scss create mode 100644 scss/uikit/theme/column.scss create mode 100644 scss/uikit/theme/comment.scss create mode 100644 scss/uikit/theme/container.scss create mode 100644 scss/uikit/theme/countdown.scss create mode 100644 scss/uikit/theme/description-list.scss create mode 100644 scss/uikit/theme/divider.scss create mode 100644 scss/uikit/theme/dotnav.scss create mode 100644 scss/uikit/theme/drop.scss create mode 100644 scss/uikit/theme/dropdown.scss create mode 100644 scss/uikit/theme/form-range.scss create mode 100644 scss/uikit/theme/form.scss create mode 100644 scss/uikit/theme/grid.scss create mode 100644 scss/uikit/theme/heading.scss create mode 100644 scss/uikit/theme/height.scss create mode 100644 scss/uikit/theme/icon.scss create mode 100644 scss/uikit/theme/iconnav.scss create mode 100644 scss/uikit/theme/inverse.scss create mode 100644 scss/uikit/theme/label.scss create mode 100644 scss/uikit/theme/leader.scss create mode 100644 scss/uikit/theme/lightbox.scss create mode 100644 scss/uikit/theme/link.scss create mode 100644 scss/uikit/theme/list.scss create mode 100644 scss/uikit/theme/margin.scss create mode 100644 scss/uikit/theme/marker.scss create mode 100644 scss/uikit/theme/modal.scss create mode 100644 scss/uikit/theme/nav.scss create mode 100644 scss/uikit/theme/navbar.scss create mode 100644 scss/uikit/theme/notification.scss create mode 100644 scss/uikit/theme/offcanvas.scss create mode 100644 scss/uikit/theme/overlay.scss create mode 100644 scss/uikit/theme/padding.scss create mode 100644 scss/uikit/theme/pagination.scss create mode 100644 scss/uikit/theme/placeholder.scss create mode 100644 scss/uikit/theme/position.scss create mode 100644 scss/uikit/theme/progress.scss create mode 100644 scss/uikit/theme/search.scss create mode 100644 scss/uikit/theme/section.scss create mode 100644 scss/uikit/theme/slidenav.scss create mode 100644 scss/uikit/theme/sortable.scss create mode 100644 scss/uikit/theme/spinner.scss create mode 100644 scss/uikit/theme/sticky.scss create mode 100644 scss/uikit/theme/subnav.scss create mode 100644 scss/uikit/theme/tab.scss create mode 100644 scss/uikit/theme/table.scss create mode 100644 scss/uikit/theme/text.scss create mode 100644 scss/uikit/theme/thumbnav.scss create mode 100644 scss/uikit/theme/tile.scss create mode 100644 scss/uikit/theme/tooltip.scss create mode 100644 scss/uikit/theme/totop.scss create mode 100644 scss/uikit/theme/transition.scss create mode 100644 scss/uikit/theme/utility.scss create mode 100644 scss/uikit/theme/variables.scss create mode 100644 scss/uikit/theme/width.scss create mode 100644 scss/uikit/uikit_blurple.scss (limited to 'scss') diff --git a/scss/pysite/_fonts.scss b/scss/pysite/_fonts.scss new file mode 100644 index 00000000..51c88e96 --- /dev/null +++ b/scss/pysite/_fonts.scss @@ -0,0 +1,20 @@ +// Styling related to specific font-faces. +// scss-lint:disable QualifyingElement UrlFormat + +@font-face { + font-family: "Fira Code"; + + src: url("https://unpkg.com/firacode/distr/eot/FiraCode-Regular.eot"); + src: url("https://unpkg.com/firacode/distr/eot/FiraCode-Regular.eot?#iefix") format("embedded-opentype"), + url("https://unpkg.com/firacode/distr/woff2/FiraCode-Regular.woff2") format("woff2"), + url("https://unpkg.com/firacode/distr/woff/FiraCode-Regular.woff") format("woff"), + url("https://unpkg.com/firacode/distr/ttf/FiraCode-Regular.ttf") format("truetype"); +} + +.fira-code { + font-family: 'Fira Code', "monospace", Fallback; +} + +textarea.fira-code { + line-height: 1.3 !important; +} diff --git a/scss/pysite/_mixins.scss b/scss/pysite/_mixins.scss new file mode 100644 index 00000000..a7883a23 --- /dev/null +++ b/scss/pysite/_mixins.scss @@ -0,0 +1,43 @@ +// scss-lint:disable VendorPrefix + +@mixin linear_gradient_background($base_colour, $start_colour, $end_colour) { + // Apply a linear gradient background to a selector + // scss-lint:disable DuplicateProperty NameFormat + + background: $base_colour; + background: -webkit-linear-gradient(top, $start_colour 3%, $end_colour 100%); + background: -moz-linear-gradient(top, $start_colour 3%, $end_colour 100%); + background: -ms-linear-gradient(top, $start_colour 3%, $end_colour 100%); + background: -o-linear-gradient(top, $start_colour 3%, $end_colour 100%); + background: -webkit-gradient(linear, top, bottom, color-stop(3%, $start_colour), color-stop(100%, $end_colour)); + background: linear-gradient(to bottom, $start_colour 3%, $end_colour 100%); + + // Why is this a thing? + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$base_colour}', endColorstr='#{$end_colour}', GradientType=0); +} + +@mixin box_shadow($offset_x, $offset_y, $colour, $blur_radius: 0, $spread_radius: 0) { + // Apply a box shadow to a selector + -webkit-box-shadow: $offset_x $offset_y $blur_radius $spread_radius $colour; + -moz-box-shadow: $offset_x $offset_y $blur_radius $spread_radius $colour; + box-shadow: $offset_x $offset_y $blur_radius $spread_radius $colour; +} + +@mixin inset_box_shadow($offset_x, $offset_y, $colour, $blur_radius: 0, $spread_radius: 0) { + // Apply an inset box shadow to a selector + -webkit-box-shadow: inset $offset_x $offset_y $blur_radius $spread_radius $colour; + -moz-box-shadow: inset $offset_x $offset_y $blur_radius $spread_radius $colour; + box-shadow: inset $offset_x $offset_y $blur_radius $spread_radius $colour; +} + +@mixin border_radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + border-radius: $radius; +} + +@mixin transition($type, $time, $effect) { + transition: $type $time $effect; + -moz-transition: $type $time $effect; + -webkit-transition: $type $time $effect; +} diff --git a/scss/pysite/_uikit_shim.scss b/scss/pysite/_uikit_shim.scss new file mode 100644 index 00000000..38e58abc --- /dev/null +++ b/scss/pysite/_uikit_shim.scss @@ -0,0 +1,110 @@ +// Styling that modifies things that are already provided +// by UIKit. This file is intended to be imported from the +// main `style.scss`. + + +@import "variables"; + +$button_dark_background_colour: rgba(0, 0, 0, .95); +$button_dark_border_colour: rgba(34, 34, 34, .93); +$button_dark_hover_background_colour: rgba(0, 0, 0, .70); + +$button_darkish_background_colour: rgba(0, 0, 0, .11); +$button_darkish_border_colour: rgba(34, 34, 34, .09); +$button_darkish_hover_background_colour: rgba(0, 0, 0, .22); + +$dropbar_background_colour: #222222; +$nav_header_colour: #666666; + +.uk-offcanvas-content { + flex: 1 0 auto; +} + +.uk-background-secondary .uk-navbar-dropdown-nav { + .uk-active a { + color: $white; + } + + .uk-nav-header { + color: $nav_header_colour; + font-size: 120%; + font-weight: bold; + padding: 0; + text-transform: none; + + &.uk-active { + color: $white; + } + } + + .uk-navbar-dropbar { + background: $dropbar_background_colour; + } +} + +.uk-navbar-container, +.uk-sticky-placeholder, +.uk-navbar-nav > li > a, +.uk-navbar-left > a { + height: 70px; +} + +.uk-navbar-dropdown { + overflow-y: auto; + top: 45px !important; +} + +.uk-article-title { + margin-bottom: 0 !important; +} + +.uk-article-meta { + margin-left: 2px; + margin-top: 0 !important; +} + +.uk-section { + padding-bottom: 30px; + padding-top: 20px; +} + +.uk-heading-divider .uk-article-meta { + margin-bottom: 0; +} + +footer { + // scss-lint:disable QualifyingElement + flex-shrink: 0; + + div.uk-section { + padding: 0; + + div.uk-text-center { + margin-top: 20px; + } + } +} + +.uk-button-dark { + background: $button_dark_background_colour; + border: 1px solid $button_dark_border_colour; + color: $white; + + :hover { + background: $button_dark_hover_background_colour; + } +} + +.uk-button-darkish { // Technically our own style, but uses the uk prefix + background: $button_darkish_background_colour; + border: 1px solid $button_darkish_border_colour; + + :hover { + background: $button_darkish_hover_background_colour; + } +} + +.uk-navbar-container { + padding-left: 40px; + padding-right: 40px; +} diff --git a/scss/pysite/_variables.scss b/scss/pysite/_variables.scss new file mode 100644 index 00000000..4b249387 --- /dev/null +++ b/scss/pysite/_variables.scss @@ -0,0 +1,8 @@ +// Variables for use throughout the site's SCSS files + + +$white: #FFFFFF; +$black: #000000; +$red: #FF0000; + +$primary_background: #7289DA; diff --git a/scss/pysite/pages/_rst.scss b/scss/pysite/pages/_rst.scss new file mode 100644 index 00000000..8274eb5f --- /dev/null +++ b/scss/pysite/pages/_rst.scss @@ -0,0 +1,19 @@ +// Page-specific styling for pages that make use of embedded +// RST documents that have been parsed into HTML. + + +$page_classes: ( + uses-rst, // All pages that declare their use of the RST parser +); + +@each $class in $page_classes { + .#{$class} { + .document li p { + margin-bottom: 0; + } + + .document img { + margin-bottom: 20px; + } + } +} diff --git a/scss/pysite/pages/errors/_common.scss b/scss/pysite/pages/errors/_common.scss new file mode 100644 index 00000000..27dac785 --- /dev/null +++ b/scss/pysite/pages/errors/_common.scss @@ -0,0 +1,131 @@ +@import "mixins"; +@import "variables"; + +$close_button_background: #FF5F4F; + +$error_header_color: #E84149; + +$half_opacity_black: rgba(0, 0, 0, .5); + +$maximize_button_background: #19CC32; +$minimize_button_background: #F9C206; + +$muted_background: #E8E8E8; + +$top_bar_background_gradient_1: #F1F1F1; +$top_bar_background_gradient_2: #E9E9E9; +$top_bar_background_gradient_3: #D8D8D8; +$top_bar_bottom_border: #BDBCC1; +$top_bar_shadow_colour: rgba(255, 255, 255, .76); + +$window_border: #C1C2C2; + +$page_classes: ( + blueprint-error, // All error pages +); + +@each $class in $page_classes { + .#{$class} { + .window { + @include border_radius(4px); + @include box_shadow(0, 4px, $half_opacity_black, 12px); + + border: 1px solid $window_border; + height: 500px; + margin: 20px auto auto; + width: 100%; + } + + .inside { + background: $black; + height: 100%; + padding-right: 20px; + } + + .block { + background: $black; + width: 100%; + } + + .top, + .panel { + float: left; + } + + .top { + @include linear_gradient_background($top_bar_background_gradient_1, $top_bar_background_gradient_2, $top_bar_background_gradient_3); + @include inset_box_shadow(0, 1px, $top_bar_shadow_colour, 1px, 0); + + border-bottom: 2px solid $top_bar_bottom_border; + overflow: hidden; + padding: 7px 0; + position: relative; + width: 100%; + } + + .panel { + padding-left: 9px; + padding-top: 2px; + } + + // Window buttons + + #terminal-close, + #second-button, + #third-button { + @include border_radius(6px); + + cursor: pointer; + display: inline-block; + float: left; + height: 12px; + margin-right: 7px; + width: 12px; + } + + #terminal-close { + background: $close_button_background; + } + + #second-button { + background: $minimize_button_background; + } + + #third-button { + background: $maximize_button_background; + } + + #terminal { + background-color: $black; + color: $white; + height: 100%; + width: 100%; + + code { + white-space: pre-wrap; + } + } + + pre { + border: 0; + border-radius: 3px; + } + + .uk-background-muted, + .error-header { + background-color: $muted_background !important; + } + + .error-header { + color: $error_header_color; + font-family: monospace; + } + + code, + pre { + overflow-wrap: break-word; + width: 100%; + word-wrap: break-word; + } + } +} diff --git a/scss/pysite/pages/main/_index.scss b/scss/pysite/pages/main/_index.scss new file mode 100644 index 00000000..36a046cf --- /dev/null +++ b/scss/pysite/pages/main/_index.scss @@ -0,0 +1,11 @@ +$page_classes: ( + page-main-index, +); + +@each $class in $page_classes { + .#{$class} { + #invite-button { + padding: 0; + } + } +} diff --git a/scss/pysite/pages/main/about/_partners.scss b/scss/pysite/pages/main/about/_partners.scss new file mode 100644 index 00000000..280d9a46 --- /dev/null +++ b/scss/pysite/pages/main/about/_partners.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-main-about-partners, +); + +@each $class in $page_classes { + .#{$class} { + #partner-cards .uk-card-default { + margin-top: 2em; + text-align: center; + } + } +} diff --git a/scss/pysite/pages/main/about/_privacy.scss b/scss/pysite/pages/main/about/_privacy.scss new file mode 100644 index 00000000..b4203f8d --- /dev/null +++ b/scss/pysite/pages/main/about/_privacy.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-main-about-privacy, +); + +@each $class in $page_classes { + .#{$class} { + td, + th { + max-width: 30rem; + } + } +} diff --git a/scss/pysite/pages/main/info/_resources.scss b/scss/pysite/pages/main/info/_resources.scss new file mode 100644 index 00000000..ec2854d7 --- /dev/null +++ b/scss/pysite/pages/main/info/_resources.scss @@ -0,0 +1,29 @@ +$page_classes: ( + page-main-info-resources, +); + +@each $class in $page_classes { + .#{$class} { + .payment-icon { + margin-right: 1em; + + img { + height: 2em; + } + } + + .payment-description { + height: 3.7rem; + margin-right: .5rem; + vertical-align: text-bottom; + } + + .resource-title { + margin-bottom: -1rem; + + div { + padding-bottom: 0; + } + } + } +} diff --git a/scss/pysite/pages/main/jams/_index.scss b/scss/pysite/pages/main/jams/_index.scss new file mode 100644 index 00000000..80e6fd3d --- /dev/null +++ b/scss/pysite/pages/main/jams/_index.scss @@ -0,0 +1,11 @@ +$page_classes: ( + page-main-jams-index, +); + +@each $class in $page_classes { + .#{$class} { + .date-separator { + vertical-align: middle; + } + } +} diff --git a/scss/pysite/pages/main/jams/_join.scss b/scss/pysite/pages/main/jams/_join.scss new file mode 100644 index 00000000..6281edee --- /dev/null +++ b/scss/pysite/pages/main/jams/_join.scss @@ -0,0 +1,33 @@ +$page_classes: ( + page-main-jams-join, +); + +@each $class in $page_classes { + .#{$class} { + .question-label { + margin-top: 0; + } + + .checkbox-label { + padding-left: .7rem; + } + + .radio-label { + padding-left: .7rem; + padding-right: 1rem; + } + + .range-label { + padding-left: .3rem; + } + + .textarea { + min-height: 15rem; + resize: vertical; + } + + .slider-label { + margin-right: 1rem; + } + } +} diff --git a/scss/pysite/pages/staff/jams/_edit_ending.scss b/scss/pysite/pages/staff/jams/_edit_ending.scss new file mode 100644 index 00000000..c21d3bd8 --- /dev/null +++ b/scss/pysite/pages/staff/jams/_edit_ending.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-staff-jams-edit-ending, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + #editor { + min-height: 50vh; + resize: vertical; + } + } +} diff --git a/scss/pysite/pages/staff/jams/_edit_info.scss b/scss/pysite/pages/staff/jams/_edit_info.scss new file mode 100644 index 00000000..5863c2bb --- /dev/null +++ b/scss/pysite/pages/staff/jams/_edit_info.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-staff-jams-edit-info, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + .editor { + min-height: 30vh; + resize: vertical; + } + } +} diff --git a/scss/pysite/pages/staff/jams/forms/_preamble_edit.scss b/scss/pysite/pages/staff/jams/forms/_preamble_edit.scss new file mode 100644 index 00000000..2847b3d5 --- /dev/null +++ b/scss/pysite/pages/staff/jams/forms/_preamble_edit.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-staff-jams-forms-preamble-edit, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + .editor { + min-height: 30vh; + resize: vertical; + } + } +} diff --git a/scss/pysite/pages/staff/jams/forms/_questions_view.scss b/scss/pysite/pages/staff/jams/forms/_questions_view.scss new file mode 100644 index 00000000..eea8eab2 --- /dev/null +++ b/scss/pysite/pages/staff/jams/forms/_questions_view.scss @@ -0,0 +1,13 @@ +$page_classes: ( + page-staff-jams-forms-questions, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + .delete-question-button, + .edit-question-button { + padding-left: 5px; + padding-right: 5px; + } + } +} diff --git a/scss/pysite/pages/staff/jams/forms/_view.scss b/scss/pysite/pages/staff/jams/forms/_view.scss new file mode 100644 index 00000000..f0a233f3 --- /dev/null +++ b/scss/pysite/pages/staff/jams/forms/_view.scss @@ -0,0 +1,13 @@ +$page_classes: ( + page-staff-jams-forms-view, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + .delete-question-button, + .edit-question-button { + padding-left: 5px; + padding-right: 5px; + } + } +} diff --git a/scss/pysite/pages/staff/jams/infractions/_view.scss b/scss/pysite/pages/staff/jams/infractions/_view.scss new file mode 100644 index 00000000..bcee8fdf --- /dev/null +++ b/scss/pysite/pages/staff/jams/infractions/_view.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-staff-jams-infractions, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + .delete-infraction-button { + padding-left: 5px; + padding-right: 5px; + } + } +} diff --git a/scss/pysite/pages/staff/tables/_edit.scss b/scss/pysite/pages/staff/tables/_edit.scss new file mode 100644 index 00000000..17b1fecd --- /dev/null +++ b/scss/pysite/pages/staff/tables/_edit.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-staff-tables-edit, +); + +@each $class in $page_classes { + .#{$class} { + #editor { + min-height: 50vh; + resize: vertical; + } + } +} diff --git a/scss/pysite/pages/staff/tables/_table.scss b/scss/pysite/pages/staff/tables/_table.scss new file mode 100644 index 00000000..cfe5b658 --- /dev/null +++ b/scss/pysite/pages/staff/tables/_table.scss @@ -0,0 +1,12 @@ +$page_classes: ( + page-staff-tables-table, +); + +@each $class in $page_classes { + .#{$class} { + .delete-infraction-button { + padding-left: 5px; + padding-right: 5px; + } + } +} diff --git a/scss/pysite/pages/wiki/_common.scss b/scss/pysite/pages/wiki/_common.scss new file mode 100644 index 00000000..c5ab3a2f --- /dev/null +++ b/scss/pysite/pages/wiki/_common.scss @@ -0,0 +1,82 @@ +@import "variables"; + +$quote_colour: #99AAB5; +$sidebar_button_border_colour: rgba(0, 0, 0, .11); + +$page_classes: ( + blueprint-wiki, // All wiki pages +); + +@each $class in $page_classes { + .#{$class} { + .quote { + border-left: 3px solid $primary_background; + color: $quote_colour; + margin-bottom: 1rem; + padding-left: 20px; + } + + #wiki-nav .uk-nav-divider { + min-width: 8rem; + } + + #wiki-sidebar { + transition: width ease 1s; + } + + #wiki-page { + overflow-x: hidden; + } + + #wiki-sidebar-button { + align-items: center; + border: 1px solid $sidebar_button_border_colour; + color: $white; + height: 3rem; + justify-content: center; + min-height: 3rem; + min-width: 3rem; + width: 3rem; + } + + #doc-view { + width: calc(100% - 6rem); + } + + @media (max-width: 639px) { + #doc-view { + width: calc(100% - 1rem); + } + } + + #editor { + min-height: 50vh; + resize: vertical; + } + + .sidebar-search-input { + border-left: 0; + border-right: 0; + margin-top: 5px; + padding-right: 0; + } + + .search-button { + border: 0; + width: 100%; + } + + .content { + flex-grow: 1; + margin: 0 1rem 1rem; + } + + .location-input { + margin-left: 15px; + } + + .preview-title { + padding: 1rem 1rem .1rem; + } + } +} diff --git a/scss/pysite/style.scss b/scss/pysite/style.scss new file mode 100644 index 00000000..09396faf --- /dev/null +++ b/scss/pysite/style.scss @@ -0,0 +1,169 @@ +// General imports, for styles that apply to all pages +// scss-lint:disable QualifyingElement + +@import "fonts"; +@import "mixins"; +@import "uikit_shim"; +@import "variables"; + +/* + Page-specific styling imports + + You can target pages in the following ways: + + * For specific pages, take the view name, prefix it with + "page-" and replace all the dots with dashes. This will + give you a class that only matches that page. + * For all pages under a specific blueprint, take the blueprint + name, prefix it with "blueprint-" and replace all the dots with + dashes. This will give you a class that matches every page + under that blueprint. + + For example: + "main.index.jams" -> ".page-main-index-jams" + "wiki" -> ".blueprint-wiki" + + Additionally, you can use your own class names for categories of pages. + For example, you might provide a "uses-rst" class, which you would then + make use of in your templates by putting it in a "page_classes" block. + + For example: + {% block page_classes %}uses-rst{% endblock %} + + If you do this, make sure you document it on the wiki! +*/ + + +// Styles useful across all pages +@import "pages/rst"; + +// Sectional: Errors Blueprint +@import "pages/errors/common"; + +// Sectional: Main Blueprint +@import "pages/main/index"; + +@import "pages/main/about/partners"; +@import "pages/main/about/privacy"; + +@import "pages/main/info/resources"; + +@import "pages/main/jams/index"; +@import "pages/main/jams/join"; + +// Sectional: Staff Blueprint +@import "pages/staff/jams/edit_ending"; +@import "pages/staff/jams/edit_info"; + +@import "pages/staff/jams/forms/preamble_edit"; +@import "pages/staff/jams/forms/questions_view"; +@import "pages/staff/jams/forms/view"; + +@import "pages/staff/jams/infractions/view"; + +@import "pages/staff/tables/edit"; +@import "pages/staff/tables/table"; + +// Sectional: Wiki Blueprint +@import "pages/wiki/common"; + +/* + Custom styling using our own classes and IDs. If instead you're + modifying existing UIKit styles to better suit our site, you should + put it in the UIKit shim file instead. +*/ + +$table_border_colour: rgb(229, 229, 229); + +html { + height: 100%; + + body { + display: flex; + flex-direction: column; + height: 100%; + } +} + +.navbar-logo { + height: 60%; + margin-left: -10px; + margin-top: 2px; + max-width: 110%; + padding-left: 3px; +} + +.hover-title a { + @include transition(opacity, 200ms, ease-in-out); + + opacity: 0; + visibility: hidden; +} + +.hover-title:hover a { + @include transition(opacity, 200ms, ease-in-out); + + opacity: 1; + visibility: visible; +} + +.debug-mode-item { + color: $primary_background !important; +} + +.sponsor-logo { + max-width: 15rem; +} + +.cursor-default { + cursor: default !important; +} + +.full-width { + width: 100%; +} + +// Forms + +select { + -webkit-appearance: unset !important; + + left: auto !important; + opacity: 1 !important; + position: relative !important; + top: auto !important; +} + +div.danger-input * { + border-color: $red !important; + color: $red; + + transition: color .5s ease, + border-color .5s ease; +} + +// Tables + +table.table-bordered { + border: 1px solid $table_border_colour !important; +} + +tr.thick-bottom-border { + border-bottom: 3px solid $table_border_colour !important; +} + +td.left-border, +th.left-border { + border-left: 1px solid $table_border_colour !important; +} + +td.right-border, +th.right-border { + border-right: 1px solid $table_border_colour !important; +} + +// Flash of Unstyled Content fixes + +.prevent-fouc { + display: none; +} diff --git a/scss/uikit/LICENSE b/scss/uikit/LICENSE new file mode 100644 index 00000000..e58f7268 --- /dev/null +++ b/scss/uikit/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2013-2018 YOOtheme GmbH, getuikit.com + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/scss/uikit/_mixins-theme.scss b/scss/uikit/_mixins-theme.scss new file mode 100644 index 00000000..af6a2e0b --- /dev/null +++ b/scss/uikit/_mixins-theme.scss @@ -0,0 +1,2069 @@ +@mixin hook-accordion(){} +@mixin hook-accordion-item(){} +@mixin hook-accordion-title(){ + + overflow: hidden; + + &::after { + content: ""; + width: ($accordion-title-line-height * 1em); + height: ($accordion-title-line-height * 1em); + float: right; + @include svg-fill($internal-accordion-close-image, "#000", $accordion-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + } + + .uk-open > &::after { @include svg-fill($internal-accordion-open-image, "#000", $accordion-icon-color); } + +} +@mixin hook-accordion-title-hover(){} +@mixin hook-accordion-content(){} +@mixin hook-accordion-misc(){} +@mixin hook-inverse-accordion-item(){} +@mixin hook-inverse-accordion-title(){} +@mixin hook-inverse-accordion-title-hover(){} +@mixin hook-inverse-component-accordion(){ + + .uk-accordion-title::after { @include svg-fill($internal-accordion-close-image, "#000", $inverse-global-color); } + + .uk-open > .uk-accordion-title::after { @include svg-fill($internal-accordion-open-image, "#000", $inverse-global-color); } + +} +@mixin hook-alert(){} +@mixin hook-alert-close(){ + color: inherit; + opacity: $alert-close-opacity; +} +@mixin hook-alert-close-hover(){ + color: inherit; + opacity: $alert-close-hover-opacity; +} +@mixin hook-alert-primary(){} +@mixin hook-alert-success(){} +@mixin hook-alert-warning(){} +@mixin hook-alert-danger(){} +@mixin hook-alert-misc(){ + + /* + * Content + */ + + .uk-alert h1, + .uk-alert h2, + .uk-alert h3, + .uk-alert h4, + .uk-alert h5, + .uk-alert h6 { color: inherit; } + + .uk-alert a:not([class]) { + color: inherit; + text-decoration: underline; + } + + .uk-alert a:not([class]):hover { + color: inherit; + text-decoration: underline; + } + +} +@mixin hook-align-misc(){} +@mixin hook-animation-misc(){} +@mixin hook-article(){} +@mixin hook-article-adjacent(){} +@mixin hook-article-title(){} +@mixin hook-article-meta(){ + + a { color: $article-meta-link-color; } + + a:hover { + color: $article-meta-link-hover-color; + text-decoration: none; + } + +} +@mixin hook-article-misc(){} +@mixin hook-inverse-article-title(){} +@mixin hook-inverse-article-meta(){} +@mixin hook-inverse-component-article(){ + + .uk-article-title { + @if(mixin-exists(hook-inverse-article-title)) {@include hook-inverse-article-title();} + } + + .uk-article-meta { + color: $inverse-article-meta-color; + @if(mixin-exists(hook-inverse-article-meta)) {@include hook-inverse-article-meta();} + } + +} +@mixin hook-background-misc(){} +@mixin hook-badge(){} +@mixin hook-badge-hover(){} +@mixin hook-badge-misc(){} +@mixin hook-inverse-badge(){} +@mixin hook-inverse-badge-hover(){} +@mixin hook-inverse-component-badge(){ + + .uk-badge { + background-color: $inverse-badge-background; + color: $inverse-badge-color; + @if(mixin-exists(hook-inverse-badge)) {@include hook-inverse-badge();} + } + + .uk-badge:hover, + .uk-badge:focus { + color: $inverse-badge-hover-color; + @if(mixin-exists(hook-inverse-badge-hover)) {@include hook-inverse-badge-hover();} + } + +} +@mixin hook-base-body(){} +@mixin hook-base-link(){} +@mixin hook-base-link-hover(){} +@mixin hook-base-code(){ + padding: $base-code-padding-vertical $base-code-padding-horizontal; + background: $base-code-background; +} +@mixin hook-base-heading(){} +@mixin hook-base-h1(){} +@mixin hook-base-h2(){} +@mixin hook-base-h3(){} +@mixin hook-base-h4(){} +@mixin hook-base-h5(){} +@mixin hook-base-h6(){} +@mixin hook-base-hr(){} +@mixin hook-base-blockquote(){ + color: $base-blockquote-color; +} +@mixin hook-base-blockquote-footer(){ + + color: $base-blockquote-footer-color; + + &::before { content: "— "; } + +} +@mixin hook-base-pre(){ + padding: $base-pre-padding; + border: $base-pre-border-width solid $base-pre-border; + border-radius: $base-pre-border-radius; + background: $base-pre-background; +} +@mixin hook-base-misc(){} +@mixin hook-inverse-base-link(){} +@mixin hook-inverse-base-link-hover(){} +@mixin hook-inverse-base-code(){ + background: $inverse-global-muted-background; +} +@mixin hook-inverse-base-heading(){} +@mixin hook-inverse-base-h1(){} +@mixin hook-inverse-base-h2(){} +@mixin hook-inverse-base-h3(){} +@mixin hook-inverse-base-h4(){} +@mixin hook-inverse-base-h5(){} +@mixin hook-inverse-base-h6(){} +@mixin hook-inverse-base-blockquote(){ color: $inverse-base-blockquote-color; } +@mixin hook-inverse-base-blockquote-footer(){ color: $inverse-base-blockquote-footer-color; } +@mixin hook-inverse-base-hr(){} +@mixin hook-inverse-component-base(){ + + color: $inverse-base-color; + + // Base + // ======================================================================== + + // + // Link + // + + a, + .uk-link { + color: $inverse-base-link-color; + @if(mixin-exists(hook-inverse-base-link)) {@include hook-inverse-base-link();} + } + + a:hover, + .uk-link:hover { + color: $inverse-base-link-hover-color; + @if(mixin-exists(hook-inverse-base-link-hover)) {@include hook-inverse-base-link-hover();} + } + + // + // Code + // + + :not(pre) > code, + :not(pre) > kbd, + :not(pre) > samp { + color: $inverse-base-code-color; + @if(mixin-exists(hook-inverse-base-code)) {@include hook-inverse-base-code();} + } + + // + // Emphasize + // + + em { color: $inverse-base-em-color; } + + // + // Headings + // + + h1, .uk-h1, + h2, .uk-h2, + h3, .uk-h3, + h4, .uk-h4, + h5, .uk-h5, + h6, .uk-h6 { + color: $inverse-base-heading-color; + @if(mixin-exists(hook-inverse-base-heading)) {@include hook-inverse-base-heading();} + } + + h1, .uk-h1 { + @if(mixin-exists(hook-inverse-base-h1)) {@include hook-inverse-base-h1();} + } + + h2, .uk-h2 { + @if(mixin-exists(hook-inverse-base-h2)) {@include hook-inverse-base-h2();} + } + + h3, .uk-h3 { + @if(mixin-exists(hook-inverse-base-h3)) {@include hook-inverse-base-h3();} + } + + h4, .uk-h4 { + @if(mixin-exists(hook-inverse-base-h4)) {@include hook-inverse-base-h4();} + } + + h5, .uk-h5 { + @if(mixin-exists(hook-inverse-base-h5)) {@include hook-inverse-base-h5();} + } + + h6, .uk-h6 { + @if(mixin-exists(hook-inverse-base-h6)) {@include hook-inverse-base-h6();} + } + + // + // Blockquotes + // + + blockquote { + @if(mixin-exists(hook-inverse-base-blockquote)) {@include hook-inverse-base-blockquote();} + } + + blockquote footer { + @if(mixin-exists(hook-inverse-base-blockquote-footer)) {@include hook-inverse-base-blockquote-footer();} + } + + // + // Horizontal rules + // + + hr, .uk-hr { + border-top-color: $inverse-base-hr-border; + @if(mixin-exists(hook-inverse-base-hr)) {@include hook-inverse-base-hr();} + } + +} +@mixin hook-breadcrumb(){} +@mixin hook-breadcrumb-item(){} +@mixin hook-breadcrumb-item-hover(){} +@mixin hook-breadcrumb-item-disabled(){} +@mixin hook-breadcrumb-item-active(){} +@mixin hook-breadcrumb-divider(){} +@mixin hook-breadcrumb-misc(){} +@mixin hook-inverse-breadcrumb-item(){} +@mixin hook-inverse-breadcrumb-item-hover(){} +@mixin hook-inverse-breadcrumb-item-disabled(){} +@mixin hook-inverse-breadcrumb-item-active(){} +@mixin hook-inverse-breadcrumb-divider(){} +@mixin hook-inverse-component-breadcrumb(){ + + .uk-breadcrumb > * > * { + color: $inverse-breadcrumb-item-color; + @if(mixin-exists(hook-inverse-breadcrumb-item)) {@include hook-inverse-breadcrumb-item();} + } + + .uk-breadcrumb > * > :hover, + .uk-breadcrumb > * > :focus { + color: $inverse-breadcrumb-item-hover-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-hover)) {@include hook-inverse-breadcrumb-item-hover();} + } + + + .uk-breadcrumb > .uk-disabled > * { + @if(mixin-exists(hook-inverse-breadcrumb-item-disabled)) {@include hook-inverse-breadcrumb-item-disabled();} + } + + .uk-breadcrumb > :last-child > * { + color: $inverse-breadcrumb-item-active-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-active)) {@include hook-inverse-breadcrumb-item-active();} + } + + // + // Divider + // + + .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before { + color: $inverse-breadcrumb-divider-color; + @if(mixin-exists(hook-inverse-breadcrumb-divider)) {@include hook-inverse-breadcrumb-divider();} + } + +} +@mixin hook-button(){ + text-transform: $button-text-transform; + transition: 0.1s ease-in-out; + transition-property: color, background-color, border-color; +} +@mixin hook-button-hover(){} +@mixin hook-button-focus(){} +@mixin hook-button-active(){} +@mixin hook-button-default(){ border: $button-border-width solid $button-default-border; } +@mixin hook-button-default-hover(){ border-color: $button-default-hover-border; } +@mixin hook-button-default-active(){ border-color: $button-default-active-border; } +@mixin hook-button-primary(){ border: $button-border-width solid transparent; } +@mixin hook-button-primary-hover(){} +@mixin hook-button-primary-active(){} +@mixin hook-button-secondary(){ border: $button-border-width solid transparent; } +@mixin hook-button-secondary-hover(){} +@mixin hook-button-secondary-active(){} +@mixin hook-button-danger(){ border: $button-border-width solid transparent; } +@mixin hook-button-danger-hover(){} +@mixin hook-button-danger-active(){} +@mixin hook-button-disabled(){ border-color: $button-disabled-border; } +@mixin hook-button-small(){} +@mixin hook-button-large(){} +@mixin hook-button-text(){ + + position: relative; + + &::before { + content: ""; + position: absolute; + bottom: 0; + left: 0; + right: 100%; + border-bottom: $button-text-border-width solid $button-text-border; + transition: right 0.3s ease-out; + } + +} +@mixin hook-button-text-hover(){ + + &::before { right: 0; } + +} +@mixin hook-button-text-disabled(){ + + &::before { display: none; } + +} +@mixin hook-button-link(){} +@mixin hook-button-misc(){ + + /* Group + ========================================================================== */ + + /* + * Collapse border + */ + + .uk-button-group > .uk-button:nth-child(n+2), + .uk-button-group > div:nth-child(n+2) .uk-button { margin-left: (-$button-border-width); } + + /* + * Create position context to superimpose the successor elements border + * Known issue: If you use an `a` element as button and an icon inside, + * the active state will not work if you click the icon inside the button + * Workaround: Just use a `button` or `input` element as button + */ + + .uk-button-group .uk-button:hover, + .uk-button-group .uk-button:focus, + .uk-button-group .uk-button:active, + .uk-button-group .uk-button.uk-active { + position: relative; + z-index: 1; + } + +} +@mixin hook-inverse-button-default(){ border-color: $inverse-global-color; } +@mixin hook-inverse-button-default-hover(){ border-color: $inverse-global-emphasis-color; } +@mixin hook-inverse-button-default-active(){ border-color: $inverse-global-emphasis-color; } +@mixin hook-inverse-button-primary(){} +@mixin hook-inverse-button-primary-hover(){} +@mixin hook-inverse-button-primary-active(){} +@mixin hook-inverse-button-secondary(){} +@mixin hook-inverse-button-secondary-hover(){} +@mixin hook-inverse-button-secondary-active(){} +@mixin hook-inverse-button-text(){ + &::before { border-bottom-color: $inverse-global-emphasis-color; } +} +@mixin hook-inverse-button-text-hover(){} +@mixin hook-inverse-button-text-disabled(){} +@mixin hook-inverse-button-link(){} +@mixin hook-inverse-component-button(){ + + // + // Default + // + + .uk-button-default { + background-color: $inverse-button-default-background; + color: $inverse-button-default-color; + @if(mixin-exists(hook-inverse-button-default)) {@include hook-inverse-button-default();} + } + + .uk-button-default:hover, + .uk-button-default:focus { + background-color: $inverse-button-default-hover-background; + color: $inverse-button-default-hover-color; + @if(mixin-exists(hook-inverse-button-default-hover)) {@include hook-inverse-button-default-hover();} + } + + .uk-button-default:active, + .uk-button-default.uk-active { + background-color: $inverse-button-default-active-background; + color: $inverse-button-default-active-color; + @if(mixin-exists(hook-inverse-button-default-active)) {@include hook-inverse-button-default-active();} + } + + // + // Primary + // + + .uk-button-primary { + background-color: $inverse-button-primary-background; + color: $inverse-button-primary-color; + @if(mixin-exists(hook-inverse-button-primary)) {@include hook-inverse-button-primary();} + } + + .uk-button-primary:hover, + .uk-button-primary:focus { + background-color: $inverse-button-primary-hover-background; + color: $inverse-button-primary-hover-color; + @if(mixin-exists(hook-inverse-button-primary-hover)) {@include hook-inverse-button-primary-hover();} + } + + .uk-button-primary:active, + .uk-button-primary.uk-active { + background-color: $inverse-button-primary-active-background; + color: $inverse-button-primary-active-color; + @if(mixin-exists(hook-inverse-button-primary-active)) {@include hook-inverse-button-primary-active();} + } + + // + // Secondary + // + + .uk-button-secondary { + background-color: $inverse-button-secondary-background; + color: $inverse-button-secondary-color; + @if(mixin-exists(hook-inverse-button-secondary)) {@include hook-inverse-button-secondary();} + } + + .uk-button-secondary:hover, + .uk-button-secondary:focus { + background-color: $inverse-button-secondary-hover-background; + color: $inverse-button-secondary-hover-color; + @if(mixin-exists(hook-inverse-button-secondary-hover)) {@include hook-inverse-button-secondary-hover();} + } + + .uk-button-secondary:active, + .uk-button-secondary.uk-active { + background-color: $inverse-button-secondary-active-background; + color: $inverse-button-secondary-active-color; + @if(mixin-exists(hook-inverse-button-secondary-active)) {@include hook-inverse-button-secondary-active();} + } + + // + // Text + // + + .uk-button-text { + color: $inverse-button-text-color; + @if(mixin-exists(hook-inverse-button-text)) {@include hook-inverse-button-text();} + } + + .uk-button-text:hover, + .uk-button-text:focus { + color: $inverse-button-text-hover-color; + @if(mixin-exists(hook-inverse-button-text-hover)) {@include hook-inverse-button-text-hover();} + } + + .uk-button-text:disabled { + color: $inverse-button-text-disabled-color; + @if(mixin-exists(hook-inverse-button-text-disabled)) {@include hook-inverse-button-text-disabled();} + } + + // + // Link + // + + .uk-button-link { + color: $inverse-button-link-color; + @if(mixin-exists(hook-inverse-button-link)) {@include hook-inverse-button-link();} + } + + .uk-button-link:hover, + .uk-button-link:focus { color: $inverse-button-link-hover-color; } + + +} +@mixin hook-card(){ transition: box-shadow 0.1s ease-in-out; } +@mixin hook-card-body(){} +@mixin hook-card-header(){} +@mixin hook-card-footer(){} +@mixin hook-card-media(){} +@mixin hook-card-media-top(){} +@mixin hook-card-media-bottom(){} +@mixin hook-card-media-left(){} +@mixin hook-card-media-right(){} +@mixin hook-card-title(){} +@mixin hook-card-badge(){} +@mixin hook-card-hover(){ box-shadow: $card-hover-box-shadow; } +@mixin hook-card-default(){ box-shadow: $card-default-box-shadow; } +@mixin hook-card-default-title(){} +@mixin hook-card-default-hover(){ box-shadow: $card-default-hover-box-shadow; } +@mixin hook-card-default-header(){ border-bottom: $card-default-header-border-width solid $card-default-header-border; } +@mixin hook-card-default-footer(){ border-top: $card-default-footer-border-width solid $card-default-footer-border; } +@mixin hook-card-primary(){ box-shadow: $card-primary-box-shadow; } +@mixin hook-card-primary-title(){} +@mixin hook-card-primary-hover(){ box-shadow: $card-primary-hover-box-shadow; } +@mixin hook-card-secondary(){ box-shadow: $card-secondary-box-shadow; } +@mixin hook-card-secondary-title(){} +@mixin hook-card-secondary-hover(){ box-shadow: $card-secondary-hover-box-shadow; } +@mixin hook-card-misc(){ + + /* + * Default + */ + + .uk-card-body > .uk-nav-default { + margin-left: (-$card-body-padding-horizontal); + margin-right: (-$card-body-padding-horizontal); + } + .uk-card-body > .uk-nav-default:only-child { + margin-top: (-$card-body-padding-vertical + 15px); + margin-bottom: (-$card-body-padding-vertical + 15px); + } + + .uk-card-body .uk-nav-default > li > a, + .uk-card-body .uk-nav-default .uk-nav-header, + .uk-card-body .uk-nav-default .uk-nav-divider { + padding-left: $card-body-padding-horizontal; + padding-right: $card-body-padding-horizontal; + } + + .uk-card-body .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left + $card-body-padding-horizontal; } + + + /* Desktop and bigger */ + @media (min-width: $breakpoint-large) { + + .uk-card-body > .uk-nav-default { + margin-left: (-$card-body-padding-horizontal-l); + margin-right: (-$card-body-padding-horizontal-l); + } + .uk-card-body > .uk-nav-default:only-child { + margin-top: (-$card-body-padding-vertical-l + 15px); + margin-bottom: (-$card-body-padding-vertical-l + 15px); + } + + .uk-card-body .uk-nav-default > li > a, + .uk-card-body .uk-nav-default .uk-nav-header, + .uk-card-body .uk-nav-default .uk-nav-divider { + padding-left: $card-body-padding-horizontal-l; + padding-right: $card-body-padding-horizontal-l; + } + + .uk-card-body .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left + $card-body-padding-horizontal-l; } + + } + + /* + * Small + */ + + .uk-card-small > .uk-nav-default { + margin-left: (-$card-small-body-padding-horizontal); + margin-right: (-$card-small-body-padding-horizontal); + } + .uk-card-small > .uk-nav-default:only-child { + margin-top: (-$card-small-body-padding-vertical + 15px); + margin-bottom: (-$card-small-body-padding-vertical + 15px); + } + + .uk-card-small .uk-nav-default > li > a, + .uk-card-small .uk-nav-default .uk-nav-header, + .uk-card-small .uk-nav-default .uk-nav-divider { + padding-left: $card-small-body-padding-horizontal; + padding-right: $card-small-body-padding-horizontal; + } + + .uk-card-small .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left + $card-small-body-padding-horizontal; } + + /* + * Large + */ + + /* Desktop and bigger */ + @media (min-width: $breakpoint-large) { + + .uk-card-large > .uk-nav-default { margin: 0; } + .uk-card-large > .uk-nav-default:only-child { margin: 0; } + + .uk-card-large .uk-nav-default > li > a, + .uk-card-large .uk-nav-default .uk-nav-header, + .uk-card-large .uk-nav-default .uk-nav-divider { + padding-left: 0; + padding-right: 0; + } + + .uk-card-large .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left; } + + } + +} +@mixin hook-close(){ + transition: 0.1s ease-in-out; + transition-property: color, opacity; +} +@mixin hook-close-hover(){} +@mixin hook-close-misc(){} +@mixin hook-inverse-close(){} +@mixin hook-inverse-close-hover(){} +@mixin hook-inverse-component-close(){ + + .uk-close { + color: $inverse-close-color; + @if(mixin-exists(hook-inverse-close)) {@include hook-inverse-close();} + } + + .uk-close:hover, + .uk-close:focus { + color: $inverse-close-hover-color; + @if(mixin-exists(hook-inverse-close-hover)) {@include hook-inverse-close-hover();} + } + +} +@mixin hook-column-misc(){} +@mixin hook-inverse-component-column(){ + + .uk-column-divider { column-rule-color: $inverse-column-divider-rule-color; } + +} +@mixin hook-comment(){} +@mixin hook-comment-body(){} +@mixin hook-comment-header(){} +@mixin hook-comment-title(){} +@mixin hook-comment-meta(){} +@mixin hook-comment-avatar(){} +@mixin hook-comment-list-adjacent(){} +@mixin hook-comment-list-sub(){} +@mixin hook-comment-list-sub-adjacent(){} +@mixin hook-comment-primary(){ + padding: $comment-primary-padding; + background-color: $comment-primary-background; +} +@mixin hook-comment-misc(){} +@mixin hook-container-misc(){} +@mixin hook-countdown(){} +@mixin hook-countdown-item(){} +@mixin hook-countdown-number(){} +@mixin hook-countdown-separator(){} +@mixin hook-countdown-label(){} +@mixin hook-countdown-misc(){} +@mixin hook-inverse-countdown-item(){} +@mixin hook-inverse-countdown-number(){} +@mixin hook-inverse-countdown-separator(){} +@mixin hook-inverse-countdown-label(){} +@mixin hook-inverse-component-countdown(){ + + .uk-countdown-number, + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-item)) {@include hook-inverse-countdown-item();} + } + + .uk-countdown-number { + @if(mixin-exists(hook-inverse-countdown-number)) {@include hook-inverse-countdown-number();} + } + + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-separator)) {@include hook-inverse-countdown-separator();} + } + + .uk-countdown-label { + @if(mixin-exists(hook-inverse-countdown-label)) {@include hook-inverse-countdown-label();} + } + +} +@mixin hook-cover-misc(){} +@mixin hook-description-list-term(){ + font-size: $description-list-term-font-size; + font-weight: $description-list-term-font-weight; + text-transform: $description-list-term-text-transform; +} +@mixin hook-description-list-description(){} +@mixin hook-description-list-divider-term(){} +@mixin hook-description-list-misc(){} +@mixin svg-fill($src, $color-default, $color-new, $property: background-image){ + + $escape-color-default: escape($color-default) !default; + $escape-color-new: escape("#{$color-new}") !default; + + $data-uri: data-uri('image/svg+xml;charset=UTF-8', "#{$src}") !default; + $replace-src: replace("#{$data-uri}", "#{$escape-color-default}", "#{$escape-color-new}", "g") !default; + + #{$property}: unquote($replace-src); +} +@mixin hook-divider-icon(){} +@mixin hook-divider-icon-line(){} +@mixin hook-divider-icon-line-left(){} +@mixin hook-divider-icon-line-right(){} +@mixin hook-divider-small(){} +@mixin hook-divider-misc(){} +@mixin hook-inverse-divider-icon(){} +@mixin hook-inverse-divider-icon-line(){} +@mixin hook-inverse-divider-small(){} +@mixin hook-inverse-component-divider(){ + + .uk-divider-icon { + @include svg-fill($internal-divider-icon-image, "#000", $inverse-divider-icon-color); + @if(mixin-exists(hook-inverse-divider-icon)) {@include hook-inverse-divider-icon();} + } + + .uk-divider-icon::before, + .uk-divider-icon::after { + border-bottom-color: $inverse-divider-icon-line-border; + @if(mixin-exists(hook-inverse-divider-icon-line)) {@include hook-inverse-divider-icon-line();} + } + + .uk-divider-small::after { + border-top-color: $inverse-divider-small-border; + @if(mixin-exists(hook-inverse-divider-small)) {@include hook-inverse-divider-small();} + } + +} +@mixin hook-dotnav(){} +@mixin hook-dotnav-item(){ + border: $dotnav-item-border-width solid $dotnav-item-border; + transition: 0.2s ease-in-out; + transition-property: background-color, border-color; +} +@mixin hook-dotnav-item-hover(){ border-color: $dotnav-item-hover-border; } +@mixin hook-dotnav-item-onclick(){ border-color: $dotnav-item-onclick-border; } +@mixin hook-dotnav-item-active(){ border-color: $dotnav-item-active-border; } +@mixin hook-dotnav-misc(){} +@mixin hook-inverse-dotnav-item(){ border-color: rgba($inverse-global-color, 0.9); } +@mixin hook-inverse-dotnav-item-hover(){ border-color: transparent; } +@mixin hook-inverse-dotnav-item-onclick(){ border-color: transparent; } +@mixin hook-inverse-dotnav-item-active(){ border-color: transparent; } +@mixin hook-inverse-component-dotnav(){ + + .uk-dotnav > * > * { + background-color: $inverse-dotnav-item-background; + @if(mixin-exists(hook-inverse-dotnav-item)) {@include hook-inverse-dotnav-item();} + } + + .uk-dotnav > * > :hover, + .uk-dotnav > * > :focus { + background-color: $inverse-dotnav-item-hover-background; + @if(mixin-exists(hook-inverse-dotnav-item-hover)) {@include hook-inverse-dotnav-item-hover();} + } + + .uk-dotnav > * > :active { + background-color: $inverse-dotnav-item-onclick-background; + @if(mixin-exists(hook-inverse-dotnav-item-onclick)) {@include hook-inverse-dotnav-item-onclick();} + } + + .uk-dotnav > .uk-active > * { + background-color: $inverse-dotnav-item-active-background; + @if(mixin-exists(hook-inverse-dotnav-item-active)) {@include hook-inverse-dotnav-item-active();} + } + +} +@mixin hook-drop-misc(){} +@mixin hook-dropdown(){ box-shadow: $dropdown-box-shadow; } +@mixin hook-dropdown-nav(){ font-size: $dropdown-nav-font-size; } +@mixin hook-dropdown-nav-item(){} +@mixin hook-dropdown-nav-item-hover(){} +@mixin hook-dropdown-nav-header(){} +@mixin hook-dropdown-nav-divider(){} +@mixin hook-dropdown-misc(){} +@mixin hook-flex-misc(){} +@mixin hook-form-range(){} +@mixin hook-form-range-thumb(){ border: $form-range-thumb-border-width solid $form-range-thumb-border; } +@mixin hook-form-range-track(){ border-radius: $form-range-track-border-radius; } +@mixin hook-form-range-track-focus(){} +@mixin hook-form-range-misc(){} +@mixin hook-form(){ + border: $form-border-width solid $form-border; + transition: 0.2s ease-in-out; + transition-property: color, background-color, border; +} +@mixin hook-form-single-line(){} +@mixin hook-form-multi-line(){} +@mixin hook-form-focus(){ border-color: $form-focus-border; } +@mixin hook-form-disabled(){ border-color: $form-disabled-border; } +@mixin hook-form-danger(){ border-color: $form-danger-border; } +@mixin hook-form-success(){ border-color: $form-success-border; } +@mixin hook-form-blank(){ border-color: transparent; } +@mixin hook-form-blank-focus(){ + border-color: $form-blank-focus-border; + border-style: $form-blank-focus-border-style; +} +@mixin hook-form-radio(){ + border: $form-radio-border-width solid $form-radio-border; + transition: 0.2s ease-in-out; + transition-property: background-color, border; +} +@mixin hook-form-radio-focus(){ border-color: $form-radio-focus-border; } +@mixin hook-form-radio-checked(){ border-color: $form-radio-checked-border; } +@mixin hook-form-radio-checked-focus(){} +@mixin hook-form-radio-disabled(){ border-color: $form-radio-disabled-border; } +@mixin hook-form-legend(){} +@mixin hook-form-label(){ + color: $form-label-color; + font-size: $form-label-font-size; +} +@mixin hook-form-stacked-label(){} +@mixin hook-form-horizontal-label(){} +@mixin hook-form-misc(){} +@mixin hook-inverse-form(){ border-color: $inverse-global-border; } +@mixin hook-inverse-form-focus(){ border-color: $inverse-global-color; } +@mixin hook-inverse-form-radio(){ border-color: $inverse-global-border; } +@mixin hook-inverse-form-radio-focus(){ border-color: $inverse-global-color; } +@mixin hook-inverse-form-radio-checked(){ border-color: $inverse-global-color; } +@mixin hook-inverse-form-radio-checked-focus(){} +@mixin hook-inverse-form-label(){ color: $inverse-form-label-color; } +@mixin hook-inverse-component-form(){ + + .uk-input, + .uk-select, + .uk-textarea { + background-color: $inverse-form-background; + color: $inverse-form-color; + background-clip: padding-box; + @if(mixin-exists(hook-inverse-form)) {@include hook-inverse-form();} + + &:focus { + background-color: $inverse-form-focus-background; + color: $inverse-form-focus-color; + @if(mixin-exists(hook-inverse-form-focus)) {@include hook-inverse-form-focus();} + } + } + + // + // Placeholder + // + + .uk-input:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-input::placeholder { color: $inverse-form-placeholder-color; } + + .uk-textarea:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-textarea::placeholder { color: $inverse-form-placeholder-color; } + + // + // Radio and checkbox + // + + .uk-select:not([multiple]):not([size]) { @include svg-fill($internal-form-select-image, "#000", $inverse-form-select-icon-color); } + + // + // Radio and checkbox + // + + .uk-radio, + .uk-checkbox { + background-color: $inverse-form-radio-background; + @if(mixin-exists(hook-inverse-form-radio)) {@include hook-inverse-form-radio();} + } + + // Focus + .uk-radio:focus, + .uk-checkbox:focus { + @if(mixin-exists(hook-inverse-form-radio-focus)) {@include hook-inverse-form-radio-focus();} + } + + // Checked + .uk-radio:checked, + .uk-checkbox:checked, + .uk-checkbox:indeterminate { + background-color: $inverse-form-radio-checked-background; + @if(mixin-exists(hook-inverse-form-radio-checked)) {@include hook-inverse-form-radio-checked();} + } + + // Focus + .uk-radio:checked:focus, + .uk-checkbox:checked:focus, + .uk-checkbox:indeterminate:focus { + background-color: $inverse-form-radio-checked-focus-background; + @if(mixin-exists(hook-inverse-form-radio-checked-focus)) {@include hook-inverse-form-radio-checked-focus();} + } + + // Icon + .uk-radio:checked { @include svg-fill($internal-form-radio-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:checked { @include svg-fill($internal-form-checkbox-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $inverse-form-radio-checked-icon-color); } + + // Label + .uk-form-label { + @if(mixin-exists(hook-inverse-form-label)) {@include hook-inverse-form-label();} + } + + // Icon + .uk-form-icon { color: $inverse-form-icon-color; } + .uk-form-icon:hover { color: $inverse-form-icon-hover-color; } + +} +@mixin hook-grid-misc(){} +@mixin hook-inverse-component-grid(){ + + .uk-grid-divider > :not(.uk-first-column)::before { border-left-color: $inverse-grid-divider-border; } + .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { border-top-color: $inverse-grid-divider-border; } + +} +@mixin hook-heading-primary(){} +@mixin hook-heading-hero(){} +@mixin hook-heading-divider(){} +@mixin hook-heading-bullet(){} +@mixin hook-heading-line(){} +@mixin hook-heading-misc(){} +@mixin hook-inverse-heading-primary(){} +@mixin hook-inverse-heading-hero(){} +@mixin hook-inverse-heading-divider(){} +@mixin hook-inverse-heading-bullet(){} +@mixin hook-inverse-heading-line(){} +@mixin hook-inverse-component-heading(){ + + .uk-heading-primary { + @if(mixin-exists(hook-inverse-heading-primary)) {@include hook-inverse-heading-primary();} + } + + .uk-heading-hero { + @if(mixin-exists(hook-inverse-heading-hero)) {@include hook-inverse-heading-hero();} + } + + .uk-heading-divider { + border-bottom-color: $inverse-heading-divider-border; + @if(mixin-exists(hook-inverse-heading-divider)) {@include hook-inverse-heading-divider();} + } + + .uk-heading-bullet::before { + border-left-color: $inverse-heading-bullet-border; + @if(mixin-exists(hook-inverse-heading-bullet)) {@include hook-inverse-heading-bullet();} + } + + .uk-heading-line > ::before, + .uk-heading-line > ::after { + border-bottom-color: $inverse-heading-line-border; + @if(mixin-exists(hook-inverse-heading-line)) {@include hook-inverse-heading-line();} + } + +} +@mixin hook-height-misc(){} +@mixin hook-icon-link(){} +@mixin hook-icon-link-hover(){} +@mixin hook-icon-link-active(){} +@mixin hook-icon-button(){ + transition: 0.1s ease-in-out; + transition-property: color, background-color +} +@mixin hook-icon-button-hover(){} +@mixin hook-icon-button-active(){} +@mixin hook-icon-misc(){} +@mixin hook-inverse-icon-link(){} +@mixin hook-inverse-icon-link-hover(){} +@mixin hook-inverse-icon-link-active(){} +@mixin hook-inverse-icon-button(){} +@mixin hook-inverse-icon-button-hover(){} +@mixin hook-inverse-icon-button-active(){} +@mixin hook-inverse-component-icon(){ + + // + // Link + // + + .uk-icon-link { + color: $inverse-icon-link-color; + @if(mixin-exists(hook-inverse-icon-link)) {@include hook-inverse-icon-link();} + } + + .uk-icon-link:hover, + .uk-icon-link:focus { + color: $inverse-icon-link-hover-color; + @if(mixin-exists(hook-inverse-icon-link-hover)) {@include hook-inverse-icon-link-hover();} + } + + .uk-icon-link:active, + .uk-active > .uk-icon-link { + color: $inverse-icon-link-active-color; + @if(mixin-exists(hook-inverse-icon-link-active)) {@include hook-inverse-icon-link-active();} + } + + // + // Button + // + + .uk-icon-button { + background-color: $inverse-icon-button-background; + color: $inverse-icon-button-color; + @if(mixin-exists(hook-inverse-icon-button)) {@include hook-inverse-icon-button();} + } + + .uk-icon-button:hover, + .uk-icon-button:focus { + background-color: $inverse-icon-button-hover-background; + color: $inverse-icon-button-hover-color; + @if(mixin-exists(hook-inverse-icon-button-hover)) {@include hook-inverse-icon-button-hover();} + } + + .uk-icon-button:active { + background-color: $inverse-icon-button-active-background; + color: $inverse-icon-button-active-color; + @if(mixin-exists(hook-inverse-icon-button-active)) {@include hook-inverse-icon-button-active();} + } + +} +@mixin hook-iconnav(){} +@mixin hook-iconnav-item(){} +@mixin hook-iconnav-item-hover(){} +@mixin hook-iconnav-item-active(){} +@mixin hook-iconnav-misc(){} +@mixin hook-inverse-iconnav-item(){} +@mixin hook-inverse-iconnav-item-hover(){} +@mixin hook-inverse-iconnav-item-active(){} +@mixin hook-inverse-component-iconnav(){ + + .uk-iconnav > * > a { + color: $inverse-iconnav-item-color; + @if(mixin-exists(hook-inverse-iconnav-item)) {@include hook-inverse-iconnav-item();} + } + + .uk-iconnav > * > a:hover, + .uk-iconnav > * > a:focus { + color: $inverse-iconnav-item-hover-color; + @if(mixin-exists(hook-inverse-iconnav-item-hover)) {@include hook-inverse-iconnav-item-hover();} + } + + .uk-iconnav > .uk-active > a { + color: $inverse-iconnav-item-active-color; + @if(mixin-exists(hook-inverse-iconnav-item-active)) {@include hook-inverse-iconnav-item-active();} + } + +} +@mixin hook-inverse-component-link(){ + + a.uk-link-muted, + .uk-link-muted a { + color: $inverse-link-muted-color; + @if(mixin-exists(hook-inverse-link-muted)) {@include hook-inverse-link-muted();} + } + + a.uk-link-muted:hover, + .uk-link-muted a:hover { + color: $inverse-link-muted-hover-color; + @if(mixin-exists(hook-inverse-link-muted-hover)) {@include hook-inverse-link-muted-hover();} + } + + a.uk-link-text:hover, + .uk-link-text a:hover { + color: $inverse-link-text-hover-color; + @if(mixin-exists(hook-inverse-link-text-hover)) {@include hook-inverse-link-text-hover();} + } + + a.uk-link-heading:hover, + .uk-link-heading a:hover { + color: $inverse-link-heading-hover-color; + @if(mixin-exists(hook-inverse-link-heading-hover)) {@include hook-inverse-link-heading-hover();} + } + +} +@mixin hook-inverse-component-list(){ + + .uk-list-divider > li:nth-child(n+2) { + border-top-color: $inverse-list-divider-border; + @if(mixin-exists(hook-inverse-list-divider)) {@include hook-inverse-list-divider();} + } + + .uk-list-striped > li { + @if(mixin-exists(hook-inverse-list-striped)) {@include hook-inverse-list-striped();} + } + + .uk-list-striped > li:nth-of-type(odd) { background-color: $inverse-list-striped-background; } + + .uk-list-bullet > li::before { + @include svg-fill($internal-list-bullet-image, "#000", $inverse-list-bullet-icon-color); + @if(mixin-exists(hook-inverse-list-bullet)) {@include hook-inverse-list-bullet();} + } + +} +@mixin hook-inverse-component-totop(){ + + .uk-totop { + color: $inverse-totop-color; + @if(mixin-exists(hook-inverse-totop)) {@include hook-inverse-totop();} + } + + .uk-totop:hover, + .uk-totop:focus { + color: $inverse-totop-hover-color; + @if(mixin-exists(hook-inverse-totop-hover)) {@include hook-inverse-totop-hover();} + } + + .uk-totop:active { + color: $inverse-totop-active-color; + @if(mixin-exists(hook-inverse-totop-active)) {@include hook-inverse-totop-active();} + } + +} +@mixin hook-inverse-component-label(){ + + .uk-label { + background-color: $inverse-label-background; + color: $inverse-label-color; + @if(mixin-exists(hook-inverse-label)) {@include hook-inverse-label();} + } + +} +@mixin hook-inverse-component-search(){ + + // + // Input + // + + .uk-search-input { color: $inverse-search-color; } + + .uk-search-input:-ms-input-placeholder { color: $inverse-search-placeholder-color !important; } + .uk-search-input::placeholder { color: $inverse-search-placeholder-color; } + + + // + // Icon + // + + .uk-search .uk-search-icon { color: $inverse-search-icon-color; } + .uk-search .uk-search-icon:hover { color: $inverse-search-icon-color; } + + // + // Style modifier + // + + .uk-search-default .uk-search-input { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input)) {@include hook-inverse-search-default-input();} + } + .uk-search-default .uk-search-input:focus { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input-focus)) {@include hook-inverse-search-default-input-focus();} + } + + .uk-search-navbar .uk-search-input { + background-color: $inverse-search-navbar-background; + @if(mixin-exists(hook-inverse-search-navbar-input)) {@include hook-inverse-search-navbar-input();} + } + + .uk-search-large .uk-search-input { + background-color: $inverse-search-large-background; + @if(mixin-exists(hook-inverse-search-large-input)) {@include hook-inverse-search-large-input();} + } + + // + // Toggle + // + + .uk-search-toggle { + color: $inverse-search-toggle-color; + @if(mixin-exists(hook-inverse-search-toggle)) {@include hook-inverse-search-toggle();} + } + + .uk-search-toggle:hover, + .uk-search-toggle:focus { + color: $inverse-search-toggle-hover-color; + @if(mixin-exists(hook-inverse-search-toggle-hover)) {@include hook-inverse-search-toggle-hover();} + } + +} +@mixin hook-inverse-component-nav(){ + + // + // Parent icon modifier + // + + .uk-nav-parent-icon > .uk-parent > a::after { + @include svg-fill($internal-nav-parent-close-image, "#000", $inverse-nav-parent-icon-color); + @if(mixin-exists(hook-inverse-nav-parent-icon)) {@include hook-inverse-nav-parent-icon();} + } + + .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $inverse-nav-parent-icon-color); } + + // + // Default + // + + .uk-nav-default > li > a { + color: $inverse-nav-default-item-color; + @if(mixin-exists(hook-inverse-nav-default-item)) {@include hook-inverse-nav-default-item();} + } + + .uk-nav-default > li > a:hover, + .uk-nav-default > li > a:focus { + color: $inverse-nav-default-item-hover-color; + @if(mixin-exists(hook-inverse-nav-default-item-hover)) {@include hook-inverse-nav-default-item-hover();} + } + + .uk-nav-default > li.uk-active > a { + color: $inverse-nav-default-item-active-color; + @if(mixin-exists(hook-inverse-nav-default-item-active)) {@include hook-inverse-nav-default-item-active();} + } + + .uk-nav-default .uk-nav-header { + color: $inverse-nav-default-header-color; + @if(mixin-exists(hook-inverse-nav-default-header)) {@include hook-inverse-nav-default-header();} + } + + .uk-nav-default .uk-nav-divider { + border-top-color: $inverse-nav-default-divider-border; + @if(mixin-exists(hook-inverse-nav-default-divider)) {@include hook-inverse-nav-default-divider();} + } + + .uk-nav-default .uk-nav-sub a { color: $inverse-nav-default-sublist-item-color; } + + .uk-nav-default .uk-nav-sub a:hover, + .uk-nav-default .uk-nav-sub a:focus { color: $inverse-nav-default-sublist-item-hover-color; } + + // + // Primary + // + + .uk-nav-primary > li > a { + color: $inverse-nav-primary-item-color; + @if(mixin-exists(hook-inverse-nav-primary-item)) {@include hook-inverse-nav-primary-item();} + } + + .uk-nav-primary > li > a:hover, + .uk-nav-primary > li > a:focus { + color: $inverse-nav-primary-item-hover-color; + @if(mixin-exists(hook-inverse-nav-primary-item-hover)) {@include hook-inverse-nav-primary-item-hover();} + } + + .uk-nav-primary > li.uk-active > a { + color: $inverse-nav-primary-item-active-color; + @if(mixin-exists(hook-inverse-nav-primary-item-active)) {@include hook-inverse-nav-primary-item-active();} + } + + .uk-nav-primary .uk-nav-header { + color: $inverse-nav-primary-header-color; + @if(mixin-exists(hook-inverse-nav-primary-header)) {@include hook-inverse-nav-primary-header();} + } + + .uk-nav-primary .uk-nav-divider { + border-top-color: $inverse-nav-primary-divider-border; + @if(mixin-exists(hook-inverse-nav-primary-divider)) {@include hook-inverse-nav-primary-divider();} + } + + .uk-nav-primary .uk-nav-sub a { color: $inverse-nav-primary-sublist-item-color; } + + .uk-nav-primary .uk-nav-sub a:hover, + .uk-nav-primary .uk-nav-sub a:focus { color: $inverse-nav-primary-sublist-item-hover-color; } + +} +@mixin hook-inverse-component-navbar(){ + + .uk-navbar-nav > li > a { + color: $inverse-navbar-nav-item-color; + @if(mixin-exists(hook-inverse-navbar-nav-item)) {@include hook-inverse-navbar-nav-item();} + } + + .uk-navbar-nav > li:hover > a, + .uk-navbar-nav > li > a:focus, + .uk-navbar-nav > li > a.uk-open { + color: $inverse-navbar-nav-item-hover-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-hover)) {@include hook-inverse-navbar-nav-item-hover();} + } + + .uk-navbar-nav > li > a:active { + color: $inverse-navbar-nav-item-onclick-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-onclick)) {@include hook-inverse-navbar-nav-item-onclick();} + } + + .uk-navbar-nav > li.uk-active > a { + color: $inverse-navbar-nav-item-active-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-active)) {@include hook-inverse-navbar-nav-item-active();} + } + + .uk-navbar-item { + color: $inverse-navbar-item-color; + @if(mixin-exists(hook-inverse-navbar-item)) {@include hook-inverse-navbar-item();} + } + + .uk-navbar-toggle { + color: $inverse-navbar-toggle-color; + @if(mixin-exists(hook-inverse-navbar-toggle)) {@include hook-inverse-navbar-toggle();} + } + + .uk-navbar-toggle:hover, + .uk-navbar-toggle:focus, + .uk-navbar-toggle.uk-open { + color: $inverse-navbar-toggle-hover-color; + @if(mixin-exists(hook-inverse-navbar-toggle-hover)) {@include hook-inverse-navbar-toggle-hover();} + } + +} +@mixin hook-inverse-component-subnav(){ + + .uk-subnav > * > :first-child { + color: $inverse-subnav-item-color; + @if(mixin-exists(hook-inverse-subnav-item)) {@include hook-inverse-subnav-item();} + } + + .uk-subnav > * > a:hover, + .uk-subnav > * > a:focus { + color: $inverse-subnav-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-item-hover)) {@include hook-inverse-subnav-item-hover();} + } + + .uk-subnav > .uk-active > a { + color: $inverse-subnav-item-active-color; + @if(mixin-exists(hook-inverse-subnav-item-active)) {@include hook-inverse-subnav-item-active();} + } + + // + // Divider + // + + .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { + border-left-color: $inverse-subnav-divider-border; + @if(mixin-exists(hook-inverse-subnav-divider)) {@include hook-inverse-subnav-divider();} + } + + // + // Pill + // + + .uk-subnav-pill > * > :first-child { + background-color: $inverse-subnav-pill-item-background; + color: $inverse-subnav-pill-item-color; + @if(mixin-exists(hook-inverse-subnav-pill-item)) {@include hook-inverse-subnav-pill-item();} + } + + .uk-subnav-pill > * > a:hover, + .uk-subnav-pill > * > a:focus { + background-color: $inverse-subnav-pill-item-hover-background; + color: $inverse-subnav-pill-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-hover)) {@include hook-inverse-subnav-pill-item-hover();} + } + + .uk-subnav-pill > * > a:active { + background-color: $inverse-subnav-pill-item-onclick-background; + color: $inverse-subnav-pill-item-onclick-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-onclick)) {@include hook-inverse-subnav-pill-item-onclick();} + } + + .uk-subnav-pill > .uk-active > a { + background-color: $inverse-subnav-pill-item-active-background; + color: $inverse-subnav-pill-item-active-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-active)) {@include hook-inverse-subnav-pill-item-active();} + } + + // + // Disabled + // + + .uk-subnav > .uk-disabled > a { + color: $inverse-subnav-item-disabled-color; + @if(mixin-exists(hook-inverse-subnav-item-disabled)) {@include hook-inverse-subnav-item-disabled();} + } + +} +@mixin hook-inverse-component-pagination(){ + + .uk-pagination > * > * { + color: $inverse-pagination-item-color; + @if(mixin-exists(hook-inverse-pagination-item)) {@include hook-inverse-pagination-item();} + } + + .uk-pagination > * > :hover, + .uk-pagination > * > :focus { + color: $inverse-pagination-item-hover-color; + @if(mixin-exists(hook-inverse-pagination-item-hover)) {@include hook-inverse-pagination-item-hover();} + } + + .uk-pagination > .uk-active > * { + color: $inverse-pagination-item-active-color; + @if(mixin-exists(hook-inverse-pagination-item-active)) {@include hook-inverse-pagination-item-active();} + } + + .uk-pagination > .uk-disabled > * { + color: $inverse-pagination-item-disabled-color; + @if(mixin-exists(hook-inverse-pagination-item-disabled)) {@include hook-inverse-pagination-item-disabled();} + } + +} +@mixin hook-inverse-component-tab(){ + + .uk-tab { + @if(mixin-exists(hook-inverse-tab)) {@include hook-inverse-tab();} + } + + .uk-tab > * > a { + color: $inverse-tab-item-color; + @if(mixin-exists(hook-inverse-tab-item)) {@include hook-inverse-tab-item();} + } + + .uk-tab > * > a:hover, + .uk-tab > * > a:focus{ + color: $inverse-tab-item-hover-color; + @if(mixin-exists(hook-inverse-tab-item-hover)) {@include hook-inverse-tab-item-hover();} + } + + .uk-tab > .uk-active > a { + color: $inverse-tab-item-active-color; + @if(mixin-exists(hook-inverse-tab-item-active)) {@include hook-inverse-tab-item-active();} + } + + .uk-tab > .uk-disabled > a { + color: $inverse-tab-item-disabled-color; + @if(mixin-exists(hook-inverse-tab-item-disabled)) {@include hook-inverse-tab-item-disabled();} + } + +} +@mixin hook-inverse-component-slidenav(){ + + .uk-slidenav { + color: $inverse-slidenav-color; + @if(mixin-exists(hook-inverse-slidenav)) {@include hook-inverse-slidenav();} + } + + .uk-slidenav:hover, + .uk-slidenav:focus { + color: $inverse-slidenav-hover-color; + @if(mixin-exists(hook-inverse-slidenav-hover)) {@include hook-inverse-slidenav-hover();} + } + + .uk-slidenav:active { + color: $inverse-slidenav-active-color; + @if(mixin-exists(hook-inverse-slidenav-active)) {@include hook-inverse-slidenav-active();} + } + +} +@mixin hook-inverse-component-text(){ + + .uk-text-lead { + color: $inverse-text-lead-color; + @if(mixin-exists(hook-inverse-text-lead)) {@include hook-inverse-text-lead();} + } + + .uk-text-meta { + color: $inverse-text-meta-color; + @if(mixin-exists(hook-inverse-text-meta)) {@include hook-inverse-text-meta();} + } + + .uk-text-muted { color: $inverse-text-muted-color !important; } + .uk-text-primary { color: $inverse-text-primary-color !important; } + +} +@mixin hook-inverse-component-utility(){ + + .uk-dropcap::first-letter, + .uk-dropcap p:first-of-type::first-letter { + @if(mixin-exists(hook-inverse-dropcap)) {@include hook-inverse-dropcap();} + } + + .uk-logo { + color: $inverse-logo-color; + @if(mixin-exists(hook-inverse-logo)) {@include hook-inverse-logo();} + } + + .uk-logo:hover, + .uk-logo:focus { + color: $inverse-logo-hover-color; + @if(mixin-exists(hook-inverse-logo-hover)) {@include hook-inverse-logo-hover();} + } + + .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) { display: none; } + .uk-logo-inverse { display: inline; } + +} +@mixin hook-inverse(){ + @include hook-inverse-component-base(); + @include hook-inverse-component-link(); + @include hook-inverse-component-heading(); + @include hook-inverse-component-divider(); + @include hook-inverse-component-list(); + @include hook-inverse-component-icon(); + @include hook-inverse-component-form(); + @include hook-inverse-component-button(); + @include hook-inverse-component-grid(); + @include hook-inverse-component-close(); + @include hook-inverse-component-totop(); + @include hook-inverse-component-badge(); + @include hook-inverse-component-label(); + @include hook-inverse-component-article(); + @include hook-inverse-component-search(); + @include hook-inverse-component-nav(); + @include hook-inverse-component-navbar(); + @include hook-inverse-component-subnav(); + @include hook-inverse-component-breadcrumb(); + @include hook-inverse-component-pagination(); + @include hook-inverse-component-tab(); + @include hook-inverse-component-slidenav(); + @include hook-inverse-component-dotnav(); + @include hook-inverse-component-accordion(); + @include hook-inverse-component-iconnav(); + @include hook-inverse-component-text(); + @include hook-inverse-component-column(); + @include hook-inverse-component-utility(); +} +@mixin hook-label(){ + border-radius: $label-border-radius; + text-transform: $label-text-transform; +} +@mixin hook-label-success(){} +@mixin hook-label-warning(){} +@mixin hook-label-danger(){} +@mixin hook-label-misc(){} +@mixin hook-inverse-label(){} +@mixin hook-leader(){} +@mixin hook-leader-misc(){} +@mixin hook-inverse-leader(){} +@mixin hook-inverse-component-leader(){ + + .uk-leader-fill { + @if(mixin-exists(hook-inverse-leader)) {@include hook-inverse-leader();} + } + +} +@mixin hook-lightbox(){} +@mixin hook-lightbox-item(){} +@mixin hook-lightbox-toolbar(){} +@mixin hook-lightbox-toolbar-icon(){} +@mixin hook-lightbox-toolbar-icon-hover(){} +@mixin hook-lightbox-button(){} +@mixin hook-lightbox-button-hover(){} +@mixin hook-lightbox-misc(){} +@mixin hook-link-muted(){} +@mixin hook-link-muted-hover(){} +@mixin hook-link-text(){} +@mixin hook-link-text-hover(){} +@mixin hook-link-heading(){} +@mixin hook-link-heading-hover(){} +@mixin hook-link-reset(){} +@mixin hook-link-misc(){} +@mixin hook-inverse-link-muted(){} +@mixin hook-inverse-link-muted-hover(){} +@mixin hook-inverse-link-text-hover(){} +@mixin hook-inverse-link-heading-hover(){} +@mixin hook-list-divider(){} +@mixin hook-list-striped(){ + + &:nth-of-type(odd) { + border-top: $list-striped-border-width solid $list-striped-border; + border-bottom: $list-striped-border-width solid $list-striped-border; + } + +} +@mixin hook-list-bullet(){} +@mixin hook-list-misc(){} +@mixin hook-inverse-list-divider(){} +@mixin hook-inverse-list-striped(){ + + &:nth-of-type(odd) { + border-top-color: $inverse-global-border; + border-bottom-color: $inverse-global-border; + } + +} +@mixin hook-inverse-list-bullet(){} +@mixin hook-margin-misc(){} +@mixin hook-marker(){ + border-radius: 500px; +} +@mixin hook-marker-hover(){} +@mixin hook-marker-misc(){} +@mixin hook-inverse-marker(){} +@mixin hook-inverse-marker-hover(){} +@mixin hook-inverse-component-marker(){ + + .uk-marker { + background: $inverse-marker-background; + color: $inverse-marker-color; + @if(mixin-exists(hook-inverse-marker)) {@include hook-inverse-marker();} + } + + .uk-marker:hover, + .uk-marker:focus { + color: $inverse-marker-hover-color; + @if(mixin-exists(hook-inverse-marker-hover)) {@include hook-inverse-marker-hover();} + } + +} +@mixin hook-modal(){} +@mixin hook-modal-dialog(){} +@mixin hook-modal-full(){} +@mixin hook-modal-body(){} +@mixin hook-modal-header(){ border-bottom: $modal-header-border-width solid $modal-header-border; } +@mixin hook-modal-footer(){ border-top: $modal-footer-border-width solid $modal-footer-border; } +@mixin hook-modal-title(){} +@mixin hook-modal-close(){} +@mixin hook-modal-close-hover(){} +@mixin hook-modal-close-default(){} +@mixin hook-modal-close-default-hover(){} +@mixin hook-modal-close-outside(){} +@mixin hook-modal-close-outside-hover(){} +@mixin hook-modal-close-full(){ + top: 0; + right: 0; + padding: $modal-close-full-padding; + background: $modal-close-full-background; +} +@mixin hook-modal-close-full-hover(){} +@mixin hook-modal-misc(){} +@mixin hook-nav-sub(){} +@mixin hook-nav-parent-icon(){} +@mixin hook-nav-header(){} +@mixin hook-nav-divider(){} +@mixin hook-nav-default(){ font-size: $nav-default-font-size; } +@mixin hook-nav-default-item(){} +@mixin hook-nav-default-item-hover(){} +@mixin hook-nav-default-item-active(){} +@mixin hook-nav-default-header(){} +@mixin hook-nav-default-divider(){} +@mixin hook-nav-primary(){} +@mixin hook-nav-primary-item(){} +@mixin hook-nav-primary-item-hover(){} +@mixin hook-nav-primary-item-active(){} +@mixin hook-nav-primary-header(){} +@mixin hook-nav-primary-divider(){} +@mixin hook-nav-misc(){} +@mixin hook-inverse-nav-parent-icon(){} +@mixin hook-inverse-nav-default-item(){} +@mixin hook-inverse-nav-default-item-hover(){} +@mixin hook-inverse-nav-default-item-active(){} +@mixin hook-inverse-nav-default-header(){} +@mixin hook-inverse-nav-default-divider(){} +@mixin hook-inverse-nav-primary-item(){} +@mixin hook-inverse-nav-primary-item-hover(){} +@mixin hook-inverse-nav-primary-item-active(){} +@mixin hook-inverse-nav-primary-header(){} +@mixin hook-inverse-nav-primary-divider(){} +@mixin hook-navbar(){} +@mixin hook-navbar-container(){} +@mixin hook-navbar-nav-item(){ + text-transform: $navbar-nav-item-text-transform; + transition: 0.1s ease-in-out; + transition-property: color, background-color; +} +@mixin hook-navbar-nav-item-hover(){} +@mixin hook-navbar-nav-item-onclick(){} +@mixin hook-navbar-nav-item-active(){} +@mixin hook-navbar-item(){} +@mixin hook-navbar-toggle(){} +@mixin hook-navbar-toggle-hover(){} +@mixin hook-navbar-toggle-icon(){} +@mixin hook-navbar-toggle-icon-hover(){} +@mixin hook-navbar-subtitle(){} +@mixin hook-navbar-transparent(){} +@mixin hook-navbar-sticky(){} +@mixin hook-navbar-dropdown(){ box-shadow: $navbar-dropdown-box-shadow; } +@mixin hook-navbar-dropdown-dropbar(){ box-shadow: none; } +@mixin hook-navbar-dropdown-nav(){ font-size: $navbar-dropdown-nav-font-size; } +@mixin hook-navbar-dropdown-nav-item(){} +@mixin hook-navbar-dropdown-nav-item-hover(){} +@mixin hook-navbar-dropdown-nav-item-active(){} +@mixin hook-navbar-dropdown-nav-header(){} +@mixin hook-navbar-dropdown-nav-divider(){} +@mixin hook-navbar-dropbar(){} +@mixin hook-navbar-dropbar-slide(){ box-shadow: $navbar-dropbar-box-shadow; } +@mixin hook-navbar-misc(){ + + /* + * Navbar + */ + + .uk-navbar-container > .uk-container .uk-navbar-left { + margin-left: (-$navbar-nav-item-padding-horizontal); + margin-right: (-$navbar-nav-item-padding-horizontal); + } + .uk-navbar-container > .uk-container .uk-navbar-right { margin-right: (-$navbar-nav-item-padding-horizontal); } + + /* + * Grid Divider + */ + + .uk-navbar-dropdown-grid > * { position: relative; } + + .uk-navbar-dropdown-grid > :not(.uk-first-column)::before { + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: ($navbar-dropdown-grid-gutter-horizontal / 2); + border-left: $navbar-dropdown-grid-divider-border-width solid $navbar-dropdown-grid-divider-border; + } + + /* Vertical */ + .uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before { + content: ""; + position: absolute; + top: -($navbar-dropdown-grid-gutter-vertical / 2); + left: $navbar-dropdown-grid-gutter-horizontal; + right: 0; + border-top: $navbar-dropdown-grid-divider-border-width solid $navbar-dropdown-grid-divider-border; + } + +} +@mixin hook-inverse-navbar-nav-item(){} +@mixin hook-inverse-navbar-nav-item-hover(){} +@mixin hook-inverse-navbar-nav-item-onclick(){} +@mixin hook-inverse-navbar-nav-item-active(){} +@mixin hook-inverse-navbar-item(){} +@mixin hook-inverse-navbar-toggle(){} +@mixin hook-inverse-navbar-toggle-hover(){} +@mixin hook-notification(){} +@mixin hook-notification-message(){} +@mixin hook-notification-close(){} +@mixin hook-notification-message-primary(){} +@mixin hook-notification-message-success(){} +@mixin hook-notification-message-warning(){} +@mixin hook-notification-message-danger(){} +@mixin hook-notification-misc(){} +@mixin hook-offcanvas-bar(){} +@mixin hook-offcanvas-close(){} +@mixin hook-offcanvas-overlay(){} +@mixin hook-offcanvas-misc(){} +@mixin hook-overlay(){} +@mixin hook-overlay-icon(){} +@mixin hook-overlay-default(){} +@mixin hook-overlay-primary(){} +@mixin hook-overlay-misc(){} +@mixin hook-padding-misc(){} +@mixin hook-pagination(){} +@mixin hook-pagination-item(){ transition: color 0.1s ease-in-out; } +@mixin hook-pagination-item-hover(){} +@mixin hook-pagination-item-active(){} +@mixin hook-pagination-item-disabled(){} +@mixin hook-pagination-misc(){} +@mixin hook-inverse-pagination-item(){} +@mixin hook-inverse-pagination-item-hover(){} +@mixin hook-inverse-pagination-item-active(){} +@mixin hook-inverse-pagination-item-disabled(){} +@mixin hook-placeholder(){ border: $placeholder-border-width dashed $placeholder-border; } +@mixin hook-placeholder-misc(){} +@mixin hook-position-misc(){} +@mixin hook-print(){} +@mixin hook-progress(){ + border-radius: $progress-border-radius; + overflow: hidden; +} +@mixin hook-progress-bar(){} +@mixin hook-progress-misc(){} +@mixin hook-search-input(){} +@mixin hook-search-default-input(){ border: $search-default-border-width solid $search-default-border; } +@mixin hook-search-default-input-focus(){} +@mixin hook-search-navbar-input(){} +@mixin hook-search-large-input(){} +@mixin hook-search-toggle(){} +@mixin hook-search-toggle-hover(){} +@mixin hook-search-misc(){} +@mixin hook-inverse-search-default-input(){ border-color: $inverse-global-border; } +@mixin hook-inverse-search-default-input-focus(){} +@mixin hook-inverse-search-navbar-input(){} +@mixin hook-inverse-search-large-input(){} +@mixin hook-inverse-search-toggle(){} +@mixin hook-inverse-search-toggle-hover(){} +@mixin hook-section(){} +@mixin hook-section-default(){} +@mixin hook-section-muted(){} +@mixin hook-section-primary(){} +@mixin hook-section-secondary(){} +@mixin hook-section-overlap(){} +@mixin hook-section-misc(){} +@mixin hook-slidenav(){ transition: color 0.1s ease-in-out; } +@mixin hook-slidenav-hover(){} +@mixin hook-slidenav-active(){} +@mixin hook-slidenav-previous(){} +@mixin hook-slidenav-next(){} +@mixin hook-slidenav-large(){} +@mixin hook-slidenav-container(){} +@mixin hook-slidenav-misc(){} +@mixin hook-inverse-slidenav(){} +@mixin hook-inverse-slidenav-hover(){} +@mixin hook-inverse-slidenav-active(){} +@mixin hook-slider(){} +@mixin hook-slider-misc(){} +@mixin hook-slideshow(){} +@mixin hook-slideshow-misc(){} +@mixin hook-sortable(){} +@mixin hook-sortable-drag(){} +@mixin hook-sortable-placeholder(){} +@mixin hook-sortable-empty(){} +@mixin hook-sortable-misc(){} +@mixin hook-spinner(){} +@mixin hook-spinner-misc(){} +@mixin hook-sticky-misc(){} +@mixin hook-subnav(){} +@mixin hook-subnav-item(){ + font-size: $subnav-item-font-size; + text-transform: $subnav-item-text-transform; + transition: 0.1s ease-in-out; + transition-property: color, background-color; +} +@mixin hook-subnav-item-hover(){} +@mixin hook-subnav-item-active(){} +@mixin hook-subnav-divider(){} +@mixin hook-subnav-pill-item(){} +@mixin hook-subnav-pill-item-hover(){} +@mixin hook-subnav-pill-item-onclick(){} +@mixin hook-subnav-pill-item-active(){} +@mixin hook-subnav-item-disabled(){} +@mixin hook-subnav-misc(){} +@mixin hook-inverse-subnav-item(){} +@mixin hook-inverse-subnav-item-hover(){} +@mixin hook-inverse-subnav-item-active(){} +@mixin hook-inverse-subnav-divider(){} +@mixin hook-inverse-subnav-pill-item(){} +@mixin hook-inverse-subnav-pill-item-hover(){} +@mixin hook-inverse-subnav-pill-item-onclick(){} +@mixin hook-inverse-subnav-pill-item-active(){} +@mixin hook-inverse-subnav-item-disabled(){} +@mixin hook-svg-misc(){} +@mixin hook-switcher-misc(){} +@mixin hook-tab(){ + + position: relative; + + &::before { + content: ""; + position: absolute; + bottom: 0; + left: $tab-margin-horizontal; + right: 0; + border-bottom: $tab-border-width solid $tab-border; + } + +} +@mixin hook-tab-item(){ + border-bottom: $tab-item-border-width solid transparent; + font-size: $tab-item-font-size; + text-transform: $tab-item-text-transform; + transition: color 0.1s ease-in-out; +} +@mixin hook-tab-item-hover(){} +@mixin hook-tab-item-active(){ border-color: $tab-item-active-border; } +@mixin hook-tab-item-disabled(){} +@mixin hook-tab-bottom(){ + + &::before { + top: 0; + bottom: auto; + } + +} +@mixin hook-tab-bottom-item(){ + border-top: $tab-item-border-width solid transparent; + border-bottom: none; +} +@mixin hook-tab-left(){ + + &::before { + top: 0; + bottom: 0; + left: auto; + right: 0; + border-left: $tab-border-width solid $tab-border; + border-bottom: none; + } + +} +@mixin hook-tab-right(){ + + &::before { + top: 0; + bottom: 0; + left: 0; + right: auto; + border-left: $tab-border-width solid $tab-border; + border-bottom: none; + } + +} +@mixin hook-tab-left-item(){ + border-right: $tab-item-border-width solid transparent; + border-bottom: none; +} +@mixin hook-tab-right-item(){ + border-left: $tab-item-border-width solid transparent; + border-bottom: none; +} +@mixin hook-tab-misc(){ + + .uk-tab .uk-dropdown { margin-left: ($tab-margin-horizontal + $tab-item-padding-horizontal) } + +} +@mixin hook-inverse-tab(){ + + &::before { border-color: $inverse-tab-border; } + +} +@mixin hook-inverse-tab-item(){} +@mixin hook-inverse-tab-item-hover(){} +@mixin hook-inverse-tab-item-active(){ border-color: $inverse-global-primary-background; } +@mixin hook-inverse-tab-item-disabled(){} +@mixin hook-table(){} +@mixin hook-table-header-cell(){ text-transform: uppercase; } +@mixin hook-table-cell(){} +@mixin hook-table-footer(){} +@mixin hook-table-caption(){} +@mixin hook-table-row-active(){} +@mixin hook-table-divider(){} +@mixin hook-table-striped(){ + border-top: $table-striped-border-width solid $table-striped-border; + border-bottom: $table-striped-border-width solid $table-striped-border; +} +@mixin hook-table-hover(){} +@mixin hook-table-small(){} +@mixin hook-table-large(){} +@mixin hook-table-misc(){ + + .uk-table tbody tr { transition: background-color 0.1s linear; } + +} +@mixin hook-inverse-table-header-cell(){} +@mixin hook-inverse-table-caption(){} +@mixin hook-inverse-table-row-active(){} +@mixin hook-inverse-table-divider(){} +@mixin hook-inverse-table-striped(){ + border-top-color: $inverse-global-border; + border-bottom-color: $inverse-global-border; +} +@mixin hook-inverse-table-hover(){} +@mixin hook-inverse-component-table(){ + + .uk-table th { + color: $inverse-table-header-cell-color; + @if(mixin-exists(hook-inverse-table-header-cell)) {@include hook-inverse-table-header-cell();} + } + + .uk-table caption { + color: $inverse-table-caption-color; + @if(mixin-exists(hook-inverse-table-caption)) {@include hook-inverse-table-caption();} + } + + .uk-table > tr.uk-active, + .uk-table tbody tr.uk-active { + background: $inverse-table-row-active-background; + @if(mixin-exists(hook-inverse-table-row-active)) {@include hook-inverse-table-row-active();} + } + + .uk-table-divider > tr:not(:first-child), + .uk-table-divider > :not(:first-child) > tr, + .uk-table-divider > :first-child > tr:not(:first-child) { + border-top-color: $inverse-table-divider-border; + @if(mixin-exists(hook-inverse-table-divider)) {@include hook-inverse-table-divider();} + } + + .uk-table-striped > tr:nth-of-type(odd), + .uk-table-striped tbody tr:nth-of-type(odd) { + background: $inverse-table-striped-row-background; + @if(mixin-exists(hook-inverse-table-striped)) {@include hook-inverse-table-striped();} + } + + .uk-table-hover > tr:hover, + .uk-table-hover tbody tr:hover { + background: $inverse-table-hover-row-background; + @if(mixin-exists(hook-inverse-table-hover)) {@include hook-inverse-table-hover();} + } + +} +@mixin hook-text-lead(){} +@mixin hook-text-meta(){ + + a { color: $text-meta-link-color; } + + a:hover { + color: $text-meta-link-hover-color; + text-decoration: none; + } + +} +@mixin hook-text-small(){} +@mixin hook-text-large(){} +@mixin hook-text-background(){} +@mixin hook-text-misc(){} +@mixin hook-inverse-text-lead(){} +@mixin hook-inverse-text-meta(){} +@mixin hook-thumbnav(){} +@mixin hook-thumbnav-item(){ + + position: relative; + + &::after { + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: $thumbnav-item-background; + transition: background-color 0.1s ease-in-out; + } + +} +@mixin hook-thumbnav-item-hover(){ + &::after { background-color: $thumbnav-item-hover-background; } +} +@mixin hook-thumbnav-item-active(){ + &::after { background-color: $thumbnav-item-active-background; } +} +@mixin hook-thumbnav-misc(){} +@mixin hook-inverse-thumbnav-item(){} +@mixin hook-inverse-thumbnav-item-hover(){} +@mixin hook-inverse-thumbnav-item-active(){} +@mixin hook-inverse-component-thumbnav(){ + + .uk-thumbnav > * > * { + @if(mixin-exists(hook-inverse-thumbnav-item)) {@include hook-inverse-thumbnav-item();} + } + + .uk-thumbnav > * > :hover, + .uk-thumbnav > * > :focus { + @if(mixin-exists(hook-inverse-thumbnav-item-hover)) {@include hook-inverse-thumbnav-item-hover();} + } + + .uk-thumbnav > .uk-active > * { + @if(mixin-exists(hook-inverse-thumbnav-item-active)) {@include hook-inverse-thumbnav-item-active();} + } + +} +@mixin hook-tile(){} +@mixin hook-tile-default(){} +@mixin hook-tile-muted(){} +@mixin hook-tile-primary(){} +@mixin hook-tile-secondary(){} +@mixin hook-tile-misc(){} +@mixin hook-tooltip(){} +@mixin hook-tooltip-misc(){} +@mixin hook-totop(){ transition: color 0.1s ease-in-out; } +@mixin hook-totop-hover(){} +@mixin hook-totop-active(){} +@mixin hook-totop-misc(){} +@mixin hook-inverse-totop(){} +@mixin hook-inverse-totop-hover(){} +@mixin hook-inverse-totop-active(){} +@mixin hook-transition-misc(){} +@mixin hook-panel-scrollable(){} +@mixin hook-box-shadow-bottom(){} +@mixin hook-dropcap(){ + // Prevent line wrap + margin-bottom: -2px; +} +@mixin hook-logo(){} +@mixin hook-logo-hover(){} +@mixin hook-utility-misc(){} +@mixin hook-inverse-dropcap(){} +@mixin hook-inverse-logo(){} +@mixin hook-inverse-logo-hover(){} +@mixin hook-visibility-misc(){} +@mixin hook-width-misc(){} \ No newline at end of file diff --git a/scss/uikit/_mixins.scss b/scss/uikit/_mixins.scss new file mode 100644 index 00000000..77c81f4c --- /dev/null +++ b/scss/uikit/_mixins.scss @@ -0,0 +1,1653 @@ +@mixin hook-accordion(){} +@mixin hook-accordion-item(){} +@mixin hook-accordion-title(){} +@mixin hook-accordion-title-hover(){} +@mixin hook-accordion-content(){} +@mixin hook-accordion-misc(){} +@mixin hook-inverse-accordion-item(){} +@mixin hook-inverse-accordion-title(){} +@mixin hook-inverse-accordion-title-hover(){} +@mixin hook-inverse-component-accordion(){ + + .uk-accordion > :nth-child(n+2) { + @if(mixin-exists(hook-inverse-accordion-item)) {@include hook-inverse-accordion-item();} + } + + .uk-accordion-title { + color: $inverse-accordion-title-color; + @if(mixin-exists(hook-inverse-accordion-title)) {@include hook-inverse-accordion-title();} + } + + .uk-accordion-title:hover, + .uk-accordion-title:focus { + color: $inverse-accordion-title-hover-color; + @if(mixin-exists(hook-inverse-accordion-title-hover)) {@include hook-inverse-accordion-title-hover();} + } + +} +@mixin hook-alert(){} +@mixin hook-alert-close(){} +@mixin hook-alert-close-hover(){} +@mixin hook-alert-primary(){} +@mixin hook-alert-success(){} +@mixin hook-alert-warning(){} +@mixin hook-alert-danger(){} +@mixin hook-alert-misc(){} +@mixin hook-align-misc(){} +@mixin hook-animation-misc(){} +@mixin hook-article(){} +@mixin hook-article-adjacent(){} +@mixin hook-article-title(){} +@mixin hook-article-meta(){} +@mixin hook-article-misc(){} +@mixin hook-inverse-article-title(){} +@mixin hook-inverse-article-meta(){} +@mixin hook-inverse-component-article(){ + + .uk-article-title { + @if(mixin-exists(hook-inverse-article-title)) {@include hook-inverse-article-title();} + } + + .uk-article-meta { + color: $inverse-article-meta-color; + @if(mixin-exists(hook-inverse-article-meta)) {@include hook-inverse-article-meta();} + } + +} +@mixin hook-background-misc(){} +@mixin hook-badge(){} +@mixin hook-badge-hover(){} +@mixin hook-badge-misc(){} +@mixin hook-inverse-badge(){} +@mixin hook-inverse-badge-hover(){} +@mixin hook-inverse-component-badge(){ + + .uk-badge { + background-color: $inverse-badge-background; + color: $inverse-badge-color; + @if(mixin-exists(hook-inverse-badge)) {@include hook-inverse-badge();} + } + + .uk-badge:hover, + .uk-badge:focus { + color: $inverse-badge-hover-color; + @if(mixin-exists(hook-inverse-badge-hover)) {@include hook-inverse-badge-hover();} + } + +} +@mixin hook-base-body(){} +@mixin hook-base-link(){} +@mixin hook-base-link-hover(){} +@mixin hook-base-code(){} +@mixin hook-base-heading(){} +@mixin hook-base-h1(){} +@mixin hook-base-h2(){} +@mixin hook-base-h3(){} +@mixin hook-base-h4(){} +@mixin hook-base-h5(){} +@mixin hook-base-h6(){} +@mixin hook-base-hr(){} +@mixin hook-base-blockquote(){} +@mixin hook-base-blockquote-footer(){} +@mixin hook-base-pre(){} +@mixin hook-base-misc(){} +@mixin hook-inverse-base-link(){} +@mixin hook-inverse-base-link-hover(){} +@mixin hook-inverse-base-code(){} +@mixin hook-inverse-base-heading(){} +@mixin hook-inverse-base-h1(){} +@mixin hook-inverse-base-h2(){} +@mixin hook-inverse-base-h3(){} +@mixin hook-inverse-base-h4(){} +@mixin hook-inverse-base-h5(){} +@mixin hook-inverse-base-h6(){} +@mixin hook-inverse-base-blockquote(){} +@mixin hook-inverse-base-blockquote-footer(){} +@mixin hook-inverse-base-hr(){} +@mixin hook-inverse-component-base(){ + + color: $inverse-base-color; + + // Base + // ======================================================================== + + // + // Link + // + + a, + .uk-link { + color: $inverse-base-link-color; + @if(mixin-exists(hook-inverse-base-link)) {@include hook-inverse-base-link();} + } + + a:hover, + .uk-link:hover { + color: $inverse-base-link-hover-color; + @if(mixin-exists(hook-inverse-base-link-hover)) {@include hook-inverse-base-link-hover();} + } + + // + // Code + // + + :not(pre) > code, + :not(pre) > kbd, + :not(pre) > samp { + color: $inverse-base-code-color; + @if(mixin-exists(hook-inverse-base-code)) {@include hook-inverse-base-code();} + } + + // + // Emphasize + // + + em { color: $inverse-base-em-color; } + + // + // Headings + // + + h1, .uk-h1, + h2, .uk-h2, + h3, .uk-h3, + h4, .uk-h4, + h5, .uk-h5, + h6, .uk-h6 { + color: $inverse-base-heading-color; + @if(mixin-exists(hook-inverse-base-heading)) {@include hook-inverse-base-heading();} + } + + h1, .uk-h1 { + @if(mixin-exists(hook-inverse-base-h1)) {@include hook-inverse-base-h1();} + } + + h2, .uk-h2 { + @if(mixin-exists(hook-inverse-base-h2)) {@include hook-inverse-base-h2();} + } + + h3, .uk-h3 { + @if(mixin-exists(hook-inverse-base-h3)) {@include hook-inverse-base-h3();} + } + + h4, .uk-h4 { + @if(mixin-exists(hook-inverse-base-h4)) {@include hook-inverse-base-h4();} + } + + h5, .uk-h5 { + @if(mixin-exists(hook-inverse-base-h5)) {@include hook-inverse-base-h5();} + } + + h6, .uk-h6 { + @if(mixin-exists(hook-inverse-base-h6)) {@include hook-inverse-base-h6();} + } + + // + // Blockquotes + // + + blockquote { + @if(mixin-exists(hook-inverse-base-blockquote)) {@include hook-inverse-base-blockquote();} + } + + blockquote footer { + @if(mixin-exists(hook-inverse-base-blockquote-footer)) {@include hook-inverse-base-blockquote-footer();} + } + + // + // Horizontal rules + // + + hr, .uk-hr { + border-top-color: $inverse-base-hr-border; + @if(mixin-exists(hook-inverse-base-hr)) {@include hook-inverse-base-hr();} + } + +} +@mixin hook-breadcrumb(){} +@mixin hook-breadcrumb-item(){} +@mixin hook-breadcrumb-item-hover(){} +@mixin hook-breadcrumb-item-disabled(){} +@mixin hook-breadcrumb-item-active(){} +@mixin hook-breadcrumb-divider(){} +@mixin hook-breadcrumb-misc(){} +@mixin hook-inverse-breadcrumb-item(){} +@mixin hook-inverse-breadcrumb-item-hover(){} +@mixin hook-inverse-breadcrumb-item-disabled(){} +@mixin hook-inverse-breadcrumb-item-active(){} +@mixin hook-inverse-breadcrumb-divider(){} +@mixin hook-inverse-component-breadcrumb(){ + + .uk-breadcrumb > * > * { + color: $inverse-breadcrumb-item-color; + @if(mixin-exists(hook-inverse-breadcrumb-item)) {@include hook-inverse-breadcrumb-item();} + } + + .uk-breadcrumb > * > :hover, + .uk-breadcrumb > * > :focus { + color: $inverse-breadcrumb-item-hover-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-hover)) {@include hook-inverse-breadcrumb-item-hover();} + } + + + .uk-breadcrumb > .uk-disabled > * { + @if(mixin-exists(hook-inverse-breadcrumb-item-disabled)) {@include hook-inverse-breadcrumb-item-disabled();} + } + + .uk-breadcrumb > :last-child > * { + color: $inverse-breadcrumb-item-active-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-active)) {@include hook-inverse-breadcrumb-item-active();} + } + + // + // Divider + // + + .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before { + color: $inverse-breadcrumb-divider-color; + @if(mixin-exists(hook-inverse-breadcrumb-divider)) {@include hook-inverse-breadcrumb-divider();} + } + +} +@mixin hook-button(){} +@mixin hook-button-hover(){} +@mixin hook-button-focus(){} +@mixin hook-button-active(){} +@mixin hook-button-default(){} +@mixin hook-button-default-hover(){} +@mixin hook-button-default-active(){} +@mixin hook-button-primary(){} +@mixin hook-button-primary-hover(){} +@mixin hook-button-primary-active(){} +@mixin hook-button-secondary(){} +@mixin hook-button-secondary-hover(){} +@mixin hook-button-secondary-active(){} +@mixin hook-button-danger(){} +@mixin hook-button-danger-hover(){} +@mixin hook-button-danger-active(){} +@mixin hook-button-disabled(){} +@mixin hook-button-small(){} +@mixin hook-button-large(){} +@mixin hook-button-text(){} +@mixin hook-button-text-hover(){} +@mixin hook-button-text-disabled(){} +@mixin hook-button-link(){} +@mixin hook-button-misc(){} +@mixin hook-inverse-button-default(){} +@mixin hook-inverse-button-default-hover(){} +@mixin hook-inverse-button-default-active(){} +@mixin hook-inverse-button-primary(){} +@mixin hook-inverse-button-primary-hover(){} +@mixin hook-inverse-button-primary-active(){} +@mixin hook-inverse-button-secondary(){} +@mixin hook-inverse-button-secondary-hover(){} +@mixin hook-inverse-button-secondary-active(){} +@mixin hook-inverse-button-text(){} +@mixin hook-inverse-button-text-hover(){} +@mixin hook-inverse-button-text-disabled(){} +@mixin hook-inverse-button-link(){} +@mixin hook-inverse-component-button(){ + + // + // Default + // + + .uk-button-default { + background-color: $inverse-button-default-background; + color: $inverse-button-default-color; + @if(mixin-exists(hook-inverse-button-default)) {@include hook-inverse-button-default();} + } + + .uk-button-default:hover, + .uk-button-default:focus { + background-color: $inverse-button-default-hover-background; + color: $inverse-button-default-hover-color; + @if(mixin-exists(hook-inverse-button-default-hover)) {@include hook-inverse-button-default-hover();} + } + + .uk-button-default:active, + .uk-button-default.uk-active { + background-color: $inverse-button-default-active-background; + color: $inverse-button-default-active-color; + @if(mixin-exists(hook-inverse-button-default-active)) {@include hook-inverse-button-default-active();} + } + + // + // Primary + // + + .uk-button-primary { + background-color: $inverse-button-primary-background; + color: $inverse-button-primary-color; + @if(mixin-exists(hook-inverse-button-primary)) {@include hook-inverse-button-primary();} + } + + .uk-button-primary:hover, + .uk-button-primary:focus { + background-color: $inverse-button-primary-hover-background; + color: $inverse-button-primary-hover-color; + @if(mixin-exists(hook-inverse-button-primary-hover)) {@include hook-inverse-button-primary-hover();} + } + + .uk-button-primary:active, + .uk-button-primary.uk-active { + background-color: $inverse-button-primary-active-background; + color: $inverse-button-primary-active-color; + @if(mixin-exists(hook-inverse-button-primary-active)) {@include hook-inverse-button-primary-active();} + } + + // + // Secondary + // + + .uk-button-secondary { + background-color: $inverse-button-secondary-background; + color: $inverse-button-secondary-color; + @if(mixin-exists(hook-inverse-button-secondary)) {@include hook-inverse-button-secondary();} + } + + .uk-button-secondary:hover, + .uk-button-secondary:focus { + background-color: $inverse-button-secondary-hover-background; + color: $inverse-button-secondary-hover-color; + @if(mixin-exists(hook-inverse-button-secondary-hover)) {@include hook-inverse-button-secondary-hover();} + } + + .uk-button-secondary:active, + .uk-button-secondary.uk-active { + background-color: $inverse-button-secondary-active-background; + color: $inverse-button-secondary-active-color; + @if(mixin-exists(hook-inverse-button-secondary-active)) {@include hook-inverse-button-secondary-active();} + } + + // + // Text + // + + .uk-button-text { + color: $inverse-button-text-color; + @if(mixin-exists(hook-inverse-button-text)) {@include hook-inverse-button-text();} + } + + .uk-button-text:hover, + .uk-button-text:focus { + color: $inverse-button-text-hover-color; + @if(mixin-exists(hook-inverse-button-text-hover)) {@include hook-inverse-button-text-hover();} + } + + .uk-button-text:disabled { + color: $inverse-button-text-disabled-color; + @if(mixin-exists(hook-inverse-button-text-disabled)) {@include hook-inverse-button-text-disabled();} + } + + // + // Link + // + + .uk-button-link { + color: $inverse-button-link-color; + @if(mixin-exists(hook-inverse-button-link)) {@include hook-inverse-button-link();} + } + + .uk-button-link:hover, + .uk-button-link:focus { color: $inverse-button-link-hover-color; } + + +} +@mixin hook-card(){} +@mixin hook-card-body(){} +@mixin hook-card-header(){} +@mixin hook-card-footer(){} +@mixin hook-card-media(){} +@mixin hook-card-media-top(){} +@mixin hook-card-media-bottom(){} +@mixin hook-card-media-left(){} +@mixin hook-card-media-right(){} +@mixin hook-card-title(){} +@mixin hook-card-badge(){} +@mixin hook-card-hover(){} +@mixin hook-card-default(){} +@mixin hook-card-default-title(){} +@mixin hook-card-default-hover(){} +@mixin hook-card-default-header(){} +@mixin hook-card-default-footer(){} +@mixin hook-card-primary(){} +@mixin hook-card-primary-title(){} +@mixin hook-card-primary-hover(){} +@mixin hook-card-secondary(){} +@mixin hook-card-secondary-title(){} +@mixin hook-card-secondary-hover(){} +@mixin hook-card-misc(){} +@mixin hook-close(){} +@mixin hook-close-hover(){} +@mixin hook-close-misc(){} +@mixin hook-inverse-close(){} +@mixin hook-inverse-close-hover(){} +@mixin hook-inverse-component-close(){ + + .uk-close { + color: $inverse-close-color; + @if(mixin-exists(hook-inverse-close)) {@include hook-inverse-close();} + } + + .uk-close:hover, + .uk-close:focus { + color: $inverse-close-hover-color; + @if(mixin-exists(hook-inverse-close-hover)) {@include hook-inverse-close-hover();} + } + +} +@mixin hook-column-misc(){} +@mixin hook-inverse-component-column(){ + + .uk-column-divider { column-rule-color: $inverse-column-divider-rule-color; } + +} +@mixin hook-comment(){} +@mixin hook-comment-body(){} +@mixin hook-comment-header(){} +@mixin hook-comment-title(){} +@mixin hook-comment-meta(){} +@mixin hook-comment-avatar(){} +@mixin hook-comment-list-adjacent(){} +@mixin hook-comment-list-sub(){} +@mixin hook-comment-list-sub-adjacent(){} +@mixin hook-comment-primary(){} +@mixin hook-comment-misc(){} +@mixin hook-container-misc(){} +@mixin hook-countdown(){} +@mixin hook-countdown-item(){} +@mixin hook-countdown-number(){} +@mixin hook-countdown-separator(){} +@mixin hook-countdown-label(){} +@mixin hook-countdown-misc(){} +@mixin hook-inverse-countdown-item(){} +@mixin hook-inverse-countdown-number(){} +@mixin hook-inverse-countdown-separator(){} +@mixin hook-inverse-countdown-label(){} +@mixin hook-inverse-component-countdown(){ + + .uk-countdown-number, + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-item)) {@include hook-inverse-countdown-item();} + } + + .uk-countdown-number { + @if(mixin-exists(hook-inverse-countdown-number)) {@include hook-inverse-countdown-number();} + } + + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-separator)) {@include hook-inverse-countdown-separator();} + } + + .uk-countdown-label { + @if(mixin-exists(hook-inverse-countdown-label)) {@include hook-inverse-countdown-label();} + } + +} +@mixin hook-cover-misc(){} +@mixin hook-description-list-term(){} +@mixin hook-description-list-description(){} +@mixin hook-description-list-divider-term(){} +@mixin hook-description-list-misc(){} +@mixin svg-fill($src, $color-default, $color-new, $property: background-image){ + + $escape-color-default: escape($color-default) !default; + $escape-color-new: escape("#{$color-new}") !default; + + $data-uri: data-uri('image/svg+xml;charset=UTF-8', "#{$src}") !default; + $replace-src: replace("#{$data-uri}", "#{$escape-color-default}", "#{$escape-color-new}", "g") !default; + + #{$property}: unquote($replace-src); +} +@mixin hook-divider-icon(){} +@mixin hook-divider-icon-line(){} +@mixin hook-divider-icon-line-left(){} +@mixin hook-divider-icon-line-right(){} +@mixin hook-divider-small(){} +@mixin hook-divider-misc(){} +@mixin hook-inverse-divider-icon(){} +@mixin hook-inverse-divider-icon-line(){} +@mixin hook-inverse-divider-small(){} +@mixin hook-inverse-component-divider(){ + + .uk-divider-icon { + @include svg-fill($internal-divider-icon-image, "#000", $inverse-divider-icon-color); + @if(mixin-exists(hook-inverse-divider-icon)) {@include hook-inverse-divider-icon();} + } + + .uk-divider-icon::before, + .uk-divider-icon::after { + border-bottom-color: $inverse-divider-icon-line-border; + @if(mixin-exists(hook-inverse-divider-icon-line)) {@include hook-inverse-divider-icon-line();} + } + + .uk-divider-small::after { + border-top-color: $inverse-divider-small-border; + @if(mixin-exists(hook-inverse-divider-small)) {@include hook-inverse-divider-small();} + } + +} +@mixin hook-dotnav(){} +@mixin hook-dotnav-item(){} +@mixin hook-dotnav-item-hover(){} +@mixin hook-dotnav-item-onclick(){} +@mixin hook-dotnav-item-active(){} +@mixin hook-dotnav-misc(){} +@mixin hook-inverse-dotnav-item(){} +@mixin hook-inverse-dotnav-item-hover(){} +@mixin hook-inverse-dotnav-item-onclick(){} +@mixin hook-inverse-dotnav-item-active(){} +@mixin hook-inverse-component-dotnav(){ + + .uk-dotnav > * > * { + background-color: $inverse-dotnav-item-background; + @if(mixin-exists(hook-inverse-dotnav-item)) {@include hook-inverse-dotnav-item();} + } + + .uk-dotnav > * > :hover, + .uk-dotnav > * > :focus { + background-color: $inverse-dotnav-item-hover-background; + @if(mixin-exists(hook-inverse-dotnav-item-hover)) {@include hook-inverse-dotnav-item-hover();} + } + + .uk-dotnav > * > :active { + background-color: $inverse-dotnav-item-onclick-background; + @if(mixin-exists(hook-inverse-dotnav-item-onclick)) {@include hook-inverse-dotnav-item-onclick();} + } + + .uk-dotnav > .uk-active > * { + background-color: $inverse-dotnav-item-active-background; + @if(mixin-exists(hook-inverse-dotnav-item-active)) {@include hook-inverse-dotnav-item-active();} + } + +} +@mixin hook-drop-misc(){} +@mixin hook-dropdown(){} +@mixin hook-dropdown-nav(){} +@mixin hook-dropdown-nav-item(){} +@mixin hook-dropdown-nav-item-hover(){} +@mixin hook-dropdown-nav-header(){} +@mixin hook-dropdown-nav-divider(){} +@mixin hook-dropdown-misc(){} +@mixin hook-flex-misc(){} +@mixin hook-form-range(){} +@mixin hook-form-range-thumb(){} +@mixin hook-form-range-track(){} +@mixin hook-form-range-track-focus(){} +@mixin hook-form-range-misc(){} +@mixin hook-form(){} +@mixin hook-form-single-line(){} +@mixin hook-form-multi-line(){} +@mixin hook-form-focus(){} +@mixin hook-form-disabled(){} +@mixin hook-form-danger(){} +@mixin hook-form-success(){} +@mixin hook-form-blank(){} +@mixin hook-form-blank-focus(){} +@mixin hook-form-radio(){} +@mixin hook-form-radio-focus(){} +@mixin hook-form-radio-checked(){} +@mixin hook-form-radio-checked-focus(){} +@mixin hook-form-radio-disabled(){} +@mixin hook-form-legend(){} +@mixin hook-form-label(){} +@mixin hook-form-stacked-label(){} +@mixin hook-form-horizontal-label(){} +@mixin hook-form-misc(){} +@mixin hook-inverse-form(){} +@mixin hook-inverse-form-focus(){} +@mixin hook-inverse-form-radio(){} +@mixin hook-inverse-form-radio-focus(){} +@mixin hook-inverse-form-radio-checked(){} +@mixin hook-inverse-form-radio-checked-focus(){} +@mixin hook-inverse-form-label(){} +@mixin hook-inverse-component-form(){ + + .uk-input, + .uk-select, + .uk-textarea { + background-color: $inverse-form-background; + color: $inverse-form-color; + background-clip: padding-box; + @if(mixin-exists(hook-inverse-form)) {@include hook-inverse-form();} + + &:focus { + background-color: $inverse-form-focus-background; + color: $inverse-form-focus-color; + @if(mixin-exists(hook-inverse-form-focus)) {@include hook-inverse-form-focus();} + } + } + + // + // Placeholder + // + + .uk-input:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-input::placeholder { color: $inverse-form-placeholder-color; } + + .uk-textarea:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-textarea::placeholder { color: $inverse-form-placeholder-color; } + + // + // Radio and checkbox + // + + .uk-select:not([multiple]):not([size]) { @include svg-fill($internal-form-select-image, "#000", $inverse-form-select-icon-color); } + + // + // Radio and checkbox + // + + .uk-radio, + .uk-checkbox { + background-color: $inverse-form-radio-background; + @if(mixin-exists(hook-inverse-form-radio)) {@include hook-inverse-form-radio();} + } + + // Focus + .uk-radio:focus, + .uk-checkbox:focus { + @if(mixin-exists(hook-inverse-form-radio-focus)) {@include hook-inverse-form-radio-focus();} + } + + // Checked + .uk-radio:checked, + .uk-checkbox:checked, + .uk-checkbox:indeterminate { + background-color: $inverse-form-radio-checked-background; + @if(mixin-exists(hook-inverse-form-radio-checked)) {@include hook-inverse-form-radio-checked();} + } + + // Focus + .uk-radio:checked:focus, + .uk-checkbox:checked:focus, + .uk-checkbox:indeterminate:focus { + background-color: $inverse-form-radio-checked-focus-background; + @if(mixin-exists(hook-inverse-form-radio-checked-focus)) {@include hook-inverse-form-radio-checked-focus();} + } + + // Icon + .uk-radio:checked { @include svg-fill($internal-form-radio-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:checked { @include svg-fill($internal-form-checkbox-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $inverse-form-radio-checked-icon-color); } + + // Label + .uk-form-label { + @if(mixin-exists(hook-inverse-form-label)) {@include hook-inverse-form-label();} + } + + // Icon + .uk-form-icon { color: $inverse-form-icon-color; } + .uk-form-icon:hover { color: $inverse-form-icon-hover-color; } + +} +@mixin hook-grid-misc(){} +@mixin hook-inverse-component-grid(){ + + .uk-grid-divider > :not(.uk-first-column)::before { border-left-color: $inverse-grid-divider-border; } + .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { border-top-color: $inverse-grid-divider-border; } + +} +@mixin hook-heading-primary(){} +@mixin hook-heading-hero(){} +@mixin hook-heading-divider(){} +@mixin hook-heading-bullet(){} +@mixin hook-heading-line(){} +@mixin hook-heading-misc(){} +@mixin hook-inverse-heading-primary(){} +@mixin hook-inverse-heading-hero(){} +@mixin hook-inverse-heading-divider(){} +@mixin hook-inverse-heading-bullet(){} +@mixin hook-inverse-heading-line(){} +@mixin hook-inverse-component-heading(){ + + .uk-heading-primary { + @if(mixin-exists(hook-inverse-heading-primary)) {@include hook-inverse-heading-primary();} + } + + .uk-heading-hero { + @if(mixin-exists(hook-inverse-heading-hero)) {@include hook-inverse-heading-hero();} + } + + .uk-heading-divider { + border-bottom-color: $inverse-heading-divider-border; + @if(mixin-exists(hook-inverse-heading-divider)) {@include hook-inverse-heading-divider();} + } + + .uk-heading-bullet::before { + border-left-color: $inverse-heading-bullet-border; + @if(mixin-exists(hook-inverse-heading-bullet)) {@include hook-inverse-heading-bullet();} + } + + .uk-heading-line > ::before, + .uk-heading-line > ::after { + border-bottom-color: $inverse-heading-line-border; + @if(mixin-exists(hook-inverse-heading-line)) {@include hook-inverse-heading-line();} + } + +} +@mixin hook-height-misc(){} +@mixin hook-icon-link(){} +@mixin hook-icon-link-hover(){} +@mixin hook-icon-link-active(){} +@mixin hook-icon-button(){} +@mixin hook-icon-button-hover(){} +@mixin hook-icon-button-active(){} +@mixin hook-icon-misc(){} +@mixin hook-inverse-icon-link(){} +@mixin hook-inverse-icon-link-hover(){} +@mixin hook-inverse-icon-link-active(){} +@mixin hook-inverse-icon-button(){} +@mixin hook-inverse-icon-button-hover(){} +@mixin hook-inverse-icon-button-active(){} +@mixin hook-inverse-component-icon(){ + + // + // Link + // + + .uk-icon-link { + color: $inverse-icon-link-color; + @if(mixin-exists(hook-inverse-icon-link)) {@include hook-inverse-icon-link();} + } + + .uk-icon-link:hover, + .uk-icon-link:focus { + color: $inverse-icon-link-hover-color; + @if(mixin-exists(hook-inverse-icon-link-hover)) {@include hook-inverse-icon-link-hover();} + } + + .uk-icon-link:active, + .uk-active > .uk-icon-link { + color: $inverse-icon-link-active-color; + @if(mixin-exists(hook-inverse-icon-link-active)) {@include hook-inverse-icon-link-active();} + } + + // + // Button + // + + .uk-icon-button { + background-color: $inverse-icon-button-background; + color: $inverse-icon-button-color; + @if(mixin-exists(hook-inverse-icon-button)) {@include hook-inverse-icon-button();} + } + + .uk-icon-button:hover, + .uk-icon-button:focus { + background-color: $inverse-icon-button-hover-background; + color: $inverse-icon-button-hover-color; + @if(mixin-exists(hook-inverse-icon-button-hover)) {@include hook-inverse-icon-button-hover();} + } + + .uk-icon-button:active { + background-color: $inverse-icon-button-active-background; + color: $inverse-icon-button-active-color; + @if(mixin-exists(hook-inverse-icon-button-active)) {@include hook-inverse-icon-button-active();} + } + +} +@mixin hook-iconnav(){} +@mixin hook-iconnav-item(){} +@mixin hook-iconnav-item-hover(){} +@mixin hook-iconnav-item-active(){} +@mixin hook-iconnav-misc(){} +@mixin hook-inverse-iconnav-item(){} +@mixin hook-inverse-iconnav-item-hover(){} +@mixin hook-inverse-iconnav-item-active(){} +@mixin hook-inverse-component-iconnav(){ + + .uk-iconnav > * > a { + color: $inverse-iconnav-item-color; + @if(mixin-exists(hook-inverse-iconnav-item)) {@include hook-inverse-iconnav-item();} + } + + .uk-iconnav > * > a:hover, + .uk-iconnav > * > a:focus { + color: $inverse-iconnav-item-hover-color; + @if(mixin-exists(hook-inverse-iconnav-item-hover)) {@include hook-inverse-iconnav-item-hover();} + } + + .uk-iconnav > .uk-active > a { + color: $inverse-iconnav-item-active-color; + @if(mixin-exists(hook-inverse-iconnav-item-active)) {@include hook-inverse-iconnav-item-active();} + } + +} +@mixin hook-inverse-component-link(){ + + a.uk-link-muted, + .uk-link-muted a { + color: $inverse-link-muted-color; + @if(mixin-exists(hook-inverse-link-muted)) {@include hook-inverse-link-muted();} + } + + a.uk-link-muted:hover, + .uk-link-muted a:hover { + color: $inverse-link-muted-hover-color; + @if(mixin-exists(hook-inverse-link-muted-hover)) {@include hook-inverse-link-muted-hover();} + } + + a.uk-link-text:hover, + .uk-link-text a:hover { + color: $inverse-link-text-hover-color; + @if(mixin-exists(hook-inverse-link-text-hover)) {@include hook-inverse-link-text-hover();} + } + + a.uk-link-heading:hover, + .uk-link-heading a:hover { + color: $inverse-link-heading-hover-color; + @if(mixin-exists(hook-inverse-link-heading-hover)) {@include hook-inverse-link-heading-hover();} + } + +} +@mixin hook-inverse-component-list(){ + + .uk-list-divider > li:nth-child(n+2) { + border-top-color: $inverse-list-divider-border; + @if(mixin-exists(hook-inverse-list-divider)) {@include hook-inverse-list-divider();} + } + + .uk-list-striped > li { + @if(mixin-exists(hook-inverse-list-striped)) {@include hook-inverse-list-striped();} + } + + .uk-list-striped > li:nth-of-type(odd) { background-color: $inverse-list-striped-background; } + + .uk-list-bullet > li::before { + @include svg-fill($internal-list-bullet-image, "#000", $inverse-list-bullet-icon-color); + @if(mixin-exists(hook-inverse-list-bullet)) {@include hook-inverse-list-bullet();} + } + +} +@mixin hook-inverse-component-totop(){ + + .uk-totop { + color: $inverse-totop-color; + @if(mixin-exists(hook-inverse-totop)) {@include hook-inverse-totop();} + } + + .uk-totop:hover, + .uk-totop:focus { + color: $inverse-totop-hover-color; + @if(mixin-exists(hook-inverse-totop-hover)) {@include hook-inverse-totop-hover();} + } + + .uk-totop:active { + color: $inverse-totop-active-color; + @if(mixin-exists(hook-inverse-totop-active)) {@include hook-inverse-totop-active();} + } + +} +@mixin hook-inverse-component-label(){ + + .uk-label { + background-color: $inverse-label-background; + color: $inverse-label-color; + @if(mixin-exists(hook-inverse-label)) {@include hook-inverse-label();} + } + +} +@mixin hook-inverse-component-search(){ + + // + // Input + // + + .uk-search-input { color: $inverse-search-color; } + + .uk-search-input:-ms-input-placeholder { color: $inverse-search-placeholder-color !important; } + .uk-search-input::placeholder { color: $inverse-search-placeholder-color; } + + + // + // Icon + // + + .uk-search .uk-search-icon { color: $inverse-search-icon-color; } + .uk-search .uk-search-icon:hover { color: $inverse-search-icon-color; } + + // + // Style modifier + // + + .uk-search-default .uk-search-input { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input)) {@include hook-inverse-search-default-input();} + } + .uk-search-default .uk-search-input:focus { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input-focus)) {@include hook-inverse-search-default-input-focus();} + } + + .uk-search-navbar .uk-search-input { + background-color: $inverse-search-navbar-background; + @if(mixin-exists(hook-inverse-search-navbar-input)) {@include hook-inverse-search-navbar-input();} + } + + .uk-search-large .uk-search-input { + background-color: $inverse-search-large-background; + @if(mixin-exists(hook-inverse-search-large-input)) {@include hook-inverse-search-large-input();} + } + + // + // Toggle + // + + .uk-search-toggle { + color: $inverse-search-toggle-color; + @if(mixin-exists(hook-inverse-search-toggle)) {@include hook-inverse-search-toggle();} + } + + .uk-search-toggle:hover, + .uk-search-toggle:focus { + color: $inverse-search-toggle-hover-color; + @if(mixin-exists(hook-inverse-search-toggle-hover)) {@include hook-inverse-search-toggle-hover();} + } + +} +@mixin hook-inverse-component-nav(){ + + // + // Parent icon modifier + // + + .uk-nav-parent-icon > .uk-parent > a::after { + @include svg-fill($internal-nav-parent-close-image, "#000", $inverse-nav-parent-icon-color); + @if(mixin-exists(hook-inverse-nav-parent-icon)) {@include hook-inverse-nav-parent-icon();} + } + + .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $inverse-nav-parent-icon-color); } + + // + // Default + // + + .uk-nav-default > li > a { + color: $inverse-nav-default-item-color; + @if(mixin-exists(hook-inverse-nav-default-item)) {@include hook-inverse-nav-default-item();} + } + + .uk-nav-default > li > a:hover, + .uk-nav-default > li > a:focus { + color: $inverse-nav-default-item-hover-color; + @if(mixin-exists(hook-inverse-nav-default-item-hover)) {@include hook-inverse-nav-default-item-hover();} + } + + .uk-nav-default > li.uk-active > a { + color: $inverse-nav-default-item-active-color; + @if(mixin-exists(hook-inverse-nav-default-item-active)) {@include hook-inverse-nav-default-item-active();} + } + + .uk-nav-default .uk-nav-header { + color: $inverse-nav-default-header-color; + @if(mixin-exists(hook-inverse-nav-default-header)) {@include hook-inverse-nav-default-header();} + } + + .uk-nav-default .uk-nav-divider { + border-top-color: $inverse-nav-default-divider-border; + @if(mixin-exists(hook-inverse-nav-default-divider)) {@include hook-inverse-nav-default-divider();} + } + + .uk-nav-default .uk-nav-sub a { color: $inverse-nav-default-sublist-item-color; } + + .uk-nav-default .uk-nav-sub a:hover, + .uk-nav-default .uk-nav-sub a:focus { color: $inverse-nav-default-sublist-item-hover-color; } + + // + // Primary + // + + .uk-nav-primary > li > a { + color: $inverse-nav-primary-item-color; + @if(mixin-exists(hook-inverse-nav-primary-item)) {@include hook-inverse-nav-primary-item();} + } + + .uk-nav-primary > li > a:hover, + .uk-nav-primary > li > a:focus { + color: $inverse-nav-primary-item-hover-color; + @if(mixin-exists(hook-inverse-nav-primary-item-hover)) {@include hook-inverse-nav-primary-item-hover();} + } + + .uk-nav-primary > li.uk-active > a { + color: $inverse-nav-primary-item-active-color; + @if(mixin-exists(hook-inverse-nav-primary-item-active)) {@include hook-inverse-nav-primary-item-active();} + } + + .uk-nav-primary .uk-nav-header { + color: $inverse-nav-primary-header-color; + @if(mixin-exists(hook-inverse-nav-primary-header)) {@include hook-inverse-nav-primary-header();} + } + + .uk-nav-primary .uk-nav-divider { + border-top-color: $inverse-nav-primary-divider-border; + @if(mixin-exists(hook-inverse-nav-primary-divider)) {@include hook-inverse-nav-primary-divider();} + } + + .uk-nav-primary .uk-nav-sub a { color: $inverse-nav-primary-sublist-item-color; } + + .uk-nav-primary .uk-nav-sub a:hover, + .uk-nav-primary .uk-nav-sub a:focus { color: $inverse-nav-primary-sublist-item-hover-color; } + +} +@mixin hook-inverse-component-navbar(){ + + .uk-navbar-nav > li > a { + color: $inverse-navbar-nav-item-color; + @if(mixin-exists(hook-inverse-navbar-nav-item)) {@include hook-inverse-navbar-nav-item();} + } + + .uk-navbar-nav > li:hover > a, + .uk-navbar-nav > li > a:focus, + .uk-navbar-nav > li > a.uk-open { + color: $inverse-navbar-nav-item-hover-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-hover)) {@include hook-inverse-navbar-nav-item-hover();} + } + + .uk-navbar-nav > li > a:active { + color: $inverse-navbar-nav-item-onclick-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-onclick)) {@include hook-inverse-navbar-nav-item-onclick();} + } + + .uk-navbar-nav > li.uk-active > a { + color: $inverse-navbar-nav-item-active-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-active)) {@include hook-inverse-navbar-nav-item-active();} + } + + .uk-navbar-item { + color: $inverse-navbar-item-color; + @if(mixin-exists(hook-inverse-navbar-item)) {@include hook-inverse-navbar-item();} + } + + .uk-navbar-toggle { + color: $inverse-navbar-toggle-color; + @if(mixin-exists(hook-inverse-navbar-toggle)) {@include hook-inverse-navbar-toggle();} + } + + .uk-navbar-toggle:hover, + .uk-navbar-toggle:focus, + .uk-navbar-toggle.uk-open { + color: $inverse-navbar-toggle-hover-color; + @if(mixin-exists(hook-inverse-navbar-toggle-hover)) {@include hook-inverse-navbar-toggle-hover();} + } + +} +@mixin hook-inverse-component-subnav(){ + + .uk-subnav > * > :first-child { + color: $inverse-subnav-item-color; + @if(mixin-exists(hook-inverse-subnav-item)) {@include hook-inverse-subnav-item();} + } + + .uk-subnav > * > a:hover, + .uk-subnav > * > a:focus { + color: $inverse-subnav-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-item-hover)) {@include hook-inverse-subnav-item-hover();} + } + + .uk-subnav > .uk-active > a { + color: $inverse-subnav-item-active-color; + @if(mixin-exists(hook-inverse-subnav-item-active)) {@include hook-inverse-subnav-item-active();} + } + + // + // Divider + // + + .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { + border-left-color: $inverse-subnav-divider-border; + @if(mixin-exists(hook-inverse-subnav-divider)) {@include hook-inverse-subnav-divider();} + } + + // + // Pill + // + + .uk-subnav-pill > * > :first-child { + background-color: $inverse-subnav-pill-item-background; + color: $inverse-subnav-pill-item-color; + @if(mixin-exists(hook-inverse-subnav-pill-item)) {@include hook-inverse-subnav-pill-item();} + } + + .uk-subnav-pill > * > a:hover, + .uk-subnav-pill > * > a:focus { + background-color: $inverse-subnav-pill-item-hover-background; + color: $inverse-subnav-pill-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-hover)) {@include hook-inverse-subnav-pill-item-hover();} + } + + .uk-subnav-pill > * > a:active { + background-color: $inverse-subnav-pill-item-onclick-background; + color: $inverse-subnav-pill-item-onclick-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-onclick)) {@include hook-inverse-subnav-pill-item-onclick();} + } + + .uk-subnav-pill > .uk-active > a { + background-color: $inverse-subnav-pill-item-active-background; + color: $inverse-subnav-pill-item-active-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-active)) {@include hook-inverse-subnav-pill-item-active();} + } + + // + // Disabled + // + + .uk-subnav > .uk-disabled > a { + color: $inverse-subnav-item-disabled-color; + @if(mixin-exists(hook-inverse-subnav-item-disabled)) {@include hook-inverse-subnav-item-disabled();} + } + +} +@mixin hook-inverse-component-pagination(){ + + .uk-pagination > * > * { + color: $inverse-pagination-item-color; + @if(mixin-exists(hook-inverse-pagination-item)) {@include hook-inverse-pagination-item();} + } + + .uk-pagination > * > :hover, + .uk-pagination > * > :focus { + color: $inverse-pagination-item-hover-color; + @if(mixin-exists(hook-inverse-pagination-item-hover)) {@include hook-inverse-pagination-item-hover();} + } + + .uk-pagination > .uk-active > * { + color: $inverse-pagination-item-active-color; + @if(mixin-exists(hook-inverse-pagination-item-active)) {@include hook-inverse-pagination-item-active();} + } + + .uk-pagination > .uk-disabled > * { + color: $inverse-pagination-item-disabled-color; + @if(mixin-exists(hook-inverse-pagination-item-disabled)) {@include hook-inverse-pagination-item-disabled();} + } + +} +@mixin hook-inverse-component-tab(){ + + .uk-tab { + @if(mixin-exists(hook-inverse-tab)) {@include hook-inverse-tab();} + } + + .uk-tab > * > a { + color: $inverse-tab-item-color; + @if(mixin-exists(hook-inverse-tab-item)) {@include hook-inverse-tab-item();} + } + + .uk-tab > * > a:hover, + .uk-tab > * > a:focus{ + color: $inverse-tab-item-hover-color; + @if(mixin-exists(hook-inverse-tab-item-hover)) {@include hook-inverse-tab-item-hover();} + } + + .uk-tab > .uk-active > a { + color: $inverse-tab-item-active-color; + @if(mixin-exists(hook-inverse-tab-item-active)) {@include hook-inverse-tab-item-active();} + } + + .uk-tab > .uk-disabled > a { + color: $inverse-tab-item-disabled-color; + @if(mixin-exists(hook-inverse-tab-item-disabled)) {@include hook-inverse-tab-item-disabled();} + } + +} +@mixin hook-inverse-component-slidenav(){ + + .uk-slidenav { + color: $inverse-slidenav-color; + @if(mixin-exists(hook-inverse-slidenav)) {@include hook-inverse-slidenav();} + } + + .uk-slidenav:hover, + .uk-slidenav:focus { + color: $inverse-slidenav-hover-color; + @if(mixin-exists(hook-inverse-slidenav-hover)) {@include hook-inverse-slidenav-hover();} + } + + .uk-slidenav:active { + color: $inverse-slidenav-active-color; + @if(mixin-exists(hook-inverse-slidenav-active)) {@include hook-inverse-slidenav-active();} + } + +} +@mixin hook-inverse-component-text(){ + + .uk-text-lead { + color: $inverse-text-lead-color; + @if(mixin-exists(hook-inverse-text-lead)) {@include hook-inverse-text-lead();} + } + + .uk-text-meta { + color: $inverse-text-meta-color; + @if(mixin-exists(hook-inverse-text-meta)) {@include hook-inverse-text-meta();} + } + + .uk-text-muted { color: $inverse-text-muted-color !important; } + .uk-text-primary { color: $inverse-text-primary-color !important; } + +} +@mixin hook-inverse-component-utility(){ + + .uk-dropcap::first-letter, + .uk-dropcap p:first-of-type::first-letter { + @if(mixin-exists(hook-inverse-dropcap)) {@include hook-inverse-dropcap();} + } + + .uk-logo { + color: $inverse-logo-color; + @if(mixin-exists(hook-inverse-logo)) {@include hook-inverse-logo();} + } + + .uk-logo:hover, + .uk-logo:focus { + color: $inverse-logo-hover-color; + @if(mixin-exists(hook-inverse-logo-hover)) {@include hook-inverse-logo-hover();} + } + + .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) { display: none; } + .uk-logo-inverse { display: inline; } + +} +@mixin hook-inverse(){ + @include hook-inverse-component-base(); + @include hook-inverse-component-link(); + @include hook-inverse-component-heading(); + @include hook-inverse-component-divider(); + @include hook-inverse-component-list(); + @include hook-inverse-component-icon(); + @include hook-inverse-component-form(); + @include hook-inverse-component-button(); + @include hook-inverse-component-grid(); + @include hook-inverse-component-close(); + @include hook-inverse-component-totop(); + @include hook-inverse-component-badge(); + @include hook-inverse-component-label(); + @include hook-inverse-component-article(); + @include hook-inverse-component-search(); + @include hook-inverse-component-nav(); + @include hook-inverse-component-navbar(); + @include hook-inverse-component-subnav(); + @include hook-inverse-component-breadcrumb(); + @include hook-inverse-component-pagination(); + @include hook-inverse-component-tab(); + @include hook-inverse-component-slidenav(); + @include hook-inverse-component-dotnav(); + @include hook-inverse-component-accordion(); + @include hook-inverse-component-iconnav(); + @include hook-inverse-component-text(); + @include hook-inverse-component-column(); + @include hook-inverse-component-utility(); +} +@mixin hook-label(){} +@mixin hook-label-success(){} +@mixin hook-label-warning(){} +@mixin hook-label-danger(){} +@mixin hook-label-misc(){} +@mixin hook-inverse-label(){} +@mixin hook-leader(){} +@mixin hook-leader-misc(){} +@mixin hook-inverse-leader(){} +@mixin hook-inverse-component-leader(){ + + .uk-leader-fill { + @if(mixin-exists(hook-inverse-leader)) {@include hook-inverse-leader();} + } + +} +@mixin hook-lightbox(){} +@mixin hook-lightbox-item(){} +@mixin hook-lightbox-toolbar(){} +@mixin hook-lightbox-toolbar-icon(){} +@mixin hook-lightbox-toolbar-icon-hover(){} +@mixin hook-lightbox-button(){} +@mixin hook-lightbox-button-hover(){} +@mixin hook-lightbox-misc(){} +@mixin hook-link-muted(){} +@mixin hook-link-muted-hover(){} +@mixin hook-link-text(){} +@mixin hook-link-text-hover(){} +@mixin hook-link-heading(){} +@mixin hook-link-heading-hover(){} +@mixin hook-link-reset(){} +@mixin hook-link-misc(){} +@mixin hook-inverse-link-muted(){} +@mixin hook-inverse-link-muted-hover(){} +@mixin hook-inverse-link-text-hover(){} +@mixin hook-inverse-link-heading-hover(){} +@mixin hook-list-divider(){} +@mixin hook-list-striped(){} +@mixin hook-list-bullet(){} +@mixin hook-list-misc(){} +@mixin hook-inverse-list-divider(){} +@mixin hook-inverse-list-striped(){} +@mixin hook-inverse-list-bullet(){} +@mixin hook-margin-misc(){} +@mixin hook-marker(){} +@mixin hook-marker-hover(){} +@mixin hook-marker-misc(){} +@mixin hook-inverse-marker(){} +@mixin hook-inverse-marker-hover(){} +@mixin hook-inverse-component-marker(){ + + .uk-marker { + background: $inverse-marker-background; + color: $inverse-marker-color; + @if(mixin-exists(hook-inverse-marker)) {@include hook-inverse-marker();} + } + + .uk-marker:hover, + .uk-marker:focus { + color: $inverse-marker-hover-color; + @if(mixin-exists(hook-inverse-marker-hover)) {@include hook-inverse-marker-hover();} + } + +} +@mixin hook-modal(){} +@mixin hook-modal-dialog(){} +@mixin hook-modal-full(){} +@mixin hook-modal-body(){} +@mixin hook-modal-header(){} +@mixin hook-modal-footer(){} +@mixin hook-modal-title(){} +@mixin hook-modal-close(){} +@mixin hook-modal-close-hover(){} +@mixin hook-modal-close-default(){} +@mixin hook-modal-close-default-hover(){} +@mixin hook-modal-close-outside(){} +@mixin hook-modal-close-outside-hover(){} +@mixin hook-modal-close-full(){} +@mixin hook-modal-close-full-hover(){} +@mixin hook-modal-misc(){} +@mixin hook-nav-sub(){} +@mixin hook-nav-parent-icon(){} +@mixin hook-nav-header(){} +@mixin hook-nav-divider(){} +@mixin hook-nav-default(){} +@mixin hook-nav-default-item(){} +@mixin hook-nav-default-item-hover(){} +@mixin hook-nav-default-item-active(){} +@mixin hook-nav-default-header(){} +@mixin hook-nav-default-divider(){} +@mixin hook-nav-primary(){} +@mixin hook-nav-primary-item(){} +@mixin hook-nav-primary-item-hover(){} +@mixin hook-nav-primary-item-active(){} +@mixin hook-nav-primary-header(){} +@mixin hook-nav-primary-divider(){} +@mixin hook-nav-misc(){} +@mixin hook-inverse-nav-parent-icon(){} +@mixin hook-inverse-nav-default-item(){} +@mixin hook-inverse-nav-default-item-hover(){} +@mixin hook-inverse-nav-default-item-active(){} +@mixin hook-inverse-nav-default-header(){} +@mixin hook-inverse-nav-default-divider(){} +@mixin hook-inverse-nav-primary-item(){} +@mixin hook-inverse-nav-primary-item-hover(){} +@mixin hook-inverse-nav-primary-item-active(){} +@mixin hook-inverse-nav-primary-header(){} +@mixin hook-inverse-nav-primary-divider(){} +@mixin hook-navbar(){} +@mixin hook-navbar-container(){} +@mixin hook-navbar-nav-item(){} +@mixin hook-navbar-nav-item-hover(){} +@mixin hook-navbar-nav-item-onclick(){} +@mixin hook-navbar-nav-item-active(){} +@mixin hook-navbar-item(){} +@mixin hook-navbar-toggle(){} +@mixin hook-navbar-toggle-hover(){} +@mixin hook-navbar-toggle-icon(){} +@mixin hook-navbar-toggle-icon-hover(){} +@mixin hook-navbar-subtitle(){} +@mixin hook-navbar-transparent(){} +@mixin hook-navbar-sticky(){} +@mixin hook-navbar-dropdown(){} +@mixin hook-navbar-dropdown-dropbar(){} +@mixin hook-navbar-dropdown-nav(){} +@mixin hook-navbar-dropdown-nav-item(){} +@mixin hook-navbar-dropdown-nav-item-hover(){} +@mixin hook-navbar-dropdown-nav-item-active(){} +@mixin hook-navbar-dropdown-nav-header(){} +@mixin hook-navbar-dropdown-nav-divider(){} +@mixin hook-navbar-dropbar(){} +@mixin hook-navbar-dropbar-slide(){} +@mixin hook-navbar-misc(){} +@mixin hook-inverse-navbar-nav-item(){} +@mixin hook-inverse-navbar-nav-item-hover(){} +@mixin hook-inverse-navbar-nav-item-onclick(){} +@mixin hook-inverse-navbar-nav-item-active(){} +@mixin hook-inverse-navbar-item(){} +@mixin hook-inverse-navbar-toggle(){} +@mixin hook-inverse-navbar-toggle-hover(){} +@mixin hook-notification(){} +@mixin hook-notification-message(){} +@mixin hook-notification-close(){} +@mixin hook-notification-message-primary(){} +@mixin hook-notification-message-success(){} +@mixin hook-notification-message-warning(){} +@mixin hook-notification-message-danger(){} +@mixin hook-notification-misc(){} +@mixin hook-offcanvas-bar(){} +@mixin hook-offcanvas-close(){} +@mixin hook-offcanvas-overlay(){} +@mixin hook-offcanvas-misc(){} +@mixin hook-overlay(){} +@mixin hook-overlay-icon(){} +@mixin hook-overlay-default(){} +@mixin hook-overlay-primary(){} +@mixin hook-overlay-misc(){} +@mixin hook-padding-misc(){} +@mixin hook-pagination(){} +@mixin hook-pagination-item(){} +@mixin hook-pagination-item-hover(){} +@mixin hook-pagination-item-active(){} +@mixin hook-pagination-item-disabled(){} +@mixin hook-pagination-misc(){} +@mixin hook-inverse-pagination-item(){} +@mixin hook-inverse-pagination-item-hover(){} +@mixin hook-inverse-pagination-item-active(){} +@mixin hook-inverse-pagination-item-disabled(){} +@mixin hook-placeholder(){} +@mixin hook-placeholder-misc(){} +@mixin hook-position-misc(){} +@mixin hook-print(){} +@mixin hook-progress(){} +@mixin hook-progress-bar(){} +@mixin hook-progress-misc(){} +@mixin hook-search-input(){} +@mixin hook-search-default-input(){} +@mixin hook-search-default-input-focus(){} +@mixin hook-search-navbar-input(){} +@mixin hook-search-large-input(){} +@mixin hook-search-toggle(){} +@mixin hook-search-toggle-hover(){} +@mixin hook-search-misc(){} +@mixin hook-inverse-search-default-input(){} +@mixin hook-inverse-search-default-input-focus(){} +@mixin hook-inverse-search-navbar-input(){} +@mixin hook-inverse-search-large-input(){} +@mixin hook-inverse-search-toggle(){} +@mixin hook-inverse-search-toggle-hover(){} +@mixin hook-section(){} +@mixin hook-section-default(){} +@mixin hook-section-muted(){} +@mixin hook-section-primary(){} +@mixin hook-section-secondary(){} +@mixin hook-section-overlap(){} +@mixin hook-section-misc(){} +@mixin hook-slidenav(){} +@mixin hook-slidenav-hover(){} +@mixin hook-slidenav-active(){} +@mixin hook-slidenav-previous(){} +@mixin hook-slidenav-next(){} +@mixin hook-slidenav-large(){} +@mixin hook-slidenav-container(){} +@mixin hook-slidenav-misc(){} +@mixin hook-inverse-slidenav(){} +@mixin hook-inverse-slidenav-hover(){} +@mixin hook-inverse-slidenav-active(){} +@mixin hook-slider(){} +@mixin hook-slider-misc(){} +@mixin hook-slideshow(){} +@mixin hook-slideshow-misc(){} +@mixin hook-sortable(){} +@mixin hook-sortable-drag(){} +@mixin hook-sortable-placeholder(){} +@mixin hook-sortable-empty(){} +@mixin hook-sortable-misc(){} +@mixin hook-spinner(){} +@mixin hook-spinner-misc(){} +@mixin hook-sticky-misc(){} +@mixin hook-subnav(){} +@mixin hook-subnav-item(){} +@mixin hook-subnav-item-hover(){} +@mixin hook-subnav-item-active(){} +@mixin hook-subnav-divider(){} +@mixin hook-subnav-pill-item(){} +@mixin hook-subnav-pill-item-hover(){} +@mixin hook-subnav-pill-item-onclick(){} +@mixin hook-subnav-pill-item-active(){} +@mixin hook-subnav-item-disabled(){} +@mixin hook-subnav-misc(){} +@mixin hook-inverse-subnav-item(){} +@mixin hook-inverse-subnav-item-hover(){} +@mixin hook-inverse-subnav-item-active(){} +@mixin hook-inverse-subnav-divider(){} +@mixin hook-inverse-subnav-pill-item(){} +@mixin hook-inverse-subnav-pill-item-hover(){} +@mixin hook-inverse-subnav-pill-item-onclick(){} +@mixin hook-inverse-subnav-pill-item-active(){} +@mixin hook-inverse-subnav-item-disabled(){} +@mixin hook-svg-misc(){} +@mixin hook-switcher-misc(){} +@mixin hook-tab(){} +@mixin hook-tab-item(){} +@mixin hook-tab-item-hover(){} +@mixin hook-tab-item-active(){} +@mixin hook-tab-item-disabled(){} +@mixin hook-tab-bottom(){} +@mixin hook-tab-bottom-item(){} +@mixin hook-tab-left(){} +@mixin hook-tab-right(){} +@mixin hook-tab-left-item(){} +@mixin hook-tab-right-item(){} +@mixin hook-tab-misc(){} +@mixin hook-inverse-tab(){} +@mixin hook-inverse-tab-item(){} +@mixin hook-inverse-tab-item-hover(){} +@mixin hook-inverse-tab-item-active(){} +@mixin hook-inverse-tab-item-disabled(){} +@mixin hook-table(){} +@mixin hook-table-header-cell(){} +@mixin hook-table-cell(){} +@mixin hook-table-footer(){} +@mixin hook-table-caption(){} +@mixin hook-table-row-active(){} +@mixin hook-table-divider(){} +@mixin hook-table-striped(){} +@mixin hook-table-hover(){} +@mixin hook-table-small(){} +@mixin hook-table-large(){} +@mixin hook-table-misc(){} +@mixin hook-inverse-table-header-cell(){} +@mixin hook-inverse-table-caption(){} +@mixin hook-inverse-table-row-active(){} +@mixin hook-inverse-table-divider(){} +@mixin hook-inverse-table-striped(){} +@mixin hook-inverse-table-hover(){} +@mixin hook-inverse-component-table(){ + + .uk-table th { + color: $inverse-table-header-cell-color; + @if(mixin-exists(hook-inverse-table-header-cell)) {@include hook-inverse-table-header-cell();} + } + + .uk-table caption { + color: $inverse-table-caption-color; + @if(mixin-exists(hook-inverse-table-caption)) {@include hook-inverse-table-caption();} + } + + .uk-table > tr.uk-active, + .uk-table tbody tr.uk-active { + background: $inverse-table-row-active-background; + @if(mixin-exists(hook-inverse-table-row-active)) {@include hook-inverse-table-row-active();} + } + + .uk-table-divider > tr:not(:first-child), + .uk-table-divider > :not(:first-child) > tr, + .uk-table-divider > :first-child > tr:not(:first-child) { + border-top-color: $inverse-table-divider-border; + @if(mixin-exists(hook-inverse-table-divider)) {@include hook-inverse-table-divider();} + } + + .uk-table-striped > tr:nth-of-type(odd), + .uk-table-striped tbody tr:nth-of-type(odd) { + background: $inverse-table-striped-row-background; + @if(mixin-exists(hook-inverse-table-striped)) {@include hook-inverse-table-striped();} + } + + .uk-table-hover > tr:hover, + .uk-table-hover tbody tr:hover { + background: $inverse-table-hover-row-background; + @if(mixin-exists(hook-inverse-table-hover)) {@include hook-inverse-table-hover();} + } + +} +@mixin hook-text-lead(){} +@mixin hook-text-meta(){} +@mixin hook-text-small(){} +@mixin hook-text-large(){} +@mixin hook-text-background(){} +@mixin hook-text-misc(){} +@mixin hook-inverse-text-lead(){} +@mixin hook-inverse-text-meta(){} +@mixin hook-thumbnav(){} +@mixin hook-thumbnav-item(){} +@mixin hook-thumbnav-item-hover(){} +@mixin hook-thumbnav-item-active(){} +@mixin hook-thumbnav-misc(){} +@mixin hook-inverse-thumbnav-item(){} +@mixin hook-inverse-thumbnav-item-hover(){} +@mixin hook-inverse-thumbnav-item-active(){} +@mixin hook-inverse-component-thumbnav(){ + + .uk-thumbnav > * > * { + @if(mixin-exists(hook-inverse-thumbnav-item)) {@include hook-inverse-thumbnav-item();} + } + + .uk-thumbnav > * > :hover, + .uk-thumbnav > * > :focus { + @if(mixin-exists(hook-inverse-thumbnav-item-hover)) {@include hook-inverse-thumbnav-item-hover();} + } + + .uk-thumbnav > .uk-active > * { + @if(mixin-exists(hook-inverse-thumbnav-item-active)) {@include hook-inverse-thumbnav-item-active();} + } + +} +@mixin hook-tile(){} +@mixin hook-tile-default(){} +@mixin hook-tile-muted(){} +@mixin hook-tile-primary(){} +@mixin hook-tile-secondary(){} +@mixin hook-tile-misc(){} +@mixin hook-tooltip(){} +@mixin hook-tooltip-misc(){} +@mixin hook-totop(){} +@mixin hook-totop-hover(){} +@mixin hook-totop-active(){} +@mixin hook-totop-misc(){} +@mixin hook-inverse-totop(){} +@mixin hook-inverse-totop-hover(){} +@mixin hook-inverse-totop-active(){} +@mixin hook-transition-misc(){} +@mixin hook-panel-scrollable(){} +@mixin hook-box-shadow-bottom(){} +@mixin hook-dropcap(){} +@mixin hook-logo(){} +@mixin hook-logo-hover(){} +@mixin hook-utility-misc(){} +@mixin hook-inverse-dropcap(){} +@mixin hook-inverse-logo(){} +@mixin hook-inverse-logo-hover(){} +@mixin hook-visibility-misc(){} +@mixin hook-width-misc(){} \ No newline at end of file diff --git a/scss/uikit/_uikit-theme.scss b/scss/uikit/_uikit-theme.scss new file mode 100644 index 00000000..13dbd022 --- /dev/null +++ b/scss/uikit/_uikit-theme.scss @@ -0,0 +1,9 @@ +// +// Theme +// + +@import "theme/_import.scss"; + +@import "components/_import.scss"; + + diff --git a/scss/uikit/_uikit.scss b/scss/uikit/_uikit.scss new file mode 100644 index 00000000..610d9a64 --- /dev/null +++ b/scss/uikit/_uikit.scss @@ -0,0 +1,5 @@ +// +// Core +// + +@import "components/_import.scss"; diff --git a/scss/uikit/_variables-theme.scss b/scss/uikit/_variables-theme.scss new file mode 100644 index 00000000..0eae0851 --- /dev/null +++ b/scss/uikit/_variables-theme.scss @@ -0,0 +1,1109 @@ +$global-margin: 20px !default; +$accordion-item-margin-top: $global-margin !default; +$global-medium-font-size: 1.25rem !default; +$accordion-title-font-size: $global-medium-font-size !default; +$accordion-title-line-height: 1.4 !default; +$global-emphasis-color: #333 !default; +$accordion-title-color: $global-emphasis-color !default; +$global-color: #666 !default; +$accordion-title-hover-color: $global-color !default; +$accordion-content-margin-top: $global-margin !default; +$global-inverse-color: #fff !default; +$inverse-global-emphasis-color: $global-inverse-color !default; +$inverse-accordion-title-color: $inverse-global-emphasis-color !default; +$inverse-global-inverse-color: $global-color !default; +$inverse-accordion-title-hover-color: $inverse-global-inverse-color !default; +$alert-margin-vertical: $global-margin !default; +$global-small-gutter: 15px !default; +$alert-padding: $global-small-gutter !default; +$alert-padding-right: $alert-padding + 14px !default; +$global-muted-background: #f8f8f8 !default; +$alert-background: $global-muted-background !default; +$alert-color: $global-color !default; +$alert-close-top: $alert-padding + 5px !default; +$alert-close-right: $alert-padding !default; +$global-primary-background: #1e87f0 !default; +$alert-primary-background: lighten(mix(white, $global-primary-background, 40%), 20%) !default; +$alert-primary-color: $global-primary-background !default; +$global-success-background: #32d296 !default; +$alert-success-background: lighten(mix(white, $global-success-background, 40%), 25%) !default; +$alert-success-color: $global-success-background !default; +$global-warning-background: #faa05a !default; +$alert-warning-background: lighten(mix(white, $global-warning-background, 45%), 15%) !default; +$alert-warning-color: $global-warning-background !default; +$global-danger-background: #f0506e !default; +$alert-danger-background: lighten(mix(white, $global-danger-background, 40%), 20%) !default; +$alert-danger-color: $global-danger-background !default; +$global-gutter: 30px !default; +$align-margin-horizontal: $global-gutter !default; +$align-margin-vertical: $global-gutter !default; +$global-medium-gutter: 40px !default; +$align-margin-horizontal-l: $global-medium-gutter !default; +$animation-duration: 0.5s !default; +$animation-fade-duration: 0.8s !default; +$animation-kenburns-duration: 15s !default; +$animation-fast-duration: 0.1s !default; +$animation-slide-small-translate: 10px !default; +$animation-slide-medium-translate: 50px !default; +$global-large-margin: 70px !default; +$article-margin-top: $global-large-margin !default; +$global-xxlarge-font-size: 2.625rem !default; +$article-title-font-size-m: $global-xxlarge-font-size !default; +$article-title-font-size: $article-title-font-size-m * 0.85 !default; +$article-title-line-height: 1.2 !default; +$global-small-font-size: 0.875rem !default; +$article-meta-font-size: $global-small-font-size !default; +$article-meta-line-height: 1.4 !default; +$global-muted-color: #999 !default; +$article-meta-color: $global-muted-color !default; +$inverse-global-muted-color: rgba($global-inverse-color, 0.5) !default; +$inverse-article-meta-color: $inverse-global-muted-color !default; +$global-background: #fff !default; +$background-default-background: $global-background !default; +$background-muted-background: $global-muted-background !default; +$background-primary-background: $global-primary-background !default; +$global-secondary-background: #222 !default; +$background-secondary-background: $global-secondary-background !default; +$badge-size: 22px !default; +$badge-padding-vertical: 0 !default; +$badge-padding-horizontal: 5px !default; +$badge-border-radius: 500px !default; +$badge-background: $global-primary-background !default; +$badge-color: $global-inverse-color !default; +$badge-font-size: $global-small-font-size !default; +$badge-hover-color: $global-inverse-color !default; +$inverse-global-primary-background: $global-inverse-color !default; +$inverse-badge-background: $inverse-global-primary-background !default; +$inverse-badge-color: $inverse-global-inverse-color !default; +$inverse-badge-hover-color: $inverse-global-inverse-color !default; +$base-body-background: $global-background !default; +$global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$base-body-font-family: $global-font-family !default; +$base-body-font-weight: normal !default; +$global-font-size: 16px !default; +$base-body-font-size: $global-font-size !default; +$global-line-height: 1.5 !default; +$base-body-line-height: $global-line-height !default; +$base-body-color: $global-color !default; +$global-link-color: #1e87f0 !default; +$base-link-color: $global-link-color !default; +$base-link-text-decoration: none !default; +$global-link-hover-color: #0f6ecd !default; +$base-link-hover-color: $global-link-hover-color !default; +$base-link-hover-text-decoration: underline !default; +$base-strong-font-weight: bolder !default; +$base-code-font-size: $global-small-font-size !default; +$base-code-font-family: Consolas, monaco, monospace !default; +$base-code-color: $global-danger-background !default; +$base-em-color: $global-danger-background !default; +$base-ins-background: #ffd !default; +$base-ins-color: $global-color !default; +$base-mark-background: #ffd !default; +$base-mark-color: $global-color !default; +$base-quote-font-style: italic !default; +$base-small-font-size: 80% !default; +$base-margin-vertical: $global-margin !default; +$base-heading-font-family: $global-font-family !default; +$base-heading-font-weight: normal !default; +$base-heading-color: $global-emphasis-color !default; +$base-heading-text-transform: none !default; +$global-medium-margin: 40px !default; +$base-heading-margin-top: $global-medium-margin !default; +$base-h1-font-size-m: $global-xxlarge-font-size !default; +$base-h1-font-size: $base-h1-font-size-m * 0.85 !default; +$base-h1-line-height: 1.2 !default; +$global-xlarge-font-size: 2rem !default; +$base-h2-font-size-m: $global-xlarge-font-size !default; +$base-h2-font-size: $base-h2-font-size-m * 0.85 !default; +$base-h2-line-height: 1.3 !default; +$global-large-font-size: 1.5rem !default; +$base-h3-font-size: $global-large-font-size !default; +$base-h3-line-height: 1.4 !default; +$base-h4-font-size: $global-medium-font-size !default; +$base-h4-line-height: 1.4 !default; +$base-h5-font-size: $global-font-size !default; +$base-h5-line-height: 1.4 !default; +$base-h6-font-size: $global-small-font-size !default; +$base-h6-line-height: 1.4 !default; +$base-list-padding-left: 30px !default; +$base-hr-margin-vertical: $global-margin !default; +$global-border-width: 1px !default; +$base-hr-border-width: $global-border-width !default; +$global-border: #e5e5e5 !default; +$base-hr-border: $global-border !default; +$base-blockquote-font-size: $global-medium-font-size !default; +$base-blockquote-line-height: 1.5 !default; +$base-blockquote-font-style: italic !default; +$base-blockquote-margin-vertical: $global-margin !default; +$global-small-margin: 10px !default; +$base-blockquote-footer-margin-top: $global-small-margin !default; +$base-blockquote-footer-font-size: $global-small-font-size !default; +$base-blockquote-footer-line-height: 1.5 !default; +$base-pre-font-size: $global-small-font-size !default; +$base-pre-line-height: 1.5 !default; +$base-pre-font-family: $base-code-font-family !default; +$base-pre-color: $global-color !default; +$base-selection-background: #39f !default; +$base-selection-color: $global-inverse-color !default; +$inverse-global-color: rgba($global-inverse-color, 0.7) !default; +$inverse-base-color: $inverse-global-color !default; +$inverse-base-link-color: $inverse-global-emphasis-color !default; +$inverse-base-link-hover-color: $inverse-global-emphasis-color !default; +$inverse-base-code-color: $inverse-global-color !default; +$inverse-base-em-color: $inverse-global-emphasis-color !default; +$inverse-base-heading-color: $inverse-global-emphasis-color !default; +$inverse-global-border: rgba($global-inverse-color, 0.2) !default; +$inverse-base-hr-border: $inverse-global-border !default; +$breadcrumb-item-font-size: $global-small-font-size !default; +$breadcrumb-item-color: $global-muted-color !default; +$breadcrumb-item-hover-color: $global-color !default; +$breadcrumb-item-hover-text-decoration: none !default; +$breadcrumb-item-active-color: $global-color !default; +$breadcrumb-divider: "/" !default; +$breadcrumb-divider-margin-horizontal: 20px !default; +$breadcrumb-divider-color: $global-muted-color !default; +$inverse-breadcrumb-item-color: $inverse-global-muted-color !default; +$inverse-breadcrumb-item-hover-color: $inverse-global-color !default; +$inverse-breadcrumb-item-active-color: $inverse-global-color !default; +$inverse-breadcrumb-divider-color: $inverse-global-muted-color !default; +$global-control-height: 40px !default; +$button-border-width: $global-border-width !default; +$button-line-height: $global-control-height - ($button-border-width * 2) !default; +$global-control-small-height: 30px !default; +$button-small-line-height: $global-control-small-height - ($button-border-width * 2) !default; +$global-control-large-height: 55px !default; +$button-large-line-height: $global-control-large-height - ($button-border-width * 2) !default; +$button-font-size: $global-small-font-size !default; +$button-small-font-size: $global-small-font-size !default; +$button-large-font-size: $global-small-font-size !default; +$button-padding-horizontal: $global-gutter !default; +$button-small-padding-horizontal: $global-small-gutter !default; +$button-large-padding-horizontal: $global-medium-gutter !default; +$button-default-background: transparent !default; +$button-default-color: $global-emphasis-color !default; +$button-default-hover-background: transparent !default; +$button-default-hover-color: $global-emphasis-color !default; +$button-default-active-background: transparent !default; +$button-default-active-color: $global-emphasis-color !default; +$button-primary-background: $global-primary-background !default; +$button-primary-color: $global-inverse-color !default; +$button-primary-hover-background: darken($button-primary-background, 5%) !default; +$button-primary-hover-color: $global-inverse-color !default; +$button-primary-active-background: darken($button-primary-background, 10%) !default; +$button-primary-active-color: $global-inverse-color !default; +$button-secondary-background: $global-secondary-background !default; +$button-secondary-color: $global-inverse-color !default; +$button-secondary-hover-background: darken($button-secondary-background, 5%) !default; +$button-secondary-hover-color: $global-inverse-color !default; +$button-secondary-active-background: darken($button-secondary-background, 10%) !default; +$button-secondary-active-color: $global-inverse-color !default; +$button-danger-background: $global-danger-background !default; +$button-danger-color: $global-inverse-color !default; +$button-danger-hover-background: darken($button-danger-background, 5%) !default; +$button-danger-hover-color: $global-inverse-color !default; +$button-danger-active-background: darken($button-danger-background, 10%) !default; +$button-danger-active-color: $global-inverse-color !default; +$button-disabled-background: transparent !default; +$button-disabled-color: $global-muted-color !default; +$button-text-line-height: $global-line-height !default; +$button-text-color: $global-emphasis-color !default; +$button-text-hover-color: $global-emphasis-color !default; +$button-text-disabled-color: $global-muted-color !default; +$button-link-line-height: $global-line-height !default; +$button-link-color: $global-link-color !default; +$button-link-hover-color: $global-link-hover-color !default; +$button-link-hover-text-decoration: underline !default; +$button-link-disabled-color: $global-muted-color !default; +$inverse-button-default-background: transparent !default; +$inverse-button-default-color: $inverse-global-emphasis-color !default; +$inverse-button-default-hover-background: transparent !default; +$inverse-button-default-hover-color: $inverse-global-emphasis-color !default; +$inverse-button-default-active-background: transparent !default; +$inverse-button-default-active-color: $inverse-global-emphasis-color !default; +$inverse-button-primary-background: $inverse-global-primary-background !default; +$inverse-button-primary-color: $inverse-global-inverse-color !default; +$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default; +$inverse-button-primary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default; +$inverse-button-primary-active-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-background: $inverse-global-primary-background !default; +$inverse-button-secondary-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default; +$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default; +$inverse-button-secondary-active-color: $inverse-global-inverse-color !default; +$inverse-button-text-color: $inverse-global-emphasis-color !default; +$inverse-button-text-hover-color: $inverse-global-emphasis-color !default; +$inverse-button-text-disabled-color: $inverse-global-muted-color !default; +$inverse-button-link-color: $inverse-global-muted-color !default; +$inverse-button-link-hover-color: $inverse-global-color !default; +$card-body-padding-horizontal: $global-gutter !default; +$card-body-padding-vertical: $global-gutter !default; +$card-body-padding-horizontal-l: $global-medium-gutter !default; +$card-body-padding-vertical-l: $global-medium-gutter !default; +$card-header-padding-horizontal: $global-gutter !default; +$card-header-padding-vertical: round($global-gutter / 2) !default; +$card-header-padding-horizontal-l: $global-medium-gutter !default; +$card-header-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-footer-padding-horizontal: $global-gutter !default; +$card-footer-padding-vertical: ($global-gutter / 2) !default; +$card-footer-padding-horizontal-l: $global-medium-gutter !default; +$card-footer-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-title-font-size: $global-large-font-size !default; +$card-title-line-height: 1.4 !default; +$card-badge-top: $global-gutter !default; +$card-badge-right: $card-badge-top !default; +$card-hover-background: $global-background !default; +$card-default-background: $global-background !default; +$card-default-color: $global-color !default; +$card-default-title-color: $global-emphasis-color !default; +$card-default-hover-background: $card-default-background !default; +$card-primary-background: $global-primary-background !default; +$card-primary-color: $global-inverse-color !default; +$card-primary-title-color: $card-primary-color !default; +$card-primary-hover-background: $card-primary-background !default; +$card-primary-color-mode: light !default; +$card-secondary-background: $global-secondary-background !default; +$card-secondary-color: $global-inverse-color !default; +$card-secondary-title-color: $card-secondary-color !default; +$card-secondary-hover-background: $card-secondary-background !default; +$card-secondary-color-mode: light !default; +$card-small-body-padding-horizontal: $global-margin !default; +$card-small-body-padding-vertical: $global-margin !default; +$card-small-header-padding-horizontal: $global-margin !default; +$card-small-header-padding-vertical: round($global-margin / 1.5) !default; +$card-small-footer-padding-horizontal: $global-margin !default; +$card-small-footer-padding-vertical: round($global-margin / 1.5) !default; +$global-large-gutter: 70px !default; +$card-large-body-padding-horizontal-l: $global-large-gutter !default; +$card-large-body-padding-vertical-l: $global-large-gutter !default; +$card-large-header-padding-horizontal-l: $global-large-gutter !default; +$card-large-header-padding-vertical-l: round($global-large-gutter / 2) !default; +$card-large-footer-padding-horizontal-l: $global-large-gutter !default; +$card-large-footer-padding-vertical-l: round($global-large-gutter / 2) !default; +$close-color: $global-muted-color !default; +$close-hover-color: $global-color !default; +$inverse-close-color: $inverse-global-muted-color !default; +$inverse-close-hover-color: $inverse-global-color !default; +$column-gutter: $global-gutter !default; +$column-gutter-l: $global-medium-gutter !default; +$column-divider-rule-color: $global-border !default; +$column-divider-rule-width: 1px !default; +$inverse-column-divider-rule-color: $inverse-global-border !default; +$comment-header-margin-bottom: $global-margin !default; +$comment-title-font-size: $global-medium-font-size !default; +$comment-title-line-height: 1.4 !default; +$comment-meta-font-size: $global-small-font-size !default; +$comment-meta-line-height: 1.4 !default; +$comment-meta-color: $global-muted-color !default; +$comment-list-margin-top: $global-large-margin !default; +$comment-list-padding-left: 30px !default; +$comment-list-padding-left-m: 100px !default; +$container-max-width: 1200px !default; +$container-small-max-width: 900px !default; +$container-large-max-width: 1600px !default; +$container-padding-horizontal: 15px !default; +$container-padding-horizontal-s: $global-gutter !default; +$container-padding-horizontal-m: $global-medium-gutter !default; +$countdown-item-line-height: 70px !default; +$countdown-number-font-size: 2rem !default; +$countdown-number-font-size-s: 4rem !default; +$countdown-number-font-size-m: 6rem !default; +$countdown-separator-font-size: 1rem !default; +$countdown-separator-font-size-s: 2rem !default; +$countdown-separator-font-size-m: 3rem !default; +$description-list-term-color: $global-emphasis-color !default; +$description-list-term-margin-top: $global-margin !default; +$description-list-divider-term-margin-top: $global-margin !default; +$description-list-divider-term-border-width: $global-border-width !default; +$description-list-divider-term-border: $global-border !default; +$divider-margin-vertical: $global-margin !default; +$divider-icon-width: 50px !default; +$divider-icon-height: 20px !default; +$divider-icon-color: $global-border !default; +$divider-icon-line-top: 50% !default; +$divider-icon-line-width: 100% !default; +$divider-icon-line-border-width: $global-border-width !default; +$divider-icon-line-border: $global-border !default; +$internal-divider-icon-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$divider-small-width: 100px !default; +$divider-small-border-width: $global-border-width !default; +$divider-small-border: $global-border !default; +$inverse-divider-icon-color: $inverse-global-border !default; +$inverse-divider-icon-line-border: $inverse-global-border !default; +$inverse-divider-small-border: $inverse-global-border !default; +$dotnav-margin-horizontal: 12px !default; +$dotnav-margin-vertical: $dotnav-margin-horizontal !default; +$dotnav-item-width: 10px !default; +$dotnav-item-height: $dotnav-item-width !default; +$dotnav-item-border-radius: 50% !default; +$dotnav-item-background: transparent !default; +$dotnav-item-hover-background: rgba($global-color, 0.6) !default; +$dotnav-item-onclick-background: rgba($global-color, 0.2) !default; +$dotnav-item-active-background: rgba($global-color, 0.6) !default; +$inverse-dotnav-item-background: transparent !default; +$inverse-dotnav-item-hover-background: rgba($inverse-global-color, 0.9) !default; +$inverse-dotnav-item-onclick-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-active-background: rgba($inverse-global-color, 0.9) !default; +$global-z-index: 1000 !default; +$drop-z-index: $global-z-index + 20 !default; +$drop-width: 300px !default; +$drop-margin: $global-margin !default; +$dropdown-z-index: $global-z-index + 20 !default; +$dropdown-min-width: 200px !default; +$dropdown-padding: 25px !default; +$dropdown-background: $global-background !default; +$dropdown-color: $global-color !default; +$dropdown-margin: $global-small-margin !default; +$dropdown-nav-item-color: $global-muted-color !default; +$dropdown-nav-item-hover-color: $global-color !default; +$dropdown-nav-header-color: $global-emphasis-color !default; +$dropdown-nav-divider-border-width: $global-border-width !default; +$dropdown-nav-divider-border: $global-border !default; +$dropdown-nav-sublist-item-color: $global-muted-color !default; +$dropdown-nav-sublist-item-hover-color: $global-color !default; +$form-range-thumb-height: 15px !default; +$form-range-thumb-border-radius: 500px !default; +$form-range-thumb-background: $global-background !default; +$form-range-track-height: 3px !default; +$form-range-track-background: darken($global-muted-background, 5%) !default; +$form-range-track-focus-background: darken($global-muted-background, 15%) !default; +$form-height: $global-control-height !default; +$form-border-width: $global-border-width !default; +$form-line-height: $form-height - (2* $form-border-width) !default; +$form-padding-horizontal: 10px !default; +$form-padding-vertical: 4px !default; +$form-background: $global-background !default; +$form-color: $global-color !default; +$form-focus-background: $global-background !default; +$form-focus-color: $global-color !default; +$form-disabled-background: $global-muted-background !default; +$form-disabled-color: $global-muted-color !default; +$form-placeholder-color: $global-muted-color !default; +$form-small-height: $global-control-small-height !default; +$form-small-padding-horizontal: 8px !default; +$form-small-line-height: $form-small-height - (2* $form-border-width) !default; +$form-small-font-size: $global-small-font-size !default; +$form-large-height: $global-control-large-height !default; +$form-large-padding-horizontal: 12px !default; +$form-large-line-height: $form-large-height - (2* $form-border-width) !default; +$form-large-font-size: $global-medium-font-size !default; +$form-danger-color: $global-danger-background !default; +$form-success-color: $global-success-background !default; +$form-width-xsmall: 50px !default; +$form-width-small: 130px !default; +$form-width-medium: 200px !default; +$form-width-large: 500px !default; +$form-select-padding-right: 20px !default; +$form-select-icon-color: $global-color !default; +$form-select-option-color: #444 !default; +$form-select-disabled-icon-color: $global-muted-color !default; +$form-radio-size: 16px !default; +$form-radio-margin-top: -4px !default; +$form-radio-background: transparent !default; +$form-radio-checked-background: $global-primary-background !default; +$form-radio-checked-icon-color: $global-inverse-color !default; +$form-radio-checked-focus-background: darken($global-primary-background, 10%) !default; +$form-radio-disabled-background: $global-muted-background !default; +$form-radio-disabled-icon-color: $global-muted-color !default; +$form-legend-font-size: $global-large-font-size !default; +$form-legend-line-height: 1.4 !default; +$form-stacked-margin-bottom: 5px !default; +$form-horizontal-label-width: 200px !default; +$form-horizontal-label-margin-top: 7px !default; +$form-horizontal-controls-margin-left: 215px !default; +$form-horizontal-controls-text-padding-top: 7px !default; +$form-icon-width: $form-height !default; +$form-icon-font-size: $global-font-size !default; +$form-icon-color: $global-muted-color !default; +$form-icon-hover-color: $global-color !default; +$internal-form-select-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-radio-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-form-checkbox-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-global-muted-background: rgba($global-inverse-color, 0.1) !default; +$inverse-form-background: $inverse-global-muted-background !default; +$inverse-form-color: $inverse-global-color !default; +$inverse-form-focus-background: $inverse-global-muted-background !default; +$inverse-form-focus-color: $inverse-global-color !default; +$inverse-form-placeholder-color: $inverse-global-muted-color !default; +$inverse-form-select-icon-color: $inverse-global-color !default; +$inverse-form-radio-background: darken($inverse-global-muted-background, 5%) !default; +$inverse-form-radio-checked-background: $inverse-global-primary-background !default; +$inverse-form-radio-checked-icon-color: $inverse-global-inverse-color !default; +$inverse-form-radio-checked-focus-background: darken($inverse-global-primary-background, 10%) !default; +$inverse-form-icon-color: $inverse-global-muted-color !default; +$inverse-form-icon-hover-color: $inverse-global-color !default; +$grid-column-xsmall: 100px !default; +$grid-column-small: 200px !default; +$grid-column-medium: 300px !default; +$grid-column-large: 400px !default; +$grid-column-xlarge: 500px !default; +$grid-column-xxlarge: 600px !default; +$grid-gap-small: $global-small-gutter !default; +$grid-gap-medium: $global-gutter !default; +$grid-gap-large: $global-large-gutter !default; +$grid-gutter-horizontal: $global-gutter !default; +$grid-gutter-vertical: $grid-gutter-horizontal !default; +$grid-gutter-horizontal-l: $global-medium-gutter !default; +$grid-gutter-vertical-l: $grid-gutter-horizontal-l !default; +$grid-small-gutter-horizontal: $global-small-gutter !default; +$grid-small-gutter-vertical: $grid-small-gutter-horizontal !default; +$grid-medium-gutter-horizontal: $global-gutter !default; +$grid-medium-gutter-vertical: $grid-medium-gutter-horizontal !default; +$grid-large-gutter-horizontal: $global-medium-gutter !default; +$grid-large-gutter-vertical: $grid-large-gutter-horizontal !default; +$grid-large-gutter-horizontal-l: $global-large-gutter !default; +$grid-large-gutter-vertical-l: $grid-large-gutter-horizontal-l !default; +$grid-divider-border-width: $global-border-width !default; +$grid-divider-border: $global-border !default; +$inverse-grid-divider-border: $inverse-global-border !default; +$heading-primary-font-size-l: 3.75rem !default; +$heading-primary-line-height-l: 1.1 !default; +$heading-primary-font-size-m: $heading-primary-font-size-l * 0.9 !default; +$heading-primary-font-size: $heading-primary-font-size-l * 0.8 !default; +$heading-primary-line-height: 1.2 !default; +$heading-hero-font-size-l: 8rem !default; +$heading-hero-line-height-l: 1 !default; +$heading-hero-font-size-m: $heading-hero-font-size-l * 0.75 !default; +$heading-hero-line-height-m: 1 !default; +$heading-hero-font-size: $heading-hero-font-size-l * 0.5 !default; +$heading-hero-line-height: 1.1 !default; +$heading-divider-padding-bottom: 10px !default; +$heading-divider-border-width: $global-border-width !default; +$heading-divider-border: $global-border !default; +$heading-bullet-top: unquote('calc(-0.1 * 1em)') !default; +$heading-bullet-height: 0.9em !default; +$heading-bullet-margin-right: 10px !default; +$heading-bullet-border-width: 5px !default; +$heading-bullet-border: $global-border !default; +$heading-line-top: 50% !default; +$heading-line-border-width: $global-border-width !default; +$heading-line-height: $heading-line-border-width !default; +$heading-line-width: 2000px !default; +$heading-line-border: $global-border !default; +$heading-line-margin-horizontal: 0.6em !default; +$inverse-heading-divider-border: $inverse-global-border !default; +$inverse-heading-bullet-border: $inverse-global-border !default; +$inverse-heading-line-border: $inverse-global-border !default; +$height-small-height: 150px !default; +$height-medium-height: 300px !default; +$height-large-height: 450px !default; +$icon-image-size: 20px !default; +$icon-link-color: $global-muted-color !default; +$icon-link-hover-color: $global-color !default; +$icon-link-active-color: darken($global-color, 5%) !default; +$icon-button-size: 36px !default; +$icon-button-border-radius: 500px !default; +$icon-button-background: $global-muted-background !default; +$icon-button-color: $global-muted-color !default; +$icon-button-hover-background: darken($icon-button-background, 5%) !default; +$icon-button-hover-color: $global-color !default; +$icon-button-active-background: darken($icon-button-background, 10%) !default; +$icon-button-active-color: $global-color !default; +$inverse-icon-link-color: $inverse-global-muted-color !default; +$inverse-icon-link-hover-color: $inverse-global-color !default; +$inverse-icon-link-active-color: $inverse-global-color !default; +$inverse-icon-button-background: $inverse-global-muted-background !default; +$inverse-icon-button-color: $inverse-global-muted-color !default; +$inverse-icon-button-hover-background: darken($inverse-icon-button-background, 5%) !default; +$inverse-icon-button-hover-color: $inverse-global-color !default; +$inverse-icon-button-active-background: darken($inverse-icon-button-background, 10%) !default; +$inverse-icon-button-active-color: $inverse-global-color !default; +$iconnav-margin-horizontal: $global-small-margin !default; +$iconnav-margin-vertical: $iconnav-margin-horizontal !default; +$iconnav-item-color: $global-muted-color !default; +$iconnav-item-hover-color: $global-color !default; +$iconnav-item-active-color: $global-color !default; +$inverse-iconnav-item-color: $inverse-global-muted-color !default; +$inverse-iconnav-item-hover-color: $inverse-global-color !default; +$inverse-iconnav-item-active-color: $inverse-global-color !default; +$inverse-global-color-mode: light !default; +$label-padding-vertical: 0 !default; +$label-padding-horizontal: $global-small-margin !default; +$label-background: $global-primary-background !default; +$label-line-height: $global-line-height !default; +$label-font-size: $global-small-font-size !default; +$label-color: $global-inverse-color !default; +$label-success-background: $global-success-background !default; +$label-success-color: $global-inverse-color !default; +$label-warning-background: $global-warning-background !default; +$label-warning-color: $global-inverse-color !default; +$label-danger-background: $global-danger-background !default; +$label-danger-color: $global-inverse-color !default; +$inverse-label-background: $inverse-global-primary-background !default; +$inverse-label-color: $inverse-global-inverse-color !default; +$leader-fill-content: '.' !default; +$leader-fill-margin-left: $global-small-gutter !default; +$lightbox-z-index: $global-z-index + 10 !default; +$lightbox-background: #000 !default; +$lightbox-item-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-padding-vertical: 10px !default; +$lightbox-toolbar-padding-horizontal: 10px !default; +$lightbox-toolbar-background: rgba(0,0,0,0.3) !default; +$lightbox-toolbar-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-padding: 5px !default; +$lightbox-toolbar-icon-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-hover-color: #fff !default; +$lightbox-button-size: 50px !default; +$lightbox-button-background: $lightbox-toolbar-background !default; +$lightbox-button-color: rgba(255,255,255,0.7) !default; +$lightbox-button-hover-color: #fff !default; +$link-muted-color: $global-muted-color !default; +$link-muted-hover-color: $global-color !default; +$link-text-hover-color: $global-muted-color !default; +$link-heading-hover-color: $global-primary-background !default; +$link-heading-hover-text-decoration: none !default; +$inverse-link-muted-color: $inverse-global-muted-color !default; +$inverse-link-muted-hover-color: $inverse-global-color !default; +$inverse-link-text-hover-color: $inverse-global-muted-color !default; +$inverse-link-heading-hover-color: $inverse-global-primary-background !default; +$list-margin-top: $global-small-margin !default; +$list-nested-padding-left: $global-gutter !default; +$list-divider-margin-top: $global-small-margin !default; +$list-divider-border-width: $global-border-width !default; +$list-divider-border: $global-border !default; +$list-striped-padding-vertical: $global-small-margin !default; +$list-striped-padding-horizontal: $global-small-margin !default; +$list-striped-background: $global-muted-background !default; +$list-bullet-width: ($global-line-height * 1em) !default; +$list-bullet-height: $list-bullet-width !default; +$list-bullet-margin-right: $global-small-margin !default; +$list-bullet-icon-color: $global-color !default; +$list-large-margin-top: $global-margin !default; +$list-large-divider-margin-top: $global-margin !default; +$list-large-striped-padding-vertical: $global-margin !default; +$list-large-striped-padding-horizontal: $global-small-margin !default; +$internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-list-divider-border: $inverse-global-border !default; +$inverse-list-striped-background: $inverse-global-muted-background !default; +$inverse-list-bullet-icon-color: $inverse-global-color !default; +$margin-margin: $global-margin !default; +$margin-small-margin: $global-small-margin !default; +$margin-medium-margin: $global-medium-margin !default; +$margin-large-margin: $global-medium-margin !default; +$margin-large-margin-l: $global-large-margin !default; +$margin-xlarge-margin: $global-large-margin !default; +$global-xlarge-margin: 140px !default; +$margin-xlarge-margin-l: $global-xlarge-margin !default; +$marker-padding: 5px !default; +$marker-background: $global-secondary-background !default; +$marker-color: $global-inverse-color !default; +$marker-hover-color: $global-inverse-color !default; +$inverse-marker-background: $global-muted-background !default; +$inverse-marker-color: $global-color !default; +$inverse-marker-hover-color: $global-color !default; +$modal-z-index: $global-z-index + 10 !default; +$modal-background: rgba(0,0,0,0.6) !default; +$modal-padding-horizontal: 15px !default; +$modal-padding-horizontal-s: $global-gutter !default; +$modal-padding-horizontal-m: $global-medium-gutter !default; +$modal-padding-vertical: $modal-padding-horizontal !default; +$modal-padding-vertical-s: 50px !default; +$modal-dialog-width: 600px !default; +$modal-dialog-background: $global-background !default; +$modal-container-width: 1200px !default; +$modal-body-padding-horizontal: $global-gutter !default; +$modal-body-padding-vertical: $global-gutter !default; +$modal-header-padding-horizontal: $global-gutter !default; +$modal-header-padding-vertical: ($modal-header-padding-horizontal / 2) !default; +$modal-header-background: $modal-dialog-background !default; +$modal-footer-padding-horizontal: $global-gutter !default; +$modal-footer-padding-vertical: ($modal-footer-padding-horizontal / 2) !default; +$modal-footer-background: $modal-dialog-background !default; +$modal-title-font-size: $global-xlarge-font-size !default; +$modal-title-line-height: 1.3 !default; +$modal-close-position: $global-small-margin !default; +$modal-close-padding: 5px !default; +$modal-close-outside-position: 0 !default; +$modal-close-outside-translate: 100% !default; +$modal-close-outside-color: lighten($global-inverse-color, 20%) !default; +$modal-close-outside-hover-color: $global-inverse-color !default; +$nav-item-padding-vertical: 5px !default; +$nav-item-padding-horizontal: 0 !default; +$nav-sublist-padding-vertical: 5px !default; +$nav-sublist-padding-left: 15px !default; +$nav-sublist-deeper-padding-left: 15px !default; +$nav-sublist-item-padding-vertical: 2px !default; +$nav-parent-icon-width: ($global-line-height * 1em) !default; +$nav-parent-icon-height: $nav-parent-icon-width !default; +$nav-parent-icon-color: $global-color !default; +$nav-header-padding-vertical: $nav-item-padding-vertical !default; +$nav-header-padding-horizontal: $nav-item-padding-horizontal !default; +$nav-header-font-size: $global-small-font-size !default; +$nav-header-text-transform: uppercase !default; +$nav-header-margin-top: $global-margin !default; +$nav-divider-margin-vertical: 5px !default; +$nav-divider-margin-horizontal: 0 !default; +$nav-default-item-color: $global-muted-color !default; +$nav-default-item-hover-color: $global-color !default; +$nav-default-item-active-color: $global-emphasis-color !default; +$nav-default-header-color: $global-emphasis-color !default; +$nav-default-divider-border-width: $global-border-width !default; +$nav-default-divider-border: $global-border !default; +$nav-default-sublist-item-color: $global-muted-color !default; +$nav-default-sublist-item-hover-color: $global-color !default; +$nav-primary-item-font-size: $global-large-font-size !default; +$nav-primary-item-line-height: $global-line-height !default; +$nav-primary-item-color: $global-muted-color !default; +$nav-primary-item-hover-color: $global-color !default; +$nav-primary-item-active-color: $global-emphasis-color !default; +$nav-primary-header-color: $global-emphasis-color !default; +$nav-primary-divider-border-width: $global-border-width !default; +$nav-primary-divider-border: $global-border !default; +$nav-primary-sublist-item-color: $global-muted-color !default; +$nav-primary-sublist-item-hover-color: $global-color !default; +$internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-nav-parent-icon-color: $inverse-global-color !default; +$inverse-nav-default-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-item-hover-color: $inverse-global-color !default; +$inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-divider-border: $inverse-global-border !default; +$inverse-nav-default-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-sublist-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-divider-border: $inverse-global-border !default; +$inverse-nav-primary-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default; +$navbar-background: $global-muted-background !default; +$navbar-color-mode: none !default; +$navbar-nav-item-height: 80px !default; +$navbar-nav-item-padding-horizontal: 15px !default; +$navbar-nav-item-color: $global-muted-color !default; +$navbar-nav-item-font-size: $global-small-font-size !default; +$navbar-nav-item-font-family: $global-font-family !default; +$navbar-nav-item-hover-color: $global-color !default; +$navbar-nav-item-onclick-color: $global-emphasis-color !default; +$navbar-nav-item-active-color: $global-emphasis-color !default; +$navbar-item-color: $global-color !default; +$navbar-toggle-color: $global-muted-color !default; +$navbar-toggle-hover-color: $global-color !default; +$navbar-subtitle-font-size: $global-small-font-size !default; +$navbar-dropdown-z-index: $global-z-index + 20 !default; +$navbar-dropdown-width: 200px !default; +$navbar-dropdown-margin: 15px !default; +$navbar-dropdown-padding: 25px !default; +$navbar-dropdown-background: $global-background !default; +$navbar-dropdown-color: $global-color !default; +$navbar-dropdown-grid-gutter-horizontal: ($navbar-dropdown-padding * 2) !default; +$navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default; +$navbar-dropdown-dropbar-margin-top: 0 !default; +$navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default; +$navbar-dropdown-nav-item-color: $global-muted-color !default; +$navbar-dropdown-nav-item-hover-color: $global-color !default; +$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default; +$navbar-dropdown-nav-header-color: $global-emphasis-color !default; +$navbar-dropdown-nav-divider-border-width: $global-border-width !default; +$navbar-dropdown-nav-divider-border: $global-border !default; +$navbar-dropdown-nav-sublist-item-color: $global-muted-color !default; +$navbar-dropdown-nav-sublist-item-hover-color: $global-color !default; +$navbar-dropbar-background: $navbar-dropdown-background !default; +$navbar-dropbar-z-index: $global-z-index - 20 !default; +$inverse-navbar-nav-item-color: $inverse-global-muted-color !default; +$inverse-navbar-nav-item-hover-color: $inverse-global-color !default; +$inverse-navbar-nav-item-onclick-color: $inverse-global-emphasis-color !default; +$inverse-navbar-nav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-navbar-item-color: $inverse-global-color !default; +$inverse-navbar-toggle-color: $inverse-global-muted-color !default; +$inverse-navbar-toggle-hover-color: $inverse-global-color !default; +$notification-position: 10px !default; +$notification-z-index: $global-z-index + 40 !default; +$notification-width: 350px !default; +$notification-message-margin-bottom: 10px !default; +$notification-message-padding: $global-small-gutter !default; +$notification-message-background: $global-muted-background !default; +$notification-message-color: $global-color !default; +$notification-message-font-size: $global-medium-font-size !default; +$notification-message-line-height: 1.4 !default; +$notification-close-top: $notification-message-padding + 5px !default; +$notification-close-right: $notification-message-padding !default; +$notification-message-primary-color: $global-primary-background !default; +$notification-message-success-color: $global-success-background !default; +$notification-message-warning-color: $global-warning-background !default; +$notification-message-danger-color: $global-danger-background !default; +$offcanvas-z-index: $global-z-index !default; +$offcanvas-bar-width: 270px !default; +$offcanvas-bar-padding-vertical: $global-margin !default; +$offcanvas-bar-padding-horizontal: $global-margin !default; +$offcanvas-bar-background: $global-secondary-background !default; +$offcanvas-bar-color-mode: light !default; +$offcanvas-bar-width-m: 350px !default; +$offcanvas-bar-padding-vertical-m: $global-medium-gutter !default; +$offcanvas-bar-padding-horizontal-m: $global-medium-gutter !default; +$offcanvas-close-position: 20px !default; +$offcanvas-close-padding: 5px !default; +$offcanvas-overlay-background: rgba(0,0,0,0.1) !default; +$overlay-padding-horizontal: $global-gutter !default; +$overlay-padding-vertical: $global-gutter !default; +$overlay-default-background: rgba($global-background, 0.8) !default; +$overlay-primary-background: rgba($global-secondary-background, 0.8) !default; +$overlay-primary-color-mode: light !default; +$padding-padding: $global-gutter !default; +$padding-padding-l: $global-medium-gutter !default; +$padding-small-padding: $global-small-gutter !default; +$padding-large-padding: $global-gutter !default; +$padding-large-padding-l: $global-large-gutter !default; +$pagination-margin-horizontal: 20px !default; +$pagination-item-color: $global-muted-color !default; +$pagination-item-hover-color: $global-color !default; +$pagination-item-hover-text-decoration: none !default; +$pagination-item-active-color: $global-color !default; +$pagination-item-disabled-color: $global-muted-color !default; +$inverse-pagination-item-color: $inverse-global-muted-color !default; +$inverse-pagination-item-hover-color: $inverse-global-color !default; +$inverse-pagination-item-active-color: $inverse-global-color !default; +$inverse-pagination-item-disabled-color: $inverse-global-muted-color !default; +$placeholder-margin-vertical: $global-margin !default; +$placeholder-padding-vertical: $global-gutter !default; +$placeholder-padding-horizontal: $global-gutter !default; +$placeholder-background: transparent !default; +$position-small-margin: $global-small-gutter !default; +$position-medium-margin: $global-gutter !default; +$position-large-margin: $global-gutter !default; +$position-large-margin-l: 50px !default; +$progress-height: 15px !default; +$progress-margin-vertical: $global-margin !default; +$progress-background: $global-muted-background !default; +$progress-bar-background: $global-primary-background !default; +$search-color: $global-color !default; +$search-placeholder-color: $global-muted-color !default; +$search-icon-color: $global-muted-color !default; +$search-default-width: 180px !default; +$search-default-height: $global-control-height !default; +$search-default-padding-horizontal: 6px !default; +$search-default-background: transparent !default; +$search-default-focus-background: $search-default-background !default; +$search-default-icon-width: $global-control-height !default; +$search-navbar-width: 400px !default; +$search-navbar-height: 40px !default; +$search-navbar-background: transparent !default; +$search-navbar-font-size: $global-large-font-size !default; +$search-navbar-icon-width: 40px !default; +$search-large-width: 500px !default; +$search-large-height: 80px !default; +$search-large-background: transparent !default; +$search-large-font-size: $global-xxlarge-font-size !default; +$search-large-icon-width: 80px !default; +$search-toggle-color: $global-muted-color !default; +$search-toggle-hover-color: $global-color !default; +$inverse-search-color: $inverse-global-color !default; +$inverse-search-placeholder-color: $inverse-global-muted-color !default; +$inverse-search-icon-color: $inverse-global-muted-color !default; +$inverse-search-default-background: transparent !default; +$inverse-search-default-focus-background: $inverse-search-default-background !default; +$inverse-search-navbar-background: transparent !default; +$inverse-search-large-background: transparent !default; +$inverse-search-toggle-color: $inverse-global-muted-color !default; +$inverse-search-toggle-hover-color: $inverse-global-color !default; +$section-padding-vertical: $global-medium-margin !default; +$section-padding-vertical-m: $global-large-margin !default; +$section-xsmall-padding-vertical: $global-margin !default; +$section-small-padding-vertical: $global-medium-margin !default; +$section-large-padding-vertical: $global-large-margin !default; +$section-large-padding-vertical-m: $global-xlarge-margin !default; +$section-xlarge-padding-vertical: $global-xlarge-margin !default; +$section-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$section-default-background: $global-background !default; +$section-muted-background: $global-muted-background !default; +$section-primary-background: $global-primary-background !default; +$section-primary-color-mode: light !default; +$section-secondary-background: $global-secondary-background !default; +$section-secondary-color-mode: light !default; +$slidenav-padding-vertical: 5px !default; +$slidenav-padding-horizontal: 10px !default; +$slidenav-color: rgba($global-color, 0.5) !default; +$slidenav-hover-color: rgba($global-color, 0.9) !default; +$slidenav-active-color: rgba($global-color, 0.5) !default; +$slidenav-large-padding-vertical: 10px !default; +$slidenav-large-padding-horizontal: $slidenav-large-padding-vertical !default; +$inverse-slidenav-color: rgba($inverse-global-color, 0.7) !default; +$inverse-slidenav-hover-color: rgba($inverse-global-color, 0.95) !default; +$inverse-slidenav-active-color: rgba($inverse-global-color, 0.7) !default; +$sortable-dragged-z-index: $global-z-index + 50 !default; +$sortable-placeholder-opacity: 0 !default; +$sortable-empty-height: 50px !default; +$spinner-size: 30px !default; +$spinner-stroke-width: 1 !default; +$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; +$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default; +$spinner-duration: 1.4s !default; +$sticky-z-index: $global-z-index - 20 !default; +$sticky-animation-duration: 0.2s !default; +$sticky-reverse-animation-duration: 0.2s !default; +$subnav-margin-horizontal: 20px !default; +$subnav-item-color: $global-muted-color !default; +$subnav-item-hover-color: $global-color !default; +$subnav-item-hover-text-decoration: none !default; +$subnav-item-active-color: $global-emphasis-color !default; +$subnav-divider-margin-horizontal: $subnav-margin-horizontal !default; +$subnav-divider-border-height: 1.5em !default; +$subnav-divider-border-width: $global-border-width !default; +$subnav-divider-border: $global-border !default; +$subnav-pill-item-padding-vertical: 5px !default; +$subnav-pill-item-padding-horizontal: 10px !default; +$subnav-pill-item-background: transparent !default; +$subnav-pill-item-color: $subnav-item-color !default; +$subnav-pill-item-hover-background: $global-muted-background !default; +$subnav-pill-item-hover-color: $global-color !default; +$subnav-pill-item-onclick-background: $subnav-pill-item-hover-background !default; +$subnav-pill-item-onclick-color: $subnav-pill-item-hover-color !default; +$subnav-pill-item-active-background: $global-primary-background !default; +$subnav-pill-item-active-color: $global-inverse-color !default; +$subnav-item-disabled-color: $global-muted-color !default; +$inverse-subnav-item-color: $inverse-global-muted-color !default; +$inverse-subnav-item-hover-color: $inverse-global-color !default; +$inverse-subnav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-subnav-divider-border: $inverse-global-border !default; +$inverse-subnav-pill-item-background: transparent !default; +$inverse-subnav-pill-item-color: $inverse-global-muted-color !default; +$inverse-subnav-pill-item-hover-background: $inverse-global-muted-background !default; +$inverse-subnav-pill-item-hover-color: $inverse-global-color !default; +$inverse-subnav-pill-item-onclick-background: $inverse-subnav-pill-item-hover-background !default; +$inverse-subnav-pill-item-onclick-color: $inverse-subnav-pill-item-hover-color !default; +$inverse-subnav-pill-item-active-background: $inverse-global-primary-background !default; +$inverse-subnav-pill-item-active-color: $inverse-global-inverse-color !default; +$inverse-subnav-item-disabled-color: $inverse-global-muted-color !default; +$tab-margin-horizontal: 20px !default; +$tab-item-padding-horizontal: 10px !default; +$tab-item-padding-vertical: 5px !default; +$tab-item-color: $global-muted-color !default; +$tab-item-hover-color: $global-color !default; +$tab-item-hover-text-decoration: none !default; +$tab-item-active-color: $global-emphasis-color !default; +$tab-item-disabled-color: $global-muted-color !default; +$inverse-tab-item-color: $inverse-global-muted-color !default; +$inverse-tab-item-hover-color: $inverse-global-color !default; +$inverse-tab-item-active-color: $inverse-global-emphasis-color !default; +$inverse-tab-item-disabled-color: $inverse-global-muted-color !default; +$table-margin-vertical: $global-margin !default; +$table-cell-padding-vertical: 16px !default; +$table-cell-padding-horizontal: 12px !default; +$table-header-cell-font-size: $global-small-font-size !default; +$table-header-cell-font-weight: normal !default; +$table-header-cell-color: $global-muted-color !default; +$table-footer-font-size: $global-small-font-size !default; +$table-caption-font-size: $global-small-font-size !default; +$table-caption-color: $global-muted-color !default; +$table-row-active-background: #ffd !default; +$table-divider-border-width: $global-border-width !default; +$table-divider-border: $global-border !default; +$table-striped-row-background: $global-muted-background !default; +$table-hover-row-background: $table-row-active-background !default; +$table-small-cell-padding-vertical: 10px !default; +$table-small-cell-padding-horizontal: 12px !default; +$table-large-cell-padding-vertical: 22px !default; +$table-large-cell-padding-horizontal: 12px !default; +$table-expand-min-width: 150px !default; +$inverse-table-header-cell-color: $inverse-global-color !default; +$inverse-table-caption-color: $inverse-global-muted-color !default; +$inverse-table-row-active-background: fade-out($inverse-global-muted-background, 0.02) !default; +$inverse-table-divider-border: $inverse-global-border !default; +$inverse-table-striped-row-background: $inverse-global-muted-background !default; +$inverse-table-hover-row-background: $inverse-table-row-active-background !default; +$text-lead-font-size: $global-large-font-size !default; +$text-lead-line-height: 1.5 !default; +$text-lead-color: $global-emphasis-color !default; +$text-meta-font-size: $global-small-font-size !default; +$text-meta-line-height: 1.4 !default; +$text-meta-color: $global-muted-color !default; +$text-small-font-size: $global-small-font-size !default; +$text-small-line-height: 1.5 !default; +$text-large-font-size: $global-large-font-size !default; +$text-large-line-height: 1.5 !default; +$text-bold-font-weight: bolder !default; +$text-muted-color: $global-muted-color !default; +$text-primary-color: $global-primary-background !default; +$text-success-color: $global-success-background !default; +$text-warning-color: $global-warning-background !default; +$text-danger-color: $global-danger-background !default; +$text-background-color: $global-primary-background !default; +$inverse-text-lead-color: $inverse-global-color !default; +$inverse-text-meta-color: $inverse-global-muted-color !default; +$inverse-text-muted-color: $inverse-global-muted-color !default; +$inverse-text-primary-color: $inverse-global-color !default; +$thumbnav-margin-horizontal: 15px !default; +$thumbnav-margin-vertical: $thumbnav-margin-horizontal !default; +$tile-padding-horizontal: 15px !default; +$tile-padding-horizontal-s: $global-gutter !default; +$tile-padding-horizontal-m: $global-medium-gutter !default; +$tile-padding-vertical: $global-medium-margin !default; +$tile-padding-vertical-m: $global-large-margin !default; +$tile-xsmall-padding-vertical: $global-margin !default; +$tile-small-padding-vertical: $global-medium-margin !default; +$tile-large-padding-vertical: $global-large-margin !default; +$tile-large-padding-vertical-m: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$tile-default-background: $global-background !default; +$tile-muted-background: $global-muted-background !default; +$tile-primary-background: $global-primary-background !default; +$tile-primary-color-mode: light !default; +$tile-secondary-background: $global-secondary-background !default; +$tile-secondary-color-mode: light !default; +$tooltip-z-index: $global-z-index + 30 !default; +$tooltip-max-width: 200px !default; +$tooltip-padding-vertical: 3px !default; +$tooltip-padding-horizontal: 6px !default; +$tooltip-background: #666 !default; +$tooltip-border-radius: 2px !default; +$tooltip-color: $global-inverse-color !default; +$tooltip-font-size: 12px !default; +$tooltip-margin: 10px !default; +$totop-padding: 5px !default; +$totop-color: $global-muted-color !default; +$totop-hover-color: $global-color !default; +$totop-active-color: $global-emphasis-color !default; +$inverse-totop-color: $inverse-global-muted-color !default; +$inverse-totop-hover-color: $inverse-global-color !default; +$inverse-totop-active-color: $inverse-global-emphasis-color !default; +$transition-duration: 0.3s !default; +$transition-scale: 1.1 !default; +$transition-slide-small-translate: 10px !default; +$transition-slide-medium-translate: 50px !default; +$transition-slow-duration: 0.7s !default; +$panel-scrollable-height: 170px !default; +$panel-scrollable-padding: 10px !default; +$panel-scrollable-border-width: $global-border-width !default; +$panel-scrollable-border: $global-border !default; +$border-rounded-border-radius: 5px !default; +$box-shadow-duration: 0.1s !default; +$box-shadow-bottom-height: 30px !default; +$box-shadow-bottom-border-radius: 100% !default; +$box-shadow-bottom-background: #444 !default; +$box-shadow-bottom-blur: 20px !default; +$dropcap-margin-right: 10px !default; +$dropcap-font-size: (($global-line-height * 3) * 1em) !default; +$logo-font-size: $global-large-font-size !default; +$logo-font-family: $global-font-family !default; +$logo-color: $global-color !default; +$logo-hover-color: $global-color !default; +$dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default; +$inverse-logo-color: $inverse-global-color !default; +$inverse-logo-hover-color: $inverse-global-color !default; +$breakpoint-small: 640px !default; +$breakpoint-medium: 960px !default; +$breakpoint-large: 1200px !default; +$breakpoint-xlarge: 1600px !default; +$breakpoint-xsmall-max: ($breakpoint-small - 1) !default; +$breakpoint-small-max: ($breakpoint-medium - 1) !default; +$breakpoint-medium-max: ($breakpoint-large - 1) !default; +$breakpoint-large-max: ($breakpoint-xlarge - 1) !default; +$global-small-box-shadow: 0 2px 8px rgba(0,0,0,0.08) !default; +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08) !default; +$global-large-box-shadow: 0 14px 25px rgba(0,0,0,0.16) !default; +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16) !default; +$width-small-width: 150px !default; +$width-medium-width: 300px !default; +$width-large-width: 450px !default; +$width-xlarge-width: 600px !default; +$width-xxlarge-width: 750px !default; +$accordion-icon-color: $global-color !default; +$internal-accordion-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-accordion-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$alert-close-opacity: 0.4 !default; +$alert-close-hover-opacity: 0.8 !default; +$article-meta-link-color: $article-meta-color !default; +$article-meta-link-hover-color: $global-color !default; +$base-code-padding-horizontal: 6px !default; +$base-code-padding-vertical: 2px !default; +$base-code-background: $global-muted-background !default; +$base-blockquote-color: $global-emphasis-color !default; +$base-blockquote-footer-color: $global-color !default; +$base-pre-padding: 10px !default; +$base-pre-background: $global-background !default; +$base-pre-border-width: $global-border-width !default; +$base-pre-border: $global-border !default; +$base-pre-border-radius: 3px !default; +$inverse-base-blockquote-color: $inverse-global-emphasis-color !default; +$inverse-base-blockquote-footer-color: $inverse-global-color !default; +$button-text-transform: uppercase !default; +$button-default-border: $global-border !default; +$button-default-hover-border: darken($global-border, 20%) !default; +$button-default-active-border: darken($global-border, 30%) !default; +$button-disabled-border: $global-border !default; +$button-text-border-width: $global-border-width !default; +$button-text-border: $button-text-hover-color !default; +$card-hover-box-shadow: $global-large-box-shadow !default; +$card-default-box-shadow: $global-medium-box-shadow !default; +$card-default-hover-box-shadow: $global-large-box-shadow !default; +$card-default-header-border-width: $global-border-width !default; +$card-default-header-border: $global-border !default; +$card-default-footer-border-width: $global-border-width !default; +$card-default-footer-border: $global-border !default; +$card-primary-box-shadow: $global-medium-box-shadow !default; +$card-primary-hover-box-shadow: $global-large-box-shadow !default; +$card-secondary-box-shadow: $global-medium-box-shadow !default; +$card-secondary-hover-box-shadow: $global-large-box-shadow !default; +$comment-primary-padding: $global-gutter !default; +$comment-primary-background: $global-muted-background !default; +$description-list-term-font-size: $global-small-font-size !default; +$description-list-term-font-weight: normal !default; +$description-list-term-text-transform: uppercase !default; +$dotnav-item-border-width: 1px !default; +$dotnav-item-border: rgba($global-color, 0.4) !default; +$dotnav-item-hover-border: transparent !default; +$dotnav-item-onclick-border: transparent !default; +$dotnav-item-active-border: transparent !default; +$dropdown-nav-font-size: $global-small-font-size !default; +$dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; +$form-range-thumb-border-width: $global-border-width !default; +$form-range-thumb-border: darken($global-border, 10%) !default; +$form-range-track-border-radius: 500px !default; +$form-border: $global-border !default; +$form-focus-border: $global-primary-background !default; +$form-disabled-border: $global-border !default; +$form-danger-border: $global-danger-background !default; +$form-success-border: $global-success-background !default; +$form-blank-focus-border: $global-border !default; +$form-blank-focus-border-style: dashed !default; +$form-radio-border-width: $global-border-width !default; +$form-radio-border: darken($global-border, 10%) !default; +$form-radio-focus-border: $global-primary-background !default; +$form-radio-checked-border: transparent !default; +$form-radio-disabled-border: $global-border !default; +$form-label-color: $global-emphasis-color !default; +$form-label-font-size: $global-small-font-size !default; +$inverse-form-label-color: $inverse-global-emphasis-color !default; +$label-border-radius: 2px !default; +$label-text-transform: uppercase !default; +$list-striped-border-width: $global-border-width !default; +$list-striped-border: $global-border !default; +$modal-header-border-width: $global-border-width !default; +$modal-header-border: $global-border !default; +$modal-footer-border-width: $global-border-width !default; +$modal-footer-border: $global-border !default; +$modal-close-full-padding: $global-margin !default; +$modal-close-full-background: $modal-dialog-background !default; +$nav-default-font-size: $global-small-font-size !default; +$navbar-nav-item-text-transform: uppercase !default; +$navbar-dropdown-nav-font-size: $global-small-font-size !default; +$navbar-dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; +$navbar-dropbar-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05) !default; +$navbar-dropdown-grid-divider-border-width: $global-border-width !default; +$navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-border !default; +$placeholder-border-width: $global-border-width !default; +$placeholder-border: $global-border !default; +$progress-border-radius: 500px !default; +$search-default-border-width: $global-border-width !default; +$search-default-border: $global-border !default; +$subnav-item-font-size: $global-small-font-size !default; +$subnav-item-text-transform: uppercase !default; +$tab-border-width: $global-border-width !default; +$tab-border: $global-border !default; +$tab-item-border-width: $global-border-width !default; +$tab-item-font-size: $global-small-font-size !default; +$tab-item-text-transform: uppercase !default; +$tab-item-active-border: $global-primary-background !default; +$inverse-tab-border: $inverse-global-border !default; +$table-striped-border-width: $global-border-width !default; +$table-striped-border: $global-border !default; +$text-meta-link-color: $text-meta-color !default; +$text-meta-link-hover-color: $global-color !default; +$thumbnav-item-background: rgba($global-background, 0.4) !default; +$thumbnav-item-hover-background: transparent !default; +$thumbnav-item-active-background: transparent !default; \ No newline at end of file diff --git a/scss/uikit/_variables.scss b/scss/uikit/_variables.scss new file mode 100644 index 00000000..72dbdc89 --- /dev/null +++ b/scss/uikit/_variables.scss @@ -0,0 +1,1002 @@ +$global-margin: 20px !default; +$accordion-item-margin-top: $global-margin !default; +$global-medium-font-size: 1.25rem !default; +$accordion-title-font-size: $global-medium-font-size !default; +$accordion-title-line-height: 1.4 !default; +$global-emphasis-color: #333 !default; +$accordion-title-color: $global-emphasis-color !default; +$global-color: #666 !default; +$accordion-title-hover-color: $global-color !default; +$accordion-content-margin-top: $global-margin !default; +$global-inverse-color: #fff !default; +$inverse-global-emphasis-color: $global-inverse-color !default; +$inverse-accordion-title-color: $inverse-global-emphasis-color !default; +$inverse-global-inverse-color: $global-color !default; +$inverse-accordion-title-hover-color: $inverse-global-inverse-color !default; +$alert-margin-vertical: $global-margin !default; +$global-small-gutter: 15px !default; +$alert-padding: $global-small-gutter !default; +$alert-padding-right: $alert-padding + 14px !default; +$global-muted-background: #f8f8f8 !default; +$alert-background: $global-muted-background !default; +$alert-color: $global-color !default; +$alert-close-top: $alert-padding + 5px !default; +$alert-close-right: $alert-padding !default; +$global-primary-background: #1e87f0 !default; +$alert-primary-background: lighten(mix(white, $global-primary-background, 40%), 20%) !default; +$alert-primary-color: $global-primary-background !default; +$global-success-background: #32d296 !default; +$alert-success-background: lighten(mix(white, $global-success-background, 40%), 25%) !default; +$alert-success-color: $global-success-background !default; +$global-warning-background: #faa05a !default; +$alert-warning-background: lighten(mix(white, $global-warning-background, 45%), 15%) !default; +$alert-warning-color: $global-warning-background !default; +$global-danger-background: #f0506e !default; +$alert-danger-background: lighten(mix(white, $global-danger-background, 40%), 20%) !default; +$alert-danger-color: $global-danger-background !default; +$global-gutter: 30px !default; +$align-margin-horizontal: $global-gutter !default; +$align-margin-vertical: $global-gutter !default; +$global-medium-gutter: 40px !default; +$align-margin-horizontal-l: $global-medium-gutter !default; +$animation-duration: 0.5s !default; +$animation-fade-duration: 0.8s !default; +$animation-kenburns-duration: 15s !default; +$animation-fast-duration: 0.1s !default; +$animation-slide-small-translate: 10px !default; +$animation-slide-medium-translate: 50px !default; +$global-large-margin: 70px !default; +$article-margin-top: $global-large-margin !default; +$global-xxlarge-font-size: 2.625rem !default; +$article-title-font-size-m: $global-xxlarge-font-size !default; +$article-title-font-size: $article-title-font-size-m * 0.85 !default; +$article-title-line-height: 1.2 !default; +$global-small-font-size: 0.875rem !default; +$article-meta-font-size: $global-small-font-size !default; +$article-meta-line-height: 1.4 !default; +$global-muted-color: #999 !default; +$article-meta-color: $global-muted-color !default; +$inverse-global-muted-color: rgba($global-inverse-color, 0.5) !default; +$inverse-article-meta-color: $inverse-global-muted-color !default; +$global-background: #fff !default; +$background-default-background: $global-background !default; +$background-muted-background: $global-muted-background !default; +$background-primary-background: $global-primary-background !default; +$global-secondary-background: #222 !default; +$background-secondary-background: $global-secondary-background !default; +$badge-size: 22px !default; +$badge-padding-vertical: 0 !default; +$badge-padding-horizontal: 5px !default; +$badge-border-radius: 500px !default; +$badge-background: $global-primary-background !default; +$badge-color: $global-inverse-color !default; +$badge-font-size: $global-small-font-size !default; +$badge-hover-color: $global-inverse-color !default; +$inverse-global-primary-background: $global-inverse-color !default; +$inverse-badge-background: $inverse-global-primary-background !default; +$inverse-badge-color: $inverse-global-inverse-color !default; +$inverse-badge-hover-color: $inverse-global-inverse-color !default; +$base-body-background: $global-background !default; +$global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$base-body-font-family: $global-font-family !default; +$base-body-font-weight: normal !default; +$global-font-size: 16px !default; +$base-body-font-size: $global-font-size !default; +$global-line-height: 1.5 !default; +$base-body-line-height: $global-line-height !default; +$base-body-color: $global-color !default; +$global-link-color: #1e87f0 !default; +$base-link-color: $global-link-color !default; +$base-link-text-decoration: none !default; +$global-link-hover-color: #0f6ecd !default; +$base-link-hover-color: $global-link-hover-color !default; +$base-link-hover-text-decoration: underline !default; +$base-strong-font-weight: bolder !default; +$base-code-font-size: $global-small-font-size !default; +$base-code-font-family: Consolas, monaco, monospace !default; +$base-code-color: $global-danger-background !default; +$base-em-color: $global-danger-background !default; +$base-ins-background: #ffd !default; +$base-ins-color: $global-color !default; +$base-mark-background: #ffd !default; +$base-mark-color: $global-color !default; +$base-quote-font-style: italic !default; +$base-small-font-size: 80% !default; +$base-margin-vertical: $global-margin !default; +$base-heading-font-family: $global-font-family !default; +$base-heading-font-weight: normal !default; +$base-heading-color: $global-emphasis-color !default; +$base-heading-text-transform: none !default; +$global-medium-margin: 40px !default; +$base-heading-margin-top: $global-medium-margin !default; +$base-h1-font-size-m: $global-xxlarge-font-size !default; +$base-h1-font-size: $base-h1-font-size-m * 0.85 !default; +$base-h1-line-height: 1.2 !default; +$global-xlarge-font-size: 2rem !default; +$base-h2-font-size-m: $global-xlarge-font-size !default; +$base-h2-font-size: $base-h2-font-size-m * 0.85 !default; +$base-h2-line-height: 1.3 !default; +$global-large-font-size: 1.5rem !default; +$base-h3-font-size: $global-large-font-size !default; +$base-h3-line-height: 1.4 !default; +$base-h4-font-size: $global-medium-font-size !default; +$base-h4-line-height: 1.4 !default; +$base-h5-font-size: $global-font-size !default; +$base-h5-line-height: 1.4 !default; +$base-h6-font-size: $global-small-font-size !default; +$base-h6-line-height: 1.4 !default; +$base-list-padding-left: 30px !default; +$base-hr-margin-vertical: $global-margin !default; +$global-border-width: 1px !default; +$base-hr-border-width: $global-border-width !default; +$global-border: #e5e5e5 !default; +$base-hr-border: $global-border !default; +$base-blockquote-font-size: $global-medium-font-size !default; +$base-blockquote-line-height: 1.5 !default; +$base-blockquote-font-style: italic !default; +$base-blockquote-margin-vertical: $global-margin !default; +$global-small-margin: 10px !default; +$base-blockquote-footer-margin-top: $global-small-margin !default; +$base-blockquote-footer-font-size: $global-small-font-size !default; +$base-blockquote-footer-line-height: 1.5 !default; +$base-pre-font-size: $global-small-font-size !default; +$base-pre-line-height: 1.5 !default; +$base-pre-font-family: $base-code-font-family !default; +$base-pre-color: $global-color !default; +$base-selection-background: #39f !default; +$base-selection-color: $global-inverse-color !default; +$inverse-global-color: rgba($global-inverse-color, 0.7) !default; +$inverse-base-color: $inverse-global-color !default; +$inverse-base-link-color: $inverse-global-emphasis-color !default; +$inverse-base-link-hover-color: $inverse-global-emphasis-color !default; +$inverse-base-code-color: $inverse-global-color !default; +$inverse-base-em-color: $inverse-global-emphasis-color !default; +$inverse-base-heading-color: $inverse-global-emphasis-color !default; +$inverse-global-border: rgba($global-inverse-color, 0.2) !default; +$inverse-base-hr-border: $inverse-global-border !default; +$breadcrumb-item-font-size: $global-small-font-size !default; +$breadcrumb-item-color: $global-muted-color !default; +$breadcrumb-item-hover-color: $global-color !default; +$breadcrumb-item-hover-text-decoration: none !default; +$breadcrumb-item-active-color: $global-color !default; +$breadcrumb-divider: "/" !default; +$breadcrumb-divider-margin-horizontal: 20px !default; +$breadcrumb-divider-color: $global-muted-color !default; +$inverse-breadcrumb-item-color: $inverse-global-muted-color !default; +$inverse-breadcrumb-item-hover-color: $inverse-global-color !default; +$inverse-breadcrumb-item-active-color: $inverse-global-color !default; +$inverse-breadcrumb-divider-color: $inverse-global-muted-color !default; +$global-control-height: 40px !default; +$button-line-height: $global-control-height !default; +$global-control-small-height: 30px !default; +$button-small-line-height: $global-control-small-height !default; +$global-control-large-height: 55px !default; +$button-large-line-height: $global-control-large-height !default; +$button-font-size: $global-font-size !default; +$button-small-font-size: $global-small-font-size !default; +$button-large-font-size: $global-medium-font-size !default; +$button-padding-horizontal: $global-gutter !default; +$button-small-padding-horizontal: $global-small-gutter !default; +$button-large-padding-horizontal: $global-medium-gutter !default; +$button-default-background: $global-muted-background !default; +$button-default-color: $global-emphasis-color !default; +$button-default-hover-background: darken($button-default-background, 5%) !default; +$button-default-hover-color: $global-emphasis-color !default; +$button-default-active-background: darken($button-default-background, 10%) !default; +$button-default-active-color: $global-emphasis-color !default; +$button-primary-background: $global-primary-background !default; +$button-primary-color: $global-inverse-color !default; +$button-primary-hover-background: darken($button-primary-background, 5%) !default; +$button-primary-hover-color: $global-inverse-color !default; +$button-primary-active-background: darken($button-primary-background, 10%) !default; +$button-primary-active-color: $global-inverse-color !default; +$button-secondary-background: $global-secondary-background !default; +$button-secondary-color: $global-inverse-color !default; +$button-secondary-hover-background: darken($button-secondary-background, 5%) !default; +$button-secondary-hover-color: $global-inverse-color !default; +$button-secondary-active-background: darken($button-secondary-background, 10%) !default; +$button-secondary-active-color: $global-inverse-color !default; +$button-danger-background: $global-danger-background !default; +$button-danger-color: $global-inverse-color !default; +$button-danger-hover-background: darken($button-danger-background, 5%) !default; +$button-danger-hover-color: $global-inverse-color !default; +$button-danger-active-background: darken($button-danger-background, 10%) !default; +$button-danger-active-color: $global-inverse-color !default; +$button-disabled-background: $global-muted-background !default; +$button-disabled-color: $global-muted-color !default; +$button-text-line-height: $global-line-height !default; +$button-text-color: $global-muted-color !default; +$button-text-hover-color: $global-color !default; +$button-text-disabled-color: $global-muted-color !default; +$button-link-line-height: $global-line-height !default; +$button-link-color: $global-link-color !default; +$button-link-hover-color: $global-link-hover-color !default; +$button-link-hover-text-decoration: underline !default; +$button-link-disabled-color: $global-muted-color !default; +$inverse-button-default-background: $inverse-global-primary-background !default; +$inverse-button-default-color: $inverse-global-inverse-color !default; +$inverse-button-default-hover-background: darken($inverse-button-default-background, 5%) !default; +$inverse-button-default-hover-color: $inverse-global-inverse-color !default; +$inverse-button-default-active-background: darken($inverse-button-default-background, 10%) !default; +$inverse-button-default-active-color: $inverse-global-inverse-color !default; +$inverse-button-primary-background: $inverse-global-primary-background !default; +$inverse-button-primary-color: $inverse-global-inverse-color !default; +$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default; +$inverse-button-primary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default; +$inverse-button-primary-active-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-background: $inverse-global-primary-background !default; +$inverse-button-secondary-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default; +$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default; +$inverse-button-secondary-active-color: $inverse-global-inverse-color !default; +$inverse-button-text-color: $inverse-global-muted-color !default; +$inverse-button-text-hover-color: $inverse-global-color !default; +$inverse-button-text-disabled-color: $inverse-global-muted-color !default; +$inverse-button-link-color: $inverse-global-muted-color !default; +$inverse-button-link-hover-color: $inverse-global-color !default; +$card-body-padding-horizontal: $global-gutter !default; +$card-body-padding-vertical: $global-gutter !default; +$card-body-padding-horizontal-l: $global-medium-gutter !default; +$card-body-padding-vertical-l: $global-medium-gutter !default; +$card-header-padding-horizontal: $global-gutter !default; +$card-header-padding-vertical: round($global-gutter / 2) !default; +$card-header-padding-horizontal-l: $global-medium-gutter !default; +$card-header-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-footer-padding-horizontal: $global-gutter !default; +$card-footer-padding-vertical: ($global-gutter / 2) !default; +$card-footer-padding-horizontal-l: $global-medium-gutter !default; +$card-footer-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-title-font-size: $global-large-font-size !default; +$card-title-line-height: 1.4 !default; +$card-badge-top: $global-gutter !default; +$card-badge-right: $card-badge-top !default; +$card-hover-background: $global-muted-background !default; +$card-default-background: $global-muted-background !default; +$card-default-color: $global-color !default; +$card-default-title-color: $global-emphasis-color !default; +$card-default-hover-background: darken($card-default-background, 5%) !default; +$card-primary-background: $global-primary-background !default; +$card-primary-color: $global-inverse-color !default; +$card-primary-title-color: $card-primary-color !default; +$card-primary-hover-background: darken($card-primary-background, 5%) !default; +$card-primary-color-mode: light !default; +$card-secondary-background: $global-secondary-background !default; +$card-secondary-color: $global-inverse-color !default; +$card-secondary-title-color: $card-secondary-color !default; +$card-secondary-hover-background: darken($card-secondary-background, 5%) !default; +$card-secondary-color-mode: light !default; +$card-small-body-padding-horizontal: $global-margin !default; +$card-small-body-padding-vertical: $global-margin !default; +$card-small-header-padding-horizontal: $global-margin !default; +$card-small-header-padding-vertical: round($global-margin / 1.5) !default; +$card-small-footer-padding-horizontal: $global-margin !default; +$card-small-footer-padding-vertical: round($global-margin / 1.5) !default; +$global-large-gutter: 70px !default; +$card-large-body-padding-horizontal-l: $global-large-gutter !default; +$card-large-body-padding-vertical-l: $global-large-gutter !default; +$card-large-header-padding-horizontal-l: $global-large-gutter !default; +$card-large-header-padding-vertical-l: round($global-large-gutter / 2) !default; +$card-large-footer-padding-horizontal-l: $global-large-gutter !default; +$card-large-footer-padding-vertical-l: round($global-large-gutter / 2) !default; +$close-color: $global-muted-color !default; +$close-hover-color: $global-color !default; +$inverse-close-color: $inverse-global-muted-color !default; +$inverse-close-hover-color: $inverse-global-color !default; +$column-gutter: $global-gutter !default; +$column-gutter-l: $global-medium-gutter !default; +$column-divider-rule-color: $global-border !default; +$column-divider-rule-width: 1px !default; +$inverse-column-divider-rule-color: $inverse-global-border !default; +$comment-header-margin-bottom: $global-margin !default; +$comment-title-font-size: $global-medium-font-size !default; +$comment-title-line-height: 1.4 !default; +$comment-meta-font-size: $global-small-font-size !default; +$comment-meta-line-height: 1.4 !default; +$comment-meta-color: $global-muted-color !default; +$comment-list-margin-top: $global-large-margin !default; +$comment-list-padding-left: 30px !default; +$comment-list-padding-left-m: 100px !default; +$container-max-width: 1200px !default; +$container-small-max-width: 900px !default; +$container-large-max-width: 1600px !default; +$container-padding-horizontal: 15px !default; +$container-padding-horizontal-s: $global-gutter !default; +$container-padding-horizontal-m: $global-medium-gutter !default; +$countdown-item-line-height: 70px !default; +$countdown-number-font-size: 2rem !default; +$countdown-number-font-size-s: 4rem !default; +$countdown-number-font-size-m: 6rem !default; +$countdown-separator-font-size: 1rem !default; +$countdown-separator-font-size-s: 2rem !default; +$countdown-separator-font-size-m: 3rem !default; +$description-list-term-color: $global-emphasis-color !default; +$description-list-term-margin-top: $global-margin !default; +$description-list-divider-term-margin-top: $global-margin !default; +$description-list-divider-term-border-width: $global-border-width !default; +$description-list-divider-term-border: $global-border !default; +$divider-margin-vertical: $global-margin !default; +$divider-icon-width: 50px !default; +$divider-icon-height: 20px !default; +$divider-icon-color: $global-border !default; +$divider-icon-line-top: 50% !default; +$divider-icon-line-width: 100% !default; +$divider-icon-line-border-width: $global-border-width !default; +$divider-icon-line-border: $global-border !default; +$internal-divider-icon-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$divider-small-width: 100px !default; +$divider-small-border-width: $global-border-width !default; +$divider-small-border: $global-border !default; +$inverse-divider-icon-color: $inverse-global-border !default; +$inverse-divider-icon-line-border: $inverse-global-border !default; +$inverse-divider-small-border: $inverse-global-border !default; +$dotnav-margin-horizontal: 12px !default; +$dotnav-margin-vertical: $dotnav-margin-horizontal !default; +$dotnav-item-width: 10px !default; +$dotnav-item-height: $dotnav-item-width !default; +$dotnav-item-border-radius: 50% !default; +$dotnav-item-background: rgba($global-color, 0.2) !default; +$dotnav-item-hover-background: rgba($global-color, 0.6) !default; +$dotnav-item-onclick-background: rgba($global-color, 0.2) !default; +$dotnav-item-active-background: rgba($global-color, 0.6) !default; +$inverse-dotnav-item-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-hover-background: rgba($inverse-global-color, 0.9) !default; +$inverse-dotnav-item-onclick-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-active-background: rgba($inverse-global-color, 0.9) !default; +$global-z-index: 1000 !default; +$drop-z-index: $global-z-index + 20 !default; +$drop-width: 300px !default; +$drop-margin: $global-margin !default; +$dropdown-z-index: $global-z-index + 20 !default; +$dropdown-min-width: 200px !default; +$dropdown-padding: 15px !default; +$dropdown-background: $global-muted-background !default; +$dropdown-color: $global-color !default; +$dropdown-margin: $global-small-margin !default; +$dropdown-nav-item-color: $global-muted-color !default; +$dropdown-nav-item-hover-color: $global-color !default; +$dropdown-nav-header-color: $global-emphasis-color !default; +$dropdown-nav-divider-border-width: $global-border-width !default; +$dropdown-nav-divider-border: $global-border !default; +$dropdown-nav-sublist-item-color: $global-muted-color !default; +$dropdown-nav-sublist-item-hover-color: $global-color !default; +$form-range-thumb-height: 15px !default; +$form-range-thumb-border-radius: 500px !default; +$form-range-thumb-background: $global-color !default; +$form-range-track-height: 3px !default; +$form-range-track-background: darken($global-muted-background, 5%) !default; +$form-range-track-focus-background: darken($global-muted-background, 15%) !default; +$form-height: $global-control-height !default; +$form-line-height: $form-height !default; +$form-padding-horizontal: 10px !default; +$form-padding-vertical: 4px !default; +$form-background: $global-muted-background !default; +$form-color: $global-color !default; +$form-focus-background: $global-muted-background !default; +$form-focus-color: $global-color !default; +$form-disabled-background: $global-muted-background !default; +$form-disabled-color: $global-muted-color !default; +$form-placeholder-color: $global-muted-color !default; +$form-small-height: $global-control-small-height !default; +$form-small-padding-horizontal: 8px !default; +$form-small-line-height: $form-small-height !default; +$form-small-font-size: $global-small-font-size !default; +$form-large-height: $global-control-large-height !default; +$form-large-padding-horizontal: 12px !default; +$form-large-line-height: $form-large-height !default; +$form-large-font-size: $global-medium-font-size !default; +$form-danger-color: $global-danger-background !default; +$form-success-color: $global-success-background !default; +$form-width-xsmall: 50px !default; +$form-width-small: 130px !default; +$form-width-medium: 200px !default; +$form-width-large: 500px !default; +$form-select-padding-right: 20px !default; +$form-select-icon-color: $global-color !default; +$form-select-option-color: #444 !default; +$form-select-disabled-icon-color: $global-muted-color !default; +$form-radio-size: 16px !default; +$form-radio-margin-top: -4px !default; +$form-radio-background: darken($global-muted-background, 5%) !default; +$form-radio-checked-background: $global-primary-background !default; +$form-radio-checked-icon-color: $global-inverse-color !default; +$form-radio-checked-focus-background: darken($global-primary-background, 10%) !default; +$form-radio-disabled-background: $global-muted-background !default; +$form-radio-disabled-icon-color: $global-muted-color !default; +$form-legend-font-size: $global-large-font-size !default; +$form-legend-line-height: 1.4 !default; +$form-stacked-margin-bottom: $global-small-margin !default; +$form-horizontal-label-width: 200px !default; +$form-horizontal-label-margin-top: 7px !default; +$form-horizontal-controls-margin-left: 215px !default; +$form-horizontal-controls-text-padding-top: 7px !default; +$form-icon-width: $form-height !default; +$form-icon-font-size: $global-font-size !default; +$form-icon-color: $global-muted-color !default; +$form-icon-hover-color: $global-color !default; +$internal-form-select-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-radio-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-form-checkbox-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-global-muted-background: rgba($global-inverse-color, 0.1) !default; +$inverse-form-background: $inverse-global-muted-background !default; +$inverse-form-color: $inverse-global-color !default; +$inverse-form-focus-background: $inverse-global-muted-background !default; +$inverse-form-focus-color: $inverse-global-color !default; +$inverse-form-placeholder-color: $inverse-global-muted-color !default; +$inverse-form-select-icon-color: $inverse-global-color !default; +$inverse-form-radio-background: darken($inverse-global-muted-background, 5%) !default; +$inverse-form-radio-checked-background: $inverse-global-primary-background !default; +$inverse-form-radio-checked-icon-color: $inverse-global-inverse-color !default; +$inverse-form-radio-checked-focus-background: darken($inverse-global-primary-background, 10%) !default; +$inverse-form-icon-color: $inverse-global-muted-color !default; +$inverse-form-icon-hover-color: $inverse-global-color !default; +$grid-column-xsmall: 100px !default; +$grid-column-small: 200px !default; +$grid-column-medium: 300px !default; +$grid-column-large: 400px !default; +$grid-column-xlarge: 500px !default; +$grid-column-xxlarge: 600px !default; +$grid-gap-small: $global-small-gutter !default; +$grid-gap-medium: $global-gutter !default; +$grid-gap-large: $global-large-gutter !default; +$grid-gutter-horizontal: $global-gutter !default; +$grid-gutter-vertical: $grid-gutter-horizontal !default; +$grid-gutter-horizontal-l: $global-medium-gutter !default; +$grid-gutter-vertical-l: $grid-gutter-horizontal-l !default; +$grid-small-gutter-horizontal: $global-small-gutter !default; +$grid-small-gutter-vertical: $grid-small-gutter-horizontal !default; +$grid-medium-gutter-horizontal: $global-gutter !default; +$grid-medium-gutter-vertical: $grid-medium-gutter-horizontal !default; +$grid-large-gutter-horizontal: $global-medium-gutter !default; +$grid-large-gutter-vertical: $grid-large-gutter-horizontal !default; +$grid-large-gutter-horizontal-l: $global-large-gutter !default; +$grid-large-gutter-vertical-l: $grid-large-gutter-horizontal-l !default; +$grid-divider-border-width: $global-border-width !default; +$grid-divider-border: $global-border !default; +$inverse-grid-divider-border: $inverse-global-border !default; +$heading-primary-font-size-l: 3.75rem !default; +$heading-primary-line-height-l: 1.1 !default; +$heading-primary-font-size-m: $heading-primary-font-size-l * 0.9 !default; +$heading-primary-font-size: $heading-primary-font-size-l * 0.8 !default; +$heading-primary-line-height: 1.2 !default; +$heading-hero-font-size-l: 8rem !default; +$heading-hero-line-height-l: 1 !default; +$heading-hero-font-size-m: $heading-hero-font-size-l * 0.75 !default; +$heading-hero-line-height-m: 1 !default; +$heading-hero-font-size: $heading-hero-font-size-l * 0.5 !default; +$heading-hero-line-height: 1.1 !default; +$heading-divider-padding-bottom: 10px !default; +$heading-divider-border-width: $global-border-width !default; +$heading-divider-border: $global-border !default; +$heading-bullet-top: unquote('calc(-0.1 * 1em)') !default; +$heading-bullet-height: 0.9em !default; +$heading-bullet-margin-right: 10px !default; +$heading-bullet-border-width: 5px !default; +$heading-bullet-border: $global-border !default; +$heading-line-top: 50% !default; +$heading-line-border-width: $global-border-width !default; +$heading-line-height: $heading-line-border-width !default; +$heading-line-width: 2000px !default; +$heading-line-border: $global-border !default; +$heading-line-margin-horizontal: 0.6em !default; +$inverse-heading-divider-border: $inverse-global-border !default; +$inverse-heading-bullet-border: $inverse-global-border !default; +$inverse-heading-line-border: $inverse-global-border !default; +$height-small-height: 150px !default; +$height-medium-height: 300px !default; +$height-large-height: 450px !default; +$icon-image-size: 20px !default; +$icon-link-color: $global-muted-color !default; +$icon-link-hover-color: $global-color !default; +$icon-link-active-color: darken($global-color, 5%) !default; +$icon-button-size: 36px !default; +$icon-button-border-radius: 500px !default; +$icon-button-background: $global-muted-background !default; +$icon-button-color: $global-muted-color !default; +$icon-button-hover-background: darken($icon-button-background, 5%) !default; +$icon-button-hover-color: $global-color !default; +$icon-button-active-background: darken($icon-button-background, 10%) !default; +$icon-button-active-color: $global-color !default; +$inverse-icon-link-color: $inverse-global-muted-color !default; +$inverse-icon-link-hover-color: $inverse-global-color !default; +$inverse-icon-link-active-color: $inverse-global-color !default; +$inverse-icon-button-background: $inverse-global-muted-background !default; +$inverse-icon-button-color: $inverse-global-muted-color !default; +$inverse-icon-button-hover-background: darken($inverse-icon-button-background, 5%) !default; +$inverse-icon-button-hover-color: $inverse-global-color !default; +$inverse-icon-button-active-background: darken($inverse-icon-button-background, 10%) !default; +$inverse-icon-button-active-color: $inverse-global-color !default; +$iconnav-margin-horizontal: $global-small-margin !default; +$iconnav-margin-vertical: $iconnav-margin-horizontal !default; +$iconnav-item-color: $global-muted-color !default; +$iconnav-item-hover-color: $global-color !default; +$iconnav-item-active-color: $global-color !default; +$inverse-iconnav-item-color: $inverse-global-muted-color !default; +$inverse-iconnav-item-hover-color: $inverse-global-color !default; +$inverse-iconnav-item-active-color: $inverse-global-color !default; +$inverse-global-color-mode: light !default; +$label-padding-vertical: 0 !default; +$label-padding-horizontal: $global-small-margin !default; +$label-background: $global-primary-background !default; +$label-line-height: $global-line-height !default; +$label-font-size: $global-small-font-size !default; +$label-color: $global-inverse-color !default; +$label-success-background: $global-success-background !default; +$label-success-color: $global-inverse-color !default; +$label-warning-background: $global-warning-background !default; +$label-warning-color: $global-inverse-color !default; +$label-danger-background: $global-danger-background !default; +$label-danger-color: $global-inverse-color !default; +$inverse-label-background: $inverse-global-primary-background !default; +$inverse-label-color: $inverse-global-inverse-color !default; +$leader-fill-content: '.' !default; +$leader-fill-margin-left: $global-small-gutter !default; +$lightbox-z-index: $global-z-index + 10 !default; +$lightbox-background: #000 !default; +$lightbox-item-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-padding-vertical: 10px !default; +$lightbox-toolbar-padding-horizontal: 10px !default; +$lightbox-toolbar-background: rgba(0,0,0,0.3) !default; +$lightbox-toolbar-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-padding: 5px !default; +$lightbox-toolbar-icon-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-hover-color: #fff !default; +$lightbox-button-size: 50px !default; +$lightbox-button-background: $lightbox-toolbar-background !default; +$lightbox-button-color: rgba(255,255,255,0.7) !default; +$lightbox-button-hover-color: #fff !default; +$link-muted-color: $global-muted-color !default; +$link-muted-hover-color: $global-color !default; +$link-text-hover-color: $global-muted-color !default; +$link-heading-hover-color: $global-primary-background !default; +$link-heading-hover-text-decoration: none !default; +$inverse-link-muted-color: $inverse-global-muted-color !default; +$inverse-link-muted-hover-color: $inverse-global-color !default; +$inverse-link-text-hover-color: $inverse-global-muted-color !default; +$inverse-link-heading-hover-color: $inverse-global-primary-background !default; +$list-margin-top: $global-small-margin !default; +$list-nested-padding-left: $global-gutter !default; +$list-divider-margin-top: $global-small-margin !default; +$list-divider-border-width: $global-border-width !default; +$list-divider-border: $global-border !default; +$list-striped-padding-vertical: $global-small-margin !default; +$list-striped-padding-horizontal: $global-small-margin !default; +$list-striped-background: $global-muted-background !default; +$list-bullet-width: ($global-line-height * 1em) !default; +$list-bullet-height: $list-bullet-width !default; +$list-bullet-margin-right: $global-small-margin !default; +$list-bullet-icon-color: $global-color !default; +$list-large-margin-top: $global-margin !default; +$list-large-divider-margin-top: $global-margin !default; +$list-large-striped-padding-vertical: $global-margin !default; +$list-large-striped-padding-horizontal: $global-small-margin !default; +$internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-list-divider-border: $inverse-global-border !default; +$inverse-list-striped-background: $inverse-global-muted-background !default; +$inverse-list-bullet-icon-color: $inverse-global-color !default; +$margin-margin: $global-margin !default; +$margin-small-margin: $global-small-margin !default; +$margin-medium-margin: $global-medium-margin !default; +$margin-large-margin: $global-medium-margin !default; +$margin-large-margin-l: $global-large-margin !default; +$margin-xlarge-margin: $global-large-margin !default; +$global-xlarge-margin: 140px !default; +$margin-xlarge-margin-l: $global-xlarge-margin !default; +$marker-padding: 5px !default; +$marker-background: $global-secondary-background !default; +$marker-color: $global-inverse-color !default; +$marker-hover-color: $global-inverse-color !default; +$inverse-marker-background: $global-muted-background !default; +$inverse-marker-color: $global-color !default; +$inverse-marker-hover-color: $global-color !default; +$modal-z-index: $global-z-index + 10 !default; +$modal-background: rgba(0,0,0,0.6) !default; +$modal-padding-horizontal: 15px !default; +$modal-padding-horizontal-s: $global-gutter !default; +$modal-padding-horizontal-m: $global-medium-gutter !default; +$modal-padding-vertical: $modal-padding-horizontal !default; +$modal-padding-vertical-s: 50px !default; +$modal-dialog-width: 600px !default; +$modal-dialog-background: $global-background !default; +$modal-container-width: 1200px !default; +$modal-body-padding-horizontal: $global-gutter !default; +$modal-body-padding-vertical: $global-gutter !default; +$modal-header-padding-horizontal: $global-gutter !default; +$modal-header-padding-vertical: ($modal-header-padding-horizontal / 2) !default; +$modal-header-background: $global-muted-background !default; +$modal-footer-padding-horizontal: $global-gutter !default; +$modal-footer-padding-vertical: ($modal-footer-padding-horizontal / 2) !default; +$modal-footer-background: $global-muted-background !default; +$modal-title-font-size: $global-xlarge-font-size !default; +$modal-title-line-height: 1.3 !default; +$modal-close-position: $global-small-margin !default; +$modal-close-padding: 5px !default; +$modal-close-outside-position: 0 !default; +$modal-close-outside-translate: 100% !default; +$modal-close-outside-color: lighten($global-inverse-color, 20%) !default; +$modal-close-outside-hover-color: $global-inverse-color !default; +$nav-item-padding-vertical: 5px !default; +$nav-item-padding-horizontal: 0 !default; +$nav-sublist-padding-vertical: 5px !default; +$nav-sublist-padding-left: 15px !default; +$nav-sublist-deeper-padding-left: 15px !default; +$nav-sublist-item-padding-vertical: 2px !default; +$nav-parent-icon-width: ($global-line-height * 1em) !default; +$nav-parent-icon-height: $nav-parent-icon-width !default; +$nav-parent-icon-color: $global-color !default; +$nav-header-padding-vertical: $nav-item-padding-vertical !default; +$nav-header-padding-horizontal: $nav-item-padding-horizontal !default; +$nav-header-font-size: $global-small-font-size !default; +$nav-header-text-transform: uppercase !default; +$nav-header-margin-top: $global-margin !default; +$nav-divider-margin-vertical: 5px !default; +$nav-divider-margin-horizontal: 0 !default; +$nav-default-item-color: $global-muted-color !default; +$nav-default-item-hover-color: $global-color !default; +$nav-default-item-active-color: $global-emphasis-color !default; +$nav-default-header-color: $global-emphasis-color !default; +$nav-default-divider-border-width: $global-border-width !default; +$nav-default-divider-border: $global-border !default; +$nav-default-sublist-item-color: $global-muted-color !default; +$nav-default-sublist-item-hover-color: $global-color !default; +$nav-primary-item-font-size: $global-large-font-size !default; +$nav-primary-item-line-height: $global-line-height !default; +$nav-primary-item-color: $global-muted-color !default; +$nav-primary-item-hover-color: $global-color !default; +$nav-primary-item-active-color: $global-emphasis-color !default; +$nav-primary-header-color: $global-emphasis-color !default; +$nav-primary-divider-border-width: $global-border-width !default; +$nav-primary-divider-border: $global-border !default; +$nav-primary-sublist-item-color: $global-muted-color !default; +$nav-primary-sublist-item-hover-color: $global-color !default; +$internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-nav-parent-icon-color: $inverse-global-color !default; +$inverse-nav-default-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-item-hover-color: $inverse-global-color !default; +$inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-divider-border: $inverse-global-border !default; +$inverse-nav-default-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-sublist-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-divider-border: $inverse-global-border !default; +$inverse-nav-primary-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default; +$navbar-background: $global-muted-background !default; +$navbar-color-mode: none !default; +$navbar-nav-item-height: 80px !default; +$navbar-nav-item-padding-horizontal: 15px !default; +$navbar-nav-item-color: $global-muted-color !default; +$navbar-nav-item-font-size: $global-font-size !default; +$navbar-nav-item-font-family: $global-font-family !default; +$navbar-nav-item-hover-color: $global-color !default; +$navbar-nav-item-onclick-color: $global-emphasis-color !default; +$navbar-nav-item-active-color: $global-emphasis-color !default; +$navbar-item-color: $global-color !default; +$navbar-toggle-color: $global-muted-color !default; +$navbar-toggle-hover-color: $global-color !default; +$navbar-subtitle-font-size: $global-small-font-size !default; +$navbar-dropdown-z-index: $global-z-index + 20 !default; +$navbar-dropdown-width: 200px !default; +$navbar-dropdown-margin: 0 !default; +$navbar-dropdown-padding: 15px !default; +$navbar-dropdown-background: $global-muted-background !default; +$navbar-dropdown-color: $global-color !default; +$navbar-dropdown-grid-gutter-horizontal: $global-gutter !default; +$navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default; +$navbar-dropdown-dropbar-margin-top: 0 !default; +$navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default; +$navbar-dropdown-nav-item-color: $global-muted-color !default; +$navbar-dropdown-nav-item-hover-color: $global-color !default; +$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default; +$navbar-dropdown-nav-header-color: $global-emphasis-color !default; +$navbar-dropdown-nav-divider-border-width: $global-border-width !default; +$navbar-dropdown-nav-divider-border: $global-border !default; +$navbar-dropdown-nav-sublist-item-color: $global-muted-color !default; +$navbar-dropdown-nav-sublist-item-hover-color: $global-color !default; +$navbar-dropbar-background: $navbar-dropdown-background !default; +$navbar-dropbar-z-index: $global-z-index - 20 !default; +$inverse-navbar-nav-item-color: $inverse-global-muted-color !default; +$inverse-navbar-nav-item-hover-color: $inverse-global-color !default; +$inverse-navbar-nav-item-onclick-color: $inverse-global-emphasis-color !default; +$inverse-navbar-nav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-navbar-item-color: $inverse-global-color !default; +$inverse-navbar-toggle-color: $inverse-global-muted-color !default; +$inverse-navbar-toggle-hover-color: $inverse-global-color !default; +$notification-position: 10px !default; +$notification-z-index: $global-z-index + 40 !default; +$notification-width: 350px !default; +$notification-message-margin-bottom: 10px !default; +$notification-message-padding: $global-small-gutter !default; +$notification-message-background: $global-muted-background !default; +$notification-message-color: $global-color !default; +$notification-message-font-size: $global-medium-font-size !default; +$notification-message-line-height: 1.4 !default; +$notification-close-top: $notification-message-padding + 5px !default; +$notification-close-right: $notification-message-padding !default; +$notification-message-primary-color: $global-primary-background !default; +$notification-message-success-color: $global-success-background !default; +$notification-message-warning-color: $global-warning-background !default; +$notification-message-danger-color: $global-danger-background !default; +$offcanvas-z-index: $global-z-index !default; +$offcanvas-bar-width: 270px !default; +$offcanvas-bar-padding-vertical: $global-margin !default; +$offcanvas-bar-padding-horizontal: $global-margin !default; +$offcanvas-bar-background: $global-secondary-background !default; +$offcanvas-bar-color-mode: light !default; +$offcanvas-bar-width-m: 350px !default; +$offcanvas-bar-padding-vertical-m: $global-medium-gutter !default; +$offcanvas-bar-padding-horizontal-m: $global-medium-gutter !default; +$offcanvas-close-position: 20px !default; +$offcanvas-close-padding: 5px !default; +$offcanvas-overlay-background: rgba(0,0,0,0.1) !default; +$overlay-padding-horizontal: $global-gutter !default; +$overlay-padding-vertical: $global-gutter !default; +$overlay-default-background: rgba($global-background, 0.8) !default; +$overlay-primary-background: rgba($global-secondary-background, 0.8) !default; +$overlay-primary-color-mode: light !default; +$padding-padding: $global-gutter !default; +$padding-padding-l: $global-medium-gutter !default; +$padding-small-padding: $global-small-gutter !default; +$padding-large-padding: $global-gutter !default; +$padding-large-padding-l: $global-large-gutter !default; +$pagination-margin-horizontal: 20px !default; +$pagination-item-color: $global-muted-color !default; +$pagination-item-hover-color: $global-color !default; +$pagination-item-hover-text-decoration: none !default; +$pagination-item-active-color: $global-color !default; +$pagination-item-disabled-color: $global-muted-color !default; +$inverse-pagination-item-color: $inverse-global-muted-color !default; +$inverse-pagination-item-hover-color: $inverse-global-color !default; +$inverse-pagination-item-active-color: $inverse-global-color !default; +$inverse-pagination-item-disabled-color: $inverse-global-muted-color !default; +$placeholder-margin-vertical: $global-margin !default; +$placeholder-padding-vertical: $global-gutter !default; +$placeholder-padding-horizontal: $global-gutter !default; +$placeholder-background: $global-muted-background !default; +$position-small-margin: $global-small-gutter !default; +$position-medium-margin: $global-gutter !default; +$position-large-margin: $global-gutter !default; +$position-large-margin-l: 50px !default; +$progress-height: 15px !default; +$progress-margin-vertical: $global-margin !default; +$progress-background: $global-muted-background !default; +$progress-bar-background: $global-primary-background !default; +$search-color: $global-color !default; +$search-placeholder-color: $global-muted-color !default; +$search-icon-color: $global-muted-color !default; +$search-default-width: 180px !default; +$search-default-height: $global-control-height !default; +$search-default-padding-horizontal: 6px !default; +$search-default-background: $global-muted-background !default; +$search-default-focus-background: $search-default-background !default; +$search-default-icon-width: $global-control-height !default; +$search-navbar-width: 400px !default; +$search-navbar-height: 40px !default; +$search-navbar-background: transparent !default; +$search-navbar-font-size: $global-large-font-size !default; +$search-navbar-icon-width: 40px !default; +$search-large-width: 500px !default; +$search-large-height: 80px !default; +$search-large-background: transparent !default; +$search-large-font-size: $global-xxlarge-font-size !default; +$search-large-icon-width: 80px !default; +$search-toggle-color: $global-muted-color !default; +$search-toggle-hover-color: $global-color !default; +$inverse-search-color: $inverse-global-color !default; +$inverse-search-placeholder-color: $inverse-global-muted-color !default; +$inverse-search-icon-color: $inverse-global-muted-color !default; +$inverse-search-default-background: $inverse-global-muted-background !default; +$inverse-search-default-focus-background: $inverse-search-default-background !default; +$inverse-search-navbar-background: transparent !default; +$inverse-search-large-background: transparent !default; +$inverse-search-toggle-color: $inverse-global-muted-color !default; +$inverse-search-toggle-hover-color: $inverse-global-color !default; +$section-padding-vertical: $global-medium-margin !default; +$section-padding-vertical-m: $global-large-margin !default; +$section-xsmall-padding-vertical: $global-margin !default; +$section-small-padding-vertical: $global-medium-margin !default; +$section-large-padding-vertical: $global-large-margin !default; +$section-large-padding-vertical-m: $global-xlarge-margin !default; +$section-xlarge-padding-vertical: $global-xlarge-margin !default; +$section-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$section-default-background: $global-background !default; +$section-muted-background: $global-muted-background !default; +$section-primary-background: $global-primary-background !default; +$section-primary-color-mode: light !default; +$section-secondary-background: $global-secondary-background !default; +$section-secondary-color-mode: light !default; +$slidenav-padding-vertical: 5px !default; +$slidenav-padding-horizontal: 10px !default; +$slidenav-color: rgba($global-color, 0.5) !default; +$slidenav-hover-color: rgba($global-color, 0.9) !default; +$slidenav-active-color: rgba($global-color, 0.5) !default; +$slidenav-large-padding-vertical: 10px !default; +$slidenav-large-padding-horizontal: $slidenav-large-padding-vertical !default; +$inverse-slidenav-color: rgba($inverse-global-color, 0.7) !default; +$inverse-slidenav-hover-color: rgba($inverse-global-color, 0.95) !default; +$inverse-slidenav-active-color: rgba($inverse-global-color, 0.7) !default; +$sortable-dragged-z-index: $global-z-index + 50 !default; +$sortable-placeholder-opacity: 0 !default; +$sortable-empty-height: 50px !default; +$spinner-size: 30px !default; +$spinner-stroke-width: 1 !default; +$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; +$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default; +$spinner-duration: 1.4s !default; +$sticky-z-index: $global-z-index - 20 !default; +$sticky-animation-duration: 0.2s !default; +$sticky-reverse-animation-duration: 0.2s !default; +$subnav-margin-horizontal: 20px !default; +$subnav-item-color: $global-muted-color !default; +$subnav-item-hover-color: $global-color !default; +$subnav-item-hover-text-decoration: none !default; +$subnav-item-active-color: $global-emphasis-color !default; +$subnav-divider-margin-horizontal: $subnav-margin-horizontal !default; +$subnav-divider-border-height: 1.5em !default; +$subnav-divider-border-width: $global-border-width !default; +$subnav-divider-border: $global-border !default; +$subnav-pill-item-padding-vertical: 5px !default; +$subnav-pill-item-padding-horizontal: 10px !default; +$subnav-pill-item-background: transparent !default; +$subnav-pill-item-color: $subnav-item-color !default; +$subnav-pill-item-hover-background: $global-muted-background !default; +$subnav-pill-item-hover-color: $global-color !default; +$subnav-pill-item-onclick-background: $subnav-pill-item-hover-background !default; +$subnav-pill-item-onclick-color: $subnav-pill-item-hover-color !default; +$subnav-pill-item-active-background: $global-primary-background !default; +$subnav-pill-item-active-color: $global-inverse-color !default; +$subnav-item-disabled-color: $global-muted-color !default; +$inverse-subnav-item-color: $inverse-global-muted-color !default; +$inverse-subnav-item-hover-color: $inverse-global-color !default; +$inverse-subnav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-subnav-divider-border: $inverse-global-border !default; +$inverse-subnav-pill-item-background: transparent !default; +$inverse-subnav-pill-item-color: $inverse-global-muted-color !default; +$inverse-subnav-pill-item-hover-background: $inverse-global-muted-background !default; +$inverse-subnav-pill-item-hover-color: $inverse-global-color !default; +$inverse-subnav-pill-item-onclick-background: $inverse-subnav-pill-item-hover-background !default; +$inverse-subnav-pill-item-onclick-color: $inverse-subnav-pill-item-hover-color !default; +$inverse-subnav-pill-item-active-background: $inverse-global-primary-background !default; +$inverse-subnav-pill-item-active-color: $inverse-global-inverse-color !default; +$inverse-subnav-item-disabled-color: $inverse-global-muted-color !default; +$tab-margin-horizontal: 20px !default; +$tab-item-padding-horizontal: 10px !default; +$tab-item-padding-vertical: 5px !default; +$tab-item-color: $global-muted-color !default; +$tab-item-hover-color: $global-color !default; +$tab-item-hover-text-decoration: none !default; +$tab-item-active-color: $global-emphasis-color !default; +$tab-item-disabled-color: $global-muted-color !default; +$inverse-tab-item-color: $inverse-global-muted-color !default; +$inverse-tab-item-hover-color: $inverse-global-color !default; +$inverse-tab-item-active-color: $inverse-global-emphasis-color !default; +$inverse-tab-item-disabled-color: $inverse-global-muted-color !default; +$table-margin-vertical: $global-margin !default; +$table-cell-padding-vertical: 16px !default; +$table-cell-padding-horizontal: 12px !default; +$table-header-cell-font-size: $global-font-size !default; +$table-header-cell-font-weight: bold !default; +$table-header-cell-color: $global-color !default; +$table-footer-font-size: $global-small-font-size !default; +$table-caption-font-size: $global-small-font-size !default; +$table-caption-color: $global-muted-color !default; +$table-row-active-background: #ffd !default; +$table-divider-border-width: $global-border-width !default; +$table-divider-border: $global-border !default; +$table-striped-row-background: $global-muted-background !default; +$table-hover-row-background: $table-row-active-background !default; +$table-small-cell-padding-vertical: 10px !default; +$table-small-cell-padding-horizontal: 12px !default; +$table-large-cell-padding-vertical: 22px !default; +$table-large-cell-padding-horizontal: 12px !default; +$table-expand-min-width: 150px !default; +$inverse-table-header-cell-color: $inverse-global-color !default; +$inverse-table-caption-color: $inverse-global-muted-color !default; +$inverse-table-row-active-background: fade-out($inverse-global-muted-background, 0.02) !default; +$inverse-table-divider-border: $inverse-global-border !default; +$inverse-table-striped-row-background: $inverse-global-muted-background !default; +$inverse-table-hover-row-background: $inverse-table-row-active-background !default; +$text-lead-font-size: $global-large-font-size !default; +$text-lead-line-height: 1.5 !default; +$text-lead-color: $global-emphasis-color !default; +$text-meta-font-size: $global-small-font-size !default; +$text-meta-line-height: 1.4 !default; +$text-meta-color: $global-muted-color !default; +$text-small-font-size: $global-small-font-size !default; +$text-small-line-height: 1.5 !default; +$text-large-font-size: $global-large-font-size !default; +$text-large-line-height: 1.5 !default; +$text-bold-font-weight: bolder !default; +$text-muted-color: $global-muted-color !default; +$text-primary-color: $global-primary-background !default; +$text-success-color: $global-success-background !default; +$text-warning-color: $global-warning-background !default; +$text-danger-color: $global-danger-background !default; +$text-background-color: $global-primary-background !default; +$inverse-text-lead-color: $inverse-global-color !default; +$inverse-text-meta-color: $inverse-global-muted-color !default; +$inverse-text-muted-color: $inverse-global-muted-color !default; +$inverse-text-primary-color: $inverse-global-color !default; +$thumbnav-margin-horizontal: 15px !default; +$thumbnav-margin-vertical: $thumbnav-margin-horizontal !default; +$tile-padding-horizontal: 15px !default; +$tile-padding-horizontal-s: $global-gutter !default; +$tile-padding-horizontal-m: $global-medium-gutter !default; +$tile-padding-vertical: $global-medium-margin !default; +$tile-padding-vertical-m: $global-large-margin !default; +$tile-xsmall-padding-vertical: $global-margin !default; +$tile-small-padding-vertical: $global-medium-margin !default; +$tile-large-padding-vertical: $global-large-margin !default; +$tile-large-padding-vertical-m: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$tile-default-background: $global-background !default; +$tile-muted-background: $global-muted-background !default; +$tile-primary-background: $global-primary-background !default; +$tile-primary-color-mode: light !default; +$tile-secondary-background: $global-secondary-background !default; +$tile-secondary-color-mode: light !default; +$tooltip-z-index: $global-z-index + 30 !default; +$tooltip-max-width: 200px !default; +$tooltip-padding-vertical: 3px !default; +$tooltip-padding-horizontal: 6px !default; +$tooltip-background: #666 !default; +$tooltip-border-radius: 2px !default; +$tooltip-color: $global-inverse-color !default; +$tooltip-font-size: 12px !default; +$tooltip-margin: 10px !default; +$totop-padding: 5px !default; +$totop-color: $global-muted-color !default; +$totop-hover-color: $global-color !default; +$totop-active-color: $global-emphasis-color !default; +$inverse-totop-color: $inverse-global-muted-color !default; +$inverse-totop-hover-color: $inverse-global-color !default; +$inverse-totop-active-color: $inverse-global-emphasis-color !default; +$transition-duration: 0.3s !default; +$transition-scale: 1.1 !default; +$transition-slide-small-translate: 10px !default; +$transition-slide-medium-translate: 50px !default; +$transition-slow-duration: 0.7s !default; +$panel-scrollable-height: 170px !default; +$panel-scrollable-padding: 10px !default; +$panel-scrollable-border-width: $global-border-width !default; +$panel-scrollable-border: $global-border !default; +$border-rounded-border-radius: 5px !default; +$box-shadow-duration: 0.1s !default; +$box-shadow-bottom-height: 30px !default; +$box-shadow-bottom-border-radius: 100% !default; +$box-shadow-bottom-background: #444 !default; +$box-shadow-bottom-blur: 20px !default; +$dropcap-margin-right: 10px !default; +$dropcap-font-size: (($global-line-height * 3) * 1em) !default; +$logo-font-size: $global-large-font-size !default; +$logo-font-family: $global-font-family !default; +$logo-color: $global-color !default; +$logo-hover-color: $global-color !default; +$dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default; +$inverse-logo-color: $inverse-global-color !default; +$inverse-logo-hover-color: $inverse-global-color !default; +$breakpoint-small: 640px !default; +$breakpoint-medium: 960px !default; +$breakpoint-large: 1200px !default; +$breakpoint-xlarge: 1600px !default; +$breakpoint-xsmall-max: ($breakpoint-small - 1) !default; +$breakpoint-small-max: ($breakpoint-medium - 1) !default; +$breakpoint-medium-max: ($breakpoint-large - 1) !default; +$breakpoint-large-max: ($breakpoint-xlarge - 1) !default; +$global-small-box-shadow: 0 2px 8px rgba(0,0,0,0.08) !default; +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08) !default; +$global-large-box-shadow: 0 14px 25px rgba(0,0,0,0.16) !default; +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16) !default; +$width-small-width: 150px !default; +$width-medium-width: 300px !default; +$width-large-width: 450px !default; +$width-xlarge-width: 600px !default; +$width-xxlarge-width: 750px !default; \ No newline at end of file diff --git a/scss/uikit/components/_import.components.scss b/scss/uikit/components/_import.components.scss new file mode 100644 index 00000000..445384fa --- /dev/null +++ b/scss/uikit/components/_import.components.scss @@ -0,0 +1,56 @@ +// Base +@import "variables.scss"; +@import "mixin.scss"; +@import "base.scss"; + +// Elements +@import "link.scss"; +@import "heading.scss"; +@import "divider.scss"; +@import "list.scss"; +@import "description-list.scss"; +@import "table.scss"; +@import "icon.scss"; +@import "form.scss"; // After: Icon +@import "button.scss"; + +// Layout +@import "section.scss"; +@import "container.scss"; +@import "grid.scss"; +@import "tile.scss"; +@import "card.scss"; + +// Common +@import "close.scss"; // After: Icon +@import "spinner.scss"; // After: Icon +@import "totop.scss"; // After: Icon +@import "alert.scss"; // After: Close +@import "badge.scss"; +@import "label.scss"; +@import "overlay.scss"; // After: Icon +@import "article.scss"; // After: Subnav +@import "comment.scss"; // After: Subnav +@import "search.scss"; // After: Icon + +// Navs +@import "nav.scss"; +@import "navbar.scss"; // After: Card, Grid, Nav, Icon, Search +@import "subnav.scss"; +@import "breadcrumb.scss"; +@import "pagination.scss"; +@import "tab.scss"; +@import "slidenav.scss"; // After: Icon +@import "dotnav.scss"; + +// JavaScript +@import "accordion.scss"; +@import "drop.scss"; // After: Card +@import "dropdown.scss"; // After: Card +@import "modal.scss"; // After: Close +@import "sticky.scss"; +@import "offcanvas.scss"; +@import "switcher.scss"; +// Scrollspy +// Toggle +// Scroll diff --git a/scss/uikit/components/_import.scss b/scss/uikit/components/_import.scss new file mode 100644 index 00000000..0d5fbd87 --- /dev/null +++ b/scss/uikit/components/_import.scss @@ -0,0 +1,94 @@ +// Base +@import "variables.scss"; +@import "mixin.scss"; +@import "base.scss"; + +// Elements +@import "link.scss"; +@import "heading.scss"; +@import "divider.scss"; +@import "list.scss"; +@import "description-list.scss"; +@import "table.scss"; +@import "icon.scss"; +@import "form-range.scss"; +@import "form.scss"; // After: Icon, Form Range +@import "button.scss"; + +// Layout +@import "section.scss"; +@import "container.scss"; +@import "grid.scss"; +@import "tile.scss"; +@import "card.scss"; + +// Common +@import "close.scss"; // After: Icon +@import "spinner.scss"; // After: Icon +@import "totop.scss"; // After: Icon +@import "marker.scss"; // After: Icon +@import "alert.scss"; // After: Close +@import "badge.scss"; +@import "label.scss"; +@import "overlay.scss"; // After: Icon +@import "article.scss"; // After: Subnav +@import "comment.scss"; // After: Subnav +@import "search.scss"; // After: Icon + +// Navs +@import "nav.scss"; +@import "navbar.scss"; // After: Card, Grid, Nav, Icon, Search +@import "subnav.scss"; +@import "breadcrumb.scss"; +@import "pagination.scss"; +@import "tab.scss"; +@import "slidenav.scss"; // After: Icon +@import "dotnav.scss"; +@import "thumbnav.scss"; + +// JavaScript +@import "accordion.scss"; +@import "drop.scss"; // After: Card +@import "dropdown.scss"; // After: Card +@import "modal.scss"; // After: Close +@import "lightbox.scss"; // After: Close +@import "slideshow.scss"; +@import "slider.scss"; +@import "sticky.scss"; +@import "offcanvas.scss"; +@import "switcher.scss"; +@import "leader.scss"; +// Scrollspy +// Toggle +// Scroll + +// Additional +@import "iconnav.scss"; +@import "notification.scss"; +@import "tooltip.scss"; +@import "placeholder.scss"; +@import "progress.scss"; +@import "sortable.scss"; +@import "countdown.scss"; + +// Utilities +@import "animation.scss"; +@import "width.scss"; +@import "height.scss"; +@import "text.scss"; +@import "column.scss"; +@import "cover.scss"; +@import "background.scss"; +@import "align.scss"; +@import "svg.scss"; +@import "utility.scss"; +@import "flex.scss"; // After: Utility +@import "margin.scss"; +@import "padding.scss"; +@import "position.scss"; +@import "transition.scss"; +@import "visibility.scss"; +@import "inverse.scss"; + +// Need to be loaded last +@import "print.scss"; diff --git a/scss/uikit/components/_import.utilities.scss b/scss/uikit/components/_import.utilities.scss new file mode 100644 index 00000000..bea39e5c --- /dev/null +++ b/scss/uikit/components/_import.utilities.scss @@ -0,0 +1,19 @@ +// Utilities +@import "animation.scss"; +@import "width.scss"; +@import "text.scss"; +@import "column.scss"; +@import "cover.scss"; +@import "background.scss"; +@import "align.scss"; +@import "utility.scss"; +@import "flex.scss"; // After: Utility +@import "margin.scss"; +@import "padding.scss"; +@import "position.scss"; +@import "transition.scss"; +@import "visibility.scss"; +@import "inverse.scss"; + +// Need to be loaded last +@import "print.scss"; diff --git a/scss/uikit/components/accordion.scss b/scss/uikit/components/accordion.scss new file mode 100644 index 00000000..bfb0e815 --- /dev/null +++ b/scss/uikit/components/accordion.scss @@ -0,0 +1,118 @@ +// Name: Accordion +// Description: Component to create accordions +// +// Component: `uk-accordion` +// +// Sub-objects: `uk-accordion-title` +// `uk-accordion-content` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$accordion-item-margin-top: $global-margin !default; + +$accordion-title-font-size: $global-medium-font-size !default; +$accordion-title-line-height: 1.4 !default; +$accordion-title-color: $global-emphasis-color !default; +$accordion-title-hover-color: $global-color !default; + +$accordion-content-margin-top: $global-margin !default; + + +/* ======================================================================== + Component: Accordion + ========================================================================== */ + +.uk-accordion { + padding: 0; + list-style: none; + @if(mixin-exists(hook-accordion)) {@include hook-accordion();} +} + + +/* Item + ========================================================================== */ + +.uk-accordion > :nth-child(n+2) { + margin-top: $accordion-item-margin-top; + @if(mixin-exists(hook-accordion-item)) {@include hook-accordion-item();} +} + + +/* Title + ========================================================================== */ + +.uk-accordion-title { + display: block; + font-size: $accordion-title-font-size; + line-height: $accordion-title-line-height; + color: $accordion-title-color; + @if(mixin-exists(hook-accordion-title)) {@include hook-accordion-title();} +} + +/* Hover + Focus */ +.uk-accordion-title:hover, +.uk-accordion-title:focus { + color: $accordion-title-hover-color; + text-decoration: none; + outline: none; + @if(mixin-exists(hook-accordion-title-hover)) {@include hook-accordion-title-hover();} +} + + +/* Content + ========================================================================== */ + +.uk-accordion-content { + margin-top: $accordion-content-margin-top; + @if(mixin-exists(hook-accordion-content)) {@include hook-accordion-content();} +} + +/* + * Micro clearfix + */ + +.uk-accordion-content::before, +.uk-accordion-content::after { + content: ""; + display: table; +} + +.uk-accordion-content::after { clear: both; } + +/* + * Remove margin from the last-child + */ + + .uk-accordion-content > :last-child { margin-bottom: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-accordion-misc)) {@include hook-accordion-misc();} + +// @mixin hook-accordion(){} +// @mixin hook-accordion-item(){} +// @mixin hook-accordion-title(){} +// @mixin hook-accordion-title-hover(){} +// @mixin hook-accordion-content(){} +// @mixin hook-accordion-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-accordion-title-color: $inverse-global-emphasis-color !default; +$inverse-accordion-title-hover-color: $inverse-global-inverse-color !default; + + + +// @mixin hook-inverse-accordion-item(){} +// @mixin hook-inverse-accordion-title(){} +// @mixin hook-inverse-accordion-title-hover(){} \ No newline at end of file diff --git a/scss/uikit/components/alert.scss b/scss/uikit/components/alert.scss new file mode 100644 index 00000000..8922cc85 --- /dev/null +++ b/scss/uikit/components/alert.scss @@ -0,0 +1,147 @@ +// Name: Alert +// Description: Component to create alert messages +// +// Component: `uk-alert` +// +// Adopted: `uk-alert-close` +// +// Modifiers: `uk-alert-primary` +// `uk-alert-success` +// `uk-alert-warning` +// `uk-alert-danger` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$alert-margin-vertical: $global-margin !default; +$alert-padding: $global-small-gutter !default; +$alert-padding-right: $alert-padding + 14px !default; +$alert-background: $global-muted-background !default; +$alert-color: $global-color !default; + +$alert-close-top: $alert-padding + 5px !default; +$alert-close-right: $alert-padding !default; + +$alert-primary-background: lighten(mix(white, $global-primary-background, 40%), 20%) !default; +$alert-primary-color: $global-primary-background !default; + +$alert-success-background: lighten(mix(white, $global-success-background, 40%), 25%) !default; +$alert-success-color: $global-success-background !default; + +$alert-warning-background: lighten(mix(white, $global-warning-background, 45%), 15%) !default; +$alert-warning-color: $global-warning-background !default; + +$alert-danger-background: lighten(mix(white, $global-danger-background, 40%), 20%) !default; +$alert-danger-color: $global-danger-background !default; + + +/* ======================================================================== + Component: Alert + ========================================================================== */ + +.uk-alert { + position: relative; + margin-bottom: $alert-margin-vertical; + padding: $alert-padding $alert-padding-right $alert-padding $alert-padding; + background: $alert-background; + color: $alert-color; + @if(mixin-exists(hook-alert)) {@include hook-alert();} +} + +/* Add margin if adjacent element */ +* + .uk-alert { margin-top: $alert-margin-vertical; } + +/* + * Remove margin from the last-child + */ + +.uk-alert > :last-child { margin-bottom: 0; } + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +.uk-alert-close { + position: absolute; + top: $alert-close-top; + right: $alert-close-right; + @if(mixin-exists(hook-alert-close)) {@include hook-alert-close();} +} + +/* + * Remove margin from adjacent element + */ + +.uk-alert-close:first-child + * { margin-top: 0; } + +/* + * Hover + Focus + */ + +.uk-alert-close:hover, +.uk-alert-close:focus { + @if(mixin-exists(hook-alert-close-hover)) {@include hook-alert-close-hover();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Primary + */ + +.uk-alert-primary { + background: $alert-primary-background; + color: $alert-primary-color; + @if(mixin-exists(hook-alert-primary)) {@include hook-alert-primary();} +} + +/* + * Success + */ + +.uk-alert-success { + background: $alert-success-background; + color: $alert-success-color; + @if(mixin-exists(hook-alert-success)) {@include hook-alert-success();} +} + +/* + * Warning + */ + +.uk-alert-warning { + background: $alert-warning-background; + color: $alert-warning-color; + @if(mixin-exists(hook-alert-warning)) {@include hook-alert-warning();} +} + +/* + * Danger + */ + +.uk-alert-danger { + background: $alert-danger-background; + color: $alert-danger-color; + @if(mixin-exists(hook-alert-danger)) {@include hook-alert-danger();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-alert-misc)) {@include hook-alert-misc();} + +// @mixin hook-alert(){} +// @mixin hook-alert-close(){} +// @mixin hook-alert-close-hover(){} +// @mixin hook-alert-primary(){} +// @mixin hook-alert-success(){} +// @mixin hook-alert-warning(){} +// @mixin hook-alert-danger(){} +// @mixin hook-alert-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/align.scss b/scss/uikit/components/align.scss new file mode 100644 index 00000000..bee6702b --- /dev/null +++ b/scss/uikit/components/align.scss @@ -0,0 +1,142 @@ +// Name: Align +// Description: Utilities to align embedded content +// +// Component: `uk-align-left-*` +// `uk-align-right-*` +// `uk-align-center` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$align-margin-horizontal: $global-gutter !default; +$align-margin-vertical: $global-gutter !default; + +$align-margin-horizontal-l: $global-medium-gutter !default; + + +/* ======================================================================== + Component: Align + ========================================================================== */ + +/* + * Default + */ + +[class*='uk-align'] { + display: block; + margin-bottom: $align-margin-vertical; +} + +* + [class*='uk-align'] { margin-top: $align-margin-vertical; } + +/* + * Center + */ + +.uk-align-center { + margin-left: auto; + margin-right: auto; +} + +/* + * Left/Right + */ + +.uk-align-left { + margin-top: 0; + margin-right: $align-margin-horizontal; + float: left; +} + +.uk-align-right { + margin-top: 0; + margin-left: $align-margin-horizontal; + float: right; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-align-left\@s { + margin-top: 0; + margin-right: $align-margin-horizontal; + float: left; + } + + .uk-align-right\@s { + margin-top: 0; + margin-left: $align-margin-horizontal; + float: right; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-align-left\@m { + margin-top: 0; + margin-right: $align-margin-horizontal; + float: left; + } + + .uk-align-right\@m { + margin-top: 0; + margin-left: $align-margin-horizontal; + float: right; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-align-left\@l { + margin-top: 0; + float: left; + } + + .uk-align-right\@l { + margin-top: 0; + float: right; + } + + .uk-align-left, + .uk-align-left\@s, + .uk-align-left\@m, + .uk-align-left\@l { margin-right: $align-margin-horizontal-l; } + + .uk-align-right, + .uk-align-right\@s, + .uk-align-right\@m, + .uk-align-right\@l { margin-left: $align-margin-horizontal-l; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-align-left\@xl { + margin-top: 0; + margin-right: $align-margin-horizontal-l; + float: left; + } + + .uk-align-right\@xl { + margin-top: 0; + margin-left: $align-margin-horizontal-l; + float: right; + } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-align-misc)) {@include hook-align-misc();} + +// @mixin hook-align-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/animation.scss b/scss/uikit/components/animation.scss new file mode 100644 index 00000000..c1d91928 --- /dev/null +++ b/scss/uikit/components/animation.scss @@ -0,0 +1,390 @@ +// Name: Animation +// Description: Utilities for keyframe animations +// +// Component: `uk-animation-*` +// +// Modifiers: `uk-animation-reverse` +// `uk-animation-fast` +// `uk-animation-fade` +// `uk-animation-scale-up` +// `uk-animation-scale-down` +// `uk-animation-slide-top-*` +// `uk-animation-slide-bottom-*` +// `uk-animation-slide-left-*` +// `uk-animation-slide-right-*` +// `uk-animation-kenburns` +// `uk-animation-shake` +// +// Sub-objects: `uk-animation-toggle` +// +// States: `uk-hover` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$animation-duration: 0.5s !default; +$animation-fade-duration: 0.8s !default; +$animation-kenburns-duration: 15s !default; +$animation-fast-duration: 0.1s !default; + +$animation-slide-small-translate: 10px !default; +$animation-slide-medium-translate: 50px !default; + + +/* ======================================================================== + Component: Animation + ========================================================================== */ + +[class*='uk-animation-'] { + animation-duration: $animation-duration; + animation-timing-function: ease-out; + animation-fill-mode: both; +} + + +/* Direction modifier + ========================================================================== */ + +.uk-animation-reverse { + animation-direction: reverse; + animation-timing-function: ease-in; +} + + +/* Animations for scrollspy + ========================================================================== */ + +/* + * Fade + */ + +.uk-animation-fade { + animation-name: uk-fade; + animation-duration: $animation-fade-duration; + animation-timing-function: linear; +} + +/* + * Scale + */ + +.uk-animation-scale-up { animation-name: uk-fade-scale-02; } +.uk-animation-scale-down { animation-name: uk-fade-scale-18; } + +/* + * Slide + */ + +.uk-animation-slide-top { animation-name: uk-fade-top; } +.uk-animation-slide-bottom { animation-name: uk-fade-bottom; } +.uk-animation-slide-left { animation-name: uk-fade-left; } +.uk-animation-slide-right { animation-name: uk-fade-right; } + +/* + * Slide Small + */ + +.uk-animation-slide-top-small { animation-name: uk-fade-top-small; } +.uk-animation-slide-bottom-small { animation-name: uk-fade-bottom-small; } +.uk-animation-slide-left-small { animation-name: uk-fade-left-small; } +.uk-animation-slide-right-small { animation-name: uk-fade-right-small; } + +/* + * Slide Medium + */ + +.uk-animation-slide-top-medium { animation-name: uk-fade-top-medium; } +.uk-animation-slide-bottom-medium { animation-name: uk-fade-bottom-medium; } +.uk-animation-slide-left-medium { animation-name: uk-fade-left-medium; } +.uk-animation-slide-right-medium { animation-name: uk-fade-right-medium; } + +/* + * Kenburns + */ + +.uk-animation-kenburns { + animation-name: uk-scale-kenburns; + animation-duration: $animation-kenburns-duration; +} + +/* + * Shake + */ + +.uk-animation-shake { animation-name: uk-shake; } + + +/* Duration modifier + ========================================================================== */ + +.uk-animation-fast { animation-duration: $animation-fast-duration; } + + +/* Enable animation only on hover +========================================================================== */ + +/* + * Note: Firefox and IE needs this because animations are not triggered when switching between display `none` and `block` + */ + +.uk-animation-toggle:not(:hover):not(.uk-hover) [class*='uk-animation-'] { animation-name: none; } + + +/* Keyframes used by animation classes + ========================================================================== */ + +/* + * Fade + */ + +@keyframes uk-fade { + 0% { opacity: 0; } + 100% { opacity: 1; } +} + +/* + * Slide Top + */ + +@keyframes uk-fade-top { + 0% { + opacity: 0; + transform: translateY(-100%); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Bottom + */ + +@keyframes uk-fade-bottom { + 0% { + opacity: 0; + transform: translateY(100%); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Left + */ + +@keyframes uk-fade-left { + 0% { + opacity: 0; + transform: translateX(-100%); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Right + */ + +@keyframes uk-fade-right { + 0% { + opacity: 0; + transform: translateX(100%); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Top Small + */ + +@keyframes uk-fade-top-small { + 0% { + opacity: 0; + transform: translateY(-$animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Bottom Small + */ + +@keyframes uk-fade-bottom-small { + 0% { + opacity: 0; + transform: translateY($animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Left Small + */ + +@keyframes uk-fade-left-small { + 0% { + opacity: 0; + transform: translateX(-$animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Right Small + */ + +@keyframes uk-fade-right-small { + 0% { + opacity: 0; + transform: translateX($animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Top Medium + */ + +@keyframes uk-fade-top-medium { + 0% { + opacity: 0; + transform: translateY(-$animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Bottom Medium + */ + +@keyframes uk-fade-bottom-medium { + 0% { + opacity: 0; + transform: translateY($animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Left Medium + */ + +@keyframes uk-fade-left-medium { + 0% { + opacity: 0; + transform: translateX(-$animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Right Medium + */ + +@keyframes uk-fade-right-medium { + 0% { + opacity: 0; + transform: translateX($animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Scale Up + */ + +@keyframes uk-fade-scale-02 { + 0% { + opacity: 0; + transform: scale(0.2); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +/* + * Scale Down + */ + +@keyframes uk-fade-scale-18 { + 0% { + opacity: 0; + transform: scale(1.8); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +/* + * Kenburns + */ + +@keyframes uk-scale-kenburns { + 0% { transform: scale(1); } + 100% { transform: scale(1.2); } +} + +/* + * Shake + */ + +@keyframes uk-shake { + 0%, 100% { transform: translateX(0); } + 10% { transform: translateX(-9px); } + 20% { transform: translateX(8px); } + 30% { transform: translateX(-7px); } + 40% { transform: translateX(6px); } + 50% { transform: translateX(-5px); } + 60% { transform: translateX(4px); } + 70% { transform: translateX(-3px); } + 80% { transform: translateX(2px); } + 90% { transform: translateX(-1px); } +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-animation-misc)) {@include hook-animation-misc();} + +// @mixin hook-animation-misc(){} diff --git a/scss/uikit/components/article.scss b/scss/uikit/components/article.scss new file mode 100644 index 00000000..3d4011f9 --- /dev/null +++ b/scss/uikit/components/article.scss @@ -0,0 +1,110 @@ +// Name: Article +// Description: Component to create articles +// +// Component: `uk-article` +// +// Sub-objects: `uk-article-title` +// `uk-article-meta` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$article-margin-top: $global-large-margin !default; + +$article-title-font-size-m: $global-xxlarge-font-size !default; +$article-title-font-size: $article-title-font-size-m * 0.85 !default; +$article-title-line-height: 1.2 !default; + +$article-meta-font-size: $global-small-font-size !default; +$article-meta-line-height: 1.4 !default; +$article-meta-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Article + ========================================================================== */ + +.uk-article { + @if(mixin-exists(hook-article)) {@include hook-article();} +} + +/* + * Micro clearfix + */ + +.uk-article::before, +.uk-article::after { + content: ""; + display: table; +} + +.uk-article::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-article > :last-child { margin-bottom: 0; } + + +/* Adjacent sibling + ========================================================================== */ + +.uk-article + .uk-article { + margin-top: $article-margin-top; + @if(mixin-exists(hook-article-adjacent)) {@include hook-article-adjacent();} +} + + +/* Title + ========================================================================== */ + +.uk-article-title { + font-size: $article-title-font-size; + line-height: $article-title-line-height; + @if(mixin-exists(hook-article-title)) {@include hook-article-title();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-article-title { font-size: $article-title-font-size-m; } + +} + + +/* Meta + ========================================================================== */ + +.uk-article-meta { + font-size: $article-meta-font-size; + line-height: $article-meta-line-height; + color: $article-meta-color; + @if(mixin-exists(hook-article-meta)) {@include hook-article-meta();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-article-misc)) {@include hook-article-misc();} + +// @mixin hook-article(){} +// @mixin hook-article-adjacent(){} +// @mixin hook-article-title(){} +// @mixin hook-article-meta(){} +// @mixin hook-article-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-article-meta-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-article-title(){} +// @mixin hook-inverse-article-meta(){} \ No newline at end of file diff --git a/scss/uikit/components/background.scss b/scss/uikit/components/background.scss new file mode 100644 index 00000000..ca7a344a --- /dev/null +++ b/scss/uikit/components/background.scss @@ -0,0 +1,136 @@ +// Name: Background +// Description: Utilities for backgrounds +// +// Component: `uk-background-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$background-default-background: $global-background !default; +$background-muted-background: $global-muted-background !default; +$background-primary-background: $global-primary-background !default; +$background-secondary-background: $global-secondary-background !default; + + +/* ======================================================================== + Component: Background + ========================================================================== */ + + +/* Color + ========================================================================== */ + +.uk-background-default { background-color: $background-default-background; } +.uk-background-muted { background-color: $background-muted-background; } +.uk-background-primary { background-color: $background-primary-background; } +.uk-background-secondary { background-color: $background-secondary-background; } + + +/* Size + ========================================================================== */ + +.uk-background-cover, +.uk-background-contain { + background-position: 50% 50%; + background-repeat: no-repeat; +} + +.uk-background-cover { background-size: cover; } +.uk-background-contain { background-size: contain; } + + +/* Position + ========================================================================== */ + +.uk-background-top-left { background-position: 0 0; } +.uk-background-top-center { background-position: 50% 0; } +.uk-background-top-right { background-position: 100% 0; } +.uk-background-center-left { background-position: 0 50%; } +.uk-background-center-center { background-position: 50% 50%; } +.uk-background-center-right { background-position: 100% 50%; } +.uk-background-bottom-left { background-position: 0 100%; } +.uk-background-bottom-center { background-position: 50% 100%; } +.uk-background-bottom-right { background-position: 100% 100%; } + + +/* Repeat + ========================================================================== */ + +.uk-background-norepeat { background-repeat: no-repeat; } + + +/* Attachment + ========================================================================== */ + +.uk-background-fixed { background-attachment: fixed; } + +/* + * Exclude touch devices because `fixed` doesn't work on iOS and Android + */ + +@media (pointer: coarse) { + .uk-background-fixed { background-attachment: scroll; } +} + + +/* Image + ========================================================================== */ + +/* Phone portrait and smaller */ +@media (max-width: $breakpoint-xsmall-max) { + + .uk-background-image\@s { background-image: none !important; } + +} + +/* Phone landscape and smaller */ +@media (max-width: $breakpoint-small-max) { + + .uk-background-image\@m { background-image: none !important; } + +} + +/* Tablet landscape and smaller */ +@media (max-width: $breakpoint-medium-max) { + + .uk-background-image\@l { background-image: none !important; } + +} + +/* Desktop and smaller */ +@media (max-width: $breakpoint-large-max) { + + .uk-background-image\@xl {background-image: none !important; } + +} + + +/* Blend modes + ========================================================================== */ + +.uk-background-blend-multiply { background-blend-mode: multiply; } +.uk-background-blend-screen { background-blend-mode: screen; } +.uk-background-blend-overlay { background-blend-mode: overlay; } +.uk-background-blend-darken { background-blend-mode: darken; } +.uk-background-blend-lighten { background-blend-mode: lighten; } +.uk-background-blend-color-dodge { background-blend-mode: color-dodge; } +.uk-background-blend-color-burn { background-blend-mode: color-burn; } +.uk-background-blend-hard-light { background-blend-mode: hard-light; } +.uk-background-blend-soft-light { background-blend-mode: soft-light; } +.uk-background-blend-difference { background-blend-mode: difference; } +.uk-background-blend-exclusion { background-blend-mode: exclusion; } +.uk-background-blend-hue { background-blend-mode: hue; } +.uk-background-blend-saturation { background-blend-mode: saturation; } +.uk-background-blend-color { background-blend-mode: color; } +.uk-background-blend-luminosity { background-blend-mode: luminosity; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-background-misc)) {@include hook-background-misc();} + +// @mixin hook-background-misc(){} diff --git a/scss/uikit/components/badge.scss b/scss/uikit/components/badge.scss new file mode 100644 index 00000000..ab79ae28 --- /dev/null +++ b/scss/uikit/components/badge.scss @@ -0,0 +1,83 @@ +// Name: Badge +// Description: Component to create notification badges +// +// Component: `uk-badge` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$badge-size: 22px !default; +$badge-padding-vertical: 0 !default; +$badge-padding-horizontal: 5px !default; +$badge-border-radius: 500px !default; +$badge-background: $global-primary-background !default; +$badge-color: $global-inverse-color !default; +$badge-font-size: $global-small-font-size !default; + +$badge-hover-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Badge + ========================================================================== */ + +/* + * 1. Style + * 2. Center child vertically and horizontally + */ + +.uk-badge { + box-sizing: border-box; + min-width: $badge-size; + height: $badge-size; + padding: $badge-padding-vertical $badge-padding-horizontal; + border-radius: $badge-border-radius; + vertical-align: middle; + /* 1 */ + background: $badge-background; + color: $badge-color; + font-size: $badge-font-size; + /* 2 */ + display: inline-flex; + justify-content: center; + align-items: center; + @if(mixin-exists(hook-badge)) {@include hook-badge();} +} + +/* + * Required for `a` + */ + +.uk-badge:hover, +.uk-badge:focus { + color: $badge-hover-color; + text-decoration: none; + outline: none; + @if(mixin-exists(hook-badge-hover)) {@include hook-badge-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-badge-misc)) {@include hook-badge-misc();} + +// @mixin hook-badge(){} +// @mixin hook-badge-hover(){} +// @mixin hook-badge-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-badge-background: $inverse-global-primary-background !default; +$inverse-badge-color: $inverse-global-inverse-color !default; +$inverse-badge-hover-color: $inverse-global-inverse-color !default; + + + +// @mixin hook-inverse-badge(){} +// @mixin hook-inverse-badge-hover(){} \ No newline at end of file diff --git a/scss/uikit/components/base.scss b/scss/uikit/components/base.scss new file mode 100644 index 00000000..c3f4137a --- /dev/null +++ b/scss/uikit/components/base.scss @@ -0,0 +1,629 @@ +// Name: Base +// Description: Default values for HTML elements +// +// Component: `uk-link` +// `uk-h1`, `uk-h2`, `uk-h3`, `uk-h4`, `uk-h5`, `uk-h6` +// `uk-hr` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$base-body-background: $global-background !default; +$base-body-font-family: $global-font-family !default; +$base-body-font-weight: normal !default; +$base-body-font-size: $global-font-size !default; +$base-body-line-height: $global-line-height !default; +$base-body-color: $global-color !default; + +$base-link-color: $global-link-color !default; +$base-link-text-decoration: none !default; +$base-link-hover-color: $global-link-hover-color !default; +$base-link-hover-text-decoration: underline !default; + +$base-strong-font-weight: bolder !default; +$base-code-font-size: $global-small-font-size !default; +$base-code-font-family: Consolas, monaco, monospace !default; +$base-code-color: $global-danger-background !default; +$base-em-color: $global-danger-background !default; +$base-ins-background: #ffd !default; +$base-ins-color: $global-color !default; +$base-mark-background: #ffd !default; +$base-mark-color: $global-color !default; +$base-quote-font-style: italic !default; +$base-small-font-size: 80% !default; + +$base-margin-vertical: $global-margin !default; + +$base-heading-font-family: $global-font-family !default; +$base-heading-font-weight: normal !default; +$base-heading-color: $global-emphasis-color !default; +$base-heading-text-transform: none !default; +$base-heading-margin-top: $global-medium-margin !default; +$base-h1-font-size-m: $global-xxlarge-font-size !default; +$base-h1-font-size: $base-h1-font-size-m * 0.85 !default; +$base-h1-line-height: 1.2 !default; +$base-h2-font-size-m: $global-xlarge-font-size !default; +$base-h2-font-size: $base-h2-font-size-m * 0.85 !default; +$base-h2-line-height: 1.3 !default; +$base-h3-font-size: $global-large-font-size !default; +$base-h3-line-height: 1.4 !default; +$base-h4-font-size: $global-medium-font-size !default; +$base-h4-line-height: 1.4 !default; +$base-h5-font-size: $global-font-size !default; +$base-h5-line-height: 1.4 !default; +$base-h6-font-size: $global-small-font-size !default; +$base-h6-line-height: 1.4 !default; + +$base-list-padding-left: 30px !default; + +$base-hr-margin-vertical: $global-margin !default; +$base-hr-border-width: $global-border-width !default; +$base-hr-border: $global-border !default; + +$base-blockquote-font-size: $global-medium-font-size !default; +$base-blockquote-line-height: 1.5 !default; +$base-blockquote-font-style: italic !default; +$base-blockquote-margin-vertical: $global-margin !default; +$base-blockquote-footer-margin-top: $global-small-margin !default; +$base-blockquote-footer-font-size: $global-small-font-size !default; +$base-blockquote-footer-line-height: 1.5 !default; + +$base-pre-font-size: $global-small-font-size !default; +$base-pre-line-height: 1.5 !default; +$base-pre-font-family: $base-code-font-family !default; +$base-pre-color: $global-color !default; + +$base-selection-background: #39f !default; +$base-selection-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Base + ========================================================================== */ + +/* + * 1. Set `font-size` to support `rem` units + * Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge + * 2. Prevent adjustments of font size after orientation changes in iOS. + * 3. Style + */ + +html { + /* 1 */ + font-family: $base-body-font-family; + font-size: $base-body-font-size; + font-weight: $base-body-font-weight; + line-height: $base-body-line-height; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 3 */ + background: $base-body-background; + color: $base-body-color; + @if(mixin-exists(hook-base-body)) {@include hook-base-body();} +} + +/* + * Remove the margin in all browsers. + */ + +body { margin: 0; } + + +/* Links + ========================================================================== */ + +/* + * Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { -webkit-text-decoration-skip: objects; } + +/* + * Remove the outline on focused links when they are also active or hovered + */ + +a:active, +a:hover { outline: none; } + +/* + * Style + */ + +a, +.uk-link { + color: $base-link-color; + text-decoration: $base-link-text-decoration; + cursor: pointer; + @if(mixin-exists(hook-base-link)) {@include hook-base-link();} +} + +a:hover, +.uk-link:hover { + color: $base-link-hover-color; + text-decoration: $base-link-hover-text-decoration; + @if(mixin-exists(hook-base-link-hover)) {@include hook-base-link-hover();} +} + + +/* Text-level semantics + ========================================================================== */ + +/* + * 1. Remove the bottom border in Chrome 57-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + /* 1 */ + border-bottom: none; + /* 2 */ + text-decoration: underline; + text-decoration: underline dotted; +} + + +/* + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { font-weight: $base-strong-font-weight; } + +/* + * 1. Consolas has a better baseline in running text compared to `Courier` + * 2. Correct the odd `em` font sizing in all browsers. + * 3. Style + */ + +:not(pre) > code, +:not(pre) > kbd, +:not(pre) > samp { + /* 1 */ + font-family: $base-code-font-family; + /* 2 */ + font-size: $base-code-font-size; + /* 3 */ + color: $base-code-color; + white-space: nowrap; + @if(mixin-exists(hook-base-code)) {@include hook-base-code();} +} + +/* + * Emphasize + */ + +em { color: $base-em-color; } + +/* + * Insert + */ + +ins { + background: $base-ins-background; + color: $base-ins-color; + text-decoration: none; +} + +/* + * Mark + */ + +mark { + background: $base-mark-background; + color: $base-mark-color; +} + +/* + * Quote + */ + +q { font-style: $base-quote-font-style; } + +/* + * Add the correct font size in all browsers. + */ + +small { font-size: $base-small-font-size; } + +/* + * Prevents `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { top: -0.5em; } +sub { bottom: -0.25em; } + + +/* Embedded content + ========================================================================== */ + +/* + * Remove the gap between embedded content and the bottom of their containers. + */ + +audio, +canvas, +iframe, +img, +svg, +video { vertical-align: middle; } + +/* + * Responsiveness + * 1. Set a maximum width + * 2. Auto scale the height. Only needed if `height` attribute is present + * 2. Corrects `max-width` behavior if padding and border are used + */ + +audio, +canvas, +img, +video { + /* 1 */ + max-width: 100%; + /* 2 */ + height: auto; + /* 3 */ + box-sizing: border-box; +} + +/* + * Hide the overflow in IE. + */ + +svg:not(:root) { overflow: hidden; } + +/* + * Hide `alt` text for lazy load images + * Selector for background while loading img[data-src*='.jpg'][src*='data:image'] { background: grey; } + */ + +img:not([src]) { visibility: hidden; } + + +/* Block elements + ========================================================================== */ + +/* + * Margins + */ + +p, +ul, +ol, +dl, +pre, +address, +fieldset, +figure { margin: 0 0 $base-margin-vertical 0; } + +/* Add margin if adjacent element */ +* + p, +* + ul, +* + ol, +* + dl, +* + pre, +* + address, +* + fieldset, +* + figure { margin-top: $base-margin-vertical; } + + +/* Headings + ========================================================================== */ + +h1, .uk-h1, +h2, .uk-h2, +h3, .uk-h3, +h4, .uk-h4, +h5, .uk-h5, +h6, .uk-h6 { + margin: 0 0 $base-margin-vertical 0; + font-family: $base-heading-font-family; + font-weight: $base-heading-font-weight; + color: $base-heading-color; + text-transform: $base-heading-text-transform; + @if(mixin-exists(hook-base-heading)) {@include hook-base-heading();} +} + +/* Add margin if adjacent element */ +* + h1, * + .uk-h1, +* + h2, * + .uk-h2, +* + h3, * + .uk-h3, +* + h4, * + .uk-h4, +* + h5, * + .uk-h5, +* + h6, * + .uk-h6 { margin-top: $base-heading-margin-top; } + +/* + * Sizes + */ + +h1, .uk-h1 { + font-size: $base-h1-font-size; + line-height: $base-h1-line-height; + @if(mixin-exists(hook-base-h1)) {@include hook-base-h1();} +} + +h2, .uk-h2 { + font-size: $base-h2-font-size; + line-height: $base-h2-line-height; + @if(mixin-exists(hook-base-h2)) {@include hook-base-h2();} +} + +h3, .uk-h3 { + font-size: $base-h3-font-size; + line-height: $base-h3-line-height; + @if(mixin-exists(hook-base-h3)) {@include hook-base-h3();} +} + +h4, .uk-h4 { + font-size: $base-h4-font-size; + line-height: $base-h4-line-height; + @if(mixin-exists(hook-base-h4)) {@include hook-base-h4();} +} + +h5, .uk-h5 { + font-size: $base-h5-font-size; + line-height: $base-h5-line-height; + @if(mixin-exists(hook-base-h5)) {@include hook-base-h5();} +} + +h6, .uk-h6 { + font-size: $base-h6-font-size; + line-height: $base-h6-line-height; + @if(mixin-exists(hook-base-h6)) {@include hook-base-h6();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + h1, .uk-h1 { font-size: $base-h1-font-size-m; } + h2, .uk-h2 { font-size: $base-h2-font-size-m; } + +} + + +/* Lists + ========================================================================== */ + +ul, +ol { padding-left: $base-list-padding-left; } + +/* + * Reset margin for nested lists + */ + +ul > li > ul, +ul > li > ol, +ol > li > ol, +ol > li > ul { margin: 0; } + + +/* Description lists + ========================================================================== */ + +dt { font-weight: bold; } +dd { margin-left: 0; } + + +/* Horizontal rules + ========================================================================== */ + +/* + * 1. Add the correct box sizing and height in Firefox. + * 2. Show the overflow in Edge and IE. + * 3. Add the correct text-align in Edge and IE. + * 4. Style + */ + +hr, .uk-hr { + /* 1 */ + box-sizing: content-box; + height: 0; + /* 2 */ + overflow: visible; + /* 3 */ + text-align: inherit; + /* 4 */ + margin: 0 0 $base-hr-margin-vertical 0; + border: 0; + border-top: $base-hr-border-width solid $base-hr-border; + @if(mixin-exists(hook-base-hr)) {@include hook-base-hr();} +} + +/* Add margin if adjacent element */ +* + hr, +* + .uk-hr { margin-top: $base-hr-margin-vertical } + + +/* Address + ========================================================================== */ + +address { font-style: normal; } + + +/* Blockquotes + ========================================================================== */ + +blockquote { + margin: 0 0 $base-blockquote-margin-vertical 0; + font-size: $base-blockquote-font-size; + line-height: $base-blockquote-line-height; + font-style: $base-blockquote-font-style; + @if(mixin-exists(hook-base-blockquote)) {@include hook-base-blockquote();} +} + +/* Add margin if adjacent element */ +* + blockquote { margin-top: $base-blockquote-margin-vertical; } + +/* + * Content + */ + +blockquote p:last-of-type { margin-bottom: 0; } + +blockquote footer { + margin-top: $base-blockquote-footer-margin-top; + font-size: $base-blockquote-footer-font-size; + line-height: $base-blockquote-footer-line-height; + @if(mixin-exists(hook-base-blockquote-footer)) {@include hook-base-blockquote-footer();} +} + + +/* Preformatted text + ========================================================================== */ + +/* + * 1. Contain overflow in all browsers. + */ + +pre { + font: $base-pre-font-size unquote("/") $base-pre-line-height $base-pre-font-family; + color: $base-pre-color; + -moz-tab-size: 4; + tab-size: 4; + /* 1 */ + overflow: auto; + @if(mixin-exists(hook-base-pre)) {@include hook-base-pre();} +} + +pre code { font-family: $base-pre-font-family; } + + +/* Selection pseudo-element + ========================================================================== */ + +::-moz-selection { + background: $base-selection-background; + color: $base-selection-color; + text-shadow: none; +} + +::selection { + background: $base-selection-background; + color: $base-selection-color; + text-shadow: none; +} + + +/* HTML5 elements + ========================================================================== */ + +/* + * 1. Add the correct display in Edge, IE 10+, and Firefox. + * 2. Add the correct display in IE. + */ + +details, /* 1 */ +main { /* 2 */ + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { display: list-item; } + +/* + * Add the correct display in IE. + */ + +template { display: none; } + + +/* Iframe + ========================================================================== */ + +iframe { border: 0; } + + +/* Prevent the 300ms delay for touchscreen interactions + ========================================================================== */ + +/* + * Most browsers prevent the 300ms delay automatically for sites that use the `width=device-width` property. + * For Safari on iOS 9.3+, IE 11 and Edge on desktops and IE 11 on Windows Phone 8.1 it must be applied manually. + */ + +a, +area, +button, +input, +label, +select, +summary, +textarea { touch-action: manipulation; } + + +/* Pass media breakpoints to JS + ========================================================================== */ + +/* + * Breakpoints + */ + +.var-media-s::before { content: '#{$breakpoint-small}'; } +.var-media-m::before { content: '#{$breakpoint-medium}'; } +.var-media-l::before { content: '#{$breakpoint-large}'; } +.var-media-xl::before { content: '#{$breakpoint-xlarge}'; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-base-misc)) {@include hook-base-misc();} + +// @mixin hook-base-body(){} +// @mixin hook-base-link(){} +// @mixin hook-base-link-hover(){} +// @mixin hook-base-code(){} +// @mixin hook-base-heading(){} +// @mixin hook-base-h1(){} +// @mixin hook-base-h2(){} +// @mixin hook-base-h3(){} +// @mixin hook-base-h4(){} +// @mixin hook-base-h5(){} +// @mixin hook-base-h6(){} +// @mixin hook-base-hr(){} +// @mixin hook-base-blockquote(){} +// @mixin hook-base-blockquote-footer(){} +// @mixin hook-base-pre(){} +// @mixin hook-base-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-base-color: $inverse-global-color !default; +$inverse-base-link-color: $inverse-global-emphasis-color !default; +$inverse-base-link-hover-color: $inverse-global-emphasis-color !default; +$inverse-base-code-color: $inverse-global-color !default; +$inverse-base-em-color: $inverse-global-emphasis-color !default; +$inverse-base-heading-color: $inverse-global-emphasis-color !default; +$inverse-base-hr-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-base-link(){} +// @mixin hook-inverse-base-link-hover(){} +// @mixin hook-inverse-base-code(){} +// @mixin hook-inverse-base-heading(){} +// @mixin hook-inverse-base-h1(){} +// @mixin hook-inverse-base-h2(){} +// @mixin hook-inverse-base-h3(){} +// @mixin hook-inverse-base-h4(){} +// @mixin hook-inverse-base-h5(){} +// @mixin hook-inverse-base-h6(){} +// @mixin hook-inverse-base-blockquote(){} +// @mixin hook-inverse-base-blockquote-footer(){} +// @mixin hook-inverse-base-hr(){} diff --git a/scss/uikit/components/breadcrumb.scss b/scss/uikit/components/breadcrumb.scss new file mode 100644 index 00000000..1f4ca502 --- /dev/null +++ b/scss/uikit/components/breadcrumb.scss @@ -0,0 +1,122 @@ +// Name: Breadcrumb +// Description: Component to create a breadcrumb navigation +// +// Component: `uk-breadcrumb` +// +// States: `uk-disabled` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$breadcrumb-item-font-size: $global-small-font-size !default; +$breadcrumb-item-color: $global-muted-color !default; +$breadcrumb-item-hover-color: $global-color !default; +$breadcrumb-item-hover-text-decoration: none !default; +$breadcrumb-item-active-color: $global-color !default; + +$breadcrumb-divider: "/" !default; +$breadcrumb-divider-margin-horizontal: 20px !default; +$breadcrumb-divider-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Breadcrumb + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + */ + +.uk-breadcrumb { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-breadcrumb)) {@include hook-breadcrumb();} +} + +/* + * Space is allocated solely based on content dimensions: 0 0 auto + */ + +.uk-breadcrumb > * { flex: none; } + + +/* Items + ========================================================================== */ + +.uk-breadcrumb > * > * { + display: inline-block; + font-size: $breadcrumb-item-font-size; + color: $breadcrumb-item-color; + @if(mixin-exists(hook-breadcrumb-item)) {@include hook-breadcrumb-item();} +} + +/* Hover + Focus */ +.uk-breadcrumb > * > :hover, +.uk-breadcrumb > * > :focus { + color: $breadcrumb-item-hover-color; + text-decoration: $breadcrumb-item-hover-text-decoration; + @if(mixin-exists(hook-breadcrumb-item-hover)) {@include hook-breadcrumb-item-hover();} +} + +/* Disabled */ +.uk-breadcrumb > .uk-disabled > * { + @if(mixin-exists(hook-breadcrumb-item-disabled)) {@include hook-breadcrumb-item-disabled();} +} + +/* Active */ +.uk-breadcrumb > :last-child > * { + color: $breadcrumb-item-active-color; + @if(mixin-exists(hook-breadcrumb-item-active)) {@include hook-breadcrumb-item-active();} +} + +/* + * Divider + * `nth-child` makes it also work without JS if it's only one row + */ + +.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before { + content: $breadcrumb-divider; + display: inline-block; + margin: 0 $breadcrumb-divider-margin-horizontal; + color: $breadcrumb-divider-color; + @if(mixin-exists(hook-breadcrumb-divider)) {@include hook-breadcrumb-divider();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-breadcrumb-misc)) {@include hook-breadcrumb-misc();} + +// @mixin hook-breadcrumb(){} +// @mixin hook-breadcrumb-item(){} +// @mixin hook-breadcrumb-item-hover(){} +// @mixin hook-breadcrumb-item-disabled(){} +// @mixin hook-breadcrumb-item-active(){} +// @mixin hook-breadcrumb-divider(){} +// @mixin hook-breadcrumb-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-breadcrumb-item-color: $inverse-global-muted-color !default; +$inverse-breadcrumb-item-hover-color: $inverse-global-color !default; +$inverse-breadcrumb-item-active-color: $inverse-global-color !default; +$inverse-breadcrumb-divider-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-breadcrumb-item(){} +// @mixin hook-inverse-breadcrumb-item-hover(){} +// @mixin hook-inverse-breadcrumb-item-disabled(){} +// @mixin hook-inverse-breadcrumb-item-active(){} +// @mixin hook-inverse-breadcrumb-divider(){} diff --git a/scss/uikit/components/button.scss b/scss/uikit/components/button.scss new file mode 100644 index 00000000..f65e1c22 --- /dev/null +++ b/scss/uikit/components/button.scss @@ -0,0 +1,451 @@ +// Name: Button +// Description: Styles for buttons +// +// Component: `uk-button` +// +// Sub-objects: `uk-button-group` +// +// Modifiers: `uk-button-default` +// `uk-button-primary` +// `uk-button-secondary` +// `uk-button-danger` +// `uk-button-text` +// `uk-button-link` +// `uk-button-small` +// `uk-button-large` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$button-line-height: $global-control-height !default; +$button-small-line-height: $global-control-small-height !default; +$button-large-line-height: $global-control-large-height !default; + +$button-font-size: $global-font-size !default; +$button-small-font-size: $global-small-font-size !default; +$button-large-font-size: $global-medium-font-size !default; + +$button-padding-horizontal: $global-gutter !default; +$button-small-padding-horizontal: $global-small-gutter !default; +$button-large-padding-horizontal: $global-medium-gutter !default; + +$button-default-background: $global-muted-background !default; +$button-default-color: $global-emphasis-color !default; +$button-default-hover-background: darken($button-default-background, 5%) !default; +$button-default-hover-color: $global-emphasis-color !default; +$button-default-active-background: darken($button-default-background, 10%) !default; +$button-default-active-color: $global-emphasis-color !default; + +$button-primary-background: $global-primary-background !default; +$button-primary-color: $global-inverse-color !default; +$button-primary-hover-background: darken($button-primary-background, 5%) !default; +$button-primary-hover-color: $global-inverse-color !default; +$button-primary-active-background: darken($button-primary-background, 10%) !default; +$button-primary-active-color: $global-inverse-color !default; + +$button-secondary-background: $global-secondary-background !default; +$button-secondary-color: $global-inverse-color !default; +$button-secondary-hover-background: darken($button-secondary-background, 5%) !default; +$button-secondary-hover-color: $global-inverse-color !default; +$button-secondary-active-background: darken($button-secondary-background, 10%) !default; +$button-secondary-active-color: $global-inverse-color !default; + +$button-danger-background: $global-danger-background !default; +$button-danger-color: $global-inverse-color !default; +$button-danger-hover-background: darken($button-danger-background, 5%) !default; +$button-danger-hover-color: $global-inverse-color !default; +$button-danger-active-background: darken($button-danger-background, 10%) !default; +$button-danger-active-color: $global-inverse-color !default; + +$button-disabled-background: $global-muted-background !default; +$button-disabled-color: $global-muted-color !default; + +$button-text-line-height: $global-line-height !default; +$button-text-color: $global-muted-color !default; +$button-text-hover-color: $global-color !default; +$button-text-disabled-color: $global-muted-color !default; + +$button-link-line-height: $global-line-height !default; +$button-link-color: $global-link-color !default; +$button-link-hover-color: $global-link-hover-color !default; +$button-link-hover-text-decoration: underline !default; +$button-link-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Button + ========================================================================== */ + +/* + * 1. Remove margins in Chrome, Safari and Opera. + * 2. Remove borders for `button`. + * 3. Remove border-radius in Chrome. + * 4. Address `overflow` set to `hidden` in IE. + * 5. Correct `font` properties and `color` not being inherited for `button`. + * 6. Remove the inheritance of text transform in Edge, Firefox, and IE. + * 7. Style + * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements. + * Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements. + * 9. Align text if button has a width + * 10. Required for `a`. + */ + +.uk-button { + /* 1 */ + margin: 0; + /* 2 */ + border: none; + /* 3 */ + border-radius: 0; + /* 4 */ + overflow: visible; + /* 5 */ + font: inherit; + color: inherit; + /* 6 */ + text-transform: none; + /* 7 */ + display: inline-block; + box-sizing: border-box; + padding: 0 $button-padding-horizontal; + vertical-align: middle; + font-size: $button-font-size; + /* 8 */ + line-height: $button-line-height; + /* 9 */ + text-align: center; + /* 10 */ + text-decoration: none; + @if(mixin-exists(hook-button)) {@include hook-button();} +} + +.uk-button:not(:disabled) { cursor: pointer; } + +/* + * Remove the inner border and padding in Firefox. + */ + +.uk-button::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* Hover */ +.uk-button:hover { + /* 8 */ + text-decoration: none; + @if(mixin-exists(hook-button-hover)) {@include hook-button-hover();} +} + +/* Focus */ +.uk-button:focus { + outline: none; + @if(mixin-exists(hook-button-focus)) {@include hook-button-focus();} +} + +/* OnClick + Active */ +.uk-button:active, +.uk-button.uk-active { + @if(mixin-exists(hook-button-active)) {@include hook-button-active();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-button-default { + background-color: $button-default-background; + color: $button-default-color; + @if(mixin-exists(hook-button-default)) {@include hook-button-default();} +} + +/* Hover + Focus */ +.uk-button-default:hover, +.uk-button-default:focus { + background-color: $button-default-hover-background; + color: $button-default-hover-color; + @if(mixin-exists(hook-button-default-hover)) {@include hook-button-default-hover();} +} + +/* OnClick + Active */ +.uk-button-default:active, +.uk-button-default.uk-active { + background-color: $button-default-active-background; + color: $button-default-active-color; + @if(mixin-exists(hook-button-default-active)) {@include hook-button-default-active();} +} + +/* + * Primary + */ + +.uk-button-primary { + background-color: $button-primary-background; + color: $button-primary-color; + @if(mixin-exists(hook-button-primary)) {@include hook-button-primary();} +} + +/* Hover + Focus */ +.uk-button-primary:hover, +.uk-button-primary:focus { + background-color: $button-primary-hover-background; + color: $button-primary-hover-color; + @if(mixin-exists(hook-button-primary-hover)) {@include hook-button-primary-hover();} +} + +/* OnClick + Active */ +.uk-button-primary:active, +.uk-button-primary.uk-active { + background-color: $button-primary-active-background; + color: $button-primary-active-color; + @if(mixin-exists(hook-button-primary-active)) {@include hook-button-primary-active();} +} + +/* + * Secondary + */ + +.uk-button-secondary { + background-color: $button-secondary-background; + color: $button-secondary-color; + @if(mixin-exists(hook-button-secondary)) {@include hook-button-secondary();} +} + +/* Hover + Focus */ +.uk-button-secondary:hover, +.uk-button-secondary:focus { + background-color: $button-secondary-hover-background; + color: $button-secondary-hover-color; + @if(mixin-exists(hook-button-secondary-hover)) {@include hook-button-secondary-hover();} +} + +/* OnClick + Active */ +.uk-button-secondary:active, +.uk-button-secondary.uk-active { + background-color: $button-secondary-active-background; + color: $button-secondary-active-color; + @if(mixin-exists(hook-button-secondary-active)) {@include hook-button-secondary-active();} +} + +/* + * Danger + */ + +.uk-button-danger { + background-color: $button-danger-background; + color: $button-danger-color; + @if(mixin-exists(hook-button-danger)) {@include hook-button-danger();} +} + +/* Hover + Focus */ +.uk-button-danger:hover, +.uk-button-danger:focus { + background-color: $button-danger-hover-background; + color: $button-danger-hover-color; + @if(mixin-exists(hook-button-danger-hover)) {@include hook-button-danger-hover();} +} + +/* OnClick + Active */ +.uk-button-danger:active, +.uk-button-danger.uk-active { + background-color: $button-danger-active-background; + color: $button-danger-active-color; + @if(mixin-exists(hook-button-danger-active)) {@include hook-button-danger-active();} +} + +/* + * Disabled + * The same for all style modifiers + */ + +.uk-button-default:disabled, +.uk-button-primary:disabled, +.uk-button-secondary:disabled, +.uk-button-danger:disabled { + background-color: $button-disabled-background; + color: $button-disabled-color; + @if(mixin-exists(hook-button-disabled)) {@include hook-button-disabled();} +} + + +/* Size modifiers + ========================================================================== */ + +.uk-button-small { + padding: 0 $button-small-padding-horizontal; + line-height: $button-small-line-height; + font-size: $button-small-font-size; + @if(mixin-exists(hook-button-small)) {@include hook-button-small();} +} + +.uk-button-large { + padding: 0 $button-large-padding-horizontal; + line-height: $button-large-line-height; + font-size: $button-large-font-size; + @if(mixin-exists(hook-button-large)) {@include hook-button-large();} +} + + +/* Text modifiers + ========================================================================== */ + +/* + * Text + * 1. Reset + * 2. Style + */ + +.uk-button-text { + /* 1 */ + padding: 0; + line-height: $button-text-line-height; + background: none; + /* 2 */ + color: $button-text-color; + @if(mixin-exists(hook-button-text)) {@include hook-button-text();} +} + +/* Hover + Focus */ +.uk-button-text:hover, +.uk-button-text:focus { + color: $button-text-hover-color; + @if(mixin-exists(hook-button-text-hover)) {@include hook-button-text-hover();} +} + +/* Disabled */ +.uk-button-text:disabled { + color: $button-text-disabled-color; + @if(mixin-exists(hook-button-text-disabled)) {@include hook-button-text-disabled();} +} + +/* + * Link + * 1. Reset + * 2. Style + */ + +.uk-button-link { + /* 1 */ + padding: 0; + line-height: $button-link-line-height; + background: none; + /* 2 */ + color: $button-link-color; + @if(mixin-exists(hook-button-link)) {@include hook-button-link();} +} + +/* Hover + Focus */ +.uk-button-link:hover, +.uk-button-link:focus { + color: $button-link-hover-color; + text-decoration: $button-link-hover-text-decoration; +} + +/* Disabled */ +.uk-button-link:disabled { + color: $button-link-disabled-color; + text-decoration: none; +} + + +/* Group + ========================================================================== */ + +/* + * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements + * 2. Behave like button + * 3. Create position context + */ + +.uk-button-group { + /* 1 */ + display: inline-flex; + /* 2 */ + vertical-align: middle; + /* 3 */ + position: relative; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-button-misc)) {@include hook-button-misc();} + +// @mixin hook-button(){} +// @mixin hook-button-hover(){} +// @mixin hook-button-focus(){} +// @mixin hook-button-active(){} +// @mixin hook-button-default(){} +// @mixin hook-button-default-hover(){} +// @mixin hook-button-default-active(){} +// @mixin hook-button-primary(){} +// @mixin hook-button-primary-hover(){} +// @mixin hook-button-primary-active(){} +// @mixin hook-button-secondary(){} +// @mixin hook-button-secondary-hover(){} +// @mixin hook-button-secondary-active(){} +// @mixin hook-button-danger(){} +// @mixin hook-button-danger-hover(){} +// @mixin hook-button-danger-active(){} +// @mixin hook-button-disabled(){} +// @mixin hook-button-small(){} +// @mixin hook-button-large(){} +// @mixin hook-button-text(){} +// @mixin hook-button-text-hover(){} +// @mixin hook-button-text-disabled(){} +// @mixin hook-button-link(){} +// @mixin hook-button-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-button-default-background: $inverse-global-primary-background !default; +$inverse-button-default-color: $inverse-global-inverse-color !default; +$inverse-button-default-hover-background: darken($inverse-button-default-background, 5%) !default; +$inverse-button-default-hover-color: $inverse-global-inverse-color !default; +$inverse-button-default-active-background: darken($inverse-button-default-background, 10%) !default; +$inverse-button-default-active-color: $inverse-global-inverse-color !default; +$inverse-button-primary-background: $inverse-global-primary-background !default; +$inverse-button-primary-color: $inverse-global-inverse-color !default; +$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default; +$inverse-button-primary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default; +$inverse-button-primary-active-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-background: $inverse-global-primary-background !default; +$inverse-button-secondary-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default; +$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default; +$inverse-button-secondary-active-color: $inverse-global-inverse-color !default; +$inverse-button-text-color: $inverse-global-muted-color !default; +$inverse-button-text-hover-color: $inverse-global-color !default; +$inverse-button-text-disabled-color: $inverse-global-muted-color !default; +$inverse-button-link-color: $inverse-global-muted-color !default; +$inverse-button-link-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-button-default(){} +// @mixin hook-inverse-button-default-hover(){} +// @mixin hook-inverse-button-default-active(){} +// @mixin hook-inverse-button-primary(){} +// @mixin hook-inverse-button-primary-hover(){} +// @mixin hook-inverse-button-primary-active(){} +// @mixin hook-inverse-button-secondary(){} +// @mixin hook-inverse-button-secondary-hover(){} +// @mixin hook-inverse-button-secondary-active(){} +// @mixin hook-inverse-button-text(){} +// @mixin hook-inverse-button-text-hover(){} +// @mixin hook-inverse-button-text-disabled(){} +// @mixin hook-inverse-button-link(){} diff --git a/scss/uikit/components/card.scss b/scss/uikit/components/card.scss new file mode 100644 index 00000000..e332a03f --- /dev/null +++ b/scss/uikit/components/card.scss @@ -0,0 +1,363 @@ +// Name: Card +// Description: Component to create boxed content containers +// +// Component: `uk-card` +// +// Sub-objects: `uk-card-body` +// `uk-card-header` +// `uk-card-footer` +// `uk-card-media-*` +// `uk-card-title` +// `uk-card-badge` +// +// Modifiers: `uk-card-hover` +// `uk-card-default` +// `uk-card-primary` +// `uk-card-secondary` +// `uk-card-small` +// `uk-card-large` +// +// Uses: `uk-grid-stack` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$card-body-padding-horizontal: $global-gutter !default; +$card-body-padding-vertical: $global-gutter !default; + +$card-body-padding-horizontal-l: $global-medium-gutter !default; +$card-body-padding-vertical-l: $global-medium-gutter !default; + +$card-header-padding-horizontal: $global-gutter !default; +$card-header-padding-vertical: round($global-gutter / 2) !default; + +$card-header-padding-horizontal-l: $global-medium-gutter !default; +$card-header-padding-vertical-l: round($global-medium-gutter / 2) !default; + +$card-footer-padding-horizontal: $global-gutter !default; +$card-footer-padding-vertical: ($global-gutter / 2) !default; + +$card-footer-padding-horizontal-l: $global-medium-gutter !default; +$card-footer-padding-vertical-l: round($global-medium-gutter / 2) !default; + +$card-title-font-size: $global-large-font-size !default; +$card-title-line-height: 1.4 !default; + +$card-badge-top: $global-gutter !default; +$card-badge-right: $card-badge-top !default; + +$card-hover-background: $global-muted-background !default; + +$card-default-background: $global-muted-background !default; +$card-default-color: $global-color !default; +$card-default-title-color: $global-emphasis-color !default; +$card-default-hover-background: darken($card-default-background, 5%) !default; + +$card-primary-background: $global-primary-background !default; +$card-primary-color: $global-inverse-color !default; +$card-primary-title-color: $card-primary-color !default; +$card-primary-hover-background: darken($card-primary-background, 5%) !default; +$card-primary-color-mode: light !default; + +$card-secondary-background: $global-secondary-background !default; +$card-secondary-color: $global-inverse-color !default; +$card-secondary-title-color: $card-secondary-color !default; +$card-secondary-hover-background: darken($card-secondary-background, 5%) !default; +$card-secondary-color-mode: light !default; + +$card-small-body-padding-horizontal: $global-margin !default; +$card-small-body-padding-vertical: $global-margin !default; +$card-small-header-padding-horizontal: $global-margin !default; +$card-small-header-padding-vertical: round($global-margin / 1.5) !default; +$card-small-footer-padding-horizontal: $global-margin !default; +$card-small-footer-padding-vertical: round($global-margin / 1.5) !default; + +$card-large-body-padding-horizontal-l: $global-large-gutter !default; +$card-large-body-padding-vertical-l: $global-large-gutter !default; +$card-large-header-padding-horizontal-l: $global-large-gutter !default; +$card-large-header-padding-vertical-l: round($global-large-gutter / 2) !default; +$card-large-footer-padding-horizontal-l: $global-large-gutter !default; +$card-large-footer-padding-vertical-l: round($global-large-gutter / 2) !default; + + +/* ======================================================================== + Component: Card + ========================================================================== */ + +.uk-card { + position: relative; + box-sizing: border-box; + @if(mixin-exists(hook-card)) {@include hook-card();} +} + + +/* Sections + ========================================================================== */ + +.uk-card-body { + padding: $card-body-padding-vertical $card-body-padding-horizontal; + @if(mixin-exists(hook-card-body)) {@include hook-card-body();} +} + +.uk-card-header { + padding: $card-header-padding-vertical $card-header-padding-horizontal; + @if(mixin-exists(hook-card-header)) {@include hook-card-header();} +} + +.uk-card-footer { + padding: $card-footer-padding-vertical $card-footer-padding-horizontal; + @if(mixin-exists(hook-card-footer)) {@include hook-card-footer();} +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-card-body { padding: $card-body-padding-vertical-l $card-body-padding-horizontal-l; } + + .uk-card-header { padding: $card-header-padding-vertical-l $card-header-padding-horizontal-l; } + + .uk-card-footer { padding: $card-footer-padding-vertical-l $card-footer-padding-horizontal-l; } + +} + +/* + * Micro clearfix + */ + +.uk-card-body::before, +.uk-card-body::after, +.uk-card-header::before, +.uk-card-header::after, +.uk-card-footer::before, +.uk-card-footer::after { + content: ""; + display: table; +} + +.uk-card-body::after, +.uk-card-header::after, +.uk-card-footer::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-card-body > :last-child, +.uk-card-header > :last-child, +.uk-card-footer > :last-child { margin-bottom: 0; } + + +/* Media + ========================================================================== */ + +/* + * Reserved alignment modifier to style the media element, e.g. with `border-radius` + * Implemented by the theme + */ + +[class*='uk-card-media'] { + @if(mixin-exists(hook-card-media)) {@include hook-card-media();} +} + +.uk-card-media-top, +.uk-grid-stack > .uk-card-media-left, +.uk-grid-stack > .uk-card-media-right { + @if(mixin-exists(hook-card-media-top)) {@include hook-card-media-top();} +} + +.uk-card-media-bottom { + @if(mixin-exists(hook-card-media-bottom)) {@include hook-card-media-bottom();} +} + +:not(.uk-grid-stack) > .uk-card-media-left { + @if(mixin-exists(hook-card-media-left)) {@include hook-card-media-left();} +} + +:not(.uk-grid-stack) > .uk-card-media-right { + @if(mixin-exists(hook-card-media-right)) {@include hook-card-media-right();} +} + + +/* Title + ========================================================================== */ + +.uk-card-title { + font-size: $card-title-font-size; + line-height: $card-title-line-height; + @if(mixin-exists(hook-card-title)) {@include hook-card-title();} +} + + +/* Badge + ========================================================================== */ + +.uk-card-badge { + position: absolute; + top: $card-badge-top; + right: $card-badge-right; + z-index: 1; + @if(mixin-exists(hook-card-badge)) {@include hook-card-badge();} +} + +/* + * Remove margin from adjacent element + */ + +.uk-card-badge:first-child + * { margin-top: 0; } + + +/* Hover modifier + ========================================================================== */ + +.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover { + background: $card-hover-background; + @if(mixin-exists(hook-card-hover)) {@include hook-card-hover();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + * Note: Header and Footer are only implemented for the default style + */ + +.uk-card-default { + background: $card-default-background; + color: $card-default-color; + @if(mixin-exists(hook-card-default)) {@include hook-card-default();} +} + +.uk-card-default .uk-card-title { + color: $card-default-title-color; + @if(mixin-exists(hook-card-default-title)) {@include hook-card-default-title();} +} + +.uk-card-default.uk-card-hover:hover { + background-color: $card-default-hover-background; + @if(mixin-exists(hook-card-default-hover)) {@include hook-card-default-hover();} +} + +.uk-card-default .uk-card-header { + @if(mixin-exists(hook-card-default-header)) {@include hook-card-default-header();} +} + +.uk-card-default .uk-card-footer { + @if(mixin-exists(hook-card-default-footer)) {@include hook-card-default-footer();} +} + +/* + * Primary + */ + +.uk-card-primary { + background: $card-primary-background; + color: $card-primary-color; + @if(mixin-exists(hook-card-primary)) {@include hook-card-primary();} +} + +.uk-card-primary .uk-card-title { + color: $card-primary-title-color; + @if(mixin-exists(hook-card-primary-title)) {@include hook-card-primary-title();} +} + +.uk-card-primary.uk-card-hover:hover { + background-color: $card-primary-hover-background; + @if(mixin-exists(hook-card-primary-hover)) {@include hook-card-primary-hover();} +} + +// Color Mode +@if ( $card-primary-color-mode == light ) { .uk-card-primary.uk-card-body { @extend .uk-light !optional;} } +@if ( $card-primary-color-mode == light ) { .uk-card-primary > :not([class*='uk-card-media']) { @extend .uk-light !optional;} } +@if ( $card-primary-color-mode == dark ) { .uk-card-primary.uk-card-body { @extend .uk-dark !optional;} } +@if ( $card-primary-color-mode == dark ) { .uk-card-primary > :not([class*='uk-card-media']) { @extend .uk-dark !optional;} } + +/* + * Secondary + */ + +.uk-card-secondary { + background: $card-secondary-background; + color: $card-secondary-color; + @if(mixin-exists(hook-card-secondary)) {@include hook-card-secondary();} +} + +.uk-card-secondary .uk-card-title { + color: $card-secondary-title-color; + @if(mixin-exists(hook-card-secondary-title)) {@include hook-card-secondary-title();} +} + +.uk-card-secondary.uk-card-hover:hover { + background-color: $card-secondary-hover-background; + @if(mixin-exists(hook-card-secondary-hover)) {@include hook-card-secondary-hover();} +} + +// Color Mode +@if ( $card-secondary-color-mode == light ) { .uk-card-secondary.uk-card-body { @extend .uk-light !optional;} } +@if ( $card-secondary-color-mode == light ) { .uk-card-secondary > :not([class*='uk-card-media']) { @extend .uk-light !optional;} } +@if ( $card-secondary-color-mode == dark ) { .uk-card-secondary.uk-card-body { @extend .uk-dark !optional;} } +@if ( $card-secondary-color-mode == dark ) { .uk-card-secondary > :not([class*='uk-card-media']) { @extend .uk-dark !optional;} } + + +/* Size modifier + ========================================================================== */ + +/* + * Small + */ + +.uk-card-small.uk-card-body, +.uk-card-small .uk-card-body { padding: $card-small-body-padding-vertical $card-small-body-padding-horizontal; } + +.uk-card-small .uk-card-header { padding: $card-small-header-padding-vertical $card-small-header-padding-horizontal; } +.uk-card-small .uk-card-footer { padding: $card-small-footer-padding-vertical $card-small-footer-padding-horizontal; } + +/* + * Large + */ + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-card-large.uk-card-body, + .uk-card-large .uk-card-body { padding: $card-large-body-padding-vertical-l $card-large-body-padding-horizontal-l; } + + .uk-card-large .uk-card-header { padding: $card-large-header-padding-vertical-l $card-large-header-padding-horizontal-l; } + .uk-card-large .uk-card-footer { padding: $card-large-footer-padding-vertical-l $card-large-footer-padding-horizontal-l; } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-card-misc)) {@include hook-card-misc();} + +// @mixin hook-card(){} +// @mixin hook-card-body(){} +// @mixin hook-card-header(){} +// @mixin hook-card-footer(){} +// @mixin hook-card-media(){} +// @mixin hook-card-media-top(){} +// @mixin hook-card-media-bottom(){} +// @mixin hook-card-media-left(){} +// @mixin hook-card-media-right(){} +// @mixin hook-card-title(){} +// @mixin hook-card-badge(){} +// @mixin hook-card-hover(){} +// @mixin hook-card-default(){} +// @mixin hook-card-default-title(){} +// @mixin hook-card-default-hover(){} +// @mixin hook-card-default-header(){} +// @mixin hook-card-default-footer(){} +// @mixin hook-card-primary(){} +// @mixin hook-card-primary-title(){} +// @mixin hook-card-primary-hover(){} +// @mixin hook-card-secondary(){} +// @mixin hook-card-secondary-title(){} +// @mixin hook-card-secondary-hover(){} +// @mixin hook-card-misc(){} diff --git a/scss/uikit/components/close.scss b/scss/uikit/components/close.scss new file mode 100644 index 00000000..32e27756 --- /dev/null +++ b/scss/uikit/components/close.scss @@ -0,0 +1,57 @@ +// Name: Close +// Description: Component to create a close button +// +// Component: `uk-close` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$close-color: $global-muted-color !default; +$close-hover-color: $global-color !default; + + +/* ======================================================================== + Component: Close + ========================================================================== */ + +/* + * Adopts `uk-icon` + */ + +.uk-close { + color: $close-color; + @if(mixin-exists(hook-close)) {@include hook-close();} +} + +/* Hover + Focus */ +.uk-close:hover, +.uk-close:focus { + color: $close-hover-color; + outline: none; + @if(mixin-exists(hook-close-hover)) {@include hook-close-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-close-misc)) {@include hook-close-misc();} + +// @mixin hook-close(){} +// @mixin hook-close-hover(){} +// @mixin hook-close-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-close-color: $inverse-global-muted-color !default; +$inverse-close-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-close(){} +// @mixin hook-inverse-close-hover(){} diff --git a/scss/uikit/components/column.scss b/scss/uikit/components/column.scss new file mode 100644 index 00000000..54bae26e --- /dev/null +++ b/scss/uikit/components/column.scss @@ -0,0 +1,138 @@ +// Name: Column +// Description: Utilities for text columns +// +// Component: `uk-column-*` +// +// Sub-objects: `uk-column-span` +// +// Modifiers: `uk-column-divider` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$column-gutter: $global-gutter !default; +$column-gutter-l: $global-medium-gutter !default; + +$column-divider-rule-color: $global-border !default; +$column-divider-rule-width: 1px !default; + + +/* ======================================================================== + Component: Column + ========================================================================== */ + +[class*='uk-column-'] { column-gap: $column-gutter; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + [class*='uk-column-'] { column-gap: $column-gutter-l; } + +} + +/* + * Fix image 1px line wrapping into the next column in Chrome + */ + +[class*='uk-column-'] img { transform: translate3d(0,0,0); } + + +/* Divider + ========================================================================== */ + +/* + * 1. Double the column gap + */ + +.uk-column-divider { + column-rule: $column-divider-rule-width solid $column-divider-rule-color; + /* 1 */ + column-gap: ($column-gutter * 2); +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-column-divider { + column-gap: ($column-gutter-l * 2); + } + +} + + +/* Width modifiers + ========================================================================== */ + +.uk-column-1-2 { column-count: 2;} +.uk-column-1-3 { column-count: 3; } +.uk-column-1-4 { column-count: 4; } +.uk-column-1-5 { column-count: 5; } +.uk-column-1-6 { column-count: 6; } + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-column-1-2\@s { column-count: 2; } + .uk-column-1-3\@s { column-count: 3; } + .uk-column-1-4\@s { column-count: 4; } + .uk-column-1-5\@s { column-count: 5; } + .uk-column-1-6\@s { column-count: 6; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-column-1-2\@m { column-count: 2; } + .uk-column-1-3\@m { column-count: 3; } + .uk-column-1-4\@m { column-count: 4; } + .uk-column-1-5\@m { column-count: 5; } + .uk-column-1-6\@m { column-count: 6; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-column-1-2\@l { column-count: 2; } + .uk-column-1-3\@l { column-count: 3; } + .uk-column-1-4\@l { column-count: 4; } + .uk-column-1-5\@l { column-count: 5; } + .uk-column-1-6\@l { column-count: 6; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-column-1-2\@xl { column-count: 2; } + .uk-column-1-3\@xl { column-count: 3; } + .uk-column-1-4\@xl { column-count: 4; } + .uk-column-1-5\@xl { column-count: 5; } + .uk-column-1-6\@xl { column-count: 6; } + +} + +/* Make element span across all columns + * Does not work in Firefox yet + ========================================================================== */ + +.uk-column-span { column-span: all; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-column-misc)) {@include hook-column-misc();} + +// @mixin hook-column-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-column-divider-rule-color: $inverse-global-border !default; + diff --git a/scss/uikit/components/comment.scss b/scss/uikit/components/comment.scss new file mode 100644 index 00000000..54631d61 --- /dev/null +++ b/scss/uikit/components/comment.scss @@ -0,0 +1,173 @@ +// Name: Comment +// Description: Component to create nested comments +// +// Component: `uk-comment` +// +// Sub-objects: `uk-comment-body` +// `uk-comment-header` +// `uk-comment-title` +// `uk-comment-meta` +// `uk-comment-avatar` +// `uk-comment-list` +// +// Modifier: `uk-comment-primary` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$comment-header-margin-bottom: $global-margin !default; + +$comment-title-font-size: $global-medium-font-size !default; +$comment-title-line-height: 1.4 !default; + +$comment-meta-font-size: $global-small-font-size !default; +$comment-meta-line-height: 1.4 !default; +$comment-meta-color: $global-muted-color !default; + +$comment-list-margin-top: $global-large-margin !default; +$comment-list-padding-left: 30px !default; +$comment-list-padding-left-m: 100px !default; + + +/* ======================================================================== + Component: Comment + ========================================================================== */ + +.uk-comment { + @if(mixin-exists(hook-comment)) {@include hook-comment();} +} + + +/* Sections + ========================================================================== */ + +.uk-comment-body { + overflow-wrap: break-word; + word-wrap: break-word; + @if(mixin-exists(hook-comment-body)) {@include hook-comment-body();} +} + +.uk-comment-header { + margin-bottom: $comment-header-margin-bottom; + @if(mixin-exists(hook-comment-header)) {@include hook-comment-header();} +} + +/* + * Micro clearfix + */ + +.uk-comment-body::before, +.uk-comment-body::after, +.uk-comment-header::before, +.uk-comment-header::after { + content: ""; + display: table; +} + +.uk-comment-body::after, +.uk-comment-header::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-comment-body > :last-child, +.uk-comment-header > :last-child { margin-bottom: 0; } + + +/* Title + ========================================================================== */ + +.uk-comment-title { + font-size: $comment-title-font-size; + line-height: $comment-title-line-height; + @if(mixin-exists(hook-comment-title)) {@include hook-comment-title();} +} + + +/* Meta + ========================================================================== */ + +.uk-comment-meta { + font-size: $comment-meta-font-size; + line-height: $comment-meta-line-height; + color: $comment-meta-color; + @if(mixin-exists(hook-comment-meta)) {@include hook-comment-meta();} +} + + +/* Avatar + ========================================================================== */ + +.uk-comment-avatar { + @if(mixin-exists(hook-comment-avatar)) {@include hook-comment-avatar();} +} + + +/* List + ========================================================================== */ + +.uk-comment-list { + padding: 0; + list-style: none; +} + +/* Adjacent siblings */ +.uk-comment-list > :nth-child(n+2) { + margin-top: $comment-list-margin-top; + @if(mixin-exists(hook-comment-list-adjacent)) {@include hook-comment-list-adjacent();} +} + +/* + * Sublists + * Note: General sibling selector allows reply block between comment and sublist + */ + +.uk-comment-list .uk-comment ~ ul { + margin: $comment-list-margin-top 0 0 0; + padding-left: $comment-list-padding-left; + list-style: none; + @if(mixin-exists(hook-comment-list-sub)) {@include hook-comment-list-sub();} +} + +/* Tablet and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-comment-list .uk-comment ~ ul { padding-left: $comment-list-padding-left-m; } + +} + +/* Adjacent siblings */ +.uk-comment-list .uk-comment ~ ul > :nth-child(n+2) { + margin-top: $comment-list-margin-top; + @if(mixin-exists(hook-comment-list-sub-adjacent)) {@include hook-comment-list-sub-adjacent();} +} + + +/* Style modifier + ========================================================================== */ + +.uk-comment-primary { + @if(mixin-exists(hook-comment-primary)) {@include hook-comment-primary();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-comment-misc)) {@include hook-comment-misc();} + +// @mixin hook-comment(){} +// @mixin hook-comment-body(){} +// @mixin hook-comment-header(){} +// @mixin hook-comment-title(){} +// @mixin hook-comment-meta(){} +// @mixin hook-comment-avatar(){} +// @mixin hook-comment-list-adjacent(){} +// @mixin hook-comment-list-sub(){} +// @mixin hook-comment-list-sub-adjacent(){} +// @mixin hook-comment-primary(){} +// @mixin hook-comment-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/container.scss b/scss/uikit/components/container.scss new file mode 100644 index 00000000..c518d6d7 --- /dev/null +++ b/scss/uikit/components/container.scss @@ -0,0 +1,106 @@ +// Name: Container +// Description: Component to align and center your site and grid content +// +// Component: `uk-container` +// +// Modifier: `uk-container-small` +// `uk-container-large` +// `uk-container-expand` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$container-max-width: 1200px !default; +$container-small-max-width: 900px !default; +$container-large-max-width: 1600px !default; + +$container-padding-horizontal: 15px !default; +$container-padding-horizontal-s: $global-gutter !default; +$container-padding-horizontal-m: $global-medium-gutter !default; + + +/* ======================================================================== + Component: Container + ========================================================================== */ + +/* + * 1. Box sizing has to be `content-box` so the max-width is always the same and + * unaffected by the padding on different breakpoints. It's important for the size modifiers. + */ + +.uk-container { + box-sizing: content-box; /* 1 */ + max-width: $container-max-width; + margin-left: auto; + margin-right: auto; + padding-left: $container-padding-horizontal; + padding-right: $container-padding-horizontal; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-container { + padding-left: $container-padding-horizontal-s; + padding-right: $container-padding-horizontal-s; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-container { + padding-left: $container-padding-horizontal-m; + padding-right: $container-padding-horizontal-m; + } + +} + +/* + * Micro clearfix + */ + +.uk-container::before, +.uk-container::after { + content: ""; + display: table; +} + +.uk-container::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-container > :last-child { margin-bottom: 0; } + +/* + * Remove padding from nested containers + */ + +.uk-container .uk-container { + padding-left: 0; + padding-right: 0; +} + + +/* Size modifier + ========================================================================== */ + +.uk-container-small { max-width: $container-small-max-width; } + +.uk-container-large { max-width: $container-large-max-width; } + +.uk-container-expand { max-width: none; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-container-misc)) {@include hook-container-misc();} + +// @mixin hook-container-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/countdown.scss b/scss/uikit/components/countdown.scss new file mode 100644 index 00000000..3f53e70c --- /dev/null +++ b/scss/uikit/components/countdown.scss @@ -0,0 +1,126 @@ +// Name: Countdown +// Description: Component to create countdown timers +// +// Component: `uk-countdown` +// +// Sub-objects: `uk-countdown-number` +// `uk-countdown-separator` +// `uk-countdown-label` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$countdown-item-line-height: 70px !default; + +$countdown-number-font-size: 2rem !default; // 32px +$countdown-number-font-size-s: 4rem !default; // 64px +$countdown-number-font-size-m: 6rem !default; // 96px + +$countdown-separator-font-size: 1rem !default; // 16px +$countdown-separator-font-size-s: 2rem !default; // 32px +$countdown-separator-font-size-m: 3rem !default; // 48px + + +/* ======================================================================== + Component: Countdown + ========================================================================== */ + +.uk-countdown { + @if(mixin-exists(hook-countdown)) {@include hook-countdown();} +} + + +/* Item + ========================================================================== */ + +/* + * 1. Center numbers and separators vertically + */ + +.uk-countdown-number, +.uk-countdown-separator { + /* 1 */ + line-height: $countdown-item-line-height; + @if(mixin-exists(hook-countdown-item)) {@include hook-countdown-item();} +} + + +/* Number + ========================================================================== */ + +.uk-countdown-number { + font-size: $countdown-number-font-size; + @if(mixin-exists(hook-countdown-number)) {@include hook-countdown-number();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-countdown-number { font-size: $countdown-number-font-size-s; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-countdown-number { font-size: $countdown-number-font-size-m; } + +} + + +/* Separator + ========================================================================== */ + +.uk-countdown-separator { + font-size: $countdown-separator-font-size; + @if(mixin-exists(hook-countdown-separator)) {@include hook-countdown-separator();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-countdown-separator { font-size: $countdown-separator-font-size-s; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-countdown-separator { font-size: $countdown-separator-font-size-m; } + +} + + +/* Label + ========================================================================== */ + +.uk-countdown-label { + @if(mixin-exists(hook-countdown-label)) {@include hook-countdown-label();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-countdown-misc)) {@include hook-countdown-misc();} + +// @mixin hook-countdown(){} +// @mixin hook-countdown-item(){} +// @mixin hook-countdown-number(){} +// @mixin hook-countdown-separator(){} +// @mixin hook-countdown-label(){} +// @mixin hook-countdown-misc(){} + + +// Inverse +// ======================================================================== + + + +// @mixin hook-inverse-countdown-item(){} +// @mixin hook-inverse-countdown-number(){} +// @mixin hook-inverse-countdown-separator(){} +// @mixin hook-inverse-countdown-label(){} diff --git a/scss/uikit/components/cover.scss b/scss/uikit/components/cover.scss new file mode 100644 index 00000000..b44a6847 --- /dev/null +++ b/scss/uikit/components/cover.scss @@ -0,0 +1,57 @@ +// Name: Cover +// Description: Utilities to let embedded content cover their container in a centered position +// +// Component: `uk-cover` +// +// Sub-object: `uk-cover-container` +// +// ======================================================================== + + +/* ======================================================================== + Component: Cover + ========================================================================== */ + +/* + * Works with iframes and embedded content + * 1. Reset responsiveness for embedded content + * 2. Center object + * Note: Percent values on the `top` property only works if this element + * is absolute positioned or if the container has a height + */ + +.uk-cover { + /* 1 */ + max-width: none; + /* 2 */ + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%,-50%); +} + +iframe.uk-cover { pointer-events: none; } + + +/* Container + ========================================================================== */ + +/* + * 1. Parent container which clips resized object + * 2. Needed if the child is positioned absolute. See note above + */ + +.uk-cover-container { + /* 1 */ + overflow: hidden; + /* 2 */ + position: relative; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-cover-misc)) {@include hook-cover-misc();} + +// @mixin hook-cover-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/description-list.scss b/scss/uikit/components/description-list.scss new file mode 100644 index 00000000..6683286d --- /dev/null +++ b/scss/uikit/components/description-list.scss @@ -0,0 +1,71 @@ +// Name: Description list +// Description: Styles for description lists +// +// Component: `uk-description-list` +// +// Modifiers: `uk-description-list-divider` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$description-list-term-color: $global-emphasis-color !default; +$description-list-term-margin-top: $global-margin !default; + +$description-list-divider-term-margin-top: $global-margin !default; +$description-list-divider-term-border-width: $global-border-width !default; +$description-list-divider-term-border: $global-border !default; + + +/* ======================================================================== + Component: Description list + ========================================================================== */ + +/* + * Term + */ + +.uk-description-list > dt { + color: $description-list-term-color; + @if(mixin-exists(hook-description-list-term)) {@include hook-description-list-term();} +} + +.uk-description-list > dt:nth-child(n+2) { + margin-top: $description-list-term-margin-top; +} + +/* + * Description + */ + +.uk-description-list > dd { + @if(mixin-exists(hook-description-list-description)) {@include hook-description-list-description();} +} + + +/* Style modifier + ========================================================================== */ + +/* + * Line + */ + +.uk-description-list-divider > dt:nth-child(n+2) { + margin-top: $description-list-divider-term-margin-top; + padding-top: $description-list-divider-term-margin-top; + border-top: $description-list-divider-term-border-width solid $description-list-divider-term-border; + @if(mixin-exists(hook-description-list-divider-term)) {@include hook-description-list-divider-term();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-description-list-misc)) {@include hook-description-list-misc();} + +// @mixin hook-description-list-term(){} +// @mixin hook-description-list-description(){} +// @mixin hook-description-list-divider-term(){} +// @mixin hook-description-list-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/divider.scss b/scss/uikit/components/divider.scss new file mode 100644 index 00000000..b51708cf --- /dev/null +++ b/scss/uikit/components/divider.scss @@ -0,0 +1,129 @@ +// Name: Divider +// Description: Styles for dividers +// +// Component: `uk-divider-icon` +// `uk-divider-small` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$divider-margin-vertical: $global-margin !default; + +$divider-icon-width: 50px !default; +$divider-icon-height: 20px !default; +$divider-icon-color: $global-border !default; +$divider-icon-line-top: 50% !default; +$divider-icon-line-width: 100% !default; +$divider-icon-line-border-width: $global-border-width !default; +$divider-icon-line-border: $global-border !default; + +$internal-divider-icon-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; + +$divider-small-width: 100px !default; +$divider-small-border-width: $global-border-width !default; +$divider-small-border: $global-border !default; + + +/* ======================================================================== + Component: Divider + ========================================================================== */ + +/* + * 1. Reset default `hr` + * 2. Set margin if a `div` is used for semantical reason + */ + +[class*='uk-divider'] { + /* 1 */ + border: none; + /* 2 */ + margin-bottom: $divider-margin-vertical; +} + +/* Add margin if adjacent element */ +* + [class*='uk-divider'] { margin-top: $divider-margin-vertical; } + + +/* Icon + ========================================================================== */ + +.uk-divider-icon { + position: relative; + height: $divider-icon-height; + @include svg-fill($internal-divider-icon-image, "#000", $divider-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + @if(mixin-exists(hook-divider-icon)) {@include hook-divider-icon();} +} + +.uk-divider-icon::before, +.uk-divider-icon::after { + content: ""; + position: absolute; + top: $divider-icon-line-top; + max-width: unquote('calc(50% - (#{$divider-icon-width} / 2))'); + border-bottom: $divider-icon-line-border-width solid $divider-icon-line-border; + @if(mixin-exists(hook-divider-icon-line)) {@include hook-divider-icon-line();} +} + +.uk-divider-icon::before { + right: unquote('calc(50% + (#{$divider-icon-width} / 2))'); + width: $divider-icon-line-width; + @if(mixin-exists(hook-divider-icon-line-left)) {@include hook-divider-icon-line-left();} +} + +.uk-divider-icon::after { + left: unquote('calc(50% + (#{$divider-icon-width} / 2))'); + width: $divider-icon-line-width; + @if(mixin-exists(hook-divider-icon-line-right)) {@include hook-divider-icon-line-right();} +} + + +/* Small + ========================================================================== */ + +/* + * Reset child height, caused by `inline-block` + */ + +.uk-divider-small { line-height: 0; } + +.uk-divider-small::after { + content: ""; + display: inline-block; + width: $divider-small-width; + max-width: 100%; + border-top: $divider-small-border-width solid $divider-small-border; + vertical-align: top; + @if(mixin-exists(hook-divider-small)) {@include hook-divider-small();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-divider-misc)) {@include hook-divider-misc();} + +// @mixin hook-divider-icon(){} +// @mixin hook-divider-icon-line(){} +// @mixin hook-divider-icon-line-left(){} +// @mixin hook-divider-icon-line-right(){} +// @mixin hook-divider-small(){} +// @mixin hook-divider-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-divider-icon-color: $inverse-global-border !default; +$inverse-divider-icon-line-border: $inverse-global-border !default; +$inverse-divider-small-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-divider-icon(){} +// @mixin hook-inverse-divider-icon-line(){} +// @mixin hook-inverse-divider-small(){} diff --git a/scss/uikit/components/dotnav.scss b/scss/uikit/components/dotnav.scss new file mode 100644 index 00000000..f1f2a402 --- /dev/null +++ b/scss/uikit/components/dotnav.scss @@ -0,0 +1,157 @@ +// Name: Dotnav +// Description: Component to create dot navigations +// +// Component: `uk-dotnav` +// +// Modifier: `uk-dotnav-vertical` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dotnav-margin-horizontal: 12px !default; +$dotnav-margin-vertical: $dotnav-margin-horizontal !default; + +$dotnav-item-width: 10px !default; +$dotnav-item-height: $dotnav-item-width !default; +$dotnav-item-border-radius: 50% !default; + +$dotnav-item-background: rgba($global-color, 0.2) !default; +$dotnav-item-hover-background: rgba($global-color, 0.6) !default; +$dotnav-item-onclick-background: rgba($global-color, 0.2) !default; +$dotnav-item-active-background: rgba($global-color, 0.6) !default; + + +/* ======================================================================== + Component: Dotnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + * 3. Gutter + */ + +.uk-dotnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + margin-left: (-$dotnav-margin-horizontal); + @if(mixin-exists(hook-dotnav)) {@include hook-dotnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + */ + +.uk-dotnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $dotnav-margin-horizontal; +} + + +/* Items + ========================================================================== */ + +/* + * Items + * 1. Hide text if present + */ + +.uk-dotnav > * > * { + display: block; + box-sizing: border-box; + width: $dotnav-item-width; + height: $dotnav-item-height; + border-radius: $dotnav-item-border-radius; + background: $dotnav-item-background; + /* 1 */ + text-indent: 100%; + overflow: hidden; + white-space: nowrap; + @if(mixin-exists(hook-dotnav-item)) {@include hook-dotnav-item();} +} + +/* Hover + Focus */ +.uk-dotnav > * > :hover, +.uk-dotnav > * > :focus { + background-color: $dotnav-item-hover-background; + outline: none; + @if(mixin-exists(hook-dotnav-item-hover)) {@include hook-dotnav-item-hover();} +} + +/* OnClick */ +.uk-dotnav > * > :active { + background-color: $dotnav-item-onclick-background; + @if(mixin-exists(hook-dotnav-item-onclick)) {@include hook-dotnav-item-onclick();} +} + +/* Active */ +.uk-dotnav > .uk-active > * { + background-color: $dotnav-item-active-background; + @if(mixin-exists(hook-dotnav-item-active)) {@include hook-dotnav-item-active();} +} + + +/* Modifier: 'uk-dotnav-vertical' + ========================================================================== */ + +/* + * 1. Change direction + * 2. Gutter + */ + +.uk-dotnav-vertical { + /* 1 */ + flex-direction: column; + /* 2 */ + margin-left: 0; + margin-top: (-$dotnav-margin-vertical); +} + +/* 2 */ +.uk-dotnav-vertical > * { + padding-left: 0; + padding-top: $dotnav-margin-vertical; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-dotnav-misc)) {@include hook-dotnav-misc();} + +// @mixin hook-dotnav(){} +// @mixin hook-dotnav-item(){} +// @mixin hook-dotnav-item-hover(){} +// @mixin hook-dotnav-item-onclick(){} +// @mixin hook-dotnav-item-active(){} +// @mixin hook-dotnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-dotnav-item-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-hover-background: rgba($inverse-global-color, 0.9) !default; +$inverse-dotnav-item-onclick-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-active-background: rgba($inverse-global-color, 0.9) !default; + + + +// @mixin hook-inverse-dotnav-item(){} +// @mixin hook-inverse-dotnav-item-hover(){} +// @mixin hook-inverse-dotnav-item-onclick(){} +// @mixin hook-inverse-dotnav-item-active(){} \ No newline at end of file diff --git a/scss/uikit/components/drop.scss b/scss/uikit/components/drop.scss new file mode 100644 index 00000000..fb5e9e8c --- /dev/null +++ b/scss/uikit/components/drop.scss @@ -0,0 +1,74 @@ +// Name: Drop +// Description: Component to position any element next to any other element. +// +// Component: `uk-drop` +// +// Modifiers: `uk-drop-top-*` +// `uk-drop-bottom-*` +// `uk-drop-left-*` +// `uk-drop-right-*` +// `uk-drop-stack` +// `uk-drop-grid` +// +// States: `uk-open` +// +// Uses: Animation +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$drop-z-index: $global-z-index + 20 !default; +$drop-width: 300px !default; +$drop-margin: $global-margin !default; + + +/* ======================================================================== + Component: Drop + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Set a default width + */ + +.uk-drop { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $drop-z-index; + /* 3 */ + box-sizing: border-box; + width: $drop-width; +} + +/* Show */ +.uk-drop.uk-open { display: block; } + + +/* Direction / Alignment modifiers + ========================================================================== */ + +/* Direction */ +[class*='uk-drop-top'] { margin-top: (-$drop-margin); } +[class*='uk-drop-bottom'] { margin-top: $drop-margin; } +[class*='uk-drop-left'] { margin-left: (-$drop-margin); } +[class*='uk-drop-right'] { margin-left: $drop-margin; } + + +/* Grid modifiers + ========================================================================== */ + +.uk-drop-stack .uk-drop-grid > * { width: 100% !important; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-drop-misc)) {@include hook-drop-misc();} + +// @mixin hook-drop-misc(){} diff --git a/scss/uikit/components/dropdown.scss b/scss/uikit/components/dropdown.scss new file mode 100644 index 00000000..49bb1277 --- /dev/null +++ b/scss/uikit/components/dropdown.scss @@ -0,0 +1,150 @@ +// Name: Dropdown +// Description: Component to create dropdown menus +// +// Component: `uk-dropdown` +// +// Adopted: `uk-dropdown-nav` +// +// Modifiers: `uk-dropdown-top-*` +// `uk-dropdown-bottom-*` +// `uk-dropdown-left-*` +// `uk-dropdown-right-*` +// `uk-dropdown-stack` +// `uk-dropdown-grid` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dropdown-z-index: $global-z-index + 20 !default; +$dropdown-min-width: 200px !default; +$dropdown-padding: 15px !default; +$dropdown-background: $global-muted-background !default; +$dropdown-color: $global-color !default; +$dropdown-margin: $global-small-margin !default; + +$dropdown-nav-item-color: $global-muted-color !default; +$dropdown-nav-item-hover-color: $global-color !default; +$dropdown-nav-header-color: $global-emphasis-color !default; +$dropdown-nav-divider-border-width: $global-border-width !default; +$dropdown-nav-divider-border: $global-border !default; +$dropdown-nav-sublist-item-color: $global-muted-color !default; +$dropdown-nav-sublist-item-hover-color: $global-color !default; + + +/* ======================================================================== + Component: Dropdown + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Set a default width + * 4. Style + */ + +.uk-dropdown { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $dropdown-z-index; + /* 3 */ + box-sizing: border-box; + min-width: $dropdown-min-width; + /* 4 */ + padding: $dropdown-padding; + background: $dropdown-background; + color: $dropdown-color; + @if(mixin-exists(hook-dropdown)) {@include hook-dropdown();} +} + +/* Show */ +.uk-dropdown.uk-open { display: block; } + + +/* Nav + * Adopts `uk-nav` + ========================================================================== */ + +.uk-dropdown-nav { + white-space: nowrap; + @if(mixin-exists(hook-dropdown-nav)) {@include hook-dropdown-nav();} +} + +/* + * Items + */ + +.uk-dropdown-nav > li > a { + color: $dropdown-nav-item-color; + @if(mixin-exists(hook-dropdown-nav-item)) {@include hook-dropdown-nav-item();} +} + +/* Hover + Focus + Active */ +.uk-dropdown-nav > li > a:hover, +.uk-dropdown-nav > li > a:focus, +.uk-dropdown-nav > li.uk-active > a { + color: $dropdown-nav-item-hover-color; + @if(mixin-exists(hook-dropdown-nav-item-hover)) {@include hook-dropdown-nav-item-hover();} +} + +/* + * Header + */ + +.uk-dropdown-nav .uk-nav-header { + color: $dropdown-nav-header-color; + @if(mixin-exists(hook-dropdown-nav-header)) {@include hook-dropdown-nav-header();} +} + +/* + * Divider + */ + +.uk-dropdown-nav .uk-nav-divider { + border-top: $dropdown-nav-divider-border-width solid $dropdown-nav-divider-border; + @if(mixin-exists(hook-dropdown-nav-divider)) {@include hook-dropdown-nav-divider();} +} + +/* + * Sublists + */ + +.uk-dropdown-nav .uk-nav-sub a { color: $dropdown-nav-sublist-item-color; } + +.uk-dropdown-nav .uk-nav-sub a:hover, +.uk-dropdown-nav .uk-nav-sub a:focus { color: $dropdown-nav-sublist-item-hover-color; } + + +/* Direction / Alignment modifiers + ========================================================================== */ + +/* Direction */ +[class*='uk-dropdown-top'] { margin-top: (-$dropdown-margin); } +[class*='uk-dropdown-bottom'] { margin-top: $dropdown-margin; } +[class*='uk-dropdown-left'] { margin-left: (-$dropdown-margin); } +[class*='uk-dropdown-right'] { margin-left: $dropdown-margin; } + + +/* Grid modifiers + ========================================================================== */ + +.uk-dropdown-stack .uk-dropdown-grid > * { width: 100% !important; } + + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-dropdown-misc)) {@include hook-dropdown-misc();} + +// @mixin hook-dropdown(){} +// @mixin hook-dropdown-nav(){} +// @mixin hook-dropdown-nav-item(){} +// @mixin hook-dropdown-nav-item-hover(){} +// @mixin hook-dropdown-nav-header(){} +// @mixin hook-dropdown-nav-divider(){} +// @mixin hook-dropdown-misc(){} diff --git a/scss/uikit/components/flex.scss b/scss/uikit/components/flex.scss new file mode 100644 index 00000000..1301fc43 --- /dev/null +++ b/scss/uikit/components/flex.scss @@ -0,0 +1,209 @@ +// Name: Flex +// Description: Utilities for layouts based on flexbox +// +// Component: `uk-flex-*` +// +// ======================================================================== + + +/* ======================================================================== + Component: Flex + ========================================================================== */ + +.uk-flex { display: flex; } +.uk-flex-inline { display: inline-flex; } + +/* + * Remove pseudo elements created by micro clearfix as precaution + */ + +.uk-flex::before, +.uk-flex::after, +.uk-flex-inline::before, +.uk-flex-inline::after { display: none; } + + +/* Alignment + ========================================================================== */ + +/* + * Align items along the main axis of the current line of the flex container + * Row: Horizontal + */ + +// Default +.uk-flex-left { justify-content: flex-start; } +.uk-flex-center { justify-content: center; } +.uk-flex-right { justify-content: flex-end; } +.uk-flex-between { justify-content: space-between; } +.uk-flex-around { justify-content: space-around; } + + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-flex-left\@s { justify-content: flex-start; } + .uk-flex-center\@s { justify-content: center; } + .uk-flex-right\@s { justify-content: flex-end; } + .uk-flex-between\@s { justify-content: space-between; } + .uk-flex-around\@s { justify-content: space-around; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-flex-left\@m { justify-content: flex-start; } + .uk-flex-center\@m { justify-content: center; } + .uk-flex-right\@m { justify-content: flex-end; } + .uk-flex-between\@m { justify-content: space-between; } + .uk-flex-around\@m { justify-content: space-around; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-flex-left\@l { justify-content: flex-start; } + .uk-flex-center\@l { justify-content: center; } + .uk-flex-right\@l { justify-content: flex-end; } + .uk-flex-between\@l { justify-content: space-between; } + .uk-flex-around\@l { justify-content: space-around; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-flex-left\@xl { justify-content: flex-start; } + .uk-flex-center\@xl { justify-content: center; } + .uk-flex-right\@xl { justify-content: flex-end; } + .uk-flex-between\@xl { justify-content: space-between; } + .uk-flex-around\@xl { justify-content: space-around; } + +} + +/* + * Align items in the cross axis of the current line of the flex container + * Row: Vertical + */ + +// Default +.uk-flex-stretch { align-items: stretch; } +.uk-flex-top { align-items: flex-start; } +.uk-flex-middle { align-items: center; } +.uk-flex-bottom { align-items: flex-end; } + + +/* Direction + ========================================================================== */ + +// Default +.uk-flex-row { flex-direction: row; } +.uk-flex-row-reverse { flex-direction: row-reverse; } +.uk-flex-column { flex-direction: column; } +.uk-flex-column-reverse { flex-direction: column-reverse; } + + +/* Wrap + ========================================================================== */ + +// Default +.uk-flex-nowrap { flex-wrap: nowrap; } +.uk-flex-wrap { flex-wrap: wrap; } +.uk-flex-wrap-reverse { flex-wrap: wrap-reverse; } + +/* + * Aligns items within the flex container when there is extra space in the cross-axis + * Only works if there is more than one line of flex items + */ + +// Default +.uk-flex-wrap-stretch { align-content: stretch; } +.uk-flex-wrap-top { align-content: flex-start; } +.uk-flex-wrap-middle { align-content: center; } +.uk-flex-wrap-bottom { align-content: flex-end; } +.uk-flex-wrap-between { align-content: space-between; } +.uk-flex-wrap-around { align-content: space-around; } + + +/* Item ordering + ========================================================================== */ + +/* + * Default is 0 + */ + +.uk-flex-first { order: -1;} +.uk-flex-last { order: 99;} + + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-flex-first\@s { order: -1; } + .uk-flex-last\@s { order: 99; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-flex-first\@m { order: -1; } + .uk-flex-last\@m { order: 99; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-flex-first\@l { order: -1; } + .uk-flex-last\@l { order: 99; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-flex-first\@xl { order: -1; } + .uk-flex-last\@xl { order: 99; } + +} + + +/* Item dimensions + ========================================================================== */ + +/* + * Initial: 0 1 auto + * Content dimensions, but shrinks + */ + +/* + * No Flex: 0 0 auto + * Content dimensions + */ + +.uk-flex-none { flex: none; } + +/* + * Relative Flex: 1 1 auto + * Space is allocated considering content + */ + +.uk-flex-auto { flex: auto; } + +/* + * Absolute Flex: 1 1 0% + * Space is allocated solely based on flex + */ + +.uk-flex-1 { flex: 1; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-flex-misc)) {@include hook-flex-misc();} + +// @mixin hook-flex-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/form-range.scss b/scss/uikit/components/form-range.scss new file mode 100644 index 00000000..f7a22a5d --- /dev/null +++ b/scss/uikit/components/form-range.scss @@ -0,0 +1,185 @@ +// Name: Form Range +// Description: Styles for the range input type +// +// Component: `uk-range` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-range-thumb-height: 15px !default; +$form-range-thumb-border-radius: 500px !default; +$form-range-thumb-background: $global-color !default; + +$form-range-track-height: 3px !default; +$form-range-track-background: darken($global-muted-background, 5%) !default; +$form-range-track-focus-background: darken($global-muted-background, 15%) !default; + + +/* ======================================================================== + Component: Form Range + ========================================================================== */ + +/* + * 1. Normalize and defaults + * 2. Prevent content overflow if a fixed width is used + * 3. Take the full width + * 4. Remove default style + * 5. Remove white background in Chrome + * 6. Remove padding in IE11 + */ + +.uk-range { + /* 1 */ + box-sizing: border-box; + margin: 0; + vertical-align: middle; + /* 2 */ + max-width: 100%; + /* 3 */ + width: 100%; + /* 4 */ + -webkit-appearance: none; + /* 5 */ + background: transparent; + /* 6 */ + padding: 0; + @if(mixin-exists(hook-form-range)) {@include hook-form-range();} +} + +/* Focus */ +.uk-range:focus { outline: none; } +.uk-range::-moz-focus-outer { border: none; } + +/* IE11 Reset */ +.uk-range::-ms-track { + height: $form-range-thumb-height; + background: transparent; + border-color: transparent; + color: transparent; +} + +/* + * Improves consistency of cursor style for clickable elements + */ + +.uk-range:not(:disabled)::-webkit-slider-thumb { cursor: pointer; } +.uk-range:not(:disabled)::-moz-range-thumb { cursor: pointer; } +.uk-range:not(:disabled)::-ms-thumb { cursor: pointer; } + + +/* Thumb + ========================================================================== */ + +/* + * 1. Reset + * 2. Style + */ + +/* Webkit */ +.uk-range::-webkit-slider-thumb { + /* 1 */ + -webkit-appearance: none; + margin-top: (floor($form-range-thumb-height / 2) * -1); + /* 2 */ + height: $form-range-thumb-height; + width: $form-range-thumb-height; + border-radius: $form-range-thumb-border-radius; + background: $form-range-thumb-background; + @if(mixin-exists(hook-form-range-thumb)) {@include hook-form-range-thumb();} +} + +/* Firefox */ +.uk-range::-moz-range-thumb { + /* 1 */ + border: none; + /* 2 */ + height: $form-range-thumb-height; + width: $form-range-thumb-height; + border-radius: $form-range-thumb-border-radius; + background: $form-range-thumb-background; + @if(mixin-exists(hook-form-range-thumb)) {@include hook-form-range-thumb();} +} + +/* Edge */ +.uk-range::-ms-thumb { + /* 1 */ + margin-top: 0; +} + +/* IE11 */ +.uk-range::-ms-thumb { + /* 1 */ + border: none; + /* 2 */ + height: $form-range-thumb-height; + width: $form-range-thumb-height; + border-radius: $form-range-thumb-border-radius; + background: $form-range-thumb-background; + @if(mixin-exists(hook-form-range-thumb)) {@include hook-form-range-thumb();} +} + +/* Edge + IE11 */ +.uk-range::-ms-tooltip { display: none; } + + +/* Track + ========================================================================== */ + +/* + * 1. Safari doesn't have a focus state. Using active instead. + */ + +/* Webkit */ +.uk-range::-webkit-slider-runnable-track { + height: $form-range-track-height; + background: $form-range-track-background; + @if(mixin-exists(hook-form-range-track)) {@include hook-form-range-track();} +} + +.uk-range:focus::-webkit-slider-runnable-track, +/* 1 */ +.uk-range:active::-webkit-slider-runnable-track { + background: $form-range-track-focus-background; + @if(mixin-exists(hook-form-range-track-focus)) {@include hook-form-range-track-focus();} +} + +/* Firefox */ +.uk-range::-moz-range-track { + height: $form-range-track-height; + background: $form-range-track-background; + @if(mixin-exists(hook-form-range-track)) {@include hook-form-range-track();} +} + +.uk-range:focus::-moz-range-track { + background: $form-range-track-focus-background; + @if(mixin-exists(hook-form-range-track-focus)) {@include hook-form-range-track-focus();} +} + +/* Edge */ +.uk-range::-ms-fill-lower, +.uk-range::-ms-fill-upper { + height: $form-range-track-height; + background: $form-range-track-background; + @if(mixin-exists(hook-form-range-track)) {@include hook-form-range-track();} +} + +.uk-range:focus::-ms-fill-lower, +.uk-range:focus::-ms-fill-upper { + background: $form-range-track-focus-background; + @if(mixin-exists(hook-form-range-track-focus)) {@include hook-form-range-track-focus();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-form-range-misc)) {@include hook-form-range-misc();} + +// @mixin hook-form-range(){} +// @mixin hook-form-range-thumb(){} +// @mixin hook-form-range-track(){} +// @mixin hook-form-range-track-focus(){} +// @mixin hook-form-range-misc(){} diff --git a/scss/uikit/components/form.scss b/scss/uikit/components/form.scss new file mode 100644 index 00000000..e33f5337 --- /dev/null +++ b/scss/uikit/components/form.scss @@ -0,0 +1,764 @@ +// Name: Form +// Description: Styles for forms +// +// Component: `uk-form-*` +// `uk-input` +// `uk-select` +// `uk-textarea` +// `uk-radio` +// `uk-checkbox` +// `uk-legend` +// `uk-fieldset` +// +// Sub-objects: `uk-form-custom` +// `uk-form-stacked` +// `uk-form-horizontal` +// `uk-form-label` +// `uk-form-controls` +// `uk-form-icon` +// `uk-form-icon-flip` +// +// Modifiers: `uk-form-small` +// `uk-form-large` +// `uk-form-danger` +// `uk-form-success` +// `uk-form-blank` +// `uk-form-width-xsmall` +// `uk-form-width-small` +// `uk-form-width-medium` +// `uk-form-width-large` +// `uk-form-controls-text` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-height: $global-control-height !default; +$form-line-height: $form-height !default; +$form-padding-horizontal: 10px !default; +$form-padding-vertical: 4px !default; + +$form-background: $global-muted-background !default; +$form-color: $global-color !default; + +$form-focus-background: $global-muted-background !default; +$form-focus-color: $global-color !default; + +$form-disabled-background: $global-muted-background !default; +$form-disabled-color: $global-muted-color !default; + +$form-placeholder-color: $global-muted-color !default; + +$form-small-height: $global-control-small-height !default; +$form-small-padding-horizontal: 8px !default; +$form-small-line-height: $form-small-height !default; +$form-small-font-size: $global-small-font-size !default; + +$form-large-height: $global-control-large-height !default; +$form-large-padding-horizontal: 12px !default; +$form-large-line-height: $form-large-height !default; +$form-large-font-size: $global-medium-font-size !default; + +$form-danger-color: $global-danger-background !default; +$form-success-color: $global-success-background !default; + +$form-width-xsmall: 50px !default; +$form-width-small: 130px !default; +$form-width-medium: 200px !default; +$form-width-large: 500px !default; + +$form-select-padding-right: 20px !default; +$form-select-icon-color: $global-color !default; +$form-select-option-color: #444 !default; +$form-select-disabled-icon-color: $global-muted-color !default; + +$form-radio-size: 16px !default; +$form-radio-margin-top: -4px !default; +$form-radio-background: darken($global-muted-background, 5%) !default; + +$form-radio-checked-background: $global-primary-background !default; +$form-radio-checked-icon-color: $global-inverse-color !default; + +$form-radio-checked-focus-background: darken($global-primary-background, 10%) !default; + +$form-radio-disabled-background: $global-muted-background !default; +$form-radio-disabled-icon-color: $global-muted-color !default; + +$form-legend-font-size: $global-large-font-size !default; +$form-legend-line-height: 1.4 !default; + +$form-stacked-margin-bottom: $global-small-margin !default; + +$form-horizontal-label-width: 200px !default; +$form-horizontal-label-margin-top: 7px !default; +$form-horizontal-controls-margin-left: 215px !default; +$form-horizontal-controls-text-padding-top: 7px !default; + +$form-icon-width: $form-height !default; +$form-icon-font-size: $global-font-size !default; +$form-icon-color: $global-muted-color !default; +$form-icon-hover-color: $global-color !default; + +$internal-form-select-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-radio-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-form-checkbox-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +/* ======================================================================== + Component: Form + ========================================================================== */ + +/* + * 1. Define consistent box sizing. + * Default is `content-box` with following exceptions set to `border-box` + * `select`, `input[type="checkbox"]` and `input[type="radio"]` + * `input[type="search"]` in Chrome, Safari and Opera + * `input[type="color"]` in Firefox + * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera. + * 3. Remove `border-radius` in iOS. + * 4. Change font properties to `inherit` in all browsers. + */ + +.uk-input, +.uk-select, +.uk-textarea, +.uk-radio, +.uk-checkbox { + /* 1 */ + box-sizing: border-box; + /* 2 */ + margin: 0; + /* 3 */ + border-radius: 0; + /* 4 */ + font: inherit; +} + +/* + * Show the overflow in Edge. + */ + +.uk-input { overflow: visible; } + +/* + * Remove the inheritance of text transform in Firefox. + */ + +.uk-select { text-transform: none; } + +/* + * 1. Change font properties to `inherit` in all browsers + * 2. Don't inherit the `font-weight` and use `bold` instead. + * NOTE: Both declarations don't work in Chrome, Safari and Opera. + */ + +.uk-select optgroup { + /* 1 */ + font: inherit; + /* 2 */ + font-weight: bold; +} + +/* + * Remove the default vertical scrollbar in IE 10+. + */ + +.uk-textarea { overflow: auto; } + +/* + * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X. + */ + +.uk-input[type="search"]::-webkit-search-cancel-button, +.uk-input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + + +/* + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +.uk-input[type="number"]::-webkit-inner-spin-button, +.uk-input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/* + * Removes placeholder transparency in Firefox. + */ + +.uk-input::-moz-placeholder, +.uk-textarea::-moz-placeholder { opacity: 1; } + +/* + * Improves consistency of cursor style for clickable elements + */ + +.uk-radio:not(:disabled), +.uk-checkbox:not(:disabled) { cursor: pointer; } + +/* + * Define consistent border, margin, and padding. + */ + +.uk-fieldset { + border: none; + margin: 0; + padding: 0; +} + + +/* Input, select and textarea + * Allowed: `text`, `password`, `datetime`, `datetime-local`, `date`, `month`, + `time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color` + * Disallowed: `range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image` + ========================================================================== */ + +/* + * Remove default style in iOS. + */ + +.uk-input, +.uk-textarea { -webkit-appearance: none; } + +/* + * 1. Prevent content overflow if a fixed width is used + * 2. Take the full width + * 3. Reset default + * 4. Style + */ + +.uk-input, +.uk-select, +.uk-textarea { + /* 1 */ + max-width: 100%; + /* 2 */ + width: 100%; + /* 3 */ + border: 0 none; + /* 4 */ + padding: 0 $form-padding-horizontal; + background: $form-background; + color: $form-color; + @if(mixin-exists(hook-form)) {@include hook-form();} +} + +/* + * Single-line + * 1. Allow any element to look like an `input` or `select` element + * 2. Make sure line-height is not larger than height + * Also needed to center the text vertically + */ + +.uk-input, +.uk-select:not([multiple]):not([size]) { + height: $form-height; + vertical-align: middle; + /* 1 */ + display: inline-block; + @if(mixin-exists(hook-form-single-line)) {@include hook-form-single-line();} +} + +/* 2 */ +.uk-input:not(input), +.uk-select:not(select) { line-height: $form-line-height; } + +/* + * Multi-line + */ + +.uk-select[multiple], +.uk-select[size], +.uk-textarea { + padding-top: $form-padding-vertical; + padding-bottom: $form-padding-vertical; + vertical-align: top; + @if(mixin-exists(hook-form-multi-line)) {@include hook-form-multi-line();} +} + +/* Focus */ +.uk-input:focus, +.uk-select:focus, +.uk-textarea:focus { + outline: none; + background-color: $form-focus-background; + color: $form-focus-color; + @if(mixin-exists(hook-form-focus)) {@include hook-form-focus();} +} + +/* Disabled */ +.uk-input:disabled, +.uk-select:disabled, +.uk-textarea:disabled { + background-color: $form-disabled-background; + color: $form-disabled-color; + @if(mixin-exists(hook-form-disabled)) {@include hook-form-disabled();} +} + +/* + * Placeholder + */ + +.uk-input:-ms-input-placeholder { color: $form-placeholder-color !important; } +.uk-input::placeholder { color: $form-placeholder-color; } + +.uk-textarea:-ms-input-placeholder { color: $form-placeholder-color !important; } +.uk-textarea::placeholder { color: $form-placeholder-color; } + + +/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`) + ========================================================================== */ + +/* + * Small + */ + +.uk-form-small { font-size: $form-small-font-size; } + +.uk-form-small:not(textarea):not([multiple]):not([size]) { + height: $form-small-height; + padding-left: $form-small-padding-horizontal; + padding-right: $form-small-padding-horizontal; +} + +.uk-form-small:not(select):not(input):not(textarea) { line-height: $form-small-line-height; } + +/* + * Large + */ + +.uk-form-large { font-size: $form-large-font-size; } + +.uk-form-large:not(textarea):not([multiple]):not([size]) { + height: $form-large-height; + padding-left: $form-large-padding-horizontal; + padding-right: $form-large-padding-horizontal; +} + +.uk-form-large:not(select):not(input):not(textarea) { line-height: $form-large-line-height; } + + +/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`) + ========================================================================== */ + +/* + * Error + */ + +.uk-form-danger, +.uk-form-danger:focus { + color: $form-danger-color; + @if(mixin-exists(hook-form-danger)) {@include hook-form-danger();} +} + +/* + * Success + */ + +.uk-form-success, +.uk-form-success:focus { + color: $form-success-color; + @if(mixin-exists(hook-form-success)) {@include hook-form-success();} +} + +/* + * Blank + */ + +.uk-form-blank { + background: none; + @if(mixin-exists(hook-form-blank)) {@include hook-form-blank();} +} + +.uk-form-blank:focus { + @if(mixin-exists(hook-form-blank-focus)) {@include hook-form-blank-focus();} +} + + +/* Width modifiers (`uk-input`, `uk-select` and `uk-textarea`) + ========================================================================== */ + +/* + * Fixed widths + * Different widths for mini sized `input` and `select` elements + */ + +input.uk-form-width-xsmall { width: $form-width-xsmall; } + +select.uk-form-width-xsmall { width: ($form-width-xsmall + 25px); } + +.uk-form-width-small { width: $form-width-small; } + +.uk-form-width-medium { width: $form-width-medium; } + +.uk-form-width-large { width: $form-width-large; } + + +/* Select + ========================================================================== */ + +/* + * 1. Remove default style. Also works in Firefox + * 2. Style + * 3. Remove default style in IE 10/11 + * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light. + */ + +.uk-select:not([multiple]):not([size]) { + /* 1 */ + -webkit-appearance: none; + -moz-appearance: none; + /* 2 */ + padding-right: $form-select-padding-right; + @include svg-fill($internal-form-select-image, "#000", $form-select-icon-color); + background-repeat: no-repeat; + background-position: 100% 50%; +} + +/* 3 */ +.uk-select:not([multiple]):not([size])::-ms-expand { display: none; } + +/* 4 */ +.uk-select:not([multiple]):not([size]) option { color: $form-select-option-color; } + +/* + * Disabled + */ + +.uk-select:not([multiple]):not([size]):disabled { @include svg-fill($internal-form-select-image, "#000", $form-select-disabled-icon-color); } + + +/* Radio and checkbox + * Note: Does not work in IE11 + ========================================================================== */ + +/* + * 1. Style + * 2. Make box more robust so it clips the child element + * 3. Vertical alignment + * 4. Remove default style + * 5. Fix black background on iOS + * 6. Center icons + */ + +.uk-radio, +.uk-checkbox { + /* 1 */ + display: inline-block; + height: $form-radio-size; + width: $form-radio-size; + /* 2 */ + overflow: hidden; + /* 3 */ + margin-top: $form-radio-margin-top; + vertical-align: middle; + /* 4 */ + -webkit-appearance: none; + -moz-appearance: none; + /* 5 */ + background-color: $form-radio-background; + /* 6 */ + background-repeat: no-repeat; + background-position: 50% 50%; + @if(mixin-exists(hook-form-radio)) {@include hook-form-radio();} +} + +.uk-radio { border-radius: 50%; } + +/* Focus */ +.uk-radio:focus, +.uk-checkbox:focus { + outline: none; + @if(mixin-exists(hook-form-radio-focus)) {@include hook-form-radio-focus();} +} + +/* + * Checked + */ + +.uk-radio:checked, +.uk-checkbox:checked, +.uk-checkbox:indeterminate { + background-color: $form-radio-checked-background; + @if(mixin-exists(hook-form-radio-checked)) {@include hook-form-radio-checked();} +} + +/* Focus */ +.uk-radio:checked:focus, +.uk-checkbox:checked:focus, +.uk-checkbox:indeterminate:focus { + background-color: $form-radio-checked-focus-background; + @if(mixin-exists(hook-form-radio-checked-focus)) {@include hook-form-radio-checked-focus();} +} + +/* + * Icons + */ + +.uk-radio:checked { @include svg-fill($internal-form-radio-image, "#000", $form-radio-checked-icon-color); } +.uk-checkbox:checked { @include svg-fill($internal-form-checkbox-image, "#000", $form-radio-checked-icon-color); } +.uk-checkbox:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $form-radio-checked-icon-color); } + +/* + * Disabled + */ + +.uk-radio:disabled, +.uk-checkbox:disabled { + background-color: $form-radio-disabled-background; + @if(mixin-exists(hook-form-radio-disabled)) {@include hook-form-radio-disabled();} +} + +.uk-radio:disabled:checked { @include svg-fill($internal-form-radio-image, "#000", $form-radio-disabled-icon-color); } +.uk-checkbox:disabled:checked { @include svg-fill($internal-form-checkbox-image, "#000", $form-radio-disabled-icon-color); } +.uk-checkbox:disabled:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $form-radio-disabled-icon-color); } + + +/* Legend + ========================================================================== */ + +/* + * Legend + * 1. Behave like block element + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove padding so people aren't caught out if they zero out fieldsets. + * 4. Style + */ + +.uk-legend { + /* 1 */ + width: 100%; + /* 2 */ + color: inherit; + /* 3 */ + padding: 0; + /* 4 */ + font-size: $form-legend-font-size; + line-height: $form-legend-line-height; + @if(mixin-exists(hook-form-legend)) {@include hook-form-legend();} +} + + +/* Custom controls + ========================================================================== */ + +/* + * 1. Container fits its content + * 2. Create position context + * 3. Prevent content overflow + * 4. Behave like most inline-block elements + */ + +.uk-form-custom { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + vertical-align: middle; +} + +/* + * 1. Position and resize the form control to always cover its container + * 2. Required for Firefox for positioning to the left + * 3. Required for Webkit to make `height` work + * 4. Hide controle and show cursor + * 5. Needed for the cursor + * 6. Clip height caused by 5. Needed for Webkit only + */ + +.uk-form-custom select, +.uk-form-custom input[type="file"] { + /* 1 */ + position: absolute; + top: 0; + z-index: 1; + width: 100%; + height: 100%; + /* 2 */ + left: 0; + /* 3 */ + -webkit-appearance: none; + /* 4 */ + opacity: 0; + cursor: pointer; +} + +.uk-form-custom input[type="file"] { + /* 5 */ + font-size: 500px; + /* 6 */ + overflow: hidden; +} + + +/* Label + ========================================================================== */ + +.uk-form-label { + @if(mixin-exists(hook-form-label)) {@include hook-form-label();} +} + + +/* Layout + ========================================================================== */ + +/* + * Stacked + */ + +.uk-form-stacked .uk-form-label { + display: block; + margin-bottom: $form-stacked-margin-bottom; + @if(mixin-exists(hook-form-stacked-label)) {@include hook-form-stacked-label();} +} + +/* + * Horizontal + */ + +/* Tablet portrait and smaller */ +@media (max-width: $breakpoint-small-max) { + + /* Behave like `uk-form-stacked` */ + .uk-form-horizontal .uk-form-label { + display: block; + margin-bottom: $form-stacked-margin-bottom; + @if(mixin-exists(hook-form-stacked-label)) {@include hook-form-stacked-label();} + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-form-horizontal .uk-form-label { + width: $form-horizontal-label-width; + margin-top: $form-horizontal-label-margin-top; + float: left; + @if(mixin-exists(hook-form-horizontal-label)) {@include hook-form-horizontal-label();} + } + + .uk-form-horizontal .uk-form-controls { margin-left: $form-horizontal-controls-margin-left; } + + /* Better vertical alignment if controls are checkboxes and radio buttons with text */ + .uk-form-horizontal .uk-form-controls-text { padding-top: $form-horizontal-controls-text-padding-top; } + +} + + +/* Icons + ========================================================================== */ + +/* + * 1. Set position + * 2. Set width + * 3. Center icon vertically and horizontally + * 4. Style + */ + +.uk-form-icon { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + width: $form-icon-width; + /* 3 */ + display: inline-flex; + justify-content: center; + align-items: center; + /* 4 */ + color: $form-icon-color; +} + +/* + * Required for `a`. + */ + +.uk-form-icon:hover { color: $form-icon-hover-color; } + +/* + * Make `input` element clickable through icon, e.g. if it's a `span` + */ + +.uk-form-icon:not(a):not(button):not(input) { pointer-events: none; } + +/* + * Input padding + */ + +.uk-form-icon:not(.uk-form-icon-flip) ~ .uk-input { padding-left: $form-icon-width !important; } + +/* + * Position modifier + */ + +.uk-form-icon-flip { + right: 0; + left: auto; +} + +.uk-form-icon-flip ~ .uk-input { padding-right: $form-icon-width !important; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-form-misc)) {@include hook-form-misc();} + +// @mixin hook-form(){} +// @mixin hook-form-single-line(){} +// @mixin hook-form-multi-line(){} +// @mixin hook-form-focus(){} +// @mixin hook-form-disabled(){} +// @mixin hook-form-danger(){} +// @mixin hook-form-success(){} +// @mixin hook-form-blank(){} +// @mixin hook-form-blank-focus(){} +// @mixin hook-form-radio(){} +// @mixin hook-form-radio-focus(){} +// @mixin hook-form-radio-checked(){} +// @mixin hook-form-radio-checked-focus(){} +// @mixin hook-form-radio-disabled(){} +// @mixin hook-form-legend(){} +// @mixin hook-form-label(){} +// @mixin hook-form-stacked-label(){} +// @mixin hook-form-horizontal-label(){} +// @mixin hook-form-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-form-background: $inverse-global-muted-background !default; +$inverse-form-color: $inverse-global-color !default; +$inverse-form-focus-background: $inverse-global-muted-background !default; +$inverse-form-focus-color: $inverse-global-color !default; +$inverse-form-placeholder-color: $inverse-global-muted-color !default; + +$inverse-form-select-icon-color: $inverse-global-color !default; + +$inverse-form-radio-background: darken($inverse-global-muted-background, 5%) !default; + +$inverse-form-radio-checked-background: $inverse-global-primary-background !default; +$inverse-form-radio-checked-icon-color: $inverse-global-inverse-color !default; + +$inverse-form-radio-checked-focus-background: darken($inverse-global-primary-background, 10%) !default; + +$inverse-form-icon-color: $inverse-global-muted-color !default; +$inverse-form-icon-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-form(){} +// @mixin hook-inverse-form-focus(){} +// @mixin hook-inverse-form-radio(){} +// @mixin hook-inverse-form-radio-focus(){} +// @mixin hook-inverse-form-radio-checked(){} +// @mixin hook-inverse-form-radio-checked-focus(){} +// @mixin hook-inverse-form-label(){} diff --git a/scss/uikit/components/grid-masonry.scss b/scss/uikit/components/grid-masonry.scss new file mode 100644 index 00000000..935ea251 --- /dev/null +++ b/scss/uikit/components/grid-masonry.scss @@ -0,0 +1,69 @@ +// Name: Grid +// Description: Component to create two dimensional grids +// +// Component: `uk-grid2` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$grid-column-xsmall: 100px !default; +$grid-column-small: 200px !default; +$grid-column-medium: 300px !default; +$grid-column-large: 400px !default; +$grid-column-xlarge: 500px !default; +$grid-column-xxlarge: 600px !default; + +$grid-gap-small: $global-small-gutter !default; +$grid-gap-medium: $global-gutter !default; +$grid-gap-large: $global-large-gutter !default; + + +/* ======================================================================== + Component: Grid + ========================================================================== */ + +.uk-grid-masonry { display: grid; } +.uk-grid-inline { display: inline-grid; } + + +/* Columns Width + ========================================================================== */ + +.uk-grid-column-xsmall { grid-template-columns: repeat(auto-fill, minmax($grid-column-xsmall,1fr)); } +.uk-grid-column-small { grid-template-columns: repeat(auto-fill, minmax($grid-column-small,1fr)); } +.uk-grid-column-medium { grid-template-columns: repeat(auto-fill, minmax($grid-column-medium,1fr)); } +.uk-grid-column-large { grid-template-columns: repeat(auto-fill, minmax($grid-column-large,1fr)); } +.uk-grid-column-xlarge { grid-template-columns: repeat(auto-fill, minmax($grid-column-xlarge,1fr)); } +.uk-grid-column-xxlarge { grid-template-columns: repeat(auto-fill, minmax($grid-column-xxlarge,1fr)); } + + +/* Gap + ========================================================================== */ + +.uk-grid-gap-none { grid-gap: 0; } +.uk-grid-gap-small { grid-gap: $grid-gap-small; } +.uk-grid-gap-medium { grid-gap: $grid-gap-medium; } +.uk-grid-gap-large { grid-gap: $grid-gap-large; } + + +/* Auto Placement + ========================================================================== */ + +// Default +.uk-grid-auto-flow-row { grid-auto-flow: row; } +.uk-grid-auto-flow-column { grid-auto-flow: column; } +.uk-grid-auto-flow-dense { grid-auto-flow: dense; } + + +/* Item Span + ========================================================================== */ + +// TODO Fix implicit tracks if span is too large +.uk-grid-item-span-2 { grid-column-start: span 2; } +.uk-grid-item-span-3 { grid-column-start: span 3; } +.uk-grid-item-span-4 { grid-column-start: span 4; } +.uk-grid-item-span-5 { grid-column-start: span 5; } + diff --git a/scss/uikit/components/grid.scss b/scss/uikit/components/grid.scss new file mode 100644 index 00000000..455033c7 --- /dev/null +++ b/scss/uikit/components/grid.scss @@ -0,0 +1,352 @@ +// Name: Grid +// Description: Component to create responsive, fluid and nestable grids +// +// Component: `uk-grid` +// +// Modifiers: `uk-grid-small` +// `uk-grid-medium` +// `uk-grid-large` +// `uk-grid-collapse` +// `uk-grid-divider` +// `uk-grid-match` +// `uk-grid-stack` +// `uk-grid-margin` +// `uk-grid-margin-small` +// `uk-grid-margin-medium` +// `uk-grid-margin-large` +// `uk-grid-margin-collapse` +// +// Sub-modifier: `uk-grid-item-match` +// +// States: `uk-first-column` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$grid-gutter-horizontal: $global-gutter !default; +$grid-gutter-vertical: $grid-gutter-horizontal !default; +$grid-gutter-horizontal-l: $global-medium-gutter !default; +$grid-gutter-vertical-l: $grid-gutter-horizontal-l !default; + +$grid-small-gutter-horizontal: $global-small-gutter !default; +$grid-small-gutter-vertical: $grid-small-gutter-horizontal !default; + +$grid-medium-gutter-horizontal: $global-gutter !default; +$grid-medium-gutter-vertical: $grid-medium-gutter-horizontal !default; + +$grid-large-gutter-horizontal: $global-medium-gutter !default; +$grid-large-gutter-vertical: $grid-large-gutter-horizontal !default; +$grid-large-gutter-horizontal-l: $global-large-gutter !default; +$grid-large-gutter-vertical-l: $grid-large-gutter-horizontal-l !default; + +$grid-divider-border-width: $global-border-width !default; +$grid-divider-border: $global-border !default; + + +/* ======================================================================== + Component: Grid + ========================================================================== */ + +/* + * 1. Allow cells to wrap into the next line + * 2. Reset list + */ + +.uk-grid { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; +} + +/* + * Grid cell + * Note: Space is allocated solely based on content dimensions, but shrinks: 0 1 auto + * Reset margin for e.g. paragraphs + */ + +.uk-grid > * { margin: 0; } + +/* + * Remove margin from the last-child + */ + +.uk-grid > * > :last-child { margin-bottom: 0; } + + +/* Gutter + ========================================================================== */ + +/* + * Default + */ + +/* Horizontal */ +.uk-grid { margin-left: (-$grid-gutter-horizontal); } +.uk-grid > * { padding-left: $grid-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid, +.uk-grid > .uk-grid-margin, +* + .uk-grid-margin { margin-top: $grid-gutter-vertical; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid { margin-left: (-$grid-gutter-horizontal-l); } + .uk-grid > * { padding-left: $grid-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid + .uk-grid, + .uk-grid > .uk-grid-margin, + * + .uk-grid-margin { margin-top: $grid-gutter-vertical-l; } + +} + +/* + * Small + */ + +/* Horizontal */ +.uk-grid-small { margin-left: (-$grid-small-gutter-horizontal); } +.uk-grid-small > * { padding-left: $grid-small-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid-small, +.uk-grid-small > .uk-grid-margin, +* + .uk-grid-margin-small { margin-top: $grid-small-gutter-vertical; } + +/* + * Medium + */ + +/* Horizontal */ +.uk-grid-medium { margin-left: (-$grid-medium-gutter-horizontal); } +.uk-grid-medium > * { padding-left: $grid-medium-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid-medium, +.uk-grid-medium > .uk-grid-margin, +* + .uk-grid-margin-medium { margin-top: $grid-medium-gutter-vertical; } + +/* + * Large + */ + +/* Horizontal */ +.uk-grid-large { margin-left: (-$grid-large-gutter-horizontal); } +.uk-grid-large > * { padding-left: $grid-large-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid-large, +.uk-grid-large > .uk-grid-margin, +* + .uk-grid-margin-large { margin-top: $grid-large-gutter-vertical; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid-large { margin-left: (-$grid-large-gutter-horizontal-l); } + .uk-grid-large > * { padding-left: $grid-large-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid + .uk-grid-large, + .uk-grid-large > .uk-grid-margin, + * + .uk-grid-margin-large { margin-top: $grid-large-gutter-vertical-l; } + +} + +/* + * Collapse + */ + +/* Horizontal */ +.uk-grid-collapse { margin-left: 0; } +.uk-grid-collapse > * { padding-left: 0; } + +/* Vertical */ +.uk-grid + .uk-grid-collapse, +.uk-grid-collapse > .uk-grid-margin { margin-top: 0; } + + +/* Divider + ========================================================================== */ + +.uk-grid-divider > * { position: relative; } + +.uk-grid-divider > :not(.uk-first-column)::before { + content: ""; + position: absolute; + top: 0; + bottom: 0; + border-left: $grid-divider-border-width solid $grid-divider-border; +} + +/* Vertical */ +.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { + content: ""; + position: absolute; + left: 0; + right: 0; + border-top: $grid-divider-border-width solid $grid-divider-border; +} + +/* + * Default + */ + +/* Horizontal */ +.uk-grid-divider { margin-left: -($grid-gutter-horizontal * 2); } +.uk-grid-divider > * { padding-left: ($grid-gutter-horizontal * 2); } + +.uk-grid-divider > :not(.uk-first-column)::before { left: $grid-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-gutter-vertical); + left: ($grid-gutter-horizontal * 2); +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid-divider { margin-left: -($grid-gutter-horizontal-l * 2); } + .uk-grid-divider > * { padding-left: ($grid-gutter-horizontal-l * 2); } + + .uk-grid-divider > :not(.uk-first-column)::before { left: $grid-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid-divider.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-gutter-vertical-l * 2); } + + .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-gutter-vertical-l); + left: ($grid-gutter-horizontal-l * 2); + } + +} + +/* + * Small + */ + +/* Horizontal */ +.uk-grid-divider.uk-grid-small { margin-left: -($grid-small-gutter-horizontal * 2); } +.uk-grid-divider.uk-grid-small > * { padding-left: ($grid-small-gutter-horizontal * 2); } + +.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before { left: $grid-small-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-small-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-small-gutter-vertical); + left: ($grid-small-gutter-horizontal * 2); +} + +/* + * Medium + */ + +/* Horizontal */ +.uk-grid-divider.uk-grid-medium { margin-left: -($grid-medium-gutter-horizontal * 2); } +.uk-grid-divider.uk-grid-medium > * { padding-left: ($grid-medium-gutter-horizontal * 2); } + +.uk-grid-divider.uk-grid-medium > :not(.uk-first-column)::before { left: $grid-medium-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-medium-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-medium-gutter-vertical); + left: ($grid-medium-gutter-horizontal * 2); +} + +/* + * Large + */ + +/* Horizontal */ +.uk-grid-divider.uk-grid-large { margin-left: -($grid-large-gutter-horizontal * 2); } +.uk-grid-divider.uk-grid-large > * { padding-left: ($grid-large-gutter-horizontal * 2); } + +.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before { left: $grid-large-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-large-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-large-gutter-vertical); + left: ($grid-large-gutter-horizontal * 2); +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid-divider.uk-grid-large { margin-left: -($grid-large-gutter-horizontal-l * 2); } + .uk-grid-divider.uk-grid-large > * { padding-left: ($grid-large-gutter-horizontal-l * 2); } + + .uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before { left: $grid-large-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-large-gutter-vertical-l * 2); } + + .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-large-gutter-vertical-l); + left: ($grid-large-gutter-horizontal-l * 2); + } + +} + + +/* Match child of a grid cell + ========================================================================== */ + +/* + * Behave like a block element + * 1. Wrap into the next line + * 2. Take the full width, at least 100%. Only if no class from the Width component is set. + * 3. Expand width even if larger than 100%, e.g. because of negative margin (Needed for nested grids) + */ + +.uk-grid-match > *, +.uk-grid-item-match { + display: flex; + /* 1 */ + flex-wrap: wrap; +} + +.uk-grid-match > * > :not([class*='uk-width']), +.uk-grid-item-match > :not([class*='uk-width']) { + /* 2 */ + box-sizing: border-box; + width: 100%; + /* 3 */ + flex: auto; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-grid-misc)) {@include hook-grid-misc();} + +// @mixin hook-grid-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-grid-divider-border: $inverse-global-border !default; + + diff --git a/scss/uikit/components/heading.scss b/scss/uikit/components/heading.scss new file mode 100644 index 00000000..13f97229 --- /dev/null +++ b/scss/uikit/components/heading.scss @@ -0,0 +1,223 @@ +// Name: Heading +// Description: Styles for headings +// +// Component: `uk-heading-primary` +// `uk-heading-hero` +// `uk-heading-divider` +// `uk-heading-bullet` +// `uk-heading-line` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$heading-primary-font-size-l: 3.75rem !default; // 60px +$heading-primary-line-height-l: 1.1 !default; + +$heading-primary-font-size-m: $heading-primary-font-size-l * 0.9 !default; // 54px + +$heading-primary-font-size: $heading-primary-font-size-l * 0.8 !default; // 48px +$heading-primary-line-height: 1.2 !default; + +$heading-hero-font-size-l: 8rem !default; // 128px +$heading-hero-line-height-l: 1 !default; + +$heading-hero-font-size-m: $heading-hero-font-size-l * 0.75 !default; // 96px +$heading-hero-line-height-m: 1 !default; + +$heading-hero-font-size: $heading-hero-font-size-l * 0.5 !default; // 64px +$heading-hero-line-height: 1.1 !default; + +$heading-divider-padding-bottom: 10px !default; +$heading-divider-border-width: $global-border-width !default; +$heading-divider-border: $global-border !default; + +$heading-bullet-top: unquote('calc(-0.1 * 1em)') !default; +$heading-bullet-height: 0.9em !default; +$heading-bullet-margin-right: 10px !default; +$heading-bullet-border-width: 5px !default; +$heading-bullet-border: $global-border !default; + +$heading-line-top: 50% !default; +$heading-line-height: $heading-line-border-width !default; +$heading-line-width: 2000px !default; +$heading-line-border-width: $global-border-width !default; +$heading-line-border: $global-border !default; +$heading-line-margin-horizontal: 0.6em !default; + + +/* ======================================================================== + Component: Heading + ========================================================================== */ + + +/* Primary + ========================================================================== */ + +.uk-heading-primary { + font-size: $heading-primary-font-size; + line-height: $heading-primary-line-height; + @if(mixin-exists(hook-heading-primary)) {@include hook-heading-primary();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-heading-primary { font-size: $heading-primary-font-size-m; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-heading-primary { + font-size: $heading-primary-font-size-l; + line-height: $heading-primary-line-height-l; + } + +} + + +/* Hero + ========================================================================== */ + +.uk-heading-hero { + font-size: $heading-hero-font-size; + line-height: $heading-hero-line-height; + @if(mixin-exists(hook-heading-hero)) {@include hook-heading-hero();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-heading-hero { + font-size: $heading-hero-font-size-m; + line-height: $heading-hero-line-height-m; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-heading-hero { + font-size: $heading-hero-font-size-l; + line-height: $heading-hero-line-height-l; + } + +} + + +/* Divider + ========================================================================== */ + +.uk-heading-divider { + padding-bottom: $heading-divider-padding-bottom; + border-bottom: $heading-divider-border-width solid $heading-divider-border; + @if(mixin-exists(hook-heading-divider)) {@include hook-heading-divider();} +} + + +/* Bullet + ========================================================================== */ + +.uk-heading-bullet { position: relative; } + +/* + * 1. Using `inline-block` to make it work with text alignment + * 2. Center vertically + * 3. Style + */ + +.uk-heading-bullet::before { + content: ""; + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + top: $heading-bullet-top; + vertical-align: middle; + /* 3 */ + height: $heading-bullet-height; + margin-right: $heading-bullet-margin-right; + border-left: $heading-bullet-border-width solid $heading-bullet-border; + @if(mixin-exists(hook-heading-bullet)) {@include hook-heading-bullet();} +} + + +/* Line + ========================================================================== */ + +/* + * Clip the child element + */ + +.uk-heading-line { overflow: hidden; } + +/* + * Extra markup is needed to make it work with text align + */ + +.uk-heading-line > * { + display: inline-block; + position: relative; +} + +/* + * 1. Center vertically + * 2. Make the element as large as possible. It's clipped by the container. + * 3. Style + */ + +.uk-heading-line > ::before, +.uk-heading-line > ::after { + content: ""; + /* 1 */ + position: absolute; + top: unquote('calc(#{$heading-line-top} - (#{$heading-line-height} / 2))'); + /* 2 */ + width: $heading-line-width; + /* 3 */ + border-bottom: $heading-line-border-width solid $heading-line-border; + @if(mixin-exists(hook-heading-line)) {@include hook-heading-line();} +} + +.uk-heading-line > ::before { + right: 100%; + margin-right: $heading-line-margin-horizontal; +} +.uk-heading-line > ::after { + left: 100%; + margin-left: $heading-line-margin-horizontal; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-heading-misc)) {@include hook-heading-misc();} + +// @mixin hook-heading-primary(){} +// @mixin hook-heading-hero(){} +// @mixin hook-heading-divider(){} +// @mixin hook-heading-bullet(){} +// @mixin hook-heading-line(){} +// @mixin hook-heading-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-heading-divider-border: $inverse-global-border !default; +$inverse-heading-bullet-border: $inverse-global-border !default; +$inverse-heading-line-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-heading-primary(){} +// @mixin hook-inverse-heading-hero(){} +// @mixin hook-inverse-heading-divider(){} +// @mixin hook-inverse-heading-bullet(){} +// @mixin hook-inverse-heading-line(){} diff --git a/scss/uikit/components/height.scss b/scss/uikit/components/height.scss new file mode 100644 index 00000000..3bcc1504 --- /dev/null +++ b/scss/uikit/components/height.scss @@ -0,0 +1,54 @@ +// Name: Height +// Description: Utilities for heights +// +// Component: `uk-height-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$height-small-height: 150px !default; +$height-medium-height: 300px !default; +$height-large-height: 450px !default; + + +/* ======================================================================== + Component: Height + ========================================================================== */ + +[class*='uk-height'] { box-sizing: border-box; } + +/* + * Only works if parent element has a height set + */ + +.uk-height-1-1 { height: 100%; } + +/* + * Useful to create image teasers + */ + +.uk-height-viewport { min-height: 100vh; } + +/* + * Pixel + * Useful for `overflow: auto` + */ + +.uk-height-small { height: $height-small-height; } +.uk-height-medium { height: $height-medium-height; } +.uk-height-large { height: $height-large-height; } + +.uk-height-max-small { max-height: $height-small-height; } +.uk-height-max-medium { max-height: $height-medium-height; } +.uk-height-max-large { max-height: $height-large-height; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-height-misc)) {@include hook-height-misc();} + +// @mixin hook-height-misc(){} diff --git a/scss/uikit/components/icon.scss b/scss/uikit/components/icon.scss new file mode 100644 index 00000000..2ff70ecf --- /dev/null +++ b/scss/uikit/components/icon.scss @@ -0,0 +1,223 @@ +// Name: Icon +// Description: Component to create icons +// +// Component: `uk-icon` +// +// Modifiers: `uk-icon-image` +// `uk-icon-link` +// `uk-icon-button` +// +// States: `uk-preserve` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$icon-image-size: 20px !default; + +$icon-link-color: $global-muted-color !default; +$icon-link-hover-color: $global-color !default; +$icon-link-active-color: darken($global-color, 5%) !default; + +$icon-button-size: 36px !default; +$icon-button-border-radius: 500px !default; +$icon-button-background: $global-muted-background !default; +$icon-button-color: $global-muted-color !default; + +$icon-button-hover-background: darken($icon-button-background, 5%) !default; +$icon-button-hover-color: $global-color !default; + +$icon-button-active-background: darken($icon-button-background, 10%) !default; +$icon-button-active-color: $global-color !default; + + +/* ======================================================================== + Component: Icon + ========================================================================== */ + +/* + * Note: 1. - 7. is required for `button` elements. Needed for Close and Form Icon component. + * 1. Remove margins in Chrome, Safari and Opera. + * 2. Remove borders for `button`. + * 3. Remove border-radius in Chrome. + * 4. Address `overflow` set to `hidden` in IE. + * 5. Correct `font` properties and `color` not being inherited for `button`. + * 6. Remove the inheritance of text transform in Edge, Firefox, and IE. + * 7. Remove default `button` padding and background color + * 8. Style + * 9. Fill all SVG elements with the current text color if no `fill` attribute is set + * 10. Let the container fit the height of the icon + */ + +.uk-icon { + /* 1 */ + margin: 0; + /* 2 */ + border: none; + /* 3 */ + border-radius: 0; + /* 4 */ + overflow: visible; + /* 5 */ + font: inherit; + color: inherit; + /* 6 */ + text-transform: none; + /* 7. */ + padding: 0; + background-color: transparent; + /* 8 */ + display: inline-block; + /* 9 */ + fill: currentcolor; + /* 10 */ + line-height: 0; +} + +/* Required for `button`. */ +button.uk-icon:not(:disabled) { cursor: pointer; } + +/* + * Remove the inner border and padding in Firefox. + */ + +.uk-icon::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * Set the fill and stroke color of all SVG elements to the current text color + * 1. Fix for uppercase attribute names in Edge. Will be fixed in Windows 10 builds 16251+ + */ + +.uk-icon [fill*='#']:not(.uk-preserve), +.uk-icon [FILL*='#']:not(.uk-preserve) { fill: currentcolor; } // 1 +.uk-icon [stroke*='#']:not(.uk-preserve), +.uk-icon [STROKE*='#']:not(.uk-preserve) { stroke: currentcolor; } // 1 + +/* + * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835 + */ + +.uk-icon > * { transform: translate(0,0); } + + +/* Image modifier + ========================================================================== */ + +/* + * Display images in icon dimensions + */ + +.uk-icon-image { + width: $icon-image-size; + height: $icon-image-size; + background-position: 50% 50%; + background-repeat: no-repeat; + background-size: contain; + vertical-align: middle; +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Link + */ + +.uk-icon-link { + color: $icon-link-color; + @if(mixin-exists(hook-icon-link)) {@include hook-icon-link();} +} + +.uk-icon-link:hover, +.uk-icon-link:focus { + color: $icon-link-hover-color; + outline: none; + @if(mixin-exists(hook-icon-link-hover)) {@include hook-icon-link-hover();} +} + +/* OnClick + Active */ +.uk-icon-link:active, +.uk-active > .uk-icon-link { + color: $icon-link-active-color; + @if(mixin-exists(hook-icon-link-active)) {@include hook-icon-link-active();} +} + +/* + * Button + * 1. Center icon vertically and horizontally + */ + +.uk-icon-button { + box-sizing: border-box; + width: $icon-button-size; + height: $icon-button-size; + border-radius: $icon-button-border-radius; + background: $icon-button-background; + color: $icon-button-color; + vertical-align: middle; + /* 1 */ + display: inline-flex; + justify-content: center; + align-items: center; + @if(mixin-exists(hook-icon-button)) {@include hook-icon-button();} +} + +/* Hover + Focus */ +.uk-icon-button:hover, +.uk-icon-button:focus { + background-color: $icon-button-hover-background; + color: $icon-button-hover-color; + outline: none; + @if(mixin-exists(hook-icon-button-hover)) {@include hook-icon-button-hover();} +} + +/* OnClick + Active */ +.uk-icon-button:active, +.uk-active > .uk-icon-button { + background-color: $icon-button-active-background; + color: $icon-button-active-color; + @if(mixin-exists(hook-icon-button-active)) {@include hook-icon-button-active();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-icon-misc)) {@include hook-icon-misc();} + +// @mixin hook-icon-link(){} +// @mixin hook-icon-link-hover(){} +// @mixin hook-icon-link-active(){} +// @mixin hook-icon-button(){} +// @mixin hook-icon-button-hover(){} +// @mixin hook-icon-button-active(){} +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-icon-link-color: $inverse-global-muted-color !default; +$inverse-icon-link-hover-color: $inverse-global-color !default; +$inverse-icon-link-active-color: $inverse-global-color !default; +$inverse-icon-button-background: $inverse-global-muted-background !default; +$inverse-icon-button-color: $inverse-global-muted-color !default; +$inverse-icon-button-hover-background: darken($inverse-icon-button-background, 5%) !default; +$inverse-icon-button-hover-color: $inverse-global-color !default; +$inverse-icon-button-active-background: darken($inverse-icon-button-background, 10%) !default; +$inverse-icon-button-active-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-icon-link(){} +// @mixin hook-inverse-icon-link-hover(){} +// @mixin hook-inverse-icon-link-active(){} +// @mixin hook-inverse-icon-button(){} +// @mixin hook-inverse-icon-button-hover(){} +// @mixin hook-inverse-icon-button-active(){} diff --git a/scss/uikit/components/iconnav.scss b/scss/uikit/components/iconnav.scss new file mode 100644 index 00000000..ae739c90 --- /dev/null +++ b/scss/uikit/components/iconnav.scss @@ -0,0 +1,140 @@ +// Name: Iconnav +// Description: Component to create icon navigations +// +// Component: `uk-iconnav` +// +// Modifier: `uk-iconnav-vertical` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$iconnav-margin-horizontal: $global-small-margin !default; +$iconnav-margin-vertical: $iconnav-margin-horizontal !default; + +$iconnav-item-color: $global-muted-color !default; + +$iconnav-item-hover-color: $global-color !default; + +$iconnav-item-active-color: $global-color !default; + + +/* ======================================================================== + Component: Iconnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + * 3. Gutter + */ + +.uk-iconnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + margin-left: (-$iconnav-margin-horizontal); + @if(mixin-exists(hook-iconnav)) {@include hook-iconnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + */ + +.uk-iconnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $iconnav-margin-horizontal; +} + + +/* Items + ========================================================================== */ + +/* + * Items must target `a` elements to exclude other elements (e.g. dropdowns) + * 1. Prevent gap if child element is `inline-block`, e.g. an icon + * 2. Style + */ + +.uk-iconnav > * > a { + /* 1 */ + display: block; + /* 2 */ + color: $iconnav-item-color; + @if(mixin-exists(hook-iconnav-item)) {@include hook-iconnav-item();} +} + +/* Hover + Focus */ +.uk-iconnav > * > a:hover, +.uk-iconnav > * > a:focus { + color: $iconnav-item-hover-color; + outline: none; + @if(mixin-exists(hook-iconnav-item-hover)) {@include hook-iconnav-item-hover();} +} + +/* Active */ +.uk-iconnav > .uk-active > a { + color: $iconnav-item-active-color; + @if(mixin-exists(hook-iconnav-item-active)) {@include hook-iconnav-item-active();} +} + + +/* Modifier: 'uk-iconnav-vertical' + ========================================================================== */ + +/* + * 1. Change direction + * 2. Gutter + */ + +.uk-iconnav-vertical { + /* 1 */ + flex-direction: column; + /* 2 */ + margin-left: 0; + margin-top: (-$iconnav-margin-vertical); +} + +/* 2 */ +.uk-iconnav-vertical > * { + padding-left: 0; + padding-top: $iconnav-margin-vertical; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-iconnav-misc)) {@include hook-iconnav-misc();} + +// @mixin hook-iconnav(){} +// @mixin hook-iconnav-item(){} +// @mixin hook-iconnav-item-hover(){} +// @mixin hook-iconnav-item-active(){} +// @mixin hook-iconnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-iconnav-item-color: $inverse-global-muted-color !default; +$inverse-iconnav-item-hover-color: $inverse-global-color !default; +$inverse-iconnav-item-active-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-iconnav-item(){} +// @mixin hook-inverse-iconnav-item-hover(){} +// @mixin hook-inverse-iconnav-item-active(){} \ No newline at end of file diff --git a/scss/uikit/components/inverse.scss b/scss/uikit/components/inverse.scss new file mode 100644 index 00000000..c1b0c07c --- /dev/null +++ b/scss/uikit/components/inverse.scss @@ -0,0 +1,46 @@ +// Name: Inverse +// Description: Inverse component style for light or dark backgrounds +// +// Component: `uk-light` +// `uk-dark` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$inverse-global-color-mode: light !default; + +$inverse-global-color: rgba($global-inverse-color, 0.7) !default; +$inverse-global-emphasis-color: $global-inverse-color !default; +$inverse-global-muted-color: rgba($global-inverse-color, 0.5) !default; +$inverse-global-inverse-color: $global-color !default; + +$inverse-global-primary-background: $global-inverse-color !default; +$inverse-global-muted-background: rgba($global-inverse-color, 0.1) !default; + +$inverse-global-border: rgba($global-inverse-color, 0.2) !default; + + +/* ======================================================================== + Component: Inverse + ========================================================================== */ + + + +/* + * Implemented class depends on the general theme color + * `uk-light` is for light colors on dark backgrounds + * `uk-dark` is or dark colors on light backgrounds + */ + +@if ($inverse-global-color-mode == light) { .uk-light { @if(mixin-exists(hook-inverse)) {@include hook-inverse();}}} + +@if ($inverse-global-color-mode == dark) { .uk-dark { @if(mixin-exists(hook-inverse)) {@include hook-inverse();}}} + + +// Hooks +// ======================================================================== + +// @mixin hook-inverse(){} \ No newline at end of file diff --git a/scss/uikit/components/label.scss b/scss/uikit/components/label.scss new file mode 100644 index 00000000..6600aedf --- /dev/null +++ b/scss/uikit/components/label.scss @@ -0,0 +1,102 @@ +// Name: Label +// Description: Component to indicate important notes +// +// Component: `uk-label` +// +// Modifiers: `uk-label-success` +// `uk-label-warning` +// `uk-label-danger` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$label-padding-vertical: 0 !default; +$label-padding-horizontal: $global-small-margin !default; +$label-background: $global-primary-background !default; +$label-line-height: $global-line-height !default; +$label-font-size: $global-small-font-size !default; +$label-color: $global-inverse-color !default; + +$label-success-background: $global-success-background !default; +$label-success-color: $global-inverse-color !default; +$label-warning-background: $global-warning-background !default; +$label-warning-color: $global-inverse-color !default; +$label-danger-background: $global-danger-background !default; +$label-danger-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Label + ========================================================================== */ + +.uk-label { + display: inline-block; + padding: $label-padding-vertical $label-padding-horizontal; + background: $label-background; + line-height: $label-line-height; + font-size: $label-font-size; + color: $label-color; + vertical-align: middle; + white-space: nowrap; + @if(mixin-exists(hook-label)) {@include hook-label();} +} + + +/* Color modifiers + ========================================================================== */ + +/* + * Success + */ + +.uk-label-success { + background-color: $label-success-background; + color: $label-success-color; + @if(mixin-exists(hook-label-success)) {@include hook-label-success();} +} + +/* + * Warning + */ + +.uk-label-warning { + background-color: $label-warning-background; + color: $label-warning-color; + @if(mixin-exists(hook-label-warning)) {@include hook-label-warning();} +} + +/* + * Danger + */ + +.uk-label-danger { + background-color: $label-danger-background; + color: $label-danger-color; + @if(mixin-exists(hook-label-danger)) {@include hook-label-danger();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-label-misc)) {@include hook-label-misc();} + +// @mixin hook-label(){} +// @mixin hook-label-success(){} +// @mixin hook-label-warning(){} +// @mixin hook-label-danger(){} +// @mixin hook-label-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-label-background: $inverse-global-primary-background !default; +$inverse-label-color: $inverse-global-inverse-color !default; + + + +// @mixin hook-inverse-label(){} \ No newline at end of file diff --git a/scss/uikit/components/leader.scss b/scss/uikit/components/leader.scss new file mode 100644 index 00000000..15e15749 --- /dev/null +++ b/scss/uikit/components/leader.scss @@ -0,0 +1,66 @@ +// Name: Leader +// Description: Component to create dot leaders +// +// Component: `uk-leader` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$leader-fill-content: '.' !default; +$leader-fill-margin-left: $global-small-gutter !default; + + +/* ======================================================================== + Component: Leader + ========================================================================== */ + +.uk-leader { overflow: hidden; } + +/* + * 1. Place element in text flow + * 2. Never break into a new line + * 3. Get a string back with as many repeating characters to fill the container + * 4. Prevent wrapping. Overflowing characters will be clipped by the container + */ + +.uk-leader-fill::after { + /* 1 */ + display: inline-block; + margin-left: $leader-fill-margin-left; + /* 2 */ + width: 0; + /* 3 */ + content: attr(data-fill); + /* 4 */ + white-space: nowrap; + @if(mixin-exists(hook-leader)) {@include hook-leader();} +} + +/* + * Hide if media does not match + */ + +.uk-leader-fill.uk-leader-hide::after { display: none; } + +/* Pass fill character to JS */ +.var-leader-fill::before { content: $leader-fill-content; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-leader-misc)) {@include hook-leader-misc();} + +// @mixin hook-leader(){} +// @mixin hook-leader-misc(){} + + +// Inverse +// ======================================================================== + + + +// @mixin hook-inverse-leader(){} diff --git a/scss/uikit/components/lightbox.scss b/scss/uikit/components/lightbox.scss new file mode 100644 index 00000000..4f9c698d --- /dev/null +++ b/scss/uikit/components/lightbox.scss @@ -0,0 +1,232 @@ +// Name: Lightbox +// Description: Component to create an lightbox image gallery +// +// Component: `uk-lightbox` +// +// Sub-objects: `uk-lightbox-page` +// `uk-lightbox-items` +// `uk-lightbox-toolbar` +// `uk-lightbox-toolbar-icon` +// `uk-lightbox-button` +// `uk-lightbox-caption` +// `uk-lightbox-iframe` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$lightbox-z-index: $global-z-index + 10 !default; +$lightbox-background: #000 !default; + +$lightbox-item-color: rgba(255,255,255,0.7) !default; + +$lightbox-toolbar-padding-vertical: 10px !default; +$lightbox-toolbar-padding-horizontal: 10px !default; +$lightbox-toolbar-background: rgba(0,0,0,0.3) !default; +$lightbox-toolbar-color: rgba(255,255,255,0.7) !default; + +$lightbox-toolbar-icon-padding: 5px !default; +$lightbox-toolbar-icon-color: rgba(255,255,255,0.7) !default; + +$lightbox-toolbar-icon-hover-color: #fff !default; + +$lightbox-button-size: 50px !default; +$lightbox-button-background: $lightbox-toolbar-background !default; +$lightbox-button-color: rgba(255,255,255,0.7) !default; + +$lightbox-button-hover-color: #fff !default; + + +/* ======================================================================== + Component: Lightbox + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Allow scrolling for the modal dialog + * 4. Horizontal padding + * 5. Mask the background page + * 6. Fade-in transition + */ + +.uk-lightbox { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: $lightbox-z-index; + /* 5 */ + background: $lightbox-background; + /* 6 */ + opacity: 0; + transition: opacity 0.15s linear; + @if(mixin-exists(hook-lightbox)) {@include hook-lightbox();} +} + +/* + * Open + * 1. Center child + * 2. Fade-in + */ + +.uk-lightbox.uk-open { + display: block; + /* 2 */ + opacity: 1; +} + + +/* Page + ========================================================================== */ + +/* + * Prevent scrollbars + */ + +.uk-lightbox-page { overflow: hidden; } + + +/* Item + ========================================================================== */ + +/* + * 1. Center child within the viewport + * 2. Not visible by default + * 3. Color needed for spinner icon + * 4. Optimize animation + * 5. Responsiveness + * Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera + * Using `vh` and `vw` to make responsive image work in IE11 + */ + +.uk-lightbox-items > * { + /* 1 */ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + /* 2 */ + display: none; + justify-content: center; + align-items: center; + /* 3 */ + color: $lightbox-item-color; + /* 4 */ + will-change: transform, opacity; + @if(mixin-exists(hook-lightbox-item)) {@include hook-lightbox-item();} +} + +/* 5 */ +.uk-lightbox-items > * > * { + max-width: 100vw; + max-height: 100vh; +} + +.uk-lightbox-items > * > :not(iframe) { + width: auto; + height: auto; +} + +.uk-lightbox-items > .uk-active { display: flex; } + +/* Toolbar + ========================================================================== */ + +.uk-lightbox-toolbar { + padding: $lightbox-toolbar-padding-vertical $lightbox-toolbar-padding-horizontal; + background: $lightbox-toolbar-background; + color: $lightbox-toolbar-color; + @if(mixin-exists(hook-lightbox-toolbar)) {@include hook-lightbox-toolbar();} +} + +.uk-lightbox-toolbar * { color: $lightbox-toolbar-color; } + + +/* Toolbar Icon (Close) + ========================================================================== */ + +.uk-lightbox-toolbar-icon { + padding: $lightbox-toolbar-icon-padding; + color: $lightbox-toolbar-icon-color; + @if(mixin-exists(hook-lightbox-toolbar-icon)) {@include hook-lightbox-toolbar-icon();} +} + +/* + * Hover + */ + +.uk-lightbox-toolbar-icon:hover { + color: $lightbox-toolbar-icon-hover-color; + @if(mixin-exists(hook-lightbox-toolbar-icon-hover)) {@include hook-lightbox-toolbar-icon-hover();} +} + + + +/* Button (Slidenav) + ========================================================================== */ + +/* + * 1. Center icon vertically and horizontally + */ + +.uk-lightbox-button { + box-sizing: border-box; + width: $lightbox-button-size; + height: $lightbox-button-size; + background: $lightbox-button-background; + color: $lightbox-button-color; + /* 1 */ + display: inline-flex; + justify-content: center; + align-items: center; + @if(mixin-exists(hook-lightbox-button)) {@include hook-lightbox-button();} +} + +/* + * Hover + */ + +.uk-lightbox-button:hover { + color: $lightbox-button-hover-color; + @if(mixin-exists(hook-lightbox-button-hover)) {@include hook-lightbox-button-hover();} +} + + +/* Caption + ========================================================================== */ + +.uk-lightbox-caption {} + + +/* Iframe + ========================================================================== */ + +.uk-lightbox-iframe { + width: 80%; + height: 80%; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-lightbox-misc)) {@include hook-lightbox-misc();} + +// @mixin hook-lightbox(){} +// @mixin hook-lightbox-item(){} +// @mixin hook-lightbox-toolbar(){} +// @mixin hook-lightbox-toolbar-icon(){} +// @mixin hook-lightbox-toolbar-icon-hover(){} +// @mixin hook-lightbox-button(){} +// @mixin hook-lightbox-button-hover(){} +// @mixin hook-lightbox-misc(){} diff --git a/scss/uikit/components/link.scss b/scss/uikit/components/link.scss new file mode 100644 index 00000000..9e0ef0e7 --- /dev/null +++ b/scss/uikit/components/link.scss @@ -0,0 +1,123 @@ +// Name: Link +// Description: Styles for links +// +// Component: `uk-link-muted` +// `uk-link-text` +// `uk-link-heading` +// `uk-link-reset` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$link-muted-color: $global-muted-color !default; +$link-muted-hover-color: $global-color !default; + +$link-text-hover-color: $global-muted-color !default; + +$link-heading-hover-color: $global-primary-background !default; +$link-heading-hover-text-decoration: none !default; + + +/* ======================================================================== + Component: Link + ========================================================================== */ + + +/* Muted + ========================================================================== */ + +a.uk-link-muted, +.uk-link-muted a { + color: $link-muted-color; + @if(mixin-exists(hook-link-muted)) {@include hook-link-muted();} +} + +a.uk-link-muted:hover, +.uk-link-muted a:hover { + color: $link-muted-hover-color; + @if(mixin-exists(hook-link-muted-hover)) {@include hook-link-muted-hover();} +} + + +/* Text + ========================================================================== */ + +a.uk-link-text:not(:hover), +.uk-link-text a:not(:hover) { + color: inherit; + @if(mixin-exists(hook-link-text)) {@include hook-link-text();} +} + +a.uk-link-text:hover, +.uk-link-text a:hover { + color: $link-text-hover-color; + @if(mixin-exists(hook-link-text-hover)) {@include hook-link-text-hover();} +} + + +/* Heading + ========================================================================== */ + +a.uk-link-heading:not(:hover), +.uk-link-heading a:not(:hover) { + color: inherit; + @if(mixin-exists(hook-link-heading)) {@include hook-link-heading();} +} + +a.uk-link-heading:hover, +.uk-link-heading a:hover { + color: $link-heading-hover-color; + text-decoration: $link-heading-hover-text-decoration; + @if(mixin-exists(hook-link-heading-hover)) {@include hook-link-heading-hover();} +} + + +/* Reset + ========================================================================== */ + +/* + * `!important` needed to override inverse component + */ + +a.uk-link-reset, +a.uk-link-reset:hover, +.uk-link-reset a, +.uk-link-reset a:hover { + color: inherit !important; + text-decoration: none !important; + @if(mixin-exists(hook-link-reset)) {@include hook-link-reset();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-link-misc)) {@include hook-link-misc();} + +// @mixin hook-link-muted(){} +// @mixin hook-link-muted-hover(){} +// @mixin hook-link-text(){} +// @mixin hook-link-text-hover(){} +// @mixin hook-link-heading(){} +// @mixin hook-link-heading-hover(){} +// @mixin hook-link-reset(){} +// @mixin hook-link-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-link-muted-color: $inverse-global-muted-color !default; +$inverse-link-muted-hover-color: $inverse-global-color !default; +$inverse-link-text-hover-color: $inverse-global-muted-color !default; +$inverse-link-heading-hover-color: $inverse-global-primary-background !default; + + + +// @mixin hook-inverse-link-muted(){} +// @mixin hook-inverse-link-muted-hover(){} +// @mixin hook-inverse-link-text-hover(){} +// @mixin hook-inverse-link-heading-hover(){} diff --git a/scss/uikit/components/list.scss b/scss/uikit/components/list.scss new file mode 100644 index 00000000..ed810bb0 --- /dev/null +++ b/scss/uikit/components/list.scss @@ -0,0 +1,187 @@ +// Name: List +// Description: Styles for lists +// +// Component: `uk-list` +// +// Modifiers: `uk-list-divider` +// `uk-list-striped` +// `uk-list-bullet` +// `uk-list-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$list-margin-top: $global-small-margin !default; + +$list-nested-padding-left: $global-gutter !default; + +$list-divider-margin-top: $global-small-margin !default; +$list-divider-border-width: $global-border-width !default; +$list-divider-border: $global-border !default; + +$list-striped-padding-vertical: $global-small-margin !default; +$list-striped-padding-horizontal: $global-small-margin !default; +$list-striped-background: $global-muted-background !default; + +$list-bullet-width: ($global-line-height * 1em) !default; +$list-bullet-height: $list-bullet-width !default; +$list-bullet-margin-right: $global-small-margin !default; +$list-bullet-icon-color: $global-color !default; + +$list-large-margin-top: $global-margin !default; +$list-large-divider-margin-top: $global-margin !default; +$list-large-striped-padding-vertical: $global-margin !default; +$list-large-striped-padding-horizontal: $global-small-margin !default; + +$internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +/* ======================================================================== + Component: List + ========================================================================== */ + +.uk-list { + padding: 0; + list-style: none; +} + +/* + * Micro clearfix + */ + +.uk-list > li::before, +.uk-list > li::after { + content: ""; + display: table; +} + +.uk-list > li::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-list > li > :last-child { margin-bottom: 0; } + +/* + * Nested lists + */ + +.uk-list ul { + margin: 0; + padding-left: $list-nested-padding-left; + list-style: none; +} + +/* + * Style + */ + +.uk-list > li:nth-child(n+2), +.uk-list > li > ul { margin-top: $list-margin-top; } + + +/* Style modifiers + ========================================================================== */ + +/* + * Divider + */ + +.uk-list-divider > li:nth-child(n+2) { + margin-top: $list-divider-margin-top; + padding-top: $list-divider-margin-top; + border-top: $list-divider-border-width solid $list-divider-border; + @if(mixin-exists(hook-list-divider)) {@include hook-list-divider();} +} + +/* + * Striped + */ + +.uk-list-striped > li { + padding: $list-striped-padding-vertical $list-striped-padding-horizontal; + @if(mixin-exists(hook-list-striped)) {@include hook-list-striped();} +} + +.uk-list-striped > li:nth-of-type(odd) { background: $list-striped-background; } + +.uk-list-striped > li:nth-child(n+2) { margin-top: 0; } + +/* + * Bullet + */ + +.uk-list-bullet > li { + position: relative; + padding-left: unquote('calc(#{$list-bullet-width} + #{$list-bullet-margin-right})'); +} + +.uk-list-bullet > li::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: $list-bullet-width; + height: $list-bullet-height; + @include svg-fill($internal-list-bullet-image, "#000", $list-bullet-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + float: left; + @if(mixin-exists(hook-list-bullet)) {@include hook-list-bullet();} +} + + +/* Size modifier + ========================================================================== */ + +.uk-list-large > li:nth-child(n+2), +.uk-list-large > li > ul { margin-top: $list-large-margin-top; } + +/* + * Divider + */ + +.uk-list-large.uk-list-divider > li:nth-child(n+2) { + margin-top: $list-large-divider-margin-top; + padding-top: $list-large-divider-margin-top; +} + +/* + * Striped + */ + +.uk-list-large.uk-list-striped > li { + padding: $list-large-striped-padding-vertical $list-large-striped-padding-horizontal; + @if(mixin-exists(hook-list-striped)) {@include hook-list-striped();} +} + +.uk-list-large.uk-list-striped > li:nth-child(n+2) { margin-top: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-list-misc)) {@include hook-list-misc();} + +// @mixin hook-list-divider(){} +// @mixin hook-list-striped(){} +// @mixin hook-list-bullet(){} +// @mixin hook-list-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-list-divider-border: $inverse-global-border !default; +$inverse-list-striped-background: $inverse-global-muted-background !default; +$inverse-list-bullet-icon-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-list-divider(){} +// @mixin hook-inverse-list-striped(){} +// @mixin hook-inverse-list-bullet(){} diff --git a/scss/uikit/components/margin.scss b/scss/uikit/components/margin.scss new file mode 100644 index 00000000..c3b13691 --- /dev/null +++ b/scss/uikit/components/margin.scss @@ -0,0 +1,163 @@ +// Name: Margin +// Description: Utilities for margins +// +// Component: `uk-margin-*` +// `uk-margin-small-*` +// `uk-margin-medium-*` +// `uk-margin-large-*` +// `uk-margin-xlarge-*` +// `uk-margin-remove-*` +// `uk-margin-auto-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$margin-margin: $global-margin !default; + +$margin-small-margin: $global-small-margin !default; + +$margin-medium-margin: $global-medium-margin !default; + +$margin-large-margin: $global-medium-margin !default; +$margin-large-margin-l: $global-large-margin !default; + +$margin-xlarge-margin: $global-large-margin !default; +$margin-xlarge-margin-l: $global-xlarge-margin !default; + + +/* ======================================================================== + Component: Margin + ========================================================================== */ + +/* + * Default + */ + +.uk-margin { margin-bottom: $margin-margin; } +* + .uk-margin { margin-top: $margin-margin !important; } + +.uk-margin-top { margin-top: $margin-margin !important; } +.uk-margin-bottom { margin-bottom: $margin-margin !important; } +.uk-margin-left { margin-left: $margin-margin !important; } +.uk-margin-right { margin-right: $margin-margin !important; } + + +/* Small + ========================================================================== */ + +.uk-margin-small { margin-bottom: $margin-small-margin; } +* + .uk-margin-small { margin-top: $margin-small-margin !important; } + +.uk-margin-small-top { margin-top: $margin-small-margin !important; } +.uk-margin-small-bottom { margin-bottom: $margin-small-margin !important; } +.uk-margin-small-left { margin-left: $margin-small-margin !important; } +.uk-margin-small-right { margin-right: $margin-small-margin !important; } + + +/* Medium + ========================================================================== */ + +.uk-margin-medium { margin-bottom: $margin-medium-margin; } +* + .uk-margin-medium { margin-top: $margin-medium-margin !important; } + +.uk-margin-medium-top { margin-top: $margin-medium-margin !important; } +.uk-margin-medium-bottom { margin-bottom: $margin-medium-margin !important; } +.uk-margin-medium-left { margin-left: $margin-medium-margin !important; } +.uk-margin-medium-right { margin-right: $margin-medium-margin !important; } + + +/* Large + ========================================================================== */ + +.uk-margin-large { margin-bottom: $margin-large-margin; } +* + .uk-margin-large { margin-top: $margin-large-margin !important; } + +.uk-margin-large-top { margin-top: $margin-large-margin !important; } +.uk-margin-large-bottom { margin-bottom: $margin-large-margin !important; } +.uk-margin-large-left { margin-left: $margin-large-margin !important; } +.uk-margin-large-right { margin-right: $margin-large-margin !important; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-margin-large { margin-bottom: $margin-large-margin-l; } + * + .uk-margin-large { margin-top: $margin-large-margin-l !important; } + + .uk-margin-large-top { margin-top: $margin-large-margin-l !important; } + .uk-margin-large-bottom { margin-bottom: $margin-large-margin-l !important; } + .uk-margin-large-left { margin-left: $margin-large-margin-l !important; } + .uk-margin-large-right { margin-right: $margin-large-margin-l !important; } + +} + + +/* XLarge + ========================================================================== */ + +.uk-margin-xlarge { margin-bottom: $margin-xlarge-margin; } +* + .uk-margin-xlarge { margin-top: $margin-xlarge-margin !important; } + +.uk-margin-xlarge-top { margin-top: $margin-xlarge-margin !important; } +.uk-margin-xlarge-bottom { margin-bottom: $margin-xlarge-margin !important; } +.uk-margin-xlarge-left { margin-left: $margin-xlarge-margin !important; } +.uk-margin-xlarge-right { margin-right: $margin-xlarge-margin !important; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-margin-xlarge { margin-bottom: $margin-xlarge-margin-l; } + * + .uk-margin-xlarge { margin-top: $margin-xlarge-margin-l !important; } + + .uk-margin-xlarge-top { margin-top: $margin-xlarge-margin-l !important; } + .uk-margin-xlarge-bottom { margin-bottom: $margin-xlarge-margin-l !important; } + .uk-margin-xlarge-left { margin-left: $margin-xlarge-margin-l !important; } + .uk-margin-xlarge-right { margin-right: $margin-xlarge-margin-l !important; } + +} + + +/* Remove + ========================================================================== */ + +.uk-margin-remove { margin: 0 !important; } +.uk-margin-remove-top { margin-top: 0 !important; } +.uk-margin-remove-bottom { margin-bottom: 0 !important; } +.uk-margin-remove-left { margin-left: 0 !important; } +.uk-margin-remove-right { margin-right: 0 !important; } + +.uk-margin-remove-vertical { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.uk-margin-remove-adjacent + * { margin-top: 0 !important; } + + +/* Auto + ========================================================================== */ + +.uk-margin-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.uk-margin-auto-top { margin-top: auto !important; } +.uk-margin-auto-bottom { margin-bottom: auto !important; } +.uk-margin-auto-left { margin-left: auto !important; } +.uk-margin-auto-right { margin-right: auto !important; } + +.uk-margin-auto-vertical { + margin-top: auto !important; + margin-bottom: auto !important; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-margin-misc)) {@include hook-margin-misc();} + +// @mixin hook-margin-misc(){} diff --git a/scss/uikit/components/marker.scss b/scss/uikit/components/marker.scss new file mode 100644 index 00000000..97e43609 --- /dev/null +++ b/scss/uikit/components/marker.scss @@ -0,0 +1,63 @@ +// Name: Marker +// Description: Component to create a marker icon +// +// Component: `uk-marker` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$marker-padding: 5px !default; +$marker-background: $global-secondary-background !default; +$marker-color: $global-inverse-color !default; + +$marker-hover-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Marker + ========================================================================== */ + +/* + * Addopts `uk-icon` + */ + +.uk-marker { + padding: $marker-padding; + background: $marker-background; + color: $marker-color; + @if(mixin-exists(hook-marker)) {@include hook-marker();} +} + +/* Hover + Focus */ +.uk-marker:hover, +.uk-marker:focus { + color: $marker-hover-color; + outline: none; + @if(mixin-exists(hook-marker-hover)) {@include hook-marker-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-marker-misc)) {@include hook-marker-misc();} + +// @mixin hook-marker(){} +// @mixin hook-marker-hover(){} +// @mixin hook-marker-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-marker-background: $global-muted-background !default; +$inverse-marker-color: $global-color !default; +$inverse-marker-hover-color: $global-color !default; + + + +// @mixin hook-inverse-marker(){} +// @mixin hook-inverse-marker-hover(){} diff --git a/scss/uikit/components/mixin.scss b/scss/uikit/components/mixin.scss new file mode 100644 index 00000000..5ed438a5 --- /dev/null +++ b/scss/uikit/components/mixin.scss @@ -0,0 +1,32 @@ +// +// Component: Mixin +// Description: Defines mixins which are used across all components +// +// ======================================================================== + + +// SVG +// ======================================================================== + +/// Replace `$search` with `$replace` in `$string` +/// @author Hugo Giraudel +/// @param {String} $string - Initial string +/// @param {String} $search - Substring to replace +/// @param {String} $replace ('') - New value +/// @return {String} - Updated string +@function str-replace($string, $search, $replace: '') { + $index: str-index($string, $search); + + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + } + + @return $string; +} + +@mixin svg-fill($src, $color-default, $color-new){ + + $replace-src: str-replace($src, $color-default, $color-new) !default; + $replace-src: str-replace($replace-src, "#", "%23"); + background-image: url(quote($replace-src)); +} \ No newline at end of file diff --git a/scss/uikit/components/modal.scss b/scss/uikit/components/modal.scss new file mode 100644 index 00000000..863f008a --- /dev/null +++ b/scss/uikit/components/modal.scss @@ -0,0 +1,368 @@ +// Name: Modal +// Description: Component to create modal dialogs +// +// Component: `uk-modal` +// +// Sub-objects: `uk-modal-page` +// `uk-modal-dialog` +// `uk-modal-header` +// `uk-modal-body` +// `uk-modal-footer` +// `uk-modal-title` +// `uk-modal-close` +// +// Adopted: `uk-modal-close-default` +// `uk-modal-close-outside` +// `uk-modal-close-full` +// +// Modifiers: `uk-modal-container` +// `uk-modal-full` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$modal-z-index: $global-z-index + 10 !default; +$modal-background: rgba(0,0,0,0.6) !default; + +$modal-padding-horizontal: 15px !default; +$modal-padding-horizontal-s: $global-gutter !default; +$modal-padding-horizontal-m: $global-medium-gutter !default; +$modal-padding-vertical: $modal-padding-horizontal !default; +$modal-padding-vertical-s: 50px !default; + +$modal-dialog-width: 600px !default; +$modal-dialog-background: $global-background !default; + +$modal-container-width: 1200px !default; + +$modal-body-padding-horizontal: $global-gutter !default; +$modal-body-padding-vertical: $global-gutter !default; + +$modal-header-padding-horizontal: $global-gutter !default; +$modal-header-padding-vertical: ($modal-header-padding-horizontal / 2) !default; +$modal-header-background: $global-muted-background !default; + +$modal-footer-padding-horizontal: $global-gutter !default; +$modal-footer-padding-vertical: ($modal-footer-padding-horizontal / 2) !default; +$modal-footer-background: $global-muted-background !default; + +$modal-title-font-size: $global-xlarge-font-size !default; +$modal-title-line-height: 1.3 !default; + +$modal-close-position: $global-small-margin !default; +$modal-close-padding: 5px !default; + +$modal-close-outside-position: 0 !default; +$modal-close-outside-translate: 100% !default; +$modal-close-outside-color: lighten($global-inverse-color, 20%) !default; +$modal-close-outside-hover-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Modal + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Allow scrolling for the modal dialog + * 4. Horizontal padding + * 5. Mask the background page + * 6. Fade-in transition + */ + +.uk-modal { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: $modal-z-index; + /* 3 */ + overflow-y: auto; + -webkit-overflow-scrolling: touch; + /* 4 */ + padding: $modal-padding-vertical $modal-padding-horizontal; + /* 5 */ + background: $modal-background; + /* 6 */ + opacity: 0; + transition: opacity 0.15s linear; + @if(mixin-exists(hook-modal)) {@include hook-modal();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-modal { padding: $modal-padding-vertical-s $modal-padding-horizontal-s; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-modal { + padding-left: $modal-padding-horizontal-m; + padding-right: $modal-padding-horizontal-m; + } + +} + +/* + * Open + */ + +.uk-modal.uk-open { opacity: 1; } + + +/* Page + ========================================================================== */ + +/* + * Prevent scrollbars + */ + +.uk-modal-page { overflow: hidden; } + + +/* Dialog + ========================================================================== */ + +/* + * 1. Create position context for spinner and close button + * 2. Dimensions + * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11 + * `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests + * 4. Style + * 5. Slide-in transition + */ + +.uk-modal-dialog { + /* 1 */ + position: relative; + /* 2 */ + box-sizing: border-box; + margin: 0 auto; + width: $modal-dialog-width; + /* 3 */ + max-width: unquote('calc(100% - 0.01px)') !important; + /* 4 */ + background: $modal-dialog-background; + /* 5 */ + opacity: 0; + transform: translateY(-100px); + transition: 0.3s linear; + transition-property: opacity, transform; + @if(mixin-exists(hook-modal-dialog)) {@include hook-modal-dialog();} +} + +/* + * Open + */ + +.uk-open > .uk-modal-dialog { + opacity: 1; + transform: translateY(0); +} + + +/* Size modifier + ========================================================================== */ + +/* + * Container size + * Take the same size as the Container component + */ + +.uk-modal-container .uk-modal-dialog { width: $modal-container-width; } + +/* + * Full size + * 1. Remove padding and background from modal + * 2. Reset all default declarations from modal dialog + */ + +/* 1 */ +.uk-modal-full { + padding: 0; + background: none; +} + +/* 2 */ +.uk-modal-full .uk-modal-dialog { + margin: 0; + width: 100%; + max-width: 100%; + transform: translateY(0); + @if(mixin-exists(hook-modal-full)) {@include hook-modal-full();} +} + + +/* Sections + ========================================================================== */ + +.uk-modal-body { + padding: $modal-body-padding-vertical $modal-body-padding-horizontal; + @if(mixin-exists(hook-modal-body)) {@include hook-modal-body();} +} + +.uk-modal-header { + padding: $modal-header-padding-vertical $modal-header-padding-horizontal; + background: $modal-header-background; + @if(mixin-exists(hook-modal-header)) {@include hook-modal-header();} +} + +.uk-modal-footer { + padding: $modal-footer-padding-vertical $modal-footer-padding-horizontal; + background: $modal-footer-background; + @if(mixin-exists(hook-modal-footer)) {@include hook-modal-footer();} +} + +/* + * Micro clearfix + */ + +.uk-modal-body::before, +.uk-modal-body::after, +.uk-modal-header::before, +.uk-modal-header::after, +.uk-modal-footer::before, +.uk-modal-footer::after { + content: ""; + display: table; +} + +.uk-modal-body::after, +.uk-modal-header::after, +.uk-modal-footer::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-modal-body > :last-child, +.uk-modal-header > :last-child, +.uk-modal-footer > :last-child { margin-bottom: 0; } + + +/* Title + ========================================================================== */ + +.uk-modal-title { + font-size: $modal-title-font-size; + line-height: $modal-title-line-height; + @if(mixin-exists(hook-modal-title)) {@include hook-modal-title();} +} + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +[class*='uk-modal-close-'] { + position: absolute; + z-index: $modal-z-index; + top: $modal-close-position; + right: $modal-close-position; + padding: $modal-close-padding; + @if(mixin-exists(hook-modal-close)) {@include hook-modal-close();} +} + +/* + * Remove margin from adjacent element + */ + +[class*='uk-modal-close-']:first-child + * { margin-top: 0; } + +/* + * Hover + */ + +[class*='uk-modal-close-']:hover { + @if(mixin-exists(hook-modal-close-hover)) {@include hook-modal-close-hover();} +} + +/* + * Default + */ + +.uk-modal-close-default { + @if(mixin-exists(hook-modal-close-default)) {@include hook-modal-close-default();} +} + +.uk-modal-close-default:hover { + @if(mixin-exists(hook-modal-close-default-hover)) {@include hook-modal-close-default-hover();} +} + +/* + * Outside + * 1. Prevent scrollbar on small devices + */ + +.uk-modal-close-outside { + top: $modal-close-outside-position; + /* 1 */ + right: (-$modal-close-padding); + transform: translate(0, -($modal-close-outside-translate)); + color: $modal-close-outside-color; + @if(mixin-exists(hook-modal-close-outside)) {@include hook-modal-close-outside();} +} + +.uk-modal-close-outside:hover { + color: $modal-close-outside-hover-color; + @if(mixin-exists(hook-modal-close-outside-hover)) {@include hook-modal-close-outside-hover();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + /* 1 */ + .uk-modal-close-outside { + right: $modal-close-outside-position; + transform: translate($modal-close-outside-translate, -($modal-close-outside-translate)); + } + +} + +/* + * Full + */ + +.uk-modal-close-full { + @if(mixin-exists(hook-modal-close-full)) {@include hook-modal-close-full();} +} + +.uk-modal-close-full:hover { + @if(mixin-exists(hook-modal-close-full-hover)) {@include hook-modal-close-full-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-modal-misc)) {@include hook-modal-misc();} + +// @mixin hook-modal(){} +// @mixin hook-modal-dialog(){} +// @mixin hook-modal-full(){} +// @mixin hook-modal-header(){} +// @mixin hook-modal-body(){} +// @mixin hook-modal-footer(){} +// @mixin hook-modal-title(){} +// @mixin hook-modal-close(){} +// @mixin hook-modal-close-hover(){} +// @mixin hook-modal-close-default(){} +// @mixin hook-modal-close-default-hover(){} +// @mixin hook-modal-close-outside(){} +// @mixin hook-modal-close-outside-hover(){} +// @mixin hook-modal-close-full(){} +// @mixin hook-modal-close-full-hover(){} +// @mixin hook-modal-misc(){} diff --git a/scss/uikit/components/nav.scss b/scss/uikit/components/nav.scss new file mode 100644 index 00000000..9d990ca2 --- /dev/null +++ b/scss/uikit/components/nav.scss @@ -0,0 +1,357 @@ +// Name: Nav +// Description: Defines styles for list navigations +// +// Component: `uk-nav` +// +// Sub-objects: `uk-nav-header` +// `uk-nav-divider` +// `uk-nav-sub` +// +// Modifiers: `uk-nav-parent-icon` +// `uk-nav-default` +// `uk-nav-primary` +// `uk-nav-center` +// +// States: `uk-active` +// `uk-parent` +// `uk-open` +// `uk-touch` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$nav-item-padding-vertical: 5px !default; +$nav-item-padding-horizontal: 0 !default; + +$nav-sublist-padding-vertical: 5px !default; +$nav-sublist-padding-left: 15px !default; +$nav-sublist-deeper-padding-left: 15px !default; +$nav-sublist-item-padding-vertical: 2px !default; + +$nav-parent-icon-width: ($global-line-height * 1em) !default; +$nav-parent-icon-height: $nav-parent-icon-width !default; +$nav-parent-icon-color: $global-color !default; + +$nav-header-padding-vertical: $nav-item-padding-vertical !default; +$nav-header-padding-horizontal: $nav-item-padding-horizontal !default; +$nav-header-font-size: $global-small-font-size !default; +$nav-header-text-transform: uppercase !default; +$nav-header-margin-top: $global-margin !default; + +$nav-divider-margin-vertical: 5px !default; +$nav-divider-margin-horizontal: 0 !default; + +$nav-default-item-color: $global-muted-color !default; +$nav-default-item-hover-color: $global-color !default; +$nav-default-item-active-color: $global-emphasis-color !default; +$nav-default-header-color: $global-emphasis-color !default; +$nav-default-divider-border-width: $global-border-width !default; +$nav-default-divider-border: $global-border !default; +$nav-default-sublist-item-color: $global-muted-color !default; +$nav-default-sublist-item-hover-color: $global-color !default; + +$nav-primary-item-font-size: $global-large-font-size !default; +$nav-primary-item-line-height: $global-line-height !default; +$nav-primary-item-color: $global-muted-color !default; +$nav-primary-item-hover-color: $global-color !default; +$nav-primary-item-active-color: $global-emphasis-color !default; +$nav-primary-header-color: $global-emphasis-color !default; +$nav-primary-divider-border-width: $global-border-width !default; +$nav-primary-divider-border: $global-border !default; +$nav-primary-sublist-item-color: $global-muted-color !default; +$nav-primary-sublist-item-hover-color: $global-color !default; + +$internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +/* ======================================================================== + Component: Nav + ========================================================================== */ + +/* + * Reset + * 1. Prepare lists + * 2. Prepare links + * 3. Remove default focus style + */ + +/* 1 */ +.uk-nav, +.uk-nav ul { + margin: 0; + padding: 0; + list-style: none; +} + +/* 2 */ +.uk-nav li > a { + display: block; + text-decoration: none; +} + +/* 3 */ +.uk-nav li > a:focus { outline: none; } + +/* + * Items + * Must target `a` elements to exclude other elements (e.g. lists) + */ + +.uk-nav > li > a { padding: $nav-item-padding-vertical $nav-item-padding-horizontal; } + + +/* Sublists + ========================================================================== */ + +/* + * Level 2 + * `ul` needed for higher specificity to override padding + */ + +ul.uk-nav-sub { + padding: $nav-sublist-padding-vertical 0 $nav-sublist-padding-vertical $nav-sublist-padding-left; + @if(mixin-exists(hook-nav-sub)) {@include hook-nav-sub();} +} + +/* + * Level 3 and deeper + */ + +.uk-nav-sub ul { padding-left: $nav-sublist-deeper-padding-left; } + +/* + * Items + */ + +.uk-nav-sub a { padding: $nav-sublist-item-padding-vertical 0; } + + +/* Parent icon modifier + ========================================================================== */ + +.uk-nav-parent-icon > .uk-parent > a::after { + content: ""; + width: $nav-parent-icon-width; + height: $nav-parent-icon-height; + float: right; + @include svg-fill($internal-nav-parent-close-image, "#000", $nav-parent-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + @if(mixin-exists(hook-nav-parent-icon)) {@include hook-nav-parent-icon();} +} + +.uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $nav-parent-icon-color); } + + +/* Header + ========================================================================== */ + +.uk-nav-header { + padding: $nav-header-padding-vertical $nav-header-padding-horizontal; + text-transform: $nav-header-text-transform; + font-size: $nav-header-font-size; + @if(mixin-exists(hook-nav-header)) {@include hook-nav-header();} +} + +.uk-nav-header:not(:first-child) { margin-top: $nav-header-margin-top; } + + +/* Divider + ========================================================================== */ + +.uk-nav-divider { + margin: $nav-divider-margin-vertical $nav-divider-margin-horizontal; + @if(mixin-exists(hook-nav-divider)) {@include hook-nav-divider();} +} + + +/* Default modifier + ========================================================================== */ + +.uk-nav-default { + @if(mixin-exists(hook-nav-default)) {@include hook-nav-default();} +} + +/* + * Items + */ + +.uk-nav-default > li > a { + color: $nav-default-item-color; + @if(mixin-exists(hook-nav-default-item)) {@include hook-nav-default-item();} +} + +/* Hover + Focus */ +.uk-nav-default > li > a:hover, +.uk-nav-default > li > a:focus { + color: $nav-default-item-hover-color; + @if(mixin-exists(hook-nav-default-item-hover)) {@include hook-nav-default-item-hover();} +} + +/* Active */ +.uk-nav-default > li.uk-active > a { + color: $nav-default-item-active-color; + @if(mixin-exists(hook-nav-default-item-active)) {@include hook-nav-default-item-active();} +} + +/* + * Header + */ + +.uk-nav-default .uk-nav-header { + color: $nav-default-header-color; + @if(mixin-exists(hook-nav-default-header)) {@include hook-nav-default-header();} +} + +/* + * Divider + */ + +.uk-nav-default .uk-nav-divider { + border-top: $nav-default-divider-border-width solid $nav-default-divider-border; + @if(mixin-exists(hook-nav-default-divider)) {@include hook-nav-default-divider();} +} + +/* + * Sublists + */ + +.uk-nav-default .uk-nav-sub a { color: $nav-default-sublist-item-color; } + +.uk-nav-default .uk-nav-sub a:hover, +.uk-nav-default .uk-nav-sub a:focus { color: $nav-default-sublist-item-hover-color; } + + +/* Primary modifier + ========================================================================== */ + +.uk-nav-primary { + @if(mixin-exists(hook-nav-primary)) {@include hook-nav-primary();} +} + +/* + * Items + */ + +.uk-nav-primary > li > a { + font-size: $nav-primary-item-font-size; + line-height: $nav-primary-item-line-height; + color: $nav-primary-item-color; + @if(mixin-exists(hook-nav-primary-item)) {@include hook-nav-primary-item();} +} + +/* Hover + Focus */ +.uk-nav-primary > li > a:hover, +.uk-nav-primary > li > a:focus { + color: $nav-primary-item-hover-color; + @if(mixin-exists(hook-nav-primary-item-hover)) {@include hook-nav-primary-item-hover();} +} + +/* Active */ +.uk-nav-primary > li.uk-active > a { + color: $nav-primary-item-active-color; + @if(mixin-exists(hook-nav-primary-item-active)) {@include hook-nav-primary-item-active();} +} + +/* + * Header + */ + +.uk-nav-primary .uk-nav-header { + color: $nav-primary-header-color; + @if(mixin-exists(hook-nav-primary-header)) {@include hook-nav-primary-header();} +} + +/* + * Divider + */ + +.uk-nav-primary .uk-nav-divider { + border-top: $nav-primary-divider-border-width solid $nav-primary-divider-border; + @if(mixin-exists(hook-nav-primary-divider)) {@include hook-nav-primary-divider();} +} + +/* + * Sublists + */ + +.uk-nav-primary .uk-nav-sub a { color: $nav-primary-sublist-item-color; } + +.uk-nav-primary .uk-nav-sub a:hover, +.uk-nav-primary .uk-nav-sub a:focus { color: $nav-primary-sublist-item-hover-color; } + + +/* Alignment modifier + ========================================================================== */ + +.uk-nav-center { text-align: center; } + +/* Sublists */ +.uk-nav-center .uk-nav-sub, +.uk-nav-center .uk-nav-sub ul { padding-left: 0; } + +/* Parent icon modifier */ +.uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after { position: absolute; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-nav-misc)) {@include hook-nav-misc();} + +// @mixin hook-nav-sub(){} +// @mixin hook-nav-parent-icon(){} +// @mixin hook-nav-header(){} +// @mixin hook-nav-divider(){} +// @mixin hook-nav-default(){} +// @mixin hook-nav-default-item(){} +// @mixin hook-nav-default-item-hover(){} +// @mixin hook-nav-default-item-active(){} +// @mixin hook-nav-default-header(){} +// @mixin hook-nav-default-divider(){} +// @mixin hook-nav-primary(){} +// @mixin hook-nav-primary-item(){} +// @mixin hook-nav-primary-item-hover(){} +// @mixin hook-nav-primary-item-active(){} +// @mixin hook-nav-primary-header(){} +// @mixin hook-nav-primary-divider(){} +// @mixin hook-nav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-nav-parent-icon-color: $inverse-global-color !default; +$inverse-nav-default-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-item-hover-color: $inverse-global-color !default; +$inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-divider-border: $inverse-global-border !default; +$inverse-nav-default-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-sublist-item-hover-color: $inverse-global-color !default; + +$inverse-nav-primary-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-divider-border: $inverse-global-border !default; +$inverse-nav-primary-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-nav-parent-icon(){} +// @mixin hook-inverse-nav-default-item(){} +// @mixin hook-inverse-nav-default-item-hover(){} +// @mixin hook-inverse-nav-default-item-active(){} +// @mixin hook-inverse-nav-default-header(){} +// @mixin hook-inverse-nav-default-divider(){} +// @mixin hook-inverse-nav-primary-item(){} +// @mixin hook-inverse-nav-primary-item-hover(){} +// @mixin hook-inverse-nav-primary-item-active(){} +// @mixin hook-inverse-nav-primary-header(){} +// @mixin hook-inverse-nav-primary-divider(){} diff --git a/scss/uikit/components/navbar.scss b/scss/uikit/components/navbar.scss new file mode 100644 index 00000000..a1f633a3 --- /dev/null +++ b/scss/uikit/components/navbar.scss @@ -0,0 +1,537 @@ +// Name: Navbar +// Description: Component to create horizontal navigation bars +// +// Component: `uk-navbar` +// +// Sub-objects: `uk-navbar-container` +// `uk-navbar-left` +// `uk-navbar-right` +// `uk-navbar-center` +// `uk-navbar-center-left` +// `uk-navbar-center-right` +// `uk-navbar-nav` +// `uk-navbar-item` +// `uk-navbar-toggle` +// `uk-navbar-subtitle` +// `uk-navbar-dropbar` +// +// Adopted: `uk-navbar-dropdown` + Modifiers +// `uk-navbar-dropdown-nav` +// `uk-navbar-dropdown-grid` +// `uk-navbar-toggle-icon` +// +// Modifiers: `uk-navbar-transparent` +// `uk-navbar-sticky` +// `uk-navbar-dropdown-stack` +// +// States: `uk-active` +// `uk-parent` +// `uk-open` +// +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$navbar-background: $global-muted-background !default; +$navbar-color-mode: none !default; + +$navbar-nav-item-height: 80px !default; +$navbar-nav-item-padding-horizontal: 15px !default; +$navbar-nav-item-color: $global-muted-color !default; +$navbar-nav-item-font-size: $global-font-size !default; +$navbar-nav-item-font-family: $global-font-family !default; +$navbar-nav-item-hover-color: $global-color !default; +$navbar-nav-item-onclick-color: $global-emphasis-color !default; +$navbar-nav-item-active-color: $global-emphasis-color !default; + +$navbar-item-color: $global-color !default; + +$navbar-toggle-color: $global-muted-color !default; +$navbar-toggle-hover-color: $global-color !default; + +$navbar-subtitle-font-size: $global-small-font-size !default; + +$navbar-dropdown-z-index: $global-z-index + 20 !default; +$navbar-dropdown-width: 200px !default; +$navbar-dropdown-margin: 0 !default; +$navbar-dropdown-padding: 15px !default; +$navbar-dropdown-background: $global-muted-background !default; +$navbar-dropdown-color: $global-color !default; +$navbar-dropdown-grid-gutter-horizontal: $global-gutter !default; +$navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default; + +$navbar-dropdown-dropbar-margin-top: 0 !default; +$navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default; + +$navbar-dropdown-nav-item-color: $global-muted-color !default; +$navbar-dropdown-nav-item-hover-color: $global-color !default; +$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default; +$navbar-dropdown-nav-header-color: $global-emphasis-color !default; +$navbar-dropdown-nav-divider-border-width: $global-border-width !default; +$navbar-dropdown-nav-divider-border: $global-border !default; +$navbar-dropdown-nav-sublist-item-color: $global-muted-color !default; +$navbar-dropdown-nav-sublist-item-hover-color: $global-color !default; + +$navbar-dropbar-background: $navbar-dropdown-background !default; +$navbar-dropbar-z-index: $global-z-index - 20 !default; + + +/* ======================================================================== + Component: Navbar + ========================================================================== */ + +/* + * 1. Create position context to center navbar group + */ + +.uk-navbar { + display: flex; + /* 1 */ + position: relative; + @if(mixin-exists(hook-navbar)) {@include hook-navbar();} +} + + +/* Container + ========================================================================== */ + +.uk-navbar-container:not(.uk-navbar-transparent) { + background: $navbar-background; + @if(mixin-exists(hook-navbar-container)) {@include hook-navbar-container();} +} + +// Color Mode +@if ( $navbar-color-mode == light ) { .uk-navbar-container:not(.uk-navbar-transparent) { @extend .uk-light !optional;} } +@if ( $navbar-color-mode == dark ) { .uk-navbar-container:not(.uk-navbar-transparent) { @extend .uk-dark !optional;} } + +/* + * Remove pseudo elements created by micro clearfix as precaution (if Container component is used) + */ + +.uk-navbar-container > ::before, +.uk-navbar-container > ::after { display: none !important; } + + +/* Groups + ========================================================================== */ + +/* + * 1. Align navs and items vertically if they have a different height + * 2. Note: IE 11 requires an extra `div` which affects the center selector + */ + +.uk-navbar-left, +.uk-navbar-right, +// 2. [class*='uk-navbar-center'], +.uk-navbar-center, +.uk-navbar-center-left > *, +.uk-navbar-center-right > * { + display: flex; + /* 1 */ + align-items: center; +} + +/* + * Horizontal alignment + * 1. Create position context for centered navbar with sub groups (left/right) + * 2. Needed for dropdowns because a new position context is created + * `z-index` must be smaller than off-canvas + * 3. Fix text wrapping if the centered section is larger than 50% of the navbar + * 4. Align sub groups for centered navbar + */ + +.uk-navbar-right { margin-left: auto; } + +.uk-navbar-center:only-child { + margin-left: auto; + margin-right: auto; + /* 1 */ + position: relative; +} + +.uk-navbar-center:not(:only-child) { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + /* 2 */ + z-index: $global-z-index - 10; +} + +/* 3 */ +.uk-navbar-center:not(:only-child) .uk-navbar-nav > li > a, +.uk-navbar-center:not(:only-child) .uk-navbar-item, +.uk-navbar-center:not(:only-child) .uk-navbar-toggle { white-space: nowrap; } + +/* 4 */ +.uk-navbar-center-left, +.uk-navbar-center-right { + position: absolute; + top: 0; +} + +.uk-navbar-center-left { right: 100%; } +.uk-navbar-center-right { left: 100%; } + +[class*='uk-navbar-center-'] .uk-navbar-nav > li > a, +[class*='uk-navbar-center-'] .uk-navbar-item, +[class*='uk-navbar-center-'] .uk-navbar-toggle { white-space: nowrap; } + + +/* Nav + ========================================================================== */ + +/* + * 1. Reset list + */ + +.uk-navbar-nav { + display: flex; + /* 1 */ + margin: 0; + padding: 0; + list-style: none; +} + +/* + * Allow items to wrap into the next line + * Only not `absolute` positioned groups + */ + +.uk-navbar-left, +.uk-navbar-right, +.uk-navbar-center:only-child { flex-wrap: wrap; } + +/* + * Items + * 1. Center content vertically and horizontally + * 2. Dimensions + * 3. Style + * 4. Required for `a` + */ + +.uk-navbar-nav > li > a, // Nav item +.uk-navbar-item, // Content item +.uk-navbar-toggle { // Clickable item + /* 1 */ + display: flex; + justify-content: center; + align-items: center; + /* 2 */ + box-sizing: border-box; + height: $navbar-nav-item-height; + padding: 0 $navbar-nav-item-padding-horizontal; + /* 3 */ + font-size: $navbar-nav-item-font-size; + font-family: $navbar-nav-item-font-family; + /* 4 */ + text-decoration: none; +} + +/* + * Nav items + */ + +.uk-navbar-nav > li > a { + color: $navbar-nav-item-color; + @if(mixin-exists(hook-navbar-nav-item)) {@include hook-navbar-nav-item();} +} + +/* + * Hover + * Apply hover style also to focus state and if dropdown is opened + */ + +.uk-navbar-nav > li:hover > a, +.uk-navbar-nav > li > a:focus, +.uk-navbar-nav > li > a.uk-open { + color: $navbar-nav-item-hover-color; + outline: none; + @if(mixin-exists(hook-navbar-nav-item-hover)) {@include hook-navbar-nav-item-hover();} +} + +/* OnClick */ +.uk-navbar-nav > li > a:active { + color: $navbar-nav-item-onclick-color; + @if(mixin-exists(hook-navbar-nav-item-onclick)) {@include hook-navbar-nav-item-onclick();} +} + +/* Active */ +.uk-navbar-nav > li.uk-active > a { + color: $navbar-nav-item-active-color; + @if(mixin-exists(hook-navbar-nav-item-active)) {@include hook-navbar-nav-item-active();} +} + + +/* Item + ========================================================================== */ + +.uk-navbar-item { + color: $navbar-item-color; + @if(mixin-exists(hook-navbar-item)) {@include hook-navbar-item();} +} + + +/* Toggle + ========================================================================== */ + +.uk-navbar-toggle { + color: $navbar-toggle-color; + @if(mixin-exists(hook-navbar-toggle)) {@include hook-navbar-toggle();} +} + +.uk-navbar-toggle:hover, +.uk-navbar-toggle:focus, +.uk-navbar-toggle.uk-open { + color: $navbar-toggle-hover-color; + outline: none; + text-decoration: none; + @if(mixin-exists(hook-navbar-toggle-hover)) {@include hook-navbar-toggle-hover();} +} + +/* + * Icon + * Adopts `uk-icon` + */ + +.uk-navbar-toggle-icon { + @if(mixin-exists(hook-navbar-toggle-icon)) {@include hook-navbar-toggle-icon();} +} + +/* Hover + Focus */ +:hover > .uk-navbar-toggle-icon, +:focus > .uk-navbar-toggle-icon { + @if(mixin-exists(hook-navbar-toggle-icon-hover)) {@include hook-navbar-toggle-icon-hover();} +} + + +/* Subtitle + ========================================================================== */ + +.uk-navbar-subtitle { + font-size: $navbar-subtitle-font-size; + @if(mixin-exists(hook-navbar-subtitle)) {@include hook-navbar-subtitle();} +} + + +/* Style modifiers + ========================================================================== */ + +.uk-navbar-transparent { + @if(mixin-exists(hook-navbar-transparent)) {@include hook-navbar-transparent();} +} + +.uk-navbar-sticky { + @if(mixin-exists(hook-navbar-sticky)) {@include hook-navbar-sticky();} +} + + +/* Dropdown + ========================================================================== */ + +/* + * Adopts `uk-dropdown` + * 1. Hide by default + * 2. Set position + * 3. Set a default width + * 4. Style + */ + +.uk-navbar-dropdown { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $navbar-dropdown-z-index; + /* 3 */ + box-sizing: border-box; + width: $navbar-dropdown-width; + /* 4 */ + padding: $navbar-dropdown-padding; + background: $navbar-dropdown-background; + color: $navbar-dropdown-color; + @if(mixin-exists(hook-navbar-dropdown)) {@include hook-navbar-dropdown();} +} + +/* Show */ +.uk-navbar-dropdown.uk-open { display: block; } + +/* + * Direction / Alignment modifiers + */ + +/* Direction */ +[class*='uk-navbar-dropdown-top'] { margin-top: (-$navbar-dropdown-margin); } +[class*='uk-navbar-dropdown-bottom'] { margin-top: $navbar-dropdown-margin; } +[class*='uk-navbar-dropdown-left'] { margin-left: (-$navbar-dropdown-margin); } +[class*='uk-navbar-dropdown-right'] { margin-left: $navbar-dropdown-margin; } + +/* + * Grid + * Adopts `uk-grid` + */ + +/* Gutter Horizontal */ +.uk-navbar-dropdown-grid { margin-left: (-$navbar-dropdown-grid-gutter-horizontal); } +.uk-navbar-dropdown-grid > * { padding-left: $navbar-dropdown-grid-gutter-horizontal; } + +/* Gutter Vertical */ +.uk-navbar-dropdown-grid > .uk-grid-margin { margin-top: $navbar-dropdown-grid-gutter-vertical; } + +/* Stack */ +.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid > * { width: 100% !important; } + +/* + * Width modifier + */ + +.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 2); } +.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 3); } +.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 4); } +.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 5); } + +/* + * Dropbar modifier + */ + +.uk-navbar-dropdown-dropbar { + margin-top: $navbar-dropdown-dropbar-margin-top; + margin-bottom: $navbar-dropdown-dropbar-margin-bottom; + @if(mixin-exists(hook-navbar-dropdown-dropbar)) {@include hook-navbar-dropdown-dropbar();} +} + + +/* Dropdown Nav + * Adopts `uk-nav` + ========================================================================== */ + +.uk-navbar-dropdown-nav { + @if(mixin-exists(hook-navbar-dropdown-nav)) {@include hook-navbar-dropdown-nav();} +} + +/* + * Items + */ + +.uk-navbar-dropdown-nav > li > a { + color: $navbar-dropdown-nav-item-color; + @if(mixin-exists(hook-navbar-dropdown-nav-item)) {@include hook-navbar-dropdown-nav-item();} +} + +/* Hover + Focus */ +.uk-navbar-dropdown-nav > li > a:hover, +.uk-navbar-dropdown-nav > li > a:focus { + color: $navbar-dropdown-nav-item-hover-color; + @if(mixin-exists(hook-navbar-dropdown-nav-item-hover)) {@include hook-navbar-dropdown-nav-item-hover();} +} + +/* Active */ +.uk-navbar-dropdown-nav > li.uk-active > a { + color: $navbar-dropdown-nav-item-active-color; + @if(mixin-exists(hook-navbar-dropdown-nav-item-active)) {@include hook-navbar-dropdown-nav-item-active();} +} + +/* + * Header + */ + +.uk-navbar-dropdown-nav .uk-nav-header { + color: $navbar-dropdown-nav-header-color; + @if(mixin-exists(hook-navbar-dropdown-nav-header)) {@include hook-navbar-dropdown-nav-header();} +} + +/* + * Divider + */ + +.uk-navbar-dropdown-nav .uk-nav-divider { + border-top: $navbar-dropdown-nav-divider-border-width solid $navbar-dropdown-nav-divider-border; + @if(mixin-exists(hook-navbar-dropdown-nav-divider)) {@include hook-navbar-dropdown-nav-divider();} +} + +/* + * Sublists + */ + +.uk-navbar-dropdown-nav .uk-nav-sub a { color: $navbar-dropdown-nav-sublist-item-color; } + +.uk-navbar-dropdown-nav .uk-nav-sub a:hover, +.uk-navbar-dropdown-nav .uk-nav-sub a:focus { color: $navbar-dropdown-nav-sublist-item-hover-color; } + + +/* Dropbar + ========================================================================== */ + +.uk-navbar-dropbar { + background: $navbar-dropbar-background; + @if(mixin-exists(hook-navbar-dropbar)) {@include hook-navbar-dropbar();} +} + +/* + * Slide modifier + */ + +.uk-navbar-dropbar-slide { + position: absolute; + z-index: $navbar-dropbar-z-index; + left: 0; + right: 0; + @if(mixin-exists(hook-navbar-dropbar-slide)) {@include hook-navbar-dropbar-slide();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-navbar-misc)) {@include hook-navbar-misc();} + +// @mixin hook-navbar(){} +// @mixin hook-navbar-container(){} +// @mixin hook-navbar-nav-item(){} +// @mixin hook-navbar-nav-item-hover(){} +// @mixin hook-navbar-nav-item-onclick(){} +// @mixin hook-navbar-nav-item-active(){} +// @mixin hook-navbar-item(){} +// @mixin hook-navbar-toggle(){} +// @mixin hook-navbar-toggle-hover(){} +// @mixin hook-navbar-toggle-icon(){} +// @mixin hook-navbar-toggle-icon-hover(){} +// @mixin hook-navbar-subtitle(){} +// @mixin hook-navbar-transparent(){} +// @mixin hook-navbar-sticky(){} +// @mixin hook-navbar-dropdown(){} +// @mixin hook-navbar-dropdown-dropbar(){} +// @mixin hook-navbar-dropdown-nav(){} +// @mixin hook-navbar-dropdown-nav-item(){} +// @mixin hook-navbar-dropdown-nav-item-hover(){} +// @mixin hook-navbar-dropdown-nav-item-active(){} +// @mixin hook-navbar-dropdown-nav-header(){} +// @mixin hook-navbar-dropdown-nav-divider(){} +// @mixin hook-navbar-dropbar(){} +// @mixin hook-navbar-dropbar-slide(){} +// @mixin hook-navbar-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-navbar-nav-item-color: $inverse-global-muted-color !default; +$inverse-navbar-nav-item-hover-color: $inverse-global-color !default; +$inverse-navbar-nav-item-onclick-color: $inverse-global-emphasis-color !default; +$inverse-navbar-nav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-navbar-item-color: $inverse-global-color !default; +$inverse-navbar-toggle-color: $inverse-global-muted-color !default; +$inverse-navbar-toggle-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-navbar-nav-item(){} +// @mixin hook-inverse-navbar-nav-item-hover(){} +// @mixin hook-inverse-navbar-nav-item-onclick(){} +// @mixin hook-inverse-navbar-nav-item-active(){} +// @mixin hook-inverse-navbar-item(){} +// @mixin hook-inverse-navbar-toggle(){} +// @mixin hook-inverse-navbar-toggle-hover(){} diff --git a/scss/uikit/components/notification.scss b/scss/uikit/components/notification.scss new file mode 100644 index 00000000..cc1ba552 --- /dev/null +++ b/scss/uikit/components/notification.scss @@ -0,0 +1,190 @@ +// Name: Notification +// Description: Component to create notification messages +// +// Component: `uk-notification` +// +// Sub-objects: `uk-notification-message` +// +// Adopted: `uk-notification-close` +// +// Modifiers: `uk-notification-top-center` +// `uk-notification-top-right` +// `uk-notification-bottom-left` +// `uk-notification-bottom-center` +// `uk-notification-bottom-right` +// `uk-notification-message-primary` +// `uk-notification-message-success` +// `uk-notification-message-warning` +// `uk-notification-message-danger` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$notification-position: 10px !default; +$notification-z-index: $global-z-index + 40 !default; +$notification-width: 350px !default; + +$notification-message-margin-bottom: 10px !default; +$notification-message-padding: $global-small-gutter !default; +$notification-message-background: $global-muted-background !default; +$notification-message-color: $global-color !default; +$notification-message-font-size: $global-medium-font-size !default; +$notification-message-line-height: 1.4 !default; + +$notification-close-top: $notification-message-padding + 5px !default; +$notification-close-right: $notification-message-padding !default; + +$notification-message-primary-color: $global-primary-background !default; +$notification-message-success-color: $global-success-background !default; +$notification-message-warning-color: $global-warning-background !default; +$notification-message-danger-color: $global-danger-background !default; + + +/* ======================================================================== + Component: Notification + ========================================================================== */ + +/* + * 1. Set position + * 2. Dimensions + */ + +.uk-notification { + /* 1 */ + position: fixed; + top: $notification-position; + left: $notification-position; + z-index: $notification-z-index; + /* 2 */ + box-sizing: border-box; + width: $notification-width; + @if(mixin-exists(hook-notification)) {@include hook-notification();} +} + + +/* Position modifiers +========================================================================== */ + +.uk-notification-top-right, +.uk-notification-bottom-right { + left: auto; + right: $notification-position; +} + +.uk-notification-top-center, +.uk-notification-bottom-center { + left: 50%; + margin-left: ($notification-width / -2); +} + +.uk-notification-bottom-left, +.uk-notification-bottom-right, +.uk-notification-bottom-center { + top: auto; + bottom: $notification-position; +} + + +/* Responsiveness +========================================================================== */ + +/* Phones portrait and smaller */ +@media (max-width: $breakpoint-xsmall-max) { + + .uk-notification { + left: $notification-position; + right: $notification-position; + width: auto; + margin: 0; + } + +} + + +/* Message +========================================================================== */ + +.uk-notification-message { + position: relative; + margin-bottom: $notification-message-margin-bottom; + padding: $notification-message-padding; + background: $notification-message-background; + color: $notification-message-color; + font-size: $notification-message-font-size; + line-height: $notification-message-line-height; + cursor: pointer; + @if(mixin-exists(hook-notification-message)) {@include hook-notification-message();} +} + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +.uk-notification-close { + display: none; + position: absolute; + top: $notification-close-top; + right: $notification-close-right; + @if(mixin-exists(hook-notification-close)) {@include hook-notification-close();} +} + +.uk-notification-message:hover .uk-notification-close { display: block; } + + +/* Style modifiers + ========================================================================== */ + +/* + * Primary + */ + +.uk-notification-message-primary { + color: $notification-message-primary-color; + @if(mixin-exists(hook-notification-message-primary)) {@include hook-notification-message-primary();} +} + +/* + * Success + */ + +.uk-notification-message-success { + color: $notification-message-success-color; + @if(mixin-exists(hook-notification-message-success)) {@include hook-notification-message-success();} +} + +/* + * Warning + */ + +.uk-notification-message-warning { + color: $notification-message-warning-color; + @if(mixin-exists(hook-notification-message-warning)) {@include hook-notification-message-warning();} +} + +/* + * Danger + */ + +.uk-notification-message-danger { + color: $notification-message-danger-color; + @if(mixin-exists(hook-notification-message-danger)) {@include hook-notification-message-danger();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-notification-misc)) {@include hook-notification-misc();} + +// @mixin hook-notification(){} +// @mixin hook-notification-message(){} +// @mixin hook-notification-close(){} +// @mixin hook-notification-message-primary(){} +// @mixin hook-notification-message-success(){} +// @mixin hook-notification-message-warning(){} +// @mixin hook-notification-message-danger(){} +// @mixin hook-notification-misc(){} diff --git a/scss/uikit/components/offcanvas.scss b/scss/uikit/components/offcanvas.scss new file mode 100644 index 00000000..5fc05587 --- /dev/null +++ b/scss/uikit/components/offcanvas.scss @@ -0,0 +1,301 @@ +// Name: Off-canvas +// Description: Component to create an off-canvas sidebar +// +// Component: `uk-offcanvas` +// +// Sub-objects: `uk-offcanvas-bar` +// `uk-offcanvas-container` +// `uk-offcanvas-content` +// `uk-offcanvas-page` +// +// Adopted: `uk-offcanvas-close` +// +// Modifiers: `uk-offcanvas-flip` +// `uk-offcanvas-bar-animation` +// `uk-offcanvas-reveal` +// `uk-offcanvas-overlay` +// `uk-offcanvas-content-animation` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$offcanvas-z-index: $global-z-index !default; + +$offcanvas-bar-width: 270px !default; +$offcanvas-bar-padding-vertical: $global-margin !default; +$offcanvas-bar-padding-horizontal: $global-margin !default; +$offcanvas-bar-background: $global-secondary-background !default; +$offcanvas-bar-color-mode: light !default; + +$offcanvas-bar-width-m: 350px !default; +$offcanvas-bar-padding-vertical-m: $global-medium-gutter !default; +$offcanvas-bar-padding-horizontal-m: $global-medium-gutter !default; + +$offcanvas-close-position: 20px !default; +$offcanvas-close-padding: 5px !default; + +$offcanvas-overlay-background: rgba(0,0,0,0.1) !default; + + +/* ======================================================================== + Component: Off-canvas + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + */ + +.uk-offcanvas { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: $offcanvas-z-index; +} + +/* + * Flip modifier + */ + +.uk-offcanvas-flip .uk-offcanvas { + right: 0; + left: auto; +} + + +/* Bar + ========================================================================== */ + +/* + * 1. Set position + * 2. Size and style + * 3. Allow scrolling + * 4. Transform + */ + +.uk-offcanvas-bar { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + box-sizing: border-box; + width: $offcanvas-bar-width; + padding: $offcanvas-bar-padding-vertical $offcanvas-bar-padding-horizontal; + background: $offcanvas-bar-background; + /* 3 */ + overflow-y: auto; + -webkit-overflow-scrolling: touch; + /* 4 */ + transform: translateX(-100%); + @if(mixin-exists(hook-offcanvas-bar)) {@include hook-offcanvas-bar();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-offcanvas-bar { + width: $offcanvas-bar-width-m; + padding: $offcanvas-bar-padding-vertical-m $offcanvas-bar-padding-horizontal-m; + } + +} + +// Color Mode +@if ( $offcanvas-bar-color-mode == light ) { .uk-offcanvas-bar { @extend .uk-light !optional;} } +@if ( $offcanvas-bar-color-mode == dark ) { .uk-offcanvas-bar { @extend .uk-dark !optional;} } + +/* Flip modifier */ +.uk-offcanvas-flip .uk-offcanvas-bar { + left: auto; + right: 0; + transform: translateX(100%); +} + +/* + * Open + */ + +.uk-open > .uk-offcanvas-bar { transform: translateX(0); } + +/* + * Slide Animation (Used in slide and push mode) + */ + +.uk-offcanvas-bar-animation { transition: transform 0.3s ease-out; } + +/* + * Reveal Animation + * 1. Set position + * 2. Clip the bar + * 3. Animation + * 4. Reset transform + */ + +.uk-offcanvas-reveal { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + width: 0; + overflow: hidden; + /* 3 */ + transition: width 0.3s ease-out; +} + +.uk-offcanvas-reveal .uk-offcanvas-bar { + /* 4 */ + transform: translateX(0); +} + +.uk-open > .uk-offcanvas-reveal { width: $offcanvas-bar-width; } + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-open > .uk-offcanvas-reveal { width: $offcanvas-bar-width-m; } + +} + +/* + * Flip modifier + */ + +.uk-offcanvas-flip .uk-offcanvas-reveal { + right: 0; + left: auto; +} + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +.uk-offcanvas-close { + position: absolute; + z-index: $offcanvas-z-index; + top: $offcanvas-close-position; + right: $offcanvas-close-position; + padding: $offcanvas-close-padding; + @if(mixin-exists(hook-offcanvas-close)) {@include hook-offcanvas-close();} +} + + +/* Overlay + ========================================================================== */ + +/* + * Overlay the whole page. Needed for the `::before` + * 1. Using `100vw` so no modification is needed when off-canvas is flipped + * 2. Allow for closing with swipe gesture on devices with pointer events. + */ + +.uk-offcanvas-overlay { + /* 1 */ + width: 100vw; + /* 2 */ + touch-action: none; +} + +/* + * 1. Mask the whole page + * 2. Fade-in transition + */ + +.uk-offcanvas-overlay::before { + /* 1 */ + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: $offcanvas-overlay-background; + /* 2 */ + opacity: 0; + transition: opacity 0.15s linear; + @if(mixin-exists(hook-offcanvas-overlay)) {@include hook-offcanvas-overlay();} +} + +.uk-offcanvas-overlay.uk-open::before { opacity: 1; } + + +/* Container + ========================================================================== */ + +/* + * Prevent horizontal scrollbar when the content is slide-out + * Has to be on the `html` element too to make it work on the `body` + */ + +.uk-offcanvas-page, +.uk-offcanvas-container { overflow-x: hidden; } + +/* + * Prevent all scrollbars if overlay is used + */ + +.uk-offcanvas-container-overlay { overflow: hidden; } + + +/* Content + ========================================================================== */ + +/* + * Prepare slide-out animation (Used in reveal and push mode) + * Using `position: left` instead of `transform` because position `fixed` elements like sticky navbars + * lose their fixed state and behaves like `absolute` within a transformed container + * Note: JS sets a fixed width and height so the page can slide-out without shrinking + * 1. Smooth scrolling + */ + +.uk-offcanvas-container .uk-offcanvas-content { + position: relative; + left: 0; + transition: left 0.3s ease-out; + /* 1 */ + -webkit-overflow-scrolling: touch; +} + +/* Disable scrolling if overlay mode */ +.uk-offcanvas-overlay .uk-offcanvas-content { overflow-y: hidden; } + +/* + * Activate slide-out animation + */ + +:not(.uk-offcanvas-flip) > .uk-offcanvas-content-animation { left: $offcanvas-bar-width; } + +.uk-offcanvas-flip > .uk-offcanvas-content-animation { left: (-$offcanvas-bar-width); } + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + :not(.uk-offcanvas-flip) > .uk-offcanvas-content-animation { left: $offcanvas-bar-width-m; } + + .uk-offcanvas-flip > .uk-offcanvas-content-animation { left: (-$offcanvas-bar-width-m); } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-offcanvas-misc)) {@include hook-offcanvas-misc();} + +// @mixin hook-offcanvas-bar(){} +// @mixin hook-offcanvas-close(){} +// @mixin hook-offcanvas-overlay(){} +// @mixin hook-offcanvas-misc(){} diff --git a/scss/uikit/components/overlay.scss b/scss/uikit/components/overlay.scss new file mode 100644 index 00000000..c3eb0a57 --- /dev/null +++ b/scss/uikit/components/overlay.scss @@ -0,0 +1,85 @@ +// Name: Overlay +// Description: Component to create content areas overlaying an image +// +// Component: `uk-overlay` +// +// Adopted: `uk-overlay-icon` +// +// Modifier: `uk-overlay-default` +// `uk-overlay-primary` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$overlay-padding-horizontal: $global-gutter !default; +$overlay-padding-vertical: $global-gutter !default; + +$overlay-default-background: rgba($global-background, 0.8) !default; + +$overlay-primary-background: rgba($global-secondary-background, 0.8) !default; +$overlay-primary-color-mode: light !default; + + +/* ======================================================================== + Component: Overlay + ========================================================================== */ + +.uk-overlay { + padding: $overlay-padding-vertical $overlay-padding-horizontal; + @if(mixin-exists(hook-overlay)) {@include hook-overlay();} +} + +/* + * Remove margin from the last-child + */ + +.uk-overlay > :last-child { margin-bottom: 0; } + + +/* Icon + ========================================================================== */ + +.uk-overlay-icon { + @if(mixin-exists(hook-overlay-icon)) {@include hook-overlay-icon();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-overlay-default { + background: $overlay-default-background; + @if(mixin-exists(hook-overlay-default)) {@include hook-overlay-default();} +} + +/* + * Primary + */ + +.uk-overlay-primary { + background: $overlay-primary-background; + @if(mixin-exists(hook-overlay-primary)) {@include hook-overlay-primary();} +} + +// Color Mode +@if ( $overlay-primary-color-mode == light ) { .uk-overlay-primary { @extend .uk-light !optional;} } +@if ( $overlay-primary-color-mode == dark ) { .uk-overlay-primary { @extend .uk-dark !optional;} } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-overlay-misc)) {@include hook-overlay-misc();} + +// @mixin hook-overlay(){} +// @mixin hook-overlay-icon(){} +// @mixin hook-overlay-default(){} +// @mixin hook-overlay-primary(){} +// @mixin hook-overlay-misc(){} diff --git a/scss/uikit/components/padding.scss b/scss/uikit/components/padding.scss new file mode 100644 index 00000000..0c0f1ed1 --- /dev/null +++ b/scss/uikit/components/padding.scss @@ -0,0 +1,81 @@ +// Name: Padding +// Description: Utilities for padding +// +// Component: `uk-padding` +// `uk-padding-large` +// `uk-padding-remove-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$padding-padding: $global-gutter !default; +$padding-padding-l: $global-medium-gutter !default; + +$padding-small-padding: $global-small-gutter !default; + +$padding-large-padding: $global-gutter !default; +$padding-large-padding-l: $global-large-gutter !default; + + +/* ======================================================================== + Component: Padding + ========================================================================== */ + +.uk-padding { padding: $padding-padding; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-padding { padding: $padding-padding-l; } + +} + + +/* Small + ========================================================================== */ + +.uk-padding-small { padding: $padding-small-padding; } + + +/* Large + ========================================================================== */ + +.uk-padding-large { padding: $padding-large-padding; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-padding-large { padding: $padding-large-padding-l; } + +} + + +/* Remove + ========================================================================== */ + +.uk-padding-remove { padding: 0 !important; } +.uk-padding-remove-top { padding-top: 0 !important; } +.uk-padding-remove-bottom { padding-bottom: 0 !important; } +.uk-padding-remove-left { padding-left: 0 !important; } +.uk-padding-remove-right { padding-right: 0 !important; } + +.uk-padding-remove-vertical { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.uk-padding-remove-horizontal { + padding-left: 0 !important; + padding-right: 0 !important; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-padding-misc)) {@include hook-padding-misc();} + +// @mixin hook-padding-misc(){} diff --git a/scss/uikit/components/pagination.scss b/scss/uikit/components/pagination.scss new file mode 100644 index 00000000..5dce23ad --- /dev/null +++ b/scss/uikit/components/pagination.scss @@ -0,0 +1,128 @@ +// Name: Pagination +// Description: Component to create a page navigation +// +// Component: `uk-pagination` +// +// Adopted: `uk-pagination-next` +// `uk-pagination-previous` +// +// States: `uk-active` +// `uk-disabled` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$pagination-margin-horizontal: 20px !default; + +$pagination-item-color: $global-muted-color !default; +$pagination-item-hover-color: $global-color !default; +$pagination-item-hover-text-decoration: none !default; +$pagination-item-active-color: $global-color !default; +$pagination-item-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Pagination + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Gutter + * 3. Reset list + */ + +.uk-pagination { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin-left: (-$pagination-margin-horizontal); + /* 3 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-pagination)) {@include hook-pagination();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + * 3. Create position context for dropdowns + */ + +.uk-pagination > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $pagination-margin-horizontal; + /* 3 */ + position: relative; +} + + +/* Items + ========================================================================== */ + +/* + * 1. Prevent gap if child element is `inline-block`, e.g. an icon + * 2. Style + */ + +.uk-pagination > * > * { + /* 1 */ + display: block; + /* 2 */ + color: $pagination-item-color; + @if(mixin-exists(hook-pagination-item)) {@include hook-pagination-item();} +} + +/* Hover + Focus */ +.uk-pagination > * > :hover, +.uk-pagination > * > :focus { + color: $pagination-item-hover-color; + text-decoration: $pagination-item-hover-text-decoration; + @if(mixin-exists(hook-pagination-item-hover)) {@include hook-pagination-item-hover();} +} + +/* Active */ +.uk-pagination > .uk-active > * { + color: $pagination-item-active-color; + @if(mixin-exists(hook-pagination-item-active)) {@include hook-pagination-item-active();} +} + +/* Disabled */ +.uk-pagination > .uk-disabled > * { + color: $pagination-item-disabled-color; + @if(mixin-exists(hook-pagination-item-disabled)) {@include hook-pagination-item-disabled();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-pagination-misc)) {@include hook-pagination-misc();} + +// @mixin hook-pagination(){} +// @mixin hook-pagination-item(){} +// @mixin hook-pagination-item-hover(){} +// @mixin hook-pagination-item-active(){} +// @mixin hook-pagination-item-disabled(){} +// @mixin hook-pagination-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-pagination-item-color: $inverse-global-muted-color !default; +$inverse-pagination-item-hover-color: $inverse-global-color !default; +$inverse-pagination-item-active-color: $inverse-global-color !default; +$inverse-pagination-item-disabled-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-pagination-item(){} +// @mixin hook-inverse-pagination-item-hover(){} +// @mixin hook-inverse-pagination-item-active(){} +// @mixin hook-inverse-pagination-item-disabled(){} diff --git a/scss/uikit/components/placeholder.scss b/scss/uikit/components/placeholder.scss new file mode 100644 index 00000000..05c06f7d --- /dev/null +++ b/scss/uikit/components/placeholder.scss @@ -0,0 +1,45 @@ +// Name: Placeholder +// Description: Component to create placeholder boxes +// +// Component: `uk-placeholder` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$placeholder-margin-vertical: $global-margin !default; +$placeholder-padding-vertical: $global-gutter !default; +$placeholder-padding-horizontal: $global-gutter !default; +$placeholder-background: $global-muted-background !default; + + +/* ======================================================================== + Component: Placeholder + ========================================================================== */ + +.uk-placeholder { + margin-bottom: $placeholder-margin-vertical; + padding: $placeholder-padding-vertical $placeholder-padding-horizontal; + background: $placeholder-background; + @if(mixin-exists(hook-placeholder)) {@include hook-placeholder();} +} + +/* Add margin if adjacent element */ +* + .uk-placeholder { margin-top: $placeholder-margin-vertical; } + +/* + * Remove margin from the last-child + */ + +.uk-placeholder > :last-child { margin-bottom: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-placeholder-misc)) {@include hook-placeholder-misc();} + +// @mixin hook-placeholder(){} +// @mixin hook-placeholder-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/position.scss b/scss/uikit/components/position.scss new file mode 100644 index 00000000..799b3587 --- /dev/null +++ b/scss/uikit/components/position.scss @@ -0,0 +1,250 @@ +// Name: Position +// Description: Utilities to position content +// +// Component: `uk-position-absolute` +// `uk-position-relative` +// `uk-position-z-index` +// `uk-position-top` +// `uk-position-bottom` +// `uk-position-left` +// `uk-position-right` +// `uk-position-top-left` +// `uk-position-top-center` +// `uk-position-top-right` +// `uk-position-bottom-left` +// `uk-position-bottom-center` +// `uk-position-bottom-right` +// `uk-position-center` +// `uk-position-center-left` +// `uk-position-center-right` +// `uk-position-cover` +// +// Modifiers: `uk-position-small` +// `uk-position-medium` +// `uk-position-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$position-small-margin: $global-small-gutter !default; +$position-medium-margin: $global-gutter !default; +$position-large-margin: $global-gutter !default; +$position-large-margin-l: 50px !default; + + +/* ======================================================================== + Component: Position + ========================================================================== */ + + +/* Directions + ========================================================================== */ + +[class*='uk-position-top'], +[class*='uk-position-bottom'], +[class*='uk-position-left'], +[class*='uk-position-right'], +[class*='uk-position-center'] { position: absolute !important; } + + +/* Edges + ========================================================================== */ + +/* Don't use `width: 100%` because it is wrong if the parent has padding. */ +.uk-position-top { + top: 0; + left: 0; + right: 0; +} + +.uk-position-bottom { + bottom: 0; + left: 0; + right: 0; +} + +.uk-position-left { + top: 0; + bottom: 0; + left: 0; +} + +.uk-position-right { + top: 0; + bottom: 0; + right: 0; +} + + +/* Corners + ========================================================================== */ + +.uk-position-top-left { + top: 0; + left: 0; +} + +.uk-position-top-right { + top: 0; + right: 0; +} + +.uk-position-bottom-left { + bottom: 0; + left: 0; +} + +.uk-position-bottom-right { + bottom: 0; + right: 0; +} + +/* + * Center + * 1. Fix text wrapping if content is larger than 50% of the container (Not working in Firefox) + * 2. Fix text wrapping for Firefox + */ + +.uk-position-center { + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + /* 1 */ + display: table; + /* 2 */ + width: -moz-max-content; + max-width: 100%; + box-sizing: border-box; +} + +/* Vertical */ +[class*='uk-position-center-left'], +[class*='uk-position-center-right'] { + top: 50%; + transform: translateY(-50%); +} + +.uk-position-center-left { left: 0; } +.uk-position-center-right { right: 0; } + +.uk-position-center-left-out { + right: 100%; + width: max-content; +} + +.uk-position-center-right-out { + left: 100%; + width: max-content; +} + +/* Horizontal */ +.uk-position-top-center, +.uk-position-bottom-center { + left: 50%; + transform: translateX(-50%); + /* 1 */ + display: table; + /* 2 */ + width: -moz-max-content; + max-width: 100%; + box-sizing: border-box; +} + +.uk-position-top-center { top: 0; } +.uk-position-bottom-center { bottom: 0; } + + +/* Cover + ========================================================================== */ + +.uk-position-cover { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + + +/* Utility + ========================================================================== */ + +.uk-position-relative { position: relative !important; } + +.uk-position-absolute { position: absolute !important; } + +.uk-position-fixed { position: fixed !important; } + +.uk-position-z-index { z-index: 1; } + + +/* Margin modifier + ========================================================================== */ + +/* + * Small + */ + +.uk-position-small { margin: $position-small-margin; } + +.uk-position-small.uk-position-center { transform: translate(-50%, -50%) translate(-$position-small-margin, (-$position-small-margin)); } + +.uk-position-small[class*='uk-position-center-left'], +.uk-position-small[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-small-margin); } + +.uk-position-small.uk-position-top-center, +.uk-position-small.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-small-margin); } + +/* + * Medium + */ + +.uk-position-medium { margin: $position-medium-margin; } + +.uk-position-medium.uk-position-center { transform: translate(-50%, -50%) translate(-$position-medium-margin, (-$position-medium-margin)); } + +.uk-position-medium[class*='uk-position-center-left'], +.uk-position-medium[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-medium-margin); } + +.uk-position-medium.uk-position-top-center, +.uk-position-medium.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-medium-margin); } + +/* + * Large + */ + +.uk-position-large { margin: $position-large-margin; } + +.uk-position-large.uk-position-center { transform: translate(-50%, -50%) translate(-$position-large-margin, (-$position-large-margin)); } + +.uk-position-large[class*='uk-position-center-left'], +.uk-position-large[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-large-margin); } + +.uk-position-large.uk-position-top-center, +.uk-position-large.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-large-margin); } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-position-large { margin: $position-large-margin-l; } + + .uk-position-large.uk-position-center { transform: translate(-50%, -50%) translate(-$position-large-margin-l, (-$position-large-margin-l)); } + + .uk-position-large[class*='uk-position-center-left'], + .uk-position-large[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-large-margin-l); } + + .uk-position-large.uk-position-top-center, + .uk-position-large.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-large-margin-l); } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-position-misc)) {@include hook-position-misc();} + +// @mixin hook-position-misc(){} diff --git a/scss/uikit/components/print.scss b/scss/uikit/components/print.scss new file mode 100644 index 00000000..6162df52 --- /dev/null +++ b/scss/uikit/components/print.scss @@ -0,0 +1,61 @@ +// Name: Print +// Description: Optimize page for printing +// +// Adapted from http://github.com/h5bp/html5-boilerplate +// +// Modifications: Removed link `href` and `title` related rules +// +// ======================================================================== + + +/* ======================================================================== + Component: Print + ========================================================================== */ + +@media print { + + *, + *::before, + *::after { + background: transparent !important; + color: black !important; + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { text-decoration: underline; } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { display: table-header-group; } + + tr, + img { page-break-inside: avoid; } + + img { max-width: 100% !important; } + + @page { margin: 0.5cm; } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { page-break-after: avoid; } + + @if(mixin-exists(hook-print)) {@include hook-print();} + +} + +// Hooks +// ======================================================================== + +// @mixin hook-print(){} diff --git a/scss/uikit/components/progress.scss b/scss/uikit/components/progress.scss new file mode 100644 index 00000000..4575513e --- /dev/null +++ b/scss/uikit/components/progress.scss @@ -0,0 +1,105 @@ +// Name: Progress +// Description: Component to create progress bars +// +// Component: `uk-progress` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$progress-height: 15px !default; +$progress-margin-vertical: $global-margin !default; +$progress-background: $global-muted-background !default; + +$progress-bar-background: $global-primary-background !default; + + +/* ======================================================================== + Component: Progress + ========================================================================== */ + +/* + * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera. + * 2. Remove default style + * 3. Behave like a block element + * 4. Remove borders in Firefox and Edge + * 5. Set background color for progress container in Firefox, IE11 and Edge + * 6. Style + */ + +.uk-progress { + /* 1 */ + vertical-align: baseline; + /* 2 */ + -webkit-appearance: none; + -moz-appearance: none; + /* 3 */ + display: block; + width: 100%; + /* 4 */ + border: 0; + /* 5 */ + background-color: $progress-background; + /* 6 */ + margin-bottom: $progress-margin-vertical; + height: $progress-height; + @if(mixin-exists(hook-progress)) {@include hook-progress();} +} + +/* Add margin if adjacent element */ +* + .uk-progress { margin-top: $progress-margin-vertical; } + +/* + * Remove animated circles for indeterminate state in IE11 and Edge + */ + +.uk-progress:indeterminate { color: transparent; } + +/* + * Progress container + * 2. Remove progress bar for indeterminate state in Firefox + */ + +.uk-progress::-webkit-progress-bar { + background-color: $progress-background; + @if(mixin-exists(hook-progress)) {@include hook-progress();} +} + +/* 2 */ +.uk-progress:indeterminate::-moz-progress-bar { width: 0; } + +/* + * Progress bar + * 1. Remove right border in IE11 and Edge + */ + +.uk-progress::-webkit-progress-value { + background-color: $progress-bar-background; + transition: width 0.6s ease; + @if(mixin-exists(hook-progress-bar)) {@include hook-progress-bar();} +} + +.uk-progress::-moz-progress-bar { + background-color: $progress-bar-background; + @if(mixin-exists(hook-progress-bar)) {@include hook-progress-bar();} +} + +.uk-progress::-ms-fill { + background-color: $progress-bar-background; + transition: width 0.6s ease; + /* 1 */ + border: 0; + @if(mixin-exists(hook-progress-bar)) {@include hook-progress-bar();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-progress-misc)) {@include hook-progress-misc();} + +// @mixin hook-progress(){} +// @mixin hook-progress-bar(){} +// @mixin hook-progress-misc(){} diff --git a/scss/uikit/components/search.scss b/scss/uikit/components/search.scss new file mode 100644 index 00000000..a61002f5 --- /dev/null +++ b/scss/uikit/components/search.scss @@ -0,0 +1,328 @@ +// Name: Search +// Description: Component to create the search +// +// Component: `uk-search` +// +// Sub-objects: `uk-search-input` +// `uk-search-toggle` +// +// Adopted: `uk-search-icon` +// +// Modifier: `uk-search-default` +// `uk-search-navbar` +// `uk-search-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$search-color: $global-color !default; +$search-placeholder-color: $global-muted-color !default; + +$search-icon-color: $global-muted-color !default; + +$search-default-width: 180px !default; +$search-default-height: $global-control-height !default; +$search-default-padding-horizontal: 6px !default; +$search-default-background: $global-muted-background !default; +$search-default-focus-background: $search-default-background !default; + +$search-default-icon-width: $global-control-height !default; + +$search-navbar-width: 400px !default; +$search-navbar-height: 40px !default; +$search-navbar-background: transparent !default; +$search-navbar-font-size: $global-large-font-size !default; + +$search-navbar-icon-width: 40px !default; + +$search-large-width: 500px !default; +$search-large-height: 80px !default; +$search-large-background: transparent !default; +$search-large-font-size: $global-xxlarge-font-size !default; + +$search-large-icon-width: 80px !default; + +$search-toggle-color: $global-muted-color !default; +$search-toggle-hover-color: $global-color !default; + + +/* ======================================================================== + Component: Search + ========================================================================== */ + +/* + * 1. Container fits its content + * 2. Create position context + * 3. Prevent content overflow + * 4. Reset `form` + */ + +.uk-search { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + margin: 0; +} + + +/* Input + ========================================================================== */ + +/* + * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X. + */ + +.uk-search-input::-webkit-search-cancel-button, +.uk-search-input::-webkit-search-decoration { -webkit-appearance: none; } + +/* + * Removes placeholder transparency in Firefox. + */ + +.uk-search-input::-moz-placeholder { opacity: 1; } + +/* + * 1. Define consistent box sizing. + * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera. + * 3. Remove `border-radius` in iOS. + * 4. Change font properties to `inherit` in all browsers + * 5. Show the overflow in Edge. + * 6. Remove default style in iOS. + * 7. Vertical alignment + * 8. Take the full container width + * 9. Style + */ + +.uk-search-input { + /* 1 */ + box-sizing: border-box; + /* 2 */ + margin: 0; + /* 3 */ + border-radius: 0; + /* 4 */ + font: inherit; + /* 5 */ + overflow: visible; + /* 6 */ + -webkit-appearance: none; + /* 7 */ + vertical-align: middle; + /* 8 */ + width: 100%; + /* 9 */ + border: none; + color: $search-color; + @if(mixin-exists(hook-search-input)) {@include hook-search-input();} +} + +.uk-search-input:focus { outline: none; } + +/* Placeholder */ +.uk-search-input:-ms-input-placeholder { color: $search-placeholder-color !important; } +.uk-search-input::placeholder { color: $search-placeholder-color; } + + +/* Icon (Adopts `uk-icon`) + ========================================================================== */ + +/* + * Remove default focus style + */ + +.uk-search-icon:focus { outline: none; } + +/* + * Position above input + * 1. Set position + * 2. Center icon vertically and horizontally + * 3. Style + */ + +.uk-search .uk-search-icon { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + display: inline-flex; + justify-content: center; + align-items: center; + /* 3 */ + color: $search-icon-color; +} + +/* + * Required for `a`. + */ + +.uk-search .uk-search-icon:hover { color: $search-icon-color; } + +/* + * Make `input` element clickable through icon, e.g. if it's a `span` + */ + +.uk-search .uk-search-icon:not(a):not(button):not(input) { pointer-events: none; } + +/* + * Position modifier + */ + +.uk-search .uk-search-icon-flip { + right: 0; + left: auto; +} + + +/* Default modifier + ========================================================================== */ + +.uk-search-default { width: $search-default-width; } + +/* + * Input + */ + +.uk-search-default .uk-search-input { + height: $search-default-height; + padding-left: $search-default-padding-horizontal; + padding-right: $search-default-padding-horizontal; + background: $search-default-background; + @if(mixin-exists(hook-search-default-input)) {@include hook-search-default-input();} +} + +/* Focus */ +.uk-search-default .uk-search-input:focus { + background-color: $search-default-focus-background; + @if(mixin-exists(hook-search-default-input-focus)) {@include hook-search-default-input-focus();} +} + +/* + * Icon + */ + +.uk-search-default .uk-search-icon { width: $search-default-icon-width; } + +.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input { padding-left: ($search-default-icon-width); } +.uk-search-default .uk-search-icon-flip ~ .uk-search-input { padding-right: ($search-default-icon-width); } + + +/* Navbar modifier + ========================================================================== */ + +.uk-search-navbar { width: $search-navbar-width; } + +/* + * Input + */ + +.uk-search-navbar .uk-search-input { + height: $search-navbar-height; + background: $search-navbar-background; + font-size: $search-navbar-font-size; + @if(mixin-exists(hook-search-navbar-input)) {@include hook-search-navbar-input();} +} + +/* + * Icon + */ + +.uk-search-navbar .uk-search-icon { width: $search-navbar-icon-width; } + +.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input { padding-left: ($search-navbar-icon-width); } +.uk-search-navbar .uk-search-icon-flip ~ .uk-search-input { padding-right: ($search-navbar-icon-width); } + + +/* Large modifier + ========================================================================== */ + +.uk-search-large { width: $search-large-width; } + +/* + * Input + */ + +.uk-search-large .uk-search-input { + height: $search-large-height; + background: $search-large-background; + font-size: $search-large-font-size; + @if(mixin-exists(hook-search-large-input)) {@include hook-search-large-input();} +} + +/* + * Icon + */ + +.uk-search-large .uk-search-icon { width: $search-large-icon-width; } + +.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input { padding-left: ($search-large-icon-width); } +.uk-search-large .uk-search-icon-flip ~ .uk-search-input { padding-right: ($search-large-icon-width); } + + +/* Toggle + ========================================================================== */ + +.uk-search-toggle { + color: $search-toggle-color; + @if(mixin-exists(hook-search-toggle)) {@include hook-search-toggle();} +} + +/* Hover + Focus */ +.uk-search-toggle:hover, +.uk-search-toggle:focus { + color: $search-toggle-hover-color; + @if(mixin-exists(hook-search-toggle-hover)) {@include hook-search-toggle-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-search-misc)) {@include hook-search-misc();} + +// @mixin hook-search-input(){} +// @mixin hook-search-default-input(){} +// @mixin hook-search-default-input-focus(){} +// @mixin hook-search-navbar-input(){} +// @mixin hook-search-large-input(){} + +// @mixin hook-search-toggle(){} +// @mixin hook-search-toggle-hover(){} + +// @mixin hook-search-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-search-color: $inverse-global-color !default; +$inverse-search-placeholder-color: $inverse-global-muted-color !default; + +$inverse-search-icon-color: $inverse-global-muted-color !default; + +$inverse-search-default-background: $inverse-global-muted-background !default; +$inverse-search-default-focus-background: $inverse-search-default-background !default; + +$inverse-search-navbar-background: transparent !default; + +$inverse-search-large-background: transparent !default; + +$inverse-search-toggle-color: $inverse-global-muted-color !default; +$inverse-search-toggle-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-search-default-input(){} +// @mixin hook-inverse-search-default-input-focus(){} +// @mixin hook-inverse-search-navbar-input(){} +// @mixin hook-inverse-search-large-input(){} +// @mixin hook-inverse-search-toggle(){} +// @mixin hook-inverse-search-toggle-hover(){} diff --git a/scss/uikit/components/section.scss b/scss/uikit/components/section.scss new file mode 100644 index 00000000..ee7d2506 --- /dev/null +++ b/scss/uikit/components/section.scss @@ -0,0 +1,224 @@ +// Name: Section +// Description: Component to create horizontal layout section +// +// Component: `uk-section` +// +// Modifiers: `uk-section-xsmall` +// `uk-section-small` +// `uk-section-large` +// `uk-section-xlarge` +// `uk-section-default` +// `uk-section-muted` +// `uk-section-primary` +// `uk-section-secondary` +// `uk-section-overlap` +// +// States: `uk-preserve-color` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$section-padding-vertical: $global-medium-margin !default; +$section-padding-vertical-m: $global-large-margin !default; + +$section-xsmall-padding-vertical: $global-margin !default; + +$section-small-padding-vertical: $global-medium-margin !default; + +$section-large-padding-vertical: $global-large-margin !default; +$section-large-padding-vertical-m: $global-xlarge-margin !default; + +$section-xlarge-padding-vertical: $global-xlarge-margin !default; +$section-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; + +$section-default-background: $global-background !default; + +$section-muted-background: $global-muted-background !default; + +$section-primary-background: $global-primary-background !default; +$section-primary-color-mode: light !default; + +$section-secondary-background: $global-secondary-background !default; +$section-secondary-color-mode: light !default; + + +/* ======================================================================== + Component: Section + ========================================================================== */ + +/* + * 1. Make it work with `100vh` and height in general + */ + +.uk-section { + box-sizing: border-box; /* 1 */ + padding-top: $section-padding-vertical; + padding-bottom: $section-padding-vertical; + @if(mixin-exists(hook-section)) {@include hook-section();} +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-section { + padding-top: $section-padding-vertical-m; + padding-bottom: $section-padding-vertical-m; + } + +} + +/* + * Micro clearfix + */ + +.uk-section::before, +.uk-section::after { + content: ""; + display: table; +} + +.uk-section::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-section > :last-child { margin-bottom: 0; } + + +/* Size modifiers + ========================================================================== */ + +/* + * XSmall + */ + +.uk-section-xsmall { + padding-top: $section-xsmall-padding-vertical; + padding-bottom: $section-xsmall-padding-vertical; +} + +/* + * Small + */ + +.uk-section-small { + padding-top: $section-small-padding-vertical; + padding-bottom: $section-small-padding-vertical; +} + +/* + * Large + */ + +.uk-section-large { + padding-top: $section-large-padding-vertical; + padding-bottom: $section-large-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-section-large { + padding-top: $section-large-padding-vertical-m; + padding-bottom: $section-large-padding-vertical-m; + } + +} + + +/* + * XLarge + */ + +.uk-section-xlarge { + padding-top: $section-xlarge-padding-vertical; + padding-bottom: $section-xlarge-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-section-xlarge { + padding-top: $section-xlarge-padding-vertical-m; + padding-bottom: $section-xlarge-padding-vertical-m; + } + +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-section-default { + background: $section-default-background; + @if(mixin-exists(hook-section-default)) {@include hook-section-default();} +} + +/* + * Muted + */ + +.uk-section-muted { + background: $section-muted-background; + @if(mixin-exists(hook-section-muted)) {@include hook-section-muted();} +} + +/* + * Primary + */ + +.uk-section-primary { + background: $section-primary-background; + @if(mixin-exists(hook-section-primary)) {@include hook-section-primary();} +} + +@if ( $section-primary-color-mode == light ) { .uk-section-primary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $section-primary-color-mode == dark ) { .uk-section-primary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + + +/* + * Secondary + */ + +.uk-section-secondary { + background: $section-secondary-background; + @if(mixin-exists(hook-section-secondary)) {@include hook-section-secondary();} +} + +@if ( $section-secondary-color-mode == light ) { .uk-section-secondary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $section-secondary-color-mode == dark ) { .uk-section-secondary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + + +/* Overlap modifier + ========================================================================== */ + +/* + * Reserved modifier to make a section overlap another section with an border image + * Implemented by the theme + */ + +.uk-section-overlap { + @if(mixin-exists(hook-section-overlap)) {@include hook-section-overlap();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-section-misc)) {@include hook-section-misc();} + +// @mixin hook-section(){} +// @mixin hook-section-default(){} +// @mixin hook-section-muted(){} +// @mixin hook-section-secondary(){} +// @mixin hook-section-primary(){} +// @mixin hook-section-overlap(){} +// @mixin hook-section-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/slidenav.scss b/scss/uikit/components/slidenav.scss new file mode 100644 index 00000000..0b9af8f2 --- /dev/null +++ b/scss/uikit/components/slidenav.scss @@ -0,0 +1,122 @@ +// Name: Slidenav +// Description: Component to create previous/next icon navigations +// +// Component: `uk-slidenav` +// +// Sub-objects: `uk-slidenav-container` +// +// Modifiers: `uk-slidenav-previous` +// `uk-slidenav-next` +// `uk-slidenav-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$slidenav-padding-vertical: 5px !default; +$slidenav-padding-horizontal: 10px !default; + +$slidenav-color: rgba($global-color, 0.5) !default; +$slidenav-hover-color: rgba($global-color, 0.9) !default; +$slidenav-active-color: rgba($global-color, 0.5) !default; + +$slidenav-large-padding-vertical: 10px !default; +$slidenav-large-padding-horizontal: $slidenav-large-padding-vertical !default; + + +/* ======================================================================== + Component: Slidenav + ========================================================================== */ + +/* + * Adopts `uk-icon` + */ + +.uk-slidenav { + padding: $slidenav-padding-vertical $slidenav-padding-horizontal; + color: $slidenav-color; + @if(mixin-exists(hook-slidenav)) {@include hook-slidenav();} +} + +/* Hover + Focus */ +.uk-slidenav:hover, +.uk-slidenav:focus { + color: $slidenav-hover-color; + outline: none; + @if(mixin-exists(hook-slidenav-hover)) {@include hook-slidenav-hover();} +} + +/* OnClick */ +.uk-slidenav:active { + color: $slidenav-active-color; + @if(mixin-exists(hook-slidenav-active)) {@include hook-slidenav-active();} +} + + +/* Icon modifier + ========================================================================== */ + +/* + * Previous + */ + +.uk-slidenav-previous { + @if(mixin-exists(hook-slidenav-previous)) {@include hook-slidenav-previous();} +} + +/* + * Next + */ + +.uk-slidenav-next { + @if(mixin-exists(hook-slidenav-next)) {@include hook-slidenav-next();} +} + + +/* Size modifier + ========================================================================== */ + +.uk-slidenav-large { + padding: $slidenav-large-padding-vertical $slidenav-large-padding-horizontal; + @if(mixin-exists(hook-slidenav-large)) {@include hook-slidenav-large();} +} + + +/* Container + ========================================================================== */ + +.uk-slidenav-container { + display: flex; + @if(mixin-exists(hook-slidenav-container)) {@include hook-slidenav-container();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-slidenav-misc)) {@include hook-slidenav-misc();} + +// @mixin hook-slidenav(){} +// @mixin hook-slidenav-hover(){} +// @mixin hook-slidenav-active(){} +// @mixin hook-slidenav-previous(){} +// @mixin hook-slidenav-next(){} +// @mixin hook-slidenav-large(){} +// @mixin hook-slidenav-container(){} +// @mixin hook-slidenav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-slidenav-color: rgba($inverse-global-color, 0.7) !default; +$inverse-slidenav-hover-color: rgba($inverse-global-color, 0.95) !default; +$inverse-slidenav-active-color: rgba($inverse-global-color, 0.7) !default; + + + +// @mixin hook-inverse-slidenav(){} +// @mixin hook-inverse-slidenav-hover(){} +// @mixin hook-inverse-slidenav-active(){} diff --git a/scss/uikit/components/slider.scss b/scss/uikit/components/slider.scss new file mode 100644 index 00000000..2799868e --- /dev/null +++ b/scss/uikit/components/slider.scss @@ -0,0 +1,99 @@ +// Name: Slider +// Description: Component to create horizontal sliders +// +// Component: `uk-slider` +// +// Sub-objects: `uk-slider-container` +// `uk-slider-items` +// +// States: `uk-active` +// +// ======================================================================== + + +/* ======================================================================== + Component: Slider + ========================================================================== */ + +/* + * 1. Prevent tab highlighting on iOS. + */ + +.uk-slider { + /* 1 */ + -webkit-tap-highlight-color: transparent; + @if(mixin-exists(hook-slider)) {@include hook-slider();} +} + + +/* Container + ========================================================================== */ + +/* + * 1. Clip child elements + */ + +.uk-slider-container { + /* 1 */ + overflow: hidden; +} + +/* Items + ========================================================================== */ + +/* + * 1. Optimize animation + * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`. + */ + +.uk-slider-items { + /* 1 */ + will-change: transform; + /* 2 */ + position: relative; +} + +/* + * 1. Reset list style without interfering with grid + * 2. Prevent displaying the callout information on iOS. + */ + +.uk-slider-items:not(.uk-grid) { + display: flex; + /* 1 */ + margin: 0; + padding: 0; + list-style: none; + /* 2 */ + -webkit-touch-callout: none; +} + +.uk-slider-items.uk-grid { flex-wrap: nowrap; } + + +/* Item + ========================================================================== */ + +/* + * 1. Let items take content dimensions (0 0 auto) + * 2. Create position context + * 3. Disable horizontal panning gestures in IE11 and Edge + */ + +.uk-slider-items > * { + /* 1 */ + flex: none; + /* 2 */ + position: relative; + /* 3 */ + touch-action: pan-y; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-slider-misc)) {@include hook-slider-misc();} + +// @mixin hook-slider(){} +// @mixin hook-slider-misc(){} diff --git a/scss/uikit/components/slideshow.scss b/scss/uikit/components/slideshow.scss new file mode 100644 index 00000000..fc355d41 --- /dev/null +++ b/scss/uikit/components/slideshow.scss @@ -0,0 +1,93 @@ +// Name: Slideshow +// Description: Component to create slideshows +// +// Component: `uk-slideshow` +// +// Sub-objects: `uk-slideshow-items` +// +// States: `uk-active` +// +// ======================================================================== + + +/* ======================================================================== + Component: Slideshow + ========================================================================== */ + +/* + * 1. Prevent tab highlighting on iOS. + */ + +.uk-slideshow { + /* 1 */ + -webkit-tap-highlight-color: transparent; + @if(mixin-exists(hook-slideshow)) {@include hook-slideshow();} +} + + +/* Items + ========================================================================== */ + +/* + * 1. Create position and stacking context + * 2. Reset list + * 3. Clip child elements + * 4. Prevent displaying the callout information on iOS. + */ + +.uk-slideshow-items { + /* 1 */ + position: relative; + z-index: 0; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + overflow: hidden; + /* 4 */ + -webkit-touch-callout: none; +} + + +/* Item + ========================================================================== */ + +/* + * 1. Position items above each other + * 2. Take the full width + * 3. Clip child elements, e.g. for `uk-cover` + * 4. Optimize animation + * 5. Disable horizontal panning gestures in IE11 and Edge + */ + +.uk-slideshow-items > * { + /* 1 */ + position: absolute; + top: 0; + left: 0; + /* 2 */ + right: 0; + bottom: 0; + /* 3 */ + overflow: hidden; + /* 4 */ + will-change: transform, opacity; + /* 5 */ + touch-action: pan-y; +} + +/* + * Hide not active items + */ + +.uk-slideshow-items > :not(.uk-active) { display: none; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-slideshow-misc)) {@include hook-slideshow-misc();} + +// @mixin hook-slideshow(){} +// @mixin hook-slideshow-misc(){} diff --git a/scss/uikit/components/sortable.scss b/scss/uikit/components/sortable.scss new file mode 100644 index 00000000..8895f11c --- /dev/null +++ b/scss/uikit/components/sortable.scss @@ -0,0 +1,101 @@ +// Name: Sortable +// Description: Component to create sortable grids and lists +// +// Component: `uk-sortable` +// +// Sub-objects: `uk-sortable-drag` +// `uk-sortable-placeholder` +// `uk-sortable-handle` +// +// Modifiers: `uk-sortable-empty` +// +// States: `uk-drag` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$sortable-dragged-z-index: $global-z-index + 50 !default; + +$sortable-placeholder-opacity: 0 !default; + +$sortable-empty-height: 50px !default; + + +/* ======================================================================== + Component: Sortable + ========================================================================== */ + +.uk-sortable { + position: relative; + @if(mixin-exists(hook-sortable)) {@include hook-sortable();} +} + +/* + * Deactivate browser touch actions in IE11 and Edge + */ + +.uk-sortable > * { touch-action: none; } + +/* + * Deactivate pointer-events on SVGs in Safari + */ + +.uk-sortable svg { pointer-events: none; } + +/* + * Remove margin from the last-child + */ + +.uk-sortable > :last-child { margin-bottom: 0; } + + +/* Drag + ========================================================================== */ + +.uk-sortable-drag { + position: absolute !important; + z-index: $sortable-dragged-z-index !important; + pointer-events: none; + @if(mixin-exists(hook-sortable-drag)) {@include hook-sortable-drag();} +} + + +/* Placeholder + ========================================================================== */ + +.uk-sortable-placeholder { + opacity: $sortable-placeholder-opacity; + @if(mixin-exists(hook-sortable-placeholder)) {@include hook-sortable-placeholder();} +} + + +/* Empty modifier + ========================================================================== */ + +.uk-sortable-empty { + min-height: $sortable-empty-height; + @if(mixin-exists(hook-sortable-empty)) {@include hook-sortable-empty();} +} + + +/* Handle + ========================================================================== */ + +/* Hover */ +.uk-sortable-handle:hover { cursor: move; } + + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-sortable-misc)) {@include hook-sortable-misc();} + +// @mixin hook-sortable(){} +// @mixin hook-sortable-drag(){} +// @mixin hook-sortable-placeholder(){} +// @mixin hook-sortable-empty(){} +// @mixin hook-sortable-misc(){} diff --git a/scss/uikit/components/spinner.scss b/scss/uikit/components/spinner.scss new file mode 100644 index 00000000..a02f41d1 --- /dev/null +++ b/scss/uikit/components/spinner.scss @@ -0,0 +1,74 @@ +// Name: Spinner +// Description: Component to create a loading spinner +// +// Component: `uk-spinner` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$spinner-size: 30px !default; +$spinner-stroke-width: 1 !default; +$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; // Minus stroke width to prevent overflow clipping +$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default; +$spinner-duration: 1.4s !default; + + +/* ======================================================================== + Component: Spinner + ========================================================================== */ + +/* + * Adopts `uk-icon` + */ + +.uk-spinner { + @if(mixin-exists(hook-spinner)) {@include hook-spinner();} +} + + +/* SVG + ========================================================================== */ + +.uk-spinner > * { animation: uk-spinner-rotate $spinner-duration linear infinite; } + +@keyframes uk-spinner-rotate { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(270deg); } +} + +/* + * Circle + */ + +.uk-spinner > * > * { + stroke-dasharray: $spinner-circumference; + stroke-dashoffset: 0; + transform-origin: center; + animation: uk-spinner-dash $spinner-duration ease-in-out infinite; + stroke-width: $spinner-stroke-width; + stroke-linecap: round; +} + +@keyframes uk-spinner-dash { + 0% { stroke-dashoffset: $spinner-circumference; } + 50% { + stroke-dashoffset: $spinner-circumference/4; + transform:rotate(135deg); + } + 100% { + stroke-dashoffset: $spinner-circumference; + transform:rotate(450deg); + } +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-spinner-misc)) {@include hook-spinner-misc();} + +// @mixin hook-spinner(){} +// @mixin hook-spinner-misc(){} diff --git a/scss/uikit/components/sticky.scss b/scss/uikit/components/sticky.scss new file mode 100644 index 00000000..e8e54f92 --- /dev/null +++ b/scss/uikit/components/sticky.scss @@ -0,0 +1,53 @@ +// Name: Sticky +// Description: Component to make elements sticky in the viewport +// +// Component: `uk-sticky` +// +// Modifier: `uk-sticky-fixed` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$sticky-z-index: $global-z-index - 20 !default; + +$sticky-animation-duration: 0.2s !default; +$sticky-reverse-animation-duration: 0.2s !default; + + +/* ======================================================================== + Component: Sticky + ========================================================================== */ + +/* + * 1. Resolve frame rate issues on devices with lower frame rates by forcing hardware acceleration + */ + +.uk-sticky-fixed { + z-index: $sticky-z-index; + box-sizing: border-box; + margin: 0 !important; + /* 1 */ + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +/* + * Faster animations + */ + +.uk-sticky[class*='uk-animation-'] { animation-duration: $sticky-animation-duration; } + +.uk-sticky.uk-animation-reverse { animation-duration: $sticky-reverse-animation-duration; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-sticky-misc)) {@include hook-sticky-misc();} + +// @mixin hook-sticky-misc(){} diff --git a/scss/uikit/components/subnav.scss b/scss/uikit/components/subnav.scss new file mode 100644 index 00000000..53975016 --- /dev/null +++ b/scss/uikit/components/subnav.scss @@ -0,0 +1,232 @@ +// Name: Subnav +// Description: Component to create a sub navigation +// +// Component: `uk-subnav` +// +// Modifiers: `uk-subnav-divider` +// `uk-subnav-pill` +// +// States: `uk-active` +// `uk-first-column` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$subnav-margin-horizontal: 20px !default; + +$subnav-item-color: $global-muted-color !default; +$subnav-item-hover-color: $global-color !default; +$subnav-item-hover-text-decoration: none !default; +$subnav-item-active-color: $global-emphasis-color !default; + +$subnav-divider-margin-horizontal: $subnav-margin-horizontal !default; +$subnav-divider-border-height: 1.5em !default; +$subnav-divider-border-width: $global-border-width !default; +$subnav-divider-border: $global-border !default; + +$subnav-pill-item-padding-vertical: 5px !default; +$subnav-pill-item-padding-horizontal: 10px !default; +$subnav-pill-item-background: transparent !default; +$subnav-pill-item-color: $subnav-item-color !default; +$subnav-pill-item-hover-background: $global-muted-background !default; +$subnav-pill-item-hover-color: $global-color !default; +$subnav-pill-item-onclick-background: $subnav-pill-item-hover-background !default; +$subnav-pill-item-onclick-color: $subnav-pill-item-hover-color !default; +$subnav-pill-item-active-background: $global-primary-background !default; +$subnav-pill-item-active-color: $global-inverse-color !default; + +$subnav-item-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Subnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Gutter + * 3. Reset list + */ + +.uk-subnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin-left: (-$subnav-margin-horizontal); + /* 3 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-subnav)) {@include hook-subnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + * 3. Create position context for dropdowns + */ + +.uk-subnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $subnav-margin-horizontal; + /* 3 */ + position: relative; +} + + +/* Items + ========================================================================== */ + +/* + * Items must target `a` elements to exclude other elements (e.g. dropdowns) + * Using `:first-child` instead of `a` to support `span` elements for text + * 1. Prevent gap if child element is `inline-block`, e.g. an icon + * 2. Style + */ + +.uk-subnav > * > :first-child { + /* 1 */ + display: block; + /* 2 */ + color: $subnav-item-color; + @if(mixin-exists(hook-subnav-item)) {@include hook-subnav-item();} +} + +/* Hover + Focus */ +.uk-subnav > * > a:hover, +.uk-subnav > * > a:focus { + color: $subnav-item-hover-color; + text-decoration: $subnav-item-hover-text-decoration; + outline: none; + @if(mixin-exists(hook-subnav-item-hover)) {@include hook-subnav-item-hover();} +} + +/* Active */ +.uk-subnav > .uk-active > a { + color: $subnav-item-active-color; + @if(mixin-exists(hook-subnav-item-active)) {@include hook-subnav-item-active();} +} + + +/* Divider modifier + ========================================================================== */ + +/* + * 1. Align items and divider vertically + */ + +.uk-subnav-divider > * { + /* 1 */ + display: flex; + align-items: center; +} + +/* + * Divider + * `nth-child` makes it also work without JS if it's only one row + */ + +.uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { + content: ""; + height: $subnav-divider-border-height; + margin-left: ($subnav-divider-margin-horizontal - $subnav-margin-horizontal); + margin-right: $subnav-divider-margin-horizontal; + border-left: $subnav-divider-border-width solid $subnav-divider-border; + @if(mixin-exists(hook-subnav-divider)) {@include hook-subnav-divider();} +} + + +/* Pill modifier + ========================================================================== */ + +.uk-subnav-pill > * > :first-child { + padding: $subnav-pill-item-padding-vertical $subnav-pill-item-padding-horizontal; + background: $subnav-pill-item-background; + color: $subnav-pill-item-color; + @if(mixin-exists(hook-subnav-pill-item)) {@include hook-subnav-pill-item();} +} + +/* Hover + Focus */ +.uk-subnav-pill > * > a:hover, +.uk-subnav-pill > * > a:focus { + background-color: $subnav-pill-item-hover-background; + color: $subnav-pill-item-hover-color; + @if(mixin-exists(hook-subnav-pill-item-hover)) {@include hook-subnav-pill-item-hover();} +} + +/* OnClick */ +.uk-subnav-pill > * > a:active { + background-color: $subnav-pill-item-onclick-background; + color: $subnav-pill-item-onclick-color; + @if(mixin-exists(hook-subnav-pill-item-onclick)) {@include hook-subnav-pill-item-onclick();} +} + +/* Active */ +.uk-subnav-pill > .uk-active > a { + background-color: $subnav-pill-item-active-background; + color: $subnav-pill-item-active-color; + @if(mixin-exists(hook-subnav-pill-item-active)) {@include hook-subnav-pill-item-active();} +} + + +/* Disabled + * The same for all style modifiers + ========================================================================== */ + +.uk-subnav > .uk-disabled > a { + color: $subnav-item-disabled-color; + @if(mixin-exists(hook-subnav-item-disabled)) {@include hook-subnav-item-disabled();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-subnav-misc)) {@include hook-subnav-misc();} + +// @mixin hook-subnav(){} +// @mixin hook-subnav-item(){} +// @mixin hook-subnav-item-hover(){} +// @mixin hook-subnav-item-active(){} +// @mixin hook-subnav-divider(){} +// @mixin hook-subnav-pill-item(){} +// @mixin hook-subnav-pill-item-hover(){} +// @mixin hook-subnav-pill-item-onclick(){} +// @mixin hook-subnav-pill-item-active(){} +// @mixin hook-subnav-item-disabled(){} +// @mixin hook-subnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-subnav-item-color: $inverse-global-muted-color !default; +$inverse-subnav-item-hover-color: $inverse-global-color !default; +$inverse-subnav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-subnav-divider-border: $inverse-global-border !default; +$inverse-subnav-pill-item-background: transparent !default; +$inverse-subnav-pill-item-color: $inverse-global-muted-color !default; +$inverse-subnav-pill-item-hover-background: $inverse-global-muted-background !default; +$inverse-subnav-pill-item-hover-color: $inverse-global-color !default; +$inverse-subnav-pill-item-onclick-background: $inverse-subnav-pill-item-hover-background !default; +$inverse-subnav-pill-item-onclick-color: $inverse-subnav-pill-item-hover-color !default; +$inverse-subnav-pill-item-active-background: $inverse-global-primary-background !default; +$inverse-subnav-pill-item-active-color: $inverse-global-inverse-color !default; +$inverse-subnav-item-disabled-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-subnav-item(){} +// @mixin hook-inverse-subnav-item-hover(){} +// @mixin hook-inverse-subnav-item-active(){} +// @mixin hook-inverse-subnav-divider(){} +// @mixin hook-inverse-subnav-pill-item(){} +// @mixin hook-inverse-subnav-pill-item-hover(){} +// @mixin hook-inverse-subnav-pill-item-onclick(){} +// @mixin hook-inverse-subnav-pill-item-active(){} +// @mixin hook-inverse-subnav-item-disabled(){} diff --git a/scss/uikit/components/svg.scss b/scss/uikit/components/svg.scss new file mode 100644 index 00000000..5a0db3d6 --- /dev/null +++ b/scss/uikit/components/svg.scss @@ -0,0 +1,39 @@ +// Name: SVG +// Description: Component to style SVGs +// +// Component: `uk-svg` +// +// ======================================================================== + + +/* ======================================================================== + Component: SVG + ========================================================================== */ + +/* + * 1. Fill all SVG elements with the current text color if no `fill` attribute is set + * 2. Set the fill and stroke color of all SVG elements to the current text color + * 3. Fix for uppercase attribute names in Edge. Will be fixed in Windows 10 builds 16251+ + */ + +/* 1 */ +.uk-svg, +/* 2 */ +.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve), +.uk-svg:not(.uk-preserve) [FILL*='#']:not(.uk-preserve) { fill: currentcolor; } // 3 +.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve), +.uk-svg:not(.uk-preserve) [STROKE*='#']:not(.uk-preserve) { stroke: currentcolor; } // 3 + +/* + * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835 + */ + +.uk-svg { transform: translate(0,0); } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-svg-misc)) {@include hook-svg-misc();} + +// @mixin hook-svg-misc(){} diff --git a/scss/uikit/components/switcher.scss b/scss/uikit/components/switcher.scss new file mode 100644 index 00000000..0d99cdf7 --- /dev/null +++ b/scss/uikit/components/switcher.scss @@ -0,0 +1,47 @@ +// Name: Switcher +// Description: Component to navigate through different content panes +// +// Component: `uk-switcher` +// +// States: `uk-active` +// +// ======================================================================== + + +/* ======================================================================== + Component: Switcher + ========================================================================== */ + +/* + * Reset list + */ + +.uk-switcher { + margin: 0; + padding: 0; + list-style: none; +} + + +/* Items + ========================================================================== */ + +/* + * Hide not active items + */ + +.uk-switcher > :not(.uk-active) { display: none; } + +/* + * Remove margin from the last-child + */ + +.uk-switcher > * > :last-child { margin-bottom: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-switcher-misc)) {@include hook-switcher-misc();} + +// @mixin hook-switcher-misc(){} \ No newline at end of file diff --git a/scss/uikit/components/tab.scss b/scss/uikit/components/tab.scss new file mode 100644 index 00000000..87e0a678 --- /dev/null +++ b/scss/uikit/components/tab.scss @@ -0,0 +1,191 @@ +// Name: Tab +// Description: Component to create a tabbed navigation +// +// Component: `uk-tab` +// +// Modifiers: `uk-tab-bottom` +// `uk-tab-left` +// `uk-tab-right` +// +// States: `uk-active` +// `uk-disabled` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$tab-margin-horizontal: 20px !default; + +$tab-item-padding-horizontal: 10px !default; +$tab-item-padding-vertical: 5px !default; +$tab-item-color: $global-muted-color !default; +$tab-item-hover-color: $global-color !default; +$tab-item-hover-text-decoration: none !default; +$tab-item-active-color: $global-emphasis-color !default; +$tab-item-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Tab + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Gutter + * 3. Reset list + */ + +.uk-tab { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin-left: (-$tab-margin-horizontal); + /* 3 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-tab)) {@include hook-tab();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + * 3. Create position context for dropdowns + */ + +.uk-tab > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $tab-margin-horizontal; + /* 3 */ + position: relative; +} + + +/* Items + ========================================================================== */ + +/* + * Items must target `a` elements to exclude other elements (e.g. dropdowns) + * 1. Center text if a width is set + * 2. Style + */ + +.uk-tab > * > a { + /* 1 */ + display: block; + text-align: center; + /* 2 */ + padding: $tab-item-padding-vertical $tab-item-padding-horizontal; + color: $tab-item-color; + @if(mixin-exists(hook-tab-item)) {@include hook-tab-item();} +} + +/* Hover + Focus */ +.uk-tab > * > a:hover, +.uk-tab > * > a:focus { + color: $tab-item-hover-color; + text-decoration: $tab-item-hover-text-decoration; + @if(mixin-exists(hook-tab-item-hover)) {@include hook-tab-item-hover();} +} + +/* Active */ +.uk-tab > .uk-active > a { + color: $tab-item-active-color; + @if(mixin-exists(hook-tab-item-active)) {@include hook-tab-item-active();} +} + +/* Disabled */ +.uk-tab > .uk-disabled > a { + color: $tab-item-disabled-color; + @if(mixin-exists(hook-tab-item-disabled)) {@include hook-tab-item-disabled();} +} + + +/* Position modifier + ========================================================================== */ + +/* + * Bottom + */ + +.uk-tab-bottom { + @if(mixin-exists(hook-tab-bottom)) {@include hook-tab-bottom();} +} + +.uk-tab-bottom > * > a { + @if(mixin-exists(hook-tab-bottom-item)) {@include hook-tab-bottom-item();} +} + +/* + * Left + Right + * 1. Reset Gutter + */ + +.uk-tab-left, +.uk-tab-right { + flex-direction: column; + /* 1 */ + margin-left: 0; +} + +/* 1 */ +.uk-tab-left > *, +.uk-tab-right > * { padding-left: 0; } + +.uk-tab-left { + @if(mixin-exists(hook-tab-left)) {@include hook-tab-left();} +} + +.uk-tab-right { + @if(mixin-exists(hook-tab-right)) {@include hook-tab-right();} +} + +.uk-tab-left > * > a { + text-align: left; + @if(mixin-exists(hook-tab-left-item)) {@include hook-tab-left-item();} +} + +.uk-tab-right > * > a { + text-align: left; + @if(mixin-exists(hook-tab-right-item)) {@include hook-tab-right-item();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-tab-misc)) {@include hook-tab-misc();} + +// @mixin hook-tab(){} +// @mixin hook-tab-item(){} +// @mixin hook-tab-item-hover(){} +// @mixin hook-tab-item-active(){} +// @mixin hook-tab-item-disabled(){} +// @mixin hook-tab-bottom(){} +// @mixin hook-tab-bottom-item(){} +// @mixin hook-tab-left(){} +// @mixin hook-tab-left-item(){} +// @mixin hook-tab-right(){} +// @mixin hook-tab-right-item(){} +// @mixin hook-tab-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-tab-item-color: $inverse-global-muted-color !default; +$inverse-tab-item-hover-color: $inverse-global-color !default; +$inverse-tab-item-active-color: $inverse-global-emphasis-color !default; +$inverse-tab-item-disabled-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-tab(){} +// @mixin hook-inverse-tab-item(){} +// @mixin hook-inverse-tab-item-hover(){} +// @mixin hook-inverse-tab-item-active(){} +// @mixin hook-inverse-tab-item-disabled(){} \ No newline at end of file diff --git a/scss/uikit/components/table.scss b/scss/uikit/components/table.scss new file mode 100644 index 00000000..313d218b --- /dev/null +++ b/scss/uikit/components/table.scss @@ -0,0 +1,316 @@ +// Name: Table +// Description: Styles for tables +// +// Component: `uk-table` +// +// Modifiers: `uk-table-middle` +// `uk-table-divider` +// `uk-table-striped` +// `uk-table-hover` +// `uk-table-small` +// `uk-table-justify` +// `uk-table-shrink` +// `uk-table-expand` +// `uk-table-link` +// `uk-table-responsive` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$table-margin-vertical: $global-margin !default; + +$table-cell-padding-vertical: 16px !default; +$table-cell-padding-horizontal: 12px !default; + +$table-header-cell-font-size: $global-font-size !default; +$table-header-cell-font-weight: bold !default; +$table-header-cell-color: $global-color !default; + +$table-footer-font-size: $global-small-font-size !default; + +$table-caption-font-size: $global-small-font-size !default; +$table-caption-color: $global-muted-color !default; + +$table-row-active-background: #ffd !default; + +$table-divider-border-width: $global-border-width !default; +$table-divider-border: $global-border !default; + +$table-striped-row-background: $global-muted-background !default; + +$table-hover-row-background: $table-row-active-background !default; + +$table-small-cell-padding-vertical: 10px !default; +$table-small-cell-padding-horizontal: 12px !default; + +$table-large-cell-padding-vertical: 22px !default; +$table-large-cell-padding-horizontal: 12px !default; + +$table-expand-min-width: 150px !default; + + +/* ======================================================================== + Component: Table + ========================================================================== */ + +/* + * 1. Remove most spacing between table cells. + * 2. Behave like a block element + * 3. Style + */ + +.uk-table { + /* 1 */ + border-collapse: collapse; + border-spacing: 0; + /* 2 */ + width: 100%; + /* 3 */ + margin-bottom: $table-margin-vertical; + @if(mixin-exists(hook-table)) {@include hook-table();} +} + +/* Add margin if adjacent element */ +* + .uk-table { margin-top: $table-margin-vertical; } + + +/* Header cell + ========================================================================== */ + +/* + * 1. Style + */ + +.uk-table th { + padding: $table-cell-padding-vertical $table-cell-padding-horizontal; + text-align: left; + vertical-align: bottom; + /* 1 */ + font-size: $table-header-cell-font-size; + font-weight: $table-header-cell-font-weight; + color: $table-header-cell-color; + @if(mixin-exists(hook-table-header-cell)) {@include hook-table-header-cell();} +} + + +/* Cell + ========================================================================== */ + +.uk-table td { + padding: $table-cell-padding-vertical $table-cell-padding-horizontal; + vertical-align: top; + @if(mixin-exists(hook-table-cell)) {@include hook-table-cell();} +} + +/* + * Remove margin from the last-child + */ + +.uk-table td > :last-child { margin-bottom: 0; } + + +/* Footer + ========================================================================== */ + +.uk-table tfoot { + font-size: $table-footer-font-size; + @if(mixin-exists(hook-table-footer)) {@include hook-table-footer();} +} + + +/* Caption + ========================================================================== */ + +.uk-table caption { + font-size: $table-caption-font-size; + text-align: left; + color: $table-caption-color; + @if(mixin-exists(hook-table-caption)) {@include hook-table-caption();} +} + + +/* Row + ========================================================================== */ + +.uk-table > tr.uk-active, +.uk-table tbody tr.uk-active { + background: $table-row-active-background; + @if(mixin-exists(hook-table-row-active)) {@include hook-table-row-active();} +} + + +/* Alignment modifier + ========================================================================== */ + +.uk-table-middle, +.uk-table-middle td { vertical-align: middle !important; } + + +/* Style modifiers + ========================================================================== */ + +/* + * Divider + */ + +.uk-table-divider > tr:not(:first-child), +.uk-table-divider > :not(:first-child) > tr, +.uk-table-divider > :first-child > tr:not(:first-child) { + border-top: $table-divider-border-width solid $table-divider-border; + @if(mixin-exists(hook-table-divider)) {@include hook-table-divider();} +} + +/* + * Striped + */ + +.uk-table-striped > tr:nth-of-type(odd), +.uk-table-striped tbody tr:nth-of-type(odd) { + background: $table-striped-row-background; + @if(mixin-exists(hook-table-striped)) {@include hook-table-striped();} +} + +/* + * Hover + */ + +.uk-table-hover > tr:hover, +.uk-table-hover tbody tr:hover { + background: $table-hover-row-background; + @if(mixin-exists(hook-table-hover)) {@include hook-table-hover();} +} + + +/* Size modifier + ========================================================================== */ + +.uk-table-small th, +.uk-table-small td { + padding: $table-small-cell-padding-vertical $table-small-cell-padding-horizontal; + @if(mixin-exists(hook-table-small)) {@include hook-table-small();} +} + +.uk-table-large th, +.uk-table-large td { + padding: $table-large-cell-padding-vertical $table-large-cell-padding-horizontal; + @if(mixin-exists(hook-table-large)) {@include hook-table-large();} +} + + +/* Justify modifier + ========================================================================== */ + +.uk-table-justify th:first-child, +.uk-table-justify td:first-child { padding-left: 0; } + +.uk-table-justify th:last-child, +.uk-table-justify td:last-child { padding-right: 0; } + + +/* Cell size modifier + ========================================================================== */ + +.uk-table-shrink { width: 1px; } +.uk-table-expand { min-width: $table-expand-min-width; } + + +/* Cell link modifier + ========================================================================== */ + +/* + * Does not work with `uk-table-justify` at the moment + */ + +.uk-table-link { padding: 0 !important; } + +.uk-table-link > a { + display: block; + padding: $table-cell-padding-vertical $table-cell-padding-horizontal; +} + +.uk-table-small .uk-table-link > a { padding: $table-small-cell-padding-vertical $table-small-cell-padding-horizontal; } + + +/* Responsive table + ========================================================================== */ + + +/* Phone landscape and smaller */ +@media (max-width: $breakpoint-small-max) { + + .uk-table-responsive, + .uk-table-responsive tbody, + .uk-table-responsive th, + .uk-table-responsive td, + .uk-table-responsive tr { display: block; } + + .uk-table-responsive thead { display: none; } + + .uk-table-responsive th, + .uk-table-responsive td { + width: auto !important; + max-width: none !important; + min-width: 0 !important; + overflow: visible !important; + white-space: normal !important; + } + + .uk-table-responsive th:not(:first-child):not(.uk-table-link), + .uk-table-responsive td:not(:first-child):not(.uk-table-link), + .uk-table-responsive .uk-table-link:not(:first-child) > a { padding-top: round($table-cell-padding-vertical / 3) !important; } + + .uk-table-responsive th:not(:last-child):not(.uk-table-link), + .uk-table-responsive td:not(:last-child):not(.uk-table-link), + .uk-table-responsive .uk-table-link:not(:last-child) > a { padding-bottom: round($table-cell-padding-vertical / 3) !important; } + + .uk-table-justify.uk-table-responsive th, + .uk-table-justify.uk-table-responsive td { + padding-left: 0; + padding-right: 0; + } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-table-misc)) {@include hook-table-misc();} + +// @mixin hook-table(){} +// @mixin hook-table-header-cell(){} +// @mixin hook-table-cell(){} +// @mixin hook-table-footer(){} +// @mixin hook-table-caption(){} +// @mixin hook-table-row-active(){} +// @mixin hook-table-divider(){} +// @mixin hook-table-striped(){} +// @mixin hook-table-hover(){} +// @mixin hook-table-small(){} +// @mixin hook-table-large(){} +// @mixin hook-table-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-table-header-cell-color: $inverse-global-color !default; +$inverse-table-caption-color: $inverse-global-muted-color !default; +$inverse-table-row-active-background: fade-out($inverse-global-muted-background, 0.02) !default; +$inverse-table-divider-border: $inverse-global-border !default; +$inverse-table-striped-row-background: $inverse-global-muted-background !default; +$inverse-table-hover-row-background: $inverse-table-row-active-background !default; + + + +// @mixin hook-inverse-table-header-cell(){} +// @mixin hook-inverse-table-caption(){} +// @mixin hook-inverse-table-row-active(){} +// @mixin hook-inverse-table-divider(){} +// @mixin hook-inverse-table-striped(){} +// @mixin hook-inverse-table-hover(){} \ No newline at end of file diff --git a/scss/uikit/components/text.scss b/scss/uikit/components/text.scss new file mode 100644 index 00000000..a4edbdab --- /dev/null +++ b/scss/uikit/components/text.scss @@ -0,0 +1,258 @@ +// Name: Text +// Description: Utilities for text +// +// Component: `uk-text-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$text-lead-font-size: $global-large-font-size !default; +$text-lead-line-height: 1.5 !default; +$text-lead-color: $global-emphasis-color !default; + +$text-meta-font-size: $global-small-font-size !default; +$text-meta-line-height: 1.4 !default; +$text-meta-color: $global-muted-color !default; + +$text-small-font-size: $global-small-font-size !default; +$text-small-line-height: 1.5 !default; + +$text-large-font-size: $global-large-font-size !default; +$text-large-line-height: 1.5 !default; + +$text-bold-font-weight: bolder !default; + +$text-muted-color: $global-muted-color !default; +$text-primary-color: $global-primary-background !default; +$text-success-color: $global-success-background !default; +$text-warning-color: $global-warning-background !default; +$text-danger-color: $global-danger-background !default; + +$text-background-color: $global-primary-background !default; + + +/* ======================================================================== + Component: Text + ========================================================================== */ + + +/* Style modifiers + ========================================================================== */ + +.uk-text-lead { + font-size: $text-lead-font-size; + line-height: $text-lead-line-height; + color: $text-lead-color; + @if(mixin-exists(hook-text-lead)) {@include hook-text-lead();} +} + +.uk-text-meta { + font-size: $text-meta-font-size; + line-height: $text-meta-line-height; + color: $text-meta-color; + @if(mixin-exists(hook-text-meta)) {@include hook-text-meta();} +} + + +/* Size modifiers + ========================================================================== */ + +.uk-text-small { + font-size: $text-small-font-size; + line-height: $text-small-line-height; + @if(mixin-exists(hook-text-small)) {@include hook-text-small();} +} + +.uk-text-large { + font-size: $text-large-font-size; + line-height: $text-large-line-height; + @if(mixin-exists(hook-text-large)) {@include hook-text-large();} +} + + +/* Weight modifier + ========================================================================== */ + +.uk-text-bold { font-weight: $text-bold-font-weight; } + + +/* Transform modifier + ========================================================================== */ + +.uk-text-uppercase { text-transform: uppercase !important; } +.uk-text-capitalize { text-transform: capitalize !important; } +.uk-text-lowercase { text-transform: lowercase !important; } + + +/* Color modifiers + ========================================================================== */ + +.uk-text-muted { color: $text-muted-color !important; } +.uk-text-primary { color: $text-primary-color !important; } +.uk-text-success { color: $text-success-color !important; } +.uk-text-warning { color: $text-warning-color !important; } +.uk-text-danger { color: $text-danger-color !important; } + + +/* Background modifier + ========================================================================== */ + +/* + * 1. The background clips to the foreground text. Works in Chrome, Firefox, Safari, Edge and Opera + * Default color is set to transparent + * 2. Container fits the text + * 3. Fallback color for IE11 + */ + +.uk-text-background { + /* 1 */ + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + /* 2 */ + display: inline-block; + /* 3 */ + color: $text-background-color !important; +} + +@supports (-webkit-background-clip: text) { + + .uk-text-background { + background-color: $text-background-color; + @if(mixin-exists(hook-text-background)) {@include hook-text-background();} + } + +} + + +/* Alignment modifiers + ========================================================================== */ + +.uk-text-left { text-align: left !important; } +.uk-text-right { text-align: right !important; } +.uk-text-center { text-align: center !important; } +.uk-text-justify { text-align: justify !important; } + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-text-left\@s { text-align: left !important; } + .uk-text-right\@s { text-align: right !important; } + .uk-text-center\@s { text-align: center !important; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-text-left\@m { text-align: left !important; } + .uk-text-right\@m { text-align: right !important; } + .uk-text-center\@m { text-align: center !important; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-text-left\@l { text-align: left !important; } + .uk-text-right\@l { text-align: right !important; } + .uk-text-center\@l { text-align: center !important; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-text-left\@xl { text-align: left !important; } + .uk-text-right\@xl { text-align: right !important; } + .uk-text-center\@xl { text-align: center !important; } + +} + +/* + * Vertical + */ + +.uk-text-top { vertical-align: top !important; } +.uk-text-middle { vertical-align: middle !important; } +.uk-text-bottom { vertical-align: bottom !important; } +.uk-text-baseline { vertical-align: baseline !important; } + + +/* Wrap modifiers + ========================================================================== */ + +/* + * Prevent text from wrapping onto multiple lines + */ + +.uk-text-nowrap { white-space: nowrap; } + +/* + * 1. Make sure a max-width is set after which truncation can occur + * 2. Prevent text from wrapping onto multiple lines, and truncate with an ellipsis + * 3. Fix for table cells + */ + +.uk-text-truncate { + /* 1 */ + max-width: 100%; + /* 2 */ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* 2 */ +th.uk-text-truncate, +td.uk-text-truncate { max-width: 0; } + + +/* + * 1. Wrap long words onto the next line and break them if they are too long to fit + * 2. Legacy `word-wrap` as fallback for `overflow-wrap` + * 3. Fix `overflow-wrap` which doesn't work with table cells in Chrome, Opera, IE11 and Edge + * Must use `break-all` to support IE11 and Edge + * Note: Not using `hyphens: auto;` because it hyphenates text even if not needed + */ + +.uk-text-break { + /* 1 */ + overflow-wrap: break-word; + /* 2 */ + word-wrap: break-word; +} + +/* 3 */ +th.uk-text-break, +td.uk-text-break { word-break: break-all; } + + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-text-misc)) {@include hook-text-misc();} + +// @mixin hook-text-lead(){} +// @mixin hook-text-meta(){} +// @mixin hook-text-small(){} +// @mixin hook-text-large(){} +// @mixin hook-text-background(){} +// @mixin hook-text-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-text-lead-color: $inverse-global-color !default; +$inverse-text-meta-color: $inverse-global-muted-color !default; +$inverse-text-muted-color: $inverse-global-muted-color !default; +$inverse-text-primary-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-text-lead(){} +// @mixin hook-inverse-text-meta(){} diff --git a/scss/uikit/components/thumbnav.scss b/scss/uikit/components/thumbnav.scss new file mode 100644 index 00000000..ee551f99 --- /dev/null +++ b/scss/uikit/components/thumbnav.scss @@ -0,0 +1,123 @@ +// Name: Thumbnav +// Description: Component to create thumbnail navigations +// +// Component: `uk-thumbnav` +// +// Modifier: `uk-thumbnav-vertical` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$thumbnav-margin-horizontal: 15px !default; +$thumbnav-margin-vertical: $thumbnav-margin-horizontal !default; + + +/* ======================================================================== + Component: Thumbnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + * 3. Gutter + */ + +.uk-thumbnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + margin-left: (-$thumbnav-margin-horizontal); + @if(mixin-exists(hook-thumbnav)) {@include hook-thumbnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + */ + +.uk-thumbnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $thumbnav-margin-horizontal; +} + + +/* Items + ========================================================================== */ + +/* + * Items + */ + +.uk-thumbnav > * > * { + display: inline-block; + @if(mixin-exists(hook-thumbnav-item)) {@include hook-thumbnav-item();} +} + +/* Hover + Focus */ +.uk-thumbnav > * > :hover, +.uk-thumbnav > * > :focus { + outline: none; + @if(mixin-exists(hook-thumbnav-item-hover)) {@include hook-thumbnav-item-hover();} +} + +/* Active */ +.uk-thumbnav > .uk-active > * { + @if(mixin-exists(hook-thumbnav-item-active)) {@include hook-thumbnav-item-active();} +} + + +/* Modifier: 'uk-thumbnav-vertical' + ========================================================================== */ + +/* + * 1. Change direction + * 2. Gutter + */ + +.uk-thumbnav-vertical { + /* 1 */ + flex-direction: column; + /* 2 */ + margin-left: 0; + margin-top: (-$thumbnav-margin-vertical); +} + +/* 2 */ +.uk-thumbnav-vertical > * { + padding-left: 0; + padding-top: $thumbnav-margin-vertical; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-thumbnav-misc)) {@include hook-thumbnav-misc();} + +// @mixin hook-thumbnav(){} +// @mixin hook-thumbnav-item(){} +// @mixin hook-thumbnav-item-hover(){} +// @mixin hook-thumbnav-item-active(){} +// @mixin hook-thumbnav-misc(){} + + +// Inverse +// ======================================================================== + + + +// @mixin hook-inverse-thumbnav-item(){} +// @mixin hook-inverse-thumbnav-item-hover(){} +// @mixin hook-inverse-thumbnav-item-active(){} \ No newline at end of file diff --git a/scss/uikit/components/tile.scss b/scss/uikit/components/tile.scss new file mode 100644 index 00000000..3a364bfb --- /dev/null +++ b/scss/uikit/components/tile.scss @@ -0,0 +1,224 @@ +// Name: Tile +// Description: Component to create tiled boxes +// +// Component: `uk-tile` +// +// Modifiers: `uk-tile-xsmall` +// `uk-tile-small` +// `uk-tile-large` +// `uk-tile-xlarge` +// `uk-tile-default` +// `uk-tile-muted` +// `uk-tile-primary` +// `uk-tile-secondary` +// +// States: `uk-preserve-color` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$tile-padding-horizontal: 15px !default; +$tile-padding-horizontal-s: $global-gutter !default; +$tile-padding-horizontal-m: $global-medium-gutter !default; +$tile-padding-vertical: $global-medium-margin !default; +$tile-padding-vertical-m: $global-large-margin !default; + +$tile-xsmall-padding-vertical: $global-margin !default; + +$tile-small-padding-vertical: $global-medium-margin !default; + +$tile-large-padding-vertical: $global-large-margin !default; +$tile-large-padding-vertical-m: $global-xlarge-margin !default; + +$tile-xlarge-padding-vertical: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; + +$tile-default-background: $global-background !default; + +$tile-muted-background: $global-muted-background !default; + +$tile-primary-background: $global-primary-background !default; +$tile-primary-color-mode: light !default; + +$tile-secondary-background: $global-secondary-background !default; +$tile-secondary-color-mode: light !default; + + +/* ======================================================================== + Component: Tile + ========================================================================== */ + +.uk-tile { + position: relative; + box-sizing: border-box; + padding-left: $tile-padding-horizontal; + padding-right: $tile-padding-horizontal; + padding-top: $tile-padding-vertical; + padding-bottom: $tile-padding-vertical; + @if(mixin-exists(hook-tile)) {@include hook-tile();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-tile { + padding-left: $tile-padding-horizontal-s; + padding-right: $tile-padding-horizontal-s; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-tile { + padding-left: $tile-padding-horizontal-m; + padding-right: $tile-padding-horizontal-m; + padding-top: $tile-padding-vertical-m; + padding-bottom: $tile-padding-vertical-m; + } + +} + +/* + * Micro clearfix + */ + +.uk-tile::before, +.uk-tile::after { + content: ""; + display: table; +} + +.uk-tile::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-tile > :last-child { margin-bottom: 0; } + + +/* Size modifiers + ========================================================================== */ + +/* + * XSmall + */ + +.uk-tile-xsmall { + padding-top: $tile-xsmall-padding-vertical; + padding-bottom: $tile-xsmall-padding-vertical; +} + +/* + * Small + */ + +.uk-tile-small { + padding-top: $tile-small-padding-vertical; + padding-bottom: $tile-small-padding-vertical; +} + +/* + * Large + */ + +.uk-tile-large { + padding-top: $tile-large-padding-vertical; + padding-bottom: $tile-large-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-tile-large { + padding-top: $tile-large-padding-vertical-m; + padding-bottom: $tile-large-padding-vertical-m; + } + +} + + +/* + * XLarge + */ + +.uk-tile-xlarge { + padding-top: $tile-xlarge-padding-vertical; + padding-bottom: $tile-xlarge-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-tile-xlarge { + padding-top: $tile-xlarge-padding-vertical-m; + padding-bottom: $tile-xlarge-padding-vertical-m; + } + +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-tile-default { + background: $tile-default-background; + @if(mixin-exists(hook-tile-default)) {@include hook-tile-default();} +} + +/* + * Muted + */ + +.uk-tile-muted { + background: $tile-muted-background; + @if(mixin-exists(hook-tile-muted)) {@include hook-tile-muted();} +} + +/* + * Primary + */ + +.uk-tile-primary { + background: $tile-primary-background; + @if(mixin-exists(hook-tile-primary)) {@include hook-tile-primary();} +} + +// Color Mode +@if ( $tile-primary-color-mode == light ) { .uk-tile-primary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $tile-primary-color-mode == dark ) { .uk-tile-primary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + +/* + * Secondary + */ + +.uk-tile-secondary { + background: $tile-secondary-background; + @if(mixin-exists(hook-tile-secondary)) {@include hook-tile-secondary();} +} + +// Color Mode +@if ( $tile-secondary-color-mode == light ) { .uk-tile-secondary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $tile-secondary-color-mode == dark ) { .uk-tile-secondary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-tile-misc)) {@include hook-tile-misc();} + +// @mixin hook-tile(){} +// @mixin hook-tile-default(){} +// @mixin hook-tile-muted(){} +// @mixin hook-tile-primary(){} +// @mixin hook-tile-secondary(){} +// @mixin hook-tile-misc(){} diff --git a/scss/uikit/components/tooltip.scss b/scss/uikit/components/tooltip.scss new file mode 100644 index 00000000..1f8e8c88 --- /dev/null +++ b/scss/uikit/components/tooltip.scss @@ -0,0 +1,84 @@ +// Name: Tooltip +// Description: Component to create tooltips +// +// Component: `uk-tooltip` +// +// Modifiers `uk-tooltip-top` +// `uk-tooltip-top-left` +// `uk-tooltip-top-right` +// `uk-tooltip-bottom` +// `uk-tooltip-bottom-left` +// `uk-tooltip-bottom-right` +// `uk-tooltip-left` +// `uk-tooltip-right` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$tooltip-z-index: $global-z-index + 30 !default; +$tooltip-max-width: 200px !default; +$tooltip-padding-vertical: 3px !default; +$tooltip-padding-horizontal: 6px !default; +$tooltip-background: #666 !default; +$tooltip-border-radius: 2px !default; +$tooltip-color: $global-inverse-color !default; +$tooltip-font-size: 12px !default; + +$tooltip-margin: 10px !default; + + +/* ======================================================================== + Component: Tooltip + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Position + * 3. Dimensions + * 4. Style + */ + +.uk-tooltip { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $tooltip-z-index; + /* 3 */ + box-sizing: border-box; + max-width: $tooltip-max-width; + padding: $tooltip-padding-vertical $tooltip-padding-horizontal; + /* 4 */ + background: $tooltip-background; + border-radius: $tooltip-border-radius; + color: $tooltip-color; + font-size: $tooltip-font-size; + @if(mixin-exists(hook-tooltip)) {@include hook-tooltip();} +} + +/* Show */ +.uk-tooltip.uk-active { display: block; } + + +/* Direction / Alignment modifiers + ========================================================================== */ + +/* Direction */ +[class*='uk-tooltip-top'] { margin-top: (-$tooltip-margin); } +[class*='uk-tooltip-bottom'] { margin-top: $tooltip-margin; } +[class*='uk-tooltip-left'] { margin-left: (-$tooltip-margin); } +[class*='uk-tooltip-right'] { margin-left: $tooltip-margin; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-tooltip-misc)) {@include hook-tooltip-misc();} + +// @mixin hook-tooltip(){} +// @mixin hook-tooltip-misc(){} diff --git a/scss/uikit/components/totop.scss b/scss/uikit/components/totop.scss new file mode 100644 index 00000000..4b8aa1d8 --- /dev/null +++ b/scss/uikit/components/totop.scss @@ -0,0 +1,71 @@ +// Name: Totop +// Description: Component to create an icon to scroll back to top +// +// Component: `uk-totop` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$totop-padding: 5px !default; +$totop-color: $global-muted-color !default; + +$totop-hover-color: $global-color !default; + +$totop-active-color: $global-emphasis-color !default; + + +/* ======================================================================== + Component: Totop + ========================================================================== */ + +/* + * Addopts `uk-icon` + */ + +.uk-totop { + padding: $totop-padding; + color: $totop-color; + @if(mixin-exists(hook-totop)) {@include hook-totop();} +} + +/* Hover + Focus */ +.uk-totop:hover, +.uk-totop:focus { + color: $totop-hover-color; + outline: none; + @if(mixin-exists(hook-totop-hover)) {@include hook-totop-hover();} +} + +/* OnClick */ +.uk-totop:active { + color: $totop-active-color; + @if(mixin-exists(hook-totop-active)) {@include hook-totop-active();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-totop-misc)) {@include hook-totop-misc();} + +// @mixin hook-totop(){} +// @mixin hook-totop-hover(){} +// @mixin hook-totop-active(){} +// @mixin hook-totop-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-totop-color: $inverse-global-muted-color !default; +$inverse-totop-hover-color: $inverse-global-color !default; +$inverse-totop-active-color: $inverse-global-emphasis-color !default; + + + +// @mixin hook-inverse-totop(){} +// @mixin hook-inverse-totop-hover(){} +// @mixin hook-inverse-totop-active(){} diff --git a/scss/uikit/components/transition.scss b/scss/uikit/components/transition.scss new file mode 100644 index 00000000..c9992743 --- /dev/null +++ b/scss/uikit/components/transition.scss @@ -0,0 +1,145 @@ +// Name: Transition +// Description: Utilities for transitions +// +// Component: `uk-transition-*` +// +// Modifiers: `uk-transition-fade` +// `uk-transition-scale-up` +// `uk-transition-scale-down` +// `uk-transition-slide-top-*` +// `uk-transition-slide-bottom-*` +// `uk-transition-slide-left-*` +// `uk-transition-slide-right-*` +// `uk-transition-opaque` +// `uk-transition-slow` +// +// Sub-objects: `uk-transition-toggle`, +// `uk-transition-active` +// +// States: `uk-hover` +// `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$transition-duration: 0.3s !default; + +$transition-scale: 1.1 !default; + +$transition-slide-small-translate: 10px !default; +$transition-slide-medium-translate: 50px !default; + +$transition-slow-duration: 0.7s !default; + + +/* ======================================================================== + Component: Transition + ========================================================================== */ + +/* + * Using multiple selectors to exclude `uk-transition-toggle` + * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform` + * Just put the transition in an extra `div` + */ + +.uk-transition-fade, +[class*='uk-transition-scale'], +[class*='uk-transition-slide'] { + transition: $transition-duration ease-out; + transition-property: opacity, transform, filter; +} + +.uk-transition-toggle:focus { outline: none; } + +/* + * Fade + */ + +.uk-transition-fade { opacity: 0; } + +/* Show */ +.uk-transition-toggle:hover [class*='uk-transition-fade'], +.uk-transition-toggle.uk-hover [class*='uk-transition-fade'], +.uk-transition-toggle:focus [class*='uk-transition-fade'], +.uk-transition-active.uk-active [class*='uk-transition-fade'] { opacity: 1; } + +/* + * Scale + * Note: Using `scale3d` for better image rendering + */ + +[class*='uk-transition-scale'] { opacity: 0; } + +.uk-transition-scale-up { transform: scale3d(1,1,1); } + +.uk-transition-scale-down { transform: scale3d($transition-scale,$transition-scale,1); } + +/* Show */ +.uk-transition-toggle:hover .uk-transition-scale-up, +.uk-transition-toggle.uk-hover .uk-transition-scale-up, +.uk-transition-toggle:focus .uk-transition-scale-up, +.uk-transition-active.uk-active .uk-transition-scale-up { + opacity: 1; + transform: scale3d($transition-scale,$transition-scale,1); +} + +.uk-transition-toggle:hover .uk-transition-scale-down, +.uk-transition-toggle.uk-hover .uk-transition-scale-down, +.uk-transition-toggle:focus .uk-transition-scale-down, +.uk-transition-active.uk-active .uk-transition-scale-down { + opacity: 1; + transform: scale3d(1,1,1); +} + +/* + * Slide + */ + +[class*='uk-transition-slide'] { opacity: 0; } + +.uk-transition-slide-top { transform: translateY(-100%); } +.uk-transition-slide-bottom { transform: translateY(100%); } +.uk-transition-slide-left { transform: translateX(-100%); } +.uk-transition-slide-right { transform: translateX(100%); } + +.uk-transition-slide-top-small { transform: translateY(-$transition-slide-small-translate); } +.uk-transition-slide-bottom-small { transform: translateY($transition-slide-small-translate); } +.uk-transition-slide-left-small { transform: translateX(-$transition-slide-small-translate); } +.uk-transition-slide-right-small { transform: translateX($transition-slide-small-translate); } + +.uk-transition-slide-top-medium { transform: translateY(-$transition-slide-medium-translate); } +.uk-transition-slide-bottom-medium { transform: translateY($transition-slide-medium-translate); } +.uk-transition-slide-left-medium { transform: translateX(-$transition-slide-medium-translate); } +.uk-transition-slide-right-medium { transform: translateX($transition-slide-medium-translate); } + +/* Show */ +.uk-transition-toggle:hover [class*='uk-transition-slide'], +.uk-transition-toggle.uk-hover [class*='uk-transition-slide'], +.uk-transition-toggle:focus [class*='uk-transition-slide'], +.uk-transition-active.uk-active [class*='uk-transition-slide'] { + opacity: 1; + transform: translateX(0) translateY(0); +} + + +/* Opacity modifier +========================================================================== */ + +.uk-transition-opaque { opacity: 1; } + + +/* Duration modifiers +========================================================================== */ + +.uk-transition-slow { transition-duration: $transition-slow-duration; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-transition-misc)) {@include hook-transition-misc();} + +// @mixin hook-transition-misc(){} diff --git a/scss/uikit/components/utility.scss b/scss/uikit/components/utility.scss new file mode 100644 index 00000000..2d533870 --- /dev/null +++ b/scss/uikit/components/utility.scss @@ -0,0 +1,493 @@ +// Name: Utility +// Description: Utilities collection +// +// Component: `uk-panel-*` +// `uk-clearfix` +// `uk-float-*` +// `uk-overflow-*` +// `uk-resize-*` +// `uk-display-*` +// `uk-inline-*` +// `uk-responsive-*` +// `uk-preserve-width` +// `uk-border-*` +// `uk-box-shadow-*` +// `uk-box-shadow-bottom` +// `uk-dropcap` +// `uk-logo` +// `uk-blend-*` +// `uk-transform-*` +// `uk-transform-origin-*` +// +// States: `uk-disabled` +// `uk-drag` +// `uk-dragover` +// `uk-preserve` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$panel-scrollable-height: 170px !default; +$panel-scrollable-padding: 10px !default; +$panel-scrollable-border-width: $global-border-width !default; +$panel-scrollable-border: $global-border !default; + +$border-rounded-border-radius: 5px !default; + +$box-shadow-duration: 0.1s !default; + +$box-shadow-bottom-height: 30px !default; +$box-shadow-bottom-border-radius: 100% !default; +$box-shadow-bottom-background: #444 !default; +$box-shadow-bottom-blur: 20px !default; + +$dropcap-margin-right: 10px !default; +$dropcap-font-size: (($global-line-height * 3) * 1em) !default; + +$logo-font-size: $global-large-font-size !default; +$logo-font-family: $global-font-family !default; +$logo-color: $global-color !default; +$logo-hover-color: $global-color !default; + +$dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default; + + +/* ======================================================================== + Component: Utility + ========================================================================== */ + + +/* Panel + ========================================================================== */ + +.uk-panel { + position: relative; + box-sizing: border-box; +} + +/* + * Micro clearfix + */ + +.uk-panel::before, +.uk-panel::after { + content: ""; + display: table; +} + +.uk-panel::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-panel > :last-child { margin-bottom: 0; } + + +/* + * Scrollable + */ + +.uk-panel-scrollable { + height: $panel-scrollable-height; + padding: $panel-scrollable-padding; + border: $panel-scrollable-border-width solid $panel-scrollable-border; + overflow: auto; + -webkit-overflow-scrolling: touch; + resize: both; + @if(mixin-exists(hook-panel-scrollable)) {@include hook-panel-scrollable();} +} + + +/* Clearfix + ========================================================================== */ + +/* + * 1. `table-cell` is used with `::before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit + * 2. `table` is used again with `::after` because `clear` only works with block elements. + * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari + */ + +/* 1 */ +.uk-clearfix::before { + content: ""; + display: table-cell; +} + +/* 2 */ +.uk-clearfix::after { + content: ""; + display: table; + clear: both; +} + + +/* Float + ========================================================================== */ + +/* + * 1. Prevent content overflow + */ + +.uk-float-left { float: left; } +.uk-float-right { float: right; } + +/* 1 */ +[class*='uk-float-'] { max-width: 100%; } + + +/* Overfow + ========================================================================== */ + +.uk-overflow-hidden { overflow: hidden; } + +/* + * Enable scrollbars if content is clipped + * Note: Firefox ignores `padding-bottom` for the scrollable overflow https://bugzilla.mozilla.org/show_bug.cgi?id=748518 + */ + +.uk-overflow-auto { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.uk-overflow-auto > :last-child { margin-bottom: 0; } + + +/* Resize + ========================================================================== */ + +.uk-resize { resize: both; } +.uk-resize-vertical { resize: vertical; } + + +/* Display + ========================================================================== */ + +.uk-display-block { display: block !important; } +.uk-display-inline { display: inline !important; } +.uk-display-inline-block { display: inline-block !important; } + + +/* Inline + ========================================================================== */ + +/* + * 1. Container fits its content + * 2. Create position context + * 3. Prevent content overflow + * 4. Behave like most inline-block elements + * 5. Force hardware acceleration without creating a new stacking context + * to fix 1px glitch when combined with overlays and transitions in Webkit + * 6. Clip child elements + */ + +[class*='uk-inline'] { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + vertical-align: middle; + /* 5 */ + -webkit-backface-visibility: hidden; +} + +.uk-inline-clip { + /* 6 */ + overflow: hidden; +} + + +/* Responsive objects + ========================================================================== */ + +/* + * Preserve original dimensions + * Because `img, `video`, `canvas` and `audio` are already responsive by default, see Base component + */ + +.uk-preserve-width, +.uk-preserve-width audio, +.uk-preserve-width canvas, +.uk-preserve-width img, +.uk-preserve-width svg, +.uk-preserve-width video { max-width: none; } + +/* + * Responsiveness + * Corrects `max-width` and `max-height` behavior if padding and border are used + */ + +.uk-responsive-width, +.uk-responsive-height { box-sizing: border-box; } + +/* + * 1. Set a maximum width. `important` needed to override `uk-preserve-width img` + * 2. Auto scale the height. Only needed if `height` attribute is present + */ + +.uk-responsive-width { + /* 1 */ + max-width: 100% !important; + /* 2 */ + height: auto; +} + +/* + * 1. Set a maximum height. Only works if the parent element has a fixed height + * 2. Auto scale the width. Only needed if `width` attribute is present + * 3. Reset max-width, which `img, `video`, `canvas` and `audio` already have by default + */ + +.uk-responsive-height { + /* 1 */ + max-height: 100%; + /* 2 */ + width: auto; + /* 3 */ + max-width: none; +} + + +/* Border + ========================================================================== */ + +.uk-border-circle { border-radius: 50%; } +.uk-border-rounded { border-radius: $border-rounded-border-radius; } + +/* + * Fix `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit + */ + +.uk-inline-clip[class*='uk-border-'] { -webkit-transform: translateZ(0); } + + +/* Box-shadow + ========================================================================== */ + +.uk-box-shadow-small { box-shadow: $global-small-box-shadow; } +.uk-box-shadow-medium { box-shadow: $global-medium-box-shadow; } +.uk-box-shadow-large { box-shadow: $global-large-box-shadow; } +.uk-box-shadow-xlarge { box-shadow: $global-xlarge-box-shadow; } + +/* + * Hover + */ + +[class*='uk-box-shadow-hover'] { transition: box-shadow $box-shadow-duration ease-in-out; } + +.uk-box-shadow-hover-small:hover { box-shadow: $global-small-box-shadow; } +.uk-box-shadow-hover-medium:hover { box-shadow: $global-medium-box-shadow; } +.uk-box-shadow-hover-large:hover { box-shadow: $global-large-box-shadow; } +.uk-box-shadow-hover-xlarge:hover { box-shadow: $global-xlarge-box-shadow; } + + +/* Box-shadow bottom + ========================================================================== */ + +/* + * 1. Set position. + * 2. Set style + * 3. Blur doesn't work on pseudo elements with negative `z-index` in Edge. + * Solved by using `before` and add position context to child elements. + */ + +@supports (filter: blur(0)) { + + .uk-box-shadow-bottom { + display: inline-block; + position: relative; + max-width: 100%; + vertical-align: middle; + } + + .uk-box-shadow-bottom::before { + content: ''; + /* 1 */ + position: absolute; + bottom: (-$box-shadow-bottom-height); + left: 0; + right: 0; + /* 2 */ + height: $box-shadow-bottom-height; + border-radius: $box-shadow-bottom-border-radius; + background: $box-shadow-bottom-background; + filter: blur($box-shadow-bottom-blur); + @if(mixin-exists(hook-box-shadow-bottom)) {@include hook-box-shadow-bottom();} + } + + /* 3 */ + .uk-box-shadow-bottom > * { position: relative; } + +} + + +/* Drop cap + ========================================================================== */ + +/* + * 1. Firefox doesn't apply `::first-letter` if the first letter is inside child elements + * https://bugzilla.mozilla.org/show_bug.cgi?id=214004 + * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height` + * https://bugzilla.mozilla.org/show_bug.cgi?id=317933 + * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector + * This doubles the `font-size` exponential when using the `em` unit. + */ + +.uk-dropcap::first-letter, +/* 1 */ +.uk-dropcap > p:first-of-type::first-letter { + display: block; + margin-right: $dropcap-margin-right; + float: left; + font-size: $dropcap-font-size; + line-height: 1; + @if(mixin-exists(hook-dropcap)) {@include hook-dropcap();} +} + +/* 2 */ +@-moz-document url-prefix() { + + .uk-dropcap::first-letter, + .uk-dropcap > p:first-of-type::first-letter { margin-top: 1.1%; } + +} + +/* 3 */ +@supports (-ms-ime-align: auto) { + + .uk-dropcap > p:first-of-type::first-letter { font-size: 1em; } + +} + + +/* Logo + ========================================================================== */ + +/* + * 1. Required for `a` + */ + +.uk-logo { + font-size: $logo-font-size; + font-family: $logo-font-family; + color: $logo-color; + /* 1 */ + text-decoration: none; + @if(mixin-exists(hook-logo)) {@include hook-logo();} +} + +/* Hover + Focus */ +.uk-logo:hover, +.uk-logo:focus { + color: $logo-hover-color; + outline: none; + /* 1 */ + text-decoration: none; + @if(mixin-exists(hook-logo-hover)) {@include hook-logo-hover();} +} + +.uk-logo-inverse { display: none; } + + +/* Disabled State + ========================================================================== */ + +.uk-disabled { pointer-events: none; } + + +/* Drag State + ========================================================================== */ + +/* + * 1. Needed if moving over elements with have their own cursor on hover, e.g. links or buttons + * 2. Fix dragging over iframes + */ + +.uk-drag, +/* 1 */ +.uk-drag * { cursor: move; } + +/* 2 */ +.uk-drag iframe { pointer-events: none; } + + +/* Dragover State + ========================================================================== */ + +/* + * Create a box-shadow when dragging a file over the upload area + */ + +.uk-dragover { box-shadow: $dragover-box-shadow; } + + +/* Blend modes + ========================================================================== */ + +.uk-blend-multiply { mix-blend-mode: multiply; } +.uk-blend-screen { mix-blend-mode: screen; } +.uk-blend-overlay { mix-blend-mode: overlay; } +.uk-blend-darken { mix-blend-mode: darken; } +.uk-blend-lighten { mix-blend-mode: lighten; } +.uk-blend-color-dodge { mix-blend-mode: color-dodge; } +.uk-blend-color-burn { mix-blend-mode: color-burn; } +.uk-blend-hard-light { mix-blend-mode: hard-light; } +.uk-blend-soft-light { mix-blend-mode: soft-light; } +.uk-blend-difference { mix-blend-mode: difference; } +.uk-blend-exclusion { mix-blend-mode: exclusion; } +.uk-blend-hue { mix-blend-mode: hue; } +.uk-blend-saturation { mix-blend-mode: saturation; } +.uk-blend-color { mix-blend-mode: color; } +.uk-blend-luminosity { mix-blend-mode: luminosity; } + + +/* Transform +========================================================================== */ + +.uk-transform-center { transform: translate(-50%, -50%); } + + +/* Transform Origin +========================================================================== */ + +.uk-transform-origin-top-left { transform-origin: 0 0; } +.uk-transform-origin-top-center { transform-origin: 50% 0; } +.uk-transform-origin-top-right { transform-origin: 100% 0; } +.uk-transform-origin-center-left { transform-origin: 0 50%; } +.uk-transform-origin-center-right { transform-origin: 100% 50%; } +.uk-transform-origin-bottom-left { transform-origin: 0 100%; } +.uk-transform-origin-bottom-center { transform-origin: 50% 100%; } +.uk-transform-origin-bottom-right { transform-origin: 100% 100%; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-utility-misc)) {@include hook-utility-misc();} + +// @mixin hook-panel-scrollable(){} +// @mixin hook-box-shadow-bottom(){} +// @mixin hook-dropcap(){} +// @mixin hook-logo(){} +// @mixin hook-logo-hover(){} +// @mixin hook-utility-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-logo-color: $inverse-global-color !default; +$inverse-logo-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-dropcap(){} +// @mixin hook-inverse-logo(){} +// @mixin hook-inverse-logo-hover(){} diff --git a/scss/uikit/components/variables.scss b/scss/uikit/components/variables.scss new file mode 100644 index 00000000..a08406a0 --- /dev/null +++ b/scss/uikit/components/variables.scss @@ -0,0 +1,117 @@ +// +// Component: Variables +// Description: Defines common values which are used across all components +// +// ======================================================================== + + +// Breakpoints +// ======================================================================== + +// Phone Portrait: Galaxy (360x640), iPhone 6 (375x667), iPhone 6+ (414x736) +// Phone Landscape: Galaxy (640x360), iPhone 6 (667x375), iPhone 6+ (736x414) +// Tablet Portrait: iPad (768x1024), Galaxy Tab (800x1280), +// Tablet Landscape: iPad (1024x768), iPad Pro (1024x1366), +// Desktop: Galaxy Tab (1280x800), iPad Pro (1366x1024) + +$breakpoint-small: 640px !default; // Phone landscape +$breakpoint-medium: 960px !default; // Tablet Landscape +$breakpoint-large: 1200px !default; // Desktop +$breakpoint-xlarge: 1600px !default; // Large Screens + +$breakpoint-xsmall-max: ($breakpoint-small - 1) !default; +$breakpoint-small-max: ($breakpoint-medium - 1) !default; +$breakpoint-medium-max: ($breakpoint-large - 1) !default; +$breakpoint-large-max: ($breakpoint-xlarge - 1) !default; + + +// Global variables +// ======================================================================== + +// +// Typography +// + +$global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$global-font-size: 16px !default; +$global-line-height: 1.5 !default; // 24px + +$global-xxlarge-font-size: 2.625rem !default; // 42px +$global-xlarge-font-size: 2rem !default; // 32px +$global-large-font-size: 1.5rem !default; // 24px +$global-medium-font-size: 1.25rem !default; // 20px +$global-small-font-size: 0.875rem !default; // 14px + +// +// Colors +// + +$global-color: #666 !default; +$global-emphasis-color: #333 !default; +$global-muted-color: #999 !default; + +$global-link-color: #1e87f0 !default; +$global-link-hover-color: #0f6ecd !default; + +$global-inverse-color: #fff !default; + +// +// Backgrounds +// + +$global-background: #fff !default; + +$global-muted-background: #f8f8f8 !default; +$global-primary-background: #1e87f0 !default; +$global-secondary-background: #222 !default; + +$global-success-background: #32d296 !default; +$global-warning-background: #faa05a !default; +$global-danger-background: #f0506e !default; + +// +// Borders +// + +$global-border-width: 1px !default; +$global-border: #e5e5e5 !default; + +// +// Box-Shadows +// + +$global-small-box-shadow: 0 2px 8px rgba(0,0,0,0.08) !default; +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08) !default; +$global-large-box-shadow: 0 14px 25px rgba(0,0,0,0.16) !default; +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16) !default; + +// +// Spacings +// + +// Used in margin, section, list +$global-margin: 20px !default; +$global-small-margin: 10px !default; +$global-medium-margin: 40px !default; +$global-large-margin: 70px !default; +$global-xlarge-margin: 140px !default; + +// Used in grid, column, container, align, card, padding +$global-gutter: 30px !default; +$global-small-gutter: 15px !default; +$global-medium-gutter: 40px !default; +$global-large-gutter: 70px !default; + +// +// Controls +// + +$global-control-height: 40px !default; +$global-control-small-height: 30px !default; +$global-control-large-height: 55px !default; + +// +// Z-index +// + +$global-z-index: 1000 !default; \ No newline at end of file diff --git a/scss/uikit/components/visibility.scss b/scss/uikit/components/visibility.scss new file mode 100644 index 00000000..ee800a15 --- /dev/null +++ b/scss/uikit/components/visibility.scss @@ -0,0 +1,151 @@ +// Name: Visibility +// Description: Utilities to show or hide content on breakpoints, hover or touch +// +// Component: `uk-hidden-*` +// `uk-visible-*` +// `uk-invisible` +// `uk-visible-toggle` +// `uk-hidden-hover` +// `uk-invisible-hover` +// `uk-hidden-touch` +// `uk-hidden-notouch` +// +// ======================================================================== + + +/* ======================================================================== + Component: Visibility + ========================================================================== */ + +/* + * Hidden + * `hidden` attribute also set here to make it stronger + */ + +[hidden], +.uk-hidden { display: none !important; } + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-hidden\@s { display: none !important; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-hidden\@m { display: none !important; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-hidden\@l { display: none !important; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-hidden\@xl { display: none !important; } + +} + +/* + * Visible + */ + +/* Phone portrait and smaller */ +@media (max-width: $breakpoint-xsmall-max) { + + .uk-visible\@s { display: none !important; } + +} + +/* Phone landscape and smaller */ +@media (max-width: $breakpoint-small-max) { + + .uk-visible\@m { display: none !important; } + +} + +/* Tablet landscape and smaller */ +@media (max-width: $breakpoint-medium-max) { + + .uk-visible\@l { display: none !important; } + +} + +/* Desktop and smaller */ +@media (max-width: $breakpoint-large-max) { + + .uk-visible\@xl { display: none !important; } + +} + + +/* Visibility + ========================================================================== */ + +.uk-invisible { visibility: hidden !important; } + + +/* Hover + ========================================================================== */ + +/* + * Hidden + * Can't use `display: hidden` because it's not focusable. This is accessible through keyboard. + */ + +.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-hidden-hover:not(:focus) { + position: absolute !important; + width: 0 !important; + height: 0 !important; + padding: 0 !important; + margin: 0 !important; + overflow: hidden !important; +} + +/* + * Invisible + * Can't use `visibility: hidden` because it's not focusable. This is accessible through keyboard. + */ + +.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-invisible-hover:not(:focus) { opacity: 0 !important; } + + +/* Touch + ========================================================================== */ + +/* + * Hide if primary pointing device has limited accuracy, e.g. a touch screen. + * Works on mobile browsers: Safari, Chrome and Android browser + */ + +@media (pointer: coarse) { + .uk-hidden-touch { display: none !important; } +} + +/* + * Hide if primary pointing device is accurate, e.g. mouse. + * 1. Fallback for IE11 and Firefox, because `pointer` is not supported + * 2. Reset if supported + */ + +/* 1 */ +.uk-hidden-notouch { display: none !important; } + +@media (pointer: coarse) { + .uk-hidden-notouch { display: block !important; } +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-visibility-misc)) {@include hook-visibility-misc();} + +// @mixin hook-visibility-misc(){} diff --git a/scss/uikit/components/width.scss b/scss/uikit/components/width.scss new file mode 100644 index 00000000..b6941321 --- /dev/null +++ b/scss/uikit/components/width.scss @@ -0,0 +1,397 @@ +// Name: Width +// Description: Utilities for widths +// +// Component: `uk-child-width-*` +// `uk-width-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$width-small-width: 150px !default; +$width-medium-width: 300px !default; +$width-large-width: 450px !default; +$width-xlarge-width: 600px !default; +$width-xxlarge-width: 750px !default; + + +/* ======================================================================== + Component: Width + ========================================================================== */ + + +/* Equal child widths + ========================================================================== */ + +[class*='uk-child-width'] > * { + box-sizing: border-box; + width: 100%; +} + +.uk-child-width-1-2 > * { width: 50%; } +.uk-child-width-1-3 > * { width: unquote('calc(100% * 1 / 3.001)'); } +.uk-child-width-1-4 > * { width: 25%; } +.uk-child-width-1-5 > * { width: 20%; } +.uk-child-width-1-6 > * { width: unquote('calc(100% * 1 / 6.001)'); } + +.uk-child-width-auto > * { width: auto; } + +/* + * Instead of 0, 1px is needed to make cell wrap into next row if predecessor is 100% wide + * and the grid gutter is 0 pixels wide + */ + +.uk-child-width-expand > * { width: 1px; } + +/* + * 1. Make `width: 1px` work, because according to the spec flex items won’t shrink + * below their minimum content size. To change this, set the min-width. + * Only needed for Firefox. All other browsers ignore this. + * + * 2. `width` is ignored when wrapping flex items in Safari + * https://github.com/philipwalton/flexbugs#11-min-and-max-size-declarations-are-ignored-when-wrapping-flex-items + */ + +.uk-child-width-expand > :not([class*='uk-width']) { + flex: 1; + /* 1 */ + min-width: 0; + /* 2 */ + flex-basis: 1px; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-child-width-1-1\@s > * { width: 100%; } + .uk-child-width-1-2\@s > * { width: 50%; } + .uk-child-width-1-3\@s > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@s > * { width: 25%; } + .uk-child-width-1-5\@s > * { width: 20%; } + .uk-child-width-1-6\@s > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@s > * { width: auto; } + .uk-child-width-expand\@s > * { width: 1px; } + + .uk-child-width-expand\@s > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-child-width-1-1\@m > * { width: 100%; } + .uk-child-width-1-2\@m > * { width: 50%; } + .uk-child-width-1-3\@m > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@m > * { width: 25%; } + .uk-child-width-1-5\@m > * { width: 20%; } + .uk-child-width-1-6\@m > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@m > * { width: auto; } + .uk-child-width-expand\@m > * { width: 1px; } + + .uk-child-width-expand\@m > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-child-width-1-1\@l > * { width: 100%; } + .uk-child-width-1-2\@l > * { width: 50%; } + .uk-child-width-1-3\@l > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@l > * { width: 25%; } + .uk-child-width-1-5\@l > * { width: 20%; } + .uk-child-width-1-6\@l > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@l > * { width: auto; } + .uk-child-width-expand\@l > * { width: 1px; } + + .uk-child-width-expand\@l > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-child-width-1-1\@xl > * { width: 100%; } + .uk-child-width-1-2\@xl > * { width: 50%; } + .uk-child-width-1-3\@xl > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@xl > * { width: 25%; } + .uk-child-width-1-5\@xl > * { width: 20%; } + .uk-child-width-1-6\@xl > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@xl > * { width: auto; } + .uk-child-width-expand\@xl > * { width: 1px; } + + .uk-child-width-expand\@xl > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + + +/* Single Widths + ========================================================================== */ + +/* + * 1. `max-width` is needed for the pixel-based classes + */ + +[class*='uk-width'] { + box-sizing: border-box; + width: 100%; + /* 1 */ + max-width: 100%; +} + +/* Halves */ +.uk-width-1-2 { width: 50%; } + +/* Thirds */ +.uk-width-1-3 { width: unquote('calc(100% * 1 / 3.001)'); } +.uk-width-2-3 { width: unquote('calc(100% * 2 / 3.001)'); } + +/* Quarters */ +.uk-width-1-4 { width: 25%; } +.uk-width-3-4 { width: 75%; } + +/* Fifths */ +.uk-width-1-5 { width: 20%; } +.uk-width-2-5 { width: 40%; } +.uk-width-3-5 { width: 60%; } +.uk-width-4-5 { width: 80%; } + +/* Sixths */ +.uk-width-1-6 { width: unquote('calc(100% * 1 / 6.001)'); } +.uk-width-5-6 { width: unquote('calc(100% * 5 / 6.001)'); } + +/* Pixel */ +.uk-width-small { width: $width-small-width; } +.uk-width-medium { width: $width-medium-width; } +.uk-width-large { width: $width-large-width; } +.uk-width-xlarge { width: $width-xlarge-width; } +.uk-width-xxlarge { width: $width-xxlarge-width; } + +/* Auto */ +.uk-width-auto { width: auto; } + +/* Expand */ +.uk-width-expand { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + /* Whole */ + .uk-width-1-1\@s { width: 100%; } + + /* Halves */ + .uk-width-1-2\@s { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@s { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@s { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@s { width: 25%; } + .uk-width-3-4\@s { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@s { width: 20%; } + .uk-width-2-5\@s { width: 40%; } + .uk-width-3-5\@s { width: 60%; } + .uk-width-4-5\@s { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@s { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@s { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@s { width: $width-small-width; } + .uk-width-medium\@s { width: $width-medium-width; } + .uk-width-large\@s { width: $width-large-width; } + .uk-width-xlarge\@s { width: $width-xlarge-width; } + .uk-width-xxlarge\@s { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@s { width: auto; } + + /* Expand */ + .uk-width-expand\@s { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + /* Whole */ + .uk-width-1-1\@m { width: 100%; } + + /* Halves */ + .uk-width-1-2\@m { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@m { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@m { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@m { width: 25%; } + .uk-width-3-4\@m { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@m { width: 20%; } + .uk-width-2-5\@m { width: 40%; } + .uk-width-3-5\@m { width: 60%; } + .uk-width-4-5\@m { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@m { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@m { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@m { width: $width-small-width; } + .uk-width-medium\@m { width: $width-medium-width; } + .uk-width-large\@m { width: $width-large-width; } + .uk-width-xlarge\@m { width: $width-xlarge-width; } + .uk-width-xxlarge\@m { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@m { width: auto; } + + /* Expand */ + .uk-width-expand\@m { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Whole */ + .uk-width-1-1\@l { width: 100%; } + + /* Halves */ + .uk-width-1-2\@l { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@l { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@l { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@l { width: 25%; } + .uk-width-3-4\@l { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@l { width: 20%; } + .uk-width-2-5\@l { width: 40%; } + .uk-width-3-5\@l { width: 60%; } + .uk-width-4-5\@l { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@l { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@l { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@l { width: $width-small-width; } + .uk-width-medium\@l { width: $width-medium-width; } + .uk-width-large\@l { width: $width-large-width; } + .uk-width-xlarge\@l { width: $width-xlarge-width; } + .uk-width-xxlarge\@l { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@l { width: auto; } + + /* Expand */ + .uk-width-expand\@l { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + /* Whole */ + .uk-width-1-1\@xl { width: 100%; } + + /* Halves */ + .uk-width-1-2\@xl { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@xl { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@xl { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@xl { width: 25%; } + .uk-width-3-4\@xl { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@xl { width: 20%; } + .uk-width-2-5\@xl { width: 40%; } + .uk-width-3-5\@xl { width: 60%; } + .uk-width-4-5\@xl { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@xl { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@xl { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@xl { width: $width-small-width; } + .uk-width-medium\@xl { width: $width-medium-width; } + .uk-width-large\@xl { width: $width-large-width; } + .uk-width-xlarge\@xl { width: $width-xlarge-width; } + .uk-width-xxlarge\@xl { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@xl { width: auto; } + + /* Expand */ + .uk-width-expand\@xl { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-width-misc)) {@include hook-width-misc();} + +// @mixin hook-width-misc(){} diff --git a/scss/uikit/theme/_import.scss b/scss/uikit/theme/_import.scss new file mode 100644 index 00000000..01a7ea02 --- /dev/null +++ b/scss/uikit/theme/_import.scss @@ -0,0 +1,80 @@ +// Base +@import "variables.scss"; +@import "base.scss"; + +// Elements +@import "link.scss"; +@import "heading.scss"; +@import "divider.scss"; +@import "list.scss"; +@import "description-list.scss"; +@import "table.scss"; +@import "icon.scss"; +@import "form-range.scss"; +@import "form.scss"; +@import "button.scss"; + +// Layout +@import "section.scss"; +@import "container.scss"; +@import "grid.scss"; +@import "tile.scss"; +@import "card.scss"; + +// Common +@import "close.scss"; +@import "spinner.scss"; +@import "marker.scss"; +@import "totop.scss"; +@import "alert.scss"; +@import "badge.scss"; +@import "label.scss"; +@import "overlay.scss"; +@import "article.scss"; +@import "comment.scss"; +@import "search.scss"; + +// Navs +@import "nav.scss"; +@import "navbar.scss"; +@import "subnav.scss"; +@import "breadcrumb.scss"; +@import "pagination.scss"; +@import "tab.scss"; +@import "slidenav.scss"; +@import "dotnav.scss"; +@import "thumbnav.scss"; + +// JavaScript +@import "accordion.scss"; +@import "drop.scss"; +@import "dropdown.scss"; +@import "modal.scss"; +@import "lightbox.scss"; +@import "sticky.scss"; +@import "offcanvas.scss"; +@import "leader.scss"; + +// Additional +@import "iconnav.scss"; +@import "notification.scss"; +@import "tooltip.scss"; +@import "placeholder.scss"; +@import "progress.scss"; +@import "sortable.scss"; +@import "countdown.scss"; + +// Utilities +@import "animation.scss"; +@import "width.scss"; +@import "height.scss"; +@import "text.scss"; +@import "column.scss"; +@import "background.scss"; +@import "align.scss"; +@import "utility.scss"; +@import "margin.scss"; +@import "padding.scss"; +@import "position.scss"; +@import "transition.scss"; +@import "inverse.scss"; diff --git a/scss/uikit/theme/accordion.scss b/scss/uikit/theme/accordion.scss new file mode 100644 index 00000000..3e44609f --- /dev/null +++ b/scss/uikit/theme/accordion.scss @@ -0,0 +1,58 @@ +// +// Component: Accordion +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$accordion-icon-color: $global-color !default; +$internal-accordion-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-accordion-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +// Component +// ======================================================================== + +// @mixin hook-accordion(){} + + +// Item +// ======================================================================== + +// @mixin hook-accordion-item(){} + + +// Title +// ======================================================================== + + + +// @mixin hook-accordion-title-hover(){} + + +// Content +// ======================================================================== + +// @mixin hook-accordion-content(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-accordion-misc(){} + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-accordion-item(){} + +// @mixin hook-inverse-accordion-title(){} +// @mixin hook-inverse-accordion-title-hover(){} + + diff --git a/scss/uikit/theme/alert.scss b/scss/uikit/theme/alert.scss new file mode 100644 index 00000000..c4baa7ca --- /dev/null +++ b/scss/uikit/theme/alert.scss @@ -0,0 +1,46 @@ +// +// Component: Alert +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$alert-close-opacity: 0.4 !default; +$alert-close-hover-opacity: 0.8 !default; + + +// Component +// ======================================================================== + +// @mixin hook-alert(){} + + +// Close +// ======================================================================== + + + + + + +// Style modifiers +// ======================================================================== + +// @mixin hook-alert-primary(){} + +// @mixin hook-alert-success(){} + +// @mixin hook-alert-warning(){} + +// @mixin hook-alert-danger(){} + + +// Miscellaneous +// ======================================================================== + diff --git a/scss/uikit/theme/align.scss b/scss/uikit/theme/align.scss new file mode 100644 index 00000000..290abd41 --- /dev/null +++ b/scss/uikit/theme/align.scss @@ -0,0 +1,14 @@ +// +// Component: Align +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-align-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/animation.scss b/scss/uikit/theme/animation.scss new file mode 100644 index 00000000..03ebbc6e --- /dev/null +++ b/scss/uikit/theme/animation.scss @@ -0,0 +1,14 @@ +// +// Component: Animation +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-animation-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/article.scss b/scss/uikit/theme/article.scss new file mode 100644 index 00000000..a698e3ed --- /dev/null +++ b/scss/uikit/theme/article.scss @@ -0,0 +1,51 @@ +// +// Component: Article +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$article-meta-link-color: $article-meta-color !default; +$article-meta-link-hover-color: $global-color !default; + + +// Component +// ======================================================================== + +// @mixin hook-article(){} + + +// Adjacent sibling +// ======================================================================== + +// @mixin hook-article-adjacent(){} + + +// Title +// ======================================================================== + +// @mixin hook-article-title(){} + + +// Meta +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-article-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-article-meta(){} \ No newline at end of file diff --git a/scss/uikit/theme/background.scss b/scss/uikit/theme/background.scss new file mode 100644 index 00000000..29e062e9 --- /dev/null +++ b/scss/uikit/theme/background.scss @@ -0,0 +1,14 @@ +// +// Component: Background +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-background-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/badge.scss b/scss/uikit/theme/badge.scss new file mode 100644 index 00000000..22ae9371 --- /dev/null +++ b/scss/uikit/theme/badge.scss @@ -0,0 +1,29 @@ +// +// Component: Badge +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-badge(){} + +// @mixin hook-badge-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-badge-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-badge(){} +// @mixin hook-inverse-badge-hover(){} \ No newline at end of file diff --git a/scss/uikit/theme/base.scss b/scss/uikit/theme/base.scss new file mode 100644 index 00000000..2c1c3356 --- /dev/null +++ b/scss/uikit/theme/base.scss @@ -0,0 +1,116 @@ +// +// Component: Base +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$base-code-padding-horizontal: 6px !default; +$base-code-padding-vertical: 2px !default; +$base-code-background: $global-muted-background !default; + +$base-blockquote-color: $global-emphasis-color !default; + +$base-blockquote-footer-color: $global-color !default; + +$base-pre-padding: 10px !default; +$base-pre-background: $global-background !default; +$base-pre-border-width: $global-border-width !default; +$base-pre-border: $global-border !default; +$base-pre-border-radius: 3px !default; + + +// Body +// ======================================================================== + +// @mixin hook-base-body(){} + + +// Links +// ======================================================================== + +// @mixin hook-base-link(){} + +// @mixin hook-base-link-hover(){} + + +// Text-level semantics +// ======================================================================== + + + + +// Headings +// ======================================================================== + +// @mixin hook-base-heading(){} + +// @mixin hook-base-h1(){} + +// @mixin hook-base-h2(){} + +// @mixin hook-base-h3(){} + +// @mixin hook-base-h4(){} + +// @mixin hook-base-h5(){} + +// @mixin hook-base-h6(){} + + +// Horizontal rules +// ======================================================================== + +// @mixin hook-base-hr(){} + + +// Blockquotes +// ======================================================================== + + + + + + +// Preformatted text +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-base-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-base-blockquote-color: $inverse-global-emphasis-color !default; +$inverse-base-blockquote-footer-color: $inverse-global-color !default; + +// @mixin hook-inverse-base-link(){} +// @mixin hook-inverse-base-link-hover(){} + + + +// @mixin hook-inverse-base-heading(){} + +// @mixin hook-inverse-base-h1(){} +// @mixin hook-inverse-base-h2(){} +// @mixin hook-inverse-base-h3(){} +// @mixin hook-inverse-base-h4(){} +// @mixin hook-inverse-base-h5(){} +// @mixin hook-inverse-base-h6(){} + + + + +// @mixin hook-inverse-base-hr(){} \ No newline at end of file diff --git a/scss/uikit/theme/breadcrumb.scss b/scss/uikit/theme/breadcrumb.scss new file mode 100644 index 00000000..40c04e5d --- /dev/null +++ b/scss/uikit/theme/breadcrumb.scss @@ -0,0 +1,45 @@ +// +// Component: Breadcrumb +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-breadcrumb(){} + + +// Items +// ======================================================================== + +// @mixin hook-breadcrumb-item(){} + +// @mixin hook-breadcrumb-item-hover(){} + +// @mixin hook-breadcrumb-item-disabled(){} + +// @mixin hook-breadcrumb-item-active(){} + +// @mixin hook-breadcrumb-divider(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-breadcrumb-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-breadcrumb-item(){} +// @mixin hook-inverse-breadcrumb-item-hover(){} +// @mixin hook-inverse-breadcrumb-item-disabled(){} +// @mixin hook-inverse-breadcrumb-item-active(){} + +// @mixin hook-inverse-breadcrumb-divider(){} \ No newline at end of file diff --git a/scss/uikit/theme/button.scss b/scss/uikit/theme/button.scss new file mode 100644 index 00000000..6acb5094 --- /dev/null +++ b/scss/uikit/theme/button.scss @@ -0,0 +1,161 @@ +// +// Component: Button +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$button-line-height: $global-control-height - ($button-border-width * 2) !default; +$button-small-line-height: $global-control-small-height - ($button-border-width * 2) !default; +$button-large-line-height: $global-control-large-height - ($button-border-width * 2) !default; + +$button-font-size: $global-small-font-size !default; +$button-large-font-size: $global-small-font-size !default; + +$button-default-background: transparent !default; +$button-default-hover-background: transparent !default; +$button-default-active-background: transparent !default; + +$button-disabled-background: transparent !default; + +$button-text-color: $global-emphasis-color !default; +$button-text-hover-color: $global-emphasis-color !default; + +// +// New +// + +$button-text-transform: uppercase !default; + +$button-border-width: $global-border-width !default; + +$button-default-border: $global-border !default; +$button-default-hover-border: darken($global-border, 20%) !default; +$button-default-active-border: darken($global-border, 30%) !default; + +$button-disabled-border: $global-border !default; + +$button-text-border-width: $global-border-width !default; +$button-text-border: $button-text-hover-color !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-button-hover(){} + +// @mixin hook-button-focus(){} + +// @mixin hook-button-active(){} + + +// Style modifiers +// ======================================================================== + + + + + + + +// +// Primary +// + + + +// @mixin hook-button-primary-hover(){} + +// @mixin hook-button-primary-active(){} + +// +// Secondary +// + + + +// @mixin hook-button-secondary-hover(){} + +// @mixin hook-button-secondary-active(){} + +// +// Danger +// + + + +// @mixin hook-button-danger-hover(){} + +// @mixin hook-button-danger-active(){} + + +// Disabled +// ======================================================================== + + + + +// Size modifiers +// ======================================================================== + +// @mixin hook-button-small(){} + +// @mixin hook-button-large(){} + + +// Text modifier +// ======================================================================== + + + + + + + + +// Link modifier +// ======================================================================== + +// @mixin hook-button-link(){} + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +$inverse-button-default-background: transparent !default; +$inverse-button-default-color: $inverse-global-emphasis-color !default; +$inverse-button-default-hover-background: transparent !default; +$inverse-button-default-hover-color: $inverse-global-emphasis-color !default; +$inverse-button-default-active-background: transparent !default; +$inverse-button-default-active-color: $inverse-global-emphasis-color !default; + +$inverse-button-text-color: $inverse-global-emphasis-color !default; +$inverse-button-text-hover-color: $inverse-global-emphasis-color !default; + + + + + +// @mixin hook-inverse-button-primary(){} +// @mixin hook-inverse-button-primary-hover(){} +// @mixin hook-inverse-button-primary-active(){} + +// @mixin hook-inverse-button-secondary(){} +// @mixin hook-inverse-button-secondary-hover(){} +// @mixin hook-inverse-button-secondary-active(){} + + +// @mixin hook-inverse-button-text-hover(){} +// @mixin hook-inverse-button-text-disabled(){} + +// @mixin hook-inverse-button-link(){} \ No newline at end of file diff --git a/scss/uikit/theme/card.scss b/scss/uikit/theme/card.scss new file mode 100644 index 00000000..9e8fe2bc --- /dev/null +++ b/scss/uikit/theme/card.scss @@ -0,0 +1,125 @@ +// +// Component: Card +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$card-hover-background: $global-background !default; + +$card-default-background: $global-background !default; +$card-default-hover-background: $card-default-background !default; + +$card-primary-hover-background: $card-primary-background !default; + +$card-secondary-hover-background: $card-secondary-background !default; + +// +// New +// + +$card-hover-box-shadow: $global-large-box-shadow !default; + +$card-default-box-shadow: $global-medium-box-shadow !default; +$card-default-hover-box-shadow: $global-large-box-shadow !default; + +$card-default-header-border-width: $global-border-width !default; +$card-default-header-border: $global-border !default; + +$card-default-footer-border-width: $global-border-width !default; +$card-default-footer-border: $global-border !default; + +$card-primary-box-shadow: $global-medium-box-shadow !default; +$card-primary-hover-box-shadow: $global-large-box-shadow !default; + +$card-secondary-box-shadow: $global-medium-box-shadow !default; +$card-secondary-hover-box-shadow: $global-large-box-shadow !default; + + +// Component +// ======================================================================== + + + + +// Sections +// ======================================================================== + +// @mixin hook-card-body(){} + +// @mixin hook-card-header(){} + +// @mixin hook-card-footer(){} + + +// Media +// ======================================================================== + +// @mixin hook-card-media(){} + +// @mixin hook-card-media-top(){} + +// @mixin hook-card-media-bottom(){} + +// @mixin hook-card-media-left(){} + +// @mixin hook-card-media-right(){} + + +// Title +// ======================================================================== + +// @mixin hook-card-title(){} + + +// Badge +// ======================================================================== + +// @mixin hook-card-badge(){} + + +// Hover modifier +// ======================================================================== + + + + +// Style modifiers +// ======================================================================== + + + +// @mixin hook-card-default-title(){} + + + + + + + +// +// Primary +// + + + +// @mixin hook-card-primary-title(){} + + + +// +// Secondary +// + + + +// @mixin hook-card-secondary-title(){} + + + + +// Miscellaneous +// ======================================================================== + diff --git a/scss/uikit/theme/close.scss b/scss/uikit/theme/close.scss new file mode 100644 index 00000000..f0762942 --- /dev/null +++ b/scss/uikit/theme/close.scss @@ -0,0 +1,29 @@ +// +// Component: Close +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-close-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-close-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-close(){} +// @mixin hook-inverse-close-hover(){} \ No newline at end of file diff --git a/scss/uikit/theme/column.scss b/scss/uikit/theme/column.scss new file mode 100644 index 00000000..80be8505 --- /dev/null +++ b/scss/uikit/theme/column.scss @@ -0,0 +1,14 @@ +// +// Component: Column +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-column-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/comment.scss b/scss/uikit/theme/comment.scss new file mode 100644 index 00000000..a486c591 --- /dev/null +++ b/scss/uikit/theme/comment.scss @@ -0,0 +1,69 @@ +// +// Component: Comment +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$comment-primary-padding: $global-gutter !default; +$comment-primary-background: $global-muted-background !default; + + +// Component +// ======================================================================== + +// @mixin hook-comment(){} + + +// Sections +// ======================================================================== + +// @mixin hook-comment-body(){} + +// @mixin hook-comment-header(){} + + +// Title +// ======================================================================== + +// @mixin hook-comment-title(){} + + +// Meta +// ======================================================================== + +// @mixin hook-comment-meta(){} + + +// Avatar +// ======================================================================== + +// @mixin hook-comment-avatar(){} + + +// List +// ======================================================================== + +// @mixin hook-comment-list-adjacent(){} + +// @mixin hook-comment-list-sub(){} + +// @mixin hook-comment-list-sub-adjacent(){} + + +// Style modifier +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-comment-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/container.scss b/scss/uikit/theme/container.scss new file mode 100644 index 00000000..ba77ded7 --- /dev/null +++ b/scss/uikit/theme/container.scss @@ -0,0 +1,14 @@ +// +// Component: Container +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-container-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/countdown.scss b/scss/uikit/theme/countdown.scss new file mode 100644 index 00000000..01f1761c --- /dev/null +++ b/scss/uikit/theme/countdown.scss @@ -0,0 +1,53 @@ +// +// Component: Countdown +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-countdown(){} + + +// Item +// ======================================================================== + +// @mixin hook-countdown-item(){} + + +// Number +// ======================================================================== + +// @mixin hook-countdown-number(){} + + +// Separator +// ======================================================================== + +// @mixin hook-countdown-separator(){} + + +// Label +// ======================================================================== + +// @mixin hook-countdown-label(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-countdown-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-countdown-item(){} +// @mixin hook-inverse-countdown-number(){} +// @mixin hook-inverse-countdown-separator(){} +// @mixin hook-inverse-countdown-label(){} diff --git a/scss/uikit/theme/description-list.scss b/scss/uikit/theme/description-list.scss new file mode 100644 index 00000000..8f836d63 --- /dev/null +++ b/scss/uikit/theme/description-list.scss @@ -0,0 +1,32 @@ +// +// Component: Description list +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$description-list-term-font-size: $global-small-font-size !default; +$description-list-term-font-weight: normal !default; +$description-list-term-text-transform: uppercase !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-description-list-description(){} + + +// Style modifier +// ======================================================================== + +// @mixin hook-description-list-divider-term(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-description-list-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/divider.scss b/scss/uikit/theme/divider.scss new file mode 100644 index 00000000..59e2c9cc --- /dev/null +++ b/scss/uikit/theme/divider.scss @@ -0,0 +1,41 @@ +// +// Component: Divider +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Icon +// ======================================================================== + +// @mixin hook-divider-icon(){} + +// @mixin hook-divider-icon-line(){} + +// @mixin hook-divider-icon-line-left(){} + +// @mixin hook-divider-icon-line-right(){} + + +// Small +// ======================================================================== + +// @mixin hook-divider-small(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-divider-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-divider-icon(){} +// @mixin hook-inverse-divider-icon-line(){} + +// @mixin hook-inverse-divider-small(){} \ No newline at end of file diff --git a/scss/uikit/theme/dotnav.scss b/scss/uikit/theme/dotnav.scss new file mode 100644 index 00000000..1bc83597 --- /dev/null +++ b/scss/uikit/theme/dotnav.scss @@ -0,0 +1,52 @@ +// +// Component: Dotnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dotnav-item-background: transparent !default; + +// +// New +// + +$dotnav-item-border-width: 1px !default; + +$dotnav-item-border: rgba($global-color, 0.4) !default; +$dotnav-item-hover-border: transparent !default; +$dotnav-item-onclick-border: transparent !default; +$dotnav-item-active-border: transparent !default; + + +// Component +// ======================================================================== + +// @mixin hook-dotnav(){} + + + + + + + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-dotnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-dotnav-item-background: transparent !default; + +// @mixin hook-inverse-dotnav(){} + + + diff --git a/scss/uikit/theme/drop.scss b/scss/uikit/theme/drop.scss new file mode 100644 index 00000000..69409848 --- /dev/null +++ b/scss/uikit/theme/drop.scss @@ -0,0 +1,14 @@ +// +// Component: Drop +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-drop-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/dropdown.scss b/scss/uikit/theme/dropdown.scss new file mode 100644 index 00000000..c5aa02ef --- /dev/null +++ b/scss/uikit/theme/dropdown.scss @@ -0,0 +1,45 @@ +// +// Component: Dropdown +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dropdown-padding: 25px !default; +$dropdown-background: $global-background !default; + +// +// New +// + +$dropdown-nav-font-size: $global-small-font-size !default; + +$dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; + + +// Component +// ======================================================================== + + + + +// Nav +// ======================================================================== + + + +// @mixin hook-dropdown-nav-item(){} + +// @mixin hook-dropdown-nav-item-hover(){} + +// @mixin hook-dropdown-nav-header(){} + +// @mixin hook-dropdown-nav-divider(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-dropdown-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/form-range.scss b/scss/uikit/theme/form-range.scss new file mode 100644 index 00000000..ca424f30 --- /dev/null +++ b/scss/uikit/theme/form-range.scss @@ -0,0 +1,45 @@ +// +// Component: Form Range +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-range-thumb-background: $global-background !default; + +// +// New +// + +$form-range-thumb-border-width: $global-border-width !default; +$form-range-thumb-border: darken($global-border, 10%) !default; + +$form-range-track-border-radius: 500px !default; + + +// Component +// ======================================================================== + +// @mixin hook-form-range(){} + + +// Thumb +// ======================================================================== + + + + +// Track +// ======================================================================== + + + +// @mixin hook-form-range-track-focus(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-form-range-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/form.scss b/scss/uikit/theme/form.scss new file mode 100644 index 00000000..ef806958 --- /dev/null +++ b/scss/uikit/theme/form.scss @@ -0,0 +1,131 @@ +// +// Component: Form +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-line-height: $form-height - (2* $form-border-width) !default; + +$form-background: $global-background !default; +$form-focus-background: $global-background !default; + +$form-small-line-height: $form-small-height - (2* $form-border-width) !default; +$form-large-line-height: $form-large-height - (2* $form-border-width) !default; + +$form-radio-background: transparent !default; + +$form-stacked-margin-bottom: 5px !default; + +// +// New +// + +$form-border-width: $global-border-width !default; +$form-border: $global-border !default; + +$form-focus-border: $global-primary-background !default; + +$form-disabled-border: $global-border !default; + +$form-danger-border: $global-danger-background !default; +$form-success-border: $global-success-background !default; + +$form-blank-focus-border: $global-border !default; +$form-blank-focus-border-style: dashed !default; + +$form-radio-border-width: $global-border-width !default; +$form-radio-border: darken($global-border, 10%) !default; + +$form-radio-focus-border: $global-primary-background !default; + +$form-radio-checked-border: transparent !default; + +$form-radio-disabled-border: $global-border !default; + +$form-label-color: $global-emphasis-color !default; +$form-label-font-size: $global-small-font-size !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-form-single-line(){} + +// @mixin hook-form-multi-line(){} + + + + + + +// Style modifiers +// ======================================================================== + + + + + + + + + + +// Radio and checkbox +// ======================================================================== + + + + + + + +// @mixin hook-form-radio-checked-focus(){} + + + + +// Legend +// ======================================================================== + +// @mixin hook-form-legend(){} + + +// Label +// ======================================================================== + + + + +// Layout +// ======================================================================== + +// @mixin hook-form-stacked-label(){} + +// @mixin hook-form-horizontal-label(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-form-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-form-label-color: $inverse-global-emphasis-color !default; + + + + + + + + +// @mixin hook-inverse-form-radio-checked-focus(){} + diff --git a/scss/uikit/theme/grid.scss b/scss/uikit/theme/grid.scss new file mode 100644 index 00000000..adc18adb --- /dev/null +++ b/scss/uikit/theme/grid.scss @@ -0,0 +1,14 @@ +// +// Component: Grid +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-grid-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/heading.scss b/scss/uikit/theme/heading.scss new file mode 100644 index 00000000..c6409f0b --- /dev/null +++ b/scss/uikit/theme/heading.scss @@ -0,0 +1,59 @@ +// +// Component: Heading +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Primary +// ======================================================================== + +// @mixin hook-heading-primary(){} + + +// Hero +// ======================================================================== + +// @mixin hook-heading-hero(){} + + +// Divider +// ======================================================================== + +// @mixin hook-heading-divider(){} + + +// Bullet +// ======================================================================== + +// @mixin hook-heading-bullet(){} + + +// Line +// ======================================================================== + +// @mixin hook-heading-line(){} + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-heading-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-heading-primary(){} + +// @mixin hook-inverse-heading-hero(){} + +// @mixin hook-inverse-heading-divider(){} + +// @mixin hook-inverse-heading-bullet(){} + +// @mixin hook-inverse-heading-line(){} diff --git a/scss/uikit/theme/height.scss b/scss/uikit/theme/height.scss new file mode 100644 index 00000000..37f2c2f8 --- /dev/null +++ b/scss/uikit/theme/height.scss @@ -0,0 +1,14 @@ +// +// Component: Height +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-height-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/icon.scss b/scss/uikit/theme/icon.scss new file mode 100644 index 00000000..b81c79ab --- /dev/null +++ b/scss/uikit/theme/icon.scss @@ -0,0 +1,50 @@ +// +// Component: Icon +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Style modifiers +// ======================================================================== + +// +// Link +// + +// @mixin hook-icon-link(){} + +// @mixin hook-icon-link-hover(){} + +// @mixin hook-icon-link-active(){} + +// +// Button +// + + + +// @mixin hook-icon-button-hover(){} + +// @mixin hook-icon-button-active(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-icon-link(){} +// @mixin hook-inverse-icon-link-hover(){} +// @mixin hook-inverse-icon-link-active(){} + +// @mixin hook-inverse-icon-button(){} +// @mixin hook-inverse-icon-button-hover(){} +// @mixin hook-inverse-icon-button-active(){} \ No newline at end of file diff --git a/scss/uikit/theme/iconnav.scss b/scss/uikit/theme/iconnav.scss new file mode 100644 index 00000000..94b4bbf1 --- /dev/null +++ b/scss/uikit/theme/iconnav.scss @@ -0,0 +1,34 @@ +// +// Component: Iconnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-iconnav(){} + +// @mixin hook-iconnav-item(){} + +// @mixin hook-iconnav-item-hover(){} + +// @mixin hook-iconnav-item-active(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-iconnav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-iconnav-item(){} +// @mixin hook-inverse-iconnav-item-hover(){} +// @mixin hook-inverse-iconnav-item-active(){} \ No newline at end of file diff --git a/scss/uikit/theme/inverse.scss b/scss/uikit/theme/inverse.scss new file mode 100644 index 00000000..75a5a3b1 --- /dev/null +++ b/scss/uikit/theme/inverse.scss @@ -0,0 +1,14 @@ +// +// Component: Inverse +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-inverse(){} \ No newline at end of file diff --git a/scss/uikit/theme/label.scss b/scss/uikit/theme/label.scss new file mode 100644 index 00000000..ff09ac92 --- /dev/null +++ b/scss/uikit/theme/label.scss @@ -0,0 +1,43 @@ +// +// Component: Label +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$label-border-radius: 2px !default; +$label-text-transform: uppercase !default; + + +// Component +// ======================================================================== + + + + +// Color modifiers +// ======================================================================== + +// @mixin hook-label-success(){} + +// @mixin hook-label-warning(){} + +// @mixin hook-label-danger(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-label-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-label(){} \ No newline at end of file diff --git a/scss/uikit/theme/leader.scss b/scss/uikit/theme/leader.scss new file mode 100644 index 00000000..6618325e --- /dev/null +++ b/scss/uikit/theme/leader.scss @@ -0,0 +1,26 @@ +// +// Component: Leader +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-leader(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-leader-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-leader(){} \ No newline at end of file diff --git a/scss/uikit/theme/lightbox.scss b/scss/uikit/theme/lightbox.scss new file mode 100644 index 00000000..caabc625 --- /dev/null +++ b/scss/uikit/theme/lightbox.scss @@ -0,0 +1,48 @@ +// +// Component: Lightbox +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-lightbox(){} + + +// Item +// ======================================================================== + +// @mixin hook-lightbox-item(){} + + +// Toolbar +// ======================================================================== + +// @mixin hook-lightbox-toolbar(){} + + +// Toolbar Icon +// ======================================================================== + +// @mixin hook-lightbox-toolbar-icon(){} + +// @mixin hook-lightbox-toolbar-icon-hover(){} + + +// Button +// ======================================================================== + +// @mixin hook-lightbox-button(){} + +// @mixin hook-lightbox-button-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-lightbox-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/link.scss b/scss/uikit/theme/link.scss new file mode 100644 index 00000000..0658b58a --- /dev/null +++ b/scss/uikit/theme/link.scss @@ -0,0 +1,55 @@ +// +// Component: Link +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Muted +// ======================================================================== + +// @mixin hook-link-muted(){} + +// @mixin hook-link-muted-hover(){} + + +// Text +// ======================================================================== + +// @mixin hook-link-text(){} + +// @mixin hook-link-text-hover(){} + + +// Heading +// ======================================================================== + +// @mixin hook-link-heading(){} + +// @mixin hook-link-heading-hover(){} + + +// Reset +// ======================================================================== + +// @mixin hook-link-reset(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-link-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-link-muted(){} +// @mixin hook-inverse-link-muted-hover(){} + +// @mixin hook-inverse-link-text-hover(){} + +// @mixin hook-inverse-link-heading-hover(){} diff --git a/scss/uikit/theme/list.scss b/scss/uikit/theme/list.scss new file mode 100644 index 00000000..67e3c72c --- /dev/null +++ b/scss/uikit/theme/list.scss @@ -0,0 +1,39 @@ +// +// Component: List +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$list-striped-border-width: $global-border-width !default; +$list-striped-border: $global-border !default; + + +// Style modifiers +// ======================================================================== + +// @mixin hook-list-divider(){} + + + +// @mixin hook-list-bullet(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-list-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-list-divider(){} + +// @mixin hook-inverse-list-bullet(){} \ No newline at end of file diff --git a/scss/uikit/theme/margin.scss b/scss/uikit/theme/margin.scss new file mode 100644 index 00000000..a2cdb5ec --- /dev/null +++ b/scss/uikit/theme/margin.scss @@ -0,0 +1,14 @@ +// +// Component: Margin +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-margin-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/marker.scss b/scss/uikit/theme/marker.scss new file mode 100644 index 00000000..1e4fd5f3 --- /dev/null +++ b/scss/uikit/theme/marker.scss @@ -0,0 +1,29 @@ +// +// Component: Marker +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-marker-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-marker-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-marker(){} +// @mixin hook-inverse-marker-hover(){} diff --git a/scss/uikit/theme/modal.scss b/scss/uikit/theme/modal.scss new file mode 100644 index 00000000..adc21358 --- /dev/null +++ b/scss/uikit/theme/modal.scss @@ -0,0 +1,84 @@ +// +// Component: Modal +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$modal-header-background: $modal-dialog-background !default; +$modal-footer-background: $modal-dialog-background !default; + +// +// New +// + +$modal-header-border-width: $global-border-width !default; +$modal-header-border: $global-border !default; + +$modal-footer-border-width: $global-border-width !default; +$modal-footer-border: $global-border !default; + +$modal-close-full-padding: $global-margin !default; +$modal-close-full-background: $modal-dialog-background !default; + + +// Component +// ======================================================================== + +// @mixin hook-modal(){} + + +// Dialog +// ======================================================================== + +// @mixin hook-modal-dialog(){} + + +// Full +// ======================================================================== + +// @mixin hook-modal-full(){} + + +// Sections +// ======================================================================== + + + +// @mixin hook-modal-body(){} + + + + +// Title +// ======================================================================== + +// @mixin hook-modal-title(){} + + +// Close +// ======================================================================== + +// @mixin hook-modal-close(){} + +// @mixin hook-modal-close-hover(){} + +// @mixin hook-modal-close-default(){} + +// @mixin hook-modal-close-default-hover(){} + +// @mixin hook-modal-close-outside(){} + +// @mixin hook-modal-close-outside-hover(){} + + + +// @mixin hook-modal-close-full-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-modal-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/nav.scss b/scss/uikit/theme/nav.scss new file mode 100644 index 00000000..31384982 --- /dev/null +++ b/scss/uikit/theme/nav.scss @@ -0,0 +1,94 @@ +// +// Component: Nav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$nav-default-font-size: $global-small-font-size !default; + + +// Sublists +// ======================================================================== + +// @mixin hook-nav-sub(){} + + +// Parent icon modifier +// ======================================================================== + +// @mixin hook-nav-parent-icon(){} + + +// Header +// ======================================================================== + +// @mixin hook-nav-header(){} + + +// Divider +// ======================================================================== + +// @mixin hook-nav-divider(){} + + +// Default style modifier +// ======================================================================== + + + +// @mixin hook-nav-default-item(){} + +// @mixin hook-nav-default-item-hover(){} + +// @mixin hook-nav-default-item-active(){} + +// @mixin hook-nav-default-header(){} + +// @mixin hook-nav-default-divider(){} + + +// Primary style modifier +// ======================================================================== + +// @mixin hook-nav-primary(){} + +// @mixin hook-nav-primary-item(){} + +// @mixin hook-nav-primary-item-hover(){} + +// @mixin hook-nav-primary-item-active(){} + +// @mixin hook-nav-primary-header(){} + +// @mixin hook-nav-primary-divider(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-nav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-nav-parent-icon(){} + +// @mixin hook-inverse-nav-default-item(){} +// @mixin hook-inverse-nav-default-item-hover(){} +// @mixin hook-inverse-nav-default-item-active(){} +// @mixin hook-inverse-nav-default-header(){} +// @mixin hook-inverse-nav-default-divider(){} + +// @mixin hook-inverse-nav-primary-item(){} +// @mixin hook-inverse-nav-primary-item-hover(){} +// @mixin hook-inverse-nav-primary-item-active(){} +// @mixin hook-inverse-nav-primary-header(){} +// @mixin hook-inverse-nav-primary-divider(){} \ No newline at end of file diff --git a/scss/uikit/theme/navbar.scss b/scss/uikit/theme/navbar.scss new file mode 100644 index 00000000..2a6f237f --- /dev/null +++ b/scss/uikit/theme/navbar.scss @@ -0,0 +1,136 @@ +// +// Component: Navbar +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$navbar-nav-item-font-size: $global-small-font-size !default; + +$navbar-dropdown-margin: 15px !default; +$navbar-dropdown-padding: 25px !default; +$navbar-dropdown-background: $global-background !default; +$navbar-dropdown-grid-gutter-horizontal: ($navbar-dropdown-padding * 2) !default; + +// +// New +// + +$navbar-nav-item-text-transform: uppercase !default; + +$navbar-dropdown-nav-font-size: $global-small-font-size !default; + +$navbar-dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; + +$navbar-dropbar-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05) !default; + +$navbar-dropdown-grid-divider-border-width: $global-border-width !default; +$navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-border !default; + + +// Component +// ======================================================================== + +// @mixin hook-navbar(){} + + +// Container +// ======================================================================== + +// @mixin hook-navbar-container(){} + + +// Nav +// ======================================================================== + + + +// @mixin hook-navbar-nav-item-hover(){} + +// @mixin hook-navbar-nav-item-onclick(){} + +// @mixin hook-navbar-nav-item-active(){} + + +// Item +// ======================================================================== + +// @mixin hook-navbar-item(){} + + +// Toggle +// ======================================================================== + +// @mixin hook-navbar-toggle(){} + +// @mixin hook-navbar-toggle-hover(){} + +// @mixin hook-navbar-toggle-icon(){} + +// @mixin hook-navbar-toggle-icon-hover(){} + + +// Subtitle +// ======================================================================== + +// @mixin hook-navbar-subtitle(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-navbar-transparent(){} + +// @mixin hook-navbar-sticky(){} + + +// Dropdown +// ======================================================================== + + + + + + +// Dropdown nav +// ======================================================================== + + + +// @mixin hook-navbar-dropdown-nav-item(){} + +// @mixin hook-navbar-dropdown-nav-item-hover(){} + +// @mixin hook-navbar-dropdown-nav-header(){} + +// @mixin hook-navbar-dropdown-nav-divider(){} + + +// Dropbar +// ======================================================================== + +// @mixin hook-navbar-dropbar(){} + + + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-navbar-nav-item(){} +// @mixin hook-inverse-navbar-nav-item-hover(){} +// @mixin hook-inverse-navbar-nav-item-onclick(){} +// @mixin hook-inverse-navbar-nav-item-active(){} + +// @mixin hook-inverse-navbar-item(){} + +// @mixin hook-inverse-navbar-toggle(){} +// @mixin hook-inverse-navbar-toggle-hover(){} \ No newline at end of file diff --git a/scss/uikit/theme/notification.scss b/scss/uikit/theme/notification.scss new file mode 100644 index 00000000..57d5b553 --- /dev/null +++ b/scss/uikit/theme/notification.scss @@ -0,0 +1,44 @@ +// +// Component: Notification +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-notification(){} + + +// Message +// ======================================================================== + +// @mixin hook-notification-message(){} + + +// Close +// ======================================================================== + +// @mixin hook-notification-close(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-notification-primary(){} + +// @mixin hook-notification-success(){} + +// @mixin hook-notification-warning(){} + +// @mixin hook-notification-danger(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-notification-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/offcanvas.scss b/scss/uikit/theme/offcanvas.scss new file mode 100644 index 00000000..283078ef --- /dev/null +++ b/scss/uikit/theme/offcanvas.scss @@ -0,0 +1,32 @@ +// +// Component: Off-canvas +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Bar +// ======================================================================== + +// @mixin hook-offcanvas-bar(){} + + +// Close +// ======================================================================== + +// @mixin hook-offcanvas-close(){} + + +// Overlay +// ======================================================================== + +// @mixin hook-offcanvas-overlay(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-offcanvas-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/overlay.scss b/scss/uikit/theme/overlay.scss new file mode 100644 index 00000000..68cda452 --- /dev/null +++ b/scss/uikit/theme/overlay.scss @@ -0,0 +1,33 @@ +// +// Component: Overlay +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-overlay(){} + +// Icon +// ======================================================================== + +// @mixin hook-overlay-icon(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-overlay-default(){} + +// @mixin hook-overlay-primary(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-overlay-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/padding.scss b/scss/uikit/theme/padding.scss new file mode 100644 index 00000000..f0737b87 --- /dev/null +++ b/scss/uikit/theme/padding.scss @@ -0,0 +1,14 @@ +// +// Component: Padding +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-padding-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/pagination.scss b/scss/uikit/theme/pagination.scss new file mode 100644 index 00000000..a777e0c9 --- /dev/null +++ b/scss/uikit/theme/pagination.scss @@ -0,0 +1,41 @@ +// +// Component: Pagination +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-pagination(){} + + +// Items +// ======================================================================== + + + +// @mixin hook-pagination-item-hover(){} + +// @mixin hook-pagination-item-active(){} + +// @mixin hook-pagination-item-disabled(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-pagination-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-pagination-item(){} +// @mixin hook-inverse-pagination-item-hover(){} +// @mixin hook-inverse-pagination-item-active(){} +// @mixin hook-inverse-pagination-item-disabled(){} \ No newline at end of file diff --git a/scss/uikit/theme/placeholder.scss b/scss/uikit/theme/placeholder.scss new file mode 100644 index 00000000..4ab662cb --- /dev/null +++ b/scss/uikit/theme/placeholder.scss @@ -0,0 +1,29 @@ +// +// Component: Placeholder +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$placeholder-background: transparent !default; + +// +// New +// + +$placeholder-border-width: $global-border-width !default; +$placeholder-border: $global-border !default; + + +// Component +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-placeholder-misc(){} diff --git a/scss/uikit/theme/position.scss b/scss/uikit/theme/position.scss new file mode 100644 index 00000000..fc695208 --- /dev/null +++ b/scss/uikit/theme/position.scss @@ -0,0 +1,14 @@ +// +// Component: Position +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-position-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/progress.scss b/scss/uikit/theme/progress.scss new file mode 100644 index 00000000..9ca100a3 --- /dev/null +++ b/scss/uikit/theme/progress.scss @@ -0,0 +1,24 @@ +// +// Component: Progress +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$progress-border-radius: 500px !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-progress-bar(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-progress-misc(){} diff --git a/scss/uikit/theme/search.scss b/scss/uikit/theme/search.scss new file mode 100644 index 00000000..f9e710e2 --- /dev/null +++ b/scss/uikit/theme/search.scss @@ -0,0 +1,73 @@ +// +// Component: Search +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$search-default-background: transparent !default; + +// +// New +// + +$search-default-border-width: $global-border-width !default; +$search-default-border: $global-border !default; + + +// Component +// ======================================================================== + +// @mixin hook-search-input(){} + + +// Default modifiers +// ======================================================================== + + + + +// Navbar modifiers +// ======================================================================== + +// @mixin hook-search-navbar-input(){} + +// @mixin hook-search-default-input-focus(){} + + +// Large modifiers +// ======================================================================== + +// @mixin hook-search-large-input(){} + + +// Toggle +// ======================================================================== + +// @mixin hook-search-toggle(){} + +// @mixin hook-search-toggle-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-search-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-search-default-background: transparent !default; + + +// @mixin hook-inverse-search-default-input-focus(){} + +// @mixin hook-inverse-search-navbar-input(){} + +// @mixin hook-inverse-search-large-input(){} + +// @mixin hook-inverse-search-toggle(){} +// @mixin hook-inverse-search-toggle-hover(){} \ No newline at end of file diff --git a/scss/uikit/theme/section.scss b/scss/uikit/theme/section.scss new file mode 100644 index 00000000..6d7f761b --- /dev/null +++ b/scss/uikit/theme/section.scss @@ -0,0 +1,32 @@ +// +// Component: Section +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-section(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-section-default(){} + +// @mixin hook-section-muted(){} + +// @mixin hook-section-primary(){} + +// @mixin hook-section-secondary(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-section-misc(){} diff --git a/scss/uikit/theme/slidenav.scss b/scss/uikit/theme/slidenav.scss new file mode 100644 index 00000000..c1654e77 --- /dev/null +++ b/scss/uikit/theme/slidenav.scss @@ -0,0 +1,52 @@ +// +// Component: Slidenav +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-slidenav-hover(){} + +// @mixin hook-slidenav-active(){} + + +// Icon modifier +// ======================================================================== + +// @mixin hook-slidenav-previous(){} + +// @mixin hook-slidenav-next(){} + + +// Size modifier +// ======================================================================== + +// @mixin hook-slidenav-large(){} + + +// Container +// ======================================================================== + +// @mixin hook-slidenav-container(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-slidenav(){} +// @mixin hook-inverse-slidenav-hover(){} +// @mixin hook-inverse-slidenav-active(){} \ No newline at end of file diff --git a/scss/uikit/theme/sortable.scss b/scss/uikit/theme/sortable.scss new file mode 100644 index 00000000..3ab18c3d --- /dev/null +++ b/scss/uikit/theme/sortable.scss @@ -0,0 +1,38 @@ +// +// Component: Sortable +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-sortable(){} + + +// Drag +// ======================================================================== + +// @mixin hook-sortable-drag(){} + + +// Placeholder +// ======================================================================== + +// @mixin hook-sortable-placeholder(){} + + +// Empty +// ======================================================================== + +// @mixin hook-sortable-empty(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-sortable-misc(){} diff --git a/scss/uikit/theme/spinner.scss b/scss/uikit/theme/spinner.scss new file mode 100644 index 00000000..d70e10fa --- /dev/null +++ b/scss/uikit/theme/spinner.scss @@ -0,0 +1,14 @@ +// +// Component: Spinner +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-spinner-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/sticky.scss b/scss/uikit/theme/sticky.scss new file mode 100644 index 00000000..94e5ee69 --- /dev/null +++ b/scss/uikit/theme/sticky.scss @@ -0,0 +1,14 @@ +// +// Component: Sticky +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-sticky-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/subnav.scss b/scss/uikit/theme/subnav.scss new file mode 100644 index 00000000..f4d1c7fd --- /dev/null +++ b/scss/uikit/theme/subnav.scss @@ -0,0 +1,74 @@ +// +// Component: Subnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$subnav-item-font-size: $global-small-font-size !default; +$subnav-item-text-transform: uppercase !default; + + +// Component +// ======================================================================== + +// @mixin hook-subnav(){} + + + +// @mixin hook-subnav-item-hover(){} + +// @mixin hook-subnav-item-active(){} + + +// Divider modifier +// ======================================================================== + +// @mixin hook-subnav-divider(){} + + +// Pill modifier +// ======================================================================== + +// @mixin hook-subnav-pill-item(){} + +// @mixin hook-subnav-pill-item-hover(){} + +// @mixin hook-subnav-pill-item-onclick(){} + +// @mixin hook-subnav-pill-item-active(){} + + +// Disabled +// ======================================================================== + +// @mixin hook-subnav-item-disabled(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-subnav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-subnav-item(){} +// @mixin hook-inverse-subnav-item-hover(){} +// @mixin hook-inverse-subnav-item-active(){} + +// @mixin hook-inverse-subnav-divider(){} + +// @mixin hook-inverse-subnav-pill-item(){} +// @mixin hook-inverse-subnav-pill-item-hover(){} +// @mixin hook-inverse-subnav-pill-item-onclick(){} +// @mixin hook-inverse-subnav-pill-item-active(){} + +// @mixin hook-inverse-subnav-item-disabled(){} diff --git a/scss/uikit/theme/tab.scss b/scss/uikit/theme/tab.scss new file mode 100644 index 00000000..51c4ba28 --- /dev/null +++ b/scss/uikit/theme/tab.scss @@ -0,0 +1,74 @@ +// +// Component: Tab +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$tab-border-width: $global-border-width !default; +$tab-border: $global-border !default; + +$tab-item-border-width: $global-border-width !default; +$tab-item-font-size: $global-small-font-size !default; +$tab-item-text-transform: uppercase !default; + +$tab-item-active-border: $global-primary-background !default; + + +// Component +// ======================================================================== + + + + +// Items +// ======================================================================== + + + +// @mixin hook-tab-item-hover(){} + + + +// @mixin hook-tab-item-disabled(){} + + +// Position modifiers +// ======================================================================== + + + + + + + + + + + + + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +$inverse-tab-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-tab-item(){} +// @mixin hook-inverse-tab-item-hover(){} + +// @mixin hook-inverse-tab-item-disabled(){} \ No newline at end of file diff --git a/scss/uikit/theme/table.scss b/scss/uikit/theme/table.scss new file mode 100644 index 00000000..d6a66079 --- /dev/null +++ b/scss/uikit/theme/table.scss @@ -0,0 +1,68 @@ +// +// Component: Table +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$table-header-cell-font-size: $global-small-font-size !default; +$table-header-cell-font-weight: normal !default; +$table-header-cell-color: $global-muted-color !default; + +// +// New +// + +$table-striped-border-width: $global-border-width !default; +$table-striped-border: $global-border !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-table-cell(){} + +// @mixin hook-table-footer(){} + +// @mixin hook-table-caption(){} + +// @mixin hook-table-row-active(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-table-divider(){} + + + +// @mixin hook-table-hover(){} + + +// Size modifier +// ======================================================================== + +// @mixin hook-table-small(){} + +// @mixin hook-table-large(){} + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-table-header-cell(){} +// @mixin hook-inverse-table-caption(){} +// @mixin hook-inverse-table-row-active(){} +// @mixin hook-inverse-table-divider(){} + +// @mixin hook-inverse-table-hover(){} \ No newline at end of file diff --git a/scss/uikit/theme/text.scss b/scss/uikit/theme/text.scss new file mode 100644 index 00000000..b6e35c43 --- /dev/null +++ b/scss/uikit/theme/text.scss @@ -0,0 +1,50 @@ +// +// Component: Text +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$text-meta-link-color: $text-meta-color !default; +$text-meta-link-hover-color: $global-color !default; + + +// Style modifiers +// ======================================================================== + +// @mixin hook-text-lead(){} + + + + +// Size modifiers +// ======================================================================== + +// @mixin hook-text-small(){} + +// @mixin hook-text-large(){} + + +// Background modifier +// ======================================================================== + +// @mixin hook-text-background(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-text-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-text-lead(){} +// @mixin hook-inverse-text-meta(){} diff --git a/scss/uikit/theme/thumbnav.scss b/scss/uikit/theme/thumbnav.scss new file mode 100644 index 00000000..7f26c38a --- /dev/null +++ b/scss/uikit/theme/thumbnav.scss @@ -0,0 +1,42 @@ +// +// Component: Thumbnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$thumbnav-item-background: rgba($global-background, 0.4) !default; +$thumbnav-item-hover-background: transparent !default; +$thumbnav-item-active-background: transparent !default; + + +// Component +// ======================================================================== + +// @mixin hook-thumbnav(){} + + + + + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-thumbnav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-thumbnav-item(){} +// @mixin hook-inverse-thumbnav-item-hover(){} +// @mixin hook-inverse-thumbnav-item-active(){} \ No newline at end of file diff --git a/scss/uikit/theme/tile.scss b/scss/uikit/theme/tile.scss new file mode 100644 index 00000000..2d043a63 --- /dev/null +++ b/scss/uikit/theme/tile.scss @@ -0,0 +1,32 @@ +// +// Component: Tile +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-tile(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-tile-default(){} + +// @mixin hook-tile-muted(){} + +// @mixin hook-tile-primary(){} + +// @mixin hook-tile-secondary(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-tile-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/tooltip.scss b/scss/uikit/theme/tooltip.scss new file mode 100644 index 00000000..5115139c --- /dev/null +++ b/scss/uikit/theme/tooltip.scss @@ -0,0 +1,20 @@ +// +// Component: Tooltip +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-tooltip(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-tooltip-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/totop.scss b/scss/uikit/theme/totop.scss new file mode 100644 index 00000000..feb7165a --- /dev/null +++ b/scss/uikit/theme/totop.scss @@ -0,0 +1,32 @@ +// +// Component: Totop +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-totop-hover(){} + +// @mixin hook-totop-active(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-totop(){} +// @mixin hook-inverse-totop-hover(){} +// @mixin hook-inverse-totop-active(){} \ No newline at end of file diff --git a/scss/uikit/theme/transition.scss b/scss/uikit/theme/transition.scss new file mode 100644 index 00000000..fd7bdede --- /dev/null +++ b/scss/uikit/theme/transition.scss @@ -0,0 +1,14 @@ +// +// Component: Transition +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-transition-misc(){} \ No newline at end of file diff --git a/scss/uikit/theme/utility.scss b/scss/uikit/theme/utility.scss new file mode 100644 index 00000000..69094998 --- /dev/null +++ b/scss/uikit/theme/utility.scss @@ -0,0 +1,49 @@ +// +// Component: Utility +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Panel +// ======================================================================== + +// @mixin hook-panel-scrollable(){} + + +// Box-shadow bottom +// ======================================================================== + +// @mixin hook-box-shadow-bottom(){} + + +// Drop cap +// ======================================================================== + + + + +// Logo +// ======================================================================== + +// @mixin hook-logo(){} + +// @mixin hook-logo-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-utility-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-dropcap(){} + +// @mixin hook-inverse-logo(){} +// @mixin hook-inverse-logo-hover(){} \ No newline at end of file diff --git a/scss/uikit/theme/variables.scss b/scss/uikit/theme/variables.scss new file mode 100644 index 00000000..d74b3a99 --- /dev/null +++ b/scss/uikit/theme/variables.scss @@ -0,0 +1,36 @@ +// +// Component: Variables +// +// ======================================================================== + + +// Global variables +// ======================================================================== + +// +// Typography +// + +// +// Colors +// + +// +// Backgrounds +// + +// +// Borders +// + +// +// Spacings +// + +// +// Controls +// + +// +// Z-index +// \ No newline at end of file diff --git a/scss/uikit/theme/width.scss b/scss/uikit/theme/width.scss new file mode 100644 index 00000000..b67a7954 --- /dev/null +++ b/scss/uikit/theme/width.scss @@ -0,0 +1,14 @@ +// +// Component: Width +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-width-misc(){} \ No newline at end of file diff --git a/scss/uikit/uikit_blurple.scss b/scss/uikit/uikit_blurple.scss new file mode 100644 index 00000000..0c8be232 --- /dev/null +++ b/scss/uikit/uikit_blurple.scss @@ -0,0 +1,14 @@ +@import "../pysite/variables"; // Imported because DRY + +// Custom variables +$global-primary-background: $primary_background; + +// UIKit default variables and mixins +@import "variables-theme"; +@import "mixins-theme"; + +// Custom mixin overwrites +@mixin hook-card() { color: #000; } + +// UIkit itself +@import "uikit-theme"; -- cgit v1.2.3