/* CSS reset by https://piccalil.li/blog/a-more-modern-css-reset/ */ *, *::before, *::after { box-sizing: border-box; } /* Prevent font size inflation */ html { -moz-text-size-adjust: none; -webkit-text-size-adjust: none; text-size-adjust: none; } /* Remove default margin in favour of better control in authored CSS */ body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin-block-end: 0; } /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ ul[role='list'], ol[role='list'] { list-style: none; } /* Set core body defaults */ body { min-height: 100vh; line-height: 1.5; margin: 0; } /* Set shorter line heights on headings and interactive elements */ h1, h2, h3, h4, button, input, label { line-height: 1.1; } fieldset{ display: block; border: none; padding: 0; margin: 0; } /* Balance text wrapping on headings */ h1, h2, h3, h4 { text-wrap: balance; } /* A elements that don't have a class get default styles */ a:not([class]) { text-decoration-skip-ink: auto; color: currentColor; } /* Make images easier to work with */ img, picture { max-width: 100%; display: block; } /* Inherit fonts for inputs and buttons */ input, button, textarea, select { font-family: inherit; font-size: inherit; } /* Make sure textareas without a rows attribute are not tiny */ textarea:not([rows]) { min-height: 10em; } /* Anything that has been anchored to should have extra scroll margin */ :target { scroll-margin-block: 5ex; } dl{ display: grid; grid-template-areas: "title desc" ; } .visually-hidden { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; } /* Tabs */ .tablist{ height: 100%; display: grid; grid-template: "tablist" "panel"; grid-template-rows: 2em 1fr; } .controls{ background: #ccc; } .control { display: inline-block; } .control label { padding: .5em 1em; } input[type="radio"]:checked + label { background: #000; color: #fff; } a:focus, input:focus, input[type="radio"]:focus + label { outline: 2px dotted; outline-offset: 2px; } input[type="radio"] + label:hover { cursor: pointer; text-decoration: underline; } .panel { background: #eee; padding: 1em; } /* Layout */ main { width: 100%; height: 100vh; display: grid; grid-template-areas: "video tabs" "timeline timeline"; grid-template-columns: 50% 50%; grid-template-rows: 50% 50%; gap: 1em; } main>div { background: purple; } #video { grid-area: video; } #tabs { grid-area: tabs; } #timeline { grid-area: timeline; position: relative; } #timeline-bar{ height: 2em; margin-left: 20em; background: #aaa; } #timeline-bar-ctrl{ display: inline-block; background: #000; width: .1875em; height: 100%; position: absolute; } #timeline-bar-ctrl::before{ content: ''; width: 2em; height: 2em; border-radius: 50%; transform: translate3d(-50%, 0px, 0px); background: #000; position: absolute; } #tracks{ height: calc(100% - 2em); overflow-y: scroll; } .track { background: #ccc; width: 100%; min-height: 15em; display: grid; grid-template: 100% / 20em 1fr; } .track + .track { border-top: 1px solid #fff; } .track-ctrl{ background: #ccc; } .track-viz{ background: #eee; }