liftie
Version:
Clean, simple, easy to read, fast ski resort lift status
865 lines (864 loc) • 15.6 kB
CSS
@font-face {
font-family: "lift-status";
src: url("/OEQfOpxZ4A/stylesheets/fonts/lift-status.woff2") format("woff2");
font-weight: normal;
font-style: normal;
}
[class^="ls-"]:before,
[class*=" ls-"]:before {
font-family: 'lift-status';
font-style: normal;
speak: none;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.ls-scheduled:before {
content: "\e004";
color: #104aa8;
}
.ls-hold:before {
content: "\e005";
color: #ffa200;
}
.ls-closed:before {
content: "\e006";
color: #ff1e00;
}
.ls-open:before {
content: "\e007";
color: #00b831;
}
.ls-github:before {
content: "\e010";
}
.ls-twitter:before {
content: "\e011";
}
.ls-facebook:before {
content: "\e012";
}
.ls-google-plus:before {
content: "\e013";
}
.ls-furkot:before {
content: "\e020";
}
.ls-plus:before {
content: "\e031";
}
.ls-minus:before {
content: "\e032";
}
.ls-external:before {
content: "\e033";
}
.ls-deal:before {
content: "\e034";
}
.ls-star-full:before {
content: "\e035";
}
.ls-star-outline:before {
content: "\e036";
}
.ls-pie:before {
content: "\e000";
}
.ls-snowflake:before {
content: "\e001";
}
.ls-html:before {
content: "\f068";
}
.ls-liftie:before {
content: "\e002";
}
.ls-email:before {
content: "\f028";
}
@font-face {
font-family: "iconvault";
src: url("/qGg5C7akoM/stylesheets/fonts/iconvault_forecastfont.woff2") format("woff2");
font-weight: normal;
font-style: normal;
}
div.weather-icon ul li {
list-style: none;
}
div.weather-icon ul [class^="icon-"],
div.weather-icon ul [class*=" icon-"] {
font-family: 'iconvault';
font-weight: normal;
font-style: normal;
text-decoration: inherit;
speak: none;
-webkit-font-smoothing: antialiased;
font-size: 4em;
}
div.weather-icon ul .basecloud:before {
font-family: 'iconvault';
font-size: 4em;
content: '\f105';
position: absolute;
color: #ccc;
}
div.weather-icon ul .windyraincloud:before {
font-family: 'iconvault';
font-size: 4em;
content: '\f111';
position: absolute;
color: #ccc;
}
div.weather-icon ul .windysnowcloud:before {
font-family: 'iconvault';
font-size: 4em;
content: '\f109';
position: absolute;
color: #ccc;
}
div.weather-icon ul .icon-thunder:before {
content: "\f114";
position: absolute;
color: #ffa500;
}
div.weather-icon ul .icon-sunny:after {
content: "\f101";
color: #ffa500;
position: absolute;
}
div.weather-icon ul .icon-drizzle:before {
content: "\f10a";
color: #82b2e4;
position: absolute;
}
div.weather-icon ul .icon-hail:before {
content: "\f10f";
position: absolute;
color: #ccc;
}
div.weather-icon ul .icon-showers:before {
content: "\f104";
position: absolute;
color: #82b2e4;
}
div.weather-icon ul .icon-rainy:before {
content: "\f107";
position: absolute;
color: #4681c3;
}
div.weather-icon ul .icon-snowy:before {
content: "\f10b";
position: absolute;
color: #acd3f3;
}
div.weather-icon ul .icon-frosty:before {
content: "\f102";
position: absolute;
color: #85d8f7;
}
div.weather-icon ul .icon-windy:before {
content: "\f115";
position: absolute;
color: #ccc;
}
div.weather-icon ul .icon-windyrain:before {
content: "\f10e";
position: absolute;
color: #acd3f3;
}
div.weather-icon ul .icon-windysnow:before {
content: "\f103";
position: absolute;
color: #acd3f3;
}
div.weather-icon ul .icon-sleet:before {
content: "\f10c";
position: absolute;
color: #acd3f3;
}
div.weather-icon ul .icon-moon:after {
content: "\f10d";
color: #ffa500;
position: absolute;
}
div.weather-icon ul .icon-night:after {
content: "\f100";
position: absolute;
color: #ffa500;
}
div.weather-icon ul .icon-sun:after {
content: "\f113";
color: #ffa500;
position: absolute;
}
div.weather-icon ul .icon-cloud:after {
content: "\f106";
color: #ccc;
position: absolute;
}
div.weather-icon ul .icon-sunrise:before {
content: '\f112';
color: #ffa500;
position: absolute;
}
div.weather-icon ul .icon-sunset:before {
content: '\f110';
color: #f96f23;
position: absolute;
}
div.weather-icon ul .icon-mist:before {
content: '\f108';
color: #ccc;
position: absolute;
}
* {
padding: 0;
margin: 0;
}
a,
input,
button {
-ms-touch-action: none ;
}
/*
* Hide from both screenreaders and browsers: h5bp.com/u
*/
.hidden {
display: none ;
visibility: hidden;
}
.visible:after {
content: " ";
display: block;
clear: both;
}
/*
* Hide only visually, but have it available for screenreaders: h5bp.com/v
*/
.visuallyhidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.icon-alone {
display: inline-block;
cursor: pointer;
}
.left {
float: left;
}
.right {
float: right;
}
body {
font-size: 1em;
font-family: Ubuntu, "Lucida Grande", Helvetica, Arial, sans-serif;
color: #333;
}
a {
color: #009ddb;
text-shadow: 0 1px #fff;
transition: color 0.3s ease;
text-decoration: none;
-webkit-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent;
}
a:hover,
a:active {
color: #00a7f1;
}
.panel {
box-sizing: border-box;
margin: 0 8px 16px;
width: 320px;
padding: 0 12px;
float: left;
background-color: #f5f8ff;
}
.panel:after {
content: " ";
display: block;
clear: both;
}
.panel:last-child {
margin-bottom: 0;
}
header .ls-furkot {
font-size: 0.9em;
}
.add-to-trip {
cursor: pointer;
display: block;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.add-to-trip span + span {
margin-left: 0.2em;
}
.resort footer .add-to-trip {
margin-top: 0.3em;
}
.panel header,
.panel footer {
transition: all 0.4s ease;
}
.panel header:after,
.panel footer:after {
content: " ";
display: block;
clear: both;
}
.panel header {
padding: 0.7em 0 0.5em;
}
.panel footer {
padding: 0 0 0.7em;
}
.panel header {
font-size: 1.2em;
border-bottom: solid 2px transparent;
vertical-align: middle;
display: flex;
align-items: baseline;
gap: 0.2em;
}
.panel header a {
outline: none;
}
.panel.open header {
border-color: rgba(0,0,0,0.3);
}
.open .expandable {
opacity: 1;
max-height: 4500px;
min-height: 5em;
}
.open .expandable .lifts-status {
position: relative;
}
.open .expandable .lifts-status .opening-date {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
background-color: rgba(245,248,255,0.9);
}
.open .expandable .lifts-status .opening-date a {
position: absolute;
top: 50%;
margin-top: -0.6em;
font-size: 1.2em;
width: 100%;
text-align: center;
}
.expandable {
transition: all 0.4s ease;
max-height: 0;
overflow-y: hidden;
opacity: 0;
}
.lifts {
list-style: none;
margin: 0.2em 0;
}
.lifts .lift {
display: block;
line-height: 2;
}
.lifts .lift:after {
content: " ";
display: block;
clear: both;
}
.lifts .lift .name {
float: left;
max-width: 90%;
cursor: default;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.lifts .lift .status {
font-size: 1.1em;
float: right;
text-shadow: 1px 1px #fff;
padding-right: 2px;
}
.auto-refresh-reminder {
color: #707070;
font-style: italic;
text-align: right;
font-size: 0.8em;
padding-right: 2px;
}
.ls-minimax:before {
content: "\e031";
}
.open .ls-minimax:before {
content: "\e032";
}
.ls-star:before {
content: "\e036";
}
.starred .ls-star:before {
content: "\e035";
}
.resort-link {
font-size: 0.9em;
}
.resort-name {
flex: 1;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.summary {
list-style: none;
font-size: 0.8em;
}
.summary:after {
content: " ";
display: block;
clear: both;
}
.summary li {
float: left;
margin-right: 0.5em;
}
.summary li:last-child {
margin-right: 0;
}
.summary li [class^="ls-"],
.summary li [class*=" ls-"],
.summary li [class^="ls-"]:before,
.summary li [class*=" ls-"]:before {
margin-right: 2px;
}
.summary li [class^="ls-"]:before,
.summary li [class*=" ls-"]:before {
text-shadow: 1px 1px #fff;
}
.summary-color-bar {
width: 100%;
margin-bottom: 0.5em;
}
.summary-color-bar:after {
content: " ";
display: block;
clear: both;
}
.summary-color-bar .open,
.summary-color-bar .hold,
.summary-color-bar .scheduled,
.summary-color-bar .closed {
height: 2px;
float: left;
}
.summary-color-bar .open {
background-color: #00b831;
}
.summary-color-bar .hold {
background-color: #ffa200;
}
.summary-color-bar .scheduled {
background-color: #104aa8;
}
.summary-color-bar .closed {
background-color: #ff1e00;
}
.extras {
padding-bottom: 0.7em;
}
.extras .tile {
font-size: 0.9em;
padding: 0.5em 0;
}
.extras .tile {
border-bottom: solid 2px rgba(0,0,0,0.3);
}
.extras .tile:last-child {
padding-bottom: 0;
border-bottom: none;
}
.extras .notice {
margin-top: 0.5em;
font-size: 0.8em;
font-style: italic;
display: flex;
align-items: center;
justify-content: flex-end;
gap: 0.5em;
}
.extras .weather .weather-icon {
float: left;
height: 70px;
margin-top: -10px;
}
.extras .weather .temperature {
float: right;
font-size: 1.5em;
}
.extras .weather .snow-conditions {
clear: right;
float: right;
font-size: 1.1em;
margin-left: 60px;
text-align: right;
}
.extras .weather .snowforecast {
margin-left: 0.5em;
font-weight: bold;
}
.extras .weather .text {
clear: both;
}
.extras .weather .notice img {
float: none;
width: 126px;
vertical-align: bottom;
}
.extras .webcams .swipe {
overflow: hidden;
}
.extras .webcams .swipe * {
touch-action: pan-y ;
}
.extras .webcams .pager {
text-align: center;
font-weight: bold;
line-height: 1.3;
}
.extras .webcams .pager a {
margin: 0 2px;
padding: 0 0.3em;
}
.extras .webcams .pager .active:before {
content: '●';
}
.extras .webcams .pager .inactive:before {
content: '○';
}
.extras .webcams li {
list-style: none;
display: inline-block;
max-width: 296px;
vertical-align: top;
}
.extras .webcams .webcam {
max-width: 100%;
display: inline-block;
}
.extras .webcams .webcam >a {
display: block;
position: relative;
overflow-x: hidden;
}
.extras .webcams .webcam >a img {
margin: 0 auto;
-webkit-user-select: none;
user-select: none;
pointer-events: none;
}
.extras .webcams .webcam >a img.active {
display: block;
}
.extras .webcams .webcam >a img.inactive {
display: none;
}
.extras .webcams .webcam >a .title {
margin-bottom: 0.5em;
text-align: center;
}
.extras .snow .value {
display: inline-block;
min-width: 2em;
text-align: right;
}
.extras .deals {
padding-bottom: 0;
}
.extras .deals .deal {
padding: 0.4em 0;
line-height: 1.5;
}
.extras .deals .deal:after {
content: " ";
display: block;
clear: both;
}
.extras .deals .deal span {
float: left;
}
.extras .deals .deal a {
float: right;
}
.resort .deal {
font-size: 0.9em;
margin-bottom: 0.5em;
padding: 0.5em 0;
border-bottom: solid 2px rgba(0,0,0,0.3);
}
.resort .deal a {
float: right;
}
.stats .pie {
margin: 1em 0;
width: 294px;
height: 294px;
border-radius: 50%;
background-image: conic-gradient(#00b831 0 var(--open), #ffa200 0 var(--hold), #104aa8 0 var(--scheduled), #ff1e00 0);
}
.stats footer .summary li {
float: none;
clear: both;
line-height: 2;
text-align: right;
width: 55%;
margin: 0 auto;
}
.stats footer .summary li span:first-child {
float: left;
}
.stats footer .summary li span:first-child:before {
margin-right: 0.5em;
}
.stats footer .summary li span:last-child {
float: right;
}
body > footer {
clear: both;
margin-top: 1em;
padding: 0 0.2em;
line-height: 1;
text-align: center;
}
body > footer .text {
display: inline;
margin-left: 0.2em;
}
body > footer a {
margin: 0 0.2em;
}
body > footer a span {
color: #666;
transition: color 0.3s ease;
}
body > footer a:hover span {
color: #000;
}
body > footer a:hover .ls-twitter {
color: $twitter-color;
}
body > footer a:hover .ls-facebook {
color: #3b5998;
}
.about {
background-color: #f5f8ff;
background: linear-gradient(to bottom, #f6f9ff, #dde8fe);
box-sizing: border-box;
padding: 1em;
}
.about h1 {
font-size: 1.2em;
}
.about:after {
content: " ";
display: block;
clear: both;
}
.about p {
margin: 0.5em 0;
line-height: 1.5em;
}
.about p [class^="ls-"]:before,
.about p [class*=" ls-"]:before {
color: #009ddb;
text-shadow: 1px 1px #fff;
margin-right: 0.2em;
}
.about footer a {
font-size: 0.9em;
color: #fff;
text-shadow: 0 -1px rgba(0,0,0,0.3);
display: block;
float: right;
padding: 0.3em 0.5em;
background-color: #009ddb;
background: linear-gradient(to bottom, #00a8ea, #0095d0);
}
.about footer a:hover {
background-color: #00b2f8;
background: linear-gradient(to bottom, #06b9ff, #00a9ec);
}
.tags {
list-style: none;
display: block;
margin: 0 8px;
}
.tags li {
display: block;
float: left;
position: relative;
font-size: 0.9em;
margin-right: 1.2em;
margin-bottom: 0.6em;
}
.tags li:last-child {
margin-right: 0;
}
.tags a,
.tags .count {
display: block;
box-sizing: border-box;
}
.tags a {
color: #009ddb;
text-shadow: 0 1px #fff;
padding: 5px 6px 5px 7px;
background-color: #f5f8ff;
background: linear-gradient(to bottom, #f6f9ff, #dde8fe);
}
.tags a .count {
position: absolute;
top: 0;
left: 100%;
z-index: 2;
overflow: hidden;
max-width: 0;
padding: 5px 0 5px 2px;
color: #fff;
text-shadow: 0 -1px rgba(0,0,0,0.3);
background-color: #009ddb;
background: linear-gradient(to bottom, #00a8ea, #0095d0);
opacity: 0.95;
transition-duration: 0.3s;
transition-timing-function: ease-out;
transition-property: padding, max-width;
}
.tags a:hover .count {
padding: 5px 7px 5px 6px;
max-width: 40px;
box-shadow: 1px 1px 2px rgba(0,0,0,0.2);
}
.content {
margin: 16px auto;
width: 2352px;
}
.content:after {
content: " ";
display: block;
clear: both;
}
.widget {
font-size: 0.8em;
}
.widget .panel {
width: 100%;
margin: 0;
display: block;
float: none;
}
.widget.naked .panel {
background-color: transparent;
padding: 0;
}
.content-4 {
max-width: 1344px;
}
@media screen and (max-width: 1680px) {
.content {
width: 1344px;
}
}
.content-3 {
max-width: 1008px;
}
@media screen and (max-width: 1344px) {
.content {
width: 1008px;
}
}
.content-2 {
max-width: 672px;
}
@media screen and (max-width: 1008px) {
.content {
width: 672px;
}
}
.content-1 {
max-width: 320px;
}
@media screen and (max-width: 672px) {
.content {
width: 320px;
}
.panel {
margin-right: 0;
margin-left: 0;
}
.tags {
margin: 0;
}
}
@media screen and (max-width: 720px) {
body > footer {
font-size: 1.3em;
}
body > footer .text {
display: none;
}
}
@media screen and (max-width: 400px) {
.extras.desktop {
display: none;
}
.extras.desktop img {
display: none;
}
.extras.mobile {
display: block;
}
.extras.mobile img {
display: block;
}
}
@media screen and (min-width: 500px) {
.widget .lift {
float: left;
margin-right: 3%;
}
}
@media screen and (min-width: 500px) and (max-width: 749px) {
.widget .lift {
width: 48.5%;
}
.widget .lift:nth-child(2n) {
margin-right: 0;
}
}
@media screen and (min-width: 750px) and (max-width: 999px) {
.widget .lift {
width: 31.333%;
}
.widget .lift:nth-child(3n) {
margin-right: 0;
}
}
@media screen and (min-width: 1000px) {
.widget .lift {
width: 22.75%;
}
.widget .lift:nth-child(4n) {
margin-right: 0;
}
}