body { margin: 0; padding: 0; } .chat { display: grid; grid-template-areas: 'posts online' 'actions actions' 'media media' ; grid-template-columns: 1fr auto; grid-template-rows: 140px auto 1fr; position: fixed; top: 0; --pad: 3px; padding: var(--pad); width: calc(100vw - 2 * var(--pad)); height: 100%; } .online { grid-area: online; } .posts { grid-area: posts; overflow-y: scroll; } .post > div { display: inline; padding-left: var(--pad); } .post .ts { color: rgba(0, 0, 0, 0.4); font-family: monospace; } .post .source { font-weight: bold; } .post .text p { margin: 0; } .post .text p:first-child { display: inline; } .actions { grid-area: actions; display: grid; grid-template-columns: 1fr auto; } #textbox { resize: none; } .media { grid-area: media; display: grid; grid-template-rows: auto 1fr; } .video-meta { position: absolute; z-index: 999; } .video-option { display: block; } .videos { display: grid; grid-auto-flow: column; justify-content: start; overflow-x: scroll; height: 200px; resize: vertical; position: relative; } .videos.full-screen { height: 100% !important; resize: none; } .video-container { display: inline-block; position: relative; height: 100%; overflow: scroll; } .video-container video { background-color: black; height: 100%; width: 100%; } /* mirror */ .video-container.mirror video { transform: scaleX(-1); } /* square */ .video-container.square { width: var(--height); overflow: hidden; } .video-container.square video { object-fit: cover; } /* full-screen */ .video-container.full-screen { position: absolute; top: 0; left: 0; right: 0; width: unset; z-index: 999; overflow: scroll; background-color: black; } .video-container.full-screen video { object-fit: contain; width: unset; height: unset; } @media only screen and (min-width: 800px) { .chat { grid-template-areas: 'online media' 'posts media' 'actions media' ; grid-template-columns: 320px 1fr; grid-template-rows: auto 1fr auto; height: calc(100vh - 2 * var(--pad)); } }