, or .
8 | .list-group {
9 | // No need to set list-style: none; since .list-group-item is block level
10 | margin-bottom: 20px;
11 | padding-left: 0; // reset padding because ul and ol
12 | }
13 |
14 | // Individual list items
15 | // -------------------------
16 |
17 | .list-group-item {
18 | position: relative;
19 | display: block;
20 | padding: 10px 15px;
21 | // Place the border on the list items and negative margin up for better styling
22 | margin-bottom: -1px;
23 | background-color: $list-group-bg;
24 | border: 1px solid $list-group-border;
25 |
26 | // Round the first and last items
27 | &:first-child {
28 | @include border-top-radius($list-group-border-radius);
29 | }
30 | &:last-child {
31 | margin-bottom: 0;
32 | @include border-bottom-radius($list-group-border-radius);
33 | }
34 |
35 | // Align badges within list items
36 | > .badge {
37 | float: right;
38 | }
39 | > .badge + .badge {
40 | margin-right: 5px;
41 | }
42 |
43 | // [converter] extracted a& to a.list-group-item
44 |
45 | // Active class on item itself, not parent
46 | &.active,
47 | &.active:hover,
48 | &.active:focus {
49 | z-index: 2; // Place active items above their siblings for proper border styling
50 | color: $list-group-active-color;
51 | background-color: $list-group-active-bg;
52 | border-color: $list-group-active-border;
53 |
54 | // Force color to inherit for custom content
55 | .list-group-item-heading {
56 | color: inherit;
57 | }
58 | .list-group-item-text {
59 | color: lighten($list-group-active-bg, 40%);
60 | }
61 | }
62 | }
63 |
64 | // Linked list items
65 | a.list-group-item {
66 | color: $list-group-link-color;
67 |
68 | .list-group-item-heading {
69 | color: $list-group-link-heading-color;
70 | }
71 |
72 | // Hover state
73 | &:hover,
74 | &:focus {
75 | text-decoration: none;
76 | background-color: $list-group-hover-bg;
77 | }
78 | }
79 |
80 | // Custom content options
81 | // -------------------------
82 |
83 | .list-group-item-heading {
84 | margin-top: 0;
85 | margin-bottom: 5px;
86 | }
87 | .list-group-item-text {
88 | margin-bottom: 0;
89 | line-height: 1.3;
90 | }
91 |
--------------------------------------------------------------------------------
/config/puma.rb:
--------------------------------------------------------------------------------
1 | # Puma can serve each request in a thread from an internal thread pool.
2 | # The `threads` method setting takes two numbers: a minimum and maximum.
3 | # Any libraries that use thread pools should be configured to match
4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum
5 | # and maximum; this matches the default thread size of Active Record.
6 | #
7 | threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
8 | threads threads_count, threads_count
9 |
10 | # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
11 | #
12 | port ENV.fetch("PORT") { 3000 }
13 |
14 | # Specifies the `environment` that Puma will run in.
15 | #
16 | environment ENV.fetch("RAILS_ENV") { "development" }
17 |
18 | # Specifies the number of `workers` to boot in clustered mode.
19 | # Workers are forked webserver processes. If using threads and workers together
20 | # the concurrency of the application would be max `threads` * `workers`.
21 | # Workers do not work on JRuby or Windows (both of which do not support
22 | # processes).
23 | #
24 | # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
25 |
26 | # Use the `preload_app!` method when specifying a `workers` number.
27 | # This directive tells Puma to first boot the application and load code
28 | # before forking the application. This takes advantage of Copy On Write
29 | # process behavior so workers use less memory. If you use this option
30 | # you need to make sure to reconnect any threads in the `on_worker_boot`
31 | # block.
32 | #
33 | # preload_app!
34 |
35 | # If you are preloading your application and using Active Record, it's
36 | # recommended that you close any connections to the database before workers
37 | # are forked to prevent connection leakage.
38 | #
39 | # before_fork do
40 | # ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
41 | # end
42 |
43 | # The code in the `on_worker_boot` will be called if you are using
44 | # clustered mode by specifying a number of `workers`. After each worker
45 | # process is booted, this block will be run. If you are using the `preload_app!`
46 | # option, you will want to use this block to reconnect to any threads
47 | # or connections that may have been created at application boot, as Ruby
48 | # cannot share connections between processes.
49 | #
50 | # on_worker_boot do
51 | # ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
52 | # end
53 | #
54 |
55 | # Allow puma to be restarted by `rails restart` command.
56 | plugin :tmp_restart
57 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/application.css.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * This is a manifest file that'll be compiled into application.css, which will include all the files
3 | * listed below.
4 | *
5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6 | * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7 | *
8 | * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9 | * compiled file so the styles you add here take precedence over styles defined in any styles
10 | * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11 | * file per style scope.
12 | *
13 | *= require_tree .
14 | *= require_self
15 | */
16 |
17 | /*!
18 | * Bootstrap v3.0.0
19 | *
20 | * Copyright 2013 Twitter, Inc
21 | * Licensed under the Apache License v2.0
22 | * http://www.apache.org/licenses/LICENSE-2.0
23 | *
24 | * Designed and built with all the love in the world by @mdo and @fat.
25 | */
26 |
27 | // Core variables and mixins
28 | @import "bootstrap/variables";
29 | @import "bootstrap/mixins";
30 |
31 | // Reset
32 | @import "bootstrap/normalize";
33 | @import "bootstrap/print";
34 |
35 | // Core CSS
36 | @import "bootstrap/scaffolding";
37 | @import "bootstrap/type";
38 | @import "bootstrap/code";
39 | @import "bootstrap/grid";
40 | @import "bootstrap/tables";
41 | @import "bootstrap/forms";
42 | @import "bootstrap/buttons";
43 |
44 | // Components
45 | @import "bootstrap/component-animations";
46 | // @import "bootstrap/glyphicons";
47 | @import "bootstrap/dropdowns";
48 | @import "bootstrap/button-groups";
49 | @import "bootstrap/input-groups";
50 | @import "bootstrap/navs";
51 | @import "bootstrap/navbar";
52 | @import "bootstrap/breadcrumbs";
53 | @import "bootstrap/pagination";
54 | @import "bootstrap/pager";
55 | @import "bootstrap/labels";
56 | @import "bootstrap/badges";
57 | @import "bootstrap/jumbotron";
58 | @import "bootstrap/thumbnails";
59 | @import "bootstrap/alerts";
60 | @import "bootstrap/progress-bars";
61 | @import "bootstrap/media";
62 | @import "bootstrap/list-group";
63 | @import "bootstrap/panels";
64 | @import "bootstrap/wells";
65 | @import "bootstrap/close";
66 |
67 | // Components w/ JavaScript
68 | @import "bootstrap/modals";
69 | @import "bootstrap/tooltip";
70 | @import "bootstrap/popovers";
71 | @import "bootstrap/carousel";
72 |
73 | // Utility classes
74 | @import "bootstrap/utilities";
75 | @import "bootstrap/responsive-utilities";
76 |
77 |
78 | // Custom scss
79 | @import "feedly"
80 |
81 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_progress-bars.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Progress bars
3 | // --------------------------------------------------
4 |
5 |
6 | // Bar animations
7 | // -------------------------
8 |
9 | // Webkit
10 | @-webkit-keyframes progress-bar-stripes {
11 | from { background-position: 40px 0; }
12 | to { background-position: 0 0; }
13 | }
14 |
15 | // Firefox
16 | @-moz-keyframes progress-bar-stripes {
17 | from { background-position: 40px 0; }
18 | to { background-position: 0 0; }
19 | }
20 |
21 | // Opera
22 | @-o-keyframes progress-bar-stripes {
23 | from { background-position: 0 0; }
24 | to { background-position: 40px 0; }
25 | }
26 |
27 | // Spec and IE10+
28 | @keyframes progress-bar-stripes {
29 | from { background-position: 40px 0; }
30 | to { background-position: 0 0; }
31 | }
32 |
33 |
34 |
35 | // Bar itself
36 | // -------------------------
37 |
38 | // Outer container
39 | .progress {
40 | overflow: hidden;
41 | height: $line-height-computed;
42 | margin-bottom: $line-height-computed;
43 | background-color: $progress-bg;
44 | border-radius: $border-radius-base;
45 | @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
46 | }
47 |
48 | // Bar of progress
49 | .progress-bar {
50 | float: left;
51 | width: 0%;
52 | height: 100%;
53 | font-size: $font-size-small;
54 | color: $progress-bar-color;
55 | text-align: center;
56 | background-color: $progress-bar-bg;
57 | @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
58 | @include transition(width .6s ease);
59 | }
60 |
61 | // Striped bars
62 | .progress-striped .progress-bar {
63 | @include gradient-striped($progress-bar-bg);
64 | background-size: 40px 40px;
65 | }
66 |
67 | // Call animation for the active one
68 | .progress.active .progress-bar {
69 | -webkit-animation: progress-bar-stripes 2s linear infinite;
70 | -moz-animation: progress-bar-stripes 2s linear infinite;
71 | -ms-animation: progress-bar-stripes 2s linear infinite;
72 | -o-animation: progress-bar-stripes 2s linear infinite;
73 | animation: progress-bar-stripes 2s linear infinite;
74 | }
75 |
76 |
77 |
78 | // Variations
79 | // -------------------------
80 |
81 | .progress-bar-success {
82 | @include progress-bar-variant($progress-bar-success-bg);
83 | }
84 |
85 | .progress-bar-info {
86 | @include progress-bar-variant($progress-bar-info-bg);
87 | }
88 |
89 | .progress-bar-warning {
90 | @include progress-bar-variant($progress-bar-warning-bg);
91 | }
92 |
93 | .progress-bar-danger {
94 | @include progress-bar-variant($progress-bar-danger-bg);
95 | }
96 |
--------------------------------------------------------------------------------
/db/schema.rb:
--------------------------------------------------------------------------------
1 | # This file is auto-generated from the current state of the database. Instead
2 | # of editing this file, please use the migrations feature of Active Record to
3 | # incrementally modify your database, and then regenerate this schema definition.
4 | #
5 | # Note that this schema.rb definition is the authoritative source for your
6 | # database schema. If you need to create the application database on another
7 | # system, you should be using db:schema:load, not running all the migrations
8 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9 | # you'll amass, the slower it'll run and the greater likelihood for issues).
10 | #
11 | # It's strongly recommended that you check this file into your version control system.
12 |
13 | ActiveRecord::Schema.define(version: 20141027094212) do
14 |
15 | # These are extensions that must be enabled in order to support this database
16 | enable_extension "plpgsql"
17 |
18 | create_table "follows", id: :serial, force: :cascade do |t|
19 | t.integer "user_id"
20 | t.integer "target_id"
21 | t.datetime "created_at"
22 | t.datetime "updated_at"
23 | t.index ["target_id"], name: "index_follows_on_target_id"
24 | t.index ["user_id"], name: "index_follows_on_user_id"
25 | end
26 |
27 | create_table "items", id: :serial, force: :cascade do |t|
28 | t.string "image"
29 | t.text "message"
30 | t.integer "user_id"
31 | t.datetime "created_at"
32 | t.datetime "updated_at"
33 | t.index ["user_id"], name: "index_items_on_user_id"
34 | end
35 |
36 | create_table "pins", id: :serial, force: :cascade do |t|
37 | t.integer "user_id"
38 | t.integer "item_id"
39 | t.integer "influencer_id"
40 | t.text "message"
41 | t.datetime "created_at"
42 | t.datetime "updated_at"
43 | t.index ["influencer_id"], name: "index_pins_on_influencer_id"
44 | t.index ["item_id"], name: "index_pins_on_item_id"
45 | t.index ["user_id"], name: "index_pins_on_user_id"
46 | end
47 |
48 | create_table "users", id: :serial, force: :cascade do |t|
49 | t.string "email", default: "", null: false
50 | t.string "encrypted_password", default: "", null: false
51 | t.string "reset_password_token"
52 | t.datetime "reset_password_sent_at"
53 | t.datetime "remember_created_at"
54 | t.integer "sign_in_count", default: 0, null: false
55 | t.datetime "current_sign_in_at"
56 | t.datetime "last_sign_in_at"
57 | t.string "current_sign_in_ip"
58 | t.string "last_sign_in_ip"
59 | t.datetime "created_at"
60 | t.datetime "updated_at"
61 | t.string "name", null: false
62 | t.index ["email"], name: "index_users_on_email", unique: true
63 | t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
64 | end
65 |
66 | end
67 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_scaffolding.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Scaffolding
3 | // --------------------------------------------------
4 |
5 |
6 | // Reset the box-sizing
7 |
8 | *,
9 | *:before,
10 | *:after {
11 | @include box-sizing(border-box);
12 | }
13 |
14 |
15 | // Body reset
16 |
17 | html {
18 | font-size: 62.5%;
19 | -webkit-tap-highlight-color: rgba(0,0,0,0);
20 | }
21 |
22 | body {
23 | font-family: $font-family-base;
24 | font-size: $font-size-base;
25 | line-height: $line-height-base;
26 | color: $text-color;
27 | background-color: $body-bg;
28 | }
29 |
30 | // Reset fonts for relevant elements
31 | input,
32 | button,
33 | select,
34 | textarea {
35 | font-family: inherit;
36 | font-size: inherit;
37 | line-height: inherit;
38 | }
39 |
40 | // Reset unusual Firefox-on-Android default style.
41 | //
42 | // See https://github.com/necolas/normalize.css/issues/214
43 |
44 | button,
45 | input,
46 | select[multiple],
47 | textarea {
48 | background-image: none;
49 | }
50 |
51 |
52 | // Links
53 |
54 | a {
55 | color: $link-color;
56 | text-decoration: none;
57 |
58 | &:hover,
59 | &:focus {
60 | color: $link-hover-color;
61 | text-decoration: underline;
62 | }
63 |
64 | &:focus {
65 | @include tab-focus();
66 | }
67 | }
68 |
69 |
70 | // Images
71 |
72 | img {
73 | vertical-align: middle;
74 | }
75 |
76 | // Responsive images (ensure images don't scale beyond their parents)
77 | .img-responsive {
78 | @include img-responsive();
79 | }
80 |
81 | // Rounded corners
82 | .img-rounded {
83 | border-radius: $border-radius-large;
84 | }
85 |
86 | // Image thumbnails
87 | //
88 | // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
89 | .img-thumbnail {
90 | padding: $thumbnail-padding;
91 | line-height: $line-height-base;
92 | background-color: $thumbnail-bg;
93 | border: 1px solid $thumbnail-border;
94 | border-radius: $thumbnail-border-radius;
95 | @include transition(all .2s ease-in-out);
96 |
97 | // Keep them at most 100% wide
98 | @include img-responsive(inline-block);
99 | }
100 |
101 | // Perfect circle
102 | .img-circle {
103 | border-radius: 50%; // set radius in percents
104 | }
105 |
106 |
107 | // Horizontal rules
108 |
109 | hr {
110 | margin-top: $line-height-computed;
111 | margin-bottom: $line-height-computed;
112 | border: 0;
113 | border-top: 1px solid $hr-border;
114 | }
115 |
116 |
117 | // Only display content to screen readers
118 | //
119 | // See: http://a11yproject.com/posts/how-to-hide-content/
120 |
121 | .sr-only {
122 | position: absolute;
123 | width: 1px;
124 | height: 1px;
125 | margin: -1px;
126 | padding: 0;
127 | overflow: hidden;
128 | clip: rect(0 0 0 0);
129 | border: 0;
130 | }
131 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_tooltip.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Tooltips
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .tooltip {
8 | position: absolute;
9 | z-index: $zindex-tooltip;
10 | display: block;
11 | visibility: visible;
12 | font-size: $font-size-small;
13 | line-height: 1.4;
14 | @include opacity(0);
15 |
16 | &.in { @include opacity(.9); }
17 | &.top { margin-top: -3px; padding: 5px 0; }
18 | &.right { margin-left: 3px; padding: 0 5px; }
19 | &.bottom { margin-top: 3px; padding: 5px 0; }
20 | &.left { margin-left: -3px; padding: 0 5px; }
21 | }
22 |
23 | // Wrapper for the tooltip content
24 | .tooltip-inner {
25 | max-width: $tooltip-max-width;
26 | padding: 3px 8px;
27 | color: $tooltip-color;
28 | text-align: center;
29 | text-decoration: none;
30 | background-color: $tooltip-bg;
31 | border-radius: $border-radius-base;
32 | }
33 |
34 | // Arrows
35 | .tooltip-arrow {
36 | position: absolute;
37 | width: 0;
38 | height: 0;
39 | border-color: transparent;
40 | border-style: solid;
41 | }
42 | .tooltip {
43 | &.top .tooltip-arrow {
44 | bottom: 0;
45 | left: 50%;
46 | margin-left: -$tooltip-arrow-width;
47 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
48 | border-top-color: $tooltip-arrow-color;
49 | }
50 | &.top-left .tooltip-arrow {
51 | bottom: 0;
52 | left: 5px;
53 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
54 | border-top-color: $tooltip-arrow-color;
55 | }
56 | &.top-right .tooltip-arrow {
57 | bottom: 0;
58 | right: 5px;
59 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
60 | border-top-color: $tooltip-arrow-color;
61 | }
62 | &.right .tooltip-arrow {
63 | top: 50%;
64 | left: 0;
65 | margin-top: -$tooltip-arrow-width;
66 | border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
67 | border-right-color: $tooltip-arrow-color;
68 | }
69 | &.left .tooltip-arrow {
70 | top: 50%;
71 | right: 0;
72 | margin-top: -$tooltip-arrow-width;
73 | border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
74 | border-left-color: $tooltip-arrow-color;
75 | }
76 | &.bottom .tooltip-arrow {
77 | top: 0;
78 | left: 50%;
79 | margin-left: -$tooltip-arrow-width;
80 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
81 | border-bottom-color: $tooltip-arrow-color;
82 | }
83 | &.bottom-left .tooltip-arrow {
84 | top: 0;
85 | left: 5px;
86 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
87 | border-bottom-color: $tooltip-arrow-color;
88 | }
89 | &.bottom-right .tooltip-arrow {
90 | top: 0;
91 | right: 5px;
92 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
93 | border-bottom-color: $tooltip-arrow-color;
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/_feedly.scss:
--------------------------------------------------------------------------------
1 | // MEDIA QUERIES
2 | // --------------------------------------------------
3 | @mixin respond-to($size, $operator: 'min', $unit: 'px', $query: 'only screen', $unitToRender:'') {
4 | @if unitless($size) {
5 | $unitToRender: 'px'
6 | } @else {
7 | $unitToRender: ''
8 | }
9 | @media #{$query} and (#{$operator}-width: #{$size}#{$unitToRender}) {
10 | @content;
11 | }
12 | }
13 |
14 | @mixin column-gap($size) {
15 | -webkit-column-gap: $size#{'px'};
16 | -moz-column-gap: $size#{'px'};
17 | column-gap: $size#{'px'};
18 | }
19 |
20 | @mixin column-count($quantity) {
21 | -webkit-column-count: $quantity;
22 | -moz-column-count: $quantity;
23 | column-count: $quantity;
24 | }
25 |
26 | body {
27 | min-height: 2000px;
28 | padding-top: 50px;
29 | }
30 |
31 | #wrapper {
32 | max-width: 1100px;
33 | margin: 50px auto;
34 | padding: 0 15px;
35 | }
36 |
37 | .container-pins {
38 |
39 | @include respond-to(480) {
40 | @include column-gap(15);
41 | @include column-count(2);
42 | }
43 | @include respond-to(768) {
44 | @include column-count(3);
45 | }
46 | @include respond-to(1024) {
47 | &:not(.profile) {
48 | @include column-count(4);
49 | }
50 | }
51 | @include respond-to(1100) {
52 | &:not(.profile) {
53 | @include column-count(5);
54 | }
55 | }
56 | }
57 |
58 | .aggregation {
59 | background: #fff;
60 | padding: $grid-gutter-width;
61 | margin-bottom: $grid-gutter-width;
62 | box-shadow: 0 1px 7px 2px rgba(0,0,0,.1);
63 |
64 | & .pin {
65 | max-width: 270px;
66 | margin-right: $grid-gutter-width / 2;
67 | box-shadow: none;
68 | border: 1px solid #eee;
69 | }
70 | & .pin-image {
71 | max-width: 100%;
72 | height: auto;
73 | width: auto;
74 | }
75 |
76 | & .pin-image-holder {
77 | width: auto;
78 | max-height: 270px;
79 | }
80 | }
81 |
82 | .aggregation-header {
83 | height: 45px;
84 | line-height: 45px;
85 | margin-bottom: $grid-gutter-width / 2;
86 | text-transform: uppercase;
87 | }
88 |
89 | .aggregation-time {
90 | text-transform: none;
91 | font-size: 10px;
92 | color: #999;
93 | }
94 |
95 | .pin {
96 | display: inline-block;
97 | background: #fff;
98 | box-shadow: 0 1px 7px 2px rgba(0,0,0,.1);
99 | margin: 0 0 $grid-gutter-width / 2;
100 | -webkit-column-break-inside: avoid;
101 | -moz-column-break-inside: avoid;
102 | column-break-inside: avoid;
103 | @include transition(all .2s ease);
104 |
105 | & textarea {
106 | resize: vertical;
107 | }
108 | }
109 |
110 | .pin-image {
111 | width: 100%;
112 | }
113 |
114 | .pin-image-holder {
115 | overflow: hidden;
116 | width: 100%;
117 | box-shadow: inset 0 1px 2px rgba(0,0,0,.2);
118 | border-bottom: 1px solid rgba(0,0,0,.1);
119 | }
120 |
121 | .pin-caption {
122 | padding: $grid-gutter-width / 2 $grid-gutter-width / 2 0 $grid-gutter-width / 2;
123 | color: $gray;
124 | font-size: 12px;
125 | line-height: 17px;
126 | word-wrap: break-word;
127 | }
128 |
129 | .pin-bottom {
130 | padding: $grid-gutter-width / 2;
131 | }
132 |
133 | .pin-attribution {
134 | white-space: nowrap;
135 | overflow: hidden;
136 | -ms-text-overflow: ellipsis;
137 | -o-text-overflow: ellipsis;
138 | text-overflow: ellipsis;
139 | color: #717171;
140 | display: block;
141 | color: $gray;
142 | font-size: 10px;
143 | padding: 5px 15px;
144 | background: #f5f5f5;
145 | border-top: 1px solid #eee;
146 | text-transform: uppercase;
147 | }
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_input-groups.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Input groups
3 | // --------------------------------------------------
4 |
5 | // Base styles
6 | // -------------------------
7 | .input-group {
8 | position: relative; // For dropdowns
9 | display: table;
10 | border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11 |
12 | // Undo padding and float of grid classes
13 | &.col {
14 | float: none;
15 | padding-left: 0;
16 | padding-right: 0;
17 | }
18 |
19 | .form-control {
20 | width: 100%;
21 | margin-bottom: 0;
22 | }
23 | }
24 |
25 | // Sizing options
26 | //
27 | // Remix the default form control sizing classes into new ones for easier
28 | // manipulation.
29 |
30 | .input-group-lg > .form-control,
31 | .input-group-lg > .input-group-addon,
32 | .input-group-lg > .input-group-btn > .btn { @extend .input-lg; }
33 | .input-group-sm > .form-control,
34 | .input-group-sm > .input-group-addon,
35 | .input-group-sm > .input-group-btn > .btn { @extend .input-sm; }
36 |
37 |
38 | // Display as table-cell
39 | // -------------------------
40 | .input-group-addon,
41 | .input-group-btn,
42 | .input-group .form-control {
43 | display: table-cell;
44 |
45 | &:not(:first-child):not(:last-child) {
46 | border-radius: 0;
47 | }
48 | }
49 | // Addon and addon wrapper for buttons
50 | .input-group-addon,
51 | .input-group-btn {
52 | width: 1%;
53 | white-space: nowrap;
54 | vertical-align: middle; // Match the inputs
55 | }
56 |
57 | // Text input groups
58 | // -------------------------
59 | .input-group-addon {
60 | padding: $padding-base-vertical $padding-base-horizontal;
61 | font-size: $font-size-base;
62 | font-weight: normal;
63 | line-height: 1;
64 | text-align: center;
65 | background-color: $input-group-addon-bg;
66 | border: 1px solid $input-group-addon-border-color;
67 | border-radius: $border-radius-base;
68 |
69 | // Sizing
70 | &.input-sm {
71 | padding: $padding-small-vertical $padding-small-horizontal;
72 | font-size: $font-size-small;
73 | border-radius: $border-radius-small;
74 | }
75 | &.input-lg {
76 | padding: $padding-large-vertical $padding-large-horizontal;
77 | font-size: $font-size-large;
78 | border-radius: $border-radius-large;
79 | }
80 |
81 | // Nuke default margins from checkboxes and radios to vertically center within.
82 | input[type="radio"],
83 | input[type="checkbox"] {
84 | margin-top: 0;
85 | }
86 | }
87 |
88 | // Reset rounded corners
89 | .input-group .form-control:first-child,
90 | .input-group-addon:first-child,
91 | .input-group-btn:first-child > .btn,
92 | .input-group-btn:first-child > .dropdown-toggle,
93 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
94 | @include border-right-radius(0);
95 | }
96 | .input-group-addon:first-child {
97 | border-right: 0;
98 | }
99 | .input-group .form-control:last-child,
100 | .input-group-addon:last-child,
101 | .input-group-btn:last-child > .btn,
102 | .input-group-btn:last-child > .dropdown-toggle,
103 | .input-group-btn:first-child > .btn:not(:first-child) {
104 | @include border-left-radius(0);
105 | }
106 | .input-group-addon:last-child {
107 | border-left: 0;
108 | }
109 |
110 | // Button input groups
111 | // -------------------------
112 | .input-group-btn {
113 | position: relative;
114 | white-space: nowrap;
115 | }
116 | .input-group-btn > .btn {
117 | position: relative;
118 | // Jankily prevent input button groups from wrapping
119 | + .btn {
120 | margin-left: -4px;
121 | }
122 | // Bring the "active" button to the front
123 | &:hover,
124 | &:active {
125 | z-index: 2;
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_popovers.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Popovers
3 | // --------------------------------------------------
4 |
5 |
6 | .popover {
7 | position: absolute;
8 | top: 0;
9 | left: 0;
10 | z-index: $zindex-popover;
11 | display: none;
12 | max-width: $popover-max-width;
13 | padding: 1px;
14 | text-align: left; // Reset given new insertion method
15 | background-color: $popover-bg;
16 | background-clip: padding-box;
17 | border: 1px solid $popover-fallback-border-color;
18 | border: 1px solid $popover-border-color;
19 | border-radius: $border-radius-large;
20 | @include box-shadow(0 5px 10px rgba(0,0,0,.2));
21 |
22 | // Overrides for proper insertion
23 | white-space: normal;
24 |
25 | // Offset the popover to account for the popover arrow
26 | &.top { margin-top: -10px; }
27 | &.right { margin-left: 10px; }
28 | &.bottom { margin-top: 10px; }
29 | &.left { margin-left: -10px; }
30 | }
31 |
32 | .popover-title {
33 | margin: 0; // reset heading margin
34 | padding: 8px 14px;
35 | font-size: $font-size-base;
36 | font-weight: normal;
37 | line-height: 18px;
38 | background-color: $popover-title-bg;
39 | border-bottom: 1px solid darken($popover-title-bg, 5%);
40 | border-radius: 5px 5px 0 0;
41 | }
42 |
43 | .popover-content {
44 | padding: 9px 14px;
45 | }
46 |
47 | // Arrows
48 | //
49 | // .arrow is outer, .arrow:after is inner
50 |
51 | .popover .arrow {
52 | &,
53 | &:after {
54 | position: absolute;
55 | display: block;
56 | width: 0;
57 | height: 0;
58 | border-color: transparent;
59 | border-style: solid;
60 | }
61 | }
62 | .popover .arrow {
63 | border-width: $popover-arrow-outer-width;
64 | }
65 | .popover .arrow:after {
66 | border-width: $popover-arrow-width;
67 | content: "";
68 | }
69 |
70 | .popover {
71 | &.top .arrow {
72 | left: 50%;
73 | margin-left: -$popover-arrow-outer-width;
74 | border-bottom-width: 0;
75 | border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback
76 | border-top-color: $popover-arrow-outer-color;
77 | bottom: -$popover-arrow-outer-width;
78 | &:after {
79 | content: " ";
80 | bottom: 1px;
81 | margin-left: -$popover-arrow-width;
82 | border-bottom-width: 0;
83 | border-top-color: $popover-arrow-color;
84 | }
85 | }
86 | &.right .arrow {
87 | top: 50%;
88 | left: -$popover-arrow-outer-width;
89 | margin-top: -$popover-arrow-outer-width;
90 | border-left-width: 0;
91 | border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback
92 | border-right-color: $popover-arrow-outer-color;
93 | &:after {
94 | content: " ";
95 | left: 1px;
96 | bottom: -$popover-arrow-width;
97 | border-left-width: 0;
98 | border-right-color: $popover-arrow-color;
99 | }
100 | }
101 | &.bottom .arrow {
102 | left: 50%;
103 | margin-left: -$popover-arrow-outer-width;
104 | border-top-width: 0;
105 | border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback
106 | border-bottom-color: $popover-arrow-outer-color;
107 | top: -$popover-arrow-outer-width;
108 | &:after {
109 | content: " ";
110 | top: 1px;
111 | margin-left: -$popover-arrow-width;
112 | border-top-width: 0;
113 | border-bottom-color: $popover-arrow-color;
114 | }
115 | }
116 |
117 | &.left .arrow {
118 | top: 50%;
119 | right: -$popover-arrow-outer-width;
120 | margin-top: -$popover-arrow-outer-width;
121 | border-right-width: 0;
122 | border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback
123 | border-left-color: $popover-arrow-outer-color;
124 | &:after {
125 | content: " ";
126 | right: 1px;
127 | border-right-width: 0;
128 | border-left-color: $popover-arrow-color;
129 | bottom: -$popover-arrow-width;
130 | }
131 | }
132 |
133 | }
134 |
--------------------------------------------------------------------------------
/config/environments/production.rb:
--------------------------------------------------------------------------------
1 | Rails.application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb.
3 |
4 | # Code is not reloaded between requests.
5 | config.cache_classes = true
6 |
7 | # Eager load code on boot. This eager loads most of Rails and
8 | # your application in memory, allowing both threaded web servers
9 | # and those relying on copy on write to perform better.
10 | # Rake tasks automatically ignore this option for performance.
11 | config.eager_load = true
12 |
13 | # Full error reports are disabled and caching is turned on.
14 | config.consider_all_requests_local = false
15 | config.action_controller.perform_caching = true
16 |
17 | # Attempt to read encrypted secrets from `config/secrets.yml.enc`.
18 | # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or
19 | # `config/secrets.yml.key`.
20 | config.read_encrypted_secrets = true
21 |
22 | # Disable serving static files from the `/public` folder by default since
23 | # Apache or NGINX already handles this.
24 | config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
25 |
26 | # Compress JavaScripts and CSS.
27 | config.assets.js_compressor = :uglifier
28 | # config.assets.css_compressor = :sass
29 |
30 | # Do not fallback to assets pipeline if a precompiled asset is missed.
31 | config.assets.compile = false
32 |
33 | # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
34 |
35 | # Enable serving of images, stylesheets, and JavaScripts from an asset server.
36 | # config.action_controller.asset_host = 'http://assets.example.com'
37 |
38 | # Specifies the header that your server uses for sending files.
39 | # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
40 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
41 |
42 | # Mount Action Cable outside main process or domain
43 | # config.action_cable.mount_path = nil
44 | # config.action_cable.url = 'wss://example.com/cable'
45 | # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
46 |
47 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
48 | # config.force_ssl = true
49 |
50 | # Use the lowest log level to ensure availability of diagnostic information
51 | # when problems arise.
52 | config.log_level = :debug
53 |
54 | # Prepend all log lines with the following tags.
55 | config.log_tags = [ :request_id ]
56 |
57 | # Use a different cache store in production.
58 | # config.cache_store = :mem_cache_store
59 |
60 | # Use a real queuing backend for Active Job (and separate queues per environment)
61 | # config.active_job.queue_adapter = :resque
62 | # config.active_job.queue_name_prefix = "streamterest_#{Rails.env}"
63 | config.action_mailer.perform_caching = false
64 |
65 | # Ignore bad email addresses and do not raise email delivery errors.
66 | # Set this to true and configure the email server for immediate delivery to raise delivery errors.
67 | # config.action_mailer.raise_delivery_errors = false
68 |
69 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
70 | # the I18n.default_locale when a translation cannot be found).
71 | config.i18n.fallbacks = true
72 |
73 | # Send deprecation notices to registered listeners.
74 | config.active_support.deprecation = :notify
75 |
76 | # Use default logging formatter so that PID and timestamp are not suppressed.
77 | config.log_formatter = ::Logger::Formatter.new
78 |
79 | config.assets.unknown_asset_fallback = true
80 |
81 | # Use a different logger for distributed setups.
82 | # require 'syslog/logger'
83 | # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
84 |
85 | if ENV["RAILS_LOG_TO_STDOUT"].present?
86 | logger = ActiveSupport::Logger.new(STDOUT)
87 | logger.formatter = config.log_formatter
88 | config.logger = ActiveSupport::TaggedLogging.new(logger)
89 | end
90 |
91 | # Do not dump schema after migrations.
92 | config.active_record.dump_schema_after_migration = false
93 | end
94 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_modals.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Modals
3 | // --------------------------------------------------
4 |
5 | // .modal-open - body class for killing the scroll
6 | // .modal - container to scroll within
7 | // .modal-dialog - positioning shell for the actual modal
8 | // .modal-content - actual modal w/ bg and corners and shit
9 |
10 | // Kill the scroll on the body
11 | .modal-open {
12 | overflow: hidden;
13 |
14 |
15 | // Account for hiding of scrollbar
16 |
17 | .navbar-fixed-top,
18 | .navbar-fixed-bottom {
19 | margin-right: 15px
20 | }
21 | // [converter] extracted body& to body.modal-open
22 | }
23 |
24 | body.modal-open {
25 | margin-right: 15px
26 | }
27 |
28 | // Container that the modal scrolls within
29 | .modal {
30 | display: none;
31 | overflow: auto;
32 | overflow-y: scroll;
33 | position: fixed;
34 | top: 0;
35 | right: 0;
36 | bottom: 0;
37 | left: 0;
38 | z-index: $zindex-modal-background;
39 |
40 | // When fading in the modal, animate it to slide down
41 | &.fade .modal-dialog {
42 | @include translate(0, -25%);
43 | @include transition-transform(0.3s ease-out);
44 | }
45 | &.in .modal-dialog { @include translate(0, 0)}
46 | }
47 |
48 | // Shell div to position the modal with bottom padding
49 | .modal-dialog {
50 | margin-left: auto;
51 | margin-right: auto;
52 | width: auto;
53 | padding: 10px;
54 | z-index: ($zindex-modal-background + 10);
55 | }
56 |
57 | // Actual modal
58 | .modal-content {
59 | position: relative;
60 | background-color: $modal-content-bg;
61 | border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
62 | border: 1px solid $modal-content-border-color;
63 | border-radius: $border-radius-large;
64 | @include box-shadow(0 3px 9px rgba(0,0,0,.5));
65 | background-clip: padding-box;
66 | // Remove focus outline from opened modal
67 | outline: none;
68 | }
69 |
70 | // Modal background
71 | .modal-backdrop {
72 | position: fixed;
73 | top: 0;
74 | right: 0;
75 | bottom: 0;
76 | left: 0;
77 | z-index: ($zindex-modal-background - 10);
78 | background-color: $modal-backdrop-bg;
79 | // Fade for backdrop
80 | &.fade { @include opacity(0); }
81 | &.in { @include opacity(.5); }
82 | }
83 |
84 | // Modal header
85 | // Top section of the modal w/ title and dismiss
86 | .modal-header {
87 | padding: $modal-title-padding;
88 | border-bottom: 1px solid $modal-header-border-color;
89 | min-height: ($modal-title-padding + $modal-title-line-height);
90 | }
91 | // Close icon
92 | .modal-header .close {
93 | margin-top: -2px;
94 | }
95 |
96 | // Title text within header
97 | .modal-title {
98 | margin: 0;
99 | line-height: $modal-title-line-height;
100 | }
101 |
102 | // Modal body
103 | // Where all modal content resides (sibling of .modal-header and .modal-footer)
104 | .modal-body {
105 | position: relative;
106 | padding: $modal-inner-padding;
107 | }
108 |
109 | // Footer (for actions)
110 | .modal-footer {
111 | margin-top: 15px;
112 | padding: ($modal-inner-padding - 1) $modal-inner-padding $modal-inner-padding;
113 | text-align: right; // right align buttons
114 | border-top: 1px solid $modal-footer-border-color;
115 | @include clearfix(); // clear it in case folks use .pull-* classes on buttons
116 |
117 | // Properly space out buttons
118 | .btn + .btn {
119 | margin-left: 5px;
120 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
121 | }
122 | // but override that for button groups
123 | .btn-group .btn + .btn {
124 | margin-left: -1px;
125 | }
126 | // and override it for block buttons as well
127 | .btn-block + .btn-block {
128 | margin-left: 0;
129 | }
130 | }
131 |
132 | // Scale up the modal
133 | @media screen and (min-width: $screen-tablet) {
134 |
135 | .modal-dialog {
136 | left: 50%;
137 | right: auto;
138 | width: 600px;
139 | padding-top: 30px;
140 | padding-bottom: 30px;
141 | }
142 | .modal-content {
143 | @include box-shadow(0 5px 15px rgba(0,0,0,.5));
144 | }
145 |
146 | }
147 |
--------------------------------------------------------------------------------
/config/locales/devise.en.yml:
--------------------------------------------------------------------------------
1 | # Additional translations at https://github.com/plataformatec/devise/wiki/I18n
2 |
3 | en:
4 | devise:
5 | confirmations:
6 | confirmed: "Your email address has been successfully confirmed."
7 | send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
8 | send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
9 | failure:
10 | already_authenticated: "You are already signed in."
11 | inactive: "Your account is not activated yet."
12 | invalid: "Invalid %{authentication_keys} or password."
13 | locked: "Your account is locked."
14 | last_attempt: "You have one more attempt before your account is locked."
15 | not_found_in_database: "Invalid %{authentication_keys} or password."
16 | timeout: "Your session expired. Please sign in again to continue."
17 | unauthenticated: "You need to sign in or sign up before continuing."
18 | unconfirmed: "You have to confirm your email address before continuing."
19 | mailer:
20 | confirmation_instructions:
21 | subject: "Confirmation instructions"
22 | reset_password_instructions:
23 | subject: "Reset password instructions"
24 | unlock_instructions:
25 | subject: "Unlock instructions"
26 | omniauth_callbacks:
27 | failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
28 | success: "Successfully authenticated from %{kind} account."
29 | passwords:
30 | no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
31 | send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
32 | send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
33 | updated: "Your password has been changed successfully. You are now signed in."
34 | updated_not_active: "Your password has been changed successfully."
35 | registrations:
36 | destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
37 | signed_up: "Welcome! You have signed up successfully."
38 | signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
39 | signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
40 | signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
41 | update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address."
42 | updated: "Your account has been updated successfully."
43 | sessions:
44 | signed_in: "Signed in successfully."
45 | signed_out: "Signed out successfully."
46 | already_signed_out: "Signed out successfully."
47 | unlocks:
48 | send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
49 | send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
50 | unlocked: "Your account has been unlocked successfully. Please sign in to continue."
51 | errors:
52 | messages:
53 | already_confirmed: "was already confirmed, please try signing in"
54 | confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
55 | expired: "has expired, please request a new one"
56 | not_found: "not found"
57 | not_locked: "was not locked"
58 | not_saved:
59 | one: "1 error prohibited this %{resource} from being saved:"
60 | other: "%{count} errors prohibited this %{resource} from being saved:"
61 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_panels.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Panels
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .panel {
8 | margin-bottom: $line-height-computed;
9 | background-color: $panel-bg;
10 | border: 1px solid transparent;
11 | border-radius: $panel-border-radius;
12 | @include box-shadow(0 1px 1px rgba(0,0,0,.05));
13 | }
14 |
15 | // Panel contents
16 | .panel-body {
17 | padding: 15px;
18 | @include clearfix();
19 | }
20 |
21 |
22 | // List groups in panels
23 | //
24 | // By default, space out list group content from panel headings to account for
25 | // any kind of custom content between the two.
26 |
27 | .panel {
28 | > .list-group {
29 | margin-bottom: 0;
30 |
31 | .list-group-item {
32 | border-width: 1px 0;
33 |
34 | // Remove border radius for top one
35 | &:first-child {
36 | @include border-top-radius(0);
37 | }
38 | // But keep it for the last one
39 | &:last-child {
40 | border-bottom: 0;
41 | }
42 | }
43 | }
44 | }
45 | // Collapse space between when there's no additional content.
46 | .panel-heading + .list-group {
47 | .list-group-item:first-child {
48 | border-top-width: 0;
49 | }
50 | }
51 |
52 |
53 | // Tables in panels
54 | //
55 | // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
56 | // watch it go full width.
57 |
58 | .panel {
59 | > .table {
60 | margin-bottom: 0;
61 | }
62 | > .panel-body + .table {
63 | border-top: 1px solid $table-border-color;
64 | }
65 | }
66 |
67 |
68 | // Optional heading
69 | .panel-heading {
70 | padding: 10px 15px;
71 | border-bottom: 1px solid transparent;
72 | @include border-top-radius($panel-border-radius - 1);
73 | }
74 |
75 | // Within heading, strip any `h*` tag of it's default margins for spacing.
76 | .panel-title {
77 | margin-top: 0;
78 | margin-bottom: 0;
79 | font-size: ceil(($font-size-base * 1.125));
80 | > a {
81 | color: inherit;
82 | }
83 | }
84 |
85 | // Optional footer (stays gray in every modifier class)
86 | .panel-footer {
87 | padding: 10px 15px;
88 | background-color: $panel-footer-bg;
89 | border-top: 1px solid $panel-inner-border;
90 | @include border-bottom-radius($panel-border-radius - 1);
91 | }
92 |
93 |
94 | // Collapsable panels (aka, accordion)
95 | //
96 | // Wrap a series of panels in `.panel-group` to turn them into an accordion with
97 | // the help of our collapse JavaScript plugin.
98 |
99 | .panel-group {
100 | // Tighten up margin so it's only between panels
101 | .panel {
102 | margin-bottom: 0;
103 | border-radius: $panel-border-radius;
104 | overflow: hidden; // crop contents when collapsed
105 | + .panel {
106 | margin-top: 5px;
107 | }
108 | }
109 |
110 | .panel-heading {
111 | border-bottom: 0;
112 | + .panel-collapse .panel-body {
113 | border-top: 1px solid $panel-inner-border;
114 | }
115 | }
116 | .panel-footer {
117 | border-top: 0;
118 | + .panel-collapse .panel-body {
119 | border-bottom: 1px solid $panel-inner-border;
120 | }
121 | }
122 |
123 | // New subcomponent for wrapping collapsable content for proper animations
124 | .panel-collapse {
125 |
126 | }
127 | }
128 |
129 |
130 | // Contextual variations
131 | .panel-default {
132 | @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
133 | }
134 | .panel-primary {
135 | @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
136 | }
137 | .panel-success {
138 | @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
139 | }
140 | .panel-warning {
141 | @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
142 | }
143 | .panel-danger {
144 | @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
145 | }
146 | .panel-info {
147 | @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
148 | }
149 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_buttons.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Buttons
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // --------------------------------------------------
8 |
9 | // Core styles
10 | .btn {
11 | display: inline-block;
12 | padding: $padding-base-vertical $padding-base-horizontal;
13 | margin-bottom: 0; // For input.btn
14 | font-size: $font-size-base;
15 | font-weight: $btn-font-weight;
16 | line-height: $line-height-base;
17 | text-align: center;
18 | vertical-align: middle;
19 | cursor: pointer;
20 | border: 1px solid transparent;
21 | border-radius: $border-radius-base;
22 | white-space: nowrap;
23 | @include user-select(none);
24 |
25 | &:focus {
26 | @include tab-focus();
27 | }
28 |
29 | &:hover,
30 | &:focus {
31 | color: $btn-default-color;
32 | text-decoration: none;
33 | }
34 |
35 | &:active,
36 | &.active {
37 | outline: 0;
38 | background-image: none;
39 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
40 | }
41 |
42 | &.disabled,
43 | &[disabled],
44 | fieldset[disabled] & {
45 | cursor: not-allowed;
46 | pointer-events: none; // Future-proof disabling of clicks
47 | @include opacity(.65);
48 | @include box-shadow(none);
49 | }
50 |
51 | }
52 |
53 |
54 | // Alternate buttons
55 | // --------------------------------------------------
56 |
57 | .btn-default {
58 | @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
59 | }
60 | .btn-primary {
61 | @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
62 | }
63 | // Warning appears as orange
64 | .btn-warning {
65 | @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
66 | }
67 | // Danger and error appear as red
68 | .btn-danger {
69 | @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
70 | }
71 | // Success appears as green
72 | .btn-success {
73 | @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
74 | }
75 | // Info appears as blue-green
76 | .btn-info {
77 | @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
78 | }
79 |
80 |
81 | // Link buttons
82 | // -------------------------
83 |
84 | // Make a button look and behave like a link
85 | .btn-link {
86 | color: $link-color;
87 | font-weight: normal;
88 | cursor: pointer;
89 | border-radius: 0;
90 |
91 | &,
92 | &:active,
93 | &[disabled],
94 | fieldset[disabled] & {
95 | background-color: transparent;
96 | @include box-shadow(none);
97 | }
98 | &,
99 | &:hover,
100 | &:focus,
101 | &:active {
102 | border-color: transparent;
103 | }
104 | &:hover,
105 | &:focus {
106 | color: $link-hover-color;
107 | text-decoration: underline;
108 | background-color: transparent;
109 | }
110 | &[disabled],
111 | fieldset[disabled] & {
112 | &:hover,
113 | &:focus {
114 | color: $btn-link-disabled-color;
115 | text-decoration: none;
116 | }
117 | }
118 | }
119 |
120 |
121 | // Button Sizes
122 | // --------------------------------------------------
123 |
124 | .btn-lg {
125 | // line-height: ensure even-numbered height of button next to large input
126 | @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
127 | }
128 | .btn-sm,
129 | .btn-xs {
130 | // line-height: ensure proper height of button next to small input
131 | @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
132 | }
133 | .btn-xs {
134 | padding: 1px 5px;
135 | }
136 |
137 |
138 | // Block button
139 | // --------------------------------------------------
140 |
141 | .btn-block {
142 | display: block;
143 | width: 100%;
144 | padding-left: 0;
145 | padding-right: 0;
146 | }
147 |
148 | // Vertically space out multiple block buttons
149 | .btn-block + .btn-block {
150 | margin-top: 5px;
151 | }
152 |
153 | // Specificity overrides
154 | input[type="submit"],
155 | input[type="reset"],
156 | input[type="button"] {
157 | &.btn-block {
158 | width: 100%;
159 | }
160 | }
161 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_carousel.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Carousel
3 | // --------------------------------------------------
4 |
5 |
6 | // Wrapper for the slide container and indicators
7 | .carousel {
8 | position: relative;
9 | }
10 |
11 | .carousel-inner {
12 | position: relative;
13 | overflow: hidden;
14 | width: 100%;
15 |
16 | > .item {
17 | display: none;
18 | position: relative;
19 | @include transition(.6s ease-in-out left);
20 |
21 | // Account for jankitude on images
22 | > img,
23 | > a > img {
24 | @include img-responsive();
25 | line-height: 1;
26 | }
27 | }
28 |
29 | > .active,
30 | > .next,
31 | > .prev { display: block; }
32 |
33 | > .active {
34 | left: 0;
35 | }
36 |
37 | > .next,
38 | > .prev {
39 | position: absolute;
40 | top: 0;
41 | width: 100%;
42 | }
43 |
44 | > .next {
45 | left: 100%;
46 | }
47 | > .prev {
48 | left: -100%;
49 | }
50 | > .next.left,
51 | > .prev.right {
52 | left: 0;
53 | }
54 |
55 | > .active.left {
56 | left: -100%;
57 | }
58 | > .active.right {
59 | left: 100%;
60 | }
61 |
62 | }
63 |
64 | // Left/right controls for nav
65 | // ---------------------------
66 |
67 | .carousel-control {
68 | position: absolute;
69 | top: 0;
70 | left: 0;
71 | bottom: 0;
72 | width: $carousel-control-width;
73 | @include opacity($carousel-control-opacity);
74 | font-size: $carousel-control-font-size;
75 | color: $carousel-control-color;
76 | text-align: center;
77 | text-shadow: $carousel-text-shadow;
78 | // We can't have this transition here because webkit cancels the carousel
79 | // animation if you trip this while in the middle of another animation.
80 |
81 | // Set gradients for backgrounds
82 | &.left {
83 | @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
84 | }
85 | &.right {
86 | left: auto;
87 | right: 0;
88 | @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
89 | }
90 |
91 | // Hover/focus state
92 | &:hover,
93 | &:focus {
94 | color: $carousel-control-color;
95 | text-decoration: none;
96 | @include opacity(.9);
97 | }
98 |
99 | // Toggles
100 | .icon-prev,
101 | .icon-next,
102 | .glyphicon-chevron-left,
103 | .glyphicon-chevron-right {
104 | position: absolute;
105 | top: 50%;
106 | left: 50%;
107 | z-index: 5;
108 | display: inline-block;
109 | }
110 | .icon-prev,
111 | .icon-next {
112 | width: 20px;
113 | height: 20px;
114 | margin-top: -10px;
115 | margin-left: -10px;
116 | font-family: serif;
117 | }
118 |
119 | .icon-prev {
120 | &:before {
121 | content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
122 | }
123 | }
124 | .icon-next {
125 | &:before {
126 | content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
127 | }
128 | }
129 | }
130 |
131 | // Optional indicator pips
132 | //
133 | // Add an unordered list with the following class and add a list item for each
134 | // slide your carousel holds.
135 |
136 | .carousel-indicators {
137 | position: absolute;
138 | bottom: 10px;
139 | left: 50%;
140 | z-index: 15;
141 | width: 60%;
142 | margin-left: -30%;
143 | padding-left: 0;
144 | list-style: none;
145 | text-align: center;
146 |
147 | li {
148 | display: inline-block;
149 | width: 10px;
150 | height: 10px;
151 | margin: 1px;
152 | text-indent: -999px;
153 | border: 1px solid $carousel-indicator-border-color;
154 | border-radius: 10px;
155 | cursor: pointer;
156 | }
157 | .active {
158 | margin: 0;
159 | width: 12px;
160 | height: 12px;
161 | background-color: $carousel-indicator-active-bg;
162 | }
163 | }
164 |
165 | // Optional captions
166 | // -----------------------------
167 | // Hidden by default for smaller viewports
168 | .carousel-caption {
169 | position: absolute;
170 | left: 15%;
171 | right: 15%;
172 | bottom: 20px;
173 | z-index: 10;
174 | padding-top: 20px;
175 | padding-bottom: 20px;
176 | color: $carousel-caption-color;
177 | text-align: center;
178 | text-shadow: $carousel-text-shadow;
179 | & .btn {
180 | text-shadow: none; // No shadow for button elements in carousel-caption
181 | }
182 | }
183 |
184 |
185 | // Scale up controls for tablets and up
186 | @media screen and (min-width: $screen-tablet) {
187 |
188 | // Scale up the controls a smidge
189 | .carousel-control .icon-prev,
190 | .carousel-control .icon-next {
191 | width: 30px;
192 | height: 30px;
193 | margin-top: -15px;
194 | margin-left: -15px;
195 | font-size: 30px;
196 | }
197 |
198 | // Show and left align the captions
199 | .carousel-caption {
200 | left: 20%;
201 | right: 20%;
202 | padding-bottom: 30px;
203 | }
204 |
205 | // Move up the indicators
206 | .carousel-indicators {
207 | bottom: 20px;
208 | }
209 | }
210 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_dropdowns.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Dropdown menus
3 | // --------------------------------------------------
4 |
5 |
6 | // Dropdown arrow/caret
7 | .caret {
8 | display: inline-block;
9 | width: 0;
10 | height: 0;
11 | margin-left: 2px;
12 | vertical-align: middle;
13 | border-top: $caret-width-base solid $dropdown-caret-color;
14 | border-right: $caret-width-base solid transparent;
15 | border-left: $caret-width-base solid transparent;
16 | // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
17 | // we can just straight up remove this.
18 | border-bottom: 0 dotted;
19 | content: "";
20 | }
21 |
22 | // The dropdown wrapper (div)
23 | .dropdown {
24 | position: relative;
25 | }
26 |
27 | // Prevent the focus on the dropdown toggle when closing dropdowns
28 | .dropdown-toggle:focus {
29 | outline: 0;
30 | }
31 |
32 | // The dropdown menu (ul)
33 | .dropdown-menu {
34 | position: absolute;
35 | top: 100%;
36 | left: 0;
37 | z-index: $zindex-dropdown;
38 | display: none; // none by default, but block on "open" of the menu
39 | float: left;
40 | min-width: 160px;
41 | padding: 5px 0;
42 | margin: 2px 0 0; // override default ul
43 | list-style: none;
44 | font-size: $font-size-base;
45 | background-color: $dropdown-bg;
46 | border: 1px solid $dropdown-fallback-border; // IE8 fallback
47 | border: 1px solid $dropdown-border;
48 | border-radius: $border-radius-base;
49 | @include box-shadow(0 6px 12px rgba(0,0,0,.175));
50 | background-clip: padding-box;
51 |
52 | // Aligns the dropdown menu to right
53 | &.pull-right {
54 | right: 0;
55 | left: auto;
56 | }
57 |
58 | // Dividers (basically an hr) within the dropdown
59 | .divider {
60 | @include nav-divider($dropdown-divider-bg);
61 | }
62 |
63 | // Links within the dropdown menu
64 | > li > a {
65 | display: block;
66 | padding: 3px 20px;
67 | clear: both;
68 | font-weight: normal;
69 | line-height: $line-height-base;
70 | color: $dropdown-link-color;
71 | white-space: nowrap; // prevent links from randomly breaking onto new lines
72 | }
73 | }
74 |
75 | // Hover/Focus state
76 | .dropdown-menu > li > a {
77 | &:hover,
78 | &:focus {
79 | text-decoration: none;
80 | color: $dropdown-link-hover-color;
81 | background-color: $dropdown-link-hover-bg;
82 | }
83 | }
84 |
85 | // Active state
86 | .dropdown-menu > .active > a {
87 | &,
88 | &:hover,
89 | &:focus {
90 | color: $dropdown-link-active-color;
91 | text-decoration: none;
92 | outline: 0;
93 | background-color: $dropdown-link-active-bg;
94 | }
95 | }
96 |
97 | // Disabled state
98 | //
99 | // Gray out text and ensure the hover/focus state remains gray
100 |
101 | .dropdown-menu > .disabled > a {
102 | &,
103 | &:hover,
104 | &:focus {
105 | color: $dropdown-link-disabled-color;
106 | }
107 | }
108 | // Nuke hover/focus effects
109 | .dropdown-menu > .disabled > a {
110 | &:hover,
111 | &:focus {
112 | text-decoration: none;
113 | background-color: transparent;
114 | background-image: none; // Remove CSS gradient
115 | @include reset-filter();
116 | cursor: not-allowed;
117 | }
118 | }
119 |
120 | // Open state for the dropdown
121 | .open {
122 | // Show the menu
123 | > .dropdown-menu {
124 | display: block;
125 | }
126 |
127 | // Remove the outline when :focus is triggered
128 | > a {
129 | outline: 0;
130 | }
131 | }
132 |
133 | // Dropdown section headers
134 | .dropdown-header {
135 | display: block;
136 | padding: 3px 20px;
137 | font-size: $font-size-small;
138 | line-height: $line-height-base;
139 | color: $dropdown-header-color;
140 | }
141 |
142 | // Backdrop to catch body clicks on mobile, etc.
143 | .dropdown-backdrop {
144 | position: fixed;
145 | left: 0;
146 | right: 0;
147 | bottom: 0;
148 | top: 0;
149 | z-index: $zindex-dropdown - 10;
150 | }
151 |
152 | // Right aligned dropdowns
153 | .pull-right > .dropdown-menu {
154 | right: 0;
155 | left: auto;
156 | }
157 |
158 | // Allow for dropdowns to go bottom up (aka, dropup-menu)
159 | //
160 | // Just add .dropup after the standard .dropdown class and you're set, bro.
161 | // TODO: abstract this so that the navbar fixed styles are not placed here?
162 |
163 | .dropup,
164 | .navbar-fixed-bottom .dropdown {
165 | // Reverse the caret
166 | .caret {
167 | // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this
168 | // gets fixed, restore `border-top: 0;`.
169 | border-top: 0 dotted;
170 | border-bottom: 4px solid $dropdown-caret-color;
171 | content: "";
172 | }
173 | // Different positioning for bottom up menu
174 | .dropdown-menu {
175 | top: auto;
176 | bottom: 100%;
177 | margin-bottom: 1px;
178 | }
179 | }
180 |
181 |
182 | // Component alignment
183 | //
184 | // Reiterate per navbar.less and the modified component alignment there.
185 |
186 | @media (min-width: $grid-float-breakpoint) {
187 | .navbar-right {
188 | .dropdown-menu {
189 | right: 0;
190 | left: auto;
191 | }
192 | }
193 | }
194 |
195 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_tables.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Tables
3 | // --------------------------------------------------
4 |
5 |
6 | table {
7 | max-width: 100%;
8 | background-color: $table-bg;
9 | }
10 | th {
11 | text-align: left;
12 | }
13 |
14 |
15 | // Baseline styles
16 |
17 | .table {
18 | width: 100%;
19 | margin-bottom: $line-height-computed;
20 | // Cells
21 | thead,
22 | tbody,
23 | tfoot {
24 | > tr {
25 | > th,
26 | > td {
27 | padding: $table-cell-padding;
28 | line-height: $line-height-base;
29 | vertical-align: top;
30 | border-top: 1px solid $table-border-color;
31 | }
32 | }
33 | }
34 | // Bottom align for column headings
35 | thead > tr > th {
36 | vertical-align: bottom;
37 | border-bottom: 2px solid $table-border-color;
38 | }
39 | // Remove top border from thead by default
40 | caption + thead,
41 | colgroup + thead,
42 | thead:first-child {
43 | tr:first-child {
44 | th, td {
45 | border-top: 0;
46 | }
47 | }
48 | }
49 | // Account for multiple tbody instances
50 | tbody + tbody {
51 | border-top: 2px solid $table-border-color;
52 | }
53 |
54 | // Nesting
55 | .table {
56 | background-color: $body-bg;
57 | }
58 | }
59 |
60 |
61 | // Condensed table w/ half padding
62 |
63 | .table-condensed {
64 | thead,
65 | tbody,
66 | tfoot {
67 | > tr {
68 | > th,
69 | > td {
70 | padding: $table-condensed-cell-padding;
71 | }
72 | }
73 | }
74 | }
75 |
76 |
77 | // Bordered version
78 | //
79 | // Add borders all around the table and between all the columns.
80 |
81 | .table-bordered {
82 | border: 1px solid $table-border-color;
83 | > thead,
84 | > tbody,
85 | > tfoot {
86 | > tr {
87 | > th,
88 | > td {
89 | border: 1px solid $table-border-color;
90 | }
91 | }
92 | }
93 | > thead {
94 | > tr {
95 | > th,
96 | > td {
97 | border-bottom-width: 2px;
98 | }
99 | }
100 | }
101 | }
102 |
103 |
104 | // Zebra-striping
105 | //
106 | // Default zebra-stripe styles (alternating gray and transparent backgrounds)
107 |
108 | .table-striped {
109 | > tbody {
110 | > tr:nth-child(odd) {
111 | > td,
112 | > th {
113 | background-color: $table-bg-accent;
114 | }
115 | }
116 | }
117 | }
118 |
119 |
120 | // Hover effect
121 | //
122 | // Placed here since it has to come after the potential zebra striping
123 |
124 | .table-hover {
125 | > tbody {
126 | > tr:hover {
127 | > td,
128 | > th {
129 | background-color: $table-bg-hover;
130 | }
131 | }
132 | }
133 | }
134 |
135 |
136 | // Table cell sizing
137 | //
138 | // Reset default table behavior
139 |
140 | table col[class*="col-"] {
141 | float: none;
142 | display: table-column;
143 | }
144 | table {
145 | td,
146 | th {
147 | &[class*="col-"] {
148 | float: none;
149 | display: table-cell;
150 | }
151 | }
152 | }
153 |
154 |
155 | // Table backgrounds
156 | //
157 | // Exact selectors below required to override `.table-striped` and prevent
158 | // inheritance to nested tables.
159 |
160 | .table > thead > tr,
161 | .table > tbody > tr,
162 | .table > tfoot > tr {
163 | > td.active,
164 | > th.active,
165 | &.active > td,
166 | &.active > th {
167 | background-color: $table-bg-active;
168 | }
169 | }
170 |
171 | // Generate the contextual variants
172 | @include table-row-variant('success', $state-success-bg, $state-success-border);
173 | @include table-row-variant('danger', $state-danger-bg, $state-danger-border);
174 | @include table-row-variant('warning', $state-warning-bg, $state-warning-border);
175 |
176 |
177 | // Responsive tables
178 | //
179 | // Wrap your tables in `.table-scrollable` and we'll make them mobile friendly
180 | // by enabling horizontal scrolling. Only applies <768px. Everything above that
181 | // will display normally.
182 |
183 | @media (max-width: $screen-sm) {
184 | .table-responsive {
185 | width: 100%;
186 | margin-bottom: 15px;
187 | overflow-y: hidden;
188 | overflow-x: scroll;
189 | border: 1px solid $table-border-color;
190 |
191 | // Tighten up spacing and give a background color
192 | > .table {
193 | margin-bottom: 0;
194 | background-color: #fff;
195 |
196 | // Ensure the content doesn't wrap
197 | > thead,
198 | > tbody,
199 | > tfoot {
200 | > tr {
201 | > th,
202 | > td {
203 | white-space: nowrap;
204 | }
205 | }
206 | }
207 | }
208 |
209 | // Special overrides for the bordered tables
210 | > .table-bordered {
211 | border: 0;
212 |
213 | // Nuke the appropriate borders so that the parent can handle them
214 | > thead,
215 | > tbody,
216 | > tfoot {
217 | > tr {
218 | > th:first-child,
219 | > td:first-child {
220 | border-left: 0;
221 | }
222 | > th:last-child,
223 | > td:last-child {
224 | border-right: 0;
225 | }
226 | }
227 | > tr:last-child {
228 | > th,
229 | > td {
230 | border-bottom: 0;
231 | }
232 | }
233 | }
234 | }
235 | }
236 | }
237 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_navs.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Navs
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | // --------------------------------------------------
8 |
9 | .nav {
10 | margin-bottom: 0;
11 | padding-left: 0; // Override default ul/ol
12 | list-style: none;
13 | @include clearfix();
14 |
15 | > li {
16 | position: relative;
17 | display: block;
18 |
19 | > a {
20 | position: relative;
21 | display: block;
22 | padding: $nav-link-padding;
23 | &:hover,
24 | &:focus {
25 | text-decoration: none;
26 | background-color: $nav-link-hover-bg;
27 | }
28 | }
29 |
30 | // Disabled state sets text to gray and nukes hover/tab effects
31 | &.disabled > a {
32 | color: $nav-disabled-link-color;
33 |
34 | &:hover,
35 | &:focus {
36 | color: $nav-disabled-link-hover-color;
37 | text-decoration: none;
38 | background-color: transparent;
39 | cursor: not-allowed;
40 | }
41 | }
42 | }
43 |
44 | // Open dropdowns
45 | .open > a {
46 | &,
47 | &:hover,
48 | &:focus {
49 | background-color: $nav-link-hover-bg;
50 | border-color: $link-color;
51 | }
52 | }
53 |
54 | // Dividers (basically an hr) within the dropdown
55 | .nav-divider {
56 | @include nav-divider();
57 | }
58 |
59 | // Prevent IE8 from misplacing imgs
60 | // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
61 | > li > a > img {
62 | max-width: none;
63 | }
64 | }
65 |
66 |
67 | // Tabs
68 | // -------------------------
69 |
70 | // Give the tabs something to sit on
71 | .nav-tabs {
72 | border-bottom: 1px solid $nav-tabs-border-color;
73 | > li {
74 | float: left;
75 | // Make the list-items overlay the bottom border
76 | margin-bottom: -1px;
77 |
78 | // Actual tabs (as links)
79 | > a {
80 | margin-right: 2px;
81 | line-height: $line-height-base;
82 | border: 1px solid transparent;
83 | border-radius: $border-radius-base $border-radius-base 0 0;
84 | &:hover {
85 | border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
86 | }
87 | }
88 |
89 | // Active state, and it's :hover to override normal :hover
90 | &.active > a {
91 | &,
92 | &:hover,
93 | &:focus {
94 | color: $nav-tabs-active-link-hover-color;
95 | background-color: $nav-tabs-active-link-hover-bg;
96 | border: 1px solid $nav-tabs-active-link-hover-border-color;
97 | border-bottom-color: transparent;
98 | cursor: default;
99 | }
100 | }
101 | }
102 | // pulling this in mainly for less shorthand
103 | &.nav-justified {
104 | @extend .nav-justified;
105 | @extend .nav-tabs-justified;
106 | }
107 | }
108 |
109 |
110 | // Pills
111 | // -------------------------
112 | .nav-pills {
113 | > li {
114 | float: left;
115 |
116 | // Links rendered as pills
117 | > a {
118 | border-radius: 5px;
119 | }
120 | + li {
121 | margin-left: 2px;
122 | }
123 |
124 | // Active state
125 | &.active > a {
126 | &,
127 | &:hover,
128 | &:focus {
129 | color: $nav-pills-active-link-hover-color;
130 | background-color: $nav-pills-active-link-hover-bg;
131 | }
132 | }
133 | }
134 | }
135 |
136 |
137 | // Stacked pills
138 | .nav-stacked {
139 | > li {
140 | float: none;
141 | + li {
142 | margin-top: 2px;
143 | margin-left: 0; // no need for this gap between nav items
144 | }
145 | }
146 | }
147 |
148 |
149 | // Nav variations
150 | // --------------------------------------------------
151 |
152 | // Justified nav links
153 | // -------------------------
154 |
155 | .nav-justified {
156 | width: 100%;
157 |
158 | > li {
159 | float: none;
160 | > a {
161 | text-align: center;
162 | }
163 | }
164 |
165 | @media (min-width: $screen-sm) {
166 | > li {
167 | display: table-cell;
168 | width: 1%;
169 | }
170 | }
171 | }
172 |
173 | // Move borders to anchors instead of bottom of list
174 | .nav-tabs-justified {
175 | border-bottom: 0;
176 | > li > a {
177 | border-bottom: 1px solid $nav-tabs-justified-link-border-color;
178 |
179 | // Override margin from .nav-tabs
180 | margin-right: 0;
181 | }
182 | > .active > a {
183 | border-bottom-color: $nav-tabs-justified-active-link-border-color;
184 | }
185 | }
186 |
187 |
188 | // Tabbable tabs
189 | // -------------------------
190 |
191 | // Clear any floats
192 | .tabbable {
193 | @include clearfix();
194 | }
195 |
196 | // Show/hide tabbable areas
197 | .tab-content > .tab-pane,
198 | .pill-content > .pill-pane {
199 | display: none;
200 | }
201 | .tab-content,
202 | .pill-content {
203 | > .active {
204 | display: block;
205 | }
206 | }
207 |
208 |
209 |
210 | // Dropdowns
211 | // -------------------------
212 |
213 | // Make dropdown carets use link color in navs
214 | .nav .caret {
215 | border-top-color: $link-color;
216 | border-bottom-color: $link-color;
217 | }
218 | .nav a:hover .caret {
219 | border-top-color: $link-hover-color;
220 | border-bottom-color: $link-hover-color;
221 | }
222 |
223 | // Specific dropdowns
224 | .nav-tabs .dropdown-menu {
225 | // make dropdown border overlap tab border
226 | margin-top: -1px;
227 | // Remove the top rounded corners here since there is a hard edge above the menu
228 | @include border-top-radius(0);
229 | }
230 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | actioncable (5.2.2)
5 | actionpack (= 5.2.2)
6 | nio4r (~> 2.0)
7 | websocket-driver (>= 0.6.1)
8 | actionmailer (5.2.2)
9 | actionpack (= 5.2.2)
10 | actionview (= 5.2.2)
11 | activejob (= 5.2.2)
12 | mail (~> 2.5, >= 2.5.4)
13 | rails-dom-testing (~> 2.0)
14 | actionpack (5.2.2)
15 | actionview (= 5.2.2)
16 | activesupport (= 5.2.2)
17 | rack (~> 2.0)
18 | rack-test (>= 0.6.3)
19 | rails-dom-testing (~> 2.0)
20 | rails-html-sanitizer (~> 1.0, >= 1.0.2)
21 | actionview (5.2.2)
22 | activesupport (= 5.2.2)
23 | builder (~> 3.1)
24 | erubi (~> 1.4)
25 | rails-dom-testing (~> 2.0)
26 | rails-html-sanitizer (~> 1.0, >= 1.0.3)
27 | activejob (5.2.2)
28 | activesupport (= 5.2.2)
29 | globalid (>= 0.3.6)
30 | activemodel (5.2.2)
31 | activesupport (= 5.2.2)
32 | activerecord (5.2.2)
33 | activemodel (= 5.2.2)
34 | activesupport (= 5.2.2)
35 | arel (>= 9.0)
36 | activestorage (5.2.2)
37 | actionpack (= 5.2.2)
38 | activerecord (= 5.2.2)
39 | marcel (~> 0.3.1)
40 | activesupport (5.2.2)
41 | concurrent-ruby (~> 1.0, >= 1.0.2)
42 | i18n (>= 0.7, < 2)
43 | minitest (~> 5.1)
44 | tzinfo (~> 1.1)
45 | arel (9.0.0)
46 | autoprefixer-rails (9.5.0)
47 | execjs
48 | bcrypt (3.1.12)
49 | bootstrap-sass (3.4.1)
50 | autoprefixer-rails (>= 5.2.1)
51 | sassc (>= 2.0.0)
52 | builder (3.2.3)
53 | coffee-rails (4.2.2)
54 | coffee-script (>= 2.2.0)
55 | railties (>= 4.0.0)
56 | coffee-script (2.4.1)
57 | coffee-script-source
58 | execjs
59 | coffee-script-source (1.12.2)
60 | concurrent-ruby (1.1.5)
61 | crass (1.0.4)
62 | devise (4.6.1)
63 | bcrypt (~> 3.0)
64 | orm_adapter (~> 0.1)
65 | railties (>= 4.1.0, < 6.0)
66 | responders
67 | warden (~> 1.2.3)
68 | erubi (1.8.0)
69 | execjs (2.7.0)
70 | faraday (0.15.4)
71 | multipart-post (>= 1.2, < 3)
72 | ffi (1.10.0)
73 | globalid (0.4.2)
74 | activesupport (>= 4.2.0)
75 | i18n (1.6.0)
76 | concurrent-ruby (~> 1.0)
77 | jquery-rails (4.3.3)
78 | rails-dom-testing (>= 1, < 3)
79 | railties (>= 4.2.0)
80 | thor (>= 0.14, < 2.0)
81 | jwt (2.1.0)
82 | listen (3.1.5)
83 | rb-fsevent (~> 0.9, >= 0.9.4)
84 | rb-inotify (~> 0.9, >= 0.9.7)
85 | ruby_dep (~> 1.2)
86 | loofah (2.2.3)
87 | crass (~> 1.0.2)
88 | nokogiri (>= 1.5.9)
89 | mail (2.7.1)
90 | mini_mime (>= 0.1.1)
91 | marcel (0.3.3)
92 | mimemagic (~> 0.3.2)
93 | method_source (0.9.2)
94 | mimemagic (0.3.3)
95 | mini_mime (1.0.1)
96 | mini_portile2 (2.4.0)
97 | minitest (5.11.3)
98 | multipart-post (2.0.0)
99 | nio4r (2.3.1)
100 | nokogiri (1.10.1)
101 | mini_portile2 (~> 2.4.0)
102 | orm_adapter (0.5.0)
103 | pg (0.21.0)
104 | rack (2.0.6)
105 | rack-test (1.1.0)
106 | rack (>= 1.0, < 3)
107 | rails (5.2.2)
108 | actioncable (= 5.2.2)
109 | actionmailer (= 5.2.2)
110 | actionpack (= 5.2.2)
111 | actionview (= 5.2.2)
112 | activejob (= 5.2.2)
113 | activemodel (= 5.2.2)
114 | activerecord (= 5.2.2)
115 | activestorage (= 5.2.2)
116 | activesupport (= 5.2.2)
117 | bundler (>= 1.3.0)
118 | railties (= 5.2.2)
119 | sprockets-rails (>= 2.0.0)
120 | rails-dom-testing (2.0.3)
121 | activesupport (>= 4.2.0)
122 | nokogiri (>= 1.6)
123 | rails-html-sanitizer (1.0.4)
124 | loofah (~> 2.2, >= 2.2.2)
125 | rails_layout (1.0.42)
126 | railties (5.2.2)
127 | actionpack (= 5.2.2)
128 | activesupport (= 5.2.2)
129 | method_source
130 | rake (>= 0.8.7)
131 | thor (>= 0.19.0, < 2.0)
132 | rake (12.3.2)
133 | rb-fsevent (0.10.3)
134 | rb-inotify (0.10.0)
135 | ffi (~> 1.0)
136 | responders (2.4.1)
137 | actionpack (>= 4.2.0, < 6.0)
138 | railties (>= 4.2.0, < 6.0)
139 | ruby_dep (1.5.0)
140 | sass (3.7.3)
141 | sass-listen (~> 4.0.0)
142 | sass-listen (4.0.0)
143 | rb-fsevent (~> 0.9, >= 0.9.4)
144 | rb-inotify (~> 0.9, >= 0.9.7)
145 | sass-rails (5.0.7)
146 | railties (>= 4.0.0, < 6)
147 | sass (~> 3.1)
148 | sprockets (>= 2.8, < 4.0)
149 | sprockets-rails (>= 2.0, < 4.0)
150 | tilt (>= 1.1, < 3)
151 | sassc (2.0.1)
152 | ffi (~> 1.9)
153 | rake
154 | spring (2.0.2)
155 | activesupport (>= 4.2)
156 | spring-watcher-listen (2.0.1)
157 | listen (>= 2.7, < 4.0)
158 | spring (>= 1.2, < 3.0)
159 | sprockets (3.7.2)
160 | concurrent-ruby (~> 1.0)
161 | rack (> 1, < 3)
162 | sprockets-rails (3.2.1)
163 | actionpack (>= 4.0)
164 | activesupport (>= 4.0)
165 | sprockets (>= 3.0.0)
166 | stream-ruby (3.1.0)
167 | faraday (>= 0.10.0, < 1.0)
168 | jwt (~> 2.1, >= 2.1.0)
169 | stream_rails (2.6.6)
170 | actionpack (>= 3.0.0)
171 | activerecord (>= 3.0.0)
172 | railties (>= 3.0.0)
173 | stream-ruby (~> 3.1)
174 | thor (0.20.3)
175 | thread_safe (0.3.6)
176 | tilt (2.0.9)
177 | turbolinks (5.2.0)
178 | turbolinks-source (~> 5.2)
179 | turbolinks-source (5.2.0)
180 | tzinfo (1.2.5)
181 | thread_safe (~> 0.1)
182 | uglifier (4.1.20)
183 | execjs (>= 0.3.0, < 3)
184 | warden (1.2.8)
185 | rack (>= 2.0.6)
186 | websocket-driver (0.7.0)
187 | websocket-extensions (>= 0.1.0)
188 | websocket-extensions (0.1.3)
189 |
190 | PLATFORMS
191 | ruby
192 |
193 | DEPENDENCIES
194 | bootstrap-sass
195 | coffee-rails
196 | devise
197 | jquery-rails
198 | listen (~> 3.1.5)
199 | pg (~> 0.18)
200 | rails (= 5.2.2)
201 | rails_layout
202 | sass-rails (~> 5.0.7)
203 | spring
204 | spring-watcher-listen (~> 2.0.0)
205 | stream_rails (~> 2.6)
206 | turbolinks
207 | uglifier
208 |
209 | RUBY VERSION
210 | ruby 2.5.5p157
211 |
212 | BUNDLED WITH
213 | 2.0.2
214 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Responsive: Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // IE10 Metro responsive
7 | // Required for Windows 8 Metro split-screen snapping with IE10
8 | //
9 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
10 | @-ms-viewport{
11 | width: device-width;
12 | }
13 |
14 | // IE10 on Windows Phone 8
15 | // IE10 on WP8 doesn't report CSS pixels, but actual device pixels. In
16 | // other words, say on a Lumia, you'll get 768px as the device width,
17 | // meaning users will see the tablet styles and not phone styles.
18 | //
19 | // Alternatively you can override this with JS (see source below), but
20 | // we won't be doing that here given our limited scope.
21 | //
22 | // Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
23 | @media screen and (max-width: 400px) {
24 | @-ms-viewport{
25 | width: 320px;
26 | }
27 | }
28 |
29 | // Hide from screenreaders and browsers
30 | // Credit: HTML5 Boilerplate
31 | .hidden {
32 | display: none !important;
33 | visibility: hidden !important;
34 | }
35 |
36 | // Visibility utilities
37 |
38 | @include responsive-invisibility('.visible-xs');
39 | @media (max-width: $screen-xs-max) {
40 | @include responsive-visibility('.visible-xs');
41 | }
42 |
43 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
44 | @include responsive-visibility('.visible-xs.visible-sm');
45 | }
46 |
47 |
48 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
49 | @include responsive-visibility('.visible-xs.visible-md');
50 | }
51 |
52 |
53 | @media (min-width: $screen-lg) {
54 | @include responsive-visibility('.visible-xs.visible-lg');
55 | }
56 |
57 |
58 | @include responsive-invisibility('.visible-sm');
59 |
60 | @media (max-width: $screen-xs-max) {
61 | @include responsive-visibility('.visible-sm.visible-xs');
62 | }
63 |
64 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
65 | @include responsive-visibility('.visible-sm');
66 | }
67 |
68 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
69 | @include responsive-visibility('.visible-sm.visible-md');
70 | }
71 |
72 |
73 | @media (min-width: $screen-lg) {
74 | @include responsive-visibility('.visible-sm.visible-lg');
75 | }
76 |
77 |
78 | @include responsive-invisibility('.visible-md');
79 |
80 | @media (max-width: $screen-xs-max) {
81 | @include responsive-visibility('.visible-md.visible-xs');
82 | }
83 |
84 |
85 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
86 | @include responsive-visibility('.visible-md.visible-sm');
87 | }
88 |
89 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
90 | @include responsive-visibility('.visible-md');
91 | }
92 |
93 | @media (min-width: $screen-lg) {
94 | @include responsive-visibility('.visible-md.visible-lg');
95 | }
96 |
97 |
98 | @include responsive-invisibility('.visible-lg');
99 |
100 | @media (max-width: $screen-xs-max) {
101 | @include responsive-visibility('.visible-lg.visible-xs');
102 | }
103 |
104 |
105 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
106 | @include responsive-visibility('.visible-lg.visible-sm');
107 | }
108 |
109 |
110 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
111 | @include responsive-visibility('.visible-lg.visible-md');
112 | }
113 |
114 | @media (min-width: $screen-lg) {
115 | @include responsive-visibility('.visible-lg');
116 | }
117 |
118 | @include responsive-visibility('.hidden-xs');
119 | @media (max-width: $screen-xs-max) {
120 | @include responsive-invisibility('.hidden-xs');
121 | }
122 |
123 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
124 | @include responsive-invisibility('.hidden-xs.hidden-sm');
125 | }
126 |
127 |
128 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
129 | @include responsive-invisibility('.hidden-xs.hidden-md');
130 | }
131 |
132 |
133 | @media (min-width: $screen-lg) {
134 | @include responsive-invisibility('.hidden-xs.hidden-lg');
135 | }
136 |
137 |
138 | @include responsive-visibility('.hidden-sm');
139 |
140 | @media (max-width: $screen-xs-max) {
141 | @include responsive-invisibility('.hidden-sm.hidden-xs');
142 | }
143 |
144 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
145 | @include responsive-invisibility('.hidden-sm');
146 | }
147 |
148 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
149 | @include responsive-invisibility('.hidden-sm.hidden-md');
150 | }
151 |
152 |
153 | @media (min-width: $screen-lg) {
154 | @include responsive-invisibility('.hidden-sm.hidden-lg');
155 | }
156 |
157 |
158 | @include responsive-visibility('.hidden-md');
159 |
160 | @media (max-width: $screen-xs-max) {
161 | @include responsive-invisibility('.hidden-md.hidden-xs');
162 | }
163 |
164 |
165 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
166 | @include responsive-invisibility('.hidden-md.hidden-sm');
167 | }
168 |
169 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
170 | @include responsive-invisibility('.hidden-md');
171 | }
172 |
173 | @media (min-width: $screen-lg) {
174 | @include responsive-invisibility('.hidden-md.hidden-lg');
175 | }
176 |
177 |
178 | @include responsive-visibility('.hidden-lg');
179 |
180 | @media (max-width: $screen-xs-max) {
181 | @include responsive-invisibility('.hidden-lg.hidden-xs');
182 | }
183 |
184 |
185 | @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
186 | @include responsive-invisibility('.hidden-lg.hidden-sm');
187 | }
188 |
189 |
190 | @media (min-width: $screen-md) and (max-width: $screen-md-max) {
191 | @include responsive-invisibility('.hidden-lg.hidden-md');
192 | }
193 |
194 | @media (min-width: $screen-lg) {
195 | @include responsive-invisibility('.hidden-lg');
196 | }
197 |
198 | // Print utilities
199 |
200 | @include responsive-invisibility('.visible-print');
201 |
202 | @media print {
203 |
204 | @include responsive-visibility('.visible-print');
205 |
206 |
207 | @include responsive-invisibility('.hidden-print');
208 |
209 | }
210 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_type.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Typography
3 | // --------------------------------------------------
4 |
5 |
6 | // Body text
7 | // -------------------------
8 |
9 | p {
10 | margin: 0 0 ($line-height-computed / 2);
11 | }
12 | .lead {
13 | margin-bottom: $line-height-computed;
14 | font-size: ($font-size-base * 1.15);
15 | font-weight: 200;
16 | line-height: 1.4;
17 |
18 | @media (min-width: 768px) {
19 | font-size: ($font-size-base * 1.5);
20 | }
21 | }
22 |
23 |
24 | // Emphasis & misc
25 | // -------------------------
26 |
27 | // Ex: 14px base font * 85% = about 12px
28 | small { font-size: 85%; }
29 |
30 | // Undo browser default styling
31 | cite { font-style: normal; }
32 |
33 | // Contextual emphasis
34 | .text-muted { color: $text-muted; }
35 | .text-primary { color: $brand-primary; }
36 | .text-warning { color: $state-warning-text; }
37 | .text-danger { color: $state-danger-text; }
38 | .text-success { color: $state-success-text; }
39 | .text-info { color: $state-info-text; }
40 |
41 | // Alignment
42 | .text-left { text-align: left; }
43 | .text-right { text-align: right; }
44 | .text-center { text-align: center; }
45 |
46 |
47 | // Headings
48 | // -------------------------
49 |
50 | h1, h2, h3, h4, h5, h6,
51 | .h1, .h2, .h3, .h4, .h5, .h6 {
52 | font-family: $headings-font-family;
53 | font-weight: $headings-font-weight;
54 | line-height: $headings-line-height;
55 | small {
56 | font-weight: normal;
57 | line-height: 1;
58 | color: $headings-small-color;
59 | }
60 | }
61 |
62 | h1,
63 | h2,
64 | h3 {
65 | margin-top: $line-height-computed;
66 | margin-bottom: ($line-height-computed / 2);
67 | }
68 | h4,
69 | h5,
70 | h6 {
71 | margin-top: ($line-height-computed / 2);
72 | margin-bottom: ($line-height-computed / 2);
73 | }
74 |
75 | h1, .h1 { font-size: floor($font-size-base * 2.60); } // ~36px
76 | h2, .h2 { font-size: floor($font-size-base * 2.15); } // ~30px
77 | h3, .h3 { font-size: ceil($font-size-base * 1.70); } // ~24px
78 | h4, .h4 { font-size: ceil($font-size-base * 1.25); } // ~18px
79 | h5, .h5 { font-size: $font-size-base; }
80 | h6, .h6 { font-size: ceil($font-size-base * 0.85); } // ~12px
81 |
82 | h1 small, .h1 small { font-size: ceil($font-size-base * 1.70); } // ~24px
83 | h2 small, .h2 small { font-size: ceil($font-size-base * 1.25); } // ~18px
84 | h3 small, .h3 small,
85 | h4 small, .h4 small { font-size: $font-size-base; }
86 |
87 |
88 | // Page header
89 | // -------------------------
90 |
91 | .page-header {
92 | padding-bottom: (($line-height-computed / 2) - 1);
93 | margin: ($line-height-computed * 2) 0 $line-height-computed;
94 | border-bottom: 1px solid $page-header-border-color;
95 | }
96 |
97 |
98 |
99 | // Lists
100 | // --------------------------------------------------
101 |
102 | // Unordered and Ordered lists
103 | ul,
104 | ol {
105 | margin-top: 0;
106 | margin-bottom: ($line-height-computed / 2);
107 | ul,
108 | ol{
109 | margin-bottom: 0;
110 | }
111 | }
112 |
113 | // List options
114 |
115 | // Unstyled keeps list items block level, just removes default browser padding and list-style
116 | .list-unstyled {
117 | padding-left: 0;
118 | list-style: none;
119 | }
120 | // Inline turns list items into inline-block
121 | .list-inline {
122 | @extend .list-unstyled;
123 | > li {
124 | display: inline-block;
125 | padding-left: 5px;
126 | padding-right: 5px;
127 | }
128 | }
129 |
130 | // Description Lists
131 | dl {
132 | margin-bottom: $line-height-computed;
133 | }
134 | dt,
135 | dd {
136 | line-height: $line-height-base;
137 | }
138 | dt {
139 | font-weight: bold;
140 | }
141 | dd {
142 | margin-left: 0; // Undo browser default
143 | }
144 |
145 | // Horizontal description lists
146 | //
147 | // Defaults to being stacked without any of the below styles applied, until the
148 | // grid breakpoint is reached (default of ~768px).
149 |
150 | @media (min-width: $grid-float-breakpoint) {
151 | .dl-horizontal {
152 | dt {
153 | float: left;
154 | width: ($component-offset-horizontal - 20);
155 | clear: left;
156 | text-align: right;
157 | @include text-overflow();
158 | }
159 | dd {
160 | margin-left: $component-offset-horizontal;
161 | @include clearfix(); // Clear the floated `dt` if an empty `dd` is present
162 | }
163 | }
164 | }
165 |
166 | // MISC
167 | // ----
168 |
169 | // Abbreviations and acronyms
170 | abbr[title],
171 | // Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
172 | abbr[data-original-title] {
173 | cursor: help;
174 | border-bottom: 1px dotted $abbr-border-color;
175 | }
176 | abbr.initialism {
177 | font-size: 90%;
178 | text-transform: uppercase;
179 | }
180 |
181 | // Blockquotes
182 | blockquote {
183 | padding: ($line-height-computed / 2) $line-height-computed;
184 | margin: 0 0 $line-height-computed;
185 | border-left: 5px solid $blockquote-border-color;
186 | p {
187 | font-size: ($font-size-base * 1.25);
188 | font-weight: 300;
189 | line-height: 1.25;
190 | }
191 | p:last-child {
192 | margin-bottom: 0;
193 | }
194 | small {
195 | display: block;
196 | line-height: $line-height-base;
197 | color: $blockquote-small-color;
198 | &:before {
199 | content: '\2014 \00A0';// EM DASH, NBSP
200 | }
201 | }
202 |
203 | // Float right with text-align: right
204 | &.pull-right {
205 | padding-right: 15px;
206 | padding-left: 0;
207 | border-right: 5px solid $blockquote-border-color;
208 | border-left: 0;
209 | p,
210 | small {
211 | text-align: right;
212 | }
213 | small {
214 | &:before {
215 | content: '';
216 | }
217 | &:after {
218 | content: '\00A0 \2014';// NBSP, EM DASH
219 | }
220 | }
221 | }
222 | }
223 |
224 | // Quotes
225 | q:before,
226 | q:after,
227 | blockquote:before,
228 | blockquote:after {
229 | content: "";
230 | }
231 |
232 | // Addresses
233 | address {
234 | display: block;
235 | margin-bottom: $line-height-computed;
236 | font-style: normal;
237 | line-height: $line-height-base;
238 | }
239 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_button-groups.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Button groups
3 | // --------------------------------------------------
4 |
5 | // Button carets
6 | //
7 | // Match the button text color to the arrow/caret for indicating dropdown-ness.
8 |
9 | .caret {
10 | .btn-default & {
11 | border-top-color: $btn-default-color;
12 | }
13 | .btn-primary &,
14 | .btn-success &,
15 | .btn-warning &,
16 | .btn-danger &,
17 | .btn-info & {
18 | border-top-color: #fff;
19 | }
20 | }
21 | .dropup {
22 | & .btn-default .caret {
23 | border-bottom-color: $btn-default-color;
24 | }
25 | .btn-primary,
26 | .btn-success,
27 | .btn-warning,
28 | .btn-danger,
29 | .btn-info {
30 | .caret {
31 | border-bottom-color: #fff;
32 | }
33 | }
34 | }
35 |
36 | // Make the div behave like a button
37 | .btn-group,
38 | .btn-group-vertical {
39 | position: relative;
40 | display: inline-block;
41 | vertical-align: middle; // match .btn alignment given font-size hack above
42 | > .btn {
43 | position: relative;
44 | float: left;
45 | // Bring the "active" button to the front
46 | &:hover,
47 | &:focus,
48 | &:active,
49 | &.active {
50 | z-index: 2;
51 | }
52 | &:focus {
53 | // Remove focus outline when dropdown JS adds it after closing the menu
54 | outline: none;
55 | }
56 | }
57 | }
58 |
59 | // Prevent double borders when buttons are next to each other
60 | .btn-group {
61 | .btn + .btn,
62 | .btn + .btn-group,
63 | .btn-group + .btn,
64 | .btn-group + .btn-group {
65 | margin-left: -1px;
66 | }
67 | }
68 |
69 | // Optional: Group multiple button groups together for a toolbar
70 | .btn-toolbar {
71 | @include clearfix();
72 |
73 | .btn-group {
74 | float: left;
75 | }
76 | // Space out series of button groups
77 | > .btn,
78 | > .btn-group {
79 | + .btn,
80 | + .btn-group {
81 | margin-left: 5px;
82 | }
83 | }
84 | }
85 |
86 | .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
87 | border-radius: 0;
88 | }
89 |
90 | // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
91 | .btn-group > .btn:first-child {
92 | margin-left: 0;
93 | &:not(:last-child):not(.dropdown-toggle) {
94 | @include border-right-radius(0);
95 | }
96 | }
97 | // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
98 | .btn-group > .btn:last-child:not(:first-child),
99 | .btn-group > .dropdown-toggle:not(:first-child) {
100 | @include border-left-radius(0);
101 | }
102 |
103 | // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
104 | .btn-group > .btn-group {
105 | float: left;
106 | }
107 | .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
108 | border-radius: 0;
109 | }
110 | .btn-group > .btn-group:first-child {
111 | > .btn:last-child,
112 | > .dropdown-toggle {
113 | @include border-right-radius(0);
114 | }
115 | }
116 | .btn-group > .btn-group:last-child > .btn:first-child {
117 | @include border-left-radius(0);
118 | }
119 |
120 | // On active and open, don't show outline
121 | .btn-group .dropdown-toggle:active,
122 | .btn-group.open .dropdown-toggle {
123 | outline: 0;
124 | }
125 |
126 |
127 | // Sizing
128 | //
129 | // Remix the default button sizing classes into new ones for easier manipulation.
130 |
131 | .btn-group-xs > .btn { @extend .btn-xs; }
132 | .btn-group-sm > .btn { @extend .btn-sm; }
133 | .btn-group-lg > .btn { @extend .btn-lg; }
134 |
135 |
136 | // Split button dropdowns
137 | // ----------------------
138 |
139 | // Give the line between buttons some depth
140 | .btn-group > .btn + .dropdown-toggle {
141 | padding-left: 8px;
142 | padding-right: 8px;
143 | }
144 | .btn-group > .btn-lg + .dropdown-toggle {
145 | padding-left: 12px;
146 | padding-right: 12px;
147 | }
148 |
149 | // The clickable button for toggling the menu
150 | // Remove the gradient and set the same inset shadow as the :active state
151 | .btn-group.open .dropdown-toggle {
152 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
153 | }
154 |
155 |
156 | // Reposition the caret
157 | .btn .caret {
158 | margin-left: 0;
159 | }
160 | // Carets in other button sizes
161 | .btn-lg .caret {
162 | border-width: $caret-width-large $caret-width-large 0;
163 | border-bottom-width: 0;
164 | }
165 | // Upside down carets for .dropup
166 | .dropup .btn-lg .caret {
167 | border-width: 0 $caret-width-large $caret-width-large;
168 | }
169 |
170 |
171 | // Vertical button groups
172 | // ----------------------
173 |
174 | .btn-group-vertical {
175 | > .btn,
176 | > .btn-group {
177 | display: block;
178 | float: none;
179 | width: 100%;
180 | max-width: 100%;
181 | }
182 |
183 | // Clear floats so dropdown menus can be properly placed
184 | > .btn-group {
185 | @include clearfix();
186 | > .btn {
187 | float: none;
188 | }
189 | }
190 |
191 | > .btn + .btn,
192 | > .btn + .btn-group,
193 | > .btn-group + .btn,
194 | > .btn-group + .btn-group {
195 | margin-top: -1px;
196 | margin-left: 0;
197 | }
198 | }
199 |
200 | .btn-group-vertical > .btn {
201 | &:not(:first-child):not(:last-child) {
202 | border-radius: 0;
203 | }
204 | &:first-child:not(:last-child) {
205 | border-top-right-radius: $border-radius-base;
206 | @include border-bottom-radius(0);
207 | }
208 | &:last-child:not(:first-child) {
209 | border-bottom-left-radius: $border-radius-base;
210 | @include border-top-radius(0);
211 | }
212 | }
213 | .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
214 | border-radius: 0;
215 | }
216 | .btn-group-vertical > .btn-group:first-child {
217 | > .btn:last-child,
218 | > .dropdown-toggle {
219 | @include border-bottom-radius(0);
220 | }
221 | }
222 | .btn-group-vertical > .btn-group:last-child > .btn:first-child {
223 | @include border-top-radius(0);
224 | }
225 |
226 |
227 |
228 | // Justified button groups
229 | // ----------------------
230 |
231 | .btn-group-justified {
232 | display: table;
233 | width: 100%;
234 | table-layout: fixed;
235 | border-collapse: separate;
236 | .btn {
237 | float: none;
238 | display: table-cell;
239 | width: 1%;
240 | }
241 | }
242 |
243 |
244 | // Checkbox and radio options
245 | [data-toggle="buttons"] > .btn > input[type="radio"],
246 | [data-toggle="buttons"] > .btn > input[type="checkbox"] {
247 | display: none;
248 | }
249 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_theme.scss:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // Load core variables and mixins
4 | // --------------------------------------------------
5 |
6 | @import "bootstrap/variables";
7 | @import "bootstrap/mixins";
8 |
9 |
10 |
11 | //
12 | // Buttons
13 | // --------------------------------------------------
14 |
15 | // Common styles
16 | .btn-default,
17 | .btn-primary,
18 | .btn-success,
19 | .btn-info,
20 | .btn-warning,
21 | .btn-danger {
22 | text-shadow: 0 -1px 0 rgba(0,0,0,.2);
23 | $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
24 | @include box-shadow($shadow);
25 |
26 | // Reset the shadow
27 | &:active,
28 | &.active {
29 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
30 | }
31 | }
32 |
33 | // Mixin for generating new styles
34 | @mixin btn-styles($btn-color: #555) {
35 | @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 10%));
36 | border-color: darken($btn-color, 12%);
37 |
38 | &:active,
39 | &.active {
40 | background-color: darken($btn-color, 10%);
41 | border-color: darken($btn-color, 12%);
42 | }
43 | }
44 |
45 | // Common styles
46 | .btn {
47 | // Remove the gradient for the pressed/active state
48 | &:active,
49 | &.active {
50 | background-image: none;
51 | }
52 | }
53 |
54 | // Apply the mixin to the buttons
55 | .btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
56 | .btn-primary { @include btn-styles($btn-primary-bg); }
57 | .btn-success { @include btn-styles($btn-success-bg); }
58 | .btn-warning { @include btn-styles($btn-warning-bg); }
59 | .btn-danger { @include btn-styles($btn-danger-bg); }
60 | .btn-info { @include btn-styles($btn-info-bg); }
61 |
62 |
63 |
64 | //
65 | // Images
66 | // --------------------------------------------------
67 |
68 | .thumbnail,
69 | .img-thumbnail {
70 | @include box-shadow(0 1px 2px rgba(0,0,0,.075));
71 | }
72 |
73 |
74 |
75 | //
76 | // Dropdowns
77 | // --------------------------------------------------
78 |
79 | .dropdown-menu > li > a:hover,
80 | .dropdown-menu > li > a:focus,
81 | .dropdown-menu > .active > a,
82 | .dropdown-menu > .active > a:hover,
83 | .dropdown-menu > .active > a:focus {
84 | @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
85 | background-color: darken($dropdown-link-hover-bg, 5%);
86 | }
87 |
88 |
89 |
90 | //
91 | // Navbar
92 | // --------------------------------------------------
93 |
94 | // Basic navbar
95 | .navbar {
96 | @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
97 | border-radius: $navbar-border-radius;
98 | $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
99 | @include box-shadow($shadow);
100 |
101 | .navbar-nav > .active > a {
102 | background-color: $navbar-default-bg;
103 | }
104 | }
105 | .navbar-brand,
106 | .navbar-nav > li > a {
107 | text-shadow: 0 1px 0 rgba(255,255,255,.25);
108 | }
109 |
110 | // Inverted navbar
111 | .navbar-inverse {
112 | @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
113 |
114 | .navbar-nav > .active > a {
115 | background-color: $navbar-inverse-bg;
116 | }
117 |
118 | .navbar-brand,
119 | .navbar-nav > li > a {
120 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
121 | }
122 | }
123 |
124 | // Undo rounded corners in static and fixed navbars
125 | .navbar-static-top,
126 | .navbar-fixed-top,
127 | .navbar-fixed-bottom {
128 | border-radius: 0;
129 | }
130 |
131 |
132 |
133 | //
134 | // Alerts
135 | // --------------------------------------------------
136 |
137 | // Common styles
138 | .alert {
139 | text-shadow: 0 1px 0 rgba(255,255,255,.2);
140 | $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
141 | @include box-shadow($shadow);
142 | }
143 |
144 | // Mixin for generating new styles
145 | @mixin alert-styles($color) {
146 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
147 | border-color: darken($color, 15%);
148 | }
149 |
150 | // Apply the mixin to the alerts
151 | .alert-success { @include alert-styles($alert-success-bg); }
152 | .alert-info { @include alert-styles($alert-info-bg); }
153 | .alert-warning { @include alert-styles($alert-warning-bg); }
154 | .alert-danger { @include alert-styles($alert-danger-bg); }
155 |
156 |
157 |
158 | //
159 | // Progress bars
160 | // --------------------------------------------------
161 |
162 | // Give the progress background some depth
163 | .progress {
164 | @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
165 | }
166 |
167 | // Mixin for generating new styles
168 | @mixin progress-bar-styles($color) {
169 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
170 | }
171 |
172 | // Apply the mixin to the progress bars
173 | .progress-bar { @include progress-bar-styles($progress-bar-bg); }
174 | .progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
175 | .progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
176 | .progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
177 | .progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
178 |
179 |
180 |
181 | //
182 | // List groups
183 | // --------------------------------------------------
184 |
185 | .list-group {
186 | border-radius: $border-radius-base;
187 | @include box-shadow(0 1px 2px rgba(0,0,0,.075));
188 | }
189 | .list-group-item.active,
190 | .list-group-item.active:hover,
191 | .list-group-item.active:focus {
192 | text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
193 | @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
194 | border-color: darken($list-group-active-border, 7.5%);
195 | }
196 |
197 |
198 |
199 | //
200 | // Panels
201 | // --------------------------------------------------
202 |
203 | // Common styles
204 | .panel {
205 | @include box-shadow(0 1px 2px rgba(0,0,0,.05));
206 | }
207 |
208 | // Mixin for generating new styles
209 | @mixin panel-heading-styles($color) {
210 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
211 | }
212 |
213 | // Apply the mixin to the panel headings only
214 | .panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
215 | .panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
216 | .panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
217 | .panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
218 | .panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
219 | .panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
220 |
221 |
222 |
223 | //
224 | // Wells
225 | // --------------------------------------------------
226 |
227 | .well {
228 | @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
229 | border-color: darken($well-bg, 10%);
230 | $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
231 | @include box-shadow($shadow);
232 | }
233 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/bootstrap/_normalize.scss:
--------------------------------------------------------------------------------
1 | /*! normalize.css v2.1.0 | MIT License | git.io/normalize */
2 |
3 | // ==========================================================================
4 | // HTML5 display definitions
5 | // ==========================================================================
6 |
7 | //
8 | // Correct `block` display not defined in IE 8/9.
9 | //
10 |
11 | article,
12 | aside,
13 | details,
14 | figcaption,
15 | figure,
16 | footer,
17 | header,
18 | hgroup,
19 | main,
20 | nav,
21 | section,
22 | summary {
23 | display: block;
24 | }
25 |
26 | //
27 | // Correct `inline-block` display not defined in IE 8/9.
28 | //
29 |
30 | audio,
31 | canvas,
32 | video {
33 | display: inline-block;
34 | }
35 |
36 | //
37 | // Prevent modern browsers from displaying `audio` without controls.
38 | // Remove excess height in iOS 5 devices.
39 | //
40 |
41 | audio:not([controls]) {
42 | display: none;
43 | height: 0;
44 | }
45 |
46 | //
47 | // Address styling not present in IE 8/9.
48 | //
49 |
50 | [hidden] {
51 | display: none;
52 | }
53 |
54 | // ==========================================================================
55 | // Base
56 | // ==========================================================================
57 |
58 | //
59 | // 1. Set default font family to sans-serif.
60 | // 2. Prevent iOS text size adjust after orientation change, without disabling
61 | // user zoom.
62 | //
63 |
64 | html {
65 | font-family: sans-serif; // 1
66 | -webkit-text-size-adjust: 100%; // 2
67 | -ms-text-size-adjust: 100%; // 2
68 | }
69 |
70 | //
71 | // Remove default margin.
72 | //
73 |
74 | body {
75 | margin: 0;
76 | }
77 |
78 | // ==========================================================================
79 | // Links
80 | // ==========================================================================
81 |
82 | //
83 | // Address `outline` inconsistency between Chrome and other browsers.
84 | //
85 |
86 | a:focus {
87 | outline: thin dotted;
88 | }
89 |
90 | //
91 | // Improve readability when focused and also mouse hovered in all browsers.
92 | //
93 |
94 | a:active,
95 | a:hover {
96 | outline: 0;
97 | }
98 |
99 | // ==========================================================================
100 | // Typography
101 | // ==========================================================================
102 |
103 | //
104 | // Address variable `h1` font-size and margin within `section` and `article`
105 | // contexts in Firefox 4+, Safari 5, and Chrome.
106 | //
107 |
108 | h1 {
109 | font-size: 2em;
110 | margin: 0.67em 0;
111 | }
112 |
113 | //
114 | // Address styling not present in IE 8/9, Safari 5, and Chrome.
115 | //
116 |
117 | abbr[title] {
118 | border-bottom: 1px dotted;
119 | }
120 |
121 | //
122 | // Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
123 | //
124 |
125 | b,
126 | strong {
127 | font-weight: bold;
128 | }
129 |
130 | //
131 | // Address styling not present in Safari 5 and Chrome.
132 | //
133 |
134 | dfn {
135 | font-style: italic;
136 | }
137 |
138 | //
139 | // Address differences between Firefox and other browsers.
140 | //
141 |
142 | hr {
143 | -moz-box-sizing: content-box;
144 | box-sizing: content-box;
145 | height: 0;
146 | }
147 |
148 | //
149 | // Address styling not present in IE 8/9.
150 | //
151 |
152 | mark {
153 | background: #ff0;
154 | color: #000;
155 | }
156 |
157 | //
158 | // Correct font family set oddly in Safari 5 and Chrome.
159 | //
160 |
161 | code,
162 | kbd,
163 | pre,
164 | samp {
165 | font-family: monospace, serif;
166 | font-size: 1em;
167 | }
168 |
169 | //
170 | // Improve readability of pre-formatted text in all browsers.
171 | //
172 |
173 | pre {
174 | white-space: pre-wrap;
175 | }
176 |
177 | //
178 | // Set consistent quote types.
179 | //
180 |
181 | q {
182 | quotes: "\201C" "\201D" "\2018" "\2019";
183 | }
184 |
185 | //
186 | // Address inconsistent and variable font size in all browsers.
187 | //
188 |
189 | small {
190 | font-size: 80%;
191 | }
192 |
193 | //
194 | // Prevent `sub` and `sup` affecting `line-height` in all browsers.
195 | //
196 |
197 | sub,
198 | sup {
199 | font-size: 75%;
200 | line-height: 0;
201 | position: relative;
202 | vertical-align: baseline;
203 | }
204 |
205 | sup {
206 | top: -0.5em;
207 | }
208 |
209 | sub {
210 | bottom: -0.25em;
211 | }
212 |
213 | // ==========================================================================
214 | // Embedded content
215 | // ==========================================================================
216 |
217 | //
218 | // Remove border when inside `a` element in IE 8/9.
219 | //
220 |
221 | img {
222 | border: 0;
223 | }
224 |
225 | //
226 | // Correct overflow displayed oddly in IE 9.
227 | //
228 |
229 | svg:not(:root) {
230 | overflow: hidden;
231 | }
232 |
233 | // ==========================================================================
234 | // Figures
235 | // ==========================================================================
236 |
237 | //
238 | // Address margin not present in IE 8/9 and Safari 5.
239 | //
240 |
241 | figure {
242 | margin: 0;
243 | }
244 |
245 | // ==========================================================================
246 | // Forms
247 | // ==========================================================================
248 |
249 | //
250 | // Define consistent border, margin, and padding.
251 | //
252 |
253 | fieldset {
254 | border: 1px solid #c0c0c0;
255 | margin: 0 2px;
256 | padding: 0.35em 0.625em 0.75em;
257 | }
258 |
259 | //
260 | // 1. Correct `color` not being inherited in IE 8/9.
261 | // 2. Remove padding so people aren't caught out if they zero out fieldsets.
262 | //
263 |
264 | legend {
265 | border: 0; // 1
266 | padding: 0; // 2
267 | }
268 |
269 | //
270 | // 1. Correct font family not being inherited in all browsers.
271 | // 2. Correct font size not being inherited in all browsers.
272 | // 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
273 | //
274 |
275 | button,
276 | input,
277 | select,
278 | textarea {
279 | font-family: inherit; // 1
280 | font-size: 100%; // 2
281 | margin: 0; // 3
282 | }
283 |
284 | //
285 | // Address Firefox 4+ setting `line-height` on `input` using `!important` in
286 | // the UA stylesheet.
287 | //
288 |
289 | button,
290 | input {
291 | line-height: normal;
292 | }
293 |
294 | //
295 | // Address inconsistent `text-transform` inheritance for `button` and `select`.
296 | // All other form control elements do not inherit `text-transform` values.
297 | // Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
298 | // Correct `select` style inheritance in Firefox 4+ and Opera.
299 | //
300 |
301 | button,
302 | select {
303 | text-transform: none;
304 | }
305 |
306 | //
307 | // 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
308 | // and `video` controls.
309 | // 2. Correct inability to style clickable `input` types in iOS.
310 | // 3. Improve usability and consistency of cursor style between image-type
311 | // `input` and others.
312 | //
313 |
314 | button,
315 | html input[type="button"], // 1
316 | input[type="reset"],
317 | input[type="submit"] {
318 | -webkit-appearance: button; // 2
319 | cursor: pointer; // 3
320 | }
321 |
322 | //
323 | // Re-set default cursor for disabled elements.
324 | //
325 |
326 | button[disabled],
327 | html input[disabled] {
328 | cursor: default;
329 | }
330 |
331 | //
332 | // 1. Address box sizing set to `content-box` in IE 8/9.
333 | // 2. Remove excess padding in IE 8/9.
334 | //
335 |
336 | input[type="checkbox"],
337 | input[type="radio"] {
338 | box-sizing: border-box; // 1
339 | padding: 0; // 2
340 | }
341 |
342 | //
343 | // 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
344 | // 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
345 | // (include `-moz` to future-proof).
346 | //
347 |
348 | input[type="search"] {
349 | -webkit-appearance: textfield; // 1
350 | -moz-box-sizing: content-box;
351 | -webkit-box-sizing: content-box; // 2
352 | box-sizing: content-box;
353 | }
354 |
355 | //
356 | // Remove inner padding and search cancel button in Safari 5 and Chrome
357 | // on OS X.
358 | //
359 |
360 | input[type="search"]::-webkit-search-cancel-button,
361 | input[type="search"]::-webkit-search-decoration {
362 | -webkit-appearance: none;
363 | }
364 |
365 | //
366 | // Remove inner padding and border in Firefox 4+.
367 | //
368 |
369 | button::-moz-focus-inner,
370 | input::-moz-focus-inner {
371 | border: 0;
372 | padding: 0;
373 | }
374 |
375 | //
376 | // 1. Remove default vertical scrollbar in IE 8/9.
377 | // 2. Improve readability and alignment in all browsers.
378 | //
379 |
380 | textarea {
381 | overflow: auto; // 1
382 | vertical-align: top; // 2
383 | }
384 |
385 | // ==========================================================================
386 | // Tables
387 | // ==========================================================================
388 |
389 | //
390 | // Remove most spacing between table cells.
391 | //
392 |
393 | table {
394 | border-collapse: collapse;
395 | border-spacing: 0;
396 | }
397 |
--------------------------------------------------------------------------------