Files
2013-04-11 23:02:09 -04:00

1262 lines
27 KiB
SCSS

// Fonts
$Helvetica: 'Helvetica Neue', Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif;
$Mensch: 'Mensch', $Helvetica;
// Colors
$green: #2A8F79;
$brown: #614C3E;
$light-brown: #B2A196;
$gray: #58595B;
$light-gray: #D0D2D3;
$lighter-gray: #E6E6E6;
$black: #231F20;
$light-red: #F99;
@font-face {
/* Props to http://www.fontsquirrel.com/ and http://www.losttype.com/. */
font-family: 'Mensch';
src: url('../fonts/mensch.eot');
src: url('../fonts/mensch.eot?#iefix') format('embedded-opentype'),
url('../fonts/mensch.woff') format('woff'),
url('../fonts/mensch.ttf') format('truetype'),
url('../fonts/mensch.svg#Mensch') format('svg');
font-weight: normal;
font-style: normal;
}
// Mixins
@mixin border-radius($radius: 5px) {
-webkit-background-clip: padding-box;
-webkit-border-radius: $radius;
-moz-background-clip: padding-box;
-moz-border-radius: $radius;
border-radius: $radius;
background-clip: padding-box;
}
@mixin box-shadow($horizontal: 0px, $vertical: 1px, $blur: 2px, $color: #CCC) {
-webkit-box-shadow: $horizontal $vertical $blur $color;
-moz-box-shadow: $horizontal $vertical $blur $color;
box-shadow: $horizontal $vertical $blur $color;
}
@mixin inset-box-shadow($horizontal: 0px, $vertical: 1px, $blur: 2px, $color: #CCC) {
-webkit-box-shadow: inset $horizontal $vertical $blur $color;
-moz-box-shadow: inset $horizontal $vertical $blur $color;
box-shadow: inset $horizontal $vertical $blur $color;
}
@mixin multi-color-border($top, $sides, $bottom) {
border-top: 1px solid $top;
border-left: 1px solid $sides;
border-right: 1px solid $sides;
border-bottom: 1px solid $bottom;
}
@mixin multi-border-radius($topLeft: 5px, $topRight: 5px, $bottomRight: 5px, $bottomLeft: 5px) {
-webkit-border-top-left-radius: $topLeft;
-webkit-border-top-right-radius: $topRight;
-webkit-border-bottom-right-radius: $bottomRight;
-webkit-border-bottom-left-radius: $bottomLeft;
-moz-border-radius-topleft: $topLeft;
-moz-border-radius-topright: $topRight;
-moz-border-radius-bottomright: $bottomRight;
-moz-border-radius-bottomleft: $bottomLeft;
border-top-left-radius: $topLeft;
border-top-right-radius: $topRight;
border-bottom-right-radius: $bottomRight;
border-bottom-left-radius: $bottomLeft;
}
@mixin vertical-gradient($start: #000, $stop: #FFF) { background: ($start + $stop) / 2;
background: -webkit-gradient(linear, left top, left bottom, from($start), to($stop));
background: -moz-linear-gradient(center top, $start 0%, $stop 100%);
background: -moz-gradient(center top, $start 0%, $stop 100%);
}
@mixin vertical-gradient-with-image($image, $start: #000, $stop: #FFF) {
background: ($start + $stop) / 2 $image;
background: $image, -webkit-gradient(linear, left top, left bottom, from($start), to($stop));
background: $image, -moz-linear-gradient(center top, $start 0%, $stop 100%);
background: $image, -moz-gradient(center top, $start 0%, $stop 100%);
}
@mixin opacity($op) {
-khtml-opacity: $op;
-moz-opacity: $op;
opacity: $op;
}
// Page
html, body {
background: #FFF;
}
body {
color: $black;
font: normal 16px $Helvetica;
text-rendering: optimizeLegibility;
}
.main-padding {
width: 960px;
margin: 0 auto;
position: relative;
}
* {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a {
color: $green;
text-decoration: none;
font-weight: bold;
}
a img {
border: 0;
}
p, dd {
margin: 0;
padding: 0 0 1em;
line-height: 130%;
}
dt {
font-weight: bold;
margin: 1em 0 0.25em;
}
pre {
font: 9pt/13pt monospace;
margin: 0 0 1em 1em;
padding: 0;
overflow: auto;
}
li {
margin: 0;
margin: 0 0 1em 1.5em;
}
ol {
margin: 1em 0 0;
}
ol li {
list-style: outside decimal;
}
// Utils
.group:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.hidden {
display: none;
}
input {
box-sizing: content-box;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
}
.clear {
clear: both;
}
.centered {
margin: 0 auto;
}
.highlight {
background: #FFFE26;
}
// Modules
.mini-user {
background: white;
display: block;
float: left;
width: 100%;
overflow: hidden;
border: 4px solid #DEE0E0;
@include border-radius(3px);
span.inner {
border: 1px solid #B6B7B9;
display: block;
min-height: 50px;
padding: 5px;
span.avatar {
background: transparent url('avatar-default.gif') center center no-repeat;
background-size: cover;
display: block;
min-height: 70px;
position: relative;
span.rank {
background: $brown;
bottom: 4px;
color: white;
display: block;
font: normal 12px $Mensch;
left: 4px;
padding: 3px 5px 3px 6px;
position: absolute;
text-align: center;
@include border-radius(2px);
}
}
span.age,
span.money {
color: $black;
display: block;
font: bold 18px $Helvetica;
margin: 7px 0 5px 0;
span.unit {
font: normal 11px $Helvetica;
}
}
span.name {
display: block;
font: normal 11px $Helvetica;
margin: 3px 0;
white-space: nowrap;
}
}
&.anonymous {
opacity: 0.33;
}
}
a.mini-user {
span.name {
color: $green;
}
}
span.mini-user {
border-color: white;
span.name {
color: $black;
}
}
a.mini-user:hover {
border: 4px solid $light-brown;
text-decoration: none;
span.inner {
border-color: $brown;
}
}
button {
background: $gray;
border: 3px solid rgba($gray, 0.33);
color: white;
font: bold 11px $Helvetica;
letter-spacing: 1px;
margin: 0 0 0 1px;
padding: 4px 10px;
text-transform: uppercase;
@include border-radius(3px);
cursor: pointer;
display: inline;
}
button:hover {
border-color: $gray;
background: $lighter-gray;
color: $gray;
}
button.selected {
border-color: rgba(#FFF, 0.9);
background: $green;
color: white;
}
button.selected:hover {
border-color: rgba($green, 0.5);
background: $lighter-gray;
color: $gray;
}
// Global
#header {
background: white;
padding: 10px 0;
position: relative;
td {
text-align: center;
vertical-align: middle;
}
h1 {
line-height: 100%;
}
.logo {
padding-right: 18px;
}
.motto {
border-left: 2px solid $light-gray;
font: bold 10px $Helvetica;
letter-spacing: 1px;
text-transform: uppercase;
padding-left: 18px;
text-align: left;
}
div.login {
padding-top: 18px;
position: absolute;
top: 0;
right: 0;
font: normal 13px $Helvetica;
}
}
#hero {
background: transparent url('hero-bg.png') top left repeat;
border: 1px solid $light-gray;
border-style: solid none;
padding-bottom: 100px;
text-align: center;
position: relative;
z-index: 1;
.main-padding {
color: $black;
}
h2 {
span {
background: transparent url('hero-bg.png') top left repeat;
display: inline-block;
padding: 0 10px;
}
}
p {
padding: 0 20%;
}
h2.top {
letter-spacing: -2px;
font: normal 35px $Mensch;
padding: 50px 0 35px 0;
span {
background: transparent url('hero-bg.png') top left repeat;
display: inline-block;
padding: 0 10px;
}
&:after {
background: $black;
content: "";
display: block;
height: 1px;
margin-top: -17px;
}
}
h1 {
letter-spacing: -3px;
font: normal 64px/64px $Mensch;
padding-bottom: 20px;
}
h2.bottom {
padding-bottom: 20px;
span.button-container {
display: inline-block;
padding: 0 10px;
button {
font-size: 14px;
}
}
&:after {
background: $black;
content: "";
display: block;
height: 1px;
margin-top: -16px;
}
}
}
#box {
text-align: center;
background: white;
margin: -80px auto 0;
border: 5px solid rgba($brown, 0.5);
width: 480px;
min-width: 240px;
@include border-radius(3px);
position: relative;
z-index: 2;
h1 {
font: bold 22px $Helvetica;
color: $brown;
}
h2 {
font: bold 14px $Helvetica;
text-transform: uppercase;
color: $brown;
}
.help {
font: normal 14px/18px $Helvetica;
color: $black;
&.with-padding {
padding: 10px;
}
}
.as-content {
padding: 20px;
&.left {
text-align: left;
}
h1 {
padding-bottom: 15px;
}
input {
width: 8em;
}
}
.is-suspicious-indicator {
display: block;
position: absolute;
top: 5px;
right: 5px;
font: normal 10px $Helvetica;
text-transform: uppercase;
color: $black;
}
label.is-suspicious-knob {
display: block;
position: absolute;
top: 2px;
right: 5px;
font: normal 9px $Helvetica;
text-transform: uppercase;
color: $black;
input {
position: relative;
top: 3px;
}
}
.ready {
padding-left: 15px;
}
.number {
font: bold 56px $Helvetica;
}
.unit {
font: normal 12px $Helvetica;
}
.on-elsewhere {
width: 100%;
.offset {
width: 138px;
height: 138px;
}
.picture {
width: 138px;
height: 138px;
img {
width: 128px;
height: 128px;
/* Without this we are inline-block and we get an extra 4px.
* Is that due to line-height, maybe? */
display: block;
margin: 5px;
}
}
}
.on-profile {
width: 100%;
&.is-suspicious {
background: $light-red;
}
.picture {
width: 138px;
height: 138px;
img {
width: 128px;
height: 128px;
/* Without this we are inline-block and we get an extra 4px.
* Is that due to line-height, maybe? */
display: block;
margin: 5px;
}
}
td {
text-align: left;
}
.pad-sign {
padding-left: 36px;
}
/*
form {
margin-bottom: 0;
margin-top: 12px;
input {
width: 30%;
}
}
*/
}
.nav {
padding: 5px;
h2 {
color: $black;
font: bold 10px $Helvetica;
letter-spacing: 1px;
text-transform: uppercase;
margin: 0 0 3px;
}
button.larger {
font-size: 14px;
}
&.level-1 {
border-top: 1px solid rgba($brown, 0.2);
background: $lighter-gray;
#payment-prompt {
display: none;
margin: 10px 0 5px;
&.needed {
display: block;
}
&.really-needed {
display: block;
}
}
}
&.level-2 {
border-top: 1px solid rgba($brown, 0.5);
background: $light-gray;
}
&.level-3 {
background: black;
text-align: center;
padding: 5px;
color: white;
a {
display: block;
color: white;
}
}
}
.on-confirm {
padding: 35px 0 0;
h2 {
font: bold 14px $Helvetica;
text-transform: uppercase;
margin: 35px 0 8px;
}
.nav {
margin: 35px 0 0;
h2 {
margin: 8px 0;
}
}
.scenario {
margin: 0 auto;
}
.scenario TD {
padding: 6pt;
width: 33%;
}
#nix {
position: absolute;
top: 50%;
left: 50%;
margin: -16px 0 0 -16px;
}
.participant {
position: relative;
width: 96pt;
display: inline-block;
border: 2px solid $brown;
border-radius: 6pt;
font: normal 12px $Helvetica;
color: $brown;
background: white url("/assets/clipped-heart.gif") bottom right no-repeat;
text-align: left;
overflow: hidden;
}
.participant-padding {
display: block;
padding: 6pt 0 6pt 9pt;
}
.participant IMG, IMG.platform-icon {
margin-bottom: -1pt;
}
.participant B {
font-size: 11pt;
}
.participant TD {
padding: 0;
}
.participant TH {
font-weight: normal;
}
.other, .abandoned {
font: normal 10px $Helvetica;
}
.abandoned {
text-align: center;
overflow: hidden;
}
.nix {
border-color: $light-brown;
}
.other B {
font-size: 9pt;
}
}
.on-form {
text-align: left;
.constrain-width {
margin: 0 auto 35px;
width: 300px;
}
form {
h2 {
font: bold 14px $Helvetica;
text-transform: uppercase;
margin: 35px 0 8px;
}
}
.half {
width: 150px;
}
.full {
clear: both;
text-align: right;
padding-top: 5px;
}
#other {
font: normal 9pt/14pt Arial, sans-serif;
color: #00E;
cursor: pointer;
margin-right: 1em;
}
#other:hover {
text-decoration: underline;
}
.left {
float: left;
}
.right {
float: left;
}
LABEL {
display: block;
font: normal 10px $Helvetica;
margin: 8px 0 0;
padding: 0;
text-transform: uppercase;
}
INPUT {
font: normal 11pt/14pt $Helvetica;
width: 292px;
margin: 0;
padding: 3px;
border: 1px solid $light-brown;
outline: none;
}
INPUT.disabled {
color: $light-brown;
}
.half INPUT {
width: 137px;
}
.right.half LABEL,
.right.half INPUT {
margin-left: 5px;
}
INPUT:focus {
border-color: $green;
}
.float {
float: left;
}
.city INPUT { width: 137px; }
.state INPUT { width: 43px; }
.zip INPUT { width: 75px; }
.card_number INPUT { width: 137px; }
.cvv INPUT { width: 43px; }
INPUT.expiration_month { width: 24px; }
INPUT.expiration_year { width: 39px; margin-left: 1px ! important; }
.not-first LABEL,
.not-first INPUT {
margin-left: 10px;
}
.nav {
text-align: center;
}
#feedback {
.details li {
margin: 0;
padding: 0 0 0 2em;
text-indent: -2em;
font: normal 12px $Helvetica;
}
}
}
}
.payment-footer {
font: normal 12px $Helvetica;
text-align: center;
}
#page #leaderboard {
ul {
margin: 0 0 20px 0;
li {
display: block;
float: left;
margin: 0;
min-width: 90px;
padding: 2px;
width: 10%;
}
}
}
#page {
padding: 20px 0 0;
background: white;
h1 {
color: $green;
font: normal 35px $Mensch;
letter-spacing: -2px;
margin: 35px 0 20px 0;
text-transform: uppercase;
}
h2 {
color: $brown;
font: bold 14px $Helvetica;
letter-spacing: 1px;
text-transform: uppercase;
margin: 35px 0 8px;
}
.col {
width: auto;
margin: 0 auto;
}
.col0 {
width: 460px;
margin: 0 auto;
}
.col1 {
width: 460px;
float: left;
}
.col2 {
width: 460px;
float: right;
}
}
#footer {
margin: 4em 0 1em;
border-top: 1px solid $black;
padding: 0.5em 0 0;
text-align: right;
font: normal 12px/16px $Helvetica;
.social {
float: left;
}
}
#accounts {
margin-bottom: 12pt;
td {
text-align: left;
vertical-align: middle;
line-height: 100%;
&.account-type {
border-right: 1pt solid #B2A196;
padding: 6pt 6pt 6pt 0;
IMG {
width: 36pt;
height: 36pt;
}
}
}
DIV.account-type {
font-size: x-small;
clear: both;
color: $light-brown;
}
.account-details {
padding-left: 6pt;
}
IMG.avatar {
width: 24pt;
height: 24pt;
float: left;
margin-right: 3pt;
}
}
#members {
list-style: none;
margin-bottom: 12pt;
margin: 0 auto;
TD {
padding: 0 0 0.5em 0;
text-align: left;
}
IMG {
width: 18pt;
height: 18pt;
margin-right: 6pt;
float: left;
}
}
.tip-distribution {
/** This is blatantly copied from stats.html. We should really fix
that somehow. **/
.dollar-sign {
padding: 0 2pt 0 24pt;
text-align: right;
}
.amount {
padding: 0 6pt 0 0;
text-align: right;
}
.amount-change {
padding: 6pt 0 6pt 24pt;
text-align: left;
}
.count {
text-align: left;
white-space: nowrap;
}
.count SPAN.number {
font-size: 8pt;
}
.count SPAN.bar {
background: $light-brown;
display: inline-block;
margin-right: 3pt;
height: 9pt;
}
.count SPAN.bar.green {
background: $green;
}
}
#profile-edit {
BUTTON.save, BUTTON.cancel {
display: none;
}
.username {
INPUT {
width: 6em;
display: none;
}
.warning {
margin-top: 5px;
display: block;
color: red;
display: none;
}
}
.statement {
DIV.edit {
display: none;
}
TEXTAREA {
width: 98%;
height: 126pt; /* 18pt * 7 rows; overriden in js */
padding: 1%
}
.help {
font: normal 12px/12px $Helvetica;
}
}
.goal {
TABLE.edit {
display: none;
}
TD {
text-align: left;
}
#goal-custom {
text-align: right;
width: 6pc;
}
LI {
margin-bottom: 1em;
}
}
}
#history {
th {
padding: 0 3pt;
b {
font-weight: 300;
font-size: 9pt;
}
}
td {
padding: 1pt 3pt;
font-size: 9pt;
line-height: 10pt;
text-align: right;
h2 {
text-align: left;
}
}
.head td {
font-size: 9pt;
white-space: normal;
text-align: left;
border-bottom: 1px solid $brown;
}
td.card, td.fees, td.debits {
color: red;
}
.head td.card, .head td.fees, .head td.debits {
color: $brown;
}
td.notes {
text-align: left;
}
.fees {
border-right: 1px solid $brown;
text-align: right;
}
.outside {
border-right: 1px solid $brown;
text-align: right ! important;
}
}
#for {
#weeks {
margin-top: 10px;
.fine {
font: normal 10px $Helvetica;
text-transform: uppercase;
}
#this-week {
width: 220px;
float: left;
text-align: left;
.amount {
font: bold 56px $Helvetica;
}
}
#last-week {
width: 220px;
float: right;
text-align: right;
.account {
padding: 5px 0;
}
}
}
#deserts {
width: 220px;
float: left;
#query {
width: 110px;
padding: 2px 5px;
}
#lookup-results-container {
position: relative;
#lookup-results {
width: 120px;
position: absolute;
bottom: 0px;
left: -128px;
background: white;
border: 2px solid black;
margin: 0;
padding: 5px;
border: 4px solid rgba($brown, 0.5);
@include border-radius(3px);
li {
font: normal 16px/16px $Helvetica;
white-space: nowrap;
margin: 0;
padding: 3px 0;
overflow: hidden;
}
}
}
}
#crowd {
width: 220px;
float: right;
text-align: right;
}
}
/* A Special Responsive Hell */
/*****************************/
@media (max-width: 1029px) {
.main-padding {
width: auto;
padding: 0 35px;
}
#header {
}
#page {
.col, .col1, .col2 {
width: 460px;
float: none;
margin: 0 auto;
}
}
}
@media (max-width: 670px) { .main-padding { padding: 0 34px; } }
@media (max-width: 660px) { .main-padding { padding: 0 32px; } }
@media (max-width: 640px) { .main-padding { padding: 0 30px; } }
@media (max-width: 620px) { .main-padding { padding: 0 28px; } }
@media (max-width: 600px) { .main-padding { padding: 0 26px; } }
@media (max-width: 580px) { .main-padding { padding: 0 24px; } }
@media (max-width: 560px) { .main-padding { padding: 0 22px; } }
@media (max-width: 540px) {
.main-padding { padding: 0 20px; }
#page #leaderboard ul li.luxury {
display: none;
}
body {
font: normal 14px $Helvetica;
}
#header div.login {
font: normal 12px $Helvetica;
}
}
@media (max-width: 530px) { .main-padding { padding: 0 18px; } }
@media (max-width: 520px) { .main-padding { padding: 0 16px; } }
@media (max-width: 510px) { .main-padding { padding: 0 14px; } }
@media (max-width: 500px) { .main-padding { padding: 0 12px; } }
@media (max-width: 494px) { #box { width: auto; } }
@media (max-width: 490px) { .main-padding { padding: 0 10px; } }
@media (max-width: 480px) {
.main-padding {
padding: 0 8px;
}
#header {
text-align: center;
div.login {
position: static;
}
table {
margin: 0 auto;
}
}
body {
font: normal 13px $Helvetica;
}
#box #jump .luxury {
display: none;
}
#page {
.col, .col0, .col1, .col2 {
width: auto;
}
}
}
@media (max-width: 470px) { .main-padding { padding: 0 6px; } }
@media (max-width: 460px) { .main-padding { padding: 0 4px; } }
@media (max-width: 600px) {
#hero h2.top {
font-size: 35px;
line-height: 35px;
&:after { margin-top: -17px; }
padding: 50px 0 35px;
}
#hero h1 {
font-size: 64px;
line-height: 64px;
letter-spacing: -3px;
padding: 0 0 20px;
}
}
@media (max-width: 550px) {
#hero h2.top {
font-size: 31px;
line-height: 31px;
&:after { margin-top: -9px; }
padding: 43px 0 29px;
}
#hero h1 {
font-size: 57px;
line-height: 57px;
letter-spacing: -1px;
padding: 0 0 15px;
}
}
@media (max-width: 500px) {
#hero h2.top {
font-size: 27px;
line-height: 27px;
&:after { margin-top: -9px; }
padding: 36px 0 23px;
}
#hero h1 {
font-size: 50px;
line-height: 50px;
letter-spacing: -1px;
padding: 0 0 10px;
}
}
@media (max-width: 450px) {
#hero h2.top {
font-size: 23px;
line-height: 23px;
&:after { margin-top: -9px; }
padding: 29px 0 17px;
}
#hero h1 {
font-size: 43px;
line-height: 43px;
letter-spacing: -1px;
padding: 0 0 5px;
}
}
@media (max-width: 400px) {
#hero h2.top {
font-size: 19px;
line-height: 19px;
&:after { margin-top: -9px; }
padding: 22px 0 11px;
}
#hero h1 {
font-size: 36px;
line-height: 36px;
letter-spacing: -1px;
padding: 0;
}
}
@media (max-width: 350px) {
#hero h2.top {
font-size: 15px;
line-height: 15px;
&:after { margin-top: -9px; }
padding: 15px 0 5px;
}
#hero h1 {
font-size: 29px;
line-height: 29px;
letter-spacing: 0px;
padding: 0;
}
}
@media (max-width: 360px) {
#box {
border-radius: 0;
border-left-width: 1px;
border-right-width: 1px;
}
}
@media (max-width: 460px) {
#box table h2 { font-size: 14px; line-height: 14px; }
#box table .pad-sign { padding-left: 36px ! important; }
#box table .number { font-size: 56px; line-height: 56px; }
#box table .unit { font-size: 12px; line-height: 12px; }
}
@media (max-width: 420px) {
#box table h2 { font-size: 13px; line-height: 13px; }
#box table .pad-sign { padding-left: 30px ! important; }
#box table .number { font-size: 48px; line-height: 48px; }
#box table .unit { font-size: 11px; line-height: 11px; }
}
@media (max-width: 380px) {
#box table h2 { font-size: 13px; line-height: 12px; }
#box table .pad-sign { padding-left: 24px ! important; }
#box table .number { font-size: 40px; line-height: 40px; }
}
@media (max-width: 340px) {
#box table h2 { font-size: 11px; line-height: 11px; }
#box table .pad-sign { padding-left: 18px ! important; }
#box table .number { font-size: 32px; line-height: 32px; }
#box table .unit { font-size: 10px; line-height: 10px; }
}
@media (max-width: 300px) {
#box table h2 { font-size: 10px; line-height: 10px; }
#box table .pad-sign { padding-left: 12px ! important; }
#box table .number { font-size: 24px; line-height: 24px; }
#box table .unit { font-size: 9px; line-height: 9px; }
}
@media (max-width: 320px) {
body {
font: normal 13px $Helvetica;
}
}
@media (max-width: 240px) {
#header {
.logo { padding-right: 0; }
.motto.luxury { display: none; }
.login .luxury { display: none; }
}
}
@media (max-width: 200px) {
#box #jump input {
width: 80%;
}
}