@font-face { font-family: "Noto Color Emoji"; src: url("./fonts/NotoColorEmoji/Noto-COLRv1-noflags.ttf"); } @font-face { font-family: "OpenMojiDemoFont"; src: url("./fonts/OpenMoji/OpenMoji-color-colr1_svg.woff2") format("woff2"); } @font-face { font-family: "Twemoji Mozilla Built"; src: url("./fonts/Mozilla/Twemoji.Mozilla.ttf"); } html, body { box-sizing: border-box; height: 100%; width: 100%; margin: 0; padding: 0; font-family: system-ui; /*font-variant: all-petite-caps;*/ } *, *:before, *:after { box-sizing: inherit; } h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child { margin-top: 0; } .emoji { font-family: "Noto Color Emoji", sans-serif; font-family: "OpenMojiDemoFont", sans-serif; font-family: "Twemoji Mozilla Built", sans-serif; font-size: 16px; font-weight: 400; font-style: normal; position: relative; /*top: 1px; /* Twemoji */ } .emoji:after { font-variant-emoji: emoji; /* experimental feature and only in firefox :( */ content: '\FE0F'; /* fuck off, give me emoji // https://codepoints.net/U+FE0F */ } .emoji.Twemoji { font-family: "Twemoji Mozilla Built", sans-serif; font-size: 16px; top: 2px; } .emoji.Noto { font-family: "Noto Color Emoji", sans-serif; font-size: 14px; /*left: -1px;*/ top: 0px; } .emoji.OpenMoji { font-family: "OpenMojiDemoFont", sans-serif; font-size: 17px; left: -2px; top: 0px; color: #888; /* fix outline */ } .emoji.OpenMoji + .text-left-margin { margin-left: 0; } .emoji.Noto + .text-left-margin { margin-left: 5px; } .sidebar .emoji.Noto + .emoji.Noto { margin-left: 4px; } footer { text-align: center; color: #888; margin: .5em; } .autocomplete { position: relative; display: inline-block; } .autocomplete-items { z-index: 99; position: absolute; top: 100%; left: 0; right: 0; } .autocomplete-item { background-color: #fefefe; cursor: pointer; border: 1px solid #eee; border-top: none; } .autocomplete-item:hover { background-color: #e9e9e9; } .item-inactive { padding: 5px; } .item-inactive .group { color: #777; } .item-active { padding: 5px; background-color: DodgerBlue !important; color: #fff; } .item-active .group { color: #ccc; } /* table, tr, td, th { border: 1px solid #888; } */ :root { --caption-size: 2rem; --outline-width: 2px; --outline-width-: calc(0px - var(--outline-width)); --options-height: 18.6em; /* FIXME */ --options-height-min: 17em; --image-height: 800px; } .grid-container { display: grid; width: 100%; grid-template-columns: auto 1fr; grid-template-rows: auto; grid-template-areas: "sidebar content"; column-gap: 10px; height: 100vh; } .grid-container.reversed { grid-template-columns: 1fr auto; grid-template-areas: "content sidebar"; } .sidebar { grid-area: sidebar; /*position: fixed;*/ height: 100vh; overflow-y: auto; white-space: nowrap; /* ugly firefox */ overflow-block: scroll; /* ugly firefox */ display: grid; grid-gap: 2px; align-items: stretch; align-content: baseline; } .sidebar h2 { font-size: 17px; } #options { height: var(--options-height); } #table { } #fail_images { display: grid; justify-content: left; } #fail_images.center, .grid-container.reversed #fail_images.center{ justify-content: center; } .grid-container.reversed #fail_images { justify-content: right; } .panel { display: block; padding: 10px; } .panel > div { line-height: 30px; } .sticky { top: 0; position: sticky; z-index: 10; } .content { grid-area: content; overflow: auto; padding: 0px 10px; } body.mini { /* split feature */ width: 75%; margin: 0 auto; /* FIXME */ } .mini .sidebar { font-size: 12px; /*font-weight: bold;*/ } .mini .sidebar .panel > div { line-height: 20px; } .mini .sidebar #options.panel { height: var(--options-height-min); } @keyframes flash { 0% { z-index: 1; } 49% { z-index: 1; } 50% { z-index: -1; } 100% { z-index: -1; } } .block { position: relative; display: block; max-height: var(--image-height); } .block:after { display: block; position: absolute; bottom: 20px; left: 25px; font-family: Impact; font-size: var(--caption-size); /*-webkit-text-stroke: 1px black;*/ /*ugly*/ text-shadow: var(--outline-width) var(--outline-width) 0 #000, var(--outline-width-) var(--outline-width) 0 #000, var(--outline-width-) var(--outline-width-) 0 #000, var(--outline-width) var(--outline-width-) 0 #000; } .block-test:after { /*content: "TEST 🧪\FE0F";*/ content: "TEST"; color: white; } .block-gold:after { /*content: "GOLD 🏆\FE0F";*/ content: "GOLD"; color: gold; } /* .block:before { display: block; position: absolute; bottom: 20px; left: 20px; } .block-test:before { content: "🧪\FE0F"; color: white; } .block-gold:before { content: "🏆\FE0F"; color: gold; } */ .block-gold { position: absolute; animation: flash var(--animation-duration) infinite; } .block-gold.anim_off, .block-gold.anim_force_off, .all_diff .block-gold, .split_compare .block-gold{ animation: none; } .split_compare .image-container { cursor: col-resize; } .split_compare .block-gold { overflow: hidden; width: 50%; position: absolute; z-index: 10; } .split_compare .separator { width: 1px; height: 100%; cursor: col-resize; position: absolute; top: 0; left: 50%; z-index: 10; backdrop-filter: invert(1); } .split_compare .block-test:after { left: auto; right: 25px; } :root { --animation-duration: 0.7s; --height-image: calc((100vh - 800px) / 2); } .image-container, .meta-block { position: relative; } .meta-block h3 { /*display: none;*/ font-family: monospace; /*font-family: "Gill Sans", sans-serif;*/ padding-top: 10px; margin-top: revert; /*font-size: 150%;*/ font-size: 1.5em; } .meta-block h3:before { content: "🎯\FE0F"; /* for hedging her bets; see .emoji for details */ } .text-link { text-decoration: none; } #fail_images.vpadding .meta-block { /*margin-block: 100vh;*/ padding-top: calc(var(--height-image)); padding-bottom: 2px; /*padding-bottom: calc(50% - var(--height-image) );*/ } #fail_images.vpadding .meta-block h3, .meta-block:first-child h3 { border-top: none; } .block-diff { display: none; /*visibility: collapse;*/ position: absolute; top: 0px; /*z-index: 10;*/ } .block-diff.show_diff, .all_diff .block-diff { display: block; z-index: 2; } .diff_separate .block-diff { display: block; position: relative; top: auto; } .image-container, img, .block { max-width: 100%; user-select: none; } /* TODO: исправить конфликт с image split compare */ .split_compare .image-container, .split_compare img, .split_compare .block { max-width: unset; } table { position: relative; width: 100%; text-align: left; border-collapse: collapse; line-height: normal; /*overflow: hidden;*/ /* ugly chrome-based */ } th, td { padding: 0.15rem; border: none; } tr { padding: 0.15rem; border: none; cursor: pointer; } tr a { text-decoration: none; } th { z-index: 1; } th.table-sticky { position: sticky; top: 2.7em; /* FIXME */ } .mini th.table-sticky { position: sticky; top: 3.53em; /* FIXME */ } #options.sticky + #table th.table-sticky { top: calc(var(--options-height) + 2.74em); /* FIXME */ } .mini .sidebar #options.sticky + #table th.table-sticky { top: calc(var(--options-height-min) + 3.50em); /* FIXME */ } .filter { display: block; padding: 10px 4px; font-size: 16px; font-weight: bold; } .filter * { font-weight: normal; } .mini .filter { font-size: 12px; } #options.sticky + #table .filter.sticky { top: calc(var(--options-height) + 0.0em); /* FIXME */ } .mini .sidebar #options.sticky + #table .filter.sticky { top: calc(var(--options-height-min) + 0.0em); /* FIXME */ } .filter input { margin-left: 10px; } #options .filter.sticky { } input[type=range] { vertical-align: middle; } a, a:visited { } .text-left-margin { margin-left: 6px; } ul.list { margin: 0; } ul.list li { display: inline-block; margin-left: 10px; } /* FIXME: flex or grid */ ul.list li:first-child { margin-left: 0;} summary { cursor: pointer; list-style: none; } summary:before { content: "📁\FE0F +"; margin: -5px 5px 0 0; } details[open] summary:before { content: "📂\FE0F −"; } .red { color: #f53200; color: oklch(62.8% 0.25768330773615683 32.82); } .yellow { color: #d3a100; color: oklch(76.67% 0.17685825418032033 90.53); } .green { color: #6b9a00; color: oklch(62.8% 0.25768330773615683 128.19); } table th:nth-child(3) { text-align: center; } table td:nth-child(3) { /* Δ, % // TODO: add class */ text-align: right; font-family: Consolas, monospace; } table td:nth-child(4) { /* Passed // TODO: add class */ text-align: center; }