html, body { height: 100%; } body { background-color: black; margin: 0; display: flex; flex-direction: column; } #canvas { width: calc(100vw - 8px); background-color: white; border: 4px solid red; flex-grow: 1; } #tools-panel { padding-top: 8px; display: flex; align-items: center; } #connected-room-info { display: none; color: white; flex: 1; text-align: right; } button.selected { background-color: gray !important; } #top-panel { padding: 8px; } .top-bar { background-color: black; width: 100%; height: 36px; display: flex; align-items: stretch; z-index: 999; } .dropdown { position: relative; display: inline-block; } .dropdown-peers { background-color: #2f2f2f; color: white; font-size: 16px; border: none; cursor: pointer; border-radius: 4px; transition-duration: 0.4s; height: 100%; width: 36px; } .peers { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 999; padding: 16px; } .peers a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .peers a:hover { background-color: #f1f1f1; } #connected-peers { white-space: nowrap; list-style: none; padding: 0 0 4px 0; margin: 0; } @keyframes connected-peers-slide { from { transform: translateY(-10px); } to { opacity: 1; transform: translateY(0px); } } #connected-peers li { animation: connected-peers-slide 0.5s forwards; border-bottom: 1px solid black; padding: 4px 0; opacity: 0; } #connected-peers li:nth-child(2) { animation-delay: 0.125s; } #connected-peers li:nth-child(3) { animation-delay: 0.25s; } #connected-peers li:nth-child(4) { animation-delay: 0.375s; } #connected-peers li:nth-child(5) { animation-delay: 0.5s; } #connected-peers li:nth-child(6) { animation-delay: 0.625s; } #connected-peers li:nth-child(7) { animation-delay: 0.75s; } #connected-peers li:nth-child(8) { animation-delay: 0.875s; } #connected-peers li:last-child { border-bottom-width: 0px; } .peer-status { width: 15px; height: 15px; margin-left: 5px; display: inline-block; border-radius: 10px; } .peer-status.unsynced { background-color: gray; } @keyframes peer-status-negotiating { from { background-color: gray; } 50%, to { background-color: orange; } } .peer-status.negotiating { animation: peer-status-negotiating 0.5s step-end infinite; background-color: orange; } .peer-status.synced { background-color: green; } .dropdown:hover .peers { display: block; } .dropdown:hover .dropdown-peers { background-color: #4f4f4f; } #overall-status-icon { pointer-events: none; border-radius: 50%; width: 16px; height: 16px; padding: 4px; margin-left: -18px; margin-top: -4px; z-index: 0; } @keyframes overall-status-synchronising { to { transform: rotate(-360deg); } } #overall-status-icon.synchronising { background-color: orange; animation: overall-status-synchronising 2s linear infinite; } #overall-status-icon.synchronised { background-color: green; } #overall-status-icon-img { height: inherit; } #room-id { flex: 1; padding: 10px; margin: 0 8px; box-sizing: border-box; opacity: 0.8; border-radius: 4px; } #room-connect { background-color: #2f2f2f; color: white; padding: 8px; font-size: 12px; border: none; cursor: pointer; border-radius: 4px; } #pen-tool { background-color: #2f2f2f; color: white; padding: 10px; font-size: 16px; border: none; cursor: pointer; border-radius: 50%; margin-right: 8px; } #pen-tool:hover { background-color: #4f4f4f !important; transition-duration: 0.4s; } #eraser-tool { background-color: #2f2f2f; color: white; padding: 10px; font-size: 16px; border: none; cursor: pointer; border-radius: 50%; } #eraser-tool:hover { background-color: #4f4f4f !important; transition-duration: 0.4s; } .properties { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0.4); } .pen-contents { position: relative; background-color: #fefefe; margin: auto; padding: 0; border: 1px solid #888; width: 80%; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.1); animation-name: animatetop; animation-duration: 0.4s; font-family: "Martel", sans-serif; } .close { color: white; float: right; font-size: 28px; font-weight: bold; } .close:hover, .close:focus { color: black; text-decoration: none; cursor: pointer; } .pen-header { padding: 2px 16px; background-color: #2f2f2f; color: white; } .pen-body { padding: 2px 16px; display: flex; align-items: center; } @keyframes animatetop { from { top: -300px; opacity: 0; } to { top: 0; opacity: 1; } } #rectangle { height: 20px; width: 30px; background-color: blue; } .palette-selector { position: relative; background-color: #fefefe; margin: auto; padding: 0; border: 1px solid #888; width: 500px; height: 500px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.1); font-family: "Martel", sans-serif; } .wheelPiece { opacity: 0.8; } .wheelPiece:hover { opacity: 1; } .wheel-header { padding: 2px 16px; background-color: #2f2f2f; color: white; text-align: center; } .slide-size { width: 90%; height: 20%; margin-left: 2.2%; } .slider { -webkit-appearance: none; appearance: none; width: 100%; height: 25px; background: #d3d3d3; outline: none; opacity: 0.7; -webkit-transition: 0.2s; transition: opacity 0.2s; margin-top: 30px; } .slider:hover { opacity: 1; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 25px; height: 25px; background: #4f4f4f; cursor: pointer; } .slider::-moz-range-thumb { width: 25px; height: 25px; background: #4f4f4f; cursor: pointer; } #others { margin-top: 2%; display: flex; align-items: center; padding-left: 40%; background-color: #3cbc8d; color: white; padding-top: 4px; padding-bottom: 4px; } #other-colours { background-color: #3cbc8d; } #colours { background-color: blue; height: 32px; width: 64px; border: 4px solid #555; border-radius: 4px; opacity: 0.5; margin-left: 2%; } #colours:hover { border: 4px solid #4f4f4f; border-radius: 4px; opacity: 1; transition-duration: 0.4s; } #other-colours { visibility: hidden; } @font-face { font-family: "Martel"; font-style: normal; font-weight: 400; src: url("./assets/fonts/martel-v4-latin/martel-v4-latin-regular.eot"); src: local("Martel"), local("Martel-Regular"), url("./assets/fonts/martel-v4-latin/martel-v4-latin-regular.eot?#iefix") format("embedded-opentype"), url("./assets/fonts/martel-v4-latin/martel-v4-latin-regular.woff2") format("woff2"), url("./assets/fonts/martel-v4-latin/martel-v4-latin-regular.woff") format("woff"), url("./assets/fonts/martel-v4-latin/martel-v4-latin-regular.ttf") format("truetype"), url("./assets/fonts/martel-v4-latin/martel-v4-latin-regular.svg#Martel") format("svg"); }