.
9 |
10 | .list-group {
11 | // No need to set list-style: none; since .list-group-item is block level
12 | margin-bottom: 20px;
13 | padding-left: 0; // reset padding because ul and ol
14 | }
15 |
16 |
17 | // Individual list items
18 | //
19 | // Use on `li`s or `div`s within the `.list-group` parent.
20 |
21 | .list-group-item {
22 | position: relative;
23 | display: block;
24 | padding: 10px 15px;
25 | // Place the border on the list items and negative margin up for better styling
26 | margin-bottom: -1px;
27 | background-color: $list-group-bg;
28 | border: 1px solid $list-group-border;
29 |
30 | // Round the first and last items
31 | &:first-child {
32 | @include border-top-radius($list-group-border-radius);
33 | }
34 | &:last-child {
35 | margin-bottom: 0;
36 | @include border-bottom-radius($list-group-border-radius);
37 | }
38 |
39 | // Align badges within list items
40 | > .badge {
41 | float: right;
42 | }
43 | > .badge + .badge {
44 | margin-right: 5px;
45 | }
46 | }
47 |
48 |
49 | // Linked list items
50 | //
51 | // Use anchor elements instead of `li`s or `div`s to create linked list items.
52 | // Includes an extra `.active` modifier class for showing selected items.
53 |
54 | a.list-group-item {
55 | color: $list-group-link-color;
56 |
57 | .list-group-item-heading {
58 | color: $list-group-link-heading-color;
59 | }
60 |
61 | // Hover state
62 | &:hover,
63 | &:focus {
64 | text-decoration: none;
65 | color: $list-group-link-hover-color;
66 | background-color: $list-group-hover-bg;
67 | }
68 | }
69 |
70 | .list-group-item {
71 | // Disabled state
72 | &.disabled,
73 | &.disabled:hover,
74 | &.disabled:focus {
75 | background-color: $list-group-disabled-bg;
76 | color: $list-group-disabled-color;
77 |
78 | // Force color to inherit for custom content
79 | .list-group-item-heading {
80 | color: inherit;
81 | }
82 | .list-group-item-text {
83 | color: $list-group-disabled-text-color;
84 | }
85 | }
86 |
87 | // Active class on item itself, not parent
88 | &.active,
89 | &.active:hover,
90 | &.active:focus {
91 | z-index: 2; // Place active items above their siblings for proper border styling
92 | color: $list-group-active-color;
93 | background-color: $list-group-active-bg;
94 | border-color: $list-group-active-border;
95 |
96 | // Force color to inherit for custom content
97 | .list-group-item-heading,
98 | .list-group-item-heading > small,
99 | .list-group-item-heading > .small {
100 | color: inherit;
101 | }
102 | .list-group-item-text {
103 | color: $list-group-active-text-color;
104 | }
105 | }
106 | }
107 |
108 |
109 | // Contextual variants
110 | //
111 | // Add modifier classes to change text and background color on individual items.
112 | // Organizationally, this must come after the `:hover` states.
113 |
114 | @include list-group-item-variant(success, $state-success-bg, $state-success-text);
115 | @include list-group-item-variant(info, $state-info-bg, $state-info-text);
116 | @include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
117 | @include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
118 |
119 |
120 | // Custom content options
121 | //
122 | // Extra classes for creating well-formatted content within `.list-group-item`s.
123 |
124 | .list-group-item-heading {
125 | margin-top: 0;
126 | margin-bottom: 5px;
127 | }
128 | .list-group-item-text {
129 | margin-bottom: 0;
130 | line-height: 1.3;
131 | }
132 |
--------------------------------------------------------------------------------
/_posts/2014-07-05-announcing-first-official-version.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "First Official Release"
4 | date: 2014-07-31 14:18:05
5 | permalink: /blog/first-official-release
6 | author: Thomas Davis
7 | ---
8 |
9 | It has been just over three weeks since JSON resume first went public, and we are proud to announce the first official version of the specification. After much consideration we decided to launch the first version as **0.0.0**, which assumes everything up until this point was conceptual and thus no backwards compatibility has been built out.
10 |
11 | Unfortunately this means that if you created a resume before this release, most parts of the ecosystem will not work for you. Though there weren't too many changes so visit the [specification page](/specification) and update your `resume.json` accordingly.
12 |
13 | Make sure you reinstall the latest version of the CLI tool by typing `sudo npm install -g resume-cli` into terminal. Once installed, you can also take advantage of the `resume test` command to test if your `resume.json` is compatiable with version **0.0.0**.
14 |
15 | For a full list of changes, view the [README](https://github.com/jsonresume/resume-schema#change-log) for the resume schema [repo](https://github.com/jsonresume/resume-schema).
16 |
17 | Just because this is an official release of the specification, it doesn't guarantee that the ecosystem is stable. We actually had to wait for this official release before we could lock down parts of the ecosystem.
18 |
19 | ### How are we doing?
20 |
21 | When JSON resume first went public, it was actually unexpected and the project wasn't quite as mature as we would have liked it to have been. In the days following the leak, the homepage received over 50,000 visitors and **a lot** of people reached out offering support. We worked overtime to get people hacking away at different areas of the project.
22 |
23 | Some accomplishments so far
24 |
25 | * Over 1400 stars on the [resume CLI](https://github.com/jsonresume/resume-cli)
26 | * 97 issues created for the specification, [52 closed](https://github.com/jsonresume/resume-schema/issues?q=is%3Aissue+is%3Aclosed)
27 | * Built a [modular theme system](https://github.com/jsonresume/theme-manager) leveraging NPM for version management
28 | * Active [theme development](http://node-modules.com/search?q=jsonresume-theme-*) underway
29 | * Progress made on [LinkedIn export](http://jmperezperez.com/linkedin-to-json-resume/)
30 | * Build your `resume.json` with a GUI, coming in the next few days([screenshot](http://i.imgur.com/RYqIdUp.png))
31 | * Organized a [standards committee](/team)
32 | * Multiple HR related services are looking at supporting and potentially sponsoring the JSON resume project
33 | * Officially listed JSON schema on [schemastore.org](http://schemastore.org/)
34 |
35 | An obligitory thank you to everybody who has participated up to this point. And a very special thanks to [Mattias Erming](https://github.com/erming) who has put a lot of hard work into developing and brain storming the future of JSON resume.
36 |
37 | ### Where are we heading?
38 |
39 | After long discussions about the specification in the Github issues, we have come to settle on a few points.
40 |
41 | * JSON resume exist to empower individuals to manage their job seeking profiles and this is our highest priority.
42 | * Because there is no easily accessible alternative, we are going to maintain a casual approach to the project.
43 | * The specification is not to be the perfect description of a person but instead a description of a resume where only things relevant in the context of hiring will be allowed in.
44 |
45 | To guarantee the **success** of JSON resume, we will be aiming to integrate as an import/export option where ever possible. We want a thriving theme ecosystem and as many tools as possible.
46 |
47 | Please leave your feedback and ideas below! Also, please join the movement!
48 |
49 | By
{{page.author}}
50 | and
Roland Sharp
51 |
--------------------------------------------------------------------------------
/css/_sass/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: -$popover-arrow-width; }
27 | &.right { margin-left: $popover-arrow-width; }
28 | &.bottom { margin-top: $popover-arrow-width; }
29 | &.left { margin-left: -$popover-arrow-width; }
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: ($border-radius-large - 1) ($border-radius-large - 1) 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 |
--------------------------------------------------------------------------------
/css/_sass/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 | // Container that the modal scrolls within
16 | .modal {
17 | display: none;
18 | overflow: hidden;
19 | position: fixed;
20 | top: 0;
21 | right: 0;
22 | bottom: 0;
23 | left: 0;
24 | z-index: $zindex-modal;
25 | -webkit-overflow-scrolling: touch;
26 |
27 | // Prevent Chrome on Windows from adding a focus outline. For details, see
28 | // https://github.com/twbs/bootstrap/pull/10951.
29 | outline: 0;
30 |
31 | // When fading in the modal, animate it to slide down
32 | &.fade .modal-dialog {
33 | @include translate3d(0, -25%, 0);
34 | @include transition-transform(0.3s ease-out);
35 | }
36 | &.in .modal-dialog { @include translate3d(0, 0, 0) }
37 | }
38 | .modal-open .modal {
39 | overflow-x: hidden;
40 | overflow-y: auto;
41 | }
42 |
43 | // Shell div to position the modal with bottom padding
44 | .modal-dialog {
45 | position: relative;
46 | width: auto;
47 | margin: 10px;
48 | }
49 |
50 | // Actual modal
51 | .modal-content {
52 | position: relative;
53 | background-color: $modal-content-bg;
54 | border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
55 | border: 1px solid $modal-content-border-color;
56 | border-radius: $border-radius-large;
57 | @include box-shadow(0 3px 9px rgba(0,0,0,.5));
58 | background-clip: padding-box;
59 | // Remove focus outline from opened modal
60 | outline: 0;
61 | }
62 |
63 | // Modal background
64 | .modal-backdrop {
65 | position: fixed;
66 | top: 0;
67 | right: 0;
68 | bottom: 0;
69 | left: 0;
70 | z-index: $zindex-modal-background;
71 | background-color: $modal-backdrop-bg;
72 | // Fade for backdrop
73 | &.fade { @include opacity(0); }
74 | &.in { @include opacity($modal-backdrop-opacity); }
75 | }
76 |
77 | // Modal header
78 | // Top section of the modal w/ title and dismiss
79 | .modal-header {
80 | padding: $modal-title-padding;
81 | border-bottom: 1px solid $modal-header-border-color;
82 | min-height: ($modal-title-padding + $modal-title-line-height);
83 | }
84 | // Close icon
85 | .modal-header .close {
86 | margin-top: -2px;
87 | }
88 |
89 | // Title text within header
90 | .modal-title {
91 | margin: 0;
92 | line-height: $modal-title-line-height;
93 | }
94 |
95 | // Modal body
96 | // Where all modal content resides (sibling of .modal-header and .modal-footer)
97 | .modal-body {
98 | position: relative;
99 | padding: $modal-inner-padding;
100 | }
101 |
102 | // Footer (for actions)
103 | .modal-footer {
104 | padding: $modal-inner-padding;
105 | text-align: right; // right align buttons
106 | border-top: 1px solid $modal-footer-border-color;
107 | @include clearfix(); // clear it in case folks use .pull-* classes on buttons
108 |
109 | // Properly space out buttons
110 | .btn + .btn {
111 | margin-left: 5px;
112 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
113 | }
114 | // but override that for button groups
115 | .btn-group .btn + .btn {
116 | margin-left: -1px;
117 | }
118 | // and override it for block buttons as well
119 | .btn-block + .btn-block {
120 | margin-left: 0;
121 | }
122 | }
123 |
124 | // Measure scrollbar width for padding body during modal show/hide
125 | .modal-scrollbar-measure {
126 | position: absolute;
127 | top: -9999px;
128 | width: 50px;
129 | height: 50px;
130 | overflow: scroll;
131 | }
132 |
133 | // Scale up the modal
134 | @media (min-width: $screen-sm-min) {
135 | // Automatically set modal's width for larger viewports
136 | .modal-dialog {
137 | width: $modal-md;
138 | margin: 30px auto;
139 | }
140 | .modal-content {
141 | @include box-shadow(0 5px 15px rgba(0,0,0,.5));
142 | }
143 |
144 | // Modal sizes
145 | .modal-sm { width: $modal-sm; }
146 | }
147 |
148 | @media (min-width: $screen-md-min) {
149 | .modal-lg { width: $modal-lg; }
150 | }
151 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_buttons.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Buttons
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // --------------------------------------------------
8 |
9 | .btn {
10 | display: inline-block;
11 | margin-bottom: 0; // For input.btn
12 | font-weight: $btn-font-weight;
13 | text-align: center;
14 | vertical-align: middle;
15 | cursor: pointer;
16 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
17 | border: 1px solid transparent;
18 | white-space: nowrap;
19 | @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
20 | @include user-select(none);
21 |
22 | &,
23 | &:active,
24 | &.active {
25 | &:focus {
26 | @include tab-focus();
27 | }
28 | }
29 |
30 | &:hover,
31 | &:focus {
32 | color: $btn-default-color;
33 | text-decoration: none;
34 | }
35 |
36 | &:active,
37 | &.active {
38 | outline: 0;
39 | background-image: none;
40 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
41 | }
42 |
43 | &.disabled,
44 | &[disabled],
45 | fieldset[disabled] & {
46 | cursor: not-allowed;
47 | pointer-events: none; // Future-proof disabling of clicks
48 | @include opacity(.65);
49 | @include box-shadow(none);
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 | // Success appears as green
64 | .btn-success {
65 | @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
66 | }
67 | // Info appears as blue-green
68 | .btn-info {
69 | @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
70 | }
71 | // Warning appears as orange
72 | .btn-warning {
73 | @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
74 | }
75 | // Danger and error appear as red
76 | .btn-danger {
77 | @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-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 | // line-height: ensure proper height of button next to small input
130 | @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
131 | }
132 | .btn-xs {
133 | @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
134 | }
135 |
136 |
137 | // Block button
138 | // --------------------------------------------------
139 |
140 | .btn-block {
141 | display: block;
142 | width: 100%;
143 | }
144 |
145 | // Vertically space out multiple block buttons
146 | .btn-block + .btn-block {
147 | margin-top: 5px;
148 | }
149 |
150 | // Specificity overrides
151 | input[type="submit"],
152 | input[type="reset"],
153 | input[type="button"] {
154 | &.btn-block {
155 | width: 100%;
156 | }
157 | }
158 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/mixins/_gradients.scss:
--------------------------------------------------------------------------------
1 | // Gradients
2 |
3 |
4 |
5 | // Horizontal gradient, from left to right
6 | //
7 | // Creates two color stops, start and end, by specifying a color and position for each color stop.
8 | // Color stops are not available in IE9 and below.
9 | @mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
10 | background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
11 | background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
12 | background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
13 | background-repeat: repeat-x;
14 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
15 | }
16 |
17 | // Vertical gradient, from top to bottom
18 | //
19 | // Creates two color stops, start and end, by specifying a color and position for each color stop.
20 | // Color stops are not available in IE9 and below.
21 | @mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
22 | background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
23 | background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
24 | background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
25 | background-repeat: repeat-x;
26 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
27 | }
28 |
29 | @mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
30 | background-repeat: repeat-x;
31 | background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
32 | background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
33 | background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
34 | }
35 | @mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
36 | background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
37 | background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
38 | background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
39 | background-repeat: no-repeat;
40 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
41 | }
42 | @mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
43 | background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
44 | background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
45 | background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
46 | background-repeat: no-repeat;
47 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
48 | }
49 | @mixin gradient-radial($inner-color: #555, $outer-color: #333) {
50 | background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
51 | background-image: radial-gradient(circle, $inner-color, $outer-color);
52 | background-repeat: no-repeat;
53 | }
54 | @mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
55 | background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
56 | background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
57 | background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
58 | }
59 |
--------------------------------------------------------------------------------
/css/_sass/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 | &[class*="col-"] {
14 | float: none;
15 | padding-left: 0;
16 | padding-right: 0;
17 | }
18 |
19 | .form-control {
20 | // Ensure that the input is always above the *appended* addon button for
21 | // proper border colors.
22 | position: relative;
23 | z-index: 2;
24 |
25 | // IE9 fubars the placeholder attribute in text inputs and the arrows on
26 | // select elements in input groups. To fix it, we float the input. Details:
27 | // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
28 | float: left;
29 |
30 | width: 100%;
31 | margin-bottom: 0;
32 | }
33 | }
34 |
35 | // Sizing options
36 | //
37 | // Remix the default form control sizing classes into new ones for easier
38 | // manipulation.
39 |
40 | .input-group-lg > .form-control,
41 | .input-group-lg > .input-group-addon,
42 | .input-group-lg > .input-group-btn > .btn {
43 | @extend .input-lg;
44 | }
45 | .input-group-sm > .form-control,
46 | .input-group-sm > .input-group-addon,
47 | .input-group-sm > .input-group-btn > .btn {
48 | @extend .input-sm;
49 | }
50 |
51 |
52 | // Display as table-cell
53 | // -------------------------
54 | .input-group-addon,
55 | .input-group-btn,
56 | .input-group .form-control {
57 | display: table-cell;
58 |
59 | &:not(:first-child):not(:last-child) {
60 | border-radius: 0;
61 | }
62 | }
63 | // Addon and addon wrapper for buttons
64 | .input-group-addon,
65 | .input-group-btn {
66 | width: 1%;
67 | white-space: nowrap;
68 | vertical-align: middle; // Match the inputs
69 | }
70 |
71 | // Text input groups
72 | // -------------------------
73 | .input-group-addon {
74 | padding: $padding-base-vertical $padding-base-horizontal;
75 | font-size: $font-size-base;
76 | font-weight: normal;
77 | line-height: 1;
78 | color: $input-color;
79 | text-align: center;
80 | background-color: $input-group-addon-bg;
81 | border: 1px solid $input-group-addon-border-color;
82 | border-radius: $border-radius-base;
83 |
84 | // Sizing
85 | &.input-sm {
86 | padding: $padding-small-vertical $padding-small-horizontal;
87 | font-size: $font-size-small;
88 | border-radius: $border-radius-small;
89 | }
90 | &.input-lg {
91 | padding: $padding-large-vertical $padding-large-horizontal;
92 | font-size: $font-size-large;
93 | border-radius: $border-radius-large;
94 | }
95 |
96 | // Nuke default margins from checkboxes and radios to vertically center within.
97 | input[type="radio"],
98 | input[type="checkbox"] {
99 | margin-top: 0;
100 | }
101 | }
102 |
103 | // Reset rounded corners
104 | .input-group .form-control:first-child,
105 | .input-group-addon:first-child,
106 | .input-group-btn:first-child > .btn,
107 | .input-group-btn:first-child > .btn-group > .btn,
108 | .input-group-btn:first-child > .dropdown-toggle,
109 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
110 | .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
111 | @include border-right-radius(0);
112 | }
113 | .input-group-addon:first-child {
114 | border-right: 0;
115 | }
116 | .input-group .form-control:last-child,
117 | .input-group-addon:last-child,
118 | .input-group-btn:last-child > .btn,
119 | .input-group-btn:last-child > .btn-group > .btn,
120 | .input-group-btn:last-child > .dropdown-toggle,
121 | .input-group-btn:first-child > .btn:not(:first-child),
122 | .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
123 | @include border-left-radius(0);
124 | }
125 | .input-group-addon:last-child {
126 | border-left: 0;
127 | }
128 |
129 | // Button input groups
130 | // -------------------------
131 | .input-group-btn {
132 | position: relative;
133 | // Jankily prevent input button groups from wrapping with `white-space` and
134 | // `font-size` in combination with `inline-block` on buttons.
135 | font-size: 0;
136 | white-space: nowrap;
137 |
138 | // Negative margin for spacing, position for bringing hovered/focused/actived
139 | // element above the siblings.
140 | > .btn {
141 | position: relative;
142 | + .btn {
143 | margin-left: -1px;
144 | }
145 | // Bring the "active" button to the front
146 | &:hover,
147 | &:focus,
148 | &:active {
149 | z-index: 2;
150 | }
151 | }
152 |
153 | // Negative margin to only have a 1px border between the two
154 | &:first-child {
155 | > .btn,
156 | > .btn-group {
157 | margin-right: -1px;
158 | }
159 | }
160 | &:last-child {
161 | > .btn,
162 | > .btn-group {
163 | margin-left: -1px;
164 | }
165 | }
166 | }
167 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_responsive-utilities.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Responsive: Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // IE10 in Windows (Phone) 8
7 | //
8 | // Support for responsive views via media queries is kind of borked in IE10, for
9 | // Surface/desktop in split view and for Windows Phone 8. This particular fix
10 | // must be accompanied by a snippet of JavaScript to sniff the user agent and
11 | // apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
12 | // our Getting Started page for more information on this bug.
13 | //
14 | // For more information, see the following:
15 | //
16 | // Issue: https://github.com/twbs/bootstrap/issues/10497
17 | // Docs: http://getbootstrap.com/getting-started/#support-ie10-width
18 | // Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
19 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
20 |
21 | @-ms-viewport {
22 | width: device-width;
23 | }
24 |
25 |
26 | // Visibility utilities
27 | // Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
28 |
29 | @include responsive-invisibility('.visible-xs, .visible-sm, .visible-md, .visible-lg');
30 |
31 | .visible-xs-block,
32 | .visible-xs-inline,
33 | .visible-xs-inline-block,
34 | .visible-sm-block,
35 | .visible-sm-inline,
36 | .visible-sm-inline-block,
37 | .visible-md-block,
38 | .visible-md-inline,
39 | .visible-md-inline-block,
40 | .visible-lg-block,
41 | .visible-lg-inline,
42 | .visible-lg-inline-block {
43 | display: none !important;
44 | }
45 |
46 | @media (max-width: $screen-xs-max) {
47 | @include responsive-visibility('.visible-xs');
48 | }
49 | .visible-xs-block {
50 | @media (max-width: $screen-xs-max) {
51 | display: block !important;
52 | }
53 | }
54 | .visible-xs-inline {
55 | @media (max-width: $screen-xs-max) {
56 | display: inline !important;
57 | }
58 | }
59 | .visible-xs-inline-block {
60 | @media (max-width: $screen-xs-max) {
61 | display: inline-block !important;
62 | }
63 | }
64 |
65 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
66 | @include responsive-visibility('.visible-sm');
67 | }
68 | .visible-sm-block {
69 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
70 | display: block !important;
71 | }
72 | }
73 | .visible-sm-inline {
74 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
75 | display: inline !important;
76 | }
77 | }
78 | .visible-sm-inline-block {
79 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
80 | display: inline-block !important;
81 | }
82 | }
83 |
84 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
85 | @include responsive-visibility('.visible-md');
86 | }
87 | .visible-md-block {
88 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
89 | display: block !important;
90 | }
91 | }
92 | .visible-md-inline {
93 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
94 | display: inline !important;
95 | }
96 | }
97 | .visible-md-inline-block {
98 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
99 | display: inline-block !important;
100 | }
101 | }
102 |
103 | @media (min-width: $screen-lg-min) {
104 | @include responsive-visibility('.visible-lg');
105 | }
106 | .visible-lg-block {
107 | @media (min-width: $screen-lg-min) {
108 | display: block !important;
109 | }
110 | }
111 | .visible-lg-inline {
112 | @media (min-width: $screen-lg-min) {
113 | display: inline !important;
114 | }
115 | }
116 | .visible-lg-inline-block {
117 | @media (min-width: $screen-lg-min) {
118 | display: inline-block !important;
119 | }
120 | }
121 |
122 | @media (max-width: $screen-xs-max) {
123 | @include responsive-invisibility('.hidden-xs');
124 | }
125 |
126 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
127 | @include responsive-invisibility('.hidden-sm');
128 | }
129 |
130 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
131 | @include responsive-invisibility('.hidden-md');
132 | }
133 |
134 | @media (min-width: $screen-lg-min) {
135 | @include responsive-invisibility('.hidden-lg');
136 | }
137 |
138 |
139 | // Print utilities
140 | //
141 | // Media queries are placed on the inside to be mixin-friendly.
142 |
143 | // Note: Deprecated .visible-print as of v3.2.0
144 |
145 | @include responsive-invisibility('.visible-print');
146 |
147 | @media print {
148 | @include responsive-visibility('.visible-print');
149 | }
150 | .visible-print-block {
151 | display: none !important;
152 |
153 | @media print {
154 | display: block !important;
155 | }
156 | }
157 | .visible-print-inline {
158 | display: none !important;
159 |
160 | @media print {
161 | display: inline !important;
162 | }
163 | }
164 | .visible-print-inline-block {
165 | display: none !important;
166 |
167 | @media print {
168 | display: inline-block !important;
169 | }
170 | }
171 |
172 | @media print {
173 | @include responsive-invisibility('.hidden-print');
174 | }
175 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
16 |
17 |
18 |
19 |
What is JSON Resume?
20 |
JSON Resume is a community driven open source initiative to create a JSON based standard for resumes. There is no reason why there can't be a common standard for writing a resume that can be extended with an ecosystem of open source tools. This project will attempt to:
21 |
22 | Build a community open source movement where everyone can take advantage of the tools
23 | Make themeing, exporting, storing and editing resumes super easy
24 |
25 |
We have researched the alternative standards, and they are a lot more mature but are lacking a modern and friendly ecosystem that empower individuals.
26 |
Our goal is to empower developers in every way possible, which means we will stick to a more casual development approach.
27 |
Join us on IRC: #jsonresume on Freenode
28 |
Why JSON?
29 |
The JSON Schema is now mature enough for writing usable schematics. YAML doesn't throughly offer schematic standards yet (though you can easily convert your resume between YAML and JSON anyway).
30 |
Versioning
31 |
We will generally do 2 year cycles of revisions to the specification. Though upon release the lifecycle will be short for 3 months whilst last minute revisions are made to the standard.
32 |
Open Source
33 |
Everything on the jsonresume.org domain name is opened source under a MIT license. This is meant to be a community effort to better the resume ecosystem.
34 |
35 |
Examples
36 |
37 | {% for example in site.data.examples %}
38 |
49 | {% endfor %}
50 |
51 |
52 |
We have built tools for you to initialize and publish your own JSON Resume:
53 |
Get Started!
54 |
55 |
56 |
Specification
57 |
The JSON Resume ecosystem only revolves around major version changes e.g. 0.0.0, 1.0.0, 2.0.0. The smaller changes will be implemented overtime but only major version changes will the ecosystem be expected to follow completely.
58 |
59 |
63 |
64 | {
65 | "basics": {
66 | "name": "",
67 | "label": "",
68 | "picture": "",
69 | "email": "",
70 | "phone": "",
71 | "website": "",
72 | "summary": "",
73 | "location": {
74 | "address": "",
75 | "postalCode": "",
76 | "city": "",
77 | "countryCode": "",
78 | "region": ""
79 | },
80 | "profiles": [{
81 | "network": "",
82 | "username": "",
83 | "url": ""
84 | }]
85 | },
86 | "work": [{
87 | "company": "",
88 | "position": "",
89 | "website": "",
90 | "startDate": "",
91 | "endDate": "",
92 | "summary": "",
93 | "highlights": [
94 | ""
95 | ]
96 | }],
97 | "volunteer": [{
98 | "organization": "",
99 | "position": "",
100 | "website": "",
101 | "startDate": "",
102 | "endDate": "",
103 | "summary": "",
104 | "highlights": [
105 | ""
106 | ]
107 | }],
108 | "education": [{
109 | "institution": "",
110 | "area": "",
111 | "studyType": "",
112 | "startDate": "",
113 | "endDate": "",
114 | "gpa": "",
115 | "courses": [
116 | ""
117 | ]
118 | }],
119 | "awards": [{
120 | "title": "",
121 | "date": "",
122 | "awarder": "",
123 | "summary": ""
124 | }],
125 | "publications": [{
126 | "name": "",
127 | "publisher": "",
128 | "releaseDate": "",
129 | "website": "",
130 | "summary": ""
131 | }],
132 | "skills": [{
133 | "name": "",
134 | "level": "",
135 | "keywords": [
136 | ""
137 | ]
138 | }],
139 | "languages": [{
140 | "language": "",
141 | "fluency": ""
142 | }],
143 | "interests": [{
144 | "name": "",
145 | "keywords": [
146 | ""
147 | ]
148 | }],
149 | "references": [{
150 | "name": "",
151 | "reference": ""
152 | }]
153 | }
154 |
155 |
156 |
157 |
158 |
159 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | JSON Resume {% if page.title %} — {{page.title}} {% endif %}
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
44 |
45 |
62 |
63 | {{ content }}
64 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_tables.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Tables
3 | // --------------------------------------------------
4 |
5 |
6 | table {
7 | background-color: $table-bg;
8 | }
9 | th {
10 | text-align: left;
11 | }
12 |
13 |
14 | // Baseline styles
15 |
16 | .table {
17 | width: 100%;
18 | max-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,
45 | > td {
46 | border-top: 0;
47 | }
48 | }
49 | }
50 | // Account for multiple tbody instances
51 | > tbody + tbody {
52 | border-top: 2px solid $table-border-color;
53 | }
54 |
55 | // Nesting
56 | .table {
57 | background-color: $body-bg;
58 | }
59 | }
60 |
61 |
62 | // Condensed table w/ half padding
63 |
64 | .table-condensed {
65 | > thead,
66 | > tbody,
67 | > tfoot {
68 | > tr {
69 | > th,
70 | > td {
71 | padding: $table-condensed-cell-padding;
72 | }
73 | }
74 | }
75 | }
76 |
77 |
78 | // Bordered version
79 | //
80 | // Add borders all around the table and between all the columns.
81 |
82 | .table-bordered {
83 | border: 1px solid $table-border-color;
84 | > thead,
85 | > tbody,
86 | > tfoot {
87 | > tr {
88 | > th,
89 | > td {
90 | border: 1px solid $table-border-color;
91 | }
92 | }
93 | }
94 | > thead > tr {
95 | > th,
96 | > td {
97 | border-bottom-width: 2px;
98 | }
99 | }
100 | }
101 |
102 |
103 | // Zebra-striping
104 | //
105 | // Default zebra-stripe styles (alternating gray and transparent backgrounds)
106 |
107 | .table-striped {
108 | > tbody > tr:nth-child(odd) {
109 | > td,
110 | > th {
111 | background-color: $table-bg-accent;
112 | }
113 | }
114 | }
115 |
116 |
117 | // Hover effect
118 | //
119 | // Placed here since it has to come after the potential zebra striping
120 |
121 | .table-hover {
122 | > tbody > tr:hover {
123 | > td,
124 | > th {
125 | background-color: $table-bg-hover;
126 | }
127 | }
128 | }
129 |
130 |
131 | // Table cell sizing
132 | //
133 | // Reset default table behavior
134 |
135 | table col[class*="col-"] {
136 | position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
137 | float: none;
138 | display: table-column;
139 | }
140 | table {
141 | td,
142 | th {
143 | &[class*="col-"] {
144 | position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
145 | float: none;
146 | display: table-cell;
147 | }
148 | }
149 | }
150 |
151 |
152 | // Table backgrounds
153 | //
154 | // Exact selectors below required to override `.table-striped` and prevent
155 | // inheritance to nested tables.
156 |
157 | // Generate the contextual variants
158 | @include table-row-variant('active', $table-bg-active);
159 | @include table-row-variant('success', $state-success-bg);
160 | @include table-row-variant('info', $state-info-bg);
161 | @include table-row-variant('warning', $state-warning-bg);
162 | @include table-row-variant('danger', $state-danger-bg);
163 |
164 |
165 | // Responsive tables
166 | //
167 | // Wrap your tables in `.table-responsive` and we'll make them mobile friendly
168 | // by enabling horizontal scrolling. Only applies <768px. Everything above that
169 | // will display normally.
170 |
171 | .table-responsive {
172 | @media screen and (max-width: $screen-xs-max) {
173 | width: 100%;
174 | margin-bottom: ($line-height-computed * 0.75);
175 | overflow-y: hidden;
176 | overflow-x: auto;
177 | -ms-overflow-style: -ms-autohiding-scrollbar;
178 | border: 1px solid $table-border-color;
179 | -webkit-overflow-scrolling: touch;
180 |
181 | // Tighten up spacing
182 | > .table {
183 | margin-bottom: 0;
184 |
185 | // Ensure the content doesn't wrap
186 | > thead,
187 | > tbody,
188 | > tfoot {
189 | > tr {
190 | > th,
191 | > td {
192 | white-space: nowrap;
193 | }
194 | }
195 | }
196 | }
197 |
198 | // Special overrides for the bordered tables
199 | > .table-bordered {
200 | border: 0;
201 |
202 | // Nuke the appropriate borders so that the parent can handle them
203 | > thead,
204 | > tbody,
205 | > tfoot {
206 | > tr {
207 | > th:first-child,
208 | > td:first-child {
209 | border-left: 0;
210 | }
211 | > th:last-child,
212 | > td:last-child {
213 | border-right: 0;
214 | }
215 | }
216 | }
217 |
218 | // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
219 | // chances are there will be only one `tr` in a `thead` and that would
220 | // remove the border altogether.
221 | > tbody,
222 | > tfoot {
223 | > tr:last-child {
224 | > th,
225 | > td {
226 | border-bottom: 0;
227 | }
228 | }
229 | }
230 |
231 | }
232 | }
233 | }
234 |
--------------------------------------------------------------------------------
/css/_sass/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;
14 | border-right: $caret-width-base solid transparent;
15 | border-left: $caret-width-base solid transparent;
16 | }
17 |
18 | // The dropdown wrapper (div)
19 | .dropdown {
20 | position: relative;
21 | }
22 |
23 | // Prevent the focus on the dropdown toggle when closing dropdowns
24 | .dropdown-toggle:focus {
25 | outline: 0;
26 | }
27 |
28 | // The dropdown menu (ul)
29 | .dropdown-menu {
30 | position: absolute;
31 | top: 100%;
32 | left: 0;
33 | z-index: $zindex-dropdown;
34 | display: none; // none by default, but block on "open" of the menu
35 | float: left;
36 | min-width: 160px;
37 | padding: 5px 0;
38 | margin: 2px 0 0; // override default ul
39 | list-style: none;
40 | font-size: $font-size-base;
41 | text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
42 | background-color: $dropdown-bg;
43 | border: 1px solid $dropdown-fallback-border; // IE8 fallback
44 | border: 1px solid $dropdown-border;
45 | border-radius: $border-radius-base;
46 | @include box-shadow(0 6px 12px rgba(0,0,0,.175));
47 | background-clip: padding-box;
48 |
49 | // Aligns the dropdown menu to right
50 | //
51 | // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
52 | &.pull-right {
53 | right: 0;
54 | left: auto;
55 | }
56 |
57 | // Dividers (basically an hr) within the dropdown
58 | .divider {
59 | @include nav-divider($dropdown-divider-bg);
60 | }
61 |
62 | // Links within the dropdown menu
63 | > li > a {
64 | display: block;
65 | padding: 3px 20px;
66 | clear: both;
67 | font-weight: normal;
68 | line-height: $line-height-base;
69 | color: $dropdown-link-color;
70 | white-space: nowrap; // prevent links from randomly breaking onto new lines
71 | }
72 | }
73 |
74 | // Hover/Focus state
75 | .dropdown-menu > li > a {
76 | &:hover,
77 | &:focus {
78 | text-decoration: none;
79 | color: $dropdown-link-hover-color;
80 | background-color: $dropdown-link-hover-bg;
81 | }
82 | }
83 |
84 | // Active state
85 | .dropdown-menu > .active > a {
86 | &,
87 | &:hover,
88 | &:focus {
89 | color: $dropdown-link-active-color;
90 | text-decoration: none;
91 | outline: 0;
92 | background-color: $dropdown-link-active-bg;
93 | }
94 | }
95 |
96 | // Disabled state
97 | //
98 | // Gray out text and ensure the hover/focus state remains gray
99 |
100 | .dropdown-menu > .disabled > a {
101 | &,
102 | &:hover,
103 | &:focus {
104 | color: $dropdown-link-disabled-color;
105 | }
106 | }
107 | // Nuke hover/focus effects
108 | .dropdown-menu > .disabled > a {
109 | &:hover,
110 | &:focus {
111 | text-decoration: none;
112 | background-color: transparent;
113 | background-image: none; // Remove CSS gradient
114 | @include reset-filter();
115 | cursor: not-allowed;
116 | }
117 | }
118 |
119 | // Open state for the dropdown
120 | .open {
121 | // Show the menu
122 | > .dropdown-menu {
123 | display: block;
124 | }
125 |
126 | // Remove the outline when :focus is triggered
127 | > a {
128 | outline: 0;
129 | }
130 | }
131 |
132 | // Menu positioning
133 | //
134 | // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
135 | // menu with the parent.
136 | .dropdown-menu-right {
137 | left: auto; // Reset the default from `.dropdown-menu`
138 | right: 0;
139 | }
140 | // With v3, we enabled auto-flipping if you have a dropdown within a right
141 | // aligned nav component. To enable the undoing of that, we provide an override
142 | // to restore the default dropdown menu alignment.
143 | //
144 | // This is only for left-aligning a dropdown menu within a `.navbar-right` or
145 | // `.pull-right` nav component.
146 | .dropdown-menu-left {
147 | left: 0;
148 | right: auto;
149 | }
150 |
151 | // Dropdown section headers
152 | .dropdown-header {
153 | display: block;
154 | padding: 3px 20px;
155 | font-size: $font-size-small;
156 | line-height: $line-height-base;
157 | color: $dropdown-header-color;
158 | white-space: nowrap; // as with > li > a
159 | }
160 |
161 | // Backdrop to catch body clicks on mobile, etc.
162 | .dropdown-backdrop {
163 | position: fixed;
164 | left: 0;
165 | right: 0;
166 | bottom: 0;
167 | top: 0;
168 | z-index: ($zindex-dropdown - 10);
169 | }
170 |
171 | // Right aligned dropdowns
172 | .pull-right > .dropdown-menu {
173 | right: 0;
174 | left: auto;
175 | }
176 |
177 | // Allow for dropdowns to go bottom up (aka, dropup-menu)
178 | //
179 | // Just add .dropup after the standard .dropdown class and you're set, bro.
180 | // TODO: abstract this so that the navbar fixed styles are not placed here?
181 |
182 | .dropup,
183 | .navbar-fixed-bottom .dropdown {
184 | // Reverse the caret
185 | .caret {
186 | border-top: 0;
187 | border-bottom: $caret-width-base solid;
188 | content: "";
189 | }
190 | // Different positioning for bottom up menu
191 | .dropdown-menu {
192 | top: auto;
193 | bottom: 100%;
194 | margin-bottom: 1px;
195 | }
196 | }
197 |
198 |
199 | // Component alignment
200 | //
201 | // Reiterate per navbar.less and the modified component alignment there.
202 |
203 | @media (min-width: $grid-float-breakpoint) {
204 | .navbar-right {
205 | .dropdown-menu {
206 | right: 0; left: auto;
207 | }
208 | // Necessary for overrides of the default right aligned menu.
209 | // Will remove come v4 in all likelihood.
210 | .dropdown-menu-left {
211 | left: 0; right: auto;
212 | }
213 | }
214 | }
215 |
216 |
--------------------------------------------------------------------------------
/css/_sass/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 {
32 | display: block;
33 | }
34 |
35 | > .active {
36 | left: 0;
37 | }
38 |
39 | > .next,
40 | > .prev {
41 | position: absolute;
42 | top: 0;
43 | width: 100%;
44 | }
45 |
46 | > .next {
47 | left: 100%;
48 | }
49 | > .prev {
50 | left: -100%;
51 | }
52 | > .next.left,
53 | > .prev.right {
54 | left: 0;
55 | }
56 |
57 | > .active.left {
58 | left: -100%;
59 | }
60 | > .active.right {
61 | left: 100%;
62 | }
63 |
64 | }
65 |
66 | // Left/right controls for nav
67 | // ---------------------------
68 |
69 | .carousel-control {
70 | position: absolute;
71 | top: 0;
72 | left: 0;
73 | bottom: 0;
74 | width: $carousel-control-width;
75 | @include opacity($carousel-control-opacity);
76 | font-size: $carousel-control-font-size;
77 | color: $carousel-control-color;
78 | text-align: center;
79 | text-shadow: $carousel-text-shadow;
80 | // We can't have this transition here because WebKit cancels the carousel
81 | // animation if you trip this while in the middle of another animation.
82 |
83 | // Set gradients for backgrounds
84 | &.left {
85 | @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
86 | }
87 | &.right {
88 | left: auto;
89 | right: 0;
90 | @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
91 | }
92 |
93 | // Hover/focus state
94 | &:hover,
95 | &:focus {
96 | outline: 0;
97 | color: $carousel-control-color;
98 | text-decoration: none;
99 | @include opacity(.9);
100 | }
101 |
102 | // Toggles
103 | .icon-prev,
104 | .icon-next,
105 | .glyphicon-chevron-left,
106 | .glyphicon-chevron-right {
107 | position: absolute;
108 | top: 50%;
109 | z-index: 5;
110 | display: inline-block;
111 | }
112 | .icon-prev,
113 | .glyphicon-chevron-left {
114 | left: 50%;
115 | margin-left: -10px;
116 | }
117 | .icon-next,
118 | .glyphicon-chevron-right {
119 | right: 50%;
120 | margin-right: -10px;
121 | }
122 | .icon-prev,
123 | .icon-next {
124 | width: 20px;
125 | height: 20px;
126 | margin-top: -10px;
127 | font-family: serif;
128 | }
129 |
130 |
131 | .icon-prev {
132 | &:before {
133 | content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
134 | }
135 | }
136 | .icon-next {
137 | &:before {
138 | content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
139 | }
140 | }
141 | }
142 |
143 | // Optional indicator pips
144 | //
145 | // Add an unordered list with the following class and add a list item for each
146 | // slide your carousel holds.
147 |
148 | .carousel-indicators {
149 | position: absolute;
150 | bottom: 10px;
151 | left: 50%;
152 | z-index: 15;
153 | width: 60%;
154 | margin-left: -30%;
155 | padding-left: 0;
156 | list-style: none;
157 | text-align: center;
158 |
159 | li {
160 | display: inline-block;
161 | width: 10px;
162 | height: 10px;
163 | margin: 1px;
164 | text-indent: -999px;
165 | border: 1px solid $carousel-indicator-border-color;
166 | border-radius: 10px;
167 | cursor: pointer;
168 |
169 | // IE8-9 hack for event handling
170 | //
171 | // Internet Explorer 8-9 does not support clicks on elements without a set
172 | // `background-color`. We cannot use `filter` since that's not viewed as a
173 | // background color by the browser. Thus, a hack is needed.
174 | //
175 | // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
176 | // set alpha transparency for the best results possible.
177 | background-color: #000 \9; // IE8
178 | background-color: rgba(0,0,0,0); // IE9
179 | }
180 | .active {
181 | margin: 0;
182 | width: 12px;
183 | height: 12px;
184 | background-color: $carousel-indicator-active-bg;
185 | }
186 | }
187 |
188 | // Optional captions
189 | // -----------------------------
190 | // Hidden by default for smaller viewports
191 | .carousel-caption {
192 | position: absolute;
193 | left: 15%;
194 | right: 15%;
195 | bottom: 20px;
196 | z-index: 10;
197 | padding-top: 20px;
198 | padding-bottom: 20px;
199 | color: $carousel-caption-color;
200 | text-align: center;
201 | text-shadow: $carousel-text-shadow;
202 | & .btn {
203 | text-shadow: none; // No shadow for button elements in carousel-caption
204 | }
205 | }
206 |
207 |
208 | // Scale up controls for tablets and up
209 | @media screen and (min-width: $screen-sm-min) {
210 |
211 | // Scale up the controls a smidge
212 | .carousel-control {
213 | .glyphicon-chevron-left,
214 | .glyphicon-chevron-right,
215 | .icon-prev,
216 | .icon-next {
217 | width: 30px;
218 | height: 30px;
219 | margin-top: -15px;
220 | font-size: 30px;
221 | }
222 | .glyphicon-chevron-left,
223 | .icon-prev {
224 | margin-left: -15px;
225 | }
226 | .glyphicon-chevron-right,
227 | .icon-next {
228 | margin-right: -15px;
229 | }
230 | }
231 |
232 | // Show and left align the captions
233 | .carousel-caption {
234 | left: 20%;
235 | right: 20%;
236 | padding-bottom: 30px;
237 | }
238 |
239 | // Move up the indicators
240 | .carousel-indicators {
241 | bottom: 20px;
242 | }
243 | }
244 |
--------------------------------------------------------------------------------
/css/_sass/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 | // Nav dividers (deprecated with v3.0.1)
55 | //
56 | // This should have been removed in v3 with the dropping of `.nav-list`, but
57 | // we missed it. We don't currently support this anywhere, but in the interest
58 | // of maintaining backward compatibility in case you use it, it's deprecated.
59 | .nav-divider {
60 | @include nav-divider();
61 | }
62 |
63 | // Prevent IE8 from misplacing imgs
64 | //
65 | // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
66 | > li > a > img {
67 | max-width: none;
68 | }
69 | }
70 |
71 |
72 | // Tabs
73 | // -------------------------
74 |
75 | // Give the tabs something to sit on
76 | .nav-tabs {
77 | border-bottom: 1px solid $nav-tabs-border-color;
78 | > li {
79 | float: left;
80 | // Make the list-items overlay the bottom border
81 | margin-bottom: -1px;
82 |
83 | // Actual tabs (as links)
84 | > a {
85 | margin-right: 2px;
86 | line-height: $line-height-base;
87 | border: 1px solid transparent;
88 | border-radius: $border-radius-base $border-radius-base 0 0;
89 | &:hover {
90 | border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
91 | }
92 | }
93 |
94 | // Active state, and its :hover to override normal :hover
95 | &.active > a {
96 | &,
97 | &:hover,
98 | &:focus {
99 | color: $nav-tabs-active-link-hover-color;
100 | background-color: $nav-tabs-active-link-hover-bg;
101 | border: 1px solid $nav-tabs-active-link-hover-border-color;
102 | border-bottom-color: transparent;
103 | cursor: default;
104 | }
105 | }
106 | }
107 | // pulling this in mainly for less shorthand
108 | &.nav-justified {
109 | @extend .nav-justified;
110 | @extend .nav-tabs-justified;
111 | }
112 | }
113 |
114 |
115 | // Pills
116 | // -------------------------
117 | .nav-pills {
118 | > li {
119 | float: left;
120 |
121 | // Links rendered as pills
122 | > a {
123 | border-radius: $nav-pills-border-radius;
124 | }
125 | + li {
126 | margin-left: 2px;
127 | }
128 |
129 | // Active state
130 | &.active > a {
131 | &,
132 | &:hover,
133 | &:focus {
134 | color: $nav-pills-active-link-hover-color;
135 | background-color: $nav-pills-active-link-hover-bg;
136 | }
137 | }
138 | }
139 | }
140 |
141 |
142 | // Stacked pills
143 | .nav-stacked {
144 | > li {
145 | float: none;
146 | + li {
147 | margin-top: 2px;
148 | margin-left: 0; // no need for this gap between nav items
149 | }
150 | }
151 | }
152 |
153 |
154 | // Nav variations
155 | // --------------------------------------------------
156 |
157 | // Justified nav links
158 | // -------------------------
159 |
160 | .nav-justified {
161 | width: 100%;
162 |
163 | > li {
164 | float: none;
165 | > a {
166 | text-align: center;
167 | margin-bottom: 5px;
168 | }
169 | }
170 |
171 | > .dropdown .dropdown-menu {
172 | top: auto;
173 | left: auto;
174 | }
175 |
176 | @media (min-width: $screen-sm-min) {
177 | > li {
178 | display: table-cell;
179 | width: 1%;
180 | > a {
181 | margin-bottom: 0;
182 | }
183 | }
184 | }
185 | }
186 |
187 | // Move borders to anchors instead of bottom of list
188 | //
189 | // Mixin for adding on top the shared `.nav-justified` styles for our tabs
190 | .nav-tabs-justified {
191 | border-bottom: 0;
192 |
193 | > li > a {
194 | // Override margin from .nav-tabs
195 | margin-right: 0;
196 | border-radius: $border-radius-base;
197 | }
198 |
199 | > .active > a,
200 | > .active > a:hover,
201 | > .active > a:focus {
202 | border: 1px solid $nav-tabs-justified-link-border-color;
203 | }
204 |
205 | @media (min-width: $screen-sm-min) {
206 | > li > a {
207 | border-bottom: 1px solid $nav-tabs-justified-link-border-color;
208 | border-radius: $border-radius-base $border-radius-base 0 0;
209 | }
210 | > .active > a,
211 | > .active > a:hover,
212 | > .active > a:focus {
213 | border-bottom-color: $nav-tabs-justified-active-link-border-color;
214 | }
215 | }
216 | }
217 |
218 |
219 | // Tabbable tabs
220 | // -------------------------
221 |
222 | // Hide tabbable panes to start, show them when `.active`
223 | .tab-content {
224 | > .tab-pane {
225 | display: none;
226 | }
227 | > .active {
228 | display: block;
229 | }
230 | }
231 |
232 |
233 | // Dropdowns
234 | // -------------------------
235 |
236 | // Specific dropdowns
237 | .nav-tabs .dropdown-menu {
238 | // make dropdown border overlap tab border
239 | margin-top: -1px;
240 | // Remove the top rounded corners here since there is a hard edge above the menu
241 | @include border-top-radius(0);
242 | }
243 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_button-groups.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Button groups
3 | // --------------------------------------------------
4 |
5 | // Make the div behave like a button
6 | .btn-group,
7 | .btn-group-vertical {
8 | position: relative;
9 | display: inline-block;
10 | vertical-align: middle; // match .btn alignment given font-size hack above
11 | > .btn {
12 | position: relative;
13 | float: left;
14 | // Bring the "active" button to the front
15 | &:hover,
16 | &:focus,
17 | &:active,
18 | &.active {
19 | z-index: 2;
20 | }
21 | &:focus {
22 | // Remove focus outline when dropdown JS adds it after closing the menu
23 | outline: 0;
24 | }
25 | }
26 | }
27 |
28 | // Prevent double borders when buttons are next to each other
29 | .btn-group {
30 | .btn + .btn,
31 | .btn + .btn-group,
32 | .btn-group + .btn,
33 | .btn-group + .btn-group {
34 | margin-left: -1px;
35 | }
36 | }
37 |
38 | // Optional: Group multiple button groups together for a toolbar
39 | .btn-toolbar {
40 | margin-left: -5px; // Offset the first child's margin
41 | @include clearfix();
42 |
43 | .btn-group,
44 | .input-group {
45 | float: left;
46 | }
47 | > .btn,
48 | > .btn-group,
49 | > .input-group {
50 | margin-left: 5px;
51 | }
52 | }
53 |
54 | .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
55 | border-radius: 0;
56 | }
57 |
58 | // 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
59 | .btn-group > .btn:first-child {
60 | margin-left: 0;
61 | &:not(:last-child):not(.dropdown-toggle) {
62 | @include border-right-radius(0);
63 | }
64 | }
65 | // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
66 | .btn-group > .btn:last-child:not(:first-child),
67 | .btn-group > .dropdown-toggle:not(:first-child) {
68 | @include border-left-radius(0);
69 | }
70 |
71 | // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
72 | .btn-group > .btn-group {
73 | float: left;
74 | }
75 | .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
76 | border-radius: 0;
77 | }
78 | .btn-group > .btn-group:first-child {
79 | > .btn:last-child,
80 | > .dropdown-toggle {
81 | @include border-right-radius(0);
82 | }
83 | }
84 | .btn-group > .btn-group:last-child > .btn:first-child {
85 | @include border-left-radius(0);
86 | }
87 |
88 | // On active and open, don't show outline
89 | .btn-group .dropdown-toggle:active,
90 | .btn-group.open .dropdown-toggle {
91 | outline: 0;
92 | }
93 |
94 |
95 | // Sizing
96 | //
97 | // Remix the default button sizing classes into new ones for easier manipulation.
98 |
99 | .btn-group-xs > .btn { @extend .btn-xs; }
100 | .btn-group-sm > .btn { @extend .btn-sm; }
101 | .btn-group-lg > .btn { @extend .btn-lg; }
102 |
103 |
104 | // Split button dropdowns
105 | // ----------------------
106 |
107 | // Give the line between buttons some depth
108 | .btn-group > .btn + .dropdown-toggle {
109 | padding-left: 8px;
110 | padding-right: 8px;
111 | }
112 | .btn-group > .btn-lg + .dropdown-toggle {
113 | padding-left: 12px;
114 | padding-right: 12px;
115 | }
116 |
117 | // The clickable button for toggling the menu
118 | // Remove the gradient and set the same inset shadow as the :active state
119 | .btn-group.open .dropdown-toggle {
120 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
121 |
122 | // Show no shadow for `.btn-link` since it has no other button styles.
123 | &.btn-link {
124 | @include box-shadow(none);
125 | }
126 | }
127 |
128 |
129 | // Reposition the caret
130 | .btn .caret {
131 | margin-left: 0;
132 | }
133 | // Carets in other button sizes
134 | .btn-lg .caret {
135 | border-width: $caret-width-large $caret-width-large 0;
136 | border-bottom-width: 0;
137 | }
138 | // Upside down carets for .dropup
139 | .dropup .btn-lg .caret {
140 | border-width: 0 $caret-width-large $caret-width-large;
141 | }
142 |
143 |
144 | // Vertical button groups
145 | // ----------------------
146 |
147 | .btn-group-vertical {
148 | > .btn,
149 | > .btn-group,
150 | > .btn-group > .btn {
151 | display: block;
152 | float: none;
153 | width: 100%;
154 | max-width: 100%;
155 | }
156 |
157 | // Clear floats so dropdown menus can be properly placed
158 | > .btn-group {
159 | @include clearfix();
160 | > .btn {
161 | float: none;
162 | }
163 | }
164 |
165 | > .btn + .btn,
166 | > .btn + .btn-group,
167 | > .btn-group + .btn,
168 | > .btn-group + .btn-group {
169 | margin-top: -1px;
170 | margin-left: 0;
171 | }
172 | }
173 |
174 | .btn-group-vertical > .btn {
175 | &:not(:first-child):not(:last-child) {
176 | border-radius: 0;
177 | }
178 | &:first-child:not(:last-child) {
179 | border-top-right-radius: $border-radius-base;
180 | @include border-bottom-radius(0);
181 | }
182 | &:last-child:not(:first-child) {
183 | border-bottom-left-radius: $border-radius-base;
184 | @include border-top-radius(0);
185 | }
186 | }
187 | .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
188 | border-radius: 0;
189 | }
190 | .btn-group-vertical > .btn-group:first-child:not(:last-child) {
191 | > .btn:last-child,
192 | > .dropdown-toggle {
193 | @include border-bottom-radius(0);
194 | }
195 | }
196 | .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
197 | @include border-top-radius(0);
198 | }
199 |
200 |
201 |
202 | // Justified button groups
203 | // ----------------------
204 |
205 | .btn-group-justified {
206 | display: table;
207 | width: 100%;
208 | table-layout: fixed;
209 | border-collapse: separate;
210 | > .btn,
211 | > .btn-group {
212 | float: none;
213 | display: table-cell;
214 | width: 1%;
215 | }
216 | > .btn-group .btn {
217 | width: 100%;
218 | }
219 |
220 | > .btn-group .dropdown-menu {
221 | left: auto;
222 | }
223 | }
224 |
225 |
226 | // Checkbox and radio options
227 | //
228 | // In order to support the browser's form validation feedback, powered by the
229 | // `required` attribute, we have to "hide" the inputs via `opacity`. We cannot
230 | // use `display: none;` or `visibility: hidden;` as that also hides the popover.
231 | // This way, we ensure a DOM element is visible to position the popover from.
232 | //
233 | // See https://github.com/twbs/bootstrap/pull/12794 for more.
234 |
235 | [data-toggle="buttons"] > .btn > input[type="radio"],
236 | [data-toggle="buttons"] > .btn > input[type="checkbox"] {
237 | position: absolute;
238 | z-index: -1;
239 | @include opacity(0);
240 | }
241 |
--------------------------------------------------------------------------------
/css/_sass/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: $panel-body-padding;
18 | @include clearfix();
19 | }
20 |
21 | // Optional heading
22 | .panel-heading {
23 | padding: $panel-heading-padding;
24 | border-bottom: 1px solid transparent;
25 | @include border-top-radius(($panel-border-radius - 1));
26 |
27 | > .dropdown .dropdown-toggle {
28 | color: inherit;
29 | }
30 | }
31 |
32 | // Within heading, strip any `h*` tag of its default margins for spacing.
33 | .panel-title {
34 | margin-top: 0;
35 | margin-bottom: 0;
36 | font-size: ceil(($font-size-base * 1.125));
37 | color: inherit;
38 |
39 | > a {
40 | color: inherit;
41 | }
42 | }
43 |
44 | // Optional footer (stays gray in every modifier class)
45 | .panel-footer {
46 | padding: $panel-footer-padding;
47 | background-color: $panel-footer-bg;
48 | border-top: 1px solid $panel-inner-border;
49 | @include border-bottom-radius(($panel-border-radius - 1));
50 | }
51 |
52 |
53 | // List groups in panels
54 | //
55 | // By default, space out list group content from panel headings to account for
56 | // any kind of custom content between the two.
57 |
58 | .panel {
59 | > .list-group {
60 | margin-bottom: 0;
61 |
62 | .list-group-item {
63 | border-width: 1px 0;
64 | border-radius: 0;
65 | }
66 |
67 | // Add border top radius for first one
68 | &:first-child {
69 | .list-group-item:first-child {
70 | border-top: 0;
71 | @include border-top-radius(($panel-border-radius - 1));
72 | }
73 | }
74 | // Add border bottom radius for last one
75 | &:last-child {
76 | .list-group-item:last-child {
77 | border-bottom: 0;
78 | @include border-bottom-radius(($panel-border-radius - 1));
79 | }
80 | }
81 | }
82 | }
83 | // Collapse space between when there's no additional content.
84 | .panel-heading + .list-group {
85 | .list-group-item:first-child {
86 | border-top-width: 0;
87 | }
88 | }
89 | .list-group + .panel-footer {
90 | border-top-width: 0;
91 | }
92 |
93 | // Tables in panels
94 | //
95 | // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
96 | // watch it go full width.
97 |
98 | .panel {
99 | > .table,
100 | > .table-responsive > .table,
101 | > .panel-collapse > .table {
102 | margin-bottom: 0;
103 | }
104 | // Add border top radius for first one
105 | > .table:first-child,
106 | > .table-responsive:first-child > .table:first-child {
107 | @include border-top-radius(($panel-border-radius - 1));
108 |
109 | > thead:first-child,
110 | > tbody:first-child {
111 | > tr:first-child {
112 | td:first-child,
113 | th:first-child {
114 | border-top-left-radius: ($panel-border-radius - 1);
115 | }
116 | td:last-child,
117 | th:last-child {
118 | border-top-right-radius: ($panel-border-radius - 1);
119 | }
120 | }
121 | }
122 | }
123 | // Add border bottom radius for last one
124 | > .table:last-child,
125 | > .table-responsive:last-child > .table:last-child {
126 | @include border-bottom-radius(($panel-border-radius - 1));
127 |
128 | > tbody:last-child,
129 | > tfoot:last-child {
130 | > tr:last-child {
131 | td:first-child,
132 | th:first-child {
133 | border-bottom-left-radius: ($panel-border-radius - 1);
134 | }
135 | td:last-child,
136 | th:last-child {
137 | border-bottom-right-radius: ($panel-border-radius - 1);
138 | }
139 | }
140 | }
141 | }
142 | > .panel-body + .table,
143 | > .panel-body + .table-responsive {
144 | border-top: 1px solid $table-border-color;
145 | }
146 | > .table > tbody:first-child > tr:first-child th,
147 | > .table > tbody:first-child > tr:first-child td {
148 | border-top: 0;
149 | }
150 | > .table-bordered,
151 | > .table-responsive > .table-bordered {
152 | border: 0;
153 | > thead,
154 | > tbody,
155 | > tfoot {
156 | > tr {
157 | > th:first-child,
158 | > td:first-child {
159 | border-left: 0;
160 | }
161 | > th:last-child,
162 | > td:last-child {
163 | border-right: 0;
164 | }
165 | }
166 | }
167 | > thead,
168 | > tbody {
169 | > tr:first-child {
170 | > td,
171 | > th {
172 | border-bottom: 0;
173 | }
174 | }
175 | }
176 | > tbody,
177 | > tfoot {
178 | > tr:last-child {
179 | > td,
180 | > th {
181 | border-bottom: 0;
182 | }
183 | }
184 | }
185 | }
186 | > .table-responsive {
187 | border: 0;
188 | margin-bottom: 0;
189 | }
190 | }
191 |
192 |
193 | // Collapsable panels (aka, accordion)
194 | //
195 | // Wrap a series of panels in `.panel-group` to turn them into an accordion with
196 | // the help of our collapse JavaScript plugin.
197 |
198 | .panel-group {
199 | margin-bottom: $line-height-computed;
200 |
201 | // Tighten up margin so it's only between panels
202 | .panel {
203 | margin-bottom: 0;
204 | border-radius: $panel-border-radius;
205 | + .panel {
206 | margin-top: 5px;
207 | }
208 | }
209 |
210 | .panel-heading {
211 | border-bottom: 0;
212 | + .panel-collapse > .panel-body {
213 | border-top: 1px solid $panel-inner-border;
214 | }
215 | }
216 | .panel-footer {
217 | border-top: 0;
218 | + .panel-collapse .panel-body {
219 | border-bottom: 1px solid $panel-inner-border;
220 | }
221 | }
222 | }
223 |
224 |
225 | // Contextual variations
226 | .panel-default {
227 | @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
228 | }
229 | .panel-primary {
230 | @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
231 | }
232 | .panel-success {
233 | @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
234 | }
235 | .panel-info {
236 | @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
237 | }
238 | .panel-warning {
239 | @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
240 | }
241 | .panel-danger {
242 | @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
243 | }
244 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/mixins/_vendor-prefixes.scss:
--------------------------------------------------------------------------------
1 | // Vendor Prefixes
2 | //
3 | // All vendor mixins are deprecated as of v3.2.0 due to the introduction of
4 | // Autoprefixer in our Gruntfile. They will be removed in v4.
5 |
6 | // - Animations
7 | // - Backface visibility
8 | // - Box shadow
9 | // - Box sizing
10 | // - Content columns
11 | // - Hyphens
12 | // - Placeholder text
13 | // - Transformations
14 | // - Transitions
15 | // - User Select
16 |
17 |
18 | // Animations
19 | @mixin animation($animation) {
20 | -webkit-animation: $animation;
21 | -o-animation: $animation;
22 | animation: $animation;
23 | }
24 | @mixin animation-name($name) {
25 | -webkit-animation-name: $name;
26 | animation-name: $name;
27 | }
28 | @mixin animation-duration($duration) {
29 | -webkit-animation-duration: $duration;
30 | animation-duration: $duration;
31 | }
32 | @mixin animation-timing-function($timing-function) {
33 | -webkit-animation-timing-function: $timing-function;
34 | animation-timing-function: $timing-function;
35 | }
36 | @mixin animation-delay($delay) {
37 | -webkit-animation-delay: $delay;
38 | animation-delay: $delay;
39 | }
40 | @mixin animation-iteration-count($iteration-count) {
41 | -webkit-animation-iteration-count: $iteration-count;
42 | animation-iteration-count: $iteration-count;
43 | }
44 | @mixin animation-direction($direction) {
45 | -webkit-animation-direction: $direction;
46 | animation-direction: $direction;
47 | }
48 | @mixin animation-fill-mode($fill-mode) {
49 | -webkit-animation-fill-mode: $fill-mode;
50 | animation-fill-mode: $fill-mode;
51 | }
52 |
53 | // Backface visibility
54 | // Prevent browsers from flickering when using CSS 3D transforms.
55 | // Default value is `visible`, but can be changed to `hidden`
56 |
57 | @mixin backface-visibility($visibility){
58 | -webkit-backface-visibility: $visibility;
59 | -moz-backface-visibility: $visibility;
60 | backface-visibility: $visibility;
61 | }
62 |
63 | // Drop shadows
64 | //
65 | // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
66 | // supported browsers that have box shadow capabilities now support it.
67 |
68 | @mixin box-shadow($shadow...) {
69 | -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
70 | box-shadow: $shadow;
71 | }
72 |
73 | // Box sizing
74 | @mixin box-sizing($boxmodel) {
75 | -webkit-box-sizing: $boxmodel;
76 | -moz-box-sizing: $boxmodel;
77 | box-sizing: $boxmodel;
78 | }
79 |
80 | // CSS3 Content Columns
81 | @mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
82 | -webkit-column-count: $column-count;
83 | -moz-column-count: $column-count;
84 | column-count: $column-count;
85 | -webkit-column-gap: $column-gap;
86 | -moz-column-gap: $column-gap;
87 | column-gap: $column-gap;
88 | }
89 |
90 | // Optional hyphenation
91 | @mixin hyphens($mode: auto) {
92 | word-wrap: break-word;
93 | -webkit-hyphens: $mode;
94 | -moz-hyphens: $mode;
95 | -ms-hyphens: $mode; // IE10+
96 | -o-hyphens: $mode;
97 | hyphens: $mode;
98 | }
99 |
100 | // Placeholder text
101 | @mixin placeholder($color: $input-color-placeholder) {
102 | &::-moz-placeholder { color: $color; // Firefox
103 | opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
104 | &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
105 | &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
106 | }
107 |
108 | // Transformations
109 | @mixin scale($ratio...) {
110 | -webkit-transform: scale($ratio);
111 | -ms-transform: scale($ratio); // IE9 only
112 | -o-transform: scale($ratio);
113 | transform: scale($ratio);
114 | }
115 |
116 | @mixin scaleX($ratio) {
117 | -webkit-transform: scaleX($ratio);
118 | -ms-transform: scaleX($ratio); // IE9 only
119 | -o-transform: scaleX($ratio);
120 | transform: scaleX($ratio);
121 | }
122 | @mixin scaleY($ratio) {
123 | -webkit-transform: scaleY($ratio);
124 | -ms-transform: scaleY($ratio); // IE9 only
125 | -o-transform: scaleY($ratio);
126 | transform: scaleY($ratio);
127 | }
128 | @mixin skew($x, $y) {
129 | -webkit-transform: skewX($x) skewY($y);
130 | -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
131 | -o-transform: skewX($x) skewY($y);
132 | transform: skewX($x) skewY($y);
133 | }
134 | @mixin translate($x, $y) {
135 | -webkit-transform: translate($x, $y);
136 | -ms-transform: translate($x, $y); // IE9 only
137 | -o-transform: translate($x, $y);
138 | transform: translate($x, $y);
139 | }
140 | @mixin translate3d($x, $y, $z) {
141 | -webkit-transform: translate3d($x, $y, $z);
142 | transform: translate3d($x, $y, $z);
143 | }
144 | @mixin rotate($degrees) {
145 | -webkit-transform: rotate($degrees);
146 | -ms-transform: rotate($degrees); // IE9 only
147 | -o-transform: rotate($degrees);
148 | transform: rotate($degrees);
149 | }
150 | @mixin rotateX($degrees) {
151 | -webkit-transform: rotateX($degrees);
152 | -ms-transform: rotateX($degrees); // IE9 only
153 | -o-transform: rotateX($degrees);
154 | transform: rotateX($degrees);
155 | }
156 | @mixin rotateY($degrees) {
157 | -webkit-transform: rotateY($degrees);
158 | -ms-transform: rotateY($degrees); // IE9 only
159 | -o-transform: rotateY($degrees);
160 | transform: rotateY($degrees);
161 | }
162 | @mixin perspective($perspective) {
163 | -webkit-perspective: $perspective;
164 | -moz-perspective: $perspective;
165 | perspective: $perspective;
166 | }
167 | @mixin perspective-origin($perspective) {
168 | -webkit-perspective-origin: $perspective;
169 | -moz-perspective-origin: $perspective;
170 | perspective-origin: $perspective;
171 | }
172 | @mixin transform-origin($origin) {
173 | -webkit-transform-origin: $origin;
174 | -moz-transform-origin: $origin;
175 | -ms-transform-origin: $origin; // IE9 only
176 | transform-origin: $origin;
177 | }
178 |
179 |
180 | // Transitions
181 |
182 | @mixin transition($transition...) {
183 | -webkit-transition: $transition;
184 | -o-transition: $transition;
185 | transition: $transition;
186 | }
187 | @mixin transition-property($transition-property...) {
188 | -webkit-transition-property: $transition-property;
189 | transition-property: $transition-property;
190 | }
191 | @mixin transition-delay($transition-delay) {
192 | -webkit-transition-delay: $transition-delay;
193 | transition-delay: $transition-delay;
194 | }
195 | @mixin transition-duration($transition-duration...) {
196 | -webkit-transition-duration: $transition-duration;
197 | transition-duration: $transition-duration;
198 | }
199 | @mixin transition-timing-function($timing-function) {
200 | -webkit-transition-timing-function: $timing-function;
201 | transition-timing-function: $timing-function;
202 | }
203 | @mixin transition-transform($transition...) {
204 | -webkit-transition: -webkit-transform $transition;
205 | -moz-transition: -moz-transform $transition;
206 | -o-transition: -o-transform $transition;
207 | transition: transform $transition;
208 | }
209 |
210 |
211 | // User select
212 | // For selecting text on the page
213 |
214 | @mixin user-select($select) {
215 | -webkit-user-select: $select;
216 | -moz-user-select: $select;
217 | -ms-user-select: $select; // IE10+
218 | user-select: $select;
219 | }
220 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_type.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Typography
3 | // --------------------------------------------------
4 |
5 |
6 | // Headings
7 | // -------------------------
8 |
9 | h1, h2, h3, h4, h5, h6,
10 | .h1, .h2, .h3, .h4, .h5, .h6 {
11 | font-family: $headings-font-family;
12 | font-weight: $headings-font-weight;
13 | line-height: $headings-line-height;
14 | color: $headings-color;
15 |
16 | small,
17 | .small {
18 | font-weight: normal;
19 | line-height: 1;
20 | color: $headings-small-color;
21 | }
22 | }
23 |
24 | h1, .h1,
25 | h2, .h2,
26 | h3, .h3 {
27 | margin-top: $line-height-computed;
28 | margin-bottom: ($line-height-computed / 2);
29 |
30 | small,
31 | .small {
32 | font-size: 65%;
33 | }
34 | }
35 | h4, .h4,
36 | h5, .h5,
37 | h6, .h6 {
38 | margin-top: ($line-height-computed / 2);
39 | margin-bottom: ($line-height-computed / 2);
40 |
41 | small,
42 | .small {
43 | font-size: 75%;
44 | }
45 | }
46 |
47 | h1, .h1 { font-size: $font-size-h1; }
48 | h2, .h2 { font-size: $font-size-h2; }
49 | h3, .h3 { font-size: $font-size-h3; }
50 | h4, .h4 { font-size: $font-size-h4; }
51 | h5, .h5 { font-size: $font-size-h5; }
52 | h6, .h6 { font-size: $font-size-h6; }
53 |
54 |
55 | // Body text
56 | // -------------------------
57 |
58 | p {
59 | margin: 0 0 ($line-height-computed / 2);
60 | }
61 |
62 | .lead {
63 | margin-bottom: $line-height-computed;
64 | font-size: floor(($font-size-base * 1.15));
65 | font-weight: 300;
66 | line-height: 1.4;
67 |
68 | @media (min-width: $screen-sm-min) {
69 | font-size: ($font-size-base * 1.5);
70 | }
71 | }
72 |
73 |
74 | // Emphasis & misc
75 | // -------------------------
76 |
77 | // Ex: (12px small font / 14px base font) * 100% = about 85%
78 | small,
79 | .small {
80 | font-size: floor((100% * $font-size-small / $font-size-base));
81 | }
82 |
83 | // Undo browser default styling
84 | cite {
85 | font-style: normal;
86 | }
87 |
88 | mark,
89 | .mark {
90 | background-color: $state-warning-bg;
91 | padding: .2em;
92 | }
93 |
94 | // Alignment
95 | .text-left { text-align: left; }
96 | .text-right { text-align: right; }
97 | .text-center { text-align: center; }
98 | .text-justify { text-align: justify; }
99 | .text-nowrap { white-space: nowrap; }
100 |
101 | // Transformation
102 | .text-lowercase { text-transform: lowercase; }
103 | .text-uppercase { text-transform: uppercase; }
104 | .text-capitalize { text-transform: capitalize; }
105 |
106 | // Contextual colors
107 | .text-muted {
108 | color: $text-muted;
109 | }
110 |
111 | @include text-emphasis-variant('.text-primary', $brand-primary);
112 |
113 | @include text-emphasis-variant('.text-success', $state-success-text);
114 |
115 | @include text-emphasis-variant('.text-info', $state-info-text);
116 |
117 | @include text-emphasis-variant('.text-warning', $state-warning-text);
118 |
119 | @include text-emphasis-variant('.text-danger', $state-danger-text);
120 |
121 | // Contextual backgrounds
122 | // For now we'll leave these alongside the text classes until v4 when we can
123 | // safely shift things around (per SemVer rules).
124 | .bg-primary {
125 | // Given the contrast here, this is the only class to have its color inverted
126 | // automatically.
127 | color: #fff;
128 | }
129 | @include bg-variant('.bg-primary', $brand-primary);
130 |
131 | @include bg-variant('.bg-success', $state-success-bg);
132 |
133 | @include bg-variant('.bg-info', $state-info-bg);
134 |
135 | @include bg-variant('.bg-warning', $state-warning-bg);
136 |
137 | @include bg-variant('.bg-danger', $state-danger-bg);
138 |
139 |
140 | // Page header
141 | // -------------------------
142 |
143 | .page-header {
144 | padding-bottom: (($line-height-computed / 2) - 1);
145 | margin: ($line-height-computed * 2) 0 $line-height-computed;
146 | border-bottom: 1px solid $page-header-border-color;
147 | }
148 |
149 |
150 | // Lists
151 | // -------------------------
152 |
153 | // Unordered and Ordered lists
154 | ul,
155 | ol {
156 | margin-top: 0;
157 | margin-bottom: ($line-height-computed / 2);
158 | ul,
159 | ol {
160 | margin-bottom: 0;
161 | }
162 | }
163 |
164 | // List options
165 |
166 | // Unstyled keeps list items block level, just removes default browser padding and list-style
167 | .list-unstyled {
168 | padding-left: 0;
169 | list-style: none;
170 | }
171 |
172 | // Inline turns list items into inline-block
173 | .list-inline {
174 | @extend .list-unstyled;
175 | margin-left: -5px;
176 |
177 | > li {
178 | display: inline-block;
179 | padding-left: 5px;
180 | padding-right: 5px;
181 | }
182 | }
183 |
184 | // Description Lists
185 | dl {
186 | margin-top: 0; // Remove browser default
187 | margin-bottom: $line-height-computed;
188 | }
189 | dt,
190 | dd {
191 | line-height: $line-height-base;
192 | }
193 | dt {
194 | font-weight: bold;
195 | }
196 | dd {
197 | margin-left: 0; // Undo browser default
198 | }
199 |
200 | // Horizontal description lists
201 | //
202 | // Defaults to being stacked without any of the below styles applied, until the
203 | // grid breakpoint is reached (default of ~768px).
204 |
205 | .dl-horizontal {
206 | dd {
207 | @include clearfix(); // Clear the floated `dt` if an empty `dd` is present
208 | }
209 |
210 | @media (min-width: $grid-float-breakpoint) {
211 | dt {
212 | float: left;
213 | width: ($dl-horizontal-offset - 20);
214 | clear: left;
215 | text-align: right;
216 | @include text-overflow();
217 | }
218 | dd {
219 | margin-left: $dl-horizontal-offset;
220 | }
221 | }
222 | }
223 |
224 |
225 | // Misc
226 | // -------------------------
227 |
228 | // Abbreviations and acronyms
229 | abbr[title],
230 | // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
231 | abbr[data-original-title] {
232 | cursor: help;
233 | border-bottom: 1px dotted $abbr-border-color;
234 | }
235 | .initialism {
236 | font-size: 90%;
237 | text-transform: uppercase;
238 | }
239 |
240 | // Blockquotes
241 | blockquote {
242 | padding: ($line-height-computed / 2) $line-height-computed;
243 | margin: 0 0 $line-height-computed;
244 | font-size: $blockquote-font-size;
245 | border-left: 5px solid $blockquote-border-color;
246 |
247 | p,
248 | ul,
249 | ol {
250 | &:last-child {
251 | margin-bottom: 0;
252 | }
253 | }
254 |
255 | // Note: Deprecated small and .small as of v3.1.0
256 | // Context: https://github.com/twbs/bootstrap/issues/11660
257 | footer,
258 | small,
259 | .small {
260 | display: block;
261 | font-size: 80%; // back to default font-size
262 | line-height: $line-height-base;
263 | color: $blockquote-small-color;
264 |
265 | &:before {
266 | content: '\2014 \00A0'; // em dash, nbsp
267 | }
268 | }
269 | }
270 |
271 | // Opposite alignment of blockquote
272 | //
273 | // Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
274 | .blockquote-reverse,
275 | blockquote.pull-right {
276 | padding-right: 15px;
277 | padding-left: 0;
278 | border-right: 5px solid $blockquote-border-color;
279 | border-left: 0;
280 | text-align: right;
281 |
282 | // Account for citation
283 | footer,
284 | small,
285 | .small {
286 | &:before { content: ''; }
287 | &:after {
288 | content: '\00A0 \2014'; // nbsp, em dash
289 | }
290 | }
291 | }
292 |
293 | // Quotes
294 | blockquote:before,
295 | blockquote:after {
296 | content: "";
297 | }
298 |
299 | // Addresses
300 | address {
301 | margin-bottom: $line-height-computed;
302 | font-style: normal;
303 | line-height: $line-height-base;
304 | }
305 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_theme.scss:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // Load core variables and mixins
4 | // --------------------------------------------------
5 |
6 | @import "variables";
7 | @import "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, 12%));
36 | @include reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
37 | background-repeat: repeat-x;
38 | border-color: darken($btn-color, 14%);
39 |
40 | &:hover,
41 | &:focus {
42 | background-color: darken($btn-color, 12%);
43 | background-position: 0 -15px;
44 | }
45 |
46 | &:active,
47 | &.active {
48 | background-color: darken($btn-color, 12%);
49 | border-color: darken($btn-color, 14%);
50 | }
51 |
52 | &:disabled,
53 | &[disabled] {
54 | background-color: darken($btn-color, 12%);
55 | background-image: none;
56 | }
57 | }
58 |
59 | // Common styles
60 | .btn {
61 | // Remove the gradient for the pressed/active state
62 | &:active,
63 | &.active {
64 | background-image: none;
65 | }
66 | }
67 |
68 | // Apply the mixin to the buttons
69 | .btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
70 | .btn-primary { @include btn-styles($btn-primary-bg); }
71 | .btn-success { @include btn-styles($btn-success-bg); }
72 | .btn-info { @include btn-styles($btn-info-bg); }
73 | .btn-warning { @include btn-styles($btn-warning-bg); }
74 | .btn-danger { @include btn-styles($btn-danger-bg); }
75 |
76 |
77 |
78 | //
79 | // Images
80 | // --------------------------------------------------
81 |
82 | .thumbnail,
83 | .img-thumbnail {
84 | @include box-shadow(0 1px 2px rgba(0,0,0,.075));
85 | }
86 |
87 |
88 |
89 | //
90 | // Dropdowns
91 | // --------------------------------------------------
92 |
93 | .dropdown-menu > li > a:hover,
94 | .dropdown-menu > li > a:focus {
95 | @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
96 | background-color: darken($dropdown-link-hover-bg, 5%);
97 | }
98 | .dropdown-menu > .active > a,
99 | .dropdown-menu > .active > a:hover,
100 | .dropdown-menu > .active > a:focus {
101 | @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
102 | background-color: darken($dropdown-link-active-bg, 5%);
103 | }
104 |
105 |
106 |
107 | //
108 | // Navbar
109 | // --------------------------------------------------
110 |
111 | // Default navbar
112 | .navbar-default {
113 | @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
114 | @include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
115 | border-radius: $navbar-border-radius;
116 | $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
117 | @include box-shadow($shadow);
118 |
119 | .navbar-nav > .active > a {
120 | @include gradient-vertical($start-color: darken($navbar-default-bg, 5%), $end-color: darken($navbar-default-bg, 2%));
121 | @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
122 | }
123 | }
124 | .navbar-brand,
125 | .navbar-nav > li > a {
126 | text-shadow: 0 1px 0 rgba(255,255,255,.25);
127 | }
128 |
129 | // Inverted navbar
130 | .navbar-inverse {
131 | @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
132 | @include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
133 |
134 | .navbar-nav > .active > a {
135 | @include gradient-vertical($start-color: $navbar-inverse-bg, $end-color: lighten($navbar-inverse-bg, 2.5%));
136 | @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
137 | }
138 |
139 | .navbar-brand,
140 | .navbar-nav > li > a {
141 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
142 | }
143 | }
144 |
145 | // Undo rounded corners in static and fixed navbars
146 | .navbar-static-top,
147 | .navbar-fixed-top,
148 | .navbar-fixed-bottom {
149 | border-radius: 0;
150 | }
151 |
152 |
153 |
154 | //
155 | // Alerts
156 | // --------------------------------------------------
157 |
158 | // Common styles
159 | .alert {
160 | text-shadow: 0 1px 0 rgba(255,255,255,.2);
161 | $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
162 | @include box-shadow($shadow);
163 | }
164 |
165 | // Mixin for generating new styles
166 | @mixin alert-styles($color) {
167 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
168 | border-color: darken($color, 15%);
169 | }
170 |
171 | // Apply the mixin to the alerts
172 | .alert-success { @include alert-styles($alert-success-bg); }
173 | .alert-info { @include alert-styles($alert-info-bg); }
174 | .alert-warning { @include alert-styles($alert-warning-bg); }
175 | .alert-danger { @include alert-styles($alert-danger-bg); }
176 |
177 |
178 |
179 | //
180 | // Progress bars
181 | // --------------------------------------------------
182 |
183 | // Give the progress background some depth
184 | .progress {
185 | @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
186 | }
187 |
188 | // Mixin for generating new styles
189 | @mixin progress-bar-styles($color) {
190 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
191 | }
192 |
193 | // Apply the mixin to the progress bars
194 | .progress-bar { @include progress-bar-styles($progress-bar-bg); }
195 | .progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
196 | .progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
197 | .progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
198 | .progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
199 |
200 | // Reset the striped class because our mixins don't do multiple gradients and
201 | // the above custom styles override the new `.progress-bar-striped` in v3.2.0.
202 | .progress-bar-striped {
203 | @include gradient-striped();
204 | }
205 |
206 |
207 | //
208 | // List groups
209 | // --------------------------------------------------
210 |
211 | .list-group {
212 | border-radius: $border-radius-base;
213 | @include box-shadow(0 1px 2px rgba(0,0,0,.075));
214 | }
215 | .list-group-item.active,
216 | .list-group-item.active:hover,
217 | .list-group-item.active:focus {
218 | text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
219 | @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
220 | border-color: darken($list-group-active-border, 7.5%);
221 | }
222 |
223 |
224 |
225 | //
226 | // Panels
227 | // --------------------------------------------------
228 |
229 | // Common styles
230 | .panel {
231 | @include box-shadow(0 1px 2px rgba(0,0,0,.05));
232 | }
233 |
234 | // Mixin for generating new styles
235 | @mixin panel-heading-styles($color) {
236 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
237 | }
238 |
239 | // Apply the mixin to the panel headings only
240 | .panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
241 | .panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
242 | .panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
243 | .panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
244 | .panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
245 | .panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
246 |
247 |
248 |
249 | //
250 | // Wells
251 | // --------------------------------------------------
252 |
253 | .well {
254 | @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
255 | border-color: darken($well-bg, 10%);
256 | $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
257 | @include box-shadow($shadow);
258 | }
259 |
--------------------------------------------------------------------------------
/css/_sass/base.scss:
--------------------------------------------------------------------------------
1 | html {
2 | overflow-y: scroll;
3 | }
4 | html,
5 | body {
6 | height: 100%;
7 | }
8 | body {
9 | font: 16px Ubuntu;
10 | margin: 0;
11 | }
12 | /*
13 | body .navbar-brand {
14 | padding: 0;
15 | }
16 | .navbar-default .navbar-nav > li > a {
17 | font-size: 16px;
18 | }
19 | */
20 | .post-list {
21 | margin: 0;
22 | padding: 0;
23 | list-style: none;
24 | }
25 | /*
26 | h2 {
27 | font-size: 30px;
28 | border-bottom: 4px solid $brand-color;
29 | display: inline-block;
30 | white-space: pre-line;
31 | clear: both;
32 | padding: 0 20px 5px 0;
33 | }
34 | */
35 | /*
36 | h3 {
37 | border-bottom: 2px solid $brand-color;
38 | display: inline-block;
39 | white-space: pre-line;
40 | clear: both;
41 | padding: 0 20px 5px 0;
42 | }
43 | */
44 | .stats h4 {
45 | line-height: 62px;
46 | font-size: 24px;
47 | padding: 0;
48 | margin: 0;
49 | }
50 | /*
51 | .counter {
52 | font-size: 30px;
53 | color: $brand-color;
54 | width: 100%;
55 | border-radius: 5px;
56 | text-align: center;
57 | background-color: #2b2a27;
58 | padding: 10px 20px;
59 | }
60 | */
61 | .json-schema {
62 | background-color: #222;
63 | color: #fff;
64 | border-radius: 2px;
65 | margin-bottom: 30px;
66 | padding: 20px 0;
67 | }
68 | .json-schema .property {
69 | font-family: Verdana;
70 | padding: 1px 20px;
71 | }
72 | .json-schema .name {
73 | color: $brand-color;
74 | }
75 | .json-schema .description {
76 | font-size: 11px;
77 | color: #7a7267;
78 | -moz-user-select: none;
79 | -khtml-user-select: none;
80 | -webkit-user-select: none;
81 | -ms-user-select: none;
82 | user-select: none;
83 | }
84 |
85 | a {
86 | }
87 | a:hover {
88 | color: #999;
89 | text-decoration: none;
90 | }
91 | h1,
92 | h2,
93 | h3 {
94 | margin: 0;
95 | }
96 | h2 {
97 | font-weight: 400;
98 | font-size: 28px;
99 | margin-bottom: .5em;
100 | }
101 | h3 {
102 | font-weight: 700;
103 | font-size: 20px;
104 | margin: 1.5em 0 .8em;
105 | }
106 | p {
107 | margin: 1em 0;
108 | }
109 | p,
110 | li {
111 | line-height: 1.5;
112 | }
113 | .container {
114 | max-width: 970px;
115 | padding: 0 30px;
116 | }
117 | .button {
118 | background-color: #ececec;
119 | background-image: linear-gradient(#f4f4f4, #ececec);
120 | -webkit-border-radius: 3px;
121 | border-radius: 3px;
122 | border: none;
123 | border: 1px solid #ddd;
124 | border-bottom-color: #ccc;
125 | color: #333;
126 | cursor: pointer;
127 | display: inline-block;
128 | line-height: 18px;
129 | outline: 0;
130 | padding: 8px 20px;
131 | text-align: center;
132 | }
133 | .button:hover {
134 | border-color: #ccc;
135 | color: inherit;
136 | text-decoration: none;
137 | }
138 | #wrap {
139 | height: 100%;
140 | overflow: hidden;
141 | }
142 | #viewport {
143 | height: 100%;
144 | transition: all .4s;
145 | -webkit-transform: translateZ(0);
146 | transform: translateZ(0);
147 | -webkit-perspective: 1000;
148 | perspective: 1000;
149 | }
150 | #sidebar {
151 | background: #f9f9f9;
152 | border-right: 1px solid #eee;
153 | bottom: 0;
154 | left: -220px;
155 | position: absolute;
156 | padding-top: 19px;
157 | top: 0;
158 | width: 220px;
159 | }
160 | #sidebar a {
161 | display: block;
162 | padding: 15px 30px;
163 | }
164 | #sidebar a + a {
165 | border-top: 1px solid #eee;
166 | }
167 | #nav {
168 | background: #faf07b;
169 | border-bottom: 1px solid #faf07b * .97;
170 | font-size: 14px;
171 | }
172 | #nav button {
173 | margin-left: 10px;
174 | }
175 | #nav a {
176 | display: inline-block;
177 | color: #000;
178 | padding: 25px 20px 24px;
179 | }
180 | #nav a:hover {
181 | text-decoration: none;
182 | }
183 | #nav a.active {
184 | font-weight: 700;
185 | }
186 | #nav .pull-right {
187 | height: 45px;
188 | line-height: 46px;
189 | margin: 5px 0;
190 | }
191 | #nav .button {
192 | margin-top: 10px;
193 | padding: 8px 20px;
194 | }
195 | #nav .github:before {
196 | float: left;
197 | font: 16px FontAwesome;
198 | content: "\f09b";
199 | margin-right: 8px;
200 | margin-top: 1px;
201 | }
202 | #nav #sidebar-toggle {
203 | display: none;
204 | position: absolute;
205 | outline: 0;
206 | margin-left: -20px;
207 | text-decoration: none;
208 | top: 1px;
209 | }
210 | #nav #logo {
211 | color: #000;
212 | font: 700 16px Ubuntu;
213 | margin-right: 20px;
214 | padding: 10px 0;
215 | }
216 | #header {
217 | background: #f9f9f9;
218 | border-bottom: 1px solid #eee;
219 | overflow: hidden;
220 | padding: 60px 0;
221 | }
222 | #start {
223 | margin-top: 25px;
224 | }
225 | #start h2 {
226 | margin-top: 16px;
227 | }
228 | #start .examples {
229 | margin-bottom: 40px;
230 | overflow: hidden;
231 | }
232 | #start .media-object {
233 | border-radius: 2px;
234 | }
235 | #schema {
236 | border: 1px solid #eee;
237 | border-radius: 2px;
238 | }
239 | #schema pre {
240 | background: none;
241 | border: 0;
242 | font-family: monospace;
243 | padding: 10px;
244 | padding-bottom: 0;
245 | }
246 | #schema .header {
247 | background: #f9f9f9;
248 | color: #666;
249 | padding: 14px 18px;
250 | line-height: 19px;
251 | text-transform: uppercase;
252 | font-size: 12px;
253 | }
254 | #schema .header .version {
255 | color: #ccc;
256 | }
257 | #search:before {
258 | color: #ccc;
259 | content: "\f002";
260 | cursor: text;
261 | font: 24px FontAwesome;
262 | position: absolute;
263 | top: 74px;
264 | right: 34px;
265 | }
266 | #search input {
267 | border: 1px solid #ddd;
268 | border-radius: 2px;
269 | font-size: 20px;
270 | margin-top: 20px;
271 | padding: 16px 20px;
272 | outline: 0;
273 | width: 100%;
274 | }
275 | #docs section {
276 | margin-top: 60px;
277 | }
278 | #docs h2 {
279 | margin-bottom: 30px;
280 | line-height: 1.2;
281 | }
282 | #docs .desc {
283 | color: #aaa;
284 | display: block;
285 | font-size: 12px;
286 | margin-top: 8px;
287 | }
288 | #docs .item {
289 | background: #f9f9f9;
290 | border: 1px solid #eee;
291 | border-radius: 2px;
292 | color: #666;
293 | display: block;
294 | min-height: 20px;
295 | margin-bottom: 30px;
296 | padding: 20px;
297 | }
298 | #docs .item:hover {
299 | color: #000;
300 | text-decoration: none;
301 | }
302 | #getting-started {
303 | margin-top: 20px;
304 | }
305 | #getting-started h2 {
306 | margin-top: 40px;
307 | }
308 | #getting-started section + section {
309 | margin-top: 60px;
310 | }
311 | #stats {
312 | margin-top: 20px;
313 | }
314 | #stats h4 {
315 | line-height: 28px;
316 | font-size: 20px;
317 | font-weight: 400;
318 | margin: 0;
319 | padding: 10px 0;
320 | }
321 | #stats .counter {
322 | background: rgba(0, 0, 0, 0.04);
323 | font-size: 24px;
324 | font-weight: 400;
325 | padding: 10px;
326 | text-align: center;
327 | }
328 | #themes {
329 | margin-top: 60px;
330 | }
331 | #themes .theme {
332 | background: #f9f9f9;
333 | border: 1px solid #eee;
334 | border-radius: 2px;
335 | color: #000;
336 | margin-bottom: 30px;
337 | padding: 20px;
338 | }
339 | #themes .theme img {
340 | border: 1px solid #ddd;
341 | width: 100%;
342 | }
343 | #themes .theme img:hover {
344 | border-color: #ccc;
345 | }
346 | #themes .theme .button {
347 | display: block;
348 | margin-top: 20px;
349 | }
350 | #themes .meta {
351 | margin-top: 10px;
352 | line-height: 1.4;
353 | }
354 | #themes .meta .name {
355 | font-size: 18px;
356 | font-weight: 700;
357 | }
358 | #themes .meta .rating {
359 | margin-top: 5px;
360 | font-size: 12px;
361 | letter-spacing: 1px;
362 | }
363 | #blog h2 {
364 | margin-top: 10px;
365 | }
366 | #blog article {
367 | margin-top: 40px;
368 | }
369 | #blog header {
370 | margin-bottom: 1.5em;
371 | }
372 | #blog .date {
373 | color: #999;
374 | margin-top: 5px;
375 | }
376 | #team {
377 | margin-top: 40px;
378 | }
379 | #team .contributing {
380 | margin-bottom: 40px;
381 | }
382 | #team .tile {
383 | background: #f9f9f9;
384 | border: 1px solid #eee;
385 | border-radius: 2px;
386 | color: #666;
387 | display: block;
388 | font-size: 13px;
389 | min-height: 20px;
390 | overflow: hidden;
391 | margin-bottom: 30px;
392 | padding: 20px;
393 | }
394 | #team .avatar {
395 | border-radius: 2px;
396 | float: left;
397 | margin-right: 16px;
398 | }
399 | #team .person {
400 | overflow: hidden;
401 | margin-bottom: 16px;
402 | }
403 | #team .person .name {
404 | margin: 5px 0 3px;
405 | }
406 | #team .person a {
407 | color: #999;
408 | font-size: 13px;
409 | }
410 | #team .person a + a {
411 | margin-left: 6px;
412 | }
413 | #team .person a:hover,
414 | #team .person a:hover:before {
415 | color: #d14;
416 | }
417 | #team .person .github:before {
418 | color: #ccc;
419 | font: 14px FontAwesome;
420 | content: "\f09b";
421 | margin-right: 6px;
422 | }
423 | #team .person .twitter:before {
424 | color: #ddd;
425 | font: 14px FontAwesome;
426 | content: "\f099";
427 | margin-right: 6px;
428 | }
429 | #footer {
430 | color: #ddd;
431 | font-size: 12px;
432 | line-height: 1em;
433 | margin-top: 40px;
434 | margin-bottom: 60px;
435 | text-align: center;
436 | text-transform: uppercase;
437 | }
438 | #footer a {
439 | color: inherit;
440 | text-decoration: none;
441 | }
442 | #footer a:hover {
443 | color: #f3ef81;
444 | }
445 |
446 | @media (max-width: 768px) {
447 | #nav a {
448 | display: none;
449 | }
450 | #nav #logo,
451 | #nav #sidebar-toggle {
452 | display: block;
453 | }
454 | #nav #logo {
455 | margin: 0;
456 | padding: 25px 0 24px;
457 | text-align: center;
458 | }
459 | #sidebar-toggle:before {
460 | font: 18px FontAwesome;
461 | content: "\f0c9";
462 | }
463 | #viewport.lt {
464 | -webkit-transform: translate3d(220px, 0, 0);
465 | transform: translate3d(220px, 0, 0);
466 | }
467 | }
468 | @media (max-width: 992px) {
469 | #nav .pull-right {
470 | display: none;
471 | }
472 | }
473 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_normalize.scss:
--------------------------------------------------------------------------------
1 | /*! normalize.css v3.0.1 | MIT License | git.io/normalize */
2 |
3 | //
4 | // 1. Set default font family to sans-serif.
5 | // 2. Prevent iOS text size adjust after orientation change, without disabling
6 | // user zoom.
7 | //
8 |
9 | html {
10 | font-family: sans-serif; // 1
11 | -ms-text-size-adjust: 100%; // 2
12 | -webkit-text-size-adjust: 100%; // 2
13 | }
14 |
15 | //
16 | // Remove default margin.
17 | //
18 |
19 | body {
20 | margin: 0;
21 | }
22 |
23 | // HTML5 display definitions
24 | // ==========================================================================
25 |
26 | //
27 | // Correct `block` display not defined for any HTML5 element in IE 8/9.
28 | // Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
29 | // Correct `block` display not defined for `main` in IE 11.
30 | //
31 |
32 | article,
33 | aside,
34 | details,
35 | figcaption,
36 | figure,
37 | footer,
38 | header,
39 | hgroup,
40 | main,
41 | nav,
42 | section,
43 | summary {
44 | display: block;
45 | }
46 |
47 | //
48 | // 1. Correct `inline-block` display not defined in IE 8/9.
49 | // 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
50 | //
51 |
52 | audio,
53 | canvas,
54 | progress,
55 | video {
56 | display: inline-block; // 1
57 | vertical-align: baseline; // 2
58 | }
59 |
60 | //
61 | // Prevent modern browsers from displaying `audio` without controls.
62 | // Remove excess height in iOS 5 devices.
63 | //
64 |
65 | audio:not([controls]) {
66 | display: none;
67 | height: 0;
68 | }
69 |
70 | //
71 | // Address `[hidden]` styling not present in IE 8/9/10.
72 | // Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
73 | //
74 |
75 | [hidden],
76 | template {
77 | display: none;
78 | }
79 |
80 | // Links
81 | // ==========================================================================
82 |
83 | //
84 | // Remove the gray background color from active links in IE 10.
85 | //
86 |
87 | a {
88 | background: transparent;
89 | }
90 |
91 | //
92 | // Improve readability when focused and also mouse hovered in all browsers.
93 | //
94 |
95 | a:active,
96 | a:hover {
97 | outline: 0;
98 | }
99 |
100 | // Text-level semantics
101 | // ==========================================================================
102 |
103 | //
104 | // Address styling not present in IE 8/9/10/11, Safari, and Chrome.
105 | //
106 |
107 | abbr[title] {
108 | border-bottom: 1px dotted;
109 | }
110 |
111 | //
112 | // Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
113 | //
114 |
115 | b,
116 | strong {
117 | font-weight: bold;
118 | }
119 |
120 | //
121 | // Address styling not present in Safari and Chrome.
122 | //
123 |
124 | dfn {
125 | font-style: italic;
126 | }
127 |
128 | //
129 | // Address variable `h1` font-size and margin within `section` and `article`
130 | // contexts in Firefox 4+, Safari, and Chrome.
131 | //
132 |
133 | h1 {
134 | font-size: 2em;
135 | margin: 0.67em 0;
136 | }
137 |
138 | //
139 | // Address styling not present in IE 8/9.
140 | //
141 |
142 | mark {
143 | background: #ff0;
144 | color: #000;
145 | }
146 |
147 | //
148 | // Address inconsistent and variable font size in all browsers.
149 | //
150 |
151 | small {
152 | font-size: 80%;
153 | }
154 |
155 | //
156 | // Prevent `sub` and `sup` affecting `line-height` in all browsers.
157 | //
158 |
159 | sub,
160 | sup {
161 | font-size: 75%;
162 | line-height: 0;
163 | position: relative;
164 | vertical-align: baseline;
165 | }
166 |
167 | sup {
168 | top: -0.5em;
169 | }
170 |
171 | sub {
172 | bottom: -0.25em;
173 | }
174 |
175 | // Embedded content
176 | // ==========================================================================
177 |
178 | //
179 | // Remove border when inside `a` element in IE 8/9/10.
180 | //
181 |
182 | img {
183 | border: 0;
184 | }
185 |
186 | //
187 | // Correct overflow not hidden in IE 9/10/11.
188 | //
189 |
190 | svg:not(:root) {
191 | overflow: hidden;
192 | }
193 |
194 | // Grouping content
195 | // ==========================================================================
196 |
197 | //
198 | // Address margin not present in IE 8/9 and Safari.
199 | //
200 |
201 | figure {
202 | margin: 1em 40px;
203 | }
204 |
205 | //
206 | // Address differences between Firefox and other browsers.
207 | //
208 |
209 | hr {
210 | -moz-box-sizing: content-box;
211 | box-sizing: content-box;
212 | height: 0;
213 | }
214 |
215 | //
216 | // Contain overflow in all browsers.
217 | //
218 |
219 | pre {
220 | overflow: auto;
221 | }
222 |
223 | //
224 | // Address odd `em`-unit font size rendering in all browsers.
225 | //
226 |
227 | code,
228 | kbd,
229 | pre,
230 | samp {
231 | font-family: monospace, monospace;
232 | font-size: 1em;
233 | }
234 |
235 | // Forms
236 | // ==========================================================================
237 |
238 | //
239 | // Known limitation: by default, Chrome and Safari on OS X allow very limited
240 | // styling of `select`, unless a `border` property is set.
241 | //
242 |
243 | //
244 | // 1. Correct color not being inherited.
245 | // Known issue: affects color of disabled elements.
246 | // 2. Correct font properties not being inherited.
247 | // 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
248 | //
249 |
250 | button,
251 | input,
252 | optgroup,
253 | select,
254 | textarea {
255 | color: inherit; // 1
256 | font: inherit; // 2
257 | margin: 0; // 3
258 | }
259 |
260 | //
261 | // Address `overflow` set to `hidden` in IE 8/9/10/11.
262 | //
263 |
264 | button {
265 | overflow: visible;
266 | }
267 |
268 | //
269 | // Address inconsistent `text-transform` inheritance for `button` and `select`.
270 | // All other form control elements do not inherit `text-transform` values.
271 | // Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
272 | // Correct `select` style inheritance in Firefox.
273 | //
274 |
275 | button,
276 | select {
277 | text-transform: none;
278 | }
279 |
280 | //
281 | // 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
282 | // and `video` controls.
283 | // 2. Correct inability to style clickable `input` types in iOS.
284 | // 3. Improve usability and consistency of cursor style between image-type
285 | // `input` and others.
286 | //
287 |
288 | button,
289 | html input[type="button"], // 1
290 | input[type="reset"],
291 | input[type="submit"] {
292 | -webkit-appearance: button; // 2
293 | cursor: pointer; // 3
294 | }
295 |
296 | //
297 | // Re-set default cursor for disabled elements.
298 | //
299 |
300 | button[disabled],
301 | html input[disabled] {
302 | cursor: default;
303 | }
304 |
305 | //
306 | // Remove inner padding and border in Firefox 4+.
307 | //
308 |
309 | button::-moz-focus-inner,
310 | input::-moz-focus-inner {
311 | border: 0;
312 | padding: 0;
313 | }
314 |
315 | //
316 | // Address Firefox 4+ setting `line-height` on `input` using `!important` in
317 | // the UA stylesheet.
318 | //
319 |
320 | input {
321 | line-height: normal;
322 | }
323 |
324 | //
325 | // It's recommended that you don't attempt to style these elements.
326 | // Firefox's implementation doesn't respect box-sizing, padding, or width.
327 | //
328 | // 1. Address box sizing set to `content-box` in IE 8/9/10.
329 | // 2. Remove excess padding in IE 8/9/10.
330 | //
331 |
332 | input[type="checkbox"],
333 | input[type="radio"] {
334 | box-sizing: border-box; // 1
335 | padding: 0; // 2
336 | }
337 |
338 | //
339 | // Fix the cursor style for Chrome's increment/decrement buttons. For certain
340 | // `font-size` values of the `input`, it causes the cursor style of the
341 | // decrement button to change from `default` to `text`.
342 | //
343 |
344 | input[type="number"]::-webkit-inner-spin-button,
345 | input[type="number"]::-webkit-outer-spin-button {
346 | height: auto;
347 | }
348 |
349 | //
350 | // 1. Address `appearance` set to `searchfield` in Safari and Chrome.
351 | // 2. Address `box-sizing` set to `border-box` in Safari and Chrome
352 | // (include `-moz` to future-proof).
353 | //
354 |
355 | input[type="search"] {
356 | -webkit-appearance: textfield; // 1
357 | -moz-box-sizing: content-box;
358 | -webkit-box-sizing: content-box; // 2
359 | box-sizing: content-box;
360 | }
361 |
362 | //
363 | // Remove inner padding and search cancel button in Safari and Chrome on OS X.
364 | // Safari (but not Chrome) clips the cancel button when the search input has
365 | // padding (and `textfield` appearance).
366 | //
367 |
368 | input[type="search"]::-webkit-search-cancel-button,
369 | input[type="search"]::-webkit-search-decoration {
370 | -webkit-appearance: none;
371 | }
372 |
373 | //
374 | // Define consistent border, margin, and padding.
375 | //
376 |
377 | fieldset {
378 | border: 1px solid #c0c0c0;
379 | margin: 0 2px;
380 | padding: 0.35em 0.625em 0.75em;
381 | }
382 |
383 | //
384 | // 1. Correct `color` not being inherited in IE 8/9/10/11.
385 | // 2. Remove padding so people aren't caught out if they zero out fieldsets.
386 | //
387 |
388 | legend {
389 | border: 0; // 1
390 | padding: 0; // 2
391 | }
392 |
393 | //
394 | // Remove default vertical scrollbar in IE 8/9/10/11.
395 | //
396 |
397 | textarea {
398 | overflow: auto;
399 | }
400 |
401 | //
402 | // Don't inherit the `font-weight` (applied by a rule above).
403 | // NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
404 | //
405 |
406 | optgroup {
407 | font-weight: bold;
408 | }
409 |
410 | // Tables
411 | // ==========================================================================
412 |
413 | //
414 | // Remove most spacing between table cells.
415 | //
416 |
417 | table {
418 | border-collapse: collapse;
419 | border-spacing: 0;
420 | }
421 |
422 | td,
423 | th {
424 | padding: 0;
425 | }
426 |
--------------------------------------------------------------------------------
/css/_sass/bootstrap/_glyphicons.scss:
--------------------------------------------------------------------------------
1 | //= depend_on "bootstrap/glyphicons-halflings-regular.eot"
2 | //= depend_on "bootstrap/glyphicons-halflings-regular.svg"
3 | //= depend_on "bootstrap/glyphicons-halflings-regular.ttf"
4 | //= depend_on "bootstrap/glyphicons-halflings-regular.woff"
5 | //
6 | // Glyphicons for Bootstrap
7 | //
8 | // Since icons are fonts, they can be placed anywhere text is placed and are
9 | // thus automatically sized to match the surrounding child. To use, create an
10 | // inline element with the appropriate classes, like so:
11 | //
12 | //
Star
13 |
14 | // Import the fonts
15 | @font-face {
16 | font-family: 'Glyphicons Halflings';
17 | src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
18 | src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
19 | url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
20 | url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
21 | url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
22 | }
23 |
24 | // Catchall baseclass
25 | .glyphicon {
26 | position: relative;
27 | top: 1px;
28 | display: inline-block;
29 | font-family: 'Glyphicons Halflings';
30 | font-style: normal;
31 | font-weight: normal;
32 | line-height: 1;
33 | -webkit-font-smoothing: antialiased;
34 | -moz-osx-font-smoothing: grayscale;
35 | }
36 |
37 | // Individual icons
38 | .glyphicon-asterisk { &:before { content: "\2a"; } }
39 | .glyphicon-plus { &:before { content: "\2b"; } }
40 | .glyphicon-euro { &:before { content: "\20ac"; } }
41 | .glyphicon-minus { &:before { content: "\2212"; } }
42 | .glyphicon-cloud { &:before { content: "\2601"; } }
43 | .glyphicon-envelope { &:before { content: "\2709"; } }
44 | .glyphicon-pencil { &:before { content: "\270f"; } }
45 | .glyphicon-glass { &:before { content: "\e001"; } }
46 | .glyphicon-music { &:before { content: "\e002"; } }
47 | .glyphicon-search { &:before { content: "\e003"; } }
48 | .glyphicon-heart { &:before { content: "\e005"; } }
49 | .glyphicon-star { &:before { content: "\e006"; } }
50 | .glyphicon-star-empty { &:before { content: "\e007"; } }
51 | .glyphicon-user { &:before { content: "\e008"; } }
52 | .glyphicon-film { &:before { content: "\e009"; } }
53 | .glyphicon-th-large { &:before { content: "\e010"; } }
54 | .glyphicon-th { &:before { content: "\e011"; } }
55 | .glyphicon-th-list { &:before { content: "\e012"; } }
56 | .glyphicon-ok { &:before { content: "\e013"; } }
57 | .glyphicon-remove { &:before { content: "\e014"; } }
58 | .glyphicon-zoom-in { &:before { content: "\e015"; } }
59 | .glyphicon-zoom-out { &:before { content: "\e016"; } }
60 | .glyphicon-off { &:before { content: "\e017"; } }
61 | .glyphicon-signal { &:before { content: "\e018"; } }
62 | .glyphicon-cog { &:before { content: "\e019"; } }
63 | .glyphicon-trash { &:before { content: "\e020"; } }
64 | .glyphicon-home { &:before { content: "\e021"; } }
65 | .glyphicon-file { &:before { content: "\e022"; } }
66 | .glyphicon-time { &:before { content: "\e023"; } }
67 | .glyphicon-road { &:before { content: "\e024"; } }
68 | .glyphicon-download-alt { &:before { content: "\e025"; } }
69 | .glyphicon-download { &:before { content: "\e026"; } }
70 | .glyphicon-upload { &:before { content: "\e027"; } }
71 | .glyphicon-inbox { &:before { content: "\e028"; } }
72 | .glyphicon-play-circle { &:before { content: "\e029"; } }
73 | .glyphicon-repeat { &:before { content: "\e030"; } }
74 | .glyphicon-refresh { &:before { content: "\e031"; } }
75 | .glyphicon-list-alt { &:before { content: "\e032"; } }
76 | .glyphicon-lock { &:before { content: "\e033"; } }
77 | .glyphicon-flag { &:before { content: "\e034"; } }
78 | .glyphicon-headphones { &:before { content: "\e035"; } }
79 | .glyphicon-volume-off { &:before { content: "\e036"; } }
80 | .glyphicon-volume-down { &:before { content: "\e037"; } }
81 | .glyphicon-volume-up { &:before { content: "\e038"; } }
82 | .glyphicon-qrcode { &:before { content: "\e039"; } }
83 | .glyphicon-barcode { &:before { content: "\e040"; } }
84 | .glyphicon-tag { &:before { content: "\e041"; } }
85 | .glyphicon-tags { &:before { content: "\e042"; } }
86 | .glyphicon-book { &:before { content: "\e043"; } }
87 | .glyphicon-bookmark { &:before { content: "\e044"; } }
88 | .glyphicon-print { &:before { content: "\e045"; } }
89 | .glyphicon-camera { &:before { content: "\e046"; } }
90 | .glyphicon-font { &:before { content: "\e047"; } }
91 | .glyphicon-bold { &:before { content: "\e048"; } }
92 | .glyphicon-italic { &:before { content: "\e049"; } }
93 | .glyphicon-text-height { &:before { content: "\e050"; } }
94 | .glyphicon-text-width { &:before { content: "\e051"; } }
95 | .glyphicon-align-left { &:before { content: "\e052"; } }
96 | .glyphicon-align-center { &:before { content: "\e053"; } }
97 | .glyphicon-align-right { &:before { content: "\e054"; } }
98 | .glyphicon-align-justify { &:before { content: "\e055"; } }
99 | .glyphicon-list { &:before { content: "\e056"; } }
100 | .glyphicon-indent-left { &:before { content: "\e057"; } }
101 | .glyphicon-indent-right { &:before { content: "\e058"; } }
102 | .glyphicon-facetime-video { &:before { content: "\e059"; } }
103 | .glyphicon-picture { &:before { content: "\e060"; } }
104 | .glyphicon-map-marker { &:before { content: "\e062"; } }
105 | .glyphicon-adjust { &:before { content: "\e063"; } }
106 | .glyphicon-tint { &:before { content: "\e064"; } }
107 | .glyphicon-edit { &:before { content: "\e065"; } }
108 | .glyphicon-share { &:before { content: "\e066"; } }
109 | .glyphicon-check { &:before { content: "\e067"; } }
110 | .glyphicon-move { &:before { content: "\e068"; } }
111 | .glyphicon-step-backward { &:before { content: "\e069"; } }
112 | .glyphicon-fast-backward { &:before { content: "\e070"; } }
113 | .glyphicon-backward { &:before { content: "\e071"; } }
114 | .glyphicon-play { &:before { content: "\e072"; } }
115 | .glyphicon-pause { &:before { content: "\e073"; } }
116 | .glyphicon-stop { &:before { content: "\e074"; } }
117 | .glyphicon-forward { &:before { content: "\e075"; } }
118 | .glyphicon-fast-forward { &:before { content: "\e076"; } }
119 | .glyphicon-step-forward { &:before { content: "\e077"; } }
120 | .glyphicon-eject { &:before { content: "\e078"; } }
121 | .glyphicon-chevron-left { &:before { content: "\e079"; } }
122 | .glyphicon-chevron-right { &:before { content: "\e080"; } }
123 | .glyphicon-plus-sign { &:before { content: "\e081"; } }
124 | .glyphicon-minus-sign { &:before { content: "\e082"; } }
125 | .glyphicon-remove-sign { &:before { content: "\e083"; } }
126 | .glyphicon-ok-sign { &:before { content: "\e084"; } }
127 | .glyphicon-question-sign { &:before { content: "\e085"; } }
128 | .glyphicon-info-sign { &:before { content: "\e086"; } }
129 | .glyphicon-screenshot { &:before { content: "\e087"; } }
130 | .glyphicon-remove-circle { &:before { content: "\e088"; } }
131 | .glyphicon-ok-circle { &:before { content: "\e089"; } }
132 | .glyphicon-ban-circle { &:before { content: "\e090"; } }
133 | .glyphicon-arrow-left { &:before { content: "\e091"; } }
134 | .glyphicon-arrow-right { &:before { content: "\e092"; } }
135 | .glyphicon-arrow-up { &:before { content: "\e093"; } }
136 | .glyphicon-arrow-down { &:before { content: "\e094"; } }
137 | .glyphicon-share-alt { &:before { content: "\e095"; } }
138 | .glyphicon-resize-full { &:before { content: "\e096"; } }
139 | .glyphicon-resize-small { &:before { content: "\e097"; } }
140 | .glyphicon-exclamation-sign { &:before { content: "\e101"; } }
141 | .glyphicon-gift { &:before { content: "\e102"; } }
142 | .glyphicon-leaf { &:before { content: "\e103"; } }
143 | .glyphicon-fire { &:before { content: "\e104"; } }
144 | .glyphicon-eye-open { &:before { content: "\e105"; } }
145 | .glyphicon-eye-close { &:before { content: "\e106"; } }
146 | .glyphicon-warning-sign { &:before { content: "\e107"; } }
147 | .glyphicon-plane { &:before { content: "\e108"; } }
148 | .glyphicon-calendar { &:before { content: "\e109"; } }
149 | .glyphicon-random { &:before { content: "\e110"; } }
150 | .glyphicon-comment { &:before { content: "\e111"; } }
151 | .glyphicon-magnet { &:before { content: "\e112"; } }
152 | .glyphicon-chevron-up { &:before { content: "\e113"; } }
153 | .glyphicon-chevron-down { &:before { content: "\e114"; } }
154 | .glyphicon-retweet { &:before { content: "\e115"; } }
155 | .glyphicon-shopping-cart { &:before { content: "\e116"; } }
156 | .glyphicon-folder-close { &:before { content: "\e117"; } }
157 | .glyphicon-folder-open { &:before { content: "\e118"; } }
158 | .glyphicon-resize-vertical { &:before { content: "\e119"; } }
159 | .glyphicon-resize-horizontal { &:before { content: "\e120"; } }
160 | .glyphicon-hdd { &:before { content: "\e121"; } }
161 | .glyphicon-bullhorn { &:before { content: "\e122"; } }
162 | .glyphicon-bell { &:before { content: "\e123"; } }
163 | .glyphicon-certificate { &:before { content: "\e124"; } }
164 | .glyphicon-thumbs-up { &:before { content: "\e125"; } }
165 | .glyphicon-thumbs-down { &:before { content: "\e126"; } }
166 | .glyphicon-hand-right { &:before { content: "\e127"; } }
167 | .glyphicon-hand-left { &:before { content: "\e128"; } }
168 | .glyphicon-hand-up { &:before { content: "\e129"; } }
169 | .glyphicon-hand-down { &:before { content: "\e130"; } }
170 | .glyphicon-circle-arrow-right { &:before { content: "\e131"; } }
171 | .glyphicon-circle-arrow-left { &:before { content: "\e132"; } }
172 | .glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
173 | .glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
174 | .glyphicon-globe { &:before { content: "\e135"; } }
175 | .glyphicon-wrench { &:before { content: "\e136"; } }
176 | .glyphicon-tasks { &:before { content: "\e137"; } }
177 | .glyphicon-filter { &:before { content: "\e138"; } }
178 | .glyphicon-briefcase { &:before { content: "\e139"; } }
179 | .glyphicon-fullscreen { &:before { content: "\e140"; } }
180 | .glyphicon-dashboard { &:before { content: "\e141"; } }
181 | .glyphicon-paperclip { &:before { content: "\e142"; } }
182 | .glyphicon-heart-empty { &:before { content: "\e143"; } }
183 | .glyphicon-link { &:before { content: "\e144"; } }
184 | .glyphicon-phone { &:before { content: "\e145"; } }
185 | .glyphicon-pushpin { &:before { content: "\e146"; } }
186 | .glyphicon-usd { &:before { content: "\e148"; } }
187 | .glyphicon-gbp { &:before { content: "\e149"; } }
188 | .glyphicon-sort { &:before { content: "\e150"; } }
189 | .glyphicon-sort-by-alphabet { &:before { content: "\e151"; } }
190 | .glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } }
191 | .glyphicon-sort-by-order { &:before { content: "\e153"; } }
192 | .glyphicon-sort-by-order-alt { &:before { content: "\e154"; } }
193 | .glyphicon-sort-by-attributes { &:before { content: "\e155"; } }
194 | .glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
195 | .glyphicon-unchecked { &:before { content: "\e157"; } }
196 | .glyphicon-expand { &:before { content: "\e158"; } }
197 | .glyphicon-collapse-down { &:before { content: "\e159"; } }
198 | .glyphicon-collapse-up { &:before { content: "\e160"; } }
199 | .glyphicon-log-in { &:before { content: "\e161"; } }
200 | .glyphicon-flash { &:before { content: "\e162"; } }
201 | .glyphicon-log-out { &:before { content: "\e163"; } }
202 | .glyphicon-new-window { &:before { content: "\e164"; } }
203 | .glyphicon-record { &:before { content: "\e165"; } }
204 | .glyphicon-save { &:before { content: "\e166"; } }
205 | .glyphicon-open { &:before { content: "\e167"; } }
206 | .glyphicon-saved { &:before { content: "\e168"; } }
207 | .glyphicon-import { &:before { content: "\e169"; } }
208 | .glyphicon-export { &:before { content: "\e170"; } }
209 | .glyphicon-send { &:before { content: "\e171"; } }
210 | .glyphicon-floppy-disk { &:before { content: "\e172"; } }
211 | .glyphicon-floppy-saved { &:before { content: "\e173"; } }
212 | .glyphicon-floppy-remove { &:before { content: "\e174"; } }
213 | .glyphicon-floppy-save { &:before { content: "\e175"; } }
214 | .glyphicon-floppy-open { &:before { content: "\e176"; } }
215 | .glyphicon-credit-card { &:before { content: "\e177"; } }
216 | .glyphicon-transfer { &:before { content: "\e178"; } }
217 | .glyphicon-cutlery { &:before { content: "\e179"; } }
218 | .glyphicon-header { &:before { content: "\e180"; } }
219 | .glyphicon-compressed { &:before { content: "\e181"; } }
220 | .glyphicon-earphone { &:before { content: "\e182"; } }
221 | .glyphicon-phone-alt { &:before { content: "\e183"; } }
222 | .glyphicon-tower { &:before { content: "\e184"; } }
223 | .glyphicon-stats { &:before { content: "\e185"; } }
224 | .glyphicon-sd-video { &:before { content: "\e186"; } }
225 | .glyphicon-hd-video { &:before { content: "\e187"; } }
226 | .glyphicon-subtitles { &:before { content: "\e188"; } }
227 | .glyphicon-sound-stereo { &:before { content: "\e189"; } }
228 | .glyphicon-sound-dolby { &:before { content: "\e190"; } }
229 | .glyphicon-sound-5-1 { &:before { content: "\e191"; } }
230 | .glyphicon-sound-6-1 { &:before { content: "\e192"; } }
231 | .glyphicon-sound-7-1 { &:before { content: "\e193"; } }
232 | .glyphicon-copyright-mark { &:before { content: "\e194"; } }
233 | .glyphicon-registration-mark { &:before { content: "\e195"; } }
234 | .glyphicon-cloud-download { &:before { content: "\e197"; } }
235 | .glyphicon-cloud-upload { &:before { content: "\e198"; } }
236 | .glyphicon-tree-conifer { &:before { content: "\e199"; } }
237 | .glyphicon-tree-deciduous { &:before { content: "\e200"; } }
238 |
--------------------------------------------------------------------------------