From b6ee21a758acd42ef00bf168d3af393e55fd6bc4 Mon Sep 17 00:00:00 2001 From: Karol Bajko Date: Mon, 17 Jun 2024 21:29:37 +0200 Subject: [PATCH 1/3] Use turbo to handle fin for users --- Gemfile | 1 + Gemfile.lock | 5 +++++ app/controllers/users_controller.rb | 8 ++++---- app/javascript/application.js | 3 +++ app/views/users/fin.html.erb | 5 +++++ app/views/users/index.html.erb | 6 ++++-- config/importmap.rb | 1 + config/routes.rb | 2 +- 8 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 app/views/users/fin.html.erb diff --git a/Gemfile b/Gemfile index 54beb66..88ee3d8 100644 --- a/Gemfile +++ b/Gemfile @@ -16,6 +16,7 @@ gem 'puma' gem 'rails', '~> 7.1.0' gem 'rails-i18n', '~> 7.0' gem 'sassc-rails', '>= 2.1.0' +gem 'turbo-rails' group :development, :test do gem 'capybara' diff --git a/Gemfile.lock b/Gemfile.lock index 8dc3826..80c4186 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -285,6 +285,10 @@ GEM thor (1.3.1) tilt (2.3.0) timeout (0.4.1) + turbo-rails (2.0.5) + actionpack (>= 6.0.0) + activejob (>= 6.0.0) + railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.5.0) @@ -319,6 +323,7 @@ DEPENDENCIES rubocop rubocop-rails sassc-rails (>= 2.1.0) + turbo-rails RUBY VERSION ruby 3.3.2p78 diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f2922a4..470e7cc 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -22,10 +22,10 @@ def resend_invitation end def fin - user = User.find(params[:id]) - authorize! :fin, user - user.toggle!(:fin) - redirect_to users_path + @user = User.find(params[:id]) + authorize! :fin, @user + @user.toggle!(:fin) + render layout: false end def destroy diff --git a/app/javascript/application.js b/app/javascript/application.js index 5cc5c90..bf36aa0 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -3,3 +3,6 @@ import "jquery" import "jquery_ujs" import "bootstrap" +import "@hotwired/turbo-rails" + +Turbo.session.drive = false diff --git a/app/views/users/fin.html.erb b/app/views/users/fin.html.erb new file mode 100644 index 0000000..3182eaf --- /dev/null +++ b/app/views/users/fin.html.erb @@ -0,0 +1,5 @@ +<%= turbo_frame_tag @user do %> + <%= link_to fin_user_path(@user), data: { turbo_method: :post } do %> + <%= user_fin(@user) %> + <% end %> +<% end %> diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index 033858d..372eaaf 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -41,8 +41,10 @@ <%= user.invited_by_username %> <%= user_status(user) %> - <%= link_to fin_user_path(user) do %> - <%= user_fin(user) %> + <%= turbo_frame_tag user do %> + <%= link_to fin_user_path(user), data: { turbo: true, turbo_method: :post } do %> + <%= user_fin(user) %> + <% end %> <% end %> diff --git a/config/importmap.rb b/config/importmap.rb index 4d2646d..d5bd056 100644 --- a/config/importmap.rb +++ b/config/importmap.rb @@ -4,3 +4,4 @@ pin "jquery", to: "jquery.js" pin "jquery_ujs", to: "jquery_ujs.js" pin "bootstrap", to: "bootstrap.js" +pin "@hotwired/turbo-rails", to: "turbo.min.js" diff --git a/config/routes.rb b/config/routes.rb index 36311cc..b2d4e3a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,7 +10,7 @@ resources :users, only: %i[index create destroy] do member do get :resend_invitation - get :fin + post :fin end end resource :invitation, only: %i[show update] From 7c29ad7d17e218faa3da94877a94eec84eb0909c Mon Sep 17 00:00:00 2001 From: Karol Bajko Date: Thu, 20 Jun 2024 23:37:55 +0200 Subject: [PATCH 2/3] Migrate to bootstrap 4 --- Gemfile | 2 +- Gemfile.lock | 10 +- .../stylesheets/bootstrap_flatly.css.scss | 1 - .../stylesheets/flatly/_bootswatch.scss | 452 ++++----- app/assets/stylesheets/flatly/_variables.scss | 924 ++---------------- app/helpers/application_helper.rb | 13 +- app/helpers/notifications_helper.rb | 4 +- app/views/homes/show.html.erb | 75 +- app/views/invitations/show.html.erb | 8 +- app/views/layouts/application.html.erb | 110 ++- app/views/matches/_form.html.erb | 58 +- app/views/matches/_matches.html.erb | 58 +- app/views/matches/index.html.erb | 28 +- app/views/matches/show.html.erb | 179 ++-- app/views/notifications/index.html.erb | 6 +- app/views/rankings/show.html.erb | 8 +- app/views/sessions/new.html.erb | 8 +- app/views/shared/_menu.html.erb | 32 +- app/views/users/index.html.erb | 38 +- 19 files changed, 619 insertions(+), 1395 deletions(-) diff --git a/Gemfile b/Gemfile index 88ee3d8..4538d3d 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ ruby '3.3.2' gem 'bcrypt' gem 'bootsnap', require: false -gem 'bootstrap-sass', '~> 3.4.1' +gem 'bootstrap', '~> 4.0' gem 'cancancan' gem 'font-awesome-rails' gem 'importmap-rails', '~> 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 80c4186..82005c1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -85,9 +85,10 @@ GEM bigdecimal (3.1.8) bootsnap (1.18.3) msgpack (~> 1.2) - bootstrap-sass (3.4.1) - autoprefixer-rails (>= 5.2.1) - sassc (>= 2.0.0) + bootstrap (4.6.2) + autoprefixer-rails (>= 9.1.0) + popper_js (>= 1.16.1, < 2) + sassc-rails (>= 2.0.0) builder (3.3.0) cancancan (3.6.1) capybara (3.40.0) @@ -171,6 +172,7 @@ GEM ast (~> 2.4.1) racc pg (1.5.6) + popper_js (1.16.1) psych (5.1.2) stringio public_suffix (5.0.5) @@ -306,7 +308,7 @@ PLATFORMS DEPENDENCIES bcrypt bootsnap - bootstrap-sass (~> 3.4.1) + bootstrap (~> 4.0) cancancan capybara factory_bot_rails diff --git a/app/assets/stylesheets/bootstrap_flatly.css.scss b/app/assets/stylesheets/bootstrap_flatly.css.scss index 8685523..166ccb5 100644 --- a/app/assets/stylesheets/bootstrap_flatly.css.scss +++ b/app/assets/stylesheets/bootstrap_flatly.css.scss @@ -1,7 +1,6 @@ $icon-font-path: "/assets/"; @import "flatly/variables"; -@import "bootstrap-sprockets"; @import "bootstrap"; @import "bootstrap/mixins"; @import "flatly/bootswatch"; diff --git a/app/assets/stylesheets/flatly/_bootswatch.scss b/app/assets/stylesheets/flatly/_bootswatch.scss index 13616d2..afddb9f 100644 --- a/app/assets/stylesheets/flatly/_bootswatch.scss +++ b/app/assets/stylesheets/flatly/_bootswatch.scss @@ -1,332 +1,274 @@ -// Flatly 3.4.1 +// Flatly 4.6.2 // Bootswatch -// ----------------------------------------------------- -$web-font-path: "https://fonts.googleapis.com/css?family=Lato:400,700,400italic&display=swap" !default; + +// Variables =================================================================== + +$web-font-path: "https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap" !default; @if $web-font-path { @import url($web-font-path); } -// Navbar ===================================================================== - - -.navbar { - border-width: 0; - - &-default { - - .badge { - background-color: #fff; - color: $navbar-default-bg; - } - } - - &-inverse { - - .badge { - background-color: #fff; - color: $navbar-inverse-bg; - } - } - - &-brand { - line-height: 1; +// Navbar ======================================================================= + +.bg-primary { + .navbar-nav .active > .nav-link, + .navbar-nav .nav-link:hover, + .navbar-nav .nav-link:focus, + .navbar-nav .show > .nav-link, + .navbar-nav .nav-link.show, + .navbar-nav .nav-link.active { + color: $success !important; } } -// Buttons ==================================================================== +// Buttons ===================================================================== .btn { - border-width: 2px; -} - -.btn:active { - @include box-shadow(none); -} - -.btn-group.open .dropdown-toggle { - @include box-shadow(none); -} - -// Typography ================================================================= - -.text-primary, -.text-primary:hover { - color: $brand-primary; -} - -.text-success, -.text-success:hover { - color: $brand-success; -} - -.text-danger, -.text-danger:hover { - color: $brand-danger; -} - -.text-warning, -.text-warning:hover { - color: $brand-warning; -} - -.text-info, -.text-info:hover { - color: $brand-info; + &-secondary, + &-secondary:hover, + &-warning, + &-warning:hover { + color: $white; + } } -// Tables ===================================================================== +// Tables ====================================================================== -table, .table { - - a:hover { - text-decoration: none; + &-primary, + &-secondary, + &-success, + &-info, + &-warning, + &-danger { + color: $white; } - .dropdown-menu a { - text-decoration: none; + &-primary { + &, + > th, + > td { + background-color: $primary; + } } - .success, - .warning, - .danger, - .info { - color: #fff; - - > th > a, - > td > a, - > a { - color: #fff; + &-secondary { + &, + > th, + > td { + background-color: $secondary; } } - > thead > tr > th, - > tbody > tr > th, - > tfoot > tr > th, - > thead > tr > td, - > tbody > tr > td, - > tfoot > tr > td { - border: none; + &-light { + &, + > th, + > td { + background-color: $light; + } } - &-bordered > thead > tr > th, - &-bordered > tbody > tr > th, - &-bordered > tfoot > tr > th, - &-bordered > thead > tr > td, - &-bordered > tbody > tr > td, - &-bordered > tfoot > tr > td { - border: 1px solid $table-border-color; + &-dark { + &, + > th, + > td { + background-color: $dark; + } } -} -// Forms ====================================================================== - -.form-control, -input { - border-width: 2px; - @include box-shadow(none); - - &:focus { - @include box-shadow(none); + &-success { + &, + > th, + > td { + background-color: $success; + } } -} -.has-warning { - .help-block, - .control-label, - .radio, - .checkbox, - .radio-inline, - .checkbox-inline, - &.radio label, - &.checkbox label, - &.radio-inline label, - &.checkbox-inline label, - .form-control-feedback { - color: $brand-warning; + &-info { + &, + > th, + > td { + background-color: $info; + } } - .form-control, - .form-control:focus { - border: 2px solid $brand-warning; + &-danger { + &, + > th, + > td { + background-color: $danger; + } } - .input-group-addon { - border-color: $brand-warning; + &-warning { + &, + > th, + > td { + background-color: $warning; + } } -} -.has-error { - .help-block, - .control-label, - .radio, - .checkbox, - .radio-inline, - .checkbox-inline, - &.radio label, - &.checkbox label, - &.radio-inline label, - &.checkbox-inline label, - .form-control-feedback { - color: $brand-danger; + &-active { + &, + > th, + > td { + background-color: $table-active-bg; + } } - .form-control, - .form-control:focus { - border: 2px solid $brand-danger; - } + &-hover { + .table-primary:hover { + &, + > th, + > td { + background-color: darken($primary, 5%); + } + } - .input-group-addon { - border-color: $brand-danger; - } -} + .table-secondary:hover { + &, + > th, + > td { + background-color: darken($secondary, 5%); + } + } -.has-success { - .help-block, - .control-label, - .radio, - .checkbox, - .radio-inline, - .checkbox-inline, - &.radio label, - &.checkbox label, - &.radio-inline label, - &.checkbox-inline label, - .form-control-feedback { - color: $brand-success; - } + .table-light:hover { + &, + > th, + > td { + background-color: darken($light, 5%); + } + } - .form-control, - .form-control:focus { - border: 2px solid $brand-success; - } + .table-dark:hover { + &, + > th, + > td { + background-color: darken($dark, 5%); + } + } + + .table-success:hover { + &, + > th, + > td { + background-color: darken($success, 5%); + } + } + + .table-info:hover { + &, + > th, + > td { + background-color: darken($info, 5%); + } + } + + .table-danger:hover { + &, + > th, + > td { + background-color: darken($danger, 5%); + } + } + + .table-warning:hover { + &, + > th, + > td { + background-color: darken($warning, 5%); + } + } + + .table-active:hover { + &, + > th, + > td { + background-color: $table-active-bg; + } + } - .input-group-addon { - border-color: $brand-success; } } -// Navs ======================================================================= +// Navs ======================================================================== -.nav { - .open > a, - .open > a:hover, - .open > a:focus { - border-color: transparent; +.nav-tabs { + .nav-link.active, + .nav-link.active:focus, + .nav-link.active:hover, + .nav-item.open .nav-link, + .nav-item.open .nav-link:focus, + .nav-item.open .nav-link:hover { + color: $primary; } } -.pager { - a, +.pagination { a:hover { - color: #fff; - } - - .disabled { - &>a, - &>a:hover, - &>a:focus, - &>span { - background-color: $pagination-disabled-bg; - } + text-decoration: none; } } -// Indicators ================================================================= +// Indicators ================================================================== .close { - color: #fff; text-decoration: none; - opacity: 0.4; + opacity: .4; &:hover, &:focus { - color: #fff; opacity: 1; } } -.alert { - - .alert-link { - color: #fff; - text-decoration: underline; - } -} - -// Progress bars ============================================================== - -.progress { - height: 10px; - @include box-shadow(none); - .progress-bar { - font-size: 10px; - line-height: 10px; +.badge { + &-secondary, + &-warning { + color: $white; } } -// Containers ================================================================= - -.well { - @include box-shadow(none); -} - -a.list-group-item { +.alert { + border: none; + color: $white; - &.active, - &.active:hover, - &.active:focus { - border-color: $list-group-border; + a, + .alert-link { + color: $white; + text-decoration: underline; } - &-success { - &.active { - background-color: $state-success-bg; - } - - &.active:hover, - &.active:focus { - background-color: darken($state-success-bg, 5%); + @each $color, $value in $theme-colors { + &-#{$color} { + @if $enable-gradients { + background: $value linear-gradient(180deg, mix($body-bg, $value, 15%), $value) repeat-x; + } @else { + background-color: $value; + } } } - &-warning { - &.active { - background-color: $state-warning-bg; - } - - &.active:hover, - &.active:focus { - background-color: darken($state-warning-bg, 5%); - } - } - - &-danger { - &.active { - background-color: $state-danger-bg; - } - - &.active:hover, - &.active:focus { - background-color: darken($state-danger-bg, 5%); + &-light { + &, + a, + .alert-link { + color: $body-color; } } } -.panel { - &-default { - .close { - color: $text-color; - } - } -} +// Containers ================================================================== -.modal { +.modal, +.toast { .close { - color: $text-color; - } -} + color: $black; -.popover { - color: $text-color; + &:not(:disabled):not(.disabled):hover, + &:not(:disabled):not(.disabled):focus { + color: $black; + } + } } diff --git a/app/assets/stylesheets/flatly/_variables.scss b/app/assets/stylesheets/flatly/_variables.scss index e3537bb..9ec9451 100644 --- a/app/assets/stylesheets/flatly/_variables.scss +++ b/app/assets/stylesheets/flatly/_variables.scss @@ -1,870 +1,106 @@ -$bootstrap-sass-asset-helper: false !default; -// Flatly 3.4.1 -// Variables -// -------------------------------------------------- +// Flatly 4.6.2 +// Bootswatch - -//== Colors -// -//## Gray and brand colors for use across Bootstrap. - -$gray-base: #000 !default; -$gray-darker: lighten($gray-base, 13.5%) !default; // #222 -$gray-dark: #7b8a8b !default; // #333 -$gray: #95a5a6 !default; // #555 -$gray-light: #b4bcc2 !default; // #999 -$gray-lighter: #ecf0f1 !default; // #eee - -$brand-primary: #2C3E50 !default; -$brand-success: #18BC9C !default; -$brand-info: #3498DB !default; -$brand-warning: #F39C12 !default; -$brand-danger: #E74C3C !default; - - -//== Scaffolding -// -//## Settings for some of the most global styles. - -//** Background color for ``. -$body-bg: #fff !default; -//** Global text color on ``. -$text-color: $brand-primary !default; - -//** Global textual link color. -$link-color: $brand-success !default; -//** Link hover color set via `darken()` function. -$link-hover-color: $link-color !default; -//** Link hover decoration. -$link-hover-decoration: underline !default; - - -//== Typography -// -//## Font, line-height, and color for body text, headings, and more. - -$font-family-sans-serif: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif !default; -$font-family-serif: Georgia, "Times New Roman", Times, serif !default; -//** Default monospace fonts for ``, ``, and `
`.
-$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
-$font-family-base:        $font-family-sans-serif !default;
-
-$font-size-base:          15px !default;
-$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
-
-$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
-$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
-$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
-$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-h5:            $font-size-base !default;
-$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-$line-height-base:        1.428571429 !default; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
-
-//** By default, this inherits from the ``.
-$headings-font-family:    $font-family-base !default;
-$headings-font-weight:    400 !default;
-$headings-line-height:    1.1 !default;
-$headings-color:          inherit !default;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
-//** File name for all font files.
-$icon-font-name:          "glyphicons-halflings-regular" !default;
-//** Element ID within SVG icon file.
-$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-$padding-base-vertical:     10px !default;
-$padding-base-horizontal:   15px !default;
-
-$padding-large-vertical:    18px !default;
-$padding-large-horizontal:  27px !default;
-
-$padding-small-vertical:    6px !default;
-$padding-small-horizontal:  9px !default;
-
-$padding-xs-vertical:       1px !default;
-$padding-xs-horizontal:     5px !default;
-
-$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
-$line-height-small:         1.5 !default;
-
-$border-radius-base:        4px !default;
-$border-radius-large:       6px !default;
-$border-radius-small:       3px !default;
-
-//** Global color for active items (e.g., navs or dropdowns).
-$component-active-color:    #fff !default;
-//** Global background color for active items (e.g., navs or dropdowns).
-$component-active-bg:       $brand-primary !default;
-
-//** Width of the `border` for generating carets that indicate dropdowns.
-$caret-width-base:          4px !default;
-//** Carets increase slightly in size for larger components.
-$caret-width-large:         5px !default;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for ``s and ``s.
-$table-cell-padding:            8px !default;
-//** Padding for cells in `.table-condensed`.
-$table-condensed-cell-padding:  5px !default;
-
-//** Default background color used for all tables.
-$table-bg:                      transparent !default;
-//** Background color used for `.table-striped`.
-$table-bg-accent:               #f9f9f9 !default;
-//** Background color used for `.table-hover`.
-$table-bg-hover:                $gray-lighter !default;
-$table-bg-active:               $table-bg-hover !default;
-
-//** Border color for table and cell borders.
-$table-border-color:            $gray-lighter !default;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-font-weight:                normal !default;
-
-$btn-default-color:              #fff !default;
-$btn-default-bg:                 $gray !default;
-$btn-default-border:             $btn-default-bg !default;
-
-$btn-primary-color:              $btn-default-color !default;
-$btn-primary-bg:                 $brand-primary !default;
-$btn-primary-border:             $btn-primary-bg !default;
-
-$btn-success-color:              $btn-default-color !default;
-$btn-success-bg:                 $brand-success !default;
-$btn-success-border:             $btn-success-bg !default;
-
-$btn-info-color:                 $btn-default-color !default;
-$btn-info-bg:                    $brand-info !default;
-$btn-info-border:                $btn-info-bg !default;
-
-$btn-warning-color:              $btn-default-color !default;
-$btn-warning-bg:                 $brand-warning !default;
-$btn-warning-border:             $btn-warning-bg !default;
-
-$btn-danger-color:               $btn-default-color !default;
-$btn-danger-bg:                  $brand-danger !default;
-$btn-danger-border:              $btn-danger-bg !default;
-
-$btn-link-disabled-color:        $gray-light !default;
-
-// Allows for customizing button radius independently from global border radius
-$btn-border-radius-base:         $border-radius-base !default;
-$btn-border-radius-large:        $border-radius-large !default;
-$btn-border-radius-small:        $border-radius-small !default;
-
-
-//== Forms
-//
-//##
-
-//** `` background color
-$input-bg:                       #fff !default;
-//** `` background color
-$input-bg-disabled:              $gray-lighter !default;
-
-//** Text color for ``s
-$input-color:                    $text-color !default;
-//** `` border color
-$input-border:                   #dce4ec !default;
-
-// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
-//** Default `.form-control` border radius
-// This has no effect on ``s in CSS.
-$input-border-radius:            $border-radius-base !default;
-//** Large `.form-control` border radius
-$input-border-radius-large:      $border-radius-large !default;
-//** Small `.form-control` border radius
-$input-border-radius-small:      $border-radius-small !default;
-
-//** Border color for inputs on focus
-$input-border-focus:             $brand-primary !default;
-
-//** Placeholder text color
-$input-color-placeholder:        #acb6c0 !default;
-
-//** Default `.form-control` height
-$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 4) !default;
-//** Large `.form-control` height
-$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 4) !default;
-//** Small `.form-control` height
-$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 4) !default;
-
-//** `.form-group` margin
-$form-group-margin-bottom:       15px !default;
-
-$legend-color:                   $text-color !default;
-$legend-border-color:            transparent !default;
-
-//** Background color for textual input addons
-$input-group-addon-bg:           $gray-lighter !default;
-//** Border color for textual input addons
-$input-group-addon-border-color: $input-border !default;
-
-//** Disabled cursor for form controls and buttons.
-$cursor-disabled:                not-allowed !default;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-$dropdown-bg:                    #fff !default;
-//** Dropdown menu `border-color`.
-$dropdown-border:                rgba(0,0,0,.15) !default;
-//** Dropdown menu `border-color` **for IE8**.
-$dropdown-fallback-border:       #ccc !default;
-//** Divider color for between dropdown items.
-$dropdown-divider-bg:            #e5e5e5 !default;
-
-//** Dropdown link text color.
-$dropdown-link-color:            $gray-dark !default;
-//** Hover color for dropdown links.
-$dropdown-link-hover-color:      #fff !default;
-//** Hover background for dropdown links.
-$dropdown-link-hover-bg:         $component-active-bg !default;
-
-//** Active dropdown menu item text color.
-$dropdown-link-active-color:     #fff !default;
-//** Active dropdown menu item background color.
-$dropdown-link-active-bg:        $component-active-bg !default;
-
-//** Disabled dropdown menu item background color.
-$dropdown-link-disabled-color:   $gray-light !default;
-
-//** Text color for headers within dropdown menus.
-$dropdown-header-color:          $gray-light !default;
-
-//** Deprecated `$dropdown-caret-color` as of v3.1.0
-$dropdown-caret-color:           #000 !default;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-$zindex-navbar:            1000 !default;
-$zindex-dropdown:          1000 !default;
-$zindex-popover:           1060 !default;
-$zindex-tooltip:           1070 !default;
-$zindex-navbar-fixed:      1030 !default;
-$zindex-modal-background:  1040 !default;
-$zindex-modal:             1050 !default;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `$screen-xs` as of v3.0.1
-$screen-xs:                  480px !default;
-//** Deprecated `$screen-xs-min` as of v3.2.0
-$screen-xs-min:              $screen-xs !default;
-//** Deprecated `$screen-phone` as of v3.0.1
-$screen-phone:               $screen-xs-min !default;
-
-// Small screen / tablet
-//** Deprecated `$screen-sm` as of v3.0.1
-$screen-sm:                  768px !default;
-$screen-sm-min:              $screen-sm !default;
-//** Deprecated `$screen-tablet` as of v3.0.1
-$screen-tablet:              $screen-sm-min !default;
-
-// Medium screen / desktop
-//** Deprecated `$screen-md` as of v3.0.1
-$screen-md:                  992px !default;
-$screen-md-min:              $screen-md !default;
-//** Deprecated `$screen-desktop` as of v3.0.1
-$screen-desktop:             $screen-md-min !default;
-
-// Large screen / wide desktop
-//** Deprecated `$screen-lg` as of v3.0.1
-$screen-lg:                  1200px !default;
-$screen-lg-min:              $screen-lg !default;
-//** Deprecated `$screen-lg-desktop` as of v3.0.1
-$screen-lg-desktop:          $screen-lg-min !default;
-
-// So media queries don't overlap when required, provide a maximum
-$screen-xs-max:              ($screen-sm-min - 1) !default;
-$screen-sm-max:              ($screen-md-min - 1) !default;
-$screen-md-max:              ($screen-lg-min - 1) !default;
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-$grid-columns:              12 !default;
-//** Padding between columns. Gets divided in half for the left and right.
-$grid-gutter-width:         30px !default;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-$grid-float-breakpoint:     $screen-sm-min !default;
-//** Point at which the navbar begins collapsing.
-$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-$container-tablet:             (720px + $grid-gutter-width) !default;
-//** For `$screen-sm-min` and up.
-$container-sm:                 $container-tablet !default;
-
-// Medium screen / desktop
-$container-desktop:            (940px + $grid-gutter-width) !default;
-//** For `$screen-md-min` and up.
-$container-md:                 $container-desktop !default;
-
-// Large screen / wide desktop
-$container-large-desktop:      (1140px + $grid-gutter-width) !default;
-//** For `$screen-lg-min` and up.
-$container-lg:                 $container-large-desktop !default;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-$navbar-height:                    60px !default;
-$navbar-margin-bottom:             $line-height-computed !default;
-$navbar-border-radius:             $border-radius-base !default;
-$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
-$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
-$navbar-collapse-max-height:       340px !default;
-
-$navbar-default-color:             #fff !default;
-$navbar-default-bg:                $brand-primary !default;
-$navbar-default-border:            transparent !default;
-
-// Navbar links
-$navbar-default-link-color:                #fff !default;
-$navbar-default-link-hover-color:          $brand-success !default;
-$navbar-default-link-hover-bg:             transparent !default;
-$navbar-default-link-active-color:         #fff !default;
-$navbar-default-link-active-bg:            darken($navbar-default-bg, 10%) !default;
-$navbar-default-link-disabled-color:       #ccc !default;
-$navbar-default-link-disabled-bg:          transparent !default;
-
-// Navbar brand label
-$navbar-default-brand-color:               $navbar-default-link-color !default;
-$navbar-default-brand-hover-color:         $navbar-default-link-hover-color !default;
-$navbar-default-brand-hover-bg:            transparent !default;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg:           darken($navbar-default-bg, 10%) !default;
-$navbar-default-toggle-icon-bar-bg:        #fff !default;
-$navbar-default-toggle-border-color:       darken($navbar-default-bg, 10%) !default;
-
-
-//=== Inverted navbar
-// Reset inverted navbar basics
-$navbar-inverse-color:                      #fff !default;
-$navbar-inverse-bg:                         $brand-success !default;
-$navbar-inverse-border:                     transparent !default;
-
-// Inverted navbar links
-$navbar-inverse-link-color:                 #fff !default;
-$navbar-inverse-link-hover-color:           $brand-primary !default;
-$navbar-inverse-link-hover-bg:              transparent !default;
-$navbar-inverse-link-active-color:          #fff !default;
-$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 5%) !default;
-$navbar-inverse-link-disabled-color:        #ccc !default;
-$navbar-inverse-link-disabled-bg:           transparent !default;
-
-// Inverted navbar brand label
-$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
-$navbar-inverse-brand-hover-color:          $navbar-inverse-link-hover-color !default;
-$navbar-inverse-brand-hover-bg:             transparent !default;
-
-// Inverted navbar toggle
-$navbar-inverse-toggle-hover-bg:            darken($navbar-inverse-bg, 10%) !default;
-$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
-$navbar-inverse-toggle-border-color:        darken($navbar-inverse-bg, 10%) !default;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-$nav-link-padding:                          10px 15px !default;
-$nav-link-hover-bg:                         $gray-lighter !default;
-
-$nav-disabled-link-color:                   $gray-light !default;
-$nav-disabled-link-hover-color:             $gray-light !default;
-
-//== Tabs
-$nav-tabs-border-color:                     $gray-lighter !default;
-
-$nav-tabs-link-hover-border-color:          $gray-lighter !default;
-
-$nav-tabs-active-link-hover-bg:             $body-bg !default;
-$nav-tabs-active-link-hover-color:          $brand-primary !default;
-$nav-tabs-active-link-hover-border-color:   $gray-lighter !default;
-
-$nav-tabs-justified-link-border-color:            $gray-lighter !default;
-$nav-tabs-justified-active-link-border-color:     $body-bg !default;
-
-//== Pills
-$nav-pills-border-radius:                   $border-radius-base !default;
-$nav-pills-active-link-hover-bg:            $component-active-bg !default;
-$nav-pills-active-link-hover-color:         $component-active-color !default;
-
-
-//== Pagination
-//
-//##
-
-$pagination-color:                     #fff !default;
-$pagination-bg:                        $brand-success !default;
-$pagination-border:                    transparent !default;
-
-$pagination-hover-color:               #fff !default;
-$pagination-hover-bg:                  darken($brand-success, 15%) !default;
-$pagination-hover-border:              transparent !default;
-
-$pagination-active-color:              #fff !default;
-$pagination-active-bg:                 darken($brand-success, 15%) !default;
-$pagination-active-border:             transparent !default;
-
-$pagination-disabled-color:            $gray-lighter !default;
-$pagination-disabled-bg:               lighten($brand-success, 15%) !default;
-$pagination-disabled-border:           transparent !default;
-
-
-//== Pager
-//
-//##
-
-$pager-bg:                             $pagination-bg !default;
-$pager-border:                         $pagination-border !default;
-$pager-border-radius:                  15px !default;
-
-$pager-hover-bg:                       $pagination-hover-bg !default;
-
-$pager-active-bg:                      $pagination-active-bg !default;
-$pager-active-color:                   $pagination-active-color !default;
-
-$pager-disabled-color:                 #fff !default;
-
-
-//== Jumbotron
 //
-//##
-
-$jumbotron-padding:              30px !default;
-$jumbotron-color:                inherit !default;
-$jumbotron-bg:                   $gray-lighter !default;
-$jumbotron-heading-color:        inherit !default;
-$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
-$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             #fff !default;
-$state-success-bg:               $brand-success !default;
-$state-success-border:           $brand-success !default;
-
-$state-info-text:                #fff !default;
-$state-info-bg:                  $brand-info !default;
-$state-info-border:              $brand-info !default;
-
-$state-warning-text:             #fff !default;
-$state-warning-bg:               $brand-warning !default;
-$state-warning-border:           $brand-warning !default;
-
-$state-danger-text:              #fff !default;
-$state-danger-bg:                $brand-danger !default;
-$state-danger-border:            $brand-danger !default;
-
-
-//== Tooltips
+// Color system
 //
-//##
 
-//** Tooltip max width
-$tooltip-max-width:           200px !default;
-//** Tooltip text color
-$tooltip-color:               #fff !default;
-//** Tooltip background color
-$tooltip-bg:                  #000 !default;
-$tooltip-opacity:             .9 !default;
+$white:    #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #ecf0f1 !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ced4da !default;
+$gray-500: #b4bcc2 !default;
+$gray-600: #95a5a6 !default;
+$gray-700: #7b8a8b !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black:    #000 !default;
 
-//** Tooltip arrow width
-$tooltip-arrow-width:         5px !default;
-//** Tooltip arrow color
-$tooltip-arrow-color:         $tooltip-bg !default;
+$blue:    #2c3e50 !default;
+$indigo:  #6610f2 !default;
+$purple:  #6f42c1 !default;
+$pink:    #e83e8c !default;
+$red:     #e74c3c !default;
+$orange:  #fd7e14 !default;
+$yellow:  #f39c12 !default;
+$green:   #18bc9c !default;
+$teal:    #20c997 !default;
+$cyan:    #3498db !default;
 
+$primary:       $blue !default;
+$secondary:     $gray-600 !default;
+$success:       $green !default;
+$info:          $cyan !default;
+$warning:       $yellow !default;
+$danger:        $red !default;
+$light:         $gray-200 !default;
+$dark:          $gray-700 !default;
 
-//== Popovers
-//
-//##
+$yiq-contrasted-threshold:  175 !default;
 
-//** Popover body background color
-$popover-bg:                          #fff !default;
-//** Popover maximum width
-$popover-max-width:                   276px !default;
-//** Popover border color
-$popover-border-color:                rgba(0,0,0,.2) !default;
-//** Popover fallback border color
-$popover-fallback-border-color:       #ccc !default;
+// Links
 
-//** Popover title background color
-$popover-title-bg:                    darken($popover-bg, 3%) !default;
+$link-color:                $success !default;
 
-//** Popover arrow width
-$popover-arrow-width:                 10px !default;
-//** Popover arrow color
-$popover-arrow-color:                 $popover-bg !default;
+// Fonts
 
-//** Popover outer arrow width
-$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
-//** Popover outer arrow color
-$popover-arrow-outer-color:           fadein($popover-border-color, 5%) !default;
-//** Popover outer arrow fallback color
-$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
+// stylelint-disable-next-line value-keyword-case
+$font-family-sans-serif:      Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
+$font-size-base:              .9375rem !default;
+$font-size-sm:                $font-size-base * .88 !default;
+$h1-font-size:                3rem !default;
+$h2-font-size:                2.5rem !default;
+$h3-font-size:                2rem !default;
 
+// Tables
 
-//== Labels
-//
-//##
+$table-accent-bg:             $gray-200 !default;
 
-//** Default label background color
-$label-default-bg:            $btn-default-bg !default;
-//** Primary label background color
-$label-primary-bg:            $brand-primary !default;
-//** Success label background color
-$label-success-bg:            $brand-success !default;
-//** Info label background color
-$label-info-bg:               $brand-info !default;
-//** Warning label background color
-$label-warning-bg:            $brand-warning !default;
-//** Danger label background color
-$label-danger-bg:             $brand-danger !default;
+// Dropdowns
 
-//** Default label text color
-$label-color:                 #fff !default;
-//** Default text color of a linked label
-$label-link-hover-color:      #fff !default;
+$dropdown-link-color:               $gray-700 !default;
+$dropdown-link-hover-color:         $white !default;
+$dropdown-link-hover-bg:            $primary !default;
 
+// Navs
 
-//== Modals
-//
-//##
+$nav-link-padding-y:                .5rem !default;
+$nav-link-padding-x:                2rem !default;
+$nav-link-disabled-color:           $gray-600 !default;
+$nav-tabs-border-color:             $gray-200 !default;
 
-//** Padding applied to the modal body
-$modal-inner-padding:         20px !default;
+// Navbar
 
-//** Padding applied to the modal title
-$modal-title-padding:         15px !default;
-//** Modal title line-height
-$modal-title-line-height:     $line-height-base !default;
+$navbar-padding-y:                  1rem !default;
+$navbar-dark-color:                 $white !default;
+$navbar-dark-hover-color:           $primary !default;
+$navbar-dark-active-color:          $primary !default;
 
-//** Background color of modal content area
-$modal-content-bg:                             #fff !default;
-//** Modal content border color
-$modal-content-border-color:                   rgba(0,0,0,.2) !default;
-//** Modal content border color **for IE8**
-$modal-content-fallback-border-color:          #999 !default;
+$navbar-dark-brand-color:                 $white !default;
+$navbar-dark-brand-hover-color:           $navbar-dark-brand-color !default;
 
-//** Modal backdrop background color
-$modal-backdrop-bg:           #000 !default;
-//** Modal backdrop opacity
-$modal-backdrop-opacity:      .5 !default;
-//** Modal header border color
-$modal-header-border-color:   #e5e5e5 !default;
-//** Modal footer border color
-$modal-footer-border-color:   $modal-header-border-color !default;
+// Pagination
 
-$modal-lg:                    900px !default;
-$modal-md:                    600px !default;
-$modal-sm:                    300px !default;
+$pagination-color:                  $white !default;
+$pagination-bg:                     $success !default;
+$pagination-border-width:           0 !default;
+$pagination-border-color:           transparent !default;
+$pagination-hover-color:            $white !default;
+$pagination-hover-bg:               darken($success, 15%) !default;
+$pagination-hover-border-color:     transparent !default;
+$pagination-active-bg:              $pagination-hover-bg !default;
+$pagination-active-border-color:    transparent !default;
+$pagination-disabled-color:         $gray-200 !default;
+$pagination-disabled-bg:            lighten($success, 15%) !default;
+$pagination-disabled-border-color:  transparent !default;
 
+// List group
 
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-$alert-padding:               15px !default;
-$alert-border-radius:         $border-radius-base !default;
-$alert-link-font-weight:      bold !default;
-
-$alert-success-bg:            $state-success-bg !default;
-$alert-success-text:          $state-success-text !default;
-$alert-success-border:        $state-success-border !default;
-
-$alert-info-bg:               $state-info-bg !default;
-$alert-info-text:             $state-info-text !default;
-$alert-info-border:           $state-info-border !default;
-
-$alert-warning-bg:            $state-warning-bg !default;
-$alert-warning-text:          $state-warning-text !default;
-$alert-warning-border:        $state-warning-border !default;
-
-$alert-danger-bg:             $state-danger-bg !default;
-$alert-danger-text:           $state-danger-text !default;
-$alert-danger-border:         $state-danger-border !default;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-$progress-bg:                 $gray-lighter !default;
-//** Progress bar text color
-$progress-bar-color:          #fff !default;
-//** Variable for setting rounded corners on progress bar.
-$progress-border-radius:      $border-radius-base !default;
-
-//** Default progress bar color
-$progress-bar-bg:             $brand-primary !default;
-//** Success progress bar color
-$progress-bar-success-bg:     $brand-success !default;
-//** Warning progress bar color
-$progress-bar-warning-bg:     $brand-warning !default;
-//** Danger progress bar color
-$progress-bar-danger-bg:      $brand-danger !default;
-//** Info progress bar color
-$progress-bar-info-bg:        $brand-info !default;
-
-
-//== List group
-//
-//##
+$list-group-hover-bg:               $gray-200 !default;
+$list-group-disabled-bg:            $gray-200 !default;
 
-//** Background color on `.list-group-item`
-$list-group-bg:                 #fff !default;
-//** `.list-group-item` border color
-$list-group-border:             $gray-lighter !default;
-//** List group border radius
-$list-group-border-radius:      $border-radius-base !default;
-
-//** Background color of single list items on hover
-$list-group-hover-bg:           $gray-lighter !default;
-//** Text color of active list items
-$list-group-active-color:       $component-active-color !default;
-//** Background color of active list items
-$list-group-active-bg:          $component-active-bg !default;
-//** Border color of active list elements
-$list-group-active-border:      $list-group-active-bg !default;
-//** Text color for content within active list items
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
-
-//** Text color of disabled list items
-$list-group-disabled-color:      $gray-light !default;
-//** Background color of disabled list items
-$list-group-disabled-bg:         $gray-lighter !default;
-//** Text color for content within disabled list items
-$list-group-disabled-text-color: $list-group-disabled-color !default;
-
-$list-group-link-color:         #555 !default;
-$list-group-link-hover-color:   $list-group-link-color !default;
-$list-group-link-heading-color: #333 !default;
-
-
-//== Panels
-//
-//##
-
-$panel-bg:                    #fff !default;
-$panel-body-padding:          15px !default;
-$panel-heading-padding:       10px 15px !default;
-$panel-footer-padding:        $panel-heading-padding !default;
-$panel-border-radius:         $border-radius-base !default;
-
-//** Border color for elements within panels
-$panel-inner-border:          $gray-lighter !default;
-$panel-footer-bg:             $gray-lighter !default;
-
-$panel-default-text:          $text-color !default;
-$panel-default-border:        $gray-lighter !default;
-$panel-default-heading-bg:    $gray-lighter !default;
-
-$panel-primary-text:          #fff !default;
-$panel-primary-border:        $brand-primary !default;
-$panel-primary-heading-bg:    $brand-primary !default;
-
-$panel-success-text:          $state-success-text !default;
-$panel-success-border:        $state-success-border !default;
-$panel-success-heading-bg:    $state-success-bg !default;
-
-$panel-info-text:             $state-info-text !default;
-$panel-info-border:           $state-info-border !default;
-$panel-info-heading-bg:       $state-info-bg !default;
-
-$panel-warning-text:          $state-warning-text !default;
-$panel-warning-border:        $state-warning-border !default;
-$panel-warning-heading-bg:    $state-warning-bg !default;
-
-$panel-danger-text:           $state-danger-text !default;
-$panel-danger-border:         $state-danger-border !default;
-$panel-danger-heading-bg:     $state-danger-bg !default;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-$thumbnail-padding:           4px !default;
-//** Thumbnail background color
-$thumbnail-bg:                $body-bg !default;
-//** Thumbnail border color
-$thumbnail-border:            $gray-lighter !default;
-//** Thumbnail border radius
-$thumbnail-border-radius:     $border-radius-base !default;
-
-//** Custom text color for thumbnail captions
-$thumbnail-caption-color:     $text-color !default;
-//** Padding around the thumbnail caption
-$thumbnail-caption-padding:   9px !default;
-
-
-//== Wells
-//
-//##
-
-$well-bg:                     $gray-lighter !default;
-$well-border:                 transparent !default;
-
-
-//== Badges
-//
-//##
-
-$badge-color:                 #fff !default;
-//** Linked badge text color on hover
-$badge-link-hover-color:      #fff !default;
-$badge-bg:                    $brand-primary !default;
-
-//** Badge text color in active nav link
-$badge-active-color:          $brand-primary !default;
-//** Badge background color in active nav link
-$badge-active-bg:             #fff !default;
-
-$badge-font-weight:           bold !default;
-$badge-line-height:           1 !default;
-$badge-border-radius:         10px !default;
-
-
-//== Breadcrumbs
-//
-//##
-
-$breadcrumb-padding-vertical:   8px !default;
-$breadcrumb-padding-horizontal: 15px !default;
-//** Breadcrumb background color
-$breadcrumb-bg:                 $gray-lighter !default;
-//** Breadcrumb text color
-$breadcrumb-color:              #ccc !default;
-//** Text color of current page in the breadcrumb
-$breadcrumb-active-color:       $gray !default;
-//** Textual separator for between breadcrumb elements
-$breadcrumb-separator:          "/" !default;
-
-
-//== Carousel
-//
-//##
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
-
-$carousel-control-color:                      #fff !default;
-$carousel-control-width:                      15% !default;
-$carousel-control-opacity:                    .5 !default;
-$carousel-control-font-size:                  20px !default;
-
-$carousel-indicator-active-bg:                #fff !default;
-$carousel-indicator-border-color:             #fff !default;
-
-$carousel-caption-color:                      #fff !default;
-
-
-//== Close
-//
-//##
-
-$close-font-weight:           bold !default;
-$close-color:                 #000 !default;
-$close-text-shadow:           none !default;
-
-
-//== Code
-//
-//##
-
-$code-color:                  #c7254e !default;
-$code-bg:                     #f9f2f4 !default;
-
-$kbd-color:                   #fff !default;
-$kbd-bg:                      #333 !default;
-
-$pre-bg:                      $gray-lighter !default;
-$pre-color:                   $gray-dark !default;
-$pre-border-color:            #ccc !default;
-$pre-scrollable-max-height:   340px !default;
-
-
-//== Type
-//
-//##
+// Close
 
-//** Horizontal offset for forms and lists.
-$component-offset-horizontal: 180px !default;
-//** Text muted color
-$text-muted:                  $gray-light !default;
-//** Abbreviations and acronyms border color
-$abbr-border-color:           $gray-light !default;
-//** Headings small color
-$headings-small-color:        $gray-light !default;
-//** Blockquote small color
-$blockquote-small-color:      $gray-light !default;
-//** Blockquote font size
-$blockquote-font-size:        ($font-size-base * 1.25) !default;
-//** Blockquote border color
-$blockquote-border-color:     $gray-lighter !default;
-//** Page header border color
-$page-header-border-color:    transparent !default;
-//** Width of horizontal description list titles
-$dl-horizontal-offset:        $component-offset-horizontal !default;
-//** Point at which .dl-horizontal becomes horizontal
-$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;
-//** Horizontal line color.
-$hr-border:                   $gray-lighter !default;
+$close-color:                       $white !default;
+$close-text-shadow:                 none !default;
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index b14d729..f21c0cd 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -4,26 +4,25 @@
 module ApplicationHelper
   def user_status(user)
     if user.invitation_accepted_at.present?
-      content_tag :label, 'aktywny', class: 'label label-success'
+      content_tag :label, 'aktywny', class: 'badge badge-success'
     else
-      content_tag :label, 'zaproszony', class: 'label label-warning'
+      content_tag :label, 'zaproszony', class: 'badge badge-warning'
     end
   end
 
   def user_fin(user)
     if user.fin?
-      content_tag :label, '$$$', class: 'label label-success', style: 'cursor:pointer'
+      content_tag :label, '$$$', class: 'badge badge-success', style: 'cursor:pointer'
     else
-      content_tag :label, '$$$', class: 'label label-danger', style: 'cursor:pointer'
+      content_tag :label, '$$$', class: 'badge badge-danger', style: 'cursor:pointer'
     end
   end
 
   def reset_button()
-    content_tag :label, 'resetuj dostęp', class: 'label label-warning', style: 'cursor:pointer'
+    content_tag :label, 'resetuj dostęp', class: 'badge badge-warning', style: 'cursor:pointer'
   end
 
   def delete_button()
-    content_tag :label, 'usuń', class: 'label label-danger', style: 'cursor:pointer'
+    content_tag :label, 'usuń', class: 'badge badge-danger', style: 'cursor:pointer'
   end
-
 end
diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb
index 4ff9ddf..c75e6a6 100644
--- a/app/helpers/notifications_helper.rb
+++ b/app/helpers/notifications_helper.rb
@@ -3,9 +3,9 @@
 module NotificationsHelper
   def notification_status(notification)
     if notification.display?
-      content_tag :span, 'aktywny', class: 'label label-success'
+      content_tag :span, 'aktywny', class: 'badge badge-success'
     else
-      content_tag :span, 'nieaktywny', class: 'label label-warning'
+      content_tag :span, 'nieaktywny', class: 'badge badge-warning'
     end
   end
 end
diff --git a/app/views/homes/show.html.erb b/app/views/homes/show.html.erb
index 02f9243..39eca1c 100644
--- a/app/views/homes/show.html.erb
+++ b/app/views/homes/show.html.erb
@@ -2,29 +2,29 @@
 
 
-

+

Informacje -

+

Cześć! Strona powstała, aby w gronie przyjaciół można było typować wyniki nadchodzących meczów EURO 2024. System działa podobnie do klasycznych zakładów bukmacherskich, z tą różnicą, że tutaj dostaje się punkty za każdy poprawnie wytypowany mecz.

Dla każdego spotkania możemy wskazać jeden spośród 6 wyników:

-
-
1
-
wygrana pierwszej drużyny
-
X
-
remis
-
2
-
wygrana drugiej drużyny
-
1X
-
wygrana pierwszej drużyny lub remis
-
X2
-
wygrana drugiej drużyny lub remis
-
12
-
wygrana którejś z drużyn (nie dojdzie do remisu)
+
+
1
+
wygrana pierwszej drużyny
+
X
+
remis
+
2
+
wygrana drugiej drużyny
+
1X
+
wygrana pierwszej drużyny lub remis
+
X2
+
wygrana drugiej drużyny lub remis
+
12
+
wygrana którejś z drużyn (nie dojdzie do remisu)

Po poprawnym wytypowaniu dostajemy punkty przypisane do zakładu, który wybraliśmy.

@@ -41,36 +41,37 @@

-

+

Komentarze -

-
- <% if @comments.blank? %> -

brak komentarzy

- <% end %> -
    - <% @comments.each do |comment| %> -
  • -
    -
    - + +
    +
    + <% if @comments.blank? %> +

    brak komentarzy

    + <% end %> +
      + <% @comments.each do |comment| %> +
    • +
      +
      <%= display_username(comment.username) %> <% unless comment.match.blank? %> | <%= link_to "#{(comment.match.team_a || '').first(3)}:#{(comment.match.team_b || '').first(3)}", match_path(comment.match) %> <% end %> - - <%= l(comment.created_at, format: :short) %> + <%= l(comment.created_at, format: :short) %> +
      +

      <%= comment.content %>

      + <% unless comment.match.blank? %> +
      <%= link_to 'czytaj dalej', match_path(comment.match, anchor: comment.id) %>
      + <% end %>
      -

      <%= comment.content %>

      - <% unless comment.match.blank? %> -
      <%= link_to 'czytaj dalej', match_path(comment.match, anchor: comment.id) %>
      - <% end %> -
    -
  • - <% end %> -
+ +
+ <% end %> + +
diff --git a/app/views/invitations/show.html.erb b/app/views/invitations/show.html.erb index 99163e7..be7a505 100644 --- a/app/views/invitations/show.html.erb +++ b/app/views/invitations/show.html.erb @@ -1,6 +1,6 @@
-
-
+
+
<%= form_for @user, url: invitation_path, html: { method: :put } do |f| %>

Cześć <%= @user.username %>

@@ -8,11 +8,11 @@ <%= f.hidden_field :username %>
<%= f.label :password, class: 'sr-only' %> - <%= f.password_field :password, class: 'form-control', autocomplete: 'off', placeholder: true, tabindex: 1 %> + <%= f.password_field :password, class: 'form-control', autocomplete: 'off', placeholder: 'Password', tabindex: 1 %>
<%= f.label :password_confirmation, class: 'sr-only' %> - <%= f.password_field :password_confirmation, class: 'form-control', autocomplete: 'off', placeholder: true, tabindex: 2 %> + <%= f.password_field :password_confirmation, class: 'form-control', autocomplete: 'off', placeholder: 'Confirm Password', tabindex: 2 %>
<%= f.submit 'Zapisz hasło', class: 'btn btn-primary btn-block', tabindex: 3 %> <% end %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 4b78944..5688e44 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,64 +1,66 @@ - - Typerek - - - <%= stylesheet_link_tag 'application', media: 'all' %> - <%= javascript_importmap_tags %> - <%= csrf_meta_tags %> - - - - -
- <% if !notice.blank? || !alert.blank? %> -
-
'> - <%= notice || alert %> -
-
- <% end %> - + + Typerek + + + <%= stylesheet_link_tag 'application', media: 'all' %> + <%= javascript_importmap_tags %> + <%= csrf_meta_tags %> + + + - <%= yield %> +
+ <% if !notice.blank? || !alert.blank? %> +
alert-dismissible fade show' role='alert'> + <%= notice || alert %> +
+ <% end %> + + <% if Current.user.present? %> + <% Notification.display.each do |notification| %> + + <% end %> + <% end %> + + <%= yield %> +
-