* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: sans-serif; } .outerContainer { height: 400px; margin: 10px auto; overflow: hidden; position: relative; width: 90%; } .controlsContainer { background: #ccc; border-left: 2px groove #c0c0c0; bottom: 0; display: flex; flex-direction: column; padding: 10px; position: absolute; right: 0; top: 0; width: 170px; z-index: 1; } .animationContainer { background: rgba(102, 51, 153, 0.1); height: 100%; margin-right: 170px; position: relative; z-index: 0; } .particle { background: url(../res/seahorse.svg) no-repeat center center #aaa; background-size: 20px 20px; border-radius: 10px; color: #fff; height: 20px; line-height: 20px; margin: -10px 0 0 -10px; position: absolute; text-align: center; width: 20px; z-index: 1; } .particle.has-vision::after { border: 50px solid; border-color: lightgreen transparent transparent turquoise; border-radius: 50px; content: ' '; height: 0; left: -50px; margin: 10px 0 0 10px; opacity: 0.5; position: absolute; transform: rotate(45deg); top: -50px; width: 0; } .particle-movement-circle { border: 2px dotted darkturquoise; position: absolute; transition: left 0.2s, top 0.2s, height 0.2s, width 0.2s; z-index: 0; } .particle-movement-circle:after { background: darkturquoise; border-radius: 2px; content: ' '; height: 4px; left: 50%; margin-left: -2px; margin-top: -2px; position: absolute; top: 50%; width: 4px; } .particle-vision-grid { height: 100px; position: absolute; transform-origin: left top; width: 100px; z-index: 99; } .particle-vision-dot { background: red; height: 2px; position: absolute; width: 2px; z-index: 99; } .particle-vision-dot.removed { background: green; } .particle-vision-dot.touching { outline: 2px solid yellow; } .controls-label { cursor: pointer; font-size: 13px; margin-bottom: 5px; padding: 10px; } .controls-label:hover { background: #fff; } .controls-label-checkbox { margin-right: 5px; } .controls-slider { cursor: pointer; width: 100%; } .controls-animating { cursor: pointer; font-size: 18px; line-height: 20px; padding: 10px; user-select: none; } .controls-animating [type=checkbox] { display: none; } .controls-animating:hover { background: #fff; } .controls-animating:focus { outline: 0; } .controls-bottom { margin-top: auto; }