Stairs/web/site.scss

584 lines
7.4 KiB
SCSS

$smallScreen: "screen and (max-width: 767px)";
$mediumScreen: "screen and (min-width: 768px)";
$containerBackground: #202020;
$buttonBackground: #404040;
$buttonHoverBackground: #505050;
$buttonActiveBackground: #282828;
$checkRadioBackground: #404040;
$checkRadioSelectedBackground: #606060;
$panelBorderColor: #404040;
$panelBodyBackgroundColor: #242422;
$panelHeaderBackgroundColor: #302f28;
$panelHeaderColor: white;
$panelHeaderLinkColor: white;
html
{
box-sizing: border-box;
font-size: 62.5%;
}
body
{
background-color: black;
color: white;
font-family: 'Verdana', 'Arial', sans-serif;
font-size: 1.3em;
font-weight: 300;
letter-spacing: .01em;
line-height: 1.3;
padding-bottom: 3rem;
@media #{$mediumScreen}
{
padding-top: 3rem;
}
}
a
{
text-decoration: none;
}
/*
Hide VueJS container until the template has been processed
*/
[v-cloak]
{
display: none;
}
#container
{
background: $containerBackground;
margin-top: 2rem;
padding: 1rem;
box-shadow: 0 0 50px #fcf6cf;
border: solid 1px black;
@media #{$mediumScreen}
{
width: 768px;
margin-left: auto;
margin-right: auto;
}
}
.header
{
position: relative;
img
{
float: left;
margin-right: 1rem;
}
.wifistatus
{
@media #{$smallScreen}
{
clear: both;
margin-top: 3rem;
}
@media #{$mediumScreen}
{
position: absolute;
right: 0;
top: 0;
}
.indicator
{
display: inline-block;
width: 1rem;
height: 1rem;
border-radius: 50%;
margin-right: 0.5rem;
&[data-status=connected] { background-color: #339966; }
&[data-status=disconnected] { border: solid 1px #808080; }
&[data-status=connecting] { background-color: #ff9933; }
&[data-status=error] { background-color: #cc0000; }
}
}
}
%outset
{
border: 1px solid #111111;
border-radius: 3px;
box-shadow: inset 0 1px rgba(255,255,255,0.1), inset 0 -1px 3px rgba(0,0,0,0.3), inset 0 0 0 1px rgba(255,255,255,0.08), 0 1px 2px rgba(0,0,0,0.15);
}
%inset
{
border-color: black #111111 #111111;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.25),0 1px rgba(255,255,255,0.08);
}
.button
{
@extend %outset;
display: inline-block;
padding: 0 12px;
color: #dddddd;
background: $buttonBackground;
cursor: pointer;
&:hover, &:focus, &.focus
{
color: #dddddd;
background: $buttonHoverBackground;
outline: none
}
&:active, &.active
{
@extend %inset;
color: #cccccc;
background: $buttonActiveBackground;
}
}
a.button
{
line-height: 3rem;
text-decoration: none
}
.tabs
{
clear: both;
margin-top: 3rem;
&>.button
{
margin-left: -1px;
border-radius: 0;
&:first-child
{
margin-left: 0;
border-radius: 3px 0 0 3px
}
&:last-child
{
border-radius: 0 3px 3px 0
}
&:focus
{
position: relative;
z-index: 1
}
}
}
.version
{
color: #808080;
font-size: 8pt;
text-align: center;
margin-top: 2rem;
}
.notificationContainer
{
position: fixed;
top: 2rem;
z-index: 666;
@media #{$mediumScreen}
{
width: 512px;
left: 50%;
}
}
.notification
{
@extend %outset;
background: #297ab8;
/* border: solid 1px $notificationBorderColor;*/
box-shadow: 0 0 10px black;
color: white;
cursor: pointer;
padding: .5em;
margin-bottom: 2rem;
position: relative;
@media #{$mediumScreen}
{
left: -50%;
}
.message
{
white-space: pre;
}
&.error
{
background: #973a38;
}
}
.check, .radio
{
display: inline-block;
cursor: pointer;
user-select: none;
white-space: nowrap;
.control
{
@extend %outset;
background: $checkRadioBackground;
display: inline-block;
width: 16px;
height: 16px;
position: relative;
}
.label
{
display: inline-block;
margin-left: .5em;
vertical-align: top;
}
&.checked
{
.control
{
background: $checkRadioSelectedBackground;
.inner
{
}
}
}
}
.radio
{
.control, .control .inner
{
border-radius: 50%;
}
.control .inner
{
color: black;
position: absolute;
top: 5px;
left: 5px;
width: 6px;
height: 6px;
}
&.checked .control .inner
{
background: #cccccc;
box-shadow: 0 1px rgba(0,0,0,0.5);
}
}
.check
{
.control .inner
{
position: absolute;
top: 5px;
left: 4px;
width: 6px;
height: 3px;
}
&.checked .control .inner
{
border: solid rgba(255,255,255,0.8);
border-width: 0 0 2px 2px;
transform: rotate(-45deg);
box-shadow: -1px 0 rgba(0,0,0,0.2), 0 1px rgba(0,0,0,0.5)
}
}
$buttonBorderColor: #404040;
$sliderBarColor: #404040;
$sliderBarSize: .5rem;
$sliderThumbColor: #fcf6cf;
$sliderThumbSize: 2rem;
$sliderValueColor: #808080;
$errorColor: black;
$errorBackgroundColor: #ffc6b3;
$errorBorderColor: #000000;
input, textarea
{
color: white;
}
input[type=range]
{
margin-top: 1rem;
margin-bottom: 1rem;
}
h1
{
font-size: 2rem;
margin: 0;
}
h2
{
color: #c0c0c0;
font-size: 1.2rem;
margin: 0;
}
h3
{
@extend %outset;
color: #808080;
background-color: #282828;
font-size: 1.2rem;
padding: .5rem;
}
input[disabled]
{
cursor: not-allowed;
color: #808080;
background-color: #262626;
}
.label-inline
{
margin-right: 2rem;
}
.hint
{
display: block;
font-size: 8pt;
color: #808080;
margin-bottom: 1.5rem;
}
.loading
{
margin-top: 3rem;
text-align: center;
}
.suboptions
{
margin-left: 5rem;
}
.buttons
{
text-align: center;
}
.sliders
{
margin-top: 2rem;
}
.step
{
margin-left: 3rem;
margin-right: 3rem;
position: relative;
.slidercontainer
{
margin-right: 4em;
}
.value
{
position: absolute;
right: 0;
top: .1rem;
color: $sliderValueColor;
}
}
.slider
{
-webkit-appearance: none;
width: 100%;
height: $sliderBarSize;
border-radius: $sliderBarSize / 2;
background: $sliderBarColor;
outline: none;
&::-webkit-slider-thumb
{
-webkit-appearance: none;
appearance: none;
width: $sliderThumbSize;
height: $sliderThumbSize;
border-radius: 50%;
background: $sliderThumbColor;
cursor: pointer;
}
&::-moz-range-thumb
{
width: $sliderThumbSize;
height: $sliderThumbSize;
border-radius: 50%;
background: $sliderThumbColor;
cursor: pointer;
}
}
.warning
{
@extend %outset;
background: #973a38;
padding: .5em;
margin-bottom: 2rem;
margin-top: 1rem;
}
.nodata
{
color: #808080;
text-align: center;
}
.clear
{
clear: both;
}
.panel
{
margin-bottom: 2rem;
padding: 0;
.panel-header
{
@extend %outset;
border-radius: 3px 3px 0 0;
border-bottom-width: 0;
padding: .5em;
& input[type=checkbox] {
margin-left: 0.5em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
& label {
font-size: 1em;
}
background-color: $panelHeaderBackgroundColor;
color: $panelHeaderColor;
& .actions
{
@media #{$mediumScreen}
{
float: right;
}
}
& a, & label
{
color: $panelHeaderLinkColor;
}
}
& .panel-body
{
@extend %outset;
border-radius: 0 0 3px 3px;
background-color: $panelBodyBackgroundColor;
padding: 2rem;
}
}
select
{
background: $containerBackground;
color: white;
&:focus
{
background-image: none;
}
}
.inline
{
display: inline-block;
width: auto;
}
.weekdays .label
{
width: 8em;
}