html, body { height: 100%; } * { font-family: 'Roboto', sans-serif; } body { display: flex; flex-direction: column; margin: 0; background-color: #586575; overflow: hidden; } #users > li, #user-menu, .notice, #settings-menu, #rooms-menu, #room-settings-menu, #midi-player-menu { border: 1px solid rgba(0, 0, 0, 0.8); border-radius: 4px; box-shadow: 0 0 4px rgba(0, 0, 0, 0.6); } #playspace { flex: 1; position: relative; } #piano-container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } #piano { image-rendering: -moz-crisp-edges; image-rendering: pixelated; } #chat { display: flex; flex-direction: column; position: absolute; bottom: 0; padding: 8px; width: 100%; max-height: 100%; box-sizing: border-box; background-color: rgba(0, 0, 0, 0); transition: background-color 200ms; } #chat.focus { z-index: 1; background-color: rgba(0, 0, 0, 0.6); } #chat-messages { width: 100%; margin: 0; padding: 0; list-style: none; overflow-y: hidden; } #chat.focus #chat-messages { overflow-y: auto; } #chat-messages > li { width: 100%; box-sizing: border-box; word-break: break-word; text-shadow: 0px 0px 2px #000; clear: left; float: left; } #chat-messages > li.message > .nick { font-weight: bold; color: #4cabff; } #chat-messages > li.message > .nick::after { content: ": "; } #chat-messages > li.message > .content { color: #fff; } #chat-messages > li.rank, #chat-messages > li.disconnected { width: auto; color: #fff; border-radius: 4px; padding: 6px; border: 1px solid #000; display: inline-block; margin: 4px 0; } #chat-messages > li.join { color: #71f114; } #chat-messages > li.leave { color: #ff3c3c; } #chat-messages > li.nick { color: #bf69ff; } #chat-messages > li.rank { background-color: #16d2a8; } #chat-messages > li.disconnected { background-color: #e82626; } #chat-box { width: 100%; padding-top: 8px; box-sizing: border-box; } #chat-box input { width: 100%; box-sizing: border-box; padding: 4px; border: none; border-radius: 4px; } #chat-box input:focus { outline: none; } #users { position: absolute; top: 0; left: 0; margin: 0; padding: 0; list-style: none; } #users > li { position: relative; display: inline-block; margin: 6px; padding: 6px 10px; background-color: #1ac2ff; font-size: 14px; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } #users > li.local::after { content: ""; position: absolute; top: 0; right: 0; width: 6px; height: 6px; margin: 2px; border: 1px solid rgba(0, 0, 0, 0.5); background-color: #2e8eff; border-radius: 3px; } /* User Menu */ #user-menu { display: none; position: absolute; width: 230px; } #user-menu.active { display: block; } #user-uid { display: block; padding: 8px 8px; font-family: monospace; font-size: 12px; word-break: break-all; } #user-menu label { display: block; text-align: center; padding: 8px; } #user-menu label:hover { background-color: rgba(0, 0, 0, 0.2); } #user-menu .nick { display: none; } #user-menu.local .nick { display: block; } #user-menu button { width: 100%; padding: 8px; border: none; background-color: transparent; font-size: 16px; } #user-menu button:hover { background-color: rgba(0, 0, 0, 0.2); } #user-kick { display: none; } body.owner #user-kick, body.admin #user-kick { display: block; } #dimmer { position: absolute; top: 0; left: 0; bottom: 0; right: 0; background-color: #000; opacity: 0; pointer-events: none; transition: opacity 200ms; } #dimmer.active { opacity: 0.6; pointer-events: auto; } #rooms-menu { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 400px; height: 300px; padding: 16px; background-color: #444652; opacity: 0; pointer-events: none; transition: opacity 200ms; } #rooms-menu.active { opacity: 1; pointer-events: auto; } #rooms { margin: 0; padding: 0; list-style: none; } #rooms > li { display: inline-block; padding: 12px 10px; margin: 4px; background-color: rgba(0, 0, 0, 0.2); border: 1px solid #000; border-radius: 4px; color: #fff; cursor: pointer; } #rooms > li > .users { background-color: rgba(255, 255, 255, 0.5); border: 1px solid #fff; font-weight: bold; padding: 4px; border-radius: 4px; margin-left: 8px; color: #000; } #room-settings-menu { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 400px; height: 300px; padding: 8px; color: #fff; background-color: #444652; opacity: 0; pointer-events: none; transition: opacity 200ms; } #room-settings-menu.active { opacity: 1; pointer-events: auto; } #room-settings-menu > label { display: block; margin: 16px; } #room-quota-note, #room-quota-time { width: 54px; } #room-settings-save { position: absolute; bottom: 0; right: 0; padding: 8px 12px; margin: 16px; background-color: #3691ff; border: none; border-radius: 4px; color: #fff; } #midi-player-menu { position: absolute; bottom: 48px; left: 16px; width: 400px; height: 64px; padding: 8px; color: #fff; background-color: #444652; opacity: 0; pointer-events: none; transition: opacity 200ms; } #midi-player-menu.active { opacity: 1; pointer-events: auto; } #settings-menu { display: flex; flex-direction: row-reverse; position: absolute; bottom: 48px; right: -400px; width: 400px; height: 300px; background-color: #444652; box-sizing: border-box; transition: right 400ms cubic-bezier(0.65, 0.05, 0.36, 1); } #settings-menu.active { right: 16px; } #settings-menu > .tabs { margin: 6px; padding: 0; list-style: none; background-color: rgba(0, 0, 0, 0.2); border-radius: 4px; } #settings-menu > .tabs > li { margin: 6px; padding: 10px; background-color: rgba(255, 255, 255, 0.2); border-radius: 4px; color: #eee; font-weight: bold; text-align: center; cursor: pointer; } #settings-menu > .tabs > li.active { border: 2px solid #eee; padding: 8px; } #settings-menu > .tab { display: none; flex: 1; padding: 16px; color: #fff; } #settings-menu > .tab.active { display: block; } #settings-menu > .tab > label { display: block; margin-bottom: 8px; } #footer { background-color: #444652; font-size: 0; z-index: 1; } #footer button { background-color: transparent; color: #fff; border: none; line-height: 38px; padding: 0 14px; } #footer button:focus { outline: none; } #footer button:hover { background-color: rgba(0, 0, 0, 0.2); } #room-settings-button { display: none; } body.owner #room-settings-button, body.admin #room-settings-button { display: inline-block; } #midi-player-button { display: none; } body.owner #midi-player-button, body.admin #midi-player-button { display: inline-block; } #footer > .right { float: right; } #volume-indicator { display: inline-block; position: relative; width: 32px; height: 38px; vertical-align: top; } #volume-indicator::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff; -webkit-mask: url(volume-up.svg) 0 / 32px; mask: url(volume-up.svg) 0 / 32px; } #volume-indicator.low::before { -webkit-mask: url(volume-down.svg) 0 / 32px; mask: url(volume-down.svg) 0 / 32px; } #volume-indicator.mute::before { -webkit-mask: url(volume-mute.svg) 0 / 32px; mask: url(volume-mute.svg) 0 / 32px; } #volume { margin: 0; height: 38px; width: 128px; vertical-align: top; } .notice { position: absolute; top: 0; right: 0; background-color: #ffe8a6; padding: 10px; margin: 16px; font-size: 14px; opacity: 1; transition: opacity 1s; } .notice.hidden { opacity: 0; } ::-webkit-scrollbar{ width: 8px; } ::-webkit-scrollbar-button { display: none; } ::-webkit-scrollbar-thumb { background-color: #707280; border-radius: 4px; } ::-webkit-scrollbar-track { background-color: #424352; } input[type=range] { -webkit-appearance: none; width: 100%; margin: 4px 0; background-color: transparent; } input[type=range]:focus { outline: none; } input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 16px; cursor: pointer; background-color: rgba(0, 0, 0, 0.3); border-radius: 4px; margin: 0 8px; } input[type=range]::-webkit-slider-thumb { height: 20px; width: 32px; border-radius: 4px; background: #fff; cursor: pointer; -webkit-appearance: none; margin-top: -2px; }