/* * Copyright (C) 2018-2020 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. */ /* Outer harness */ html, body { min-height: 100%; } body { background-color: hsl(0, 0%, 95%); font-family: "Helvetica Neue", Helvetica, Verdana, sans-serif; font-size: 15px; cursor: default; -webkit-user-select: none; } body.showing-intro, body.showing-results { background-color: hsl(35, 100%, 100%); background-image: url(crystal.svg), url(lines.svg); background-size: auto 225%, auto 100%; background-repeat: no-repeat; animation: background-fade 1s ease-in 1s, background-color 60s linear infinite 2s; animation-play-state: paused; will-change: background-color; } body.showing-test-container { overflow: hidden; } body.images-loaded { animation-play-state: running; } @media screen and (min-width: 667px) { body { font-size: 24px; } body.showing-intro, body.showing-results { background-size: 200% 100%, 150% auto; } } @media screen and (min-width: 1025px) { body.showing-intro, body.showing-results { background-size: 150% 100%, 150% auto; } } ::selection { background-color: black; color: white; } .hidden { display: none; } section { display: none; } section.selected { display: block; } .logo { position: relative; } .logo svg { width: 350px; height: 88px; max-width: 100%; color: hsl(35, 100%, 50%); animation: foreground-color 60s linear infinite 2s; animation-play-state: paused; will-change: color; } .logo div { transform: skewX(-10deg); margin-left: 1em; } body.images-loaded .logo svg { animation-play-state: running; } @media screen and (min-width: 667px) { .logo svg { width: 525px; height: 130px; padding-left: .4em; } .logo div { position: absolute; left: 360px; bottom: 0.2em; font-size: 75%; } } section .body { margin: 2em 1em 0; max-width: 350px; } section .body p { margin: 1em 0; line-height: 1.5em; -webkit-user-select: text; cursor: text; } @media screen and (min-width: 667px) { section .body { margin-left: 2.5em; max-width: 500px; transform: skewX(-10deg); } section button { transform: none; } } button { background-color: hsl(35, 100%, 50%); color: white; padding: 0.25em; margin: 1.5em -0.25em 0 0; min-width: 50%; border: none; font-family: inherit; font-size: inherit; transform: skewX(-10deg); transition: 100ms filter ease-in-out; animation: background-color 60s linear infinite 2s; animation-play-state: paused; will-change: background-color; } body.images-loaded button { animation-play-state: running; } button:hover { filter: brightness(115%); } button:active { filter: brightness(130%); } button:disabled { opacity: 0.5; filter: none !important; } @media print { button { display: none; } } .portrait-orientation-check { display: none; } @media screen and (max-device-width: 1025px) and (orientation: portrait) { .portrait-orientation-check { display: block; } } @media screen and (max-device-width: 1025px) and (orientation: portrait) { .landscape-orientation-check { /* This keeps the button color animation in sync with page, while display: none does not. */ visibility: hidden; } } @keyframes background-fade { 100% { background-color: hsl(35, 100%, 50%); } } @keyframes background-color { 0%, 10% { background-color: hsl(35, 100%, 50%); } 12%, 20% { background-color: hsl(75, 100%, 30%); } 22%, 30% { background-color: hsl(115, 100%, 30%); } 32%, 40% { background-color: hsl(155, 100%, 30%); } 42%, 50% { background-color: hsl(195, 100%, 30%); } 52%, 60% { background-color: hsl(235, 100%, 30%); } 62%, 70% { background-color: hsl(275, 100%, 30%); } 72%, 80% { background-color: hsl(315, 100%, 30%); } 82%, 90% { background-color: hsl(355, 100%, 30%); } 92%, 100% { background-color: hsl(395, 100%, 50%); } } @keyframes foreground-color { 0%, 10% { color: hsl(35, 100%, 50%); } 12%, 20% { color: hsl(75, 100%, 30%); } 22%, 30% { color: hsl(115, 100%, 30%); } 32%, 40% { color: hsl(155, 100%, 30%); } 42%, 50% { color: hsl(195, 100%, 30%); } 52%, 60% { color: hsl(235, 100%, 30%); } 62%, 70% { color: hsl(275, 100%, 30%); } 72%, 80% { color: hsl(315, 100%, 30%); } 82%, 90% { color: hsl(355, 100%, 30%); } 92%, 100% { color: hsl(395, 100%, 50%); } } /* Intro section, About page */ #intro, #about { padding: 2em; } #intro { opacity: 0; transition: opacity 500ms ease-in; } body.images-loaded #intro { opacity: 1; } #about .body { transform: none; margin: 0; max-width: initial; } #about li { line-height: 1.5em; } #about button { padding: .75em 2em; margin: 1.5em auto 0; min-width: initial; transform: skewX(-10deg); } #about h3 { margin-top: 3em; } #about #log { font-size: .9em; list-style-type: none; margin-left: 0; padding-left: 0; } #about #log li { margin-top: .5em; } @media screen and (min-width: 667px) { #about .body { font-size: .7em; margin: 1em; } #about ol, #about ul { padding-left: 3em; } } #intro a, #about a, #intro a:visited, #about a:visited { color: black; } /* Running test section */ .frame-container { position: absolute; top: 50%; left: 50%; } .frame-container > iframe { width: 100%; height: 100%; border: 0; margin: 0; } body.small .frame-container { width: 568px; height: 320px; margin-left: -284px; margin-top: -160px; } body.medium .frame-container { width: 900px; height: 600px; margin-left: -450px; margin-top: -300px; } body.large .frame-container { width: 1600px; height: 800px; margin-left: -800px; margin-top: -400px; } /* Results section */ #results { padding: 2em; } #results .body { -webkit-user-select: text; } #results .score-container { padding-bottom: 2em; } #results .table-container { position: relative; } #results .table-container > div { margin-left: 40%; } #results .score { font-size: 5em; font-weight: bold; font-style: italic; line-height: 1; margin: 0; } #results .confidence { font-size: 2em; font-style: italic; line-height: 1; margin: 0; text-indent: 1.75em; color: hsl(0, 0%, 40%); padding-bottom: .3em; } #results table { border-spacing: 0; margin: 0; padding: 0; min-width: 25%; } #results table td, #results table th { padding: 0.25em; } #results table td.suites-separator { padding: 0; } #results table tr:nth-child(even) { background-color: hsla(0, 0%, 0%, 0.05); } #results #results-header { top: 0; left: 0; width: 40%; position: absolute; } #results #results-score { float: left; } #results #results-data span { font-size: .75em; color: hsl(0, 0%, 40%); } #results #results-header td, #results #results-header th { text-align: right; padding-right: 1em !important; padding-left: 0.5em !important; } #results #results-score td, #results #results-score th { text-align: left; padding-right: 0.5em !important; } #results #results-score td { cursor: text; } @media screen and (min-width: 667px) { #results .score, #results .confidence { font-style: normal; } } .detail span { display: none; } body.small .detail .small, body.medium .detail .medium, body.large .detail .large { display: initial; } #overlay { position: fixed; top: 0; left: 0; bottom: 0; right: 0; background: hsla(0, 0%, 100%, 0.9); } @supports (-webkit-backdrop-filter: blur(10px)) { #overlay { background: hsla(0, 0%, 100%, 0.7); -webkit-backdrop-filter: blur(20px); } } #overlay > div { position: absolute; width: 500px; height: 500px; margin-top: -250px; margin-left: -250px; top: 50%; left: 50%; } #overlay > div div { overflow: scroll; font-size: 12px; -webkit-user-select: text; cursor: text; max-height: 250px; border: 1px solid hsla(0, 0%, 0%, 0.1); padding: 1em; }