197 lines
4.3 KiB
SCSS

$windowBG: #C0C0C0;
$highlight: #0000BF;
$disabled: #808080;
$w95Font: 'MS PGothic', Verdana, Arial, Helvetica, sans-serif;
$imageScale: 1;
@mixin border95($thickness) {
border: (3px * $thickness) solid black;
border-image-source: url('./../images/95/'+($thickness * $imageScale)+'x/95window.png');
border-image-slice: 3 * $thickness;
}
@mixin button95($thickness) {
border: (2px * $thickness) solid black;
border-image-source: url('./../images/95/'+($thickness * $imageScale)+'x/95button.png');
border-image-slice: 2 * $thickness;
display: inline-block;
color: black;
background-image: url('./../images/95/'+($thickness * $imageScale)+'x/95button_icons.png');
background-color: $windowBG;
background-position: 0px 0px;
background-size: 48px*$thickness 20px*$thickness;
&:active {
border-image-source: url('./../images/95/'+($thickness * $imageScale)+'x/95button_inverted.png');
}
&.disabled {
background-position-y: 10px*$thickness;
&:active {
border-image-source: url('./../images/95/'+($thickness * $imageScale)+'x/95button.png');
}
}
}
@mixin frame95($thickness) {
border: (2px * $thickness) solid black;
border-image-source: url('./../images/95/'+($thickness * $imageScale)+'x/95frame.png');
border-image-slice: 2 * $thickness;
}
@mixin window95($scale) {
@extend %no-select;
@include border95($scale);
background: $windowBG;
font-family: $w95Font;
font-size: 12px*$scale;
display: inline-block;
> .load_me_stuff {
position: fixed;
left: -1000vmax;
top: -1000vmax;
border-image-source: url('./../images/95/'+($scale * $imageScale)+'x/95button_inverted.png');
}
> .title {
width: 100%;
color: white;
background: #000080;
padding: 2px * $scale;
font-weight: bold;
margin-bottom: 1px * $scale;
> .icon {
}
> .buttons {
height: 100%;
float: right;
font-size: 0;
> .btn {
@include button95($scale);
width: 16px*$scale;
height: 14px*$scale;
font-size: 12px*$scale;
&.close {
margin-left: 2px*$scale;
background-position-x: 0px*$scale;
}
&.help {
background-position-x: 36px*$scale;
}
&.minimize {
background-position-x: 24px*$scale;
}
&.maximize {
background-position-x: 12px*$scale;
}
}
}
}
> .context-menu {
width: 100%;
overflow: visible;
> .btn {
padding: (1px*$scale) (5px*$scale);
border: 1px*$scale solid transparent;
display: inline-block;
position: relative;
&::first-letter {
text-decoration: underline;
}
&:hover {
border-bottom-color: #868686;
border-right-color: #868686;
border-top-color: #FFFFFF;
border-left-color: #FFFFFF;
}
&.active {
border-right-color: #FFFFFF;
border-bottom-color: #FFFFFF;
border-top-color: #868686;
border-left-color: #868686;
> .menu {
display: block;
}
}
&.disabled {
color: $disabled;
&:hover,.active {
border-right-color: transparent;
border-bottom-color: transparent;
border-top-color: transparent;
border-left-color: transparent;
}
}
> .menu {
@include border95($scale);
border-top-width: 2px*$scale;
position: absolute;
display: none;
background: $windowBG;
left: -1px*$scale;
margin-top: 2px*$scale;
width: auto;
> .menu-option {
padding-left: 22px*$scale;
padding-right: 22px*$scale;
padding-bottom: 3px*$scale;
padding-top: 1px*$scale;
white-space: nowrap;
&:hover {
background: $highlight;
color: white;
}
&:first-child {font-weight: bold;}
&::first-letter {
text-decoration: underline;
}
&.disabled {
color: $disabled;
&:hover {background: inherit;color: $disabled;}
}
}
}
}
}
&.inactive {
> .title {
background-color: $disabled;
}
}
> .textarea {
@include frame95($scale);
background: white;
color: black;
cursor: text;
}
}
.window {
@include window95(2);
}