Files
Chad Whitacre 012cafc8a0 Enough fucking around. We need this. #449
I've got people pressuring me to turn this into a for-profit business so
we can (take VC?) and pay people salaries and make it grow. And they're
right. Gittip needs to be funded in order to grow. No two ways about it.
But I'll be damned if I'm taking VC or profit. Gittip is funded on
Gittip.
2013-04-10 16:54:45 -04:00

1229 lines
26 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;
border: 4px solid #DEE0E0;
display: block;
float: left;
width: 100%;
overflow: hidden;
@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;
}
}
#mine {
width: 220px;
float: left;
}
#split {
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%;
}
}