461 lines
8.3 KiB
CSS
461 lines
8.3 KiB
CSS
body, html, #content {
|
||
margin: 0;
|
||
padding: 0;
|
||
height: 100%;
|
||
|
||
background: #262626;
|
||
font-family: Helvetica, sans-serif;
|
||
}
|
||
|
||
*, *:before, *:after {
|
||
box-sizing: border-box;
|
||
cursor: default;
|
||
}
|
||
|
||
*:not(input):not(button):not(select):not(textarea) {
|
||
-webkit-user-select: none;
|
||
}
|
||
|
||
:focus {
|
||
outline: none;
|
||
}
|
||
|
||
a {
|
||
cursor: pointer;
|
||
color: inherit;
|
||
}
|
||
|
||
/**
|
||
* Animations
|
||
*/
|
||
|
||
@-webkit-keyframes reveal-controls {
|
||
0% {
|
||
transform: translate(-50%, 10em);
|
||
}
|
||
|
||
100% {
|
||
transform: translate(-50%, -50%);
|
||
}
|
||
}
|
||
|
||
@-webkit-keyframes reveal-notes {
|
||
0% {
|
||
transform: translate(0, -20em);
|
||
}
|
||
|
||
100% {
|
||
transform: translate(0, 0);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Main
|
||
*/
|
||
|
||
.main {
|
||
position: relative;
|
||
|
||
width: calc(100% - 65px);
|
||
height: 100%;
|
||
|
||
margin-left: 65px;
|
||
}
|
||
|
||
.main p {
|
||
position: relative;
|
||
margin: 0;
|
||
}
|
||
|
||
.main .roll {
|
||
display: flex;
|
||
height: 100%;
|
||
|
||
flex-direction: column;
|
||
}
|
||
|
||
/** noteboard **/
|
||
.main .noteboard {
|
||
position: relative;
|
||
overflow: hidden;
|
||
|
||
flex-basis: 100%;
|
||
}
|
||
|
||
.main .noteboard .inner {
|
||
backface-visibility: hidden;
|
||
perspective: 1000;
|
||
}
|
||
|
||
/* closed controls */
|
||
.main .noteboard .controls {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
|
||
-webkit-animation: reveal-controls 0.5s ease forwards;
|
||
|
||
width: 100%;
|
||
text-align: center;
|
||
transform: translate(-50%, 10em);
|
||
}
|
||
|
||
.main .noteboard .controls img {
|
||
display: block;
|
||
margin: 0 auto 1em auto;
|
||
}
|
||
|
||
/* notes */
|
||
.main .noteboard canvas {
|
||
-webkit-animation: reveal-notes 0.5s ease;
|
||
}
|
||
|
||
.main .noteboard .note {
|
||
display: block;
|
||
position: absolute;
|
||
|
||
left: 0;
|
||
bottom: 0;
|
||
width: calc(100% / 52);
|
||
|
||
border: 1px solid #262626;
|
||
}
|
||
|
||
/* black */
|
||
.main .noteboard [data-black="true"] {
|
||
width: calc(100% / 52 * 0.6);
|
||
border-radius: 5px;
|
||
|
||
margin-left: calc(-100% / 52 * 0.6 / 2);
|
||
z-index: 1;
|
||
overflow: hidden;
|
||
|
||
box-shadow: inset 1000em 1000em rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
/* percussion */
|
||
.main .noteboard [data-channel="9"] {
|
||
border-radius: 20px;
|
||
min-height: 10px;
|
||
}
|
||
|
||
/** channel colors **/
|
||
[data-channel="0"] {
|
||
background-color: hsl(225, 49%, 44%) !important;
|
||
}
|
||
|
||
[data-channel="1"] {
|
||
background-color: hsl(22.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="2"] {
|
||
background-color: hsl(45, 53%, 39%) !important;
|
||
}
|
||
|
||
[data-channel="3"] {
|
||
background-color: hsl(67.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="4"] {
|
||
background-color: hsl(90, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="5"] {
|
||
background-color: hsl(112.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="6"] {
|
||
background-color: hsl(135, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="7"] {
|
||
background-color: hsl(157.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="8"] {
|
||
background-color: hsl(180, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="9"] {
|
||
background-color: hsl(202.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="10"] {
|
||
background-color: hsl(247.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="11"] {
|
||
background-color: hsl(270, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="12"] {
|
||
background-color: hsl(292.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="13"] {
|
||
background-color: hsl(315, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="14"] {
|
||
background-color: hsl(337.5, 84%, 56%) !important;
|
||
}
|
||
|
||
[data-channel="15"] {
|
||
background-color: hsl(0, 84%, 56%) !important;
|
||
}
|
||
|
||
/** keyboard **/
|
||
.main .keyboard {
|
||
width: 100%;
|
||
padding-bottom: 13%;
|
||
}
|
||
|
||
.main .key {
|
||
position: absolute;
|
||
left: 0;
|
||
bottom: 0;
|
||
|
||
background: white;
|
||
display: inline-block;
|
||
height: 100%;
|
||
}
|
||
|
||
.main [data-black="false"]:not(:last-child) {
|
||
border-right: 1px solid #262626;
|
||
}
|
||
|
||
.main [data-black="true"] {
|
||
bottom: 40%;
|
||
background: #262626;
|
||
|
||
border: 1px solid #262626;
|
||
border-top: 0;
|
||
|
||
margin-left: calc(-100% / 52 * 0.6 / 2);
|
||
width: calc(100% / 52 * 0.6);
|
||
height: 60%;
|
||
}
|
||
|
||
.main .key:not([data-channel="false"]) {
|
||
box-shadow: inset 1000em 1000em rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
.main [data-black="true"][data-channel="-1"] {
|
||
box-shadow: inset 1000em 1000em rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
/** sidebar controls **/
|
||
.main .control {
|
||
position: absolute;
|
||
top: 0;
|
||
left: -65px;
|
||
|
||
height: 100%;
|
||
width: 50px;
|
||
padding: 9px;
|
||
|
||
background: #1e1e1e;
|
||
text-align: center;
|
||
}
|
||
|
||
.main .control > * {
|
||
display: block;
|
||
margin: 0 auto 1em auto;
|
||
}
|
||
|
||
/* playback control */
|
||
.main .control .switch-play-state {
|
||
background-image: url('../images/icons/sidebar/play.png');
|
||
}
|
||
|
||
.main .control .switch-play-state.pause {
|
||
background-image: url('../images/icons/sidebar/pause.png');
|
||
}
|
||
|
||
/* channels */
|
||
.main .control .open-channels-window {
|
||
background-image: url('../images/icons/sidebar/instruments.png');
|
||
}
|
||
|
||
/* set play speed */
|
||
.main .control .selector {
|
||
text-align: center;
|
||
line-height: 32px;
|
||
|
||
border: 1px solid white;
|
||
border-radius: 3px;
|
||
overflow: hidden;
|
||
|
||
padding: 0;
|
||
}
|
||
|
||
.main .control .selector:hover {
|
||
background: rgba(255, 255, 255, 0.05);
|
||
}
|
||
|
||
.main .control .selector:active {
|
||
padding: 1px 0 0 0;
|
||
}
|
||
|
||
.main .control .selector:before {
|
||
content: '×';
|
||
cursor: pointer;
|
||
}
|
||
|
||
/* close opened file */
|
||
.main .control .close {
|
||
background-image: url('../images/icons/sidebar/close.png');
|
||
position: absolute;
|
||
left: 9px;
|
||
bottom: 0;
|
||
}
|
||
|
||
/** scroll **/
|
||
.main .scroll {
|
||
position: absolute;
|
||
top: 0;
|
||
left: -15px;
|
||
|
||
height: 100%;
|
||
background: #1e1e1e;
|
||
}
|
||
|
||
/**
|
||
* Channels modal
|
||
*/
|
||
.vex.vex .channels ul {
|
||
list-style: none;
|
||
padding: 0;
|
||
|
||
width: calc(100% + 2em);
|
||
margin: 0 0 0 -1em;
|
||
}
|
||
|
||
.vex .channels ul li {
|
||
display: block;
|
||
width: 100%;
|
||
|
||
padding: 0 0 0 44px;
|
||
background-position: 6px center;
|
||
background-repeat: no-repeat;
|
||
}
|
||
|
||
.vex .channels ul li span {
|
||
display: block;
|
||
height: 100%;
|
||
padding: 9px;
|
||
|
||
background: white;
|
||
}
|
||
|
||
.vex .channels ul li:nth-child(2n) span {
|
||
background: #e2e2e2;
|
||
}
|
||
|
||
.vex .channels ul li:hover, .vex .channels ul li:hover span {
|
||
box-shadow: inset 1000em 1000em rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
/** icons **/
|
||
.vex .channels ul li.piano {
|
||
background-image: url('../images/icons/instruments/piano.png');
|
||
}
|
||
|
||
.vex .channels ul li.percussive {
|
||
background-image: url('../images/icons/instruments/percussive.png');
|
||
}
|
||
|
||
.vex .channels ul li.percussion {
|
||
background-image: url('../images/icons/instruments/percussion.png');
|
||
}
|
||
|
||
.vex .channels ul li.effect {
|
||
background-image: url('../images/icons/instruments/effect.png');
|
||
}
|
||
|
||
.vex .channels ul li.brass {
|
||
background-image: url('../images/icons/instruments/brass.png');
|
||
}
|
||
|
||
.vex .channels ul li.pipe {
|
||
background-image: url('../images/icons/instruments/pipe.png');
|
||
}
|
||
|
||
.vex .channels ul li.string {
|
||
background-image: url('../images/icons/instruments/string.png');
|
||
}
|
||
|
||
.vex .channels ul li.synth {
|
||
background-image: url('../images/icons/instruments/synth.png');
|
||
}
|
||
|
||
.vex .channels ul li.guitar {
|
||
background-image: url('../images/icons/instruments/guitar.png');
|
||
}
|
||
|
||
.vex .channels ul li.orchestra {
|
||
background-image: url('../images/icons/instruments/orchestra.png');
|
||
}
|
||
|
||
.vex .channels ul li.bass {
|
||
background-image: url('../images/icons/instruments/bass.png');
|
||
}
|
||
|
||
.vex .channels ul li.organ {
|
||
background-image: url('../images/icons/instruments/organ.png');
|
||
}
|
||
|
||
/** actions **/
|
||
.vex .channels li button.sound, .vex .channels li button.notes {
|
||
width: 16px;
|
||
height: 16px;
|
||
}
|
||
|
||
.vex .channels li button.sound {
|
||
background-image: url('../images/icons/instruments/sound-on.png');
|
||
}
|
||
|
||
.vex .channels li button.sound.off {
|
||
background-image: url('../images/icons/instruments/sound-off.png');
|
||
}
|
||
|
||
.vex .channels li button.notes {
|
||
background-image: url('../images/icons/instruments/notes-on.png');
|
||
}
|
||
|
||
.vex .channels li button.notes.off {
|
||
background-image: url('../images/icons/instruments/notes-off.png');
|
||
}
|
||
|
||
/**
|
||
* UI Components
|
||
*/
|
||
|
||
/** scroll **/
|
||
.scroll, ::-webkit-scrollbar {
|
||
height: 200px;
|
||
width: 15px;
|
||
|
||
overflow: hidden;
|
||
position: relative;
|
||
}
|
||
|
||
::-webkit-scrollbar-track {
|
||
background: #262626;
|
||
}
|
||
|
||
.scroll .position, ::-webkit-scrollbar-thumb {
|
||
display: block;
|
||
width: 100%;
|
||
|
||
position: absolute;
|
||
height: 5%;
|
||
min-height: 20px;
|
||
|
||
transform: translate(0, 50%);
|
||
background: rgba(255, 255, 255, 0.15);
|
||
}
|
||
|
||
.scroll .position:hover, ::-webkit-scrollbar-thumb:hover {
|
||
background: rgba(255, 255, 255, 0.3);
|
||
} |