mirror of
https://github.com/danog/2048.git
synced 2024-11-27 11:54:39 +01:00
157 lines
2.9 KiB
SCSS
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;
|
|
}
|
|
}
|
|
|
|
|