plate-tool/plate-tool-web/dist/index-136b7d4afc3986e5.css

609 lines
9.7 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@charset "UTF-8";
/* ----------------- */
/* Custom Properties */
/* ----------------- */
/*
This values are to be overridden
after being injected into
the global scope.
*/
/* colors */
/* Black */
/* Gray */
/* White */
/* font */
/* Sizes divided by 16 so values given in px */
/* --------------- */
/* Utility Classes */
/* --------------- */
/* Layouts */
.container {
padding-inline: 4rem;
margin-inline: auto;
max-width: 80rem;
}
.flex {
display: flex;
gap: 2rem;
}
.column {
justify-content: center;
align-items: center;
flex-direction: column;
align-content: center;
}
.row {
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
align-content: baseline;
max-width: 100%;
}
.two-columns {
display: grid;
/* Will shrink to one column, never exceed two!
* The `max` in `minmax` asks that the columns
* be no smaller */
grid-template-columns: repeat(auto-fit, minmax(max(30rem, 40%), 1fr));
column-gap: 1rem;
justify-content: space-evenly;
}
.lock-bottom {
position: fixed;
bottom: 0%;
}
/* Other */
.hr::after { /* Add fake hr after header */
content: "";
position: absolute;
display: block;
clear: both;
width: 100%;
height: 0.15rem;
background-color: black;
}
/* Color Classes */
.bg-dark {
background-color: #504d49;
}
.bg-light {
background-color: hsl(190, 80%, 30%);
}
.bg-white {
background-color: hsl(30, 5%, 90%);
}
.text-dark {
color: #504d49;
}
.text-light {
color: hsl(190, 80%, 30%);
}
.text-white {
color: hsl(30, 5%, 90%);
}
/* Font Classes */
.fs-900 {
font-size: 6.25rem;
}
.fs-800 {
font-size: 4.6875rem;
}
.fs-700 {
font-size: 3.5rem;
}
.fs-600 {
font-size: 2rem;
}
.fs-500 {
font-size: 1.75rem;
}
.fs-400 {
font-size: 1.5rem;
}
.fs-300 {
font-size: 1.125rem;
}
.fs-200 {
font-size: 1rem;
}
.ff-serif {
font-family: "Inconsolata", monospace;
}
.ff-sans-cond {
font-family: sans-serif;
}
.ff-sans {
font-family: "Jost", sans-serif;
}
.uppercase {
text-transform: uppercase;
}
.lowercase {
text-transform: lowercase;
}
/* Semantic Tags and Their Classes */
header {
margin-bottom: 3vh;
}
section:not(:last-of-type) {
margin-bottom: 3vh;
}
footer {
margin-top: 3vh;
}
/* ----- */
/* Reset */
/* ----- */
*,
*::before,
*::after {
box-sizing: border-box;
}
body, h1, h2, h3, h4, h5, h6, p {
margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
font-weight: 400;
}
h1, h2, h3 {
line-height: 1.1;
}
body {
font-family: "Jost", sans-serif;
font-size: 1.5rem;
color: #504d49;
background-color: hsl(30, 5%, 90%);
line-height: 1.5;
min-height: 100vh;
}
main {
margin-left: 1vw;
margin-top: 1vh;
}
main * {
z-index: 2;
}
footer {
z-index: 2;
}
img, picture {
max-width: 100%;
display: block;
}
input, button, textarea, select {
font: inherit;
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behaviour: auto !important;
}
}
/* -------------------- */
/* Non-Reusable Classes */
/* -------------------- */
/* meant for these pages
* only, not to be used
* in practice */
.colors--block {
padding: 3rem 1rem 1rem;
border: 1px solid black;
}
@font-face {
font-family: "Inconsolata";
src: url("/fonts/Inconsolata.ttf");
font-display: swap;
font-variation-settings: "wdth" 85;
}
@font-face {
font-family: "Jost";
src: url("/fonts/Jost.ttf");
font-display: swap;
}
body {
overflow: hidden;
height: 100%;
}
div.main_container {
height: 97vh;
width: 98vw;
margin-top: 2.5vh;
margin-left: 1vw;
display: grid;
grid-template-columns: [left] minmax(min-content, 1fr) [right] 2fr;
grid-template-rows: [upper] 2fr [lower] 1fr;
column-gap: 1vw;
row-gap: 1vh;
}
.dialog {
padding: 1em;
}
.dialog::backdrop {
background: rgba(0, 125, 255, 0.3);
}
div.plate_container {
display: flex;
flex-direction: column;
justify-content: space-evenly;
align-items: center;
border: 2px solid #504d49;
grid-column: right/right;
grid-row: upper/3;
}
div.plate_container h2 {
margin-bottom: 1%;
text-align: center;
}
div.plate_container > div {
display: grid;
grid-template-rows: auto auto;
grid-template-rows: auto auto;
}
div.plate_container > div > h2:nth-of-type(1) {
grid-column: 2;
grid-row: 1;
}
div.plate_container > div > h2:nth-of-type(2) {
grid-column: 1;
grid-row: 2;
writing-mode: vertical-rl;
transform: rotate(-180deg);
}
div.plate_container > div > div {
grid-column: 2;
grid-row: 2;
}
div.source_plate, div.dest_plate {
padding: 3px 3px 3px 3px;
}
div.source_plate {
border: 2px solid blue;
}
div.dest_plate {
border: 2px solid red;
}
table, tr, td {
user-select: none; /* Prevents dragging issue */
border-spacing: 0px;
}
th {
font-family: monospace;
}
td.plate_cell {
background: none;
}
div.plate_cell_inner {
aspect-ratio: 1/1;
height: 90%;
border-radius: 50%;
border: 1px solid black;
}
td.plate_cell:hover div.plate_cell_inner {
background: black !important;
}
td.plate_cell.in_transfer div.plate_cell_inner::after {
content: "";
width: 100%;
height: 100%;
display: block;
border-radius: 50%;
background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8) 2px, transparent 2px, transparent 5px);
}
td.current_select div.plate_cell_inner {
border: 3px solid black;
}
.W1536 th {
font-size: 0.9rem;
}
.W3456 th {
font-size: 0.9rem;
line-height: 0px;
padding-bottom: 0.4rem;
}
div.tree {
position: relative;
grid-column: left/left;
grid-row: upper/upper;
width: 100%;
height: 100%;
border: 2px solid #504d49;
}
div.tree h3 {
margin-left: 0.5rem;
}
div.tree div#controls {
position: absolute;
bottom: 2%;
right: 2%;
}
div.tree ul {
width: 80%;
margin-left: 10%;
padding: 0;
display: flex;
flex-direction: column;
align-items: stretch;
overflow: scroll;
}
div.tree li {
display: inline;
margin-left: 0;
margin-bottom: 0.4rem;
border: 2px solid transparent;
user-select: none;
list-style: none;
line-height: 1em;
}
div.tree li:hover {
background: rgba(15, 117, 138, 0.08);
border: 2px solid rgba(15, 117, 138, 0.3);
}
div.tree li.selected {
background: rgba(15, 117, 138, 0.2);
}
div.transfer_menu {
position: relative;
width: 100%;
height: 100%;
grid-column: left/left;
grid-row: lower/lower;
border: 2px solid #504d49;
padding-left: 0.5rem;
}
div.transfer_menu form {
padding-top: 3%;
padding-bottom: 1%;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
div.transfer_menu form label {
display: inline;
}
div.transfer_menu form label * {
display: inline;
}
div.transfer_menu input:invalid {
background-color: #faa;
}
div.transfer_menu div#controls {
align-self: flex-end;
}
div.transfer_menu div#controls input {
padding: 2px 3px 2px 3px;
margin-left: 0;
}
input {
text-align: center;
margin-left: 0.5em;
margin-right: 0.5em;
margin-top: 1%;
margin-bottom: 1%;
line-height: 1em;
padding: 0;
}
input[type=text] {
width: 4em;
}
input[name=name] {
width: 6em;
}
input[type=number] {
width: 2em;
-webkit-appearance: none;
-moz-appearance: textfield;
}
input.volume_input {
width: 4em;
}
div.upper_menu {
position: absolute;
top: 0px;
left: 0px;
height: min(2.5vh, 25px);
padding-left: 1vw;
visibility: inherit;
display: flex;
}
div.upper_menu div.dropdown {
margin-right: 2px;
position: relative;
display: flex;
flex-direction: column;
}
div.upper_menu div.dropdown button {
vertical-align: top;
border: none;
padding: 0px 0.4em 0px 0.4em;
margin: 0;
cursor: pointer;
font-size: calc(min(2.5vh, 25px) * 0.7);
}
div.upper_menu div.dropdown * {
visibility: hidden;
}
div.upper_menu div.dropdown > *:first-child {
outline: 1px solid #504d49;
visibility: visible;
}
div.upper_menu div.dropdown:hover {
outline: 2px solid #504d49;
z-index: 2;
}
div.upper_menu div.dropdown:hover * {
visibility: visible;
outline: 1px solid #504d49;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.4);
z-index: 1;
}
div.upper_menu div.dropdown-sub {
position: relative;
height: min(2.5vh, 25px);
}
div.upper_menu div.dropdown-sub * {
visibility: hidden;
}
div.upper_menu div.dropdown-sub div {
display: none;
visibility: hidden;
}
div.upper_menu div.dropdown-sub > *:first-child {
visibility: inherit;
}
div.upper_menu div.dropdown-sub:hover {
visibility: visible;
}
div.upper_menu div.dropdown-sub:hover div {
position: absolute;
left: 100%;
top: 0;
visibility: hidden;
display: flex;
flex-direction: column;
width: max-content;
}
dialog {
border: 3px solid #504d49;
border-radius: 2%;
color: #504d49;
background: hsl(30, 5%, 90%);
}
dialog > form[method=dialog] {
position: absolute;
top: 0;
right: 0;
line-height: 0px;
}
dialog > form[method=dialog] button {
padding-top: 6px;
padding-left: 3px;
font-size: 150%;
line-height: 0px;
color: #504d49;
border: 0;
background: transparent;
}
dialog > form[method=dialog] button::before {
text-align: center;
vertical-align: middle;
content: "×";
}
dialog > form[method=dialog] button:hover {
color: black;
transition: color 0.1s;
}
.close_button {
color: red;
position: absolute;
top: 5%;
right: 2%;
background: rgba(0, 0, 0, 0.1);
}
.close_button:hover {
color: rgb(0, 255, 255);
background: rgba(0, 0, 0, 0.8);
}
.fs-900 {
font-size: 6.25rem;
font-weight: 400;
}
.fs-800 {
font-size: 4.6875rem;
font-weight: 300;
}
.fs-700 {
font-size: 3.5rem;
font-weight: 250;
}
.fs-600 {
font-size: 2rem;
font-weight: 300;
}
.fs-500 {
font-size: 1.75rem;
font-weight: 200;
}
.fs-400 {
font-size: 1.5rem;
font-weight: 200;
}
html {
font-size: 1vmin;
}