blob: 2ffba2de76e720783f378474206c68d67754ca29 [file] [log] [blame]
/*
* Copyright (C) 2018-2022 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.
*/
:root {
--color-primary: #34AADC;
--color-secondary: #86D9FF;
--text-color-inverse: white;
--text-color-primary: black;
--text-color-secondary: #555555;
--text-color-tertiary: #444444;
--text-color-subtle: #6c6c71;
--text-color-very-subtle: #8E8E93;
--heading-color: #2C98D1;
--link-hover-color: #0086BF;
--button-color-primary: rgb(52, 170, 220);
--error-text-color: #d24a59;
--benchmark-heading-color: rgb(183, 183, 183);
--benchmark-error-text-color: #ff8686;
--benchmark-done-result-color: #4A4A4A;
--gap: 3rem;
--width: 200px;
}
html,
svg text {
font-family: "Helvetica Neue", Helvetica, Verdana, sans-serif;
font-size: 62.5%;
font-synthesis: none;
height: 100vh;
}
body {
display: flex;
flex-direction: column;
gap: var(--gap);
margin: 0;
font-size: 1.6rem;
font-weight: 400;
line-height: 1.4;
background-repeat: no-repeat;
background-position: center -5vw;
background-size: 100vw;
padding-bottom: 0px;
background-image: url('clouds.svg');
overflow-y: hidden;
height: 100%;
}
table {
border-spacing: 0;
}
body.nonDefaultParams {
filter: hue-rotate(152deg);
}
.nonDefaultParams .summary {
display: none;
}
#non-default-params {
display: none;
text-align: center;
& h2 {
text-align: center;
}
& p {
text-align: center;
}
}
.nonDefaultParams #non-default-params {
display: block;
}
#non-standard-params-table {
border-collapse: collapse;
text-align: left;
display: inline-block;
margin-top: var(--gap);
}
#non-standard-params-table tr {
padding: 2px;
}
#non-standard-params-table thead th {
border-bottom: 1px solid var(--foreground);
}
#non-standard-params-table tbody td {
font-weight: normal;
text-align: left;
}
#non-standard-params-table thead th,
#non-standard-params-table tbody td {
padding: 0.1em 0.3em;
}
#non-standard-params-table tbody td:nth-child(2) {
color: var(--highlight);
}
.overflow-scroll {
overflow-y: auto;
}
.overflow-visible {
overflow: visible;
}
::selection {
background-color: var(--color-primary);
color: var(--text-color-inverse);
}
main {
display: flex;
flex-direction: column;
gap: var(--gap);
margin: 0 auto;
padding: 0 var(--gap);
max-width: 1180px;
text-align: center;
flex: 1;
overflow: hidden;
}
main p {
margin: 0;
}
img {
-webkit-user-drag: none;
user-select: none;
}
.logo {
box-sizing: border-box;
width: 100%;
user-select: none;
perspective: 600;
}
.logo .logo-image {
display: block;
box-sizing: border-box;
background-repeat: no-repeat;
background-position: center;
background-image: url('JetStream3Logo.svg');
color: transparent;
animation: swingin 350ms ease-out forwards;
will-change: transform, opacity;
height: 75px;
}
#jetstreams {
background-image: url('jetstreams.svg');
background-repeat: no-repeat;
background-size: contain;
background-position: center;
padding: 2rem 0;
margin: -2rem 0;
}
#jetstreams svg {
width: 100%;
max-height: 120px;
}
#magic {
position: absolute;
top: -900px;
left: -900px;
width: 300px;
height: 300px;
display: none;
}
.summary {
text-align: center;
}
.summary:empty {
display: none;
}
article,
.summary {
max-width: 70rem;
margin: 0 auto 0 auto;
opacity: 0;
animation: fadein 0.5s ease-in-out forwards;
animation-delay: 200ms;
}
article {
display: flex;
flex-direction: column;
gap: var(--gap);
}
h1 {
color: var(--text-color-primary);
text-align: center;
margin-bottom: 0;
}
h2,
h3,
h4,
h5,
h6 {
color: var(--heading-color);
text-align: left;
}
h4,
h5,
h6 {
margin-bottom: 0;
}
p {
text-align: left;
color: var(--text-color-secondary);
}
h5,
h6 {
font-size: 1.6rem;
}
h6 {
color: var(--text-color-tertiary);
}
dt {
margin-top: 10px;
font-weight: bold;
text-align: left;
}
dd {
text-align: left;
padding: 10px 20px;
margin: 0;
}
a:link,
a:visited {
color: var(--color-primary);
}
a:hover,
a:active {
color: var(--link-hover-color);
}
#status label,
a.button {
display: inline-block;
font-weight: 500;
text-decoration: none;
font-size: 2rem;
background-color: var(--button-color-primary);
background-image: linear-gradient(180deg, rgba(134, 217, 255, 1) -80%, rgb(52, 170, 220) 100%);
color: var(--text-color-inverse);
border: 1px solid var(--button-color-primary);
border-radius: 2px;
padding: 0.3rem 0.3rem 0.5rem;
text-align: center;
width: var(--width);
-webkit-touch-callout: none;
user-select: none;
}
a.button {
animation: fadein 500ms ease-in forwards, scaledown 500ms ease-in forwards;
opacity: 0;
}
#status label,
.button:hover {
background-image: none;
}
#status.loading {
position: absolute;
top: 0;
left: 0;
margin: 48vh 0 0;
width: 100%;
line-height: 1.2;
font-size: 4rem;
font-style: italic;
font-weight: 500;
letter-spacing: -0.10rem;
color: transparent;
background-image: linear-gradient(132deg, #96E5FF 0%, #96E5FF 2%, #86D9FF 42%, #8BDAFF 84%, #96E5FF 98%, #96E5FF 100%);
-webkit-background-clip: text;
background-repeat: no-repeat;
-webkit-touch-callout: none;
user-select: none;
}
#status.error {
max-width: 70rem;
margin: 0 auto 1rem;
}
.error h2,
.error p {
color: var(--error-text-color);
margin-bottom: 0;
text-align: center;
font-weight: 500;
}
.error h2 {
font-size: 5rem;
letter-spacing: -0.1rem;
line-height: 1;
}
#result-summary:empty {
display: none;
}
#result-summary {
margin-top: 20px;
}
#result-summary label {
color: var(--text-color-subtle);
}
#result-summary .score {
font-weight: bold;
font-size: 4rem;
line-height: 1;
color: var(--color-primary);
font-weight: 500;
}
.benchmark .plot svg {
display: inline-block;
vertical-align: middle;
}
#result-summary .score .interval {
display: block;
font-weight: normal;
}
#results {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
gap: var(--gap);
margin: 0 calc(var(--gap) * -1) 0 calc(-var(--gap) * -1);
animation: fadein 500ms ease-out forwards;
opacity: 0;
overflow-y: auto;
flex: 1;
padding-bottom: var(--gap);
box-sizing: border-box;
}
.benchmark {
position: relative;
flex: 1;
max-width: 20%;
min-width: var(--width);
text-align: left;
color: var(--text-color-very-subtle);
font-size: 1.6rem;
scroll-margin-top: 20vh;
scroll-margin-bottom: 20vh;
}
.benchmark .result.detail {
display: none;
}
.details .benchmark .result.detail {
display: inline-block;
}
.benchmark h4,
.benchmark .result,
.benchmark label,
.benchmark .plot {
color: transparent;
background: linear-gradient(160deg, rgba(249, 249, 249, 1) 0%, rgba(238, 238, 238, 1) 100%);
border-radius: 3px;
}
.benchmark h3 {
color: var(--benchmark-heading-color);
}
.benchmark-running h4,
.benchmark-running .result,
.benchmark-running label,
.benchmark-running .plot {
color: var(--color-secondary);
background-color: var(--color-secondary);
background-image: none;
}
.benchmark-done h3,
.benchmark-done h4,
.benchmark-done .result,
.benchmark-done label,
.benchmark-done .plot {
background-color: transparent;
background-image: none;
-webkit-touch-callout: revert;
user-select: text;
}
.benchmark-error h4,
.benchmark-error .result,
.benchmark-error label,
.benchmark-error .plot {
color: var(--benchmark-error-text-color);
background-color: var(--benchmark-error-text-color);
background-image: none;
}
.benchmark-error h3 {
color: var(--benchmark-error-text-color);
}
.benchmark h3 {
font-weight: 400;
font-size: 1.6rem;
margin: 0;
}
.benchmark-running h3 {
background-color: transparent;
background-image: none;
color: var(--color-primary);
}
.benchmark-done h3 {
color: var(--text-color-subtle);
}
.benchmark a.info {
display: inline-block;
width: 1.5rem;
height: 1.5rem;
border-radius: 100%;
background-color: var(--benchmark-heading-color);
color: var(--text-color-inverse) !important;
user-select: none;
text-align: center;
vertical-align: middle;
font-style: italic;
font-weight: bold;
font-family: 'Times New Roman', Times, serif;
line-height: 1.6rem;
margin-top: -0.2rem;
}
.benchmark-running a.info {
background-color: var(--color-primary);
}
.benchmark-done a.info {
background-color: var(--text-color-subtle);
}
.benchmark h3 a,
.benchmark h3 a:link,
.benchmark h3 a:active,
.benchmark h3 a:hover,
.benchmark h3 a:visited {
color: inherit;
text-decoration: none;
}
.benchmark-done h3 a:hover {
color: var(--color-primary);
text-decoration: underline;
}
.benchmark h4 {
margin: 0.3rem 0;
line-height: 1;
font-weight: 400;
font-size: 2.4rem;
}
.benchmark-done h4 {
color: var(--color-primary);
background-color: none;
}
.benchmark p,
.benchmark-done p {
margin: 0;
}
.benchmark .result {
display: inline-block;
margin-right: 1.6rem;
line-height: 1.3;
font-size: 1.3rem;
font-weight: bold;
}
#result-summary .benchmark {
text-align: center;
max-width: 100%;
margin: 0;
margin-left: 1.6rem;
}
.benchmark-done .result {
color: var(--benchmark-done-result-color);
}
.benchmark label {
display: block;
}
.benchmark-done label {
color: var(--text-color-very-subtle);
font-weight: 400;
}
dt:target {
background-color: var(--color-secondary);
color: var(--text-color-inverse);
padding-left: 10px;
border-radius: 5px;
}
.plot svg circle {
fill: var(--color-primary);
opacity: 0.8;
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes scaledown {
from {
transform: scale(1.3, 1.3);
}
to {
transform: scale(1, 1);
}
}
@keyframes shine {
0% {
background-position: -1200px center;
}
100% {
background-position: 100vw center;
}
}
@keyframes swingin {
from {
opacity: 0;
transform: rotateY(-85deg) translateZ(200px);
}
to {
opacity: 1;
transform: rotateY(0deg) translateZ(0px);
}
}
@media (max-width: 415px) {
body {
background-position: center 4rem;
}
.logo .logo-image {
height: 60px;
}
#jetstreams {
background-size: 200%;
}
}