minimum_viable_product 0.6.7 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/bin/mvp +2 -3
- data/minimum_viable_product.gemspec +89 -3
- data/project/Gemfile +33 -0
- data/project/Gemfile.lock +437 -0
- data/project/Procfile +2 -0
- data/project/README.md +117 -0
- data/project/Rakefile +14 -0
- data/project/app/controllers/application_controller.rb +12 -0
- data/project/app/controllers/conversions_controller.rb +24 -0
- data/project/app/controllers/examples_controller.rb +2 -0
- data/project/app/controllers/home_controller.rb +7 -0
- data/project/app/decorators/.keep +0 -0
- data/project/app/helpers/application_helper.rb +24 -0
- data/project/app/mailers/.keep +0 -0
- data/project/app/models/conversion.rb +4 -0
- data/project/app/views/examples/index.html.erb +1 -0
- data/project/app/views/examples/mustache.html.erb +18 -0
- data/project/app/views/examples/mustache/template.mustache +1 -0
- data/project/app/views/home/conversion.html.erb +12 -0
- data/project/app/views/home/index.html.erb +28 -0
- data/project/app/views/layouts/_header.html.erb +16 -0
- data/project/app/views/layouts/_includes.html.erb +7 -0
- data/project/app/views/layouts/application.html.erb +17 -0
- data/project/app/views/layouts/modal.html.erb +14 -0
- data/project/assets/images/.keep +0 -0
- data/project/assets/images/favicon.ico +0 -0
- data/project/assets/javascripts/controllers/home.coffee +15 -0
- data/project/assets/javascripts/pack.js +9 -0
- data/project/assets/stylesheets/config/variables.scss +876 -0
- data/project/assets/stylesheets/layout/basic.scss +6 -0
- data/project/assets/stylesheets/layout/carousel.scss +127 -0
- data/project/assets/stylesheets/layout/cover.scss +129 -0
- data/project/assets/stylesheets/lib/spacing.scss +55 -0
- data/project/assets/stylesheets/skin/style.scss +16 -0
- data/project/assets/stylesheets/style.scss +8 -0
- data/project/bin/bundle +3 -0
- data/project/bin/rails +9 -0
- data/project/bin/rake +9 -0
- data/project/bin/setup +32 -0
- data/project/bin/spring +15 -0
- data/project/config.ru +4 -0
- data/project/config/application.rb +32 -0
- data/project/config/boot.rb +3 -0
- data/project/config/database.yml +19 -0
- data/project/config/environment.rb +5 -0
- data/project/config/environments/development.rb +67 -0
- data/project/config/environments/production.rb +93 -0
- data/project/config/environments/test.rb +42 -0
- data/project/config/initializers/assets.rb +11 -0
- data/project/config/initializers/backtrace_silencers.rb +7 -0
- data/project/config/initializers/cookies_serializer.rb +3 -0
- data/project/config/initializers/filter_parameter_logging.rb +4 -0
- data/project/config/initializers/inflections.rb +16 -0
- data/project/config/initializers/mime_types.rb +4 -0
- data/project/config/initializers/mustache.rb +7 -0
- data/project/config/initializers/rails_admin.rb +43 -0
- data/project/config/initializers/session_store.rb +3 -0
- data/project/config/initializers/simple_form.rb +177 -0
- data/project/config/initializers/wrap_parameters.rb +14 -0
- data/project/config/locales/en.yml +23 -0
- data/project/config/locales/simple_form.en.yml +31 -0
- data/project/config/routes.rb +13 -0
- data/project/config/secrets.yml +8 -0
- data/project/config/sitemap.rb +28 -0
- data/project/db/migrate/20160728235100_create_conversions.rb +9 -0
- data/project/db/schema.rb +25 -0
- data/project/db/seeds.rb +7 -0
- data/project/lib/assets/.keep +0 -0
- data/project/lib/tasks/heroku.rake +70 -0
- data/project/log/.keep +0 -0
- data/project/log/development.log +48216 -0
- data/project/log/production.log +0 -0
- data/project/package.json +44 -0
- data/project/public/404.html +67 -0
- data/project/public/422.html +67 -0
- data/project/public/500.html +66 -0
- data/project/public/assets/javascripts/448c34a56d699c29117adc64c43affeb.woff2 +0 -0
- data/project/public/assets/javascripts/89889688147bd7575d6327160d64e760.svg +288 -0
- data/project/public/assets/javascripts/e18bbf611f2a2e43afc071aa2f4e1512.ttf +0 -0
- data/project/public/assets/javascripts/f4769f9bdb7466be65088239c12046d1.eot +0 -0
- data/project/public/assets/javascripts/fa2772327f55d8198301fdb8bcfc8158.woff +0 -0
- data/project/public/assets/javascripts/pack.js +31367 -0
- data/project/public/assets/javascripts/pack.js.map +1 -0
- data/project/public/assets/pack.js +17220 -0
- data/project/public/assets/style.css +7477 -0
- data/project/vendor/assets/javascripts/.keep +0 -0
- data/project/vendor/assets/stylesheets/.keep +0 -0
- data/project/webpack.config.js +67 -0
- metadata +88 -2
data/project/Procfile
ADDED
data/project/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Install the mvp gem:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
gem install minimum_viable_product
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Then setup your project:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
mvp new PROJECT
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
# Setup
|
|
16
|
+
|
|
17
|
+
## `.env`
|
|
18
|
+
|
|
19
|
+
Set your `.env` file up with your own variables
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
ROLLBAR_CLIENT_ACCESS_TOKEN=
|
|
23
|
+
ROLLBAR_SERVER_ACCESS_TOKEN=
|
|
24
|
+
SEGMENT_WRITE_KEY=
|
|
25
|
+
FACEBOOK_TRACKING_ID=
|
|
26
|
+
CANONICAL_HOST=
|
|
27
|
+
GOOGLE_ANALYTICS_ID=
|
|
28
|
+
HOTJAR_ID=
|
|
29
|
+
AWS_ACCESS_KEY_ID=
|
|
30
|
+
AWS_SECRET_ACCESS_KEY=
|
|
31
|
+
AWS_S3_BUCKET=
|
|
32
|
+
SPOOF_IP=true
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Heroku
|
|
36
|
+
|
|
37
|
+
To setup deployment for heroku, first create the project:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
heroku create PROJECT
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
You're probably going to want Database backups. This will let you use `rake db:import`
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
heroku addons:create heroku-postgresql:hobby-dev
|
|
47
|
+
heroku pg:backups capture
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
You're also going to need to setup the buildpacks
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
heroku buildpacks:set heroku/ruby
|
|
54
|
+
heroku buildpacks:add --index 1 heroku/nodejs
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Add a scheduled task to update your sitemaps: `rake sitemap:create_upload_and_ping`
|
|
58
|
+
|
|
59
|
+
# SEO
|
|
60
|
+
|
|
61
|
+
## Meta Properties
|
|
62
|
+
|
|
63
|
+
All meta fields are controlled via the `page` object. Set attributes on this in order to get meta properties populated. This is best done at the controller level.
|
|
64
|
+
|
|
65
|
+
### Available Properties
|
|
66
|
+
|
|
67
|
+
|Property|Description|Inheritance|
|
|
68
|
+
|---|---|---|
|
|
69
|
+
|`page.title`| | |
|
|
70
|
+
|`page.description`| | |
|
|
71
|
+
|`page.author`| | |
|
|
72
|
+
|`page.og_url`| | |
|
|
73
|
+
|`page.og_type`| | |
|
|
74
|
+
|`page.og_title`| |`page.title`|
|
|
75
|
+
|`page.og_description`| |`page.description`|
|
|
76
|
+
|`page.og_image`| | |
|
|
77
|
+
|`page.twitter_card`| | | |
|
|
78
|
+
|
|
79
|
+
## Sitemaps
|
|
80
|
+
|
|
81
|
+
### Setup
|
|
82
|
+
|
|
83
|
+
Edit `config/sitemap.rb` with your own custom routes.
|
|
84
|
+
|
|
85
|
+
### Updating
|
|
86
|
+
|
|
87
|
+
Run `sitemap:refresh` in production to update Bing/Google with changes to the sitemap.
|
|
88
|
+
|
|
89
|
+
Put this in a `cron` task or in Heroku Scheduler.
|
|
90
|
+
|
|
91
|
+
# Helpers
|
|
92
|
+
|
|
93
|
+
## Geolocation
|
|
94
|
+
|
|
95
|
+
By default, Geolocation of the session will automatically happen.
|
|
96
|
+
|
|
97
|
+
You can access the session's geolocation in `request.location`.
|
|
98
|
+
|
|
99
|
+
To test geolocation locally, set `SPOOF_IP=true` in your `.env`.
|
|
100
|
+
|
|
101
|
+
For more info see [Geocoder](https://github.com/alexreisner/geocoder).
|
|
102
|
+
|
|
103
|
+
## Bootstrap
|
|
104
|
+
|
|
105
|
+
### `row_groups_of`
|
|
106
|
+
|
|
107
|
+
Makes a series of row/col `div` elements based in group count.
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
<% row_groups_of(3, [1,2,3,4,5,6,7,8,9]) do |i| %>
|
|
111
|
+
<div class="panel panel-default">
|
|
112
|
+
<div class="panel-heading">
|
|
113
|
+
<h2 class="text-center"><%= i %></h2>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
<% end %>
|
|
117
|
+
```
|
data/project/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
3
|
+
|
|
4
|
+
require File.expand_path('../config/application', __FILE__)
|
|
5
|
+
|
|
6
|
+
# HACK @see http://stackoverflow.com/questions/35893584/nomethoderror-undefined-method-last-comment-after-upgrading-to-rake-11
|
|
7
|
+
module TempFixForRakeLastComment
|
|
8
|
+
def last_comment
|
|
9
|
+
last_description
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
Rake::Application.send :include, TempFixForRakeLastComment
|
|
13
|
+
|
|
14
|
+
Rails.application.load_tasks
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class ApplicationController < ActionController::Base
|
|
2
|
+
include MinimumViableProduct::AnalyticsConcern
|
|
3
|
+
include MinimumViableProduct::SEOConcern
|
|
4
|
+
include MinimumViableProduct::SessionConcern
|
|
5
|
+
|
|
6
|
+
helper MVP::BodyHelper
|
|
7
|
+
helper MVP::BootstrapHelper
|
|
8
|
+
|
|
9
|
+
# Prevent CSRF attacks by raising an exception.
|
|
10
|
+
# For APIs, you may want to use :null_session instead.
|
|
11
|
+
protect_from_forgery with: :exception
|
|
12
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
class ConversionsController < ApplicationController
|
|
2
|
+
skip_before_action :verify_authenticity_token
|
|
3
|
+
|
|
4
|
+
def create
|
|
5
|
+
@conversion = Conversion.new(conversion_params)
|
|
6
|
+
|
|
7
|
+
respond_to do |format|
|
|
8
|
+
if @conversion.save
|
|
9
|
+
sign_in(@conversion)
|
|
10
|
+
track! 'Conversion', {email: @conversion.email}
|
|
11
|
+
slack! "Conversion: #{@conversion.email}"
|
|
12
|
+
format.json { render json: @conversion, status: :ok }
|
|
13
|
+
else
|
|
14
|
+
format.json { render json: @conversion.errors, status: :unprocessable_entity }
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def conversion_params
|
|
22
|
+
params.require(:conversion).permit(:email)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module ApplicationHelper
|
|
2
|
+
def render_partial(partial, locals={}, &block)
|
|
3
|
+
render(
|
|
4
|
+
partial: partial,
|
|
5
|
+
locals: locals.merge(block: block)
|
|
6
|
+
)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def render_mustache(template, object)
|
|
10
|
+
mustache = Mustache.new
|
|
11
|
+
mustache.template_extension = 'mustache'
|
|
12
|
+
# mustache.template_path = Rails.root.join("assets/templates")
|
|
13
|
+
# mustache.template_file = Rails.root.join("assets/templates/#{template}.mustache")
|
|
14
|
+
mustache.template_path = Rails.root.join("app/views")
|
|
15
|
+
mustache.template_file = Rails.root.join("app/views/#{template}.mustache")
|
|
16
|
+
mustache.instance_eval %%
|
|
17
|
+
def logged_in
|
|
18
|
+
#{!!current_user}
|
|
19
|
+
end
|
|
20
|
+
%
|
|
21
|
+
# mustache.template_extension = 'mustache'
|
|
22
|
+
mustache.render(object).html_safe
|
|
23
|
+
end
|
|
24
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= link_to "Mustache Rendering", mustache_example_path %>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<div class="row">
|
|
2
|
+
<div class="col-md-9">
|
|
3
|
+
<h1>Mustache Rendering</h1>
|
|
4
|
+
<p>
|
|
5
|
+
You can render mustache files by using <code><<%= "%= render_mustache 'examples/mustache/template', { some: 'value' } %" %>></code>.
|
|
6
|
+
</p>
|
|
7
|
+
<p>
|
|
8
|
+
Place your files into <code>app/views</code> and reference it relatively. You don't need the <code>.mustache</code> file suffix.
|
|
9
|
+
</p>
|
|
10
|
+
<p>
|
|
11
|
+
Here we render <code>examples/mustache/template</code>:
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<div class="well">
|
|
15
|
+
<%= render_mustache 'examples/mustache/template', { some: 'value' } %>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This is <code>template.mustache</code>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<div class="row mt100">
|
|
2
|
+
<div class="col-sm-8 offset-sm-2 col-md-6 offset-md-3">
|
|
3
|
+
<p class='text-center mb50'>
|
|
4
|
+
By default, this page is setup to accept an email submission and store in the database. Depending on your configuration, this will fire an conversion event and even submit to Slack.
|
|
5
|
+
</p>
|
|
6
|
+
<div class="card">
|
|
7
|
+
<div class="card-header">
|
|
8
|
+
<h4>Sign Up</h4>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="card-block">
|
|
11
|
+
<%= simple_form_for Conversion.new, url: conversion_path, remote:true, validate: true, html: { class: 'disable-on-submit' } do |f| %>
|
|
12
|
+
<div class="row">
|
|
13
|
+
<div class="col-sm-7 pr10-sm">
|
|
14
|
+
<%= f.input :email, placeholder: 'joe@example.com', label: false, input_html: { class: "mb0" } %>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="col-sm-5 pl0-sm">
|
|
17
|
+
<%= f.submit "Register for Free", class: 'btn btn-primary btn-block' %>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<p class="text-center mt10 mb0 text-grey">
|
|
22
|
+
<small>We hate spam, don't worry, we'll never try to sell you anything or your info to anyone.</small>
|
|
23
|
+
</p>
|
|
24
|
+
<% end %>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<nav class="navbar navbar-light bg-faded mt50">
|
|
2
|
+
<a class="navbar-brand" href="/">__PROJECT_NAME__</a>
|
|
3
|
+
<ul class="nav navbar-nav float-lg-right">
|
|
4
|
+
<li class="nav-item active">
|
|
5
|
+
<%= link_to 'Examples', examples_path, class: 'nav-link' %>
|
|
6
|
+
</li>
|
|
7
|
+
<li class="nav-item dropdown">
|
|
8
|
+
<a class="nav-link dropdown-toggle" href="http://example.com" id="supportedContentDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
|
|
9
|
+
<div class="dropdown-menu" aria-labelledby="supportedContentDropdown">
|
|
10
|
+
<a class="dropdown-item" href="#">Action</a>
|
|
11
|
+
<a class="dropdown-item" href="#">Another action</a>
|
|
12
|
+
<a class="dropdown-item" href="#">Something else here</a>
|
|
13
|
+
</div>
|
|
14
|
+
</li>
|
|
15
|
+
</ul>
|
|
16
|
+
</nav>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<% page.classes = "body-basic" %>
|
|
2
|
+
<%= render 'layouts/includes' %>
|
|
3
|
+
|
|
4
|
+
<%- content_for :body do %>
|
|
5
|
+
<% if content_for :header %>
|
|
6
|
+
<%= yield :header %>
|
|
7
|
+
<% else %>
|
|
8
|
+
<div class="container">
|
|
9
|
+
<%= render 'layouts/header' %>
|
|
10
|
+
</div>
|
|
11
|
+
<% end %>
|
|
12
|
+
<div class="container">
|
|
13
|
+
<%= yield %>
|
|
14
|
+
</div>
|
|
15
|
+
<% end %>
|
|
16
|
+
|
|
17
|
+
<%= render template: "layouts/minimum_viable_product/application" %>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<% page.classes = "body-cover" %>
|
|
2
|
+
<%= render 'layouts/includes' %>
|
|
3
|
+
|
|
4
|
+
<%- content_for :body do %>
|
|
5
|
+
<div class="site-wrapper">
|
|
6
|
+
<div class="site-wrapper-inner">
|
|
7
|
+
<div class="cover-container">
|
|
8
|
+
<%= yield %>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<% end %>
|
|
13
|
+
|
|
14
|
+
<%= render template: "layouts/minimum_viable_product/application" %>
|
|
File without changes
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class Controller
|
|
2
|
+
index: ()=>
|
|
3
|
+
# Registration page logic
|
|
4
|
+
$('#new_conversion').on('submit', (e)->
|
|
5
|
+
window.track("Conversion Submit", { source: "Registration Form" })
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
$('#new_conversion').on('ajax:success', ()->
|
|
9
|
+
top.location = "/conversion"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
thanks: ()=>
|
|
13
|
+
# Conversion page logic
|
|
14
|
+
|
|
15
|
+
window.controllers['home'] = new Controller()
|
|
@@ -0,0 +1,876 @@
|
|
|
1
|
+
$bootstrap-sass-asset-helper: false !default;
|
|
2
|
+
|
|
3
|
+
//
|
|
4
|
+
// Variables
|
|
5
|
+
// --------------------------------------------------
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
//== Colors
|
|
9
|
+
//
|
|
10
|
+
//## Gray and brand colors for use across Bootstrap.
|
|
11
|
+
|
|
12
|
+
$gray-base: #000 !default;
|
|
13
|
+
$gray-darker: lighten($gray-base, 13.5%) !default; // #222
|
|
14
|
+
$gray-dark: lighten($gray-base, 20%) !default; // #333
|
|
15
|
+
$gray: lighten($gray-base, 33.5%) !default; // #555
|
|
16
|
+
$gray-light: lighten($gray-base, 46.7%) !default; // #777
|
|
17
|
+
$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee
|
|
18
|
+
|
|
19
|
+
$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7
|
|
20
|
+
$brand-success: #5cb85c !default;
|
|
21
|
+
$brand-info: #5bc0de !default;
|
|
22
|
+
$brand-warning: #f0ad4e !default;
|
|
23
|
+
$brand-danger: #d9534f !default;
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
//== Scaffolding
|
|
27
|
+
//
|
|
28
|
+
//## Settings for some of the most global styles.
|
|
29
|
+
|
|
30
|
+
//** Background color for `<body>`.
|
|
31
|
+
$body-bg: #fff !default;
|
|
32
|
+
//** Global text color on `<body>`.
|
|
33
|
+
$text-color: $gray-dark !default;
|
|
34
|
+
|
|
35
|
+
//** Global textual link color.
|
|
36
|
+
$link-color: $brand-primary !default;
|
|
37
|
+
//** Link hover color set via `darken()` function.
|
|
38
|
+
$link-hover-color: darken($link-color, 15%) !default;
|
|
39
|
+
//** Link hover decoration.
|
|
40
|
+
$link-hover-decoration: underline !default;
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
//== Typography
|
|
44
|
+
//
|
|
45
|
+
//## Font, line-height, and color for body text, headings, and more.
|
|
46
|
+
|
|
47
|
+
$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
|
|
48
|
+
$font-family-serif: Georgia, "Times New Roman", Times, serif !default;
|
|
49
|
+
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
|
|
50
|
+
$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace !default;
|
|
51
|
+
$font-family-base: $font-family-sans-serif !default;
|
|
52
|
+
|
|
53
|
+
$font-size-base: 14px !default;
|
|
54
|
+
$font-size-large: ceil(($font-size-base * 1.25)) !default; // ~18px
|
|
55
|
+
$font-size-small: ceil(($font-size-base * 0.85)) !default; // ~12px
|
|
56
|
+
|
|
57
|
+
$font-size-h1: floor(($font-size-base * 2.6)) !default; // ~36px
|
|
58
|
+
$font-size-h2: floor(($font-size-base * 2.15)) !default; // ~30px
|
|
59
|
+
$font-size-h3: ceil(($font-size-base * 1.7)) !default; // ~24px
|
|
60
|
+
$font-size-h4: ceil(($font-size-base * 1.25)) !default; // ~18px
|
|
61
|
+
$font-size-h5: $font-size-base !default;
|
|
62
|
+
$font-size-h6: ceil(($font-size-base * 0.85)) !default; // ~12px
|
|
63
|
+
|
|
64
|
+
//** Unit-less `line-height` for use in components like buttons.
|
|
65
|
+
$line-height-base: 1.428571429 !default; // 20/14
|
|
66
|
+
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
|
|
67
|
+
$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
|
|
68
|
+
|
|
69
|
+
//** By default, this inherits from the `<body>`.
|
|
70
|
+
$headings-font-family: inherit !default;
|
|
71
|
+
$headings-font-weight: 500 !default;
|
|
72
|
+
$headings-line-height: 1.1 !default;
|
|
73
|
+
$headings-color: inherit !default;
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
//== Iconography
|
|
77
|
+
//
|
|
78
|
+
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
|
|
79
|
+
|
|
80
|
+
//** Load fonts from this directory.
|
|
81
|
+
|
|
82
|
+
// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
|
|
83
|
+
// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
|
|
84
|
+
// $icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "fonts/bootstrap/") !default;
|
|
85
|
+
$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/" !default;
|
|
86
|
+
|
|
87
|
+
//** File name for all font files.
|
|
88
|
+
$icon-font-name: "glyphicons-halflings-regular" !default;
|
|
89
|
+
//** Element ID within SVG icon file.
|
|
90
|
+
$icon-font-svg-id: "glyphicons_halflingsregular" !default;
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
//== Components
|
|
94
|
+
//
|
|
95
|
+
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
|
96
|
+
|
|
97
|
+
$padding-base-vertical: 6px !default;
|
|
98
|
+
$padding-base-horizontal: 12px !default;
|
|
99
|
+
|
|
100
|
+
$padding-large-vertical: 10px !default;
|
|
101
|
+
$padding-large-horizontal: 16px !default;
|
|
102
|
+
|
|
103
|
+
$padding-small-vertical: 5px !default;
|
|
104
|
+
$padding-small-horizontal: 10px !default;
|
|
105
|
+
|
|
106
|
+
$padding-xs-vertical: 1px !default;
|
|
107
|
+
$padding-xs-horizontal: 5px !default;
|
|
108
|
+
|
|
109
|
+
$line-height-large: 1.3333333 !default; // extra decimals for Win 8.1 Chrome
|
|
110
|
+
$line-height-small: 1.5 !default;
|
|
111
|
+
|
|
112
|
+
$border-radius-base: 4px !default;
|
|
113
|
+
$border-radius-large: 6px !default;
|
|
114
|
+
$border-radius-small: 3px !default;
|
|
115
|
+
|
|
116
|
+
//** Global color for active items (e.g., navs or dropdowns).
|
|
117
|
+
$component-active-color: #fff !default;
|
|
118
|
+
//** Global background color for active items (e.g., navs or dropdowns).
|
|
119
|
+
$component-active-bg: $brand-primary !default;
|
|
120
|
+
|
|
121
|
+
//** Width of the `border` for generating carets that indicate dropdowns.
|
|
122
|
+
$caret-width-base: 4px !default;
|
|
123
|
+
//** Carets increase slightly in size for larger components.
|
|
124
|
+
$caret-width-large: 5px !default;
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
//== Tables
|
|
128
|
+
//
|
|
129
|
+
//## Customizes the `.table` component with basic values, each used across all table variations.
|
|
130
|
+
|
|
131
|
+
//** Padding for `<th>`s and `<td>`s.
|
|
132
|
+
$table-cell-padding: 8px !default;
|
|
133
|
+
//** Padding for cells in `.table-condensed`.
|
|
134
|
+
$table-condensed-cell-padding: 5px !default;
|
|
135
|
+
|
|
136
|
+
//** Default background color used for all tables.
|
|
137
|
+
$table-bg: transparent !default;
|
|
138
|
+
//** Background color used for `.table-striped`.
|
|
139
|
+
$table-bg-accent: #f9f9f9 !default;
|
|
140
|
+
//** Background color used for `.table-hover`.
|
|
141
|
+
$table-bg-hover: #f5f5f5 !default;
|
|
142
|
+
$table-bg-active: $table-bg-hover !default;
|
|
143
|
+
|
|
144
|
+
//** Border color for table and cell borders.
|
|
145
|
+
$table-border-color: #ddd !default;
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
//== Buttons
|
|
149
|
+
//
|
|
150
|
+
//## For each of Bootstrap's buttons, define text, background and border color.
|
|
151
|
+
|
|
152
|
+
$btn-font-weight: normal !default;
|
|
153
|
+
|
|
154
|
+
$btn-default-color: #333 !default;
|
|
155
|
+
$btn-default-bg: #fff !default;
|
|
156
|
+
$btn-default-border: #ccc !default;
|
|
157
|
+
|
|
158
|
+
$btn-primary-color: #fff !default;
|
|
159
|
+
$btn-primary-bg: $brand-primary !default;
|
|
160
|
+
$btn-primary-border: darken($btn-primary-bg, 5%) !default;
|
|
161
|
+
|
|
162
|
+
$btn-success-color: #fff !default;
|
|
163
|
+
$btn-success-bg: $brand-success !default;
|
|
164
|
+
$btn-success-border: darken($btn-success-bg, 5%) !default;
|
|
165
|
+
|
|
166
|
+
$btn-info-color: #fff !default;
|
|
167
|
+
$btn-info-bg: $brand-info !default;
|
|
168
|
+
$btn-info-border: darken($btn-info-bg, 5%) !default;
|
|
169
|
+
|
|
170
|
+
$btn-warning-color: #fff !default;
|
|
171
|
+
$btn-warning-bg: $brand-warning !default;
|
|
172
|
+
$btn-warning-border: darken($btn-warning-bg, 5%) !default;
|
|
173
|
+
|
|
174
|
+
$btn-danger-color: #fff !default;
|
|
175
|
+
$btn-danger-bg: $brand-danger !default;
|
|
176
|
+
$btn-danger-border: darken($btn-danger-bg, 5%) !default;
|
|
177
|
+
|
|
178
|
+
$btn-link-disabled-color: $gray-light !default;
|
|
179
|
+
|
|
180
|
+
// Allows for customizing button radius independently from global border radius
|
|
181
|
+
$btn-border-radius-base: $border-radius-base !default;
|
|
182
|
+
$btn-border-radius-large: $border-radius-large !default;
|
|
183
|
+
$btn-border-radius-small: $border-radius-small !default;
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
//== Forms
|
|
187
|
+
//
|
|
188
|
+
//##
|
|
189
|
+
|
|
190
|
+
//** `<input>` background color
|
|
191
|
+
$input-bg: #fff !default;
|
|
192
|
+
//** `<input disabled>` background color
|
|
193
|
+
$input-bg-disabled: $gray-lighter !default;
|
|
194
|
+
|
|
195
|
+
//** Text color for `<input>`s
|
|
196
|
+
$input-color: $gray !default;
|
|
197
|
+
//** `<input>` border color
|
|
198
|
+
$input-border: #ccc !default;
|
|
199
|
+
|
|
200
|
+
// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
|
|
201
|
+
//** Default `.form-control` border radius
|
|
202
|
+
// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
|
|
203
|
+
$input-border-radius: $border-radius-base !default;
|
|
204
|
+
//** Large `.form-control` border radius
|
|
205
|
+
$input-border-radius-large: $border-radius-large !default;
|
|
206
|
+
//** Small `.form-control` border radius
|
|
207
|
+
$input-border-radius-small: $border-radius-small !default;
|
|
208
|
+
|
|
209
|
+
//** Border color for inputs on focus
|
|
210
|
+
$input-border-focus: #66afe9 !default;
|
|
211
|
+
|
|
212
|
+
//** Placeholder text color
|
|
213
|
+
$input-color-placeholder: #999 !default;
|
|
214
|
+
|
|
215
|
+
//** Default `.form-control` height
|
|
216
|
+
$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
|
|
217
|
+
//** Large `.form-control` height
|
|
218
|
+
$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
|
|
219
|
+
//** Small `.form-control` height
|
|
220
|
+
$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
|
|
221
|
+
|
|
222
|
+
//** `.form-group` margin
|
|
223
|
+
$form-group-margin-bottom: 15px !default;
|
|
224
|
+
|
|
225
|
+
$legend-color: $gray-dark !default;
|
|
226
|
+
$legend-border-color: #e5e5e5 !default;
|
|
227
|
+
|
|
228
|
+
//** Background color for textual input addons
|
|
229
|
+
$input-group-addon-bg: $gray-lighter !default;
|
|
230
|
+
//** Border color for textual input addons
|
|
231
|
+
$input-group-addon-border-color: $input-border !default;
|
|
232
|
+
|
|
233
|
+
//** Disabled cursor for form controls and buttons.
|
|
234
|
+
$cursor-disabled: not-allowed !default;
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
//== Dropdowns
|
|
238
|
+
//
|
|
239
|
+
//## Dropdown menu container and contents.
|
|
240
|
+
|
|
241
|
+
//** Background for the dropdown menu.
|
|
242
|
+
$dropdown-bg: #fff !default;
|
|
243
|
+
//** Dropdown menu `border-color`.
|
|
244
|
+
$dropdown-border: rgba(0,0,0,.15) !default;
|
|
245
|
+
//** Dropdown menu `border-color` **for IE8**.
|
|
246
|
+
$dropdown-fallback-border: #ccc !default;
|
|
247
|
+
//** Divider color for between dropdown items.
|
|
248
|
+
$dropdown-divider-bg: #e5e5e5 !default;
|
|
249
|
+
|
|
250
|
+
//** Dropdown link text color.
|
|
251
|
+
$dropdown-link-color: $gray-dark !default;
|
|
252
|
+
//** Hover color for dropdown links.
|
|
253
|
+
$dropdown-link-hover-color: darken($gray-dark, 5%) !default;
|
|
254
|
+
//** Hover background for dropdown links.
|
|
255
|
+
$dropdown-link-hover-bg: #f5f5f5 !default;
|
|
256
|
+
|
|
257
|
+
//** Active dropdown menu item text color.
|
|
258
|
+
$dropdown-link-active-color: $component-active-color !default;
|
|
259
|
+
//** Active dropdown menu item background color.
|
|
260
|
+
$dropdown-link-active-bg: $component-active-bg !default;
|
|
261
|
+
|
|
262
|
+
//** Disabled dropdown menu item background color.
|
|
263
|
+
$dropdown-link-disabled-color: $gray-light !default;
|
|
264
|
+
|
|
265
|
+
//** Text color for headers within dropdown menus.
|
|
266
|
+
$dropdown-header-color: $gray-light !default;
|
|
267
|
+
|
|
268
|
+
//** Deprecated `$dropdown-caret-color` as of v3.1.0
|
|
269
|
+
$dropdown-caret-color: #000 !default;
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
//-- Z-index master list
|
|
273
|
+
//
|
|
274
|
+
// Warning: Avoid customizing these values. They're used for a bird's eye view
|
|
275
|
+
// of components dependent on the z-axis and are designed to all work together.
|
|
276
|
+
//
|
|
277
|
+
// Note: These variables are not generated into the Customizer.
|
|
278
|
+
|
|
279
|
+
$zindex-navbar: 1000 !default;
|
|
280
|
+
$zindex-dropdown: 1000 !default;
|
|
281
|
+
$zindex-popover: 1060 !default;
|
|
282
|
+
$zindex-tooltip: 1070 !default;
|
|
283
|
+
$zindex-navbar-fixed: 1030 !default;
|
|
284
|
+
$zindex-modal-background: 1040 !default;
|
|
285
|
+
$zindex-modal: 1050 !default;
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
//== Media queries breakpoints
|
|
289
|
+
//
|
|
290
|
+
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
|
|
291
|
+
|
|
292
|
+
// Extra small screen / phone
|
|
293
|
+
//** Deprecated `$screen-xs` as of v3.0.1
|
|
294
|
+
$screen-xs: 480px !default;
|
|
295
|
+
//** Deprecated `$screen-xs-min` as of v3.2.0
|
|
296
|
+
$screen-xs-min: $screen-xs !default;
|
|
297
|
+
//** Deprecated `$screen-phone` as of v3.0.1
|
|
298
|
+
$screen-phone: $screen-xs-min !default;
|
|
299
|
+
|
|
300
|
+
// Small screen / tablet
|
|
301
|
+
//** Deprecated `$screen-sm` as of v3.0.1
|
|
302
|
+
$screen-sm: 768px !default;
|
|
303
|
+
$screen-sm-min: $screen-sm !default;
|
|
304
|
+
//** Deprecated `$screen-tablet` as of v3.0.1
|
|
305
|
+
$screen-tablet: $screen-sm-min !default;
|
|
306
|
+
|
|
307
|
+
// Medium screen / desktop
|
|
308
|
+
//** Deprecated `$screen-md` as of v3.0.1
|
|
309
|
+
$screen-md: 992px !default;
|
|
310
|
+
$screen-md-min: $screen-md !default;
|
|
311
|
+
//** Deprecated `$screen-desktop` as of v3.0.1
|
|
312
|
+
$screen-desktop: $screen-md-min !default;
|
|
313
|
+
|
|
314
|
+
// Large screen / wide desktop
|
|
315
|
+
//** Deprecated `$screen-lg` as of v3.0.1
|
|
316
|
+
$screen-lg: 1200px !default;
|
|
317
|
+
$screen-lg-min: $screen-lg !default;
|
|
318
|
+
//** Deprecated `$screen-lg-desktop` as of v3.0.1
|
|
319
|
+
$screen-lg-desktop: $screen-lg-min !default;
|
|
320
|
+
|
|
321
|
+
// So media queries don't overlap when required, provide a maximum
|
|
322
|
+
$screen-xs-max: ($screen-sm-min - 1) !default;
|
|
323
|
+
$screen-sm-max: ($screen-md-min - 1) !default;
|
|
324
|
+
$screen-md-max: ($screen-lg-min - 1) !default;
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
//== Grid system
|
|
328
|
+
//
|
|
329
|
+
//## Define your custom responsive grid.
|
|
330
|
+
|
|
331
|
+
//** Number of columns in the grid.
|
|
332
|
+
$grid-columns: 12 !default;
|
|
333
|
+
//** Padding between columns. Gets divided in half for the left and right.
|
|
334
|
+
$grid-gutter-width: 30px !default;
|
|
335
|
+
// Navbar collapse
|
|
336
|
+
//** Point at which the navbar becomes uncollapsed.
|
|
337
|
+
$grid-float-breakpoint: $screen-sm-min !default;
|
|
338
|
+
//** Point at which the navbar begins collapsing.
|
|
339
|
+
$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
//== Container sizes
|
|
343
|
+
//
|
|
344
|
+
//## Define the maximum width of `.container` for different screen sizes.
|
|
345
|
+
|
|
346
|
+
// Small screen / tablet
|
|
347
|
+
$container-tablet: (720px + $grid-gutter-width) !default;
|
|
348
|
+
//** For `$screen-sm-min` and up.
|
|
349
|
+
$container-sm: $container-tablet !default;
|
|
350
|
+
|
|
351
|
+
// Medium screen / desktop
|
|
352
|
+
$container-desktop: (940px + $grid-gutter-width) !default;
|
|
353
|
+
//** For `$screen-md-min` and up.
|
|
354
|
+
$container-md: $container-desktop !default;
|
|
355
|
+
|
|
356
|
+
// Large screen / wide desktop
|
|
357
|
+
$container-large-desktop: (1140px + $grid-gutter-width) !default;
|
|
358
|
+
//** For `$screen-lg-min` and up.
|
|
359
|
+
$container-lg: $container-large-desktop !default;
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
//== Navbar
|
|
363
|
+
//
|
|
364
|
+
//##
|
|
365
|
+
|
|
366
|
+
// Basics of a navbar
|
|
367
|
+
$navbar-height: 50px !default;
|
|
368
|
+
$navbar-margin-bottom: $line-height-computed !default;
|
|
369
|
+
$navbar-border-radius: $border-radius-base !default;
|
|
370
|
+
$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default;
|
|
371
|
+
$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default;
|
|
372
|
+
$navbar-collapse-max-height: 340px !default;
|
|
373
|
+
|
|
374
|
+
$navbar-default-color: #777 !default;
|
|
375
|
+
$navbar-default-bg: #f8f8f8 !default;
|
|
376
|
+
$navbar-default-border: darken($navbar-default-bg, 6.5%) !default;
|
|
377
|
+
|
|
378
|
+
// Navbar links
|
|
379
|
+
$navbar-default-link-color: #777 !default;
|
|
380
|
+
$navbar-default-link-hover-color: #333 !default;
|
|
381
|
+
$navbar-default-link-hover-bg: transparent !default;
|
|
382
|
+
$navbar-default-link-active-color: #555 !default;
|
|
383
|
+
$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default;
|
|
384
|
+
$navbar-default-link-disabled-color: #ccc !default;
|
|
385
|
+
$navbar-default-link-disabled-bg: transparent !default;
|
|
386
|
+
|
|
387
|
+
// Navbar brand label
|
|
388
|
+
$navbar-default-brand-color: $navbar-default-link-color !default;
|
|
389
|
+
$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default;
|
|
390
|
+
$navbar-default-brand-hover-bg: transparent !default;
|
|
391
|
+
|
|
392
|
+
// Navbar toggle
|
|
393
|
+
$navbar-default-toggle-hover-bg: #ddd !default;
|
|
394
|
+
$navbar-default-toggle-icon-bar-bg: #888 !default;
|
|
395
|
+
$navbar-default-toggle-border-color: #ddd !default;
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
//=== Inverted navbar
|
|
399
|
+
// Reset inverted navbar basics
|
|
400
|
+
$navbar-inverse-color: lighten($gray-light, 15%) !default;
|
|
401
|
+
$navbar-inverse-bg: #222 !default;
|
|
402
|
+
$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default;
|
|
403
|
+
|
|
404
|
+
// Inverted navbar links
|
|
405
|
+
$navbar-inverse-link-color: lighten($gray-light, 15%) !default;
|
|
406
|
+
$navbar-inverse-link-hover-color: #fff !default;
|
|
407
|
+
$navbar-inverse-link-hover-bg: transparent !default;
|
|
408
|
+
$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default;
|
|
409
|
+
$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default;
|
|
410
|
+
$navbar-inverse-link-disabled-color: #444 !default;
|
|
411
|
+
$navbar-inverse-link-disabled-bg: transparent !default;
|
|
412
|
+
|
|
413
|
+
// Inverted navbar brand label
|
|
414
|
+
$navbar-inverse-brand-color: $navbar-inverse-link-color !default;
|
|
415
|
+
$navbar-inverse-brand-hover-color: #fff !default;
|
|
416
|
+
$navbar-inverse-brand-hover-bg: transparent !default;
|
|
417
|
+
|
|
418
|
+
// Inverted navbar toggle
|
|
419
|
+
$navbar-inverse-toggle-hover-bg: #333 !default;
|
|
420
|
+
$navbar-inverse-toggle-icon-bar-bg: #fff !default;
|
|
421
|
+
$navbar-inverse-toggle-border-color: #333 !default;
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
//== Navs
|
|
425
|
+
//
|
|
426
|
+
//##
|
|
427
|
+
|
|
428
|
+
//=== Shared nav styles
|
|
429
|
+
$nav-link-padding: 10px 15px !default;
|
|
430
|
+
$nav-link-hover-bg: $gray-lighter !default;
|
|
431
|
+
|
|
432
|
+
$nav-disabled-link-color: $gray-light !default;
|
|
433
|
+
$nav-disabled-link-hover-color: $gray-light !default;
|
|
434
|
+
|
|
435
|
+
//== Tabs
|
|
436
|
+
$nav-tabs-border-color: #ddd !default;
|
|
437
|
+
|
|
438
|
+
$nav-tabs-link-hover-border-color: $gray-lighter !default;
|
|
439
|
+
|
|
440
|
+
$nav-tabs-active-link-hover-bg: $body-bg !default;
|
|
441
|
+
$nav-tabs-active-link-hover-color: $gray !default;
|
|
442
|
+
$nav-tabs-active-link-hover-border-color: #ddd !default;
|
|
443
|
+
|
|
444
|
+
$nav-tabs-justified-link-border-color: #ddd !default;
|
|
445
|
+
$nav-tabs-justified-active-link-border-color: $body-bg !default;
|
|
446
|
+
|
|
447
|
+
//== Pills
|
|
448
|
+
$nav-pills-border-radius: $border-radius-base !default;
|
|
449
|
+
$nav-pills-active-link-hover-bg: $component-active-bg !default;
|
|
450
|
+
$nav-pills-active-link-hover-color: $component-active-color !default;
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
//== Pagination
|
|
454
|
+
//
|
|
455
|
+
//##
|
|
456
|
+
|
|
457
|
+
$pagination-color: $link-color !default;
|
|
458
|
+
$pagination-bg: #fff !default;
|
|
459
|
+
$pagination-border: #ddd !default;
|
|
460
|
+
|
|
461
|
+
$pagination-hover-color: $link-hover-color !default;
|
|
462
|
+
$pagination-hover-bg: $gray-lighter !default;
|
|
463
|
+
$pagination-hover-border: #ddd !default;
|
|
464
|
+
|
|
465
|
+
$pagination-active-color: #fff !default;
|
|
466
|
+
$pagination-active-bg: $brand-primary !default;
|
|
467
|
+
$pagination-active-border: $brand-primary !default;
|
|
468
|
+
|
|
469
|
+
$pagination-disabled-color: $gray-light !default;
|
|
470
|
+
$pagination-disabled-bg: #fff !default;
|
|
471
|
+
$pagination-disabled-border: #ddd !default;
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
//== Pager
|
|
475
|
+
//
|
|
476
|
+
//##
|
|
477
|
+
|
|
478
|
+
$pager-bg: $pagination-bg !default;
|
|
479
|
+
$pager-border: $pagination-border !default;
|
|
480
|
+
$pager-border-radius: 15px !default;
|
|
481
|
+
|
|
482
|
+
$pager-hover-bg: $pagination-hover-bg !default;
|
|
483
|
+
|
|
484
|
+
$pager-active-bg: $pagination-active-bg !default;
|
|
485
|
+
$pager-active-color: $pagination-active-color !default;
|
|
486
|
+
|
|
487
|
+
$pager-disabled-color: $pagination-disabled-color !default;
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
//== Jumbotron
|
|
491
|
+
//
|
|
492
|
+
//##
|
|
493
|
+
|
|
494
|
+
$jumbotron-padding: 30px !default;
|
|
495
|
+
$jumbotron-color: inherit !default;
|
|
496
|
+
$jumbotron-bg: $gray-lighter !default;
|
|
497
|
+
$jumbotron-heading-color: inherit !default;
|
|
498
|
+
$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default;
|
|
499
|
+
$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default;
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
//== Form states and alerts
|
|
503
|
+
//
|
|
504
|
+
//## Define colors for form feedback states and, by default, alerts.
|
|
505
|
+
|
|
506
|
+
$state-success-text: #3c763d !default;
|
|
507
|
+
$state-success-bg: #dff0d8 !default;
|
|
508
|
+
$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default;
|
|
509
|
+
|
|
510
|
+
$state-info-text: #31708f !default;
|
|
511
|
+
$state-info-bg: #d9edf7 !default;
|
|
512
|
+
$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default;
|
|
513
|
+
|
|
514
|
+
$state-warning-text: #8a6d3b !default;
|
|
515
|
+
$state-warning-bg: #fcf8e3 !default;
|
|
516
|
+
$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default;
|
|
517
|
+
|
|
518
|
+
$state-danger-text: #a94442 !default;
|
|
519
|
+
$state-danger-bg: #f2dede !default;
|
|
520
|
+
$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default;
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
//== Tooltips
|
|
524
|
+
//
|
|
525
|
+
//##
|
|
526
|
+
|
|
527
|
+
//** Tooltip max width
|
|
528
|
+
$tooltip-max-width: 200px !default;
|
|
529
|
+
//** Tooltip text color
|
|
530
|
+
$tooltip-color: #fff !default;
|
|
531
|
+
//** Tooltip background color
|
|
532
|
+
$tooltip-bg: #000 !default;
|
|
533
|
+
$tooltip-opacity: .9 !default;
|
|
534
|
+
|
|
535
|
+
//** Tooltip arrow width
|
|
536
|
+
$tooltip-arrow-width: 5px !default;
|
|
537
|
+
//** Tooltip arrow color
|
|
538
|
+
$tooltip-arrow-color: $tooltip-bg !default;
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
//== Popovers
|
|
542
|
+
//
|
|
543
|
+
//##
|
|
544
|
+
|
|
545
|
+
//** Popover body background color
|
|
546
|
+
$popover-bg: #fff !default;
|
|
547
|
+
//** Popover maximum width
|
|
548
|
+
$popover-max-width: 276px !default;
|
|
549
|
+
//** Popover border color
|
|
550
|
+
$popover-border-color: rgba(0,0,0,.2) !default;
|
|
551
|
+
//** Popover fallback border color
|
|
552
|
+
$popover-fallback-border-color: #ccc !default;
|
|
553
|
+
|
|
554
|
+
//** Popover title background color
|
|
555
|
+
$popover-title-bg: darken($popover-bg, 3%) !default;
|
|
556
|
+
|
|
557
|
+
//** Popover arrow width
|
|
558
|
+
$popover-arrow-width: 10px !default;
|
|
559
|
+
//** Popover arrow color
|
|
560
|
+
$popover-arrow-color: $popover-bg !default;
|
|
561
|
+
|
|
562
|
+
//** Popover outer arrow width
|
|
563
|
+
$popover-arrow-outer-width: ($popover-arrow-width + 1) !default;
|
|
564
|
+
//** Popover outer arrow color
|
|
565
|
+
$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default;
|
|
566
|
+
//** Popover outer arrow fallback color
|
|
567
|
+
$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default;
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
//== Labels
|
|
571
|
+
//
|
|
572
|
+
//##
|
|
573
|
+
|
|
574
|
+
//** Default label background color
|
|
575
|
+
$label-default-bg: $gray-light !default;
|
|
576
|
+
//** Primary label background color
|
|
577
|
+
$label-primary-bg: $brand-primary !default;
|
|
578
|
+
//** Success label background color
|
|
579
|
+
$label-success-bg: $brand-success !default;
|
|
580
|
+
//** Info label background color
|
|
581
|
+
$label-info-bg: $brand-info !default;
|
|
582
|
+
//** Warning label background color
|
|
583
|
+
$label-warning-bg: $brand-warning !default;
|
|
584
|
+
//** Danger label background color
|
|
585
|
+
$label-danger-bg: $brand-danger !default;
|
|
586
|
+
|
|
587
|
+
//** Default label text color
|
|
588
|
+
$label-color: #fff !default;
|
|
589
|
+
//** Default text color of a linked label
|
|
590
|
+
$label-link-hover-color: #fff !default;
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
//== Modals
|
|
594
|
+
//
|
|
595
|
+
//##
|
|
596
|
+
|
|
597
|
+
//** Padding applied to the modal body
|
|
598
|
+
$modal-inner-padding: 15px !default;
|
|
599
|
+
|
|
600
|
+
//** Padding applied to the modal title
|
|
601
|
+
$modal-title-padding: 15px !default;
|
|
602
|
+
//** Modal title line-height
|
|
603
|
+
$modal-title-line-height: $line-height-base !default;
|
|
604
|
+
|
|
605
|
+
//** Background color of modal content area
|
|
606
|
+
$modal-content-bg: #fff !default;
|
|
607
|
+
//** Modal content border color
|
|
608
|
+
$modal-content-border-color: rgba(0,0,0,.2) !default;
|
|
609
|
+
//** Modal content border color **for IE8**
|
|
610
|
+
$modal-content-fallback-border-color: #999 !default;
|
|
611
|
+
|
|
612
|
+
//** Modal backdrop background color
|
|
613
|
+
$modal-backdrop-bg: #000 !default;
|
|
614
|
+
//** Modal backdrop opacity
|
|
615
|
+
$modal-backdrop-opacity: .5 !default;
|
|
616
|
+
//** Modal header border color
|
|
617
|
+
$modal-header-border-color: #e5e5e5 !default;
|
|
618
|
+
//** Modal footer border color
|
|
619
|
+
$modal-footer-border-color: $modal-header-border-color !default;
|
|
620
|
+
|
|
621
|
+
$modal-lg: 900px !default;
|
|
622
|
+
$modal-md: 600px !default;
|
|
623
|
+
$modal-sm: 300px !default;
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
//== Alerts
|
|
627
|
+
//
|
|
628
|
+
//## Define alert colors, border radius, and padding.
|
|
629
|
+
|
|
630
|
+
$alert-padding: 15px !default;
|
|
631
|
+
$alert-border-radius: $border-radius-base !default;
|
|
632
|
+
$alert-link-font-weight: bold !default;
|
|
633
|
+
|
|
634
|
+
$alert-success-bg: $state-success-bg !default;
|
|
635
|
+
$alert-success-text: $state-success-text !default;
|
|
636
|
+
$alert-success-border: $state-success-border !default;
|
|
637
|
+
|
|
638
|
+
$alert-info-bg: $state-info-bg !default;
|
|
639
|
+
$alert-info-text: $state-info-text !default;
|
|
640
|
+
$alert-info-border: $state-info-border !default;
|
|
641
|
+
|
|
642
|
+
$alert-warning-bg: $state-warning-bg !default;
|
|
643
|
+
$alert-warning-text: $state-warning-text !default;
|
|
644
|
+
$alert-warning-border: $state-warning-border !default;
|
|
645
|
+
|
|
646
|
+
$alert-danger-bg: $state-danger-bg !default;
|
|
647
|
+
$alert-danger-text: $state-danger-text !default;
|
|
648
|
+
$alert-danger-border: $state-danger-border !default;
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
//== Progress bars
|
|
652
|
+
//
|
|
653
|
+
//##
|
|
654
|
+
|
|
655
|
+
//** Background color of the whole progress component
|
|
656
|
+
$progress-bg: #f5f5f5 !default;
|
|
657
|
+
//** Progress bar text color
|
|
658
|
+
$progress-bar-color: #fff !default;
|
|
659
|
+
//** Variable for setting rounded corners on progress bar.
|
|
660
|
+
$progress-border-radius: $border-radius-base !default;
|
|
661
|
+
|
|
662
|
+
//** Default progress bar color
|
|
663
|
+
$progress-bar-bg: $brand-primary !default;
|
|
664
|
+
//** Success progress bar color
|
|
665
|
+
$progress-bar-success-bg: $brand-success !default;
|
|
666
|
+
//** Warning progress bar color
|
|
667
|
+
$progress-bar-warning-bg: $brand-warning !default;
|
|
668
|
+
//** Danger progress bar color
|
|
669
|
+
$progress-bar-danger-bg: $brand-danger !default;
|
|
670
|
+
//** Info progress bar color
|
|
671
|
+
$progress-bar-info-bg: $brand-info !default;
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
//== List group
|
|
675
|
+
//
|
|
676
|
+
//##
|
|
677
|
+
|
|
678
|
+
//** Background color on `.list-group-item`
|
|
679
|
+
$list-group-bg: #fff !default;
|
|
680
|
+
//** `.list-group-item` border color
|
|
681
|
+
$list-group-border: #ddd !default;
|
|
682
|
+
//** List group border radius
|
|
683
|
+
$list-group-border-radius: $border-radius-base !default;
|
|
684
|
+
|
|
685
|
+
//** Background color of single list items on hover
|
|
686
|
+
$list-group-hover-bg: #f5f5f5 !default;
|
|
687
|
+
//** Text color of active list items
|
|
688
|
+
$list-group-active-color: $component-active-color !default;
|
|
689
|
+
//** Background color of active list items
|
|
690
|
+
$list-group-active-bg: $component-active-bg !default;
|
|
691
|
+
//** Border color of active list elements
|
|
692
|
+
$list-group-active-border: $list-group-active-bg !default;
|
|
693
|
+
//** Text color for content within active list items
|
|
694
|
+
$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default;
|
|
695
|
+
|
|
696
|
+
//** Text color of disabled list items
|
|
697
|
+
$list-group-disabled-color: $gray-light !default;
|
|
698
|
+
//** Background color of disabled list items
|
|
699
|
+
$list-group-disabled-bg: $gray-lighter !default;
|
|
700
|
+
//** Text color for content within disabled list items
|
|
701
|
+
$list-group-disabled-text-color: $list-group-disabled-color !default;
|
|
702
|
+
|
|
703
|
+
$list-group-link-color: #555 !default;
|
|
704
|
+
$list-group-link-hover-color: $list-group-link-color !default;
|
|
705
|
+
$list-group-link-heading-color: #333 !default;
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
//== Panels
|
|
709
|
+
//
|
|
710
|
+
//##
|
|
711
|
+
|
|
712
|
+
$panel-bg: #fff !default;
|
|
713
|
+
$panel-body-padding: 15px !default;
|
|
714
|
+
$panel-heading-padding: 10px 15px !default;
|
|
715
|
+
$panel-footer-padding: $panel-heading-padding !default;
|
|
716
|
+
$panel-border-radius: $border-radius-base !default;
|
|
717
|
+
|
|
718
|
+
//** Border color for elements within panels
|
|
719
|
+
$panel-inner-border: #ddd !default;
|
|
720
|
+
$panel-footer-bg: #f5f5f5 !default;
|
|
721
|
+
|
|
722
|
+
$panel-default-text: $gray-dark !default;
|
|
723
|
+
$panel-default-border: #ddd !default;
|
|
724
|
+
$panel-default-heading-bg: #f5f5f5 !default;
|
|
725
|
+
|
|
726
|
+
$panel-primary-text: #fff !default;
|
|
727
|
+
$panel-primary-border: $brand-primary !default;
|
|
728
|
+
$panel-primary-heading-bg: $brand-primary !default;
|
|
729
|
+
|
|
730
|
+
$panel-success-text: $state-success-text !default;
|
|
731
|
+
$panel-success-border: $state-success-border !default;
|
|
732
|
+
$panel-success-heading-bg: $state-success-bg !default;
|
|
733
|
+
|
|
734
|
+
$panel-info-text: $state-info-text !default;
|
|
735
|
+
$panel-info-border: $state-info-border !default;
|
|
736
|
+
$panel-info-heading-bg: $state-info-bg !default;
|
|
737
|
+
|
|
738
|
+
$panel-warning-text: $state-warning-text !default;
|
|
739
|
+
$panel-warning-border: $state-warning-border !default;
|
|
740
|
+
$panel-warning-heading-bg: $state-warning-bg !default;
|
|
741
|
+
|
|
742
|
+
$panel-danger-text: $state-danger-text !default;
|
|
743
|
+
$panel-danger-border: $state-danger-border !default;
|
|
744
|
+
$panel-danger-heading-bg: $state-danger-bg !default;
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
//== Thumbnails
|
|
748
|
+
//
|
|
749
|
+
//##
|
|
750
|
+
|
|
751
|
+
//** Padding around the thumbnail image
|
|
752
|
+
$thumbnail-padding: 4px !default;
|
|
753
|
+
//** Thumbnail background color
|
|
754
|
+
$thumbnail-bg: $body-bg !default;
|
|
755
|
+
//** Thumbnail border color
|
|
756
|
+
$thumbnail-border: #ddd !default;
|
|
757
|
+
//** Thumbnail border radius
|
|
758
|
+
$thumbnail-border-radius: $border-radius-base !default;
|
|
759
|
+
|
|
760
|
+
//** Custom text color for thumbnail captions
|
|
761
|
+
$thumbnail-caption-color: $text-color !default;
|
|
762
|
+
//** Padding around the thumbnail caption
|
|
763
|
+
$thumbnail-caption-padding: 9px !default;
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
//== Wells
|
|
767
|
+
//
|
|
768
|
+
//##
|
|
769
|
+
|
|
770
|
+
$well-bg: #f5f5f5 !default;
|
|
771
|
+
$well-border: darken($well-bg, 7%) !default;
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
//== Badges
|
|
775
|
+
//
|
|
776
|
+
//##
|
|
777
|
+
|
|
778
|
+
$badge-color: #fff !default;
|
|
779
|
+
//** Linked badge text color on hover
|
|
780
|
+
$badge-link-hover-color: #fff !default;
|
|
781
|
+
$badge-bg: $gray-light !default;
|
|
782
|
+
|
|
783
|
+
//** Badge text color in active nav link
|
|
784
|
+
$badge-active-color: $link-color !default;
|
|
785
|
+
//** Badge background color in active nav link
|
|
786
|
+
$badge-active-bg: #fff !default;
|
|
787
|
+
|
|
788
|
+
$badge-font-weight: bold !default;
|
|
789
|
+
$badge-line-height: 1 !default;
|
|
790
|
+
$badge-border-radius: 10px !default;
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
//== Breadcrumbs
|
|
794
|
+
//
|
|
795
|
+
//##
|
|
796
|
+
|
|
797
|
+
$breadcrumb-padding-vertical: 8px !default;
|
|
798
|
+
$breadcrumb-padding-horizontal: 15px !default;
|
|
799
|
+
//** Breadcrumb background color
|
|
800
|
+
$breadcrumb-bg: #f5f5f5 !default;
|
|
801
|
+
//** Breadcrumb text color
|
|
802
|
+
$breadcrumb-color: #ccc !default;
|
|
803
|
+
//** Text color of current page in the breadcrumb
|
|
804
|
+
$breadcrumb-active-color: $gray-light !default;
|
|
805
|
+
//** Textual separator for between breadcrumb elements
|
|
806
|
+
$breadcrumb-separator: "/" !default;
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
//== Carousel
|
|
810
|
+
//
|
|
811
|
+
//##
|
|
812
|
+
|
|
813
|
+
$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default;
|
|
814
|
+
|
|
815
|
+
$carousel-control-color: #fff !default;
|
|
816
|
+
$carousel-control-width: 15% !default;
|
|
817
|
+
$carousel-control-opacity: .5 !default;
|
|
818
|
+
$carousel-control-font-size: 20px !default;
|
|
819
|
+
|
|
820
|
+
$carousel-indicator-active-bg: #fff !default;
|
|
821
|
+
$carousel-indicator-border-color: #fff !default;
|
|
822
|
+
|
|
823
|
+
$carousel-caption-color: #fff !default;
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
//== Close
|
|
827
|
+
//
|
|
828
|
+
//##
|
|
829
|
+
|
|
830
|
+
$close-font-weight: bold !default;
|
|
831
|
+
$close-color: #000 !default;
|
|
832
|
+
$close-text-shadow: 0 1px 0 #fff !default;
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
//== Code
|
|
836
|
+
//
|
|
837
|
+
//##
|
|
838
|
+
|
|
839
|
+
$code-color: #c7254e !default;
|
|
840
|
+
$code-bg: #f9f2f4 !default;
|
|
841
|
+
|
|
842
|
+
$kbd-color: #fff !default;
|
|
843
|
+
$kbd-bg: #333 !default;
|
|
844
|
+
|
|
845
|
+
$pre-bg: #f5f5f5 !default;
|
|
846
|
+
$pre-color: $gray-dark !default;
|
|
847
|
+
$pre-border-color: #ccc !default;
|
|
848
|
+
$pre-scrollable-max-height: 340px !default;
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
//== Type
|
|
852
|
+
//
|
|
853
|
+
//##
|
|
854
|
+
|
|
855
|
+
//** Horizontal offset for forms and lists.
|
|
856
|
+
$component-offset-horizontal: 180px !default;
|
|
857
|
+
//** Text muted color
|
|
858
|
+
$text-muted: $gray-light !default;
|
|
859
|
+
//** Abbreviations and acronyms border color
|
|
860
|
+
$abbr-border-color: $gray-light !default;
|
|
861
|
+
//** Headings small color
|
|
862
|
+
$headings-small-color: $gray-light !default;
|
|
863
|
+
//** Blockquote small color
|
|
864
|
+
$blockquote-small-color: $gray-light !default;
|
|
865
|
+
//** Blockquote font size
|
|
866
|
+
$blockquote-font-size: ($font-size-base * 1.25) !default;
|
|
867
|
+
//** Blockquote border color
|
|
868
|
+
$blockquote-border-color: $gray-lighter !default;
|
|
869
|
+
//** Page header border color
|
|
870
|
+
$page-header-border-color: $gray-lighter !default;
|
|
871
|
+
//** Width of horizontal description list titles
|
|
872
|
+
$dl-horizontal-offset: $component-offset-horizontal !default;
|
|
873
|
+
//** Point at which .dl-horizontal becomes horizontal
|
|
874
|
+
$dl-horizontal-breakpoint: $grid-float-breakpoint !default;
|
|
875
|
+
//** Horizontal line color.
|
|
876
|
+
$hr-border: $gray-lighter !default;
|