:root { --spacing: 12px; } * { box-sizing: border-box; } body { margin: 0; font-family: sans-serif; } main { width: 100%; max-width: 400px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } input { width: 100%; } #message { position: relative; } #log { height: 300px; font-size: 0.8rem; overflow: scroll; } .buttons { width: 100%; display: flex; gap: var(--spacing); } button { width: 100%; display: block; } .hide { display: none; } /*https://loading.io/css/*/ #message:not(:empty):after { content: " "; display: block; width: 24px; height: 24px; border-radius: 50%; border: 2px solid black; border-color: black transparent black transparent; animation: loading-indicator 1.2s linear infinite; right: 0; top: 0; position: absolute; } @keyframes loading-indicator { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }