and elements
3 | // --------------------------------------------------------
4 |
5 | // Inline and block code styles
6 | code,
7 | pre {
8 | padding: 0 3px 2px;
9 | @include font-family-monospace;
10 | font-size: $baseFontSize - 1;
11 | color: $grayDark;
12 | @include border-radius(3px);
13 | }
14 |
15 | // Inline code
16 | code {
17 | padding: 2px 4px;
18 | color: #d14;
19 | background-color: #f7f7f9;
20 | border: 1px solid #e1e1e8;
21 | }
22 |
23 | // Blocks of code
24 | pre {
25 | display: block;
26 | padding: ($baseLineHeight - 1) / 2;
27 | margin: 0 0 $baseLineHeight / 2;
28 | font-size: $baseFontSize * .925; // 13px to 12px
29 | line-height: $baseLineHeight;
30 | word-break: break-all;
31 | word-wrap: break-word;
32 | white-space: pre;
33 | white-space: pre-wrap;
34 | background-color: #f5f5f5;
35 | border: 1px solid #ccc; // fallback for IE7-8
36 | border: 1px solid rgba(0,0,0,.15);
37 | @include border-radius(4px);
38 |
39 | // Make prettyprint styles more spaced out for readability
40 | &.prettyprint {
41 | margin-bottom: $baseLineHeight;
42 | }
43 |
44 | // Account for some code outputs that place code tags in pre tags
45 | code {
46 | padding: 0;
47 | color: inherit;
48 | background-color: transparent;
49 | border: 0;
50 | }
51 | }
52 |
53 | // Enable scrollable blocks of code
54 | .pre-scrollable {
55 | max-height: 340px;
56 | overflow-y: scroll;
57 | }
--------------------------------------------------------------------------------
/lib/_popovers.scss:
--------------------------------------------------------------------------------
1 | // POPOVERS
2 | // --------
3 |
4 | .popover {
5 | position: absolute;
6 | top: 0;
7 | left: 0;
8 | z-index: $zindexPopover;
9 | display: none;
10 | padding: 5px;
11 | &.top { margin-top: -5px; }
12 | &.right { margin-left: -10px; }
13 | &.bottom { margin-top: -10px; }
14 | &.left { margin-left: 10px; }
15 | &.top .arrow { @include popoverArrow-top(5px ,$grayDark); }
16 | &.right .arrow { @include popoverArrow-right(5px ,$grayDark); }
17 | &.bottom .arrow { @include popoverArrow-bottom(5px ,$grayDark); }
18 | &.left .arrow { @include popoverArrow-left(5px ,$grayDark); }
19 | .arrow {
20 | position: absolute;
21 | width: 0;
22 | height: 0;
23 | }
24 | }
25 | .popover-inner {
26 | padding: 3px;
27 | width: 320px;
28 |
29 | overflow: hidden;
30 | background: $grayDark;
31 | // has to be full background declaration for IE fallback
32 | //@include border-radius(6px);
33 | //@include box-shadow(0 3px 7px rgba(0, 0, 0, 0.3));
34 | @include box-shadow(0 1px 2px rgba(0, 0, 0, .2));
35 | @include border-radius(5px);
36 | }
37 |
38 | .popover-title {
39 | padding: 9px 15px;
40 | line-height: 1;
41 | background-color: #f5f5f5;
42 | border-bottom:1px solid #eee;
43 | @include border-radius(3px);
44 | }
45 | .popover-content {
46 | padding: 14px;
47 | min-height: 86px;
48 | background-color: $white;
49 | @include border-radius(5px);
50 | @include background-clip(padding-box);
51 | p, ul, ol {
52 | margin-bottom: 0;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/humans.txt:
--------------------------------------------------------------------------------
1 | /* the humans responsible & colophon */
2 | /* humanstxt.org */
3 |
4 |
5 | /* TEAM */
6 | :
7 | Site:
8 | Twitter:
9 | Location:
10 |
11 | /* THANKS */
12 | Names (& URL):
13 |
14 | /* SITE */
15 | Standards: HTML5, CSS3
16 | Components: Modernizr, jQuery
17 | Software:
18 |
19 |
20 |
21 | -o/-
22 | +oo//-
23 | :ooo+//:
24 | -ooooo///-
25 | /oooooo//:
26 | :ooooooo+//-
27 | -+oooooooo///-
28 | -://////////////+oooooooooo++////////////::
29 | :+ooooooooooooooooooooooooooooooooooooo+:::-
30 | -/+ooooooooooooooooooooooooooooooo+/::////:-
31 | -:+oooooooooooooooooooooooooooo/::///////:-
32 | --/+ooooooooooooooooooooo+::://////:-
33 | -:+ooooooooooooooooo+:://////:--
34 | /ooooooooooooooooo+//////:-
35 | -ooooooooooooooooooo////-
36 | /ooooooooo+oooooooooo//:
37 | :ooooooo+/::/+oooooooo+//-
38 | -oooooo/::///////+oooooo///-
39 | /ooo+::://////:---:/+oooo//:
40 | -o+/::///////:- -:/+o+//-
41 | :-:///////:- -:/://
42 | -////:- --//:
43 | -- -:
44 |
--------------------------------------------------------------------------------
/lib/bootstrap.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v2.0.4
3 | *
4 | * Copyright 2012 Twitter, Inc
5 | * Licensed under the Apache License v2.0
6 | * http://www.apache.org/licenses/LICENSE-2.0
7 | *
8 | * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 | */
10 |
11 | // Core variables and mixins
12 | @import "variables"; // Modify this for custom colors, font-sizes, etc
13 | @import "mixins";
14 |
15 | // CSS Reset
16 | @import "reset";
17 |
18 | // Grid system and page structure
19 | @import "scaffolding";
20 | @import "grid";
21 | @import "layouts";
22 |
23 | // Base CSS
24 | @import "type";
25 | //@import "code";
26 | //@import "forms";
27 | //@import "tables";
28 |
29 | // Components: common
30 | //@import "sprites";
31 | @import "dropdowns";
32 | @import "wells";
33 | @import "component-animations";
34 | @import "close";
35 |
36 | // Components: Buttons & Alerts
37 | @import "buttons";
38 | @import "button-groups";
39 | @import "alerts";
40 |
41 | // Components: Nav
42 | //@import "navs";
43 | //@import "navbar";
44 | //@import "breadcrumbs";
45 | //@import "pagination";
46 | //@import "pager";
47 |
48 | // Components: Popovers
49 | @import "modals";
50 | @import "tooltip";
51 | @import "popovers";
52 |
53 | // Components: Misc
54 | //@import "thumbnails";
55 | //@import "labels-badges";
56 | @import "progress-bars";
57 | //@import "accordion";
58 | //@import "carousel";
59 | @import "hero-unit";
60 |
61 | @import "font-awesome";
62 | @import "icons";
63 | @import "style";
64 |
65 | // Utility classes
66 | @import "utilities"; // Has to be last to override when necessary
67 |
68 |
--------------------------------------------------------------------------------
/lib/_labels-badges.scss:
--------------------------------------------------------------------------------
1 | // LABELS & BADGES
2 | // ---------------
3 |
4 | // Base classes
5 | .label,
6 | .badge {
7 | font-size: $baseFontSize * .846;
8 | font-weight: bold;
9 | line-height: 14px; // ensure proper line-height if floated
10 | color: $white;
11 | vertical-align: baseline;
12 | white-space: nowrap;
13 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
14 | background-color: $grayLight;
15 | }
16 | // Set unique padding and border-radii
17 | .label {
18 | padding: 1px 4px 2px;
19 | @include border-radius(3px);
20 | }
21 | .badge {
22 | padding: 1px 9px 2px;
23 | @include border-radius(9px);
24 | }
25 |
26 | // Hover state, but only for links
27 | a {
28 | &.label:hover,
29 | &.badge:hover {
30 | color: $white;
31 | text-decoration: none;
32 | cursor: pointer;
33 | }
34 | }
35 |
36 | // Colors
37 | // Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
38 | // Important (red)
39 | .label-important, .badge-important { background-color: $errorText; }
40 | .label-important[href], .badge-important[href] { background-color: darken($errorText, 10%); }
41 | // Warnings (orange)
42 | .label-warning, .badge-warning { background-color: $orange; }
43 | .label-warning[href], .badge-warning[href] { background-color: darken($orange, 10%); }
44 | // Success (green)
45 | .label-success, .badge-success { background-color: $successText; }
46 | .label-success[href], .badge-success[href] { background-color: darken($successText, 10%); }
47 | // Info (turquoise)
48 | .label-info, .badge-info { background-color: $infoText; }
49 | .label-info[href], .badge-info[href] { background-color: darken($infoText, 10%); }
50 | // Inverse (black)
51 | .label-inverse, .badge-inverse { background-color: $grayDark; }
52 | .label-inverse[href], .badge-inverse[href] { background-color: darken($grayDark, 10%); }
53 |
--------------------------------------------------------------------------------
/lib/_modals.scss:
--------------------------------------------------------------------------------
1 | // MODALS
2 | // ------
3 |
4 | // Recalculate z-index where appropriate
5 | .modal-open {
6 | .dropdown-menu { z-index: $zindexDropdown + $zindexModal; }
7 | .dropdown.open { *z-index: $zindexDropdown + $zindexModal; }
8 | .popover { z-index: $zindexPopover + $zindexModal; }
9 | .tooltip { z-index: $zindexTooltip + $zindexModal; }
10 | }
11 |
12 | // Background
13 | .modal-backdrop {
14 | position: fixed;
15 | top: 0;
16 | right: 0;
17 | bottom: 0;
18 | left: 0;
19 | z-index: $zindexModalBackdrop;
20 | background-color: $black;
21 | // Fade for backdrop
22 | &.fade { opacity: 0; }
23 | }
24 |
25 | .modal-backdrop,
26 | .modal-backdrop.fade.in {
27 | @include opacity(80);
28 | }
29 |
30 | // Base modal
31 | .modal {
32 | position: fixed;
33 | top: 50%;
34 | left: 50%;
35 | z-index: $zindexModal;
36 |
37 | width: 560px;
38 | margin: -113px 0 0 -280px;
39 | background-color: $white;
40 | border: 1px solid #999;
41 | border: 1px solid rgba(0,0,0,.3);
42 | *border: 1px solid #999; /* IE6-7 */
43 | @include border-radius(6px);
44 | @include box-shadow(0 3px 7px rgba(0,0,0,0.3));
45 | @include background-clip(padding-box);
46 | &.fade {
47 | @include transition(#{opacity .3s linear, top .3s ease-out});
48 | top: -25%;
49 | }
50 | &.fade.in { top: 50%; }
51 | }
52 | .modal-header {
53 | padding: 9px 15px;
54 | border-bottom: 1px solid #eee;
55 | // Close icon
56 | .close { margin-top: 2px; }
57 | }
58 |
59 | // Body (where all modal content resides)
60 | .modal-body {
61 | overflow-y: auto;
62 | max-height: 400px;
63 | padding: 15px;
64 | }
65 | // Remove bottom margin if need be
66 | .modal-form {
67 | margin-bottom: 0;
68 | }
69 |
70 | // Footer (for actions)
71 | .modal-footer {
72 | padding: 14px 15px 15px;
73 | margin-bottom: 0;
74 | text-align: right; // right align buttons
75 | background-color: #f5f5f5;
76 | border-top: 1px solid #ddd;
77 | @include border-radius(0 0 6px 6px);
78 | @include box-shadow(inset 0 1px 0 $white);
79 | @include clearfix(); // clear it in case folks use .pull-* classes on buttons
80 |
81 | // Properly space out buttons
82 | .btn + .btn {
83 | margin-left: 5px;
84 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
85 | }
86 | // but override that for button groups
87 | .btn-group .btn + .btn {
88 | margin-left: -1px;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/lib/_carousel.scss:
--------------------------------------------------------------------------------
1 | // CAROUSEL
2 | // --------
3 |
4 | .carousel {
5 | position: relative;
6 | margin-bottom: $baseLineHeight;
7 | line-height: 1;
8 | }
9 |
10 | .carousel-inner {
11 | overflow: hidden;
12 | width: 100%;
13 | position: relative;
14 | }
15 |
16 | .carousel {
17 |
18 | .item {
19 | display: none;
20 | position: relative;
21 | @include transition(.6s ease-in-out left);
22 | }
23 |
24 | // Account for jankitude on images
25 | .item > img {
26 | display: block;
27 | line-height: 1;
28 | }
29 |
30 | .active,
31 | .next,
32 | .prev { display: block; }
33 |
34 | .active {
35 | left: 0;
36 | }
37 |
38 | .next,
39 | .prev {
40 | position: absolute;
41 | top: 0;
42 | width: 100%;
43 | }
44 |
45 | .next {
46 | left: 100%;
47 | }
48 | .prev {
49 | left: -100%;
50 | }
51 | .next.left,
52 | .prev.right {
53 | left: 0;
54 | }
55 |
56 | .active.left {
57 | left: -100%;
58 | }
59 | .active.right {
60 | left: 100%;
61 | }
62 |
63 | }
64 |
65 | // Left/right controls for nav
66 | // ---------------------------
67 |
68 | .carousel-control {
69 | position: absolute;
70 | top: 40%;
71 | left: 15px;
72 | width: 40px;
73 | height: 40px;
74 | margin-top: -20px;
75 | font-size: 60px;
76 | font-weight: 100;
77 | line-height: 30px;
78 | color: $white;
79 | text-align: center;
80 | background: $grayDarker;
81 | border: 3px solid $white;
82 | @include border-radius(23px);
83 | @include opacity(50);
84 |
85 | // we can't have this transition here
86 | // because webkit cancels the carousel
87 | // animation if you trip this while
88 | // in the middle of another animation
89 | // ;_;
90 | // .transition(opacity .2s linear);
91 |
92 | // Reposition the right one
93 | &.right {
94 | left: auto;
95 | right: 15px;
96 | }
97 |
98 | // Hover state
99 | &:hover {
100 | color: $white;
101 | text-decoration: none;
102 | @include opacity(90);
103 | }
104 | }
105 |
106 | // Caption for text below images
107 | // -----------------------------
108 |
109 | .carousel-caption {
110 | position: absolute;
111 | left: 0;
112 | right: 0;
113 | bottom: 0;
114 | padding: 10px 15px 5px;
115 | background: $grayDark;
116 | background: rgba(0,0,0,.75);
117 | }
118 | .carousel-caption h4,
119 | .carousel-caption p {
120 | color: $white;
121 | }
122 |
--------------------------------------------------------------------------------
/lib/_progress-bars.scss:
--------------------------------------------------------------------------------
1 | // PROGRESS BARS
2 | // -------------
3 |
4 |
5 | // ANIMATIONS
6 | // ----------
7 |
8 | // Webkit
9 | @-webkit-keyframes progress-bar-stripes {
10 | from { background-position: 40px 0; }
11 | to { background-position: 0 0; }
12 | }
13 |
14 | // Firefox
15 | @-moz-keyframes progress-bar-stripes {
16 | from { background-position: 40px 0; }
17 | to { background-position: 0 0; }
18 | }
19 |
20 | // IE9
21 | @-ms-keyframes progress-bar-stripes {
22 | from { background-position: 40px 0; }
23 | to { background-position: 0 0; }
24 | }
25 |
26 | // Opera
27 | @-o-keyframes progress-bar-stripes {
28 | from { background-position: 0 0; }
29 | to { background-position: 40px 0; }
30 | }
31 |
32 | // Spec
33 | @keyframes progress-bar-stripes {
34 | from { background-position: 40px 0; }
35 | to { background-position: 0 0; }
36 | }
37 |
38 |
39 |
40 | // THE BARS
41 | // --------
42 |
43 | // Outer container
44 | .progress {
45 | overflow: hidden;
46 | height: 18px;
47 | margin-bottom: 18px;
48 | @include gradient-vertical(#f5f5f5, #f9f9f9);
49 | @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
50 | @include border-radius(4px);
51 | }
52 |
53 | // Bar of progress
54 | .progress .bar {
55 | width: 0%;
56 | height: 18px;
57 | color: $white;
58 | font-size: 12px;
59 | text-align: center;
60 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
61 | @include gradient-vertical(#149bdf, #0480be);
62 | @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
63 | @include box-sizing(border-box);
64 | @include transition(width .6s ease);
65 | }
66 |
67 | // Striped bars
68 | .progress-striped .bar {
69 | @include gradient-striped(#149bdf);
70 | @include background-size(40px 40px);
71 | }
72 |
73 | // Call animation for the active one
74 | .progress.active .bar {
75 | -webkit-animation: progress-bar-stripes 2s linear infinite;
76 | -moz-animation: progress-bar-stripes 2s linear infinite;
77 | -ms-animation: progress-bar-stripes 2s linear infinite;
78 | -o-animation: progress-bar-stripes 2s linear infinite;
79 | animation: progress-bar-stripes 2s linear infinite;
80 | }
81 |
82 |
83 |
84 | // COLORS
85 | // ------
86 |
87 | // Danger (red)
88 | .progress-danger .bar {
89 | @include gradient-vertical(#ee5f5b, #c43c35);
90 | }
91 | .progress-danger.progress-striped .bar {
92 | @include gradient-striped(#ee5f5b);
93 | }
94 |
95 | // Success (green)
96 | .progress-success .bar {
97 | @include gradient-vertical(#62c462, #57a957);
98 | }
99 | .progress-success.progress-striped .bar {
100 | @include gradient-striped(#62c462);
101 | }
102 |
103 | // Info (teal)
104 | .progress-info .bar {
105 | @include gradient-vertical(#5bc0de, #339bb9);
106 | }
107 | .progress-info.progress-striped .bar {
108 | @include gradient-striped(#5bc0de);
109 | }
110 |
111 | // Warning (orange)
112 | .progress-warning .bar {
113 | @include gradient-vertical(lighten($orange, 15%), $orange);
114 | }
115 | .progress-warning.progress-striped .bar {
116 | @include gradient-striped(lighten($orange, 15%));
117 | }
118 |
--------------------------------------------------------------------------------
/lib/_reset.scss:
--------------------------------------------------------------------------------
1 | // Reset
2 | // Adapted from Normalize.css http://github.com/necolas/normalize.css
3 | // ------------------------------------------------------------------------
4 |
5 | // Display in IE6-9 and FF3
6 | // -------------------------
7 |
8 | article,
9 | aside,
10 | details,
11 | figcaption,
12 | figure,
13 | footer,
14 | header,
15 | hgroup,
16 | nav,
17 | section {
18 | display: block;
19 | }
20 |
21 | // Display block in IE6-9 and FF3
22 | // -------------------------
23 |
24 | audio,
25 | canvas,
26 | video {
27 | display: inline-block;
28 | *display: inline;
29 | *zoom: 1;
30 | }
31 |
32 | // Prevents modern browsers from displaying 'audio' without controls
33 | // -------------------------
34 |
35 | audio:not([controls]) {
36 | display: none;
37 | }
38 |
39 | // Base settings
40 | // -------------------------
41 |
42 | html {
43 | font-size: 100%;
44 | -webkit-text-size-adjust: 100%;
45 | -ms-text-size-adjust: 100%;
46 | }
47 | // Focus states
48 | a:focus {
49 | @include tab-focus();
50 | }
51 | // Hover & Active
52 | a:hover,
53 | a:active {
54 | outline: 0;
55 | }
56 |
57 | // Prevents sub and sup affecting line-height in all browsers
58 | // -------------------------
59 |
60 | sub,
61 | sup {
62 | position: relative;
63 | font-size: 75%;
64 | line-height: 0;
65 | vertical-align: baseline;
66 | }
67 | sup {
68 | top: -0.5em;
69 | }
70 | sub {
71 | bottom: -0.25em;
72 | }
73 |
74 | // Img border in a's and image quality
75 | // -------------------------
76 |
77 | img {
78 | max-width: 100%; // Make images inherently responsive
79 | vertical-align: middle;
80 | border: 0;
81 | -ms-interpolation-mode: bicubic;
82 | }
83 |
84 | // Prevent max-width from affecting Google Maps
85 | #map_canvas img {
86 | max-width: none;
87 | }
88 |
89 | // Forms
90 | // -------------------------
91 |
92 | // Font size in all browsers, margin changes, misc consistency
93 | button,
94 | input,
95 | select,
96 | textarea {
97 | margin: 0;
98 | font-size: 100%;
99 | vertical-align: middle;
100 | }
101 | button,
102 | input {
103 | *overflow: visible; // Inner spacing ie IE6/7
104 | line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
105 | }
106 | button::-moz-focus-inner,
107 | input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
108 | padding: 0;
109 | border: 0;
110 | }
111 | button,
112 | input[type="button"],
113 | input[type="reset"],
114 | input[type="submit"] {
115 | cursor: pointer; // Cursors on all buttons applied consistently
116 | -webkit-appearance: button; // Style clickable inputs in iOS
117 | }
118 | input[type="search"] { // Appearance in Safari/Chrome
119 | -webkit-box-sizing: content-box;
120 | -moz-box-sizing: content-box;
121 | box-sizing: content-box;
122 | -webkit-appearance: textfield;
123 | }
124 | input[type="search"]::-webkit-search-decoration,
125 | input[type="search"]::-webkit-search-cancel-button {
126 | -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
127 | }
128 | textarea {
129 | overflow: auto; // Remove vertical scrollbar in IE6-9
130 | vertical-align: top; // Readability and alignment cross-browser
131 | }
132 |
--------------------------------------------------------------------------------
/lib/_responsive-767px-max.scss:
--------------------------------------------------------------------------------
1 | // UP TO LANDSCAPE PHONE
2 | // ---------------------
3 |
4 | @media (max-width: 480px) {
5 |
6 | // Smooth out the collapsing/expanding nav
7 | .nav-collapse {
8 | -webkit-transform: translate3d(0, 0, 0); // activate the GPU
9 | }
10 |
11 | // Block level the page header small tag for readability
12 | .page-header h1 small {
13 | display: block;
14 | line-height: $baseLineHeight;
15 | }
16 |
17 | // Update checkboxes for iOS
18 | input[type="checkbox"],
19 | input[type="radio"] {
20 | border: 1px solid #ccc;
21 | }
22 |
23 | // Remove the horizontal form styles
24 | .form-horizontal .control-group > label {
25 | float: none;
26 | width: auto;
27 | padding-top: 0;
28 | text-align: left;
29 | }
30 | // Move over all input controls and content
31 | .form-horizontal .controls {
32 | margin-left: 0;
33 | }
34 | // Move the options list down to align with labels
35 | .form-horizontal .control-list {
36 | padding-top: 0; // has to be padding because margin collaspes
37 | }
38 | // Move over buttons in .form-actions to align with .controls
39 | .form-horizontal .form-actions {
40 | padding-left: 10px;
41 | padding-right: 10px;
42 | }
43 |
44 | // Modals
45 | .modal {
46 | position: absolute;
47 | top: 10px;
48 | left: 10px;
49 | right: 10px;
50 | width: auto;
51 | margin: 0;
52 | &.fade.in { top: auto; }
53 | }
54 | .modal-header .close {
55 | padding: 10px;
56 | margin: -10px;
57 | }
58 |
59 | // Carousel
60 | .carousel-caption {
61 | position: static;
62 | }
63 |
64 | }
65 |
66 |
67 |
68 | // LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
69 | // --------------------------------------------------
70 |
71 | @media (max-width: 767px) {
72 |
73 | // Padding to set content in a bit
74 | body {
75 | padding-left: 20px;
76 | padding-right: 20px;
77 | }
78 | // Negative indent the now static "fixed" navbar
79 | .navbar-fixed-top,
80 | .navbar-fixed-bottom {
81 | margin-left: -20px;
82 | margin-right: -20px;
83 | }
84 | // Remove padding on container given explicit padding set on body
85 | .container-fluid {
86 | padding: 0;
87 | }
88 |
89 | // TYPOGRAPHY
90 | // ----------
91 | // Reset horizontal dl
92 | .dl-horizontal {
93 | dt {
94 | float: none;
95 | clear: none;
96 | width: auto;
97 | text-align: left;
98 | }
99 | dd {
100 | margin-left: 0;
101 | }
102 | }
103 |
104 | // GRID & CONTAINERS
105 | // -----------------
106 | // Remove width from containers
107 | .container {
108 | width: auto;
109 | }
110 | // Fluid rows
111 | .row-fluid {
112 | width: 100%;
113 | }
114 | // Undo negative margin on rows and thumbnails
115 | .row,
116 | .thumbnails {
117 | margin-left: 0;
118 | }
119 | // Make all grid-sized elements block level again
120 | [class*="span"],
121 | .row-fluid [class*="span"] {
122 | float: none;
123 | display: block;
124 | width: auto;
125 | margin-left: 0;
126 | }
127 |
128 | // FORM FIELDS
129 | // -----------
130 | // Make span* classes full width
131 | .input-large,
132 | .input-xlarge,
133 | .input-xxlarge,
134 | input[class*="span"],
135 | select[class*="span"],
136 | textarea[class*="span"],
137 | .uneditable-input {
138 | @include input-block-level();
139 | }
140 | // But don't let it screw up prepend/append inputs
141 | .input-prepend input,
142 | .input-append input,
143 | .input-prepend input[class*="span"],
144 | .input-append input[class*="span"] {
145 | display: inline-block; // redeclare so they don't wrap to new lines
146 | width: auto;
147 | }
148 |
149 | }
150 |
--------------------------------------------------------------------------------
/lib/_dropdowns.scss:
--------------------------------------------------------------------------------
1 | // DROPDOWN MENUS
2 | // --------------
3 |
4 | // Use the .menu class on any element within the topbar or ul.tabs and you'll get some superfancy dropdowns
5 | .dropup,
6 | .dropdown {
7 | position: relative;
8 | }
9 | .dropdown-toggle {
10 | // The caret makes the toggle a bit too tall in IE7
11 | *margin-bottom: -3px;
12 | }
13 | .dropdown-toggle:active,
14 | .open .dropdown-toggle {
15 | outline: 0;
16 | }
17 |
18 | // Dropdown arrow/caret
19 | // --------------------
20 | .caret {
21 | display: inline-block;
22 | width: 0;
23 | height: 0;
24 | vertical-align: top;
25 | border-top: 4px solid $black;
26 | border-right: 4px solid transparent;
27 | border-left: 4px solid transparent;
28 | content: "";
29 | @include opacity(30);
30 | }
31 |
32 | // Place the caret
33 | .dropdown .caret {
34 | margin-top: 8px;
35 | margin-left: 2px;
36 | }
37 | .dropdown:hover .caret,
38 | .open .caret {
39 | @include opacity(100);
40 | }
41 |
42 | // The dropdown menu (ul)
43 | // ----------------------
44 | .dropdown-menu {
45 | position: absolute;
46 | top: 100%;
47 | left: 0;
48 | z-index: $zindexDropdown;
49 | display: none; // none by default, but block on "open" of the menu
50 | float: left;
51 | min-width: 160px;
52 | padding: 4px 0;
53 | margin: 1px 0 0; // override default ul
54 | list-style: none;
55 | background-color: $dropdownBackground;
56 | border: 1px solid #ccc;
57 | border: 1px solid rgba(0,0,0,.2);
58 | *border-right-width: 2px;
59 | *border-bottom-width: 2px;
60 | @include border-radius(5px);
61 | @include box-shadow(0 5px 10px rgba(0,0,0,.2));
62 | -webkit-background-clip: padding-box;
63 | -moz-background-clip: padding;
64 | background-clip: padding-box;
65 |
66 | // Aligns the dropdown menu to right
67 | &.pull-right {
68 | right: 0;
69 | left: auto;
70 | }
71 |
72 | // Dividers (basically an hr) within the dropdown
73 | .divider {
74 | @include nav-divider();
75 | }
76 |
77 | // Links within the dropdown menu
78 | a {
79 | display: block;
80 | padding: 3px 15px;
81 | clear: both;
82 | font-weight: normal;
83 | line-height: $baseLineHeight;
84 | color: $dropdownLinkColor;
85 | white-space: nowrap;
86 | }
87 | }
88 |
89 | // Hover state
90 | // -----------
91 | .dropdown-menu li > a:hover,
92 | .dropdown-menu .active > a,
93 | .dropdown-menu .active > a:hover {
94 | color: $dropdownLinkColorHover;
95 | text-decoration: none;
96 | background-color: $dropdownLinkBackgroundHover;
97 | }
98 |
99 | // Open state for the dropdown
100 | // ---------------------------
101 | .open {
102 | // IE7's z-index only goes to the nearest positioned ancestor, which would
103 | // make the menu appear below buttons that appeared later on the page
104 | *z-index: $zindexDropdown;
105 |
106 | .dropdown-menu {
107 | display: block;
108 | }
109 | }
110 |
111 | // Right aligned dropdowns
112 | // ---------------------------
113 | .pull-right .dropdown-menu {
114 | right: 0;
115 | left: auto;
116 | }
117 |
118 | // Allow for dropdowns to go bottom up (aka, dropup-menu)
119 | // ------------------------------------------------------
120 | // Just add .dropup after the standard .dropdown class and you're set, bro.
121 | // TODO: abstract this so that the navbar fixed styles are not placed here?
122 | .dropup,
123 | .navbar-fixed-bottom .dropdown {
124 | // Reverse the caret
125 | .caret {
126 | border-top: 0;
127 | border-bottom: 4px solid $black;
128 | content: "\2191";
129 | }
130 | // Different positioning for bottom up menu
131 | .dropdown-menu {
132 | top: auto;
133 | bottom: 100%;
134 | margin-bottom: 1px;
135 | }
136 | }
137 |
138 | // Typeahead
139 | // ---------
140 | .typeahead {
141 | margin-top: 2px; // give it some space to breathe
142 | @include border-radius(4px);
143 | }
144 |
--------------------------------------------------------------------------------
/lib/_responsive-navbar.scss:
--------------------------------------------------------------------------------
1 | // TABLETS AND BELOW
2 | // -----------------
3 | @media (max-width: 979px) {
4 |
5 | // UNFIX THE TOPBAR
6 | // ----------------
7 | // Remove any padding from the body
8 | body {
9 | padding-top: 0;
10 | }
11 | // Unfix the navbar
12 | .navbar-fixed-top,
13 | .navbar-fixed-bottom {
14 | position: static;
15 | }
16 | .navbar-fixed-top {
17 | margin-bottom: $baseLineHeight;
18 | }
19 | .navbar-fixed-bottom {
20 | margin-top: $baseLineHeight;
21 | }
22 | .navbar-fixed-top .navbar-inner,
23 | .navbar-fixed-bottom .navbar-inner {
24 | padding: 5px;
25 | }
26 | .navbar .container {
27 | width: auto;
28 | padding: 0;
29 | }
30 | // Account for brand name
31 | .navbar .brand {
32 | padding-left: 10px;
33 | padding-right: 10px;
34 | margin: 0 0 0 -5px;
35 | }
36 |
37 | // COLLAPSIBLE NAVBAR
38 | // ------------------
39 | // Nav collapse clears brand
40 | .nav-collapse {
41 | clear: both;
42 | }
43 | // Block-level the nav
44 | .nav-collapse .nav {
45 | float: none;
46 | margin: 0 0 ($baseLineHeight / 2);
47 | }
48 | .nav-collapse .nav > li {
49 | float: none;
50 | }
51 | .nav-collapse .nav > li > a {
52 | margin-bottom: 2px;
53 | }
54 | .nav-collapse .nav > .divider-vertical {
55 | display: none;
56 | }
57 | .nav-collapse .nav .nav-header {
58 | color: $navbarText;
59 | text-shadow: none;
60 | }
61 | // Nav and dropdown links in navbar
62 | .nav-collapse .nav > li > a,
63 | .nav-collapse .dropdown-menu a {
64 | padding: 6px 15px;
65 | font-weight: bold;
66 | color: $navbarLinkColor;
67 | @include border-radius(3px);
68 | }
69 | // Buttons
70 | .nav-collapse .btn {
71 | padding: 4px 10px 4px;
72 | font-weight: normal;
73 | @include border-radius(4px);
74 | }
75 | .nav-collapse .dropdown-menu li + li a {
76 | margin-bottom: 2px;
77 | }
78 | .nav-collapse .nav > li > a:hover,
79 | .nav-collapse .dropdown-menu a:hover {
80 | background-color: $navbarBackground;
81 | }
82 | // Buttons in the navbar
83 | .nav-collapse.in .btn-group {
84 | margin-top: 5px;
85 | padding: 0;
86 | }
87 | // Dropdowns in the navbar
88 | .nav-collapse .dropdown-menu {
89 | position: static;
90 | top: auto;
91 | left: auto;
92 | float: none;
93 | display: block;
94 | max-width: none;
95 | margin: 0 15px;
96 | padding: 0;
97 | background-color: transparent;
98 | border: none;
99 | @include border-radius(0);
100 | @include box-shadow(none);
101 | }
102 | .nav-collapse .dropdown-menu:before,
103 | .nav-collapse .dropdown-menu:after {
104 | display: none;
105 | }
106 | .nav-collapse .dropdown-menu .divider {
107 | display: none;
108 | }
109 | // Forms in navbar
110 | .nav-collapse .navbar-form,
111 | .nav-collapse .navbar-search {
112 | float: none;
113 | padding: ($baseLineHeight / 2) 15px;
114 | margin: ($baseLineHeight / 2) 0;
115 | border-top: 1px solid $navbarBackground;
116 | border-bottom: 1px solid $navbarBackground;
117 | @include box-shadow(#{inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)});
118 | }
119 | // Pull right (secondary) nav content
120 | .navbar .nav-collapse .nav.pull-right {
121 | float: none;
122 | margin-left: 0;
123 | }
124 | // Hide everything in the navbar save .brand and toggle button */
125 | .nav-collapse,
126 | .nav-collapse.collapse {
127 | overflow: hidden;
128 | height: 0;
129 | }
130 | // Navbar button
131 | .navbar .btn-navbar {
132 | display: block;
133 | }
134 |
135 | // STATIC NAVBAR
136 | // -------------
137 | .navbar-static .navbar-inner {
138 | padding-left: 10px;
139 | padding-right: 10px;
140 | }
141 | }
142 |
143 |
144 | // DEFAULT DESKTOP
145 | // ---------------
146 |
147 | // Required to make the collapsing navbar work on regular desktops
148 | @media (min-width: 980px) {
149 | .nav-collapse.collapse {
150 | height: auto !important;
151 | overflow: visible !important;
152 | }
153 | }
--------------------------------------------------------------------------------
/lib/_tables.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Tables
3 | // Tables for, you guessed it, tabular data
4 | // ----------------------------------------
5 |
6 |
7 | // BASE TABLES
8 | // -----------------
9 |
10 | table {
11 | max-width: 100%;
12 | background-color: $tableBackground;
13 | border-collapse: collapse;
14 | border-spacing: 0;
15 | }
16 |
17 | // BASELINE STYLES
18 | // ---------------
19 |
20 | .table {
21 | width: 100%;
22 | margin-bottom: $baseLineHeight;
23 | // Cells
24 | th,
25 | td {
26 | padding: 8px;
27 | line-height: $baseLineHeight;
28 | text-align: left;
29 | vertical-align: top;
30 | border-top: 1px solid $tableBorder;
31 | }
32 | th {
33 | font-weight: bold;
34 | }
35 | // Bottom align for column headings
36 | thead th {
37 | vertical-align: bottom;
38 | }
39 | // Remove top border from thead by default
40 | caption + thead tr:first-child th,
41 | caption + thead tr:first-child td,
42 | colgroup + thead tr:first-child th,
43 | colgroup + thead tr:first-child td,
44 | thead:first-child tr:first-child th,
45 | thead:first-child tr:first-child td {
46 | border-top: 0;
47 | }
48 | // Account for multiple tbody instances
49 | tbody + tbody {
50 | border-top: 2px solid $tableBorder;
51 | }
52 | }
53 |
54 |
55 |
56 | // CONDENSED TABLE W/ HALF PADDING
57 | // -------------------------------
58 |
59 | .table-condensed {
60 | th,
61 | td {
62 | padding: 4px 5px;
63 | }
64 | }
65 |
66 |
67 | // BORDERED VERSION
68 | // ----------------
69 |
70 | .table-bordered {
71 | border: 1px solid $tableBorder;
72 | border-collapse: separate; // Done so we can round those corners!
73 | *border-collapse: collapsed; // IE7 can't round corners anyway
74 | border-left: 0;
75 | @include border-radius(4px);
76 | th,
77 | td {
78 | border-left: 1px solid $tableBorder;
79 | }
80 | // Prevent a double border
81 | caption + thead tr:first-child th,
82 | caption + tbody tr:first-child th,
83 | caption + tbody tr:first-child td,
84 | colgroup + thead tr:first-child th,
85 | colgroup + tbody tr:first-child th,
86 | colgroup + tbody tr:first-child td,
87 | thead:first-child tr:first-child th,
88 | tbody:first-child tr:first-child th,
89 | tbody:first-child tr:first-child td {
90 | border-top: 0;
91 | }
92 | // For first th or td in the first row in the first thead or tbody
93 | thead:first-child tr:first-child th:first-child,
94 | tbody:first-child tr:first-child td:first-child {
95 | -webkit-border-top-left-radius: 4px;
96 | border-top-left-radius: 4px;
97 | -moz-border-radius-topleft: 4px;
98 | }
99 | thead:first-child tr:first-child th:last-child,
100 | tbody:first-child tr:first-child td:last-child {
101 | -webkit-border-top-right-radius: 4px;
102 | border-top-right-radius: 4px;
103 | -moz-border-radius-topright: 4px;
104 | }
105 | // For first th or td in the first row in the first thead or tbody
106 | thead:last-child tr:last-child th:first-child,
107 | tbody:last-child tr:last-child td:first-child {
108 | @include border-radius(0 0 0 4px);
109 | -webkit-border-bottom-left-radius: 4px;
110 | border-bottom-left-radius: 4px;
111 | -moz-border-radius-bottomleft: 4px;
112 | }
113 | thead:last-child tr:last-child th:last-child,
114 | tbody:last-child tr:last-child td:last-child {
115 | -webkit-border-bottom-right-radius: 4px;
116 | border-bottom-right-radius: 4px;
117 | -moz-border-radius-bottomright: 4px;
118 | }
119 | }
120 |
121 |
122 | // ZEBRA-STRIPING
123 | // --------------
124 |
125 | // Default zebra-stripe styles (alternating gray and transparent backgrounds)
126 | .table-striped {
127 | tbody {
128 | tr:nth-child(odd) td,
129 | tr:nth-child(odd) th {
130 | background-color: $tableBackgroundAccent;
131 | }
132 | }
133 | }
134 |
135 |
136 | // HOVER EFFECT
137 | // ------------
138 | // Placed here since it has to come after the potential zebra striping
139 | .table {
140 | tbody tr:hover td,
141 | tbody tr:hover th {
142 | background-color: $tableBackgroundHover;
143 | }
144 | }
145 |
146 |
147 | // TABLE CELL SIZING
148 | // -----------------
149 |
150 | // Change the columns
151 | table {
152 | @for $i from 1 through 24 {
153 | .span#{$i} { @include tableColumns($i); }
154 | }
155 | }
156 |
--------------------------------------------------------------------------------
/lib/_type.scss:
--------------------------------------------------------------------------------
1 | // Typography
2 | // Headings, body text, lists, code, and more for a versatile and durable typography system
3 | // ----------------------------------------------------------------------------------------
4 |
5 |
6 | // BODY TEXT
7 | // ---------
8 |
9 | p {
10 | margin: 0 0 $baseLineHeight / 2;
11 | small {
12 | font-size: $baseFontSize - 2;
13 | color: $grayLight;
14 | }
15 | }
16 | .lead {
17 | margin-bottom: $baseLineHeight;
18 | font-size: 20px;
19 | font-weight: 200;
20 | line-height: $baseLineHeight * 1.5;
21 | }
22 |
23 | // HEADINGS
24 | // --------
25 |
26 | h1, h2, h3, h4, h5, h6 {
27 | margin: 0;
28 | font-family: $headingsFontFamily;
29 | font-weight: $headingsFontWeight;
30 | color: $headingsColor;
31 | text-rendering: optimizelegibility; // Fix the character spacing for headings
32 | small {
33 | font-weight: normal;
34 | color: $grayLight;
35 | }
36 | }
37 | h1 {
38 | font-size: 30px;
39 | line-height: $baseLineHeight * 2;
40 | small {
41 | font-size: 18px;
42 | }
43 | }
44 | h2 {
45 | font-size: 24px;
46 | line-height: $baseLineHeight * 2;
47 | small {
48 | font-size: 18px;
49 | }
50 | }
51 | h3 {
52 | font-size: 18px;
53 | line-height: $baseLineHeight * 1.5;
54 | small {
55 | font-size: 14px;
56 | }
57 | }
58 | h4, h5, h6 {
59 | line-height: $baseLineHeight;
60 | }
61 | h4 {
62 | font-size: 14px;
63 | small {
64 | font-size: 12px;
65 | }
66 | }
67 | h5 {
68 | font-size: 12px;
69 | }
70 | h6 {
71 | font-size: 11px;
72 | color: $grayLight;
73 | text-transform: uppercase;
74 | }
75 |
76 | // Page header
77 | .page-header {
78 | padding-bottom: $baseLineHeight - 1;
79 | margin: $baseLineHeight 0;
80 | border-bottom: 1px solid $grayLighter;
81 | }
82 | .page-header h1 {
83 | line-height: 1;
84 | }
85 |
86 |
87 |
88 | // LISTS
89 | // -----
90 |
91 | // Unordered and Ordered lists
92 | ul, ol {
93 | padding: 0;
94 | margin: 0 0 $baseLineHeight / 2 25px;
95 | }
96 | ul ul,
97 | ul ol,
98 | ol ol,
99 | ol ul {
100 | margin-bottom: 0;
101 | }
102 | ul {
103 | list-style: disc;
104 | }
105 | ol {
106 | list-style: decimal;
107 | }
108 | li {
109 | line-height: $baseLineHeight;
110 | }
111 | ul.unstyled,
112 | ol.unstyled {
113 | margin-left: 0;
114 | list-style: none;
115 | }
116 |
117 | // Description Lists
118 | dl {
119 | margin-bottom: $baseLineHeight;
120 | }
121 | dt,
122 | dd {
123 | line-height: $baseLineHeight;
124 | }
125 | dt {
126 | font-weight: bold;
127 | line-height: $baseLineHeight - 1; // fix jank Helvetica Neue font bug
128 | }
129 | dd {
130 | margin-left: $baseLineHeight / 2;
131 | }
132 | // Horizontal layout (like forms)
133 | .dl-horizontal {
134 | dt {
135 | float: left;
136 | width: 120px;
137 | clear: left;
138 | text-align: right;
139 | @include text-overflow();
140 | }
141 | dd {
142 | margin-left: 130px;
143 | }
144 | }
145 |
146 | // MISC
147 | // ----
148 |
149 | // Horizontal rules
150 | hr {
151 | margin: $baseLineHeight 0;
152 | border: 0;
153 | border-top: 1px solid #d3d6da;
154 | border-bottom: 1px solid $white;
155 | }
156 |
157 | // Emphasis
158 | strong {
159 | font-weight: bold;
160 | }
161 | em {
162 | font-style: italic;
163 | }
164 | .muted {
165 | color: $grayLight;
166 | }
167 |
168 | // Abbreviations and acronyms
169 | abbr[title] {
170 | cursor: help;
171 | border-bottom: 1px dotted $grayLight;
172 | }
173 | abbr.initialism {
174 | font-size: 90%;
175 | text-transform: uppercase;
176 | }
177 |
178 | // Blockquotes
179 | blockquote {
180 | padding: 0 0 0 15px;
181 | margin: 0 0 $baseLineHeight;
182 | border-left: 5px solid $grayLighter;
183 | p {
184 | margin-bottom: 0;
185 | @include font-shorthand(16px,300,$baseLineHeight * 1.25);
186 | }
187 | small {
188 | display: block;
189 | line-height: $baseLineHeight;
190 | color: $grayLight;
191 | &:before {
192 | content: '\2014 \00A0';
193 | }
194 | }
195 |
196 | // Float right with text-align: right
197 | &.pull-right {
198 | float: right;
199 | padding-right: 15px;
200 | padding-left: 0;
201 | border-right: 5px solid $grayLighter;
202 | border-left: 0;
203 | p,
204 | small {
205 | text-align: right;
206 | }
207 | }
208 | }
209 |
210 | // Quotes
211 | q:before,
212 | q:after,
213 | blockquote:before,
214 | blockquote:after {
215 | content: "";
216 | }
217 |
218 | // Addresses
219 | address {
220 | display: block;
221 | margin-bottom: $baseLineHeight;
222 | font-style: normal;
223 | line-height: $baseLineHeight;
224 | }
225 |
226 | // Misc
227 | small {
228 | font-size: 100%;
229 | }
230 | cite {
231 | font-style: normal;
232 | }
233 |
--------------------------------------------------------------------------------
/lib/_buttons.scss:
--------------------------------------------------------------------------------
1 | // BUTTON STYLES
2 | // -------------
3 |
4 |
5 | // Base styles
6 | // --------------------------------------------------
7 |
8 | // Core
9 | .btn {
10 | display: inline-block;
11 | @include ie7-inline-block();
12 | padding: 4px 10px 4px;
13 | margin-bottom: 0; // For input.btn
14 | font-size: $baseFontSize;
15 | line-height: $baseLineHeight;
16 | *line-height: 20px;
17 | color: $grayDark;
18 | text-align: center;
19 | text-shadow: 0 1px 1px rgba(255,255,255,.75);
20 | vertical-align: middle;
21 | cursor: pointer;
22 | @include buttonBackground($btnBackground, $btnBackgroundHighlight);
23 | border: 1px solid $btnBorder;
24 | *border: 0; // Remove the border to prevent IE7's black border on input:focus
25 | border-bottom-color: darken($btnBorder, 10%);
26 | @include border-radius(4px);
27 | @include ie7-restore-left-whitespace(); // Give IE7 some love
28 | @include box-shadow(#{inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)});
29 | text-decoration: none;
30 | }
31 |
32 | // Hover state
33 | .btn:hover {
34 | color: $grayDark;
35 | text-decoration: none;
36 | background-color: darken($white, 10%);
37 | *background-color: darken($white, 15%); /* Buttons in IE7 don't get borders, so darken on hover */
38 | background-position: 0 -15px;
39 |
40 | // transition is only when going to hover, otherwise the background
41 | // behind the gradient (there for IE<=9 fallback) gets mismatched
42 | @include transition(background-position .1s linear);
43 | }
44 |
45 | // Focus state for keyboard and accessibility
46 | .btn:focus {
47 | @include tab-focus();
48 | }
49 |
50 | // Active state
51 | .btn.active,
52 | .btn:active {
53 | background-color: darken($white, 10%);
54 | background-color: darken($white, 15%) \9;
55 | background-image: none;
56 | outline: 0;
57 | @include box-shadow(#{inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)});
58 | }
59 |
60 | // Disabled state
61 | .btn.disabled,
62 | .btn[disabled] {
63 | cursor: default;
64 | background-color: darken($white, 10%);
65 | background-image: none;
66 | @include opacity(65);
67 | @include box-shadow(none);
68 | }
69 |
70 |
71 | // Button Sizes
72 | // --------------------------------------------------
73 |
74 | // Large
75 | .btn-large {
76 | padding: 9px 14px;
77 | font-size: $baseFontSize + 2px;
78 | line-height: normal;
79 | @include border-radius(5px);
80 | }
81 | .btn-large [class^="icon-"] {
82 | margin-top: 1px;
83 | }
84 |
85 | // Small
86 | .btn-small {
87 | padding: 5px 9px;
88 | font-size: $baseFontSize - 2px;
89 | line-height: $baseLineHeight - 2px;
90 | }
91 | .btn-small [class^="icon-"] {
92 | margin-top: -1px;
93 | }
94 |
95 | // Mini
96 | .btn-mini {
97 | padding: 2px 6px;
98 | font-size: $baseFontSize - 2px;
99 | line-height: $baseLineHeight - 4px;
100 | }
101 |
102 |
103 | // Alternate buttons
104 | // --------------------------------------------------
105 |
106 | // Set text color
107 | // -------------------------
108 | .btn-primary,
109 | .btn-primary:hover,
110 | .btn-warning,
111 | .btn-warning:hover,
112 | .btn-danger,
113 | .btn-danger:hover,
114 | .btn-success,
115 | .btn-success:hover,
116 | .btn-info,
117 | .btn-info:hover,
118 | .btn-inverse,
119 | .btn-inverse:hover {
120 | color: $white;
121 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
122 | }
123 | // Provide *some* extra contrast for those who can get it
124 | .btn-primary.active,
125 | .btn-warning.active,
126 | .btn-danger.active,
127 | .btn-success.active,
128 | .btn-info.active,
129 | .btn-inverse.active {
130 | color: rgba(255,255,255,.75);
131 | }
132 |
133 | // Set the backgrounds
134 | // -------------------------
135 | .btn {
136 | // reset here as of 2.0.3 due to Recess property order
137 | border-color: #ccc;
138 | border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
139 | }
140 | .btn-primary {
141 | @include buttonBackground($btnPrimaryBackground, $btnPrimaryBackgroundHighlight);
142 | }
143 | // Warning appears are orange
144 | .btn-warning {
145 | @include buttonBackground($btnWarningBackground, $btnWarningBackgroundHighlight);
146 | }
147 | // Danger and error appear as red
148 | .btn-danger {
149 | @include buttonBackground($btnDangerBackground, $btnDangerBackgroundHighlight);
150 | }
151 | // Success appears as green
152 | .btn-success {
153 | @include buttonBackground($btnSuccessBackground, $btnSuccessBackgroundHighlight);
154 | }
155 | // Info appears as a neutral blue
156 | .btn-info {
157 | @include buttonBackground($btnInfoBackground, $btnInfoBackgroundHighlight);
158 | }
159 | // Inverse appears as dark gray
160 | .btn-inverse {
161 | @include buttonBackground($btnInverseBackground, $btnInverseBackgroundHighlight);
162 | }
163 |
164 |
165 | // Cross-browser Jank
166 | // --------------------------------------------------
167 |
168 | button.btn,
169 | input[type="submit"].btn {
170 |
171 | // Firefox 3.6 only I believe
172 | &::-moz-focus-inner {
173 | padding: 0;
174 | border: 0;
175 | }
176 |
177 | // IE7 has some default padding on button controls
178 | *padding-top: 2px;
179 | *padding-bottom: 2px;
180 | &.btn-large {
181 | *padding-top: 7px;
182 | *padding-bottom: 7px;
183 | }
184 | &.btn-small {
185 | *padding-top: 3px;
186 | *padding-bottom: 3px;
187 | }
188 | &.btn-mini {
189 | *padding-top: 1px;
190 | *padding-bottom: 1px;
191 | }
192 | }
193 |
--------------------------------------------------------------------------------
/lib/_button-groups.scss:
--------------------------------------------------------------------------------
1 | // BUTTON GROUPS
2 | // -------------
3 |
4 |
5 | // Make the div behave like a button
6 | .btn-group {
7 | position: relative;
8 | @include clearfix(); // clears the floated buttons
9 | @include ie7-restore-left-whitespace();
10 | }
11 |
12 | // Space out series of button groups
13 | .btn-group + .btn-group {
14 | margin-left: 5px;
15 | }
16 |
17 | // Optional: Group multiple button groups together for a toolbar
18 | .btn-toolbar {
19 | margin-top: $baseLineHeight / 2;
20 | margin-bottom: $baseLineHeight / 2;
21 | .btn-group {
22 | display: inline-block;
23 | @include ie7-inline-block();
24 | }
25 | }
26 |
27 | // Float them, remove border radius, then re-add to first and last elements
28 | .btn-group > .btn {
29 | position: relative;
30 | float: left;
31 | margin-left: -1px;
32 | @include border-radius(0);
33 | }
34 | // 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
35 | .btn-group > .btn:first-child {
36 | margin-left: 0;
37 | -webkit-border-top-left-radius: 4px;
38 | -moz-border-radius-topleft: 4px;
39 | border-top-left-radius: 4px;
40 | -webkit-border-bottom-left-radius: 4px;
41 | -moz-border-radius-bottomleft: 4px;
42 | border-bottom-left-radius: 4px;
43 | }
44 | // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
45 | .btn-group > .btn:last-child,
46 | .btn-group > .dropdown-toggle {
47 | -webkit-border-top-right-radius: 4px;
48 | -moz-border-radius-topright: 4px;
49 | border-top-right-radius: 4px;
50 | -webkit-border-bottom-right-radius: 4px;
51 | -moz-border-radius-bottomright: 4px;
52 | border-bottom-right-radius: 4px;
53 | }
54 | // Reset corners for large buttons
55 | .btn-group > .btn.large:first-child {
56 | margin-left: 0;
57 | -webkit-border-top-left-radius: 6px;
58 | -moz-border-radius-topleft: 6px;
59 | border-top-left-radius: 6px;
60 | -webkit-border-bottom-left-radius: 6px;
61 | -moz-border-radius-bottomleft: 6px;
62 | border-bottom-left-radius: 6px;
63 | }
64 | .btn-group > .btn.large:last-child,
65 | .btn-group > .large.dropdown-toggle {
66 | -webkit-border-top-right-radius: 6px;
67 | -moz-border-radius-topright: 6px;
68 | border-top-right-radius: 6px;
69 | -webkit-border-bottom-right-radius: 6px;
70 | -moz-border-radius-bottomright: 6px;
71 | border-bottom-right-radius: 6px;
72 | }
73 |
74 | // On hover/focus/active, bring the proper btn to front
75 | .btn-group > .btn:hover,
76 | .btn-group > .btn:focus,
77 | .btn-group > .btn:active,
78 | .btn-group > .btn.active {
79 | z-index: 2;
80 | }
81 |
82 | // On active and open, don't show outline
83 | .btn-group .dropdown-toggle:active,
84 | .btn-group.open .dropdown-toggle {
85 | outline: 0;
86 | }
87 |
88 |
89 |
90 | // Split button dropdowns
91 | // ----------------------
92 |
93 | // Give the line between buttons some depth
94 | .btn-group > .dropdown-toggle {
95 | padding-left: 8px;
96 | padding-right: 8px;
97 | @include box-shadow(#{inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)});
98 | *padding-top: 4px;
99 | *padding-bottom: 4px;
100 | }
101 | .btn-group > .btn-mini.dropdown-toggle {
102 | padding-left: 5px;
103 | padding-right: 5px;
104 | }
105 | .btn-group > .btn-small.dropdown-toggle {
106 | *padding-top: 4px;
107 | *padding-bottom: 4px;
108 | }
109 | .btn-group > .btn-large.dropdown-toggle {
110 | padding-left: 12px;
111 | padding-right: 12px;
112 | }
113 |
114 | .btn-group.open {
115 |
116 | // The clickable button for toggling the menu
117 | // Remove the gradient and set the same inset shadow as the :active state
118 | .dropdown-toggle {
119 | background-image: none;
120 | @include box-shadow(#{inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)});
121 | }
122 |
123 | // Keep the hover's background when dropdown is open
124 | .btn.dropdown-toggle {
125 | background-color: $btnBackgroundHighlight;
126 | }
127 | .btn-primary.dropdown-toggle {
128 | background-color: $btnPrimaryBackgroundHighlight;
129 | }
130 | .btn-warning.dropdown-toggle {
131 | background-color: $btnWarningBackgroundHighlight;
132 | }
133 | .btn-danger.dropdown-toggle {
134 | background-color: $btnDangerBackgroundHighlight;
135 | }
136 | .btn-success.dropdown-toggle {
137 | background-color: $btnSuccessBackgroundHighlight;
138 | }
139 | .btn-info.dropdown-toggle {
140 | background-color: $btnInfoBackgroundHighlight;
141 | }
142 | .btn-inverse.dropdown-toggle {
143 | background-color: $btnInverseBackgroundHighlight;
144 | }
145 | }
146 |
147 |
148 | // Reposition the caret
149 | .btn .caret {
150 | margin-top: 7px;
151 | margin-left: 0;
152 | }
153 | .btn:hover .caret,
154 | .open.btn-group .caret {
155 | @include opacity(100);
156 | }
157 | // Carets in other button sizes
158 | .btn-mini .caret {
159 | margin-top: 5px;
160 | }
161 | .btn-small .caret {
162 | margin-top: 6px;
163 | }
164 | .btn-large .caret {
165 | margin-top: 6px;
166 | border-left-width: 5px;
167 | border-right-width: 5px;
168 | border-top-width: 5px;
169 | }
170 | // Upside down carets for .dropup
171 | .dropup .btn-large .caret {
172 | border-bottom: 5px solid $black;
173 | border-top: 0;
174 | }
175 |
176 |
177 |
178 | // Account for other colors
179 | .btn-primary,
180 | .btn-warning,
181 | .btn-danger,
182 | .btn-info,
183 | .btn-success,
184 | .btn-inverse {
185 | .caret {
186 | border-top-color: $white;
187 | border-bottom-color: $white;
188 | @include opacity(75);
189 | }
190 | }
191 |
192 |
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 | /*
2 | Syntax error: Undefined mixin 'transition'.
3 | on line 15 of /Users/altryne/www/relationbook/lib/style.scss, in `transition'
4 | from line 15 of /Users/altryne/www/relationbook/lib/style.scss
5 |
6 | Backtrace:
7 | /Users/altryne/www/relationbook/lib/style.scss:15:in `transition'
8 | /Users/altryne/www/relationbook/lib/style.scss:15
9 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:170:in `visit_mixin'
10 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `send'
11 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `visit'
12 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit'
13 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children'
14 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:53:in `map'
15 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children'
16 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:27:in `visit_children'
17 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:39:in `with_environment'
18 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:26:in `visit_children'
19 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `visit'
20 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:238:in `visit_rule'
21 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `send'
22 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `visit'
23 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit'
24 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children'
25 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:53:in `map'
26 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children'
27 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:27:in `visit_children'
28 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:39:in `with_environment'
29 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:26:in `visit_children'
30 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `visit'
31 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:47:in `visit_root'
32 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `send'
33 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/base.rb:37:in `visit'
34 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit'
35 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:7:in `send'
36 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit'
37 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/tree/root_node.rb:20:in `render'
38 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/engine.rb:299:in `_render'
39 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../../scss/lib/sass/../sass/engine.rb:246:in `render'
40 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:140:in `compile'
41 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:126:in `timed'
42 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:139:in `compile'
43 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/logger.rb:45:in `red'
44 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:138:in `compile'
45 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:118:in `compile_if_required'
46 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:103:in `run'
47 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:101:in `each'
48 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:101:in `run'
49 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:126:in `timed'
50 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/compiler.rb:100:in `run'
51 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/commands/update_project.rb:45:in `perform'
52 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/commands/base.rb:18:in `execute'
53 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/commands/project_base.rb:19:in `execute'
54 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/exec/sub_command_ui.rb:43:in `perform!'
55 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/../lib/compass/exec/sub_command_ui.rb:15:in `run!'
56 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/compass:39
57 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/compass:53:in `call'
58 | /Applications/CodeKit.app/Contents/Resources/engines/compass/bin/compass:53
59 | */
60 | body:before {
61 | white-space: pre;
62 | font-family: monospace;
63 | content: "Syntax error: Undefined mixin 'transition'.\A on line 15 of /Users/altryne/www/relationbook/lib/style.scss, in `transition'\A from line 15 of /Users/altryne/www/relationbook/lib/style.scss"; }
64 |
--------------------------------------------------------------------------------
/css/style_back.css:
--------------------------------------------------------------------------------
1 | /* =============================================================================
2 | HTML5 Boilerplate CSS: h5bp.com/css
3 | ========================================================================== */
4 |
5 | article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
6 | audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
7 | audio:not([controls]) { display: none; }
8 | [hidden] { display: none; }
9 |
10 | html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
11 | html, button, input, select, textarea { font-family: sans-serif; color: #222; }
12 | body { margin: 0; font-size: 1em; line-height: 1.4; }
13 |
14 | ::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
15 | ::selection { background: #fe57a1; color: #fff; text-shadow: none; }
16 |
17 | a { color: #00e; }
18 | a:visited { color: #551a8b; }
19 | a:hover { color: #06e; }
20 | a:focus { outline: thin dotted; }
21 | a:hover, a:active { outline: 0; }
22 |
23 | abbr[title] { border-bottom: 1px dotted; }
24 | b, strong { font-weight: bold; }
25 | blockquote { margin: 1em 40px; }
26 | dfn { font-style: italic; }
27 | hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
28 | ins { background: #ff9; color: #000; text-decoration: none; }
29 | mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
30 | pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
31 | pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
32 | q { quotes: none; }
33 | q:before, q:after { content: ""; content: none; }
34 | small { font-size: 85%; }
35 |
36 | sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
37 | sup { top: -0.5em; }
38 | sub { bottom: -0.25em; }
39 |
40 | ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
41 | dd { margin: 0 0 0 40px; }
42 | nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
43 |
44 | img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
45 |
46 | svg:not(:root) { overflow: hidden; }
47 |
48 | figure { margin: 0; }
49 |
50 | form { margin: 0; }
51 | fieldset { border: 0; margin: 0; padding: 0; }
52 | label { cursor: pointer; }
53 | legend { border: 0; *margin-left: -7px; padding: 0; white-space: normal; }
54 | button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
55 | button, input { line-height: normal; }
56 | button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; }
57 | button[disabled], input[disabled] { cursor: default; }
58 | input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }
59 | input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
60 | input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
61 | button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
62 | textarea { overflow: auto; vertical-align: top; resize: vertical; }
63 | input:valid, textarea:valid { }
64 | input:invalid, textarea:invalid { background-color: #f0dddd; }
65 |
66 | table { border-collapse: collapse; border-spacing: 0; }
67 | td { vertical-align: top; }
68 |
69 | .chromeframe { margin: 0.2em 0; background: #ccc; color: black; padding: 0.2em 0; }
70 |
71 |
72 |
73 | /* ===== Primary Styles ========================================================
74 | Author:
75 | ========================================================================== */
76 | body{
77 | background: url(../img/bg.jpg) repeat;
78 |
79 |
80 | }
81 |
82 | #login{
83 | /*position: fixed;*/
84 | /*width:100%;*/
85 | /*height: 150px;*/
86 | /*z-index: 1000;*/
87 | /*top:50%;*/
88 | /*margin-top:-75px;*/
89 | /*background: rgba(0,0,0,0.3);*/
90 | /*text-align: center;*/
91 | /*color: #fff;*/
92 | /*text-shadow: 0 1px 0 rgba(0,0,0,0.6);*/
93 | /*font-weight: bold;*/
94 | position: relative;
95 | z-index: 10;
96 | }
97 | #main{
98 |
99 |
100 | }
101 | .welcome{
102 | font-size: 25px;
103 |
104 |
105 | }
106 | .fb-login-button{
107 | display: inline-block;
108 | }
109 |
110 | #game{
111 | position: absolute;
112 | width:100%;
113 | height: 150px;
114 | z-index: 500;
115 | top:50%;
116 | margin-top:-75px;
117 | background: rgba(0,0,0,0.8);
118 |
119 | text-align: center;
120 | color: #fff;
121 | text-shadow: 0 1px 0 rgba(0, 0, 0, 0.6);
122 | font-weight: bold;
123 | -webkit-transition: all 250ms ease-out;
124 | -moz-transition: all 250ms ease-out;
125 | -ms-transition: all 250ms ease-out;
126 | -o-transition: all 250ms ease-out;
127 | transition: all 250ms ease-out;
128 |
129 | }
130 |
131 |
132 | #start{
133 | width:150px;
134 | margin: 0 auto;
135 | height:70px;
136 | font-weight: bold;
137 | font-size: 75px;
138 | color:#ffffff;
139 | cursor: pointer;
140 | }
141 |
142 | #start_cont{
143 | position: relative;
144 | z-index: 10;
145 | }
146 |
147 | #friends_cont{
148 | margin: 0 auto;
149 | padding: 0;
150 | width:600px;
151 |
152 | }
153 | #friends{
154 | margin: 0;
155 | }
156 | .rel{
157 | /*letter-spacing: -4px;*/
158 | text-align: left;
159 | list-style:none;
160 | position: relative;
161 | }
162 | .prof,.is,.status,.preposition,.rel_info{
163 | letter-spacing: normal;
164 | display: inline-block;
165 | vertical-align: middle;
166 | }
167 | .isnot{
168 | font-size: 12px;
169 | color:#eee;
170 | }
171 | .prof{
172 | width: 100px;
173 | font-size: 15px;
174 | text-align: center;
175 | }
176 | .prof .friend_name{
177 | position: absolute;
178 | width:250px;
179 | }
180 | .friend_prof .friend_name{
181 | top:24px;
182 | left:100px;
183 | }
184 | .mate_prof .friend_name{
185 | bottom:22px;
186 | left:100px;
187 | }
188 | .prof_pic{
189 |
190 | width:70px;
191 | height: 70px;
192 | /*background: #fed;*/
193 | border: #fff 3px solid;
194 | box-shadow: 1px 1px 3px #000;
195 | overflow: hidden;
196 | vertical-align: bottom;
197 | position: relative;
198 |
199 | background-size: cover;
200 | background-repeat: no-repeat;
201 | margin:20px auto;
202 | }
203 |
204 | .rel_info{
205 | width:250px;
206 | text-align: center;
207 | }
208 |
209 | #sort{
210 | text-align: left;
211 | position: fixed;
212 |
213 | }
214 | .sort_tags{
215 | list-style: none;
216 | font-size: 14px;
217 | }
218 | .sort_tags input{
219 | visibility: hidden;
220 | }
221 | .sort_tags label{
222 | padding:5px;
223 | margin:5px;
224 | }
225 | .sort_tags input:checked + label{
226 | background: #323680;
227 | border-radius: 5px;
228 |
229 | }
230 | /* =============================================================================
231 | Non-Semantic Helper Classes
232 | ========================================================================== */
233 |
234 | .ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; *line-height: 0; }
235 | .ir br { display: none; }
236 | .hidden { display: none !important; visibility: hidden; }
237 | .visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
238 | .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
239 | .invisible { visibility: hidden; }
240 | .clearfix:before, .clearfix:after { content: ""; display: table; }
241 | .clearfix:after { clear: both; }
242 | .clearfix { *zoom: 1; }
243 |
244 |
--------------------------------------------------------------------------------
/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | About - RelationBook.me
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
What's RelationBook?
62 |
63 | RelationBook is a simple way of viewing all your facebook friend's relationships, on one page, at
64 | the same time.
65 |
66 |
67 |
68 | Privacy concerns
69 |
70 |
71 |
72 | We aren't saving any of your personal information on our servers
73 | We won't post on your facebook wall without your permission!
74 |
75 |
76 |
Getting started
77 |
78 |
All you need to do is connect with Facebook and you’ll be brought to the RelationBook dashboard.
79 | You will see a list of your facebook friends, and a filter panel.
80 |
81 |
82 |
83 |
Filtering
84 |
85 |
86 | You can filter your friends by gender, relationship status and search for specific friends by name.
87 | Every profile and name is a link making it easy to navigate to your friends profile or their partner’s
88 | profiles.
89 |
90 |
91 |
Annoyed by the popup when you use filters?
92 | Please share relationbook with your facebook friends and the popup will never bug you again.
93 |
94 |
95 |
96 |
97 |
98 |
99 |
Who is it for?
100 |
101 |
Wether you want to discover all your married-couple friends , or just to find who among your female
102 | friends are single, RelationBook makes it easy for you
103 |
104 |
105 |
106 |
107 |
108 |
109 |
Who are we?
110 |
Three guys based in Israel who love creating useful tools.
111 |
112 |
118 |
119 |
From the creators of BlissControl .
120 |
121 |
Let us know what you think!
122 |
125 |
126 |
127 |
128 |
129 |
© Copyright Relationbook.me | Have feedback? Let us know!
130 |
131 |
132 |
135 |
143 |
144 |
154 |
163 |
174 |
187 |
188 |
189 |
190 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | RelationBook.me
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
Who's in a relationship?
57 |
58 | Easily find out which of your friends are in a relationship or single.
59 |
60 |
61 |
Get Started
62 |
63 |
64 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
82 |
83 |
Please share RelationBook.me with your facebook friends
84 |
85 | You can filter by sex and relationship status.
86 | We only ask you to share relationbook with your friends, after that you will be able to filter as much as you like.
87 |
88 |
89 |
94 |
95 |
96 |
97 |
Search a friend:
98 |
99 |
100 |
101 |
102 |
103 |
Apply Filters:
104 |
114 |
115 |
116 |
117 |
126 |
127 |
129 |
130 |
Fetching facebook friends...
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
×
143 |
144 |
145 |
146 |
147 |
148 | © Copyright Relationbook.me | Have feedback? Let us know!
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
176 |
177 |
183 |
184 |
185 |
186 |
--------------------------------------------------------------------------------
/lib/_navs.scss:
--------------------------------------------------------------------------------
1 | // NAVIGATIONS
2 | // -----------
3 |
4 |
5 |
6 | // BASE CLASS
7 | // ----------
8 |
9 | .nav {
10 | margin-left: 0;
11 | margin-bottom: $baseLineHeight;
12 | list-style: none;
13 | }
14 |
15 | // Make links block level
16 | .nav > li > a {
17 | display: block;
18 | }
19 | .nav > li > a:hover {
20 | text-decoration: none;
21 | background-color: $grayLighter;
22 | }
23 |
24 | // Redeclare pull classes because of specifity
25 | .nav > .pull-right {
26 | float: right;
27 | }
28 |
29 | // Nav headers (for dropdowns and lists)
30 | .nav .nav-header {
31 | display: block;
32 | padding: 3px 15px;
33 | font-size: 11px;
34 | font-weight: bold;
35 | line-height: $baseLineHeight;
36 | color: $grayLight;
37 | text-shadow: 0 1px 0 rgba(255,255,255,.5);
38 | text-transform: uppercase;
39 | }
40 | // Space them out when they follow another list item (link)
41 | .nav li + .nav-header {
42 | margin-top: 9px;
43 | }
44 |
45 |
46 | // NAV LIST
47 | // --------
48 |
49 | .nav-list {
50 | padding-left: 15px;
51 | padding-right: 15px;
52 | margin-bottom: 0;
53 | }
54 | .nav-list > li > a,
55 | .nav-list .nav-header {
56 | margin-left: -15px;
57 | margin-right: -15px;
58 | text-shadow: 0 1px 0 rgba(255,255,255,.5);
59 | }
60 | .nav-list > li > a {
61 | padding: 3px 15px;
62 | }
63 | .nav-list > .active > a,
64 | .nav-list > .active > a:hover {
65 | color: $white;
66 | text-shadow: 0 -1px 0 rgba(0,0,0,.2);
67 | background-color: $linkColor;
68 | }
69 | .nav-list [class^="icon-"] {
70 | margin-right: 2px;
71 | }
72 | // Dividers (basically an hr) within the dropdown
73 | .nav-list .divider {
74 | @include nav-divider();
75 | }
76 |
77 |
78 |
79 | // TABS AND PILLS
80 | // -------------
81 |
82 | // Common styles
83 | .nav-tabs,
84 | .nav-pills {
85 | @include clearfix();
86 | }
87 | .nav-tabs > li,
88 | .nav-pills > li {
89 | float: left;
90 | }
91 | .nav-tabs > li > a,
92 | .nav-pills > li > a {
93 | padding-right: 12px;
94 | padding-left: 12px;
95 | margin-right: 2px;
96 | line-height: 14px; // keeps the overall height an even number
97 | }
98 |
99 | // TABS
100 | // ----
101 |
102 | // Give the tabs something to sit on
103 | .nav-tabs {
104 | border-bottom: 1px solid #ddd;
105 | }
106 | // Make the list-items overlay the bottom border
107 | .nav-tabs > li {
108 | margin-bottom: -1px;
109 | }
110 | // Actual tabs (as links)
111 | .nav-tabs > li > a {
112 | padding-top: 8px;
113 | padding-bottom: 8px;
114 | line-height: $baseLineHeight;
115 | border: 1px solid transparent;
116 | @include border-radius(4px 4px 0 0);
117 | &:hover {
118 | border-color: $grayLighter $grayLighter #ddd;
119 | }
120 | }
121 | // Active state, and it's :hover to override normal :hover
122 | .nav-tabs > .active > a,
123 | .nav-tabs > .active > a:hover {
124 | color: $gray;
125 | background-color: $white;
126 | border: 1px solid #ddd;
127 | border-bottom-color: transparent;
128 | cursor: default;
129 | }
130 |
131 |
132 | // PILLS
133 | // -----
134 |
135 | // Links rendered as pills
136 | .nav-pills > li > a {
137 | padding-top: 8px;
138 | padding-bottom: 8px;
139 | margin-top: 2px;
140 | margin-bottom: 2px;
141 | @include border-radius(5px);
142 | }
143 |
144 | // Active state
145 | .nav-pills > .active > a,
146 | .nav-pills > .active > a:hover {
147 | color: $white;
148 | background-color: $linkColor;
149 | }
150 |
151 |
152 |
153 | // STACKED NAV
154 | // -----------
155 |
156 | // Stacked tabs and pills
157 | .nav-stacked > li {
158 | float: none;
159 | }
160 | .nav-stacked > li > a {
161 | margin-right: 0; // no need for the gap between nav items
162 | }
163 |
164 | // Tabs
165 | .nav-tabs.nav-stacked {
166 | border-bottom: 0;
167 | }
168 | .nav-tabs.nav-stacked > li > a {
169 | border: 1px solid #ddd;
170 | @include border-radius(0);
171 | }
172 | .nav-tabs.nav-stacked > li:first-child > a {
173 | @include border-radius(4px 4px 0 0);
174 | }
175 | .nav-tabs.nav-stacked > li:last-child > a {
176 | @include border-radius(0 0 4px 4px);
177 | }
178 | .nav-tabs.nav-stacked > li > a:hover {
179 | border-color: #ddd;
180 | z-index: 2;
181 | }
182 |
183 | // Pills
184 | .nav-pills.nav-stacked > li > a {
185 | margin-bottom: 3px;
186 | }
187 | .nav-pills.nav-stacked > li:last-child > a {
188 | margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
189 | }
190 |
191 |
192 |
193 | // DROPDOWNS
194 | // ---------
195 |
196 | .nav-tabs .dropdown-menu {
197 | @include border-radius(0 0 5px 5px); // remove the top rounded corners here since there is a hard edge above the menu
198 | }
199 | .nav-pills .dropdown-menu {
200 | @include border-radius(4px); // make rounded corners match the pills
201 | }
202 |
203 | // Default dropdown links
204 | // -------------------------
205 | // Make carets use linkColor to start
206 | .nav-tabs .dropdown-toggle .caret,
207 | .nav-pills .dropdown-toggle .caret {
208 | border-top-color: $linkColor;
209 | border-bottom-color: $linkColor;
210 | margin-top: 6px;
211 | }
212 | .nav-tabs .dropdown-toggle:hover .caret,
213 | .nav-pills .dropdown-toggle:hover .caret {
214 | border-top-color: $linkColorHover;
215 | border-bottom-color: $linkColorHover;
216 | }
217 |
218 | // Active dropdown links
219 | // -------------------------
220 | .nav-tabs .active .dropdown-toggle .caret,
221 | .nav-pills .active .dropdown-toggle .caret {
222 | border-top-color: $grayDark;
223 | border-bottom-color: $grayDark;
224 | }
225 |
226 | // Active:hover dropdown links
227 | // -------------------------
228 | .nav > .dropdown.active > a:hover {
229 | color: $black;
230 | cursor: pointer;
231 | }
232 |
233 | // Open dropdowns
234 | // -------------------------
235 | .nav-tabs .open .dropdown-toggle,
236 | .nav-pills .open .dropdown-toggle,
237 | .nav > li.dropdown.open.active > a:hover {
238 | color: $white;
239 | background-color: $grayLight;
240 | border-color: $grayLight;
241 | }
242 | .nav li.dropdown.open .caret,
243 | .nav li.dropdown.open.active .caret,
244 | .nav li.dropdown.open a:hover .caret {
245 | border-top-color: $white;
246 | border-bottom-color: $white;
247 | @include opacity(100);
248 | }
249 |
250 | // Dropdowns in stacked tabs
251 | .tabs-stacked .open > a:hover {
252 | border-color: $grayLight;
253 | }
254 |
255 |
256 |
257 | // TABBABLE
258 | // --------
259 |
260 |
261 | // COMMON STYLES
262 | // -------------
263 |
264 | // Clear any floats
265 | .tabbable {
266 | @include clearfix();
267 | }
268 | .tab-content {
269 | overflow: auto; // prevent content from running below tabs
270 | }
271 |
272 | // Remove border on bottom, left, right
273 | .tabs-below > .nav-tabs,
274 | .tabs-right > .nav-tabs,
275 | .tabs-left > .nav-tabs {
276 | border-bottom: 0;
277 | }
278 |
279 | // Show/hide tabbable areas
280 | .tab-content > .tab-pane,
281 | .pill-content > .pill-pane {
282 | display: none;
283 | }
284 | .tab-content > .active,
285 | .pill-content > .active {
286 | display: block;
287 | }
288 |
289 |
290 | // BOTTOM
291 | // ------
292 |
293 | .tabs-below > .nav-tabs {
294 | border-top: 1px solid #ddd;
295 | }
296 | .tabs-below > .nav-tabs > li {
297 | margin-top: -1px;
298 | margin-bottom: 0;
299 | }
300 | .tabs-below > .nav-tabs > li > a {
301 | @include border-radius(0 0 4px 4px);
302 | &:hover {
303 | border-bottom-color: transparent;
304 | border-top-color: #ddd;
305 | }
306 | }
307 | .tabs-below > .nav-tabs > .active > a,
308 | .tabs-below > .nav-tabs > .active > a:hover {
309 | border-color: transparent #ddd #ddd #ddd;
310 | }
311 |
312 | // LEFT & RIGHT
313 | // ------------
314 |
315 | // Common styles
316 | .tabs-left > .nav-tabs > li,
317 | .tabs-right > .nav-tabs > li {
318 | float: none;
319 | }
320 | .tabs-left > .nav-tabs > li > a,
321 | .tabs-right > .nav-tabs > li > a {
322 | min-width: 74px;
323 | margin-right: 0;
324 | margin-bottom: 3px;
325 | }
326 |
327 | // Tabs on the left
328 | .tabs-left > .nav-tabs {
329 | float: left;
330 | margin-right: 19px;
331 | border-right: 1px solid #ddd;
332 | }
333 | .tabs-left > .nav-tabs > li > a {
334 | margin-right: -1px;
335 | @include border-radius(4px 0 0 4px);
336 | }
337 | .tabs-left > .nav-tabs > li > a:hover {
338 | border-color: $grayLighter #ddd $grayLighter $grayLighter;
339 | }
340 | .tabs-left > .nav-tabs .active > a,
341 | .tabs-left > .nav-tabs .active > a:hover {
342 | border-color: #ddd transparent #ddd #ddd;
343 | *border-right-color: $white;
344 | }
345 |
346 | // Tabs on the right
347 | .tabs-right > .nav-tabs {
348 | float: right;
349 | margin-left: 19px;
350 | border-left: 1px solid #ddd;
351 | }
352 | .tabs-right > .nav-tabs > li > a {
353 | margin-left: -1px;
354 | @include border-radius(0 4px 4px 0);
355 | }
356 | .tabs-right > .nav-tabs > li > a:hover {
357 | border-color: $grayLighter $grayLighter $grayLighter #ddd;
358 | }
359 | .tabs-right > .nav-tabs .active > a,
360 | .tabs-right > .nav-tabs .active > a:hover {
361 | border-color: #ddd #ddd #ddd transparent;
362 | *border-left-color: $white;
363 | }
364 |
--------------------------------------------------------------------------------
/js/plugins-ck.js:
--------------------------------------------------------------------------------
1 | function a(){var a=function(){return((1+Math.random())*65536|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}function b(a){var b=new Date,c=new Date(a),d=b.getFullYear()-c.getFullYear(),e=b.getMonth()-c.getMonth();(e<0||e===0&&b.getDate()"+b+""})},render:function(b){var c=this;b=a(b).map(function(b,d){b=a(c.options.item).attr("data-value",d);b.find("a").html(c.highlighter(d));return b[0]});b.first().addClass("active");this.$menu.html(b);return this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0]));d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last());c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this));(a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keypress,this));this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},keyup:function(a){switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();this.clear();break;default:this.lookup()}a.stopPropagation();a.preventDefault()},keypress:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:if(a.type!="keydown")break;a.preventDefault();this.prev();break;case 40:if(a.type!="keydown")break;a.preventDefault();this.next()}a.stopPropagation()},blur:function(a){var b=this;setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation();a.preventDefault();this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active");a(b.currentTarget).addClass("active")}};a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f));typeof c=="string"&&e[c]()})};a.fn.typeahead.defaults={source:[],items:8,menu:'',item:' '};a.fn.typeahead.Constructor=b}(window.jQuery);!function(a){"use strict";var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b;this.$element=a(c);this.options=this.getOptions(d);this.enabled=!0;if(this.options.trigger!="manual"){e=this.options.trigger=="hover"?"mouseenter":"focus";f=this.options.trigger=="hover"?"mouseleave":"blur";this.$element.on(e,this.options.selector,a.proxy(this.enter,this));this.$element.on(f,this.options.selector,a.proxy(this.leave,this))}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){b=a.extend({},a.fn[this.type].defaults,b,this.$element.data());b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay});return b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout);c.hoverState="in";this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out";this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g="";if(this.hasContent()&&this.enabled){a=this.tip();this.setContent();this.options.animation&&a.addClass("fade");f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement;b=/in/.test(f);a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body);c=this.getPosition(b);d=a[0].offsetWidth;e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in");typeof this.options.showCallback=="function"&&this.options.showCallback.call(this,a[0],this.$element[0])}},isHTML:function(a){return typeof a!="string"||a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3||/^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(a)},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.isHTML(b)?"html":"text"](b);a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b);c.remove()})}var b=this,c=this.tip();c.removeClass("in");a.support.transition&&this.$tip.hasClass("fade")?d():c.remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title);return a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){if(!this.$element[0].parentNode){this.hide();this.$element=null;this.options=null}},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()}};a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f));typeof c=="string"&&e[c]()})};a.fn.tooltip.Constructor=b;a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover",title:"",delay:0}}(window.jQuery);!function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.isHTML(b)?"html":"text"](b);a.find(".popover-content > *")[this.isHTML(c)?"html":"text"](c);a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content);return a},tip:function(){this.$tip||(this.$tip=a(this.options.template));return this.$tip}});a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f));typeof c=="string"&&e[c]()})};a.fn.popover.Constructor=b;a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",content:"",template:''})}(window.jQuery);
--------------------------------------------------------------------------------
/lib/_navbar.scss:
--------------------------------------------------------------------------------
1 | // NAVBAR (FIXED AND STATIC)
2 | // -------------------------
3 |
4 |
5 | // COMMON STYLES
6 | // -------------
7 |
8 | .navbar {
9 | // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
10 | *position: relative;
11 | *z-index: 2;
12 |
13 | overflow: visible;
14 | margin-bottom: $baseLineHeight;
15 | }
16 |
17 | // Gradient is applied to it's own element because overflow visible is not honored by IE when filter is present
18 | .navbar-inner {
19 | min-height: $navbarHeight;
20 | padding-left: 20px;
21 | padding-right: 20px;
22 | @include gradient-vertical($navbarBackgroundHighlight, $navbarBackground);
23 | @include border-radius(4px);
24 | @include box-shadow(#{0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1)});
25 | }
26 |
27 | // Set width to auto for default container
28 | // We then reset it for fixed navbars in the #gridSystem mixin
29 | .navbar .container {
30 | width: auto;
31 | }
32 |
33 | // Override the default collapsed state
34 | .nav-collapse.collapse {
35 | height: auto;
36 | }
37 |
38 |
39 | // Brand, links, text, and buttons
40 | .navbar {
41 | color: $navbarText;
42 | // Hover and active states
43 | .brand:hover {
44 | text-decoration: none;
45 | }
46 | // Website or project name
47 | .brand {
48 | float: left;
49 | display: block;
50 | // Vertically center the text given $navbarHeight
51 | $elementHeight: 20px;
52 | padding: (($navbarHeight - $elementHeight) / 2 - 2) 20px (($navbarHeight - $elementHeight) / 2 + 2);
53 | margin-left: -20px; // negative indent to left-align the text down the page
54 | font-size: 20px;
55 | font-weight: 200;
56 | line-height: 1;
57 | color: $navbarBrandColor;
58 | }
59 | // Plain text in topbar
60 | .navbar-text {
61 | margin-bottom: 0;
62 | line-height: $navbarHeight;
63 | }
64 | // Janky solution for now to account for links outside the .nav
65 | .navbar-link {
66 | color: $navbarLinkColor;
67 | &:hover {
68 | color: $navbarLinkColorHover;
69 | }
70 | }
71 | // Buttons in navbar
72 | .btn,
73 | .btn-group {
74 | @include navbarVerticalAlign(30px); // Vertically center in navbar
75 | }
76 | .btn-group .btn {
77 | margin: 0; // then undo the margin here so we don't accidentally double it
78 | }
79 | }
80 |
81 | // Navbar forms
82 | .navbar-form {
83 | margin-bottom: 0; // remove default bottom margin
84 | @include clearfix();
85 | input,
86 | select,
87 | .radio,
88 | .checkbox {
89 | @include navbarVerticalAlign(30px); // Vertically center in navbar
90 | }
91 | input,
92 | select {
93 | display: inline-block;
94 | margin-bottom: 0;
95 | }
96 | input[type="image"],
97 | input[type="checkbox"],
98 | input[type="radio"] {
99 | margin-top: 3px;
100 | }
101 | .input-append,
102 | .input-prepend {
103 | margin-top: 6px;
104 | white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
105 | input {
106 | margin-top: 0; // remove the margin on top since it's on the parent
107 | }
108 | }
109 | }
110 |
111 | // Navbar search
112 | .navbar-search {
113 | position: relative;
114 | float: left;
115 | @include navbarVerticalAlign(28px); // Vertically center in navbar
116 | margin-bottom: 0;
117 | .search-query {
118 | padding: 4px 9px;
119 | @include font-sans-serif(13px, normal, 1);
120 | color: $white;
121 | background-color: $navbarSearchBackground;
122 | border: 1px solid $navbarSearchBorder;
123 | @include box-shadow(#{inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)});
124 | @include transition(none);
125 |
126 | @include placeholder($navbarSearchPlaceholderColor);
127 |
128 | // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
129 | &:focus,
130 | &.focused {
131 | padding: 5px 10px;
132 | color: $grayDark;
133 | text-shadow: 0 1px 0 $white;
134 | background-color: $navbarSearchBackgroundFocus;
135 | border: 0;
136 | @include box-shadow(0 0 3px rgba(0,0,0,.15));
137 | outline: 0;
138 | }
139 | }
140 | }
141 |
142 |
143 |
144 | // FIXED NAVBAR
145 | // ------------
146 |
147 | // Shared (top/bottom) styles
148 | .navbar-fixed-top,
149 | .navbar-fixed-bottom {
150 | position: fixed;
151 | right: 0;
152 | left: 0;
153 | z-index: $zindexFixedNavbar;
154 | margin-bottom: 0; // remove 18px margin for static navbar
155 | }
156 | .navbar-fixed-top .navbar-inner,
157 | .navbar-fixed-bottom .navbar-inner {
158 | padding-left: 0;
159 | padding-right: 0;
160 | @include border-radius(0);
161 | }
162 |
163 | .navbar-fixed-top .container,
164 | .navbar-fixed-bottom .container {
165 | @include core-span($gridColumns);
166 | }
167 |
168 | // Fixed to top
169 | .navbar-fixed-top {
170 | top: 0;
171 | }
172 |
173 | // Fixed to bottom
174 | .navbar-fixed-bottom {
175 | bottom: 0;
176 | }
177 |
178 |
179 |
180 | // NAVIGATION
181 | // ----------
182 |
183 | .navbar .nav {
184 | position: relative;
185 | left: 0;
186 | display: block;
187 | float: left;
188 | margin: 0 10px 0 0;
189 | }
190 | .navbar .nav.pull-right {
191 | float: right; // redeclare due to specificity
192 | }
193 | .navbar .nav > li {
194 | display: block;
195 | float: left;
196 | }
197 |
198 | // Links
199 | .navbar .nav > li > a {
200 | float: none;
201 | // Vertically center the text given $navbarHeight
202 | $elementHeight: 20px;
203 | padding: (($navbarHeight - $elementHeight) / 2 - 1) 10px (($navbarHeight - $elementHeight) / 2 + 1);
204 | line-height: 19px;
205 | color: $navbarLinkColor;
206 | text-decoration: none;
207 | text-shadow: 0 -1px 0 rgba(0,0,0,.25);
208 | }
209 | // Buttons
210 | .navbar .btn {
211 | display: inline-block;
212 | padding: 4px 10px 4px;
213 | // Vertically center the button given @navbarHeight
214 | $elementHeight: 28px;
215 | margin: (($navbarHeight - $elementHeight) / 2 - 1) 5px (($navbarHeight - $elementHeight) / 2);
216 | line-height: $baseLineHeight;
217 | }
218 | .navbar .btn-group {
219 | margin: 0;
220 | // Vertically center the button given @navbarHeight
221 | $elementHeight: 28px;
222 | padding: (($navbarHeight - $elementHeight) / 2 - 1) 5px (($navbarHeight - $elementHeight) / 2);
223 | }
224 | // Hover
225 | .navbar .nav > li > a:hover {
226 | background-color: $navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
227 | color: $navbarLinkColorHover;
228 | text-decoration: none;
229 | }
230 |
231 | // Active nav items
232 | .navbar .nav .active > a,
233 | .navbar .nav .active > a:hover {
234 | color: $navbarLinkColorActive;
235 | text-decoration: none;
236 | background-color: $navbarLinkBackgroundActive;
237 | }
238 |
239 | // Dividers (basically a vertical hr)
240 | .navbar .divider-vertical {
241 | height: $navbarHeight;
242 | width: 1px;
243 | margin: 0 9px;
244 | overflow: hidden;
245 | background-color: $navbarBackground;
246 | border-right: 1px solid $navbarBackgroundHighlight;
247 | }
248 |
249 | // Secondary (floated right) nav in topbar
250 | .navbar .nav.pull-right {
251 | margin-left: 10px;
252 | margin-right: 0;
253 | }
254 |
255 | // Navbar button for toggling navbar items in responsive layouts
256 | // These definitions need to come after '.navbar .btn'
257 | .navbar .btn-navbar {
258 | display: none;
259 | float: right;
260 | padding: 7px 10px;
261 | margin-left: 5px;
262 | margin-right: 5px;
263 | @include buttonBackground($navbarBackgroundHighlight, $navbarBackground);
264 | @include box-shadow(#{inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)});
265 | }
266 | .navbar .btn-navbar .icon-bar {
267 | display: block;
268 | width: 18px;
269 | height: 2px;
270 | background-color: #f5f5f5;
271 | @include border-radius(1px);
272 | @include box-shadow(0 1px 0 rgba(0,0,0,.25));
273 | }
274 | .btn-navbar .icon-bar + .icon-bar {
275 | margin-top: 3px;
276 | }
277 |
278 |
279 | // Dropdown menus
280 | // --------------
281 |
282 | // Menu position and menu carets
283 | .navbar .dropdown-menu {
284 | &:before {
285 | content: '';
286 | display: inline-block;
287 | border-left: 7px solid transparent;
288 | border-right: 7px solid transparent;
289 | border-bottom: 7px solid #ccc;
290 | border-bottom-color: $dropdownBorder;
291 | position: absolute;
292 | top: -7px;
293 | left: 9px;
294 | }
295 | &:after {
296 | content: '';
297 | display: inline-block;
298 | border-left: 6px solid transparent;
299 | border-right: 6px solid transparent;
300 | border-bottom: 6px solid $dropdownBackground;
301 | position: absolute;
302 | top: -6px;
303 | left: 10px;
304 | }
305 | }
306 | // Menu position and menu caret support for dropups via extra dropup class
307 | .navbar-fixed-bottom .dropdown-menu {
308 | &:before {
309 | border-top: 7px solid #ccc;
310 | border-top-color: $dropdownBorder;
311 | border-bottom: 0;
312 | bottom: -7px;
313 | top: auto;
314 | }
315 | &:after {
316 | border-top: 6px solid $dropdownBackground;
317 | border-bottom: 0;
318 | bottom: -6px;
319 | top: auto;
320 | }
321 | }
322 | // Dropdown toggle caret
323 | .navbar .nav li.dropdown .dropdown-toggle .caret,
324 | .navbar .nav li.dropdown.open .caret {
325 | border-top-color: $white;
326 | border-bottom-color: $white;
327 | }
328 | .navbar .nav li.dropdown.active .caret {
329 | @include opacity(100);
330 | }
331 |
332 | // Remove background color from open dropdown
333 | .navbar .nav li.dropdown.open > .dropdown-toggle,
334 | .navbar .nav li.dropdown.active > .dropdown-toggle,
335 | .navbar .nav li.dropdown.open.active > .dropdown-toggle {
336 | background-color: transparent;
337 | }
338 |
339 | // Dropdown link on hover
340 | .navbar .nav li.dropdown.active > .dropdown-toggle:hover {
341 | color: $white;
342 | }
343 |
344 | // Right aligned menus need alt position
345 | // TODO: rejigger this at some point to simplify the selectors
346 | .navbar .pull-right .dropdown-menu,
347 | .navbar .dropdown-menu.pull-right {
348 | left: auto;
349 | right: 0;
350 | &:before {
351 | left: auto;
352 | right: 12px;
353 | }
354 | &:after {
355 | left: auto;
356 | right: 13px;
357 | }
358 | }
--------------------------------------------------------------------------------
/lib/_variables.scss:
--------------------------------------------------------------------------------
1 | // Variables
2 | // Variables to customize the look and feel of Bootstrap
3 | // -----------------------------------------------------
4 |
5 |
6 |
7 | // GLOBAL VALUES
8 | // --------------------------------------------------
9 |
10 |
11 | // Grays
12 | // -------------------------
13 | $black: #000 !default;
14 | $grayDarker: #494e57 !default;
15 | $grayDark: #7e8793 !default;
16 | $gray: #727987 !default;
17 | $grayLight: #bec7d2 !default;
18 | $grayLighter: #eee !default;
19 | $white: #fff !default;
20 |
21 |
22 | // Accent colors
23 | // -------------------------
24 | $blue: #4d74b8 !default;
25 | $blueDarker: #5176b9 !default;
26 | $blueDark: #0064cd !default;
27 | $green: #46a546 !default;
28 | $red: #9d261d !default;
29 | $yellow: #ffc40d !default;
30 | $orange: #f89406 !default;
31 | $pink: #c3325f !default;
32 | $purple: #7a43b6 !default;
33 |
34 |
35 | // Scaffolding
36 | // -------------------------
37 | $bodyBackground: $white !default;
38 | $textColor: $grayDark !default;
39 |
40 |
41 | // Links
42 | // -------------------------
43 | $linkColor: $grayDark !default;
44 | $linkColorHover: darken($linkColor, 15%) !default;
45 |
46 |
47 | // Typography
48 | // -------------------------
49 | $sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
50 | $serifFontFamily: Georgia, "Times New Roman", Times, serif !default;
51 | $monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace !default;
52 | $bigFontFamily: "BitterBold", $serifFontFamily;
53 | $bigFontFamilyRegular: "BitterRegular", $serifFontFamily;
54 |
55 | $baseFontSize: 13px !default;
56 | $baseFontFamily: $sansFontFamily !default;
57 | $baseLineHeight: 18px !default;
58 | $altFontFamily: $serifFontFamily !default;
59 |
60 | $headingsFontFamily: inherit !default; // empty to use BS default, $baseFontFamily
61 | $headingsFontWeight: bold !default; // instead of browser default, bold
62 | $headingsColor: inherit !default; // empty to use BS default, $textColor
63 |
64 |
65 | // Tables
66 | // -------------------------
67 | $tableBackground: transparent !default; // overall background-color
68 | $tableBackgroundAccent: #f9f9f9 !default; // for striping
69 | $tableBackgroundHover: #f5f5f5 !default; // for hover
70 | $tableBorder: #ddd !default; // table and cell border
71 |
72 |
73 | // Buttons
74 | // -------------------------
75 | $btnBackground: $white !default;
76 | $btnBackgroundHighlight: darken($white, 10%) !default;
77 | $btnBorder: #ccc !default;
78 |
79 | $btnPrimaryBackground: $blue !default;
80 | $btnPrimaryBackgroundHighlight: adjust-hue($btnPrimaryBackground, 15%) !default;
81 |
82 | $btnInfoBackground: #5bc0de !default;
83 | $btnInfoBackgroundHighlight: #2f96b4 !default;
84 |
85 | $btnSuccessBackground: #62c462 !default;
86 | $btnSuccessBackgroundHighlight: #51a351 !default;
87 |
88 | $btnWarningBackground: lighten($orange, 15%) !default;
89 | $btnWarningBackgroundHighlight: $orange !default;
90 |
91 | $btnDangerBackground: #ee5f5b !default;
92 | $btnDangerBackgroundHighlight: #bd362f !default;
93 |
94 | $btnInverseBackground: $gray !default;
95 | $btnInverseBackgroundHighlight: $grayDarker !default;
96 |
97 |
98 | // Forms
99 | // -------------------------
100 | $inputBackground: $white !default;
101 | $inputBorder: #ccc !default;
102 | $inputBorderRadius: 3px !default;
103 | $inputDisabledBackground: $grayLighter !default;
104 | $formActionsBackground: #f5f5f5 !default;
105 |
106 | // Dropdowns
107 | // -------------------------
108 | $dropdownBackground: $white !default;
109 | $dropdownBorder: rgba(0,0,0,.2) !default;
110 | $dropdownLinkColor: $grayDark !default;
111 | $dropdownLinkColorHover: $white !default;
112 | $dropdownLinkBackgroundHover: $blue !default;
113 |
114 |
115 |
116 | // COMPONENT VARIABLES
117 | // --------------------------------------------------
118 |
119 | // Z-index master list
120 | // -------------------------
121 | // Used for a bird's eye view of components dependent on the z-axis
122 | // Try to avoid customizing these :)
123 | $zindexDropdown: 1000 !default;
124 | $zindexPopover: 1010 !default;
125 | $zindexTooltip: 1020 !default;
126 | $zindexFixedNavbar: 1030 !default;
127 | $zindexModalBackdrop: 1040 !default;
128 | $zindexModal: 1050 !default;
129 |
130 |
131 | // Sprite icons path
132 | // -------------------------
133 | $iconSpritePath: "../img/glyphicons-halflings.png" !default;
134 | $iconWhiteSpritePath: "../img/glyphicons-halflings-white.png" !default;
135 |
136 |
137 | // Input placeholder text color
138 | // -------------------------
139 | $placeholderText: $grayLight !default;
140 |
141 |
142 | // Hr border color
143 | // -------------------------
144 | $hrBorder: $grayLighter !default;
145 |
146 |
147 | // Navbar
148 | // -------------------------
149 | $navbarHeight: 40px !default;
150 | $navbarBackground: $grayDarker !default;
151 | $navbarBackgroundHighlight: $grayDark !default;
152 |
153 | $navbarText: $grayLight !default;
154 | $navbarLinkColor: $grayLight !default;
155 | $navbarLinkColorHover: $white !default;
156 | $navbarLinkColorActive: $navbarLinkColorHover !default;
157 | $navbarLinkBackgroundHover: transparent !default;
158 | $navbarLinkBackgroundActive: $navbarBackground !default;
159 |
160 | $navbarSearchBackground: lighten($navbarBackground, 25%) !default;
161 | $navbarSearchBackgroundFocus: $white !default;
162 | $navbarSearchBorder: darken($navbarSearchBackground, 30%) !default;
163 | $navbarSearchPlaceholderColor: #ccc !default;
164 | $navbarBrandColor: $navbarLinkColor !default;
165 |
166 |
167 | // Hero unit
168 | // -------------------------
169 | $heroUnitBackground: $grayLighter !default;
170 | $heroUnitHeadingColor: inherit !default;
171 | $heroUnitLeadColor: inherit !default;
172 |
173 |
174 | // Form states and alerts
175 | // -------------------------
176 | $warningText: #c09853 !default;
177 | $warningBackground: #fcf8e3 !default;
178 | $warningBorder: darken(adjust-hue($warningBackground, -10), 3%) !default;
179 |
180 | $errorText: #b94a48 !default;
181 | $errorBackground: #f2dede !default;
182 | $errorBorder: darken(adjust-hue($errorBackground, -10), 3%) !default;
183 |
184 | $successText: #468847 !default;
185 | $successBackground: #dff0d8 !default;
186 | $successBorder: darken(adjust-hue($successBackground, -10), 5%) !default;
187 |
188 | $infoText: #3a87ad !default;
189 | $infoBackground: #d9edf7 !default;
190 | $infoBorder: darken(adjust-hue($infoBackground, -10), 7%) !default;
191 |
192 |
193 |
194 | // GRID
195 | // --------------------------------------------------
196 |
197 | // Default 940px grid
198 | // -------------------------
199 | $gridColumns: 10 !default;
200 | $gridColumnWidth: 90px !default;
201 | $gridGutterWidth: 0px !default;
202 | $gridRowWidth: ($gridColumns * $gridColumnWidth) + ($gridGutterWidth * ($gridColumns - 1)) !default;
203 |
204 | // Fluid grid
205 | // -------------------------
206 | $fluidGridColumnWidth: 6.382978723% !default;
207 | $fluidGridGutterWidth: 2.127659574% !default;
208 |
209 |
210 | // Text shadow
211 | // -------------
212 | $default-text-shadow-color: #fff;
213 | $default-text-shadow-h-offset: 0px;
214 | $default-text-shadow-v-offset: 1px;
215 | $default-text-shadow-blur: 0px;
216 |
217 | $font_path: "fonts/" !default;
218 |
219 | @font-face {
220 | font-family: 'BitterRegular';
221 | src: url('#{$font_path}Bitter-Regular-webfont.eot');
222 | src: url('#{$font_path}Bitter-Regular-webfont.eot?#iefix') format('embedded-opentype'),
223 | url('#{$font_path}Bitter-Regular-webfont.woff') format('woff'),
224 | url('#{$font_path}Bitter-Regular-webfont.ttf') format('truetype'),
225 | url('#{$font_path}Bitter-Regular-webfont.svg#BitterRegular') format('svg');
226 | font-weight: normal;
227 | font-style: normal;
228 |
229 | }
230 |
231 | @font-face {
232 | font-family: 'BitterItalic';
233 | src: url('#{$font_path}Bitter-Italic-webfont.eot');
234 | src: url('#{$font_path}Bitter-Italic-webfont.eot?#iefix') format('embedded-opentype'),
235 | url('#{$font_path}Bitter-Italic-webfont.woff') format('woff'),
236 | url('#{$font_path}Bitter-Italic-webfont.ttf') format('truetype'),
237 | url('#{$font_path}Bitter-Italic-webfont.svg#BitterItalic') format('svg');
238 | font-weight: normal;
239 | font-style: normal;
240 |
241 | }
242 |
243 | @font-face {
244 | font-family: 'BitterBold';
245 | src: url('#{$font_path}Bitter-Bold-webfont.eot');
246 | src: url('#{$font_path}Bitter-Bold-webfont.eot?#iefix') format('embedded-opentype'),
247 | url('#{$font_path}Bitter-Bold-webfont.woff') format('woff'),
248 | url('#{$font_path}Bitter-Bold-webfont.ttf') format('truetype'),
249 | url('#{$font_path}Bitter-Bold-webfont.svg#BitterBold') format('svg');
250 | font-weight: normal;
251 | font-style: normal;
252 |
253 | }
254 |
255 |
256 | @font-face {
257 | font-family: 'FontAwesome';
258 | src: url('#{$font_path}fontawesome-webfont.eot');
259 | src: url('#{$font_path}fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
260 | url('#{$font_path}fontawesome-webfont.woff') format('woff'),
261 | url('#{$font_path}fontawesome-webfont.ttf') format('truetype'),
262 | url('#{$font_path}fontawesome-webfont.svg#ChunkFiveRegular') format('svg');
263 | font-weight: normal;
264 | font-style: normal;
265 | }
266 |
--------------------------------------------------------------------------------
/lib/_sprites.scss:
--------------------------------------------------------------------------------
1 | // SPRITES
2 | // Glyphs and icons for buttons, nav, and more
3 | // -------------------------------------------
4 |
5 |
6 | // ICONS
7 | // -----
8 |
9 | // All icons receive the styles of the tag with a base class
10 | // of .i and are then given a unique class to add width, height,
11 | // and background-position. Your resulting HTML will look like
12 | // .
13 |
14 | // For the white version of the icons, just add the .icon-white class:
15 | //
16 |
17 | [class^="icon-"],
18 | [class*=" icon-"] {
19 | display: inline-block;
20 | width: 14px;
21 | height: 14px;
22 | @include ie7-restore-right-whitespace();
23 | line-height: 14px;
24 | vertical-align: text-top;
25 | background-image: url($iconSpritePath);
26 | background-position: 14px 14px;
27 | background-repeat: no-repeat;
28 |
29 | }
30 | .icon-white {
31 | background-image: url($iconWhiteSpritePath);
32 | }
33 |
34 | .icon-glass { background-position: 0 0; }
35 | .icon-music { background-position: -24px 0; }
36 | .icon-search { background-position: -48px 0; }
37 | .icon-envelope { background-position: -72px 0; }
38 | .icon-heart { background-position: -96px 0; }
39 | .icon-star { background-position: -120px 0; }
40 | .icon-star-empty { background-position: -144px 0; }
41 | .icon-user { background-position: -168px 0; }
42 | .icon-film { background-position: -192px 0; }
43 | .icon-th-large { background-position: -216px 0; }
44 | .icon-th { background-position: -240px 0; }
45 | .icon-th-list { background-position: -264px 0; }
46 | .icon-ok { background-position: -288px 0; }
47 | .icon-remove { background-position: -312px 0; }
48 | .icon-zoom-in { background-position: -336px 0; }
49 | .icon-zoom-out { background-position: -360px 0; }
50 | .icon-off { background-position: -384px 0; }
51 | .icon-signal { background-position: -408px 0; }
52 | .icon-cog { background-position: -432px 0; }
53 | .icon-trash { background-position: -456px 0; }
54 |
55 | .icon-home { background-position: 0 -24px; }
56 | .icon-file { background-position: -24px -24px; }
57 | .icon-time { background-position: -48px -24px; }
58 | .icon-road { background-position: -72px -24px; }
59 | .icon-download-alt { background-position: -96px -24px; }
60 | .icon-download { background-position: -120px -24px; }
61 | .icon-upload { background-position: -144px -24px; }
62 | .icon-inbox { background-position: -168px -24px; }
63 | .icon-play-circle { background-position: -192px -24px; }
64 | .icon-repeat { background-position: -216px -24px; }
65 | .icon-refresh { background-position: -240px -24px; }
66 | .icon-list-alt { background-position: -264px -24px; }
67 | .icon-lock { background-position: -287px -24px; } // 1px off
68 | .icon-flag { background-position: -312px -24px; }
69 | .icon-headphones { background-position: -336px -24px; }
70 | .icon-volume-off { background-position: -360px -24px; }
71 | .icon-volume-down { background-position: -384px -24px; }
72 | .icon-volume-up { background-position: -408px -24px; }
73 | .icon-qrcode { background-position: -432px -24px; }
74 | .icon-barcode { background-position: -456px -24px; }
75 |
76 | .icon-tag { background-position: 0 -48px; }
77 | .icon-tags { background-position: -25px -48px; } // 1px off
78 | .icon-book { background-position: -48px -48px; }
79 | .icon-bookmark { background-position: -72px -48px; }
80 | .icon-print { background-position: -96px -48px; }
81 | .icon-camera { background-position: -120px -48px; }
82 | .icon-font { background-position: -144px -48px; }
83 | .icon-bold { background-position: -167px -48px; } // 1px off
84 | .icon-italic { background-position: -192px -48px; }
85 | .icon-text-height { background-position: -216px -48px; }
86 | .icon-text-width { background-position: -240px -48px; }
87 | .icon-align-left { background-position: -264px -48px; }
88 | .icon-align-center { background-position: -288px -48px; }
89 | .icon-align-right { background-position: -312px -48px; }
90 | .icon-align-justify { background-position: -336px -48px; }
91 | .icon-list { background-position: -360px -48px; }
92 | .icon-indent-left { background-position: -384px -48px; }
93 | .icon-indent-right { background-position: -408px -48px; }
94 | .icon-facetime-video { background-position: -432px -48px; }
95 | .icon-picture { background-position: -456px -48px; }
96 |
97 | .icon-pencil { background-position: 0 -72px; }
98 | .icon-map-marker { background-position: -24px -72px; }
99 | .icon-adjust { background-position: -48px -72px; }
100 | .icon-tint { background-position: -72px -72px; }
101 | .icon-edit { background-position: -96px -72px; }
102 | .icon-share { background-position: -120px -72px; }
103 | .icon-check { background-position: -144px -72px; }
104 | .icon-move { background-position: -168px -72px; }
105 | .icon-step-backward { background-position: -192px -72px; }
106 | .icon-fast-backward { background-position: -216px -72px; }
107 | .icon-backward { background-position: -240px -72px; }
108 | .icon-play { background-position: -264px -72px; }
109 | .icon-pause { background-position: -288px -72px; }
110 | .icon-stop { background-position: -312px -72px; }
111 | .icon-forward { background-position: -336px -72px; }
112 | .icon-fast-forward { background-position: -360px -72px; }
113 | .icon-step-forward { background-position: -384px -72px; }
114 | .icon-eject { background-position: -408px -72px; }
115 | .icon-chevron-left { background-position: -432px -72px; }
116 | .icon-chevron-right { background-position: -456px -72px; }
117 |
118 | .icon-plus-sign { background-position: 0 -96px; }
119 | .icon-minus-sign { background-position: -24px -96px; }
120 | .icon-remove-sign { background-position: -48px -96px; }
121 | .icon-ok-sign { background-position: -72px -96px; }
122 | .icon-question-sign { background-position: -96px -96px; }
123 | .icon-info-sign { background-position: -120px -96px; }
124 | .icon-screenshot { background-position: -144px -96px; }
125 | .icon-remove-circle { background-position: -168px -96px; }
126 | .icon-ok-circle { background-position: -192px -96px; }
127 | .icon-ban-circle { background-position: -216px -96px; }
128 | .icon-arrow-left { background-position: -240px -96px; }
129 | .icon-arrow-right { background-position: -264px -96px; }
130 | .icon-arrow-up { background-position: -289px -96px; } // 1px off
131 | .icon-arrow-down { background-position: -312px -96px; }
132 | .icon-share-alt { background-position: -336px -96px; }
133 | .icon-resize-full { background-position: -360px -96px; }
134 | .icon-resize-small { background-position: -384px -96px; }
135 | .icon-plus { background-position: -408px -96px; }
136 | .icon-minus { background-position: -433px -96px; }
137 | .icon-asterisk { background-position: -456px -96px; }
138 |
139 | .icon-exclamation-sign { background-position: 0 -120px; }
140 | .icon-gift { background-position: -24px -120px; }
141 | .icon-leaf { background-position: -48px -120px; }
142 | .icon-fire { background-position: -72px -120px; }
143 | .icon-eye-open { background-position: -96px -120px; }
144 | .icon-eye-close { background-position: -120px -120px; }
145 | .icon-warning-sign { background-position: -144px -120px; }
146 | .icon-plane { background-position: -168px -120px; }
147 | .icon-calendar { background-position: -192px -120px; }
148 | .icon-random { background-position: -216px -120px; }
149 | .icon-comment { background-position: -240px -120px; }
150 | .icon-magnet { background-position: -264px -120px; }
151 | .icon-chevron-up { background-position: -288px -120px; }
152 | .icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off
153 | .icon-retweet { background-position: -336px -120px; }
154 | .icon-shopping-cart { background-position: -360px -120px; }
155 | .icon-folder-close { background-position: -384px -120px; }
156 | .icon-folder-open { background-position: -408px -120px; }
157 | .icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off
158 | .icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off
159 |
160 | .icon-hdd { background-position: 0 -144px; }
161 | .icon-bullhorn { background-position: -24px -144px; }
162 | .icon-bell { background-position: -48px -144px; }
163 | .icon-certificate { background-position: -72px -144px; }
164 | .icon-thumbs-up { background-position: -96px -144px; }
165 | .icon-thumbs-down { background-position: -120px -144px; }
166 | .icon-hand-right { background-position: -144px -144px; }
167 | .icon-hand-left { background-position: -168px -144px; }
168 | .icon-hand-up { background-position: -192px -144px; }
169 | .icon-hand-down { background-position: -216px -144px; }
170 | .icon-circle-arrow-right { background-position: -240px -144px; }
171 | .icon-circle-arrow-left { background-position: -264px -144px; }
172 | .icon-circle-arrow-up { background-position: -288px -144px; }
173 | .icon-circle-arrow-down { background-position: -312px -144px; }
174 | .icon-globe { background-position: -336px -144px; }
175 | .icon-wrench { background-position: -360px -144px; }
176 | .icon-tasks { background-position: -384px -144px; }
177 | .icon-filter { background-position: -408px -144px; }
178 | .icon-briefcase { background-position: -432px -144px; }
179 | .icon-fullscreen { background-position: -456px -144px; }
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
--------------------------------------------------------------------------------
/js/script-ck.js:
--------------------------------------------------------------------------------
1 | function b(a){var b=$(".login");if(a.authResponse){gop.init();gop.data.getUserFromFB();$.publish("fb/status","connected");b.on("click",function(){})}else b.on("click",function(){FB.login(function(a){if(a.authResponse){gop.init();$.publish("fb/status","connected")}else console.log("handle user denial!")},{scope:"user_relationships,user_relationship_details,friends_relationships,friends_relationship_details ,friends_birthday"})})}$("document").ready(function(){Parse.initialize("nkmNHwnqekc0v7RpqXpjgKpHNXOPjMtTSBzy00wH","ZqgJnQ3C6gtUdxuYqxhnY0Ia923E6iMiatPd5qqa");FB.init({appId:"397573470274307",status:!0,cookie:!0,xfbml:!0,oauth:!0});FB.getLoginStatus(b)});var a=gop={debug:!1,pay_to_sort:!0,conf:{view:"list",filters:{}},storage:{},templates:{},timeout:0,rel_to_preposition:{single:"",in_a_relationship:"with",engaged:"to",married:"to","it-s_complicated":"with",in_an_open_relationship:"width",widowed:"",separated:"",divorced:"",not_listed:""},init:function(){gop.compileTemplates();gop.bindEvents();gop.data.loadConf();gop.data.statuses=_.keys(gop.rel_to_preposition);gop.ui.renderStatusFilters()},compileTemplates:function(){gop.templates.friends=_.template('<% _.each(friends, function(friend) { %><% if(typeof friend.mate == "object"){ %><%= friend.relationship_status.toLowerCase() %>
<%= gop.data.preposition(friend.relationship_status) %>
<% }else{ %><% if(friend.rel_code != "not_listed"){ %>
<%= friend.relationship_status.toLowerCase() %>
<% } %><% if(friend.rel_code == "not_listed"){ %>
is not sharing relationship info
<% } %> <% } %><% }); %>')},bindEvents:function(){$.subscribe("fb/me",gop.ui.renderUser);$.subscribe("fb/me",gop.data.checkParseUser);$.subscribe("fb/status",gop.ui.setState);$.subscribe("fb/status",gop.data.getUserFromFB);$.subscribe("fb/connected",gop.connected);$.subscribe("fb/fetched_friends",gop.data.checkFilters);$.subscribe("fb/fetched_friends",gop.bindDependantEvents);$.subscribe("fb/fetched_friends",gop.data.groupByStatus);$.subscribe("fb/fetched_friends",gop.ui.addCountToFilters);$("#sort").on("click",".sort_by",function(a){window.setTimeout(function(){var a=$(".sort_tags li").filter(function(){return $(this).find("input").prop("checked")});gop.conf.filters={};a.each(function(){var a=$(this).data("category");typeof gop.conf.filters[a]=="undefined"&&(gop.conf.filters[a]=[]);gop.conf.filters[a].push($(this).data("status"))});gop.data.checkFilters()},100)});$("#view_cont").on("click",".view",function(){gop.ui.changeView($(this).attr("id"));gop.ui.bindTooltips()})},bindDependantEvents:function(a,b){$("#search_input").typeahead({source:_.map(gop.data.friends,function(a){return a.name}),event:function(a){if(a!==!1){var b=_.filter(gop.data.friends,function(b){return _.indexOf(a,b.name)>-1});gop.data.clearFilters();gop.ui.render(null,b);$("#search_cont").addClass("active")}else{gop.ui.render(null,gop.data.friends);$("#search_cont").removeClass("active")}},clear:gop.ui.clearSearch});$("#clear_search").on("click",gop.ui.clearSearch);gop.ui.bindTooltips();$("#logout").on("click",function(a){a.preventDefault();Parse.User.logOut();FB.logout(function(a){window.location=window.location})})},connected:function(a,b){gop.data.getFriends()}};gop.data={friends:{},mates:{},state:"disconnected",count:{sex:{male:0,female:0},rel_code:{}},getFriends:function(){gop.debug?friends&&gop.data.handleFriends(friends):gop.data.getFriendsFromFB()},getFriendsFromFB:function(){gop.ui.updateProgress(0);FB.api({method:"fql.multiquery",queries:{friends:"SELECT uid, name,sex ,mutual_friend_count,birthday_date, pic,relationship_status, significant_other_id FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY name",significant_others:'SELECT uid, name,pic FROM user WHERE uid in (SELECT significant_other_id FROM #friends WHERE relationship_status != "")'}},function(a){gop.ui.updateProgress(100);setTimeout(function(){gop.data.handleFriends(a)},500)})},getUserFromFB:function(){if(gop.data.me)return;gop.data.me={};FB.api("/me",function(a){gop.data.me=a;$.publish("fb/me",a)})},checkParseUser:function(a,b){var c=Parse.User.current();c?gop.data.user=c:gop.data.loginParseUser(b)},loginParseUser:function(a){Parse.User.logIn(a.username,a.id,{success:function(a){console.log(a);gop.data.user=a},error:function(b,c){gop.data.createParseUser(a)}})},createParseUser:function(a){var b=new Parse.User;b.set("username",a.username);b.set("password",a.id);b.set("payed",!1);b.signUp(null,{success:function(a){console.log(a);gop.data.user=a},error:function(a,b){console.warn("Error: "+b.code+" "+b.message)}})},handleFriends:function(a){var b=a[0].fql_result_set,c=a[1].fql_result_set;for(var d=0;d
<% }) %>',b={statuses:gop.data.statuses},c=_.template(a,b);$("#sort").append(c)},selectFilters:function(){var a=_.reduceRight(gop.conf.filters,function(a,b){return a.concat(b)}),b=$(".sort_tags");$.each(a,function(a,c){b.find('[data-status="'+c+'"]').find("input").prop("checked","checked")})},deselectFilters:function(){var a=$(".sort_tags");a.find("input").prop("checked",!1)},addCountToFilters:function(){$(".sort_tags li").each(function(){var a=$(this).data("category"),b=$(this).data("status"),c=gop.data.count[a][b];!c>0&&(c=0);$(this).find(".ammount").html("("+c+")")})},render:function(a,b){gop.ui.renderBG();b=b||gop.data.friends;var c=gop.templates.friends({friends:b});$("#friends_body").empty().append(c);gop.ui.renderCountString(b.length);gop.ui.bindTooltips()},renderCountString:function(a){var b="",c="";gop.conf.filters.sex&&gop.conf.filters.sex.length==1&&(b=gop.conf.filters.sex.join(", "));gop.conf.filters.rel_code&&(c=gop.conf.filters.rel_code.join(", "));$("#showing").html('Showing '+a+" "+b+" friends")},renderUser:function(a,b){b=gop.data.me;b.rel_code=b.relationship_status.toLowerCase().split(" ").join("_").split("'").join("-");var c='
Hi <%=user.first_name%>, you are <%=user.relationship_status%>
| logout ',d={user:b},e=_.template(c,d);$(".userdata").append(e).data({sex:b.sex,rel_code:b.rel_code});gop.ui.renderBG(b.rel_code,b.sex);gop.ui.updateProgress(50)},renderBG:function(a,b){$body=$("body");$body[0].className="";$body.addClass(gop.data.state);if(gop.conf.filters&&gop.conf.filters.rel_code){gop.conf.filters.sex&&gop.conf.filters.sex.length==1?b=gop.conf.filters.sex[0]:b=$(".userdata").data("sex");a=gop.conf.filters.rel_code.length==1?gop.conf.filters.rel_code[0]:"all"}else{b=$(".userdata").data("sex");a=$(".userdata").data("rel_code")}$body.addClass(a).addClass(b)},setState:function(a,b){gop.data.state=b||"disconnected";$("body").removeClass("disconnected connected").addClass(gop.data.state).attr("data-state",gop.data.state);gop.data.state=="connected"&&$.publish("fb/connected",gop.data.state)},changeView:function(a){$(".view").removeClass("selected");$("#"+a).addClass("selected");gop.conf.view=a;$("#friends_cont")[0].className=a;gop.data.saveConf()},clearSearch:function(){gop.ui.render(null,gop.data.friends);$("#search_cont").removeClass("active");$("#search_input").val("")},updateProgress:function(a){$(".bar").width(a+"%")},bindTooltips:function(){$("#friends .rel").popover({placement:function(a,b){var c=this.$element.position().left,d=$("#friends").width()/2-15<=c?"left":"right";return"inside "+d},animation:!0,content:function(){var a=$(this).html();return a},showCallback:function(){var a=$("#friends_body").scrollTop(),b=$("#friends_body").height(),c=this.$element.height(),d=this.$element.position().top,e=30;d+c+e-b>a&&$("#friends_body").animate({scrollTop:d+c+e-b},200);d2;a==null&&(a=[]);if(A&&
12 | a.reduce===A){e&&(c=b.bind(c,e));return f?a.reduce(c,d):a.reduce(c)}j(a,function(a,b,i){if(f)d=c.call(e,d,a,b,i);else{d=a;f=true}});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(B&&a.reduceRight===B){e&&(c=b.bind(c,e));return f?a.reduceRight(c,d):a.reduceRight(c)}var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=function(a,
13 | c,b){var e;G(a,function(a,g,h){if(c.call(b,a,g,h)){e=a;return true}});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(C&&a.filter===C)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(D&&a.every===D)return a.every(c,b);j(a,function(a,g,h){if(!(e=e&&c.call(b,
14 | a,g,h)))return o});return!!e};var G=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(E&&a.some===E)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return o});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;if(q&&a.indexOf===q)return a.indexOf(c)!=-1;return b=G(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
15 | function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;bd?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};
17 | j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e>1;d(a[g])=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1),true);return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=
20 | i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=L||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&
25 | c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.pick=function(a){var c={};j(b.flatten(i.call(arguments,1)),function(b){b in a&&(c[b]=a[b])});return c};b.defaults=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return r(a,b,[])};b.isEmpty=
26 | function(a){if(a==null)return true;if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=p||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return l.call(a)=="[object Arguments]"};b.isArguments(arguments)||(b.isArguments=function(a){return!(!a||!b.has(a,"callee"))});b.isFunction=function(a){return l.call(a)=="[object Function]"};
27 | b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isFinite=function(a){return b.isNumber(a)&&isFinite(a)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,
28 | b){return K.call(a,b)};b.noConflict=function(){s._=I;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e /g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.result=function(a,c){if(a==null)return null;var d=a[c];return b.isFunction(d)?d.call(a):d};b.mixin=function(a){j(b.functions(a),function(c){M(c,b[c]=a[c])})};var N=0;b.uniqueId=
29 | function(a){var b=N++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var u=/.^/,n={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"},v;for(v in n)n[n[v]]=v;var O=/\\|'|\r|\n|\t|\u2028|\u2029/g,P=/\\(\\|'|r|n|t|u2028|u2029)/g,w=function(a){return a.replace(P,function(a,b){return n[b]})};b.template=function(a,c,d){d=b.defaults(d||{},b.templateSettings);a="__p+='"+a.replace(O,function(a){return"\\"+n[a]}).replace(d.escape||
30 | u,function(a,b){return"'+\n_.escape("+w(b)+")+\n'"}).replace(d.interpolate||u,function(a,b){return"'+\n("+w(b)+")+\n'"}).replace(d.evaluate||u,function(a,b){return"';\n"+w(b)+"\n;__p+='"})+"';\n";d.variable||(a="with(obj||{}){\n"+a+"}\n");var a="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+a+"return __p;\n",e=new Function(d.variable||"obj","_",a);if(c)return e(c,b);c=function(a){return e.call(this,a,b)};c.source="function("+(d.variable||"obj")+"){\n"+a+"}";return c};
31 | b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var x=function(a,c){return c?b(a).chain():a},M=function(a,c){m.prototype[a]=function(){var a=i.call(arguments);J.call(a,this._wrapped);return x(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return x(d,
32 | this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return x(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
33 |
--------------------------------------------------------------------------------
/lib/_style.scss:
--------------------------------------------------------------------------------
1 |
2 | /* ===== Primary Styles ========================================================
3 | Author:
4 | ========================================================================== */
5 | html{
6 | background: url(../img/bg.jpg) repeat;
7 | height: 100%;
8 | }
9 | body{
10 | background: url(../img/bg/all.png) 50% top no-repeat fixed;
11 | height: 100%;
12 | min-height: 700px;
13 | position: relative;
14 | min-width:900px;
15 | @include transition(background 500ms ease-out);
16 | }
17 | body.all{
18 | background-image:url(../img/bg/all.png);
19 | }
20 | body.single{
21 | background-image:url(../img/bg/male_single.png);
22 | }
23 | body.female.single{
24 | background-image:url(../img/bg/female_single.png);
25 | }
26 | body.complicated{
27 | background-image:url(../img/bg/complicated.png);
28 | }
29 | body.engaged{
30 | background-image:url(../img/bg/engaged.png);
31 | }
32 | body.in_a_relationship{
33 | background-image:url(../img/bg/in_a_relationship.png);
34 | }
35 | body.in_an_open_relationship{
36 | background-image:url(../img/bg/in_an_open_relationship.png);
37 | }
38 | body.it-s_complicated{
39 | background-image:url(../img/bg/complicated.png);
40 | }
41 | body.married{
42 | background-image:url(../img/bg/married.png);
43 | }
44 |
45 |
46 | /* ==========================================================================
47 | HEADER
48 | ========================================================================== */
49 |
50 | header{
51 | height: 70px;
52 | }
53 | .userdata{
54 | height: 43px;
55 | text-align: right;
56 | padding-right:15px;
57 | font-size:15px;
58 | line-height:43px;
59 | @include single-text-shadow;
60 | }
61 | .small_user_pic{
62 | width:20px;
63 | height: 20px;
64 | vertical-align: middle;
65 | margin: -5px 5px 0;
66 | border:1px solid $grayLight;
67 | border-radius: 1px;
68 | background-repeat: no-repeat;
69 | background-size: cover;
70 | display: inline-block;
71 | }
72 | .small_rel_info{
73 | display: inline-block;
74 | font-family: $bigFontFamily;
75 | text-rendering: optimizeLegibility;
76 | }
77 | #logo{
78 | background: url(../img/logo.png) left bottom no-repeat;
79 | display: block;
80 | height: 33px;
81 | }
82 |
83 | #menu{
84 | list-style: none;
85 | display:block;
86 | @include border-radius(25px);
87 | padding:10px 0;
88 | margin: 0;
89 | //margin-left: 85px;
90 | height: 20px;
91 | background: #EDEFF2;
92 | text-align : center;
93 | letter-spacing:-1px;
94 | @include box-shadow(0 1px 2px rgba(0,0,0,.2));
95 |
96 | li{
97 | display: inline-block;
98 | letter-spacing:normal;
99 | vertical-align: middle;
100 | padding: 0;
101 |
102 | @include single-text-shadow;
103 | }
104 | li:nth-child(1){
105 | margin-left:-5px;
106 | }
107 | }
108 |
109 |
110 | #login{
111 | position: relative;
112 | z-index: 10;
113 | }
114 |
115 | #post_scriptum{
116 | font-size: 15px;
117 | padding-top:25px;
118 | line-height:25px;
119 | a{
120 | text-decoration: underline;
121 | }
122 | }
123 |
124 | #myModal2{
125 | z-index: 1050;
126 | margin-top: -340px;
127 | width: 680px;
128 | height: 600px;
129 |
130 | margin-left: -340px;
131 | left: 50%;
132 | .modal-body{
133 | height: 600px !important;
134 | max-height: none;
135 | }
136 | .close{
137 | position: absolute;
138 | top: -25px;
139 | right: -15px;
140 | font-size: 25px;
141 | color: white;
142 | z-index: 1500;
143 | }
144 | }
145 | .disconnected .modal-backdrop{
146 | background-image: none;
147 | }
148 | /* ==========================================================================
149 | Welcome state
150 | ========================================================================== */
151 | #main{
152 |
153 |
154 | }
155 | #welcome{
156 | text-align : center;
157 | background: url(../img/heart.png) 50% 15px no-repeat;
158 | padding-top:165px;
159 | }
160 | .welcome{
161 |
162 | h1{
163 | font : 45px / 1.666em $bigFontFamily;
164 | color: $grayDark;
165 | @include single-text-shadow;
166 | }
167 | h2{
168 | color: $grayDarker;
169 | font:29px / 1.5em $bigFontFamilyRegular;
170 | @include single-text-shadow;
171 | }
172 | }
173 | .sign_in{
174 | margin-top:35px;
175 | height: 55px;
176 | @include border-radius(40px);
177 | @include box-shadow(0 1px 2px rgba(0,0,0,.9));
178 | @include gradient-vertical($blue,$blueDarker);
179 |
180 | &:hover{
181 | @include gradient-vertical(darken($blue,5%),darken($blueDarker,5%));
182 | }
183 | }
184 |
185 | .login{
186 | width:100%;
187 | height: 100%;
188 | cursor: pointer;
189 | color: $white;
190 | font: 25px / 55px $bigFontFamilyRegular;
191 | text-rendering: optimizeLegibility;
192 | display: inline-block;
193 | }
194 | /* ==========================================================================
195 | Footer
196 | ========================================================================== */
197 |
198 |
199 | footer{
200 | @include single-text-shadow;
201 | position: absolute;
202 | height: 30px;
203 | bottom:0;
204 | left: 0;right:0;
205 | color: $gray;
206 | a{
207 | color:$gray;
208 | }
209 | }
210 | #copy{
211 | text-align: center;
212 | }
213 |
214 |
215 | /* ==========================================================================
216 | Connected state
217 | ========================================================================== */
218 | #connected{
219 | position: absolute;
220 | top:128px;
221 | bottom : 44px;
222 | }
223 |
224 | #friends_cont{
225 | background: $white;
226 | @include border-radius(20px);
227 | overflow: hidden;
228 | position: relative;
229 | height: 100%;
230 | min-height: 500px;
231 | margin-left:-50px;
232 | width:680px;
233 | float:left;
234 | }
235 | $friends_padding : 52px;
236 |
237 | #friends_header{
238 | @include box-sizing(border-box);
239 | height:$friends_padding;
240 | border-bottom:3px dashed $grayLighter;
241 | position: absolute;top:0;
242 | width:100%;
243 | }
244 |
245 | #showing{
246 | height: 100%;
247 | width:100%;
248 | font-size:18px;
249 | font-family: $bigFontFamilyRegular;
250 | @include single-text-shadow;
251 | line-height:50px;
252 | text-align:center;
253 | .count{
254 | color:$blue;
255 | font-family: $bigFontFamily;
256 | }
257 | }
258 |
259 | #view_cont{
260 | position: absolute;
261 | right:0px;
262 | top:0px;
263 | text-align: center;
264 | //background: $grayLighter;
265 | font-size: 22px;
266 | margin-top:10px;
267 | margin-left:10px;
268 | border-radius:5px;
269 | padding: 5px 10px;
270 | letter-spacing: 0px;
271 | }
272 | .view{
273 | display: inline-block;
274 | text-shadow : 1px 1px 0px rgba(255,255,255,.2);
275 | cursor: pointer;
276 | }
277 | .view.selected{
278 | color:$blue;
279 | }
280 |
281 | #friends_footer{
282 | @include box-sizing(border-box);
283 | height:$friends_padding;
284 | border-top:3px dashed $grayLighter;
285 | position: absolute;bottom:0;
286 | width:100%;
287 | font-size:18px;
288 | @include single-text-shadow;
289 | line-height: 45px;
290 | padding-left: 25px;
291 |
292 | }
293 |
294 | #friends_body{
295 | overflow: scroll;
296 | overflow-x: hidden;
297 | -webkit-overflow-scrolling: touch;
298 | position: absolute;
299 | top:$friends_padding;
300 | bottom:$friends_padding;
301 | left: 0;right:0;
302 |
303 | .progress{
304 | width: 200px;
305 | margin-left: -100px;
306 | position: absolute;
307 | top: 20%;
308 | left: 50%;
309 | overflow: visible;
310 | .preload_text{
311 | letter-spacing: normal;
312 | font-size: 15px;
313 | text-align: center;
314 | padding-top: 10px;
315 | font-family: $bigFontFamilyRegular;
316 | }
317 | .bar{
318 | position: relative;
319 | border-radius: 3px;
320 | height: 94%;
321 | width: 0%;
322 | margin-left: 2px;
323 | margin-top: 1px;
324 | @include transition(width 250ms cubic-bezier(.01,1.06,.33,.92));
325 |
326 | }
327 |
328 | }
329 | }
330 | #friends{
331 | margin: 0;
332 | position: relative;
333 |
334 | }
335 | .rel{
336 | text-align: left;
337 | list-style:none;
338 | position: relative;
339 | padding:15px 25px;
340 |
341 | }
342 | .rel:nth-child(2n-1){
343 | background: #f7f8f9;
344 | border-top:3px dashed $grayLighter;
345 | border-bottom:3px dashed $grayLighter;
346 | }
347 | .rel:first-child{
348 | border-top: none;
349 | }
350 | .rel:last-child{
351 | border-bottom: none;
352 | }
353 | .prof,.status,.rel_info{
354 | letter-spacing: normal;
355 | display: inline-block;
356 | vertical-align: middle;
357 | }
358 | .is,.preposition{
359 | display: inline-block;
360 | }
361 |
362 | .thumb #friends_body{
363 | letter-spacing:-4px;
364 | .rel{
365 | display:inline-block;
366 | letter-spacing:normal;
367 | padding:15px 20px 15px 25px;
368 | @include box-sizing(border-box);
369 | width:25%;
370 | border-bottom:3px dashed $grayLighter;
371 | border-top:none;
372 | .rel_info{
373 | display: none;
374 | }
375 | .mate_prof{
376 | display: none;
377 | }
378 | }
379 |
380 | //.rel:nth-child(3n-1){
381 | // background: #f7f8f9;
382 | //}
383 | }
384 | .list .popover{
385 | display: none !important;
386 | }
387 | #friends_body .popover-title{
388 | display: none;
389 | }
390 | #friends_body .popover-content{
391 | .status{
392 | padding-bottom : 6px;
393 | }
394 | .mate_name{
395 | display: block !important;
396 | }
397 | .rel_info{
398 | display: block !important;
399 | width:auto !important;
400 | text-align: center;
401 | }
402 | .friend_prof,.mate_prof{
403 | display: none;
404 | }
405 | }
406 |
407 |
408 | $prof_width : 120px;
409 |
410 | .prof{
411 | width : $prof_width;
412 | }
413 | .prof .friend_name{
414 |
415 | }
416 | .friend_prof .friend_name{
417 |
418 | }
419 | .mate_prof .friend_name{
420 |
421 | }
422 | .prof_cont{
423 | background: $white;
424 | position: relative;
425 | border:1px solid #ced0d1;
426 | padding:5px;
427 | width:105px;
428 | height: 105px;
429 | @include box-shadow(0 1px 2px rgba(0,0,0,.2));
430 | @include border-radius(5px);
431 | i{
432 | position: absolute;
433 | bottom: 4px;
434 | right: 4px;
435 | background: white;
436 | padding: 3px 0 0 3px;
437 | border-top-left-radius: 5px;
438 | opacity: 0;
439 | //@include transition(opacity 200ms linear);
440 | .thumb &{
441 | opacity: 1;
442 | }
443 | &:before{
444 | top:0;
445 | }
446 | }
447 | }
448 | .prof_pic{
449 | display: block;
450 | width:100px;
451 | height: 100px;
452 | /*background: #fed;*/
453 | border: #fff 3px solid;
454 | @include box-shadow(inset 1px 1px 2px rgba(0,0,0,.2));
455 | overflow: hidden;
456 | vertical-align: bottom;
457 | position: relative;
458 | @include border-radius(5px);
459 | background-size: cover;
460 | background-repeat: no-repeat;
461 | }
462 |
463 | .rel_info{
464 | text-align: center;
465 | width : 330px;
466 | padding: 0 20px;
467 | color:$grayDarker;
468 | font-size: 18px;
469 | line-height: 28px;
470 | @include single-text-shadow;
471 | .status{
472 | font-family: $bigFontFamily;
473 | color:$blue;
474 | }
475 | }
476 |
477 |
478 | .small_rel_info.in_a_relationship{
479 | background-image: url(../img/icons/heart_small.png);
480 | background-repeat: no-repeat;
481 | background-position: 0% 50%;
482 | padding-left:18px;
483 | margin-left:2px;
484 | }
485 | .small_rel_info.in_a_relationship:first-letter{
486 | text-transform: capitalize;
487 | }
488 |
489 | aside{
490 |
491 | h5{
492 | font:18px / 45px $bigFontFamilyRegular;
493 | color: $grayDarker;
494 | text-shadow: 5px 0 0 rgba(255,255,255,.4);
495 | text-rendering: optimizeLegibility;
496 | }
497 | hr{
498 | width:60%;
499 | padding: 0 18px;
500 | }
501 | }
502 | #search_cont{
503 | position: relative;
504 | }
505 | #search_input{
506 | border-radius: 5px;
507 | font-size: 16px;
508 |
509 | box-shadow: 0 2px 0 rgba(0,0,0,0.1);
510 | border:0;
511 | padding:3px;
512 | width:150px;
513 | padding:8px;
514 | padding-right:40px;
515 | outline: none;
516 | }
517 | #clear_search{
518 | font-size: 25px;
519 | position: absolute;
520 | right:87px;top:8px;
521 | width:15px;height:15px;
522 | cursor: pointer;
523 | display: none;
524 | &:hover{
525 | color:$blue;
526 | }
527 | }
528 | #search_cont.active #clear_search{
529 | display: block;
530 | }
531 | .typeahead{
532 | width:195px;
533 | }
534 |
535 | #sort{
536 | font-size:14px;
537 | color:$grayDark;
538 | @include single-text-shadow;
539 |
540 | }
541 | .sort_tags{
542 | list-style: none;
543 | margin:0;
544 | padding:0;
545 | li{
546 | padding:0;
547 | margin:0;
548 | font-weight: bold;
549 | line-height:24px;
550 |
551 | }
552 | li:first-letter{
553 | text-transform: capitalize;
554 | }
555 | }
556 |
557 | .sort_tags input{
558 | visibility: hidden;
559 | position: absolute;
560 | }
561 | .sort_tags label{
562 | cursor: pointer;
563 | text-transform: capitalize;
564 | }
565 | .sort_tags .filter:first-letter{
566 | color:green;
567 | }
568 | .sort_tags .ammount{
569 | color: lighten($gray,20%);
570 | font-size:12px;
571 | text-shadow: 0 1px 0 rgba(255,255,255,.2);
572 | }
573 | .sort_tags label i{
574 | visibility: hidden;
575 | }
576 | .sort_tags input:checked + label{
577 | color: $blue;
578 | }
579 |
580 | .sort_tags input:checked + label i{
581 | visibility: visible;
582 | }
583 |
584 | body.disconnected #connected{
585 | display: none;
586 | }
587 |
588 | body.connected #welcome{
589 | display: none;
590 | }
591 |
592 | .chromeframe{
593 |
594 | }
595 |
596 | .modal-backdrop{
597 | background: #000 url(../img/bg/all.png) 50% top no-repeat;
598 | @include transition(opacity 300ms linear);
599 | }
600 | .modal-p{
601 | font-size: 14px;
602 | }
603 |
604 |
605 | /******************* ABOUT PAGE ********************/
606 | #about_cont{
607 | background: white;
608 | @include border-radius(20px);
609 | margin-top : 35px;
610 | font-size: 15px;
611 | line-height: 22px;
612 | }
613 | #about_inner{
614 | padding: 25px;
615 | .title{
616 | width : 100px;
617 | display: inline-block;
618 | }
619 | }
620 | .about_copy{
621 | display: block;
622 | text-align: center;
623 | padding:15px;
624 | }
625 | #comments{
626 | padding: 15px;
627 | min-height:500px;
628 | }
629 |
630 |
631 |
--------------------------------------------------------------------------------