1
0
mirror of https://github.com/danog/2048.git synced 2024-11-27 11:54:39 +01:00
2048/style/main.scss
2014-03-05 17:34:04 +01:00

157 lines
2.9 KiB
SCSS

@import "helpers";
@import "fonts/clear-sans.css";
$field-width: 500px;
$grid-spacing: 15px;
$grid-row-cells: 4;
$tile-size: ($field-width - $grid-spacing * ($grid-row-cells + 1)) / $grid-row-cells;
$tile-border-radius: 3px;
$text-color: #776E65;
$gold-text-color: #f9f6f2;
$tile-color: #eee4da;
$tile-gold-color: #edc22e;
$tile-gold-glow-color: lighten($tile-gold-color, 15%);
html, body {
margin: 0;
padding: 0;
background: #faf8ef;
color: $text-color;
font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;
}
body {
margin: 80px 0;
}
h1 {
font-size: 80px;
font-weight: bold;
margin: 0;
}
.container {
width: $field-width;
margin: 0 auto;
}
.game-container {
margin-top: 50px;
position: relative;
padding: $grid-spacing;
cursor: default;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
background: #bbada0;
border-radius: $tile-border-radius * 2;
width: $field-width;
height: $field-width;
box-sizing: border-box;
}
.grid-container {
position: absolute;
z-index: 1;
}
.grid-row {
margin-bottom: $grid-spacing;
&:last-child {
margin-bottom: 0;
}
&:after {
content: "";
display: block;
clear: both;
}
}
.grid-cell {
width: $tile-size;
height: $tile-size;
margin-right: $grid-spacing;
float: left;
border-radius: $tile-border-radius;
background: rgba($tile-color, .35);
&:last-child {
margin-right: 0;
}
}
.tile-container {
position: absolute;
z-index: 2;
}
.tile {
background: red;
width: $tile-size;
height: $tile-size;
border-radius: $tile-border-radius;
background: $tile-color;
text-align: center;
line-height: $tile-size + 10px;
font-size: 55px;
font-weight: bold;
@include transition(200ms ease);
@include transition-property(top, left);
@for $x from 1 through $grid-row-cells {
@for $y from 1 through $grid-row-cells {
&.tile-position-#{$x}-#{$y} {
position: absolute;
left: ($tile-size + $grid-spacing) * ($x - 1);
top: ($tile-size + $grid-spacing) * ($y - 1);
}
}
}
$base: 2;
$exponent: 1;
$limit: 11;
@while $exponent <= $limit {
$power: pow($base, $exponent);
$gold-percent: ($exponent - 1) / ($limit - 1) * 100;
$gold-text-percent: min($exponent + 2, $limit) / ($limit) * 100;
$glow-opacity: max($exponent - 4, 0) / ($limit - 4);
&.tile-#{$power} {
background: mix($tile-gold-color, $tile-color, $gold-percent);
box-shadow: 0 0 30px 10px rgba($tile-gold-glow-color, $glow-opacity / 1.5),
inset 0 0 0 1px rgba(white, $glow-opacity / 3);
@if $exponent >= 8 {
color: mix($gold-text-color, $text-color, $gold-text-percent);
}
@if $power >= 100 and $power < 1000 {
font-size: 45px;
} @else if $power >= 1000 {
font-size: 35px;
}
}
$exponent: $exponent + 1;
}
}