.instance { overflow: hidden; display: grid; grid-template-columns: 1fr minmax(min-content, 1fr); grid-template-rows: minmax(min-content, 0.75fr) 1fr; grid-template-areas: "vbox info" "constructs constructs"; } @media (max-width: 1920px) { .instance .info table td svg { // height: 50%; stroke-width: 8px; } .instance svg { height: 1.5em; } } .instance .top { grid-area: top; } .instance.lobby { align-content: center; } .scoreboard { flex: 1; } .instance .info { margin: 0 0 0 1em; grid-area: info; display: grid; grid-template-rows: 1fr 1fr; grid-template-areas: "item" "combos"; .info-item { flex: 1; font-size: 90%; } .combos { display: grid; grid-template-columns: repeat(6, 1fr); .table-button { display: grid; text-align: center; grid-template-areas: "item" "ingr"; .item { border-bottom: 2px solid #222; flex: 1; grid-area: item; font-weight: bold; } div { border-right: 2px solid #222; svg { vertical-align: middle; } } &:last-child { div { border-right: 0; } } } } } .instance .info h2 { text-transform: uppercase; } .instance .info svg { display: inline; height: 1em; } .instance .info figure { display: inline; height: 0.5em; svg { margin-right: 0.5em; } } .instance .combos { margin: 0 0 1em 1em; table { tr { svg { height: 1em; } } } td.table-button { padding:5px; cursor: pointer; animation: border-co 0.75s ease-in-out 0s infinite alternate; &:hover { color: whitesmoke; background-color: @gray-hover; } } } .instance .info figcaption { font-size: 1em; display: inline-block; vertical-align: middle; } .instance .constructs { grid-area: constructs; } .instance .equip { grid-area: equip; } .instance .equip .skills { border-right-width: 0; } @keyframes action { 0% { color: palegoldenrod; } 100% { color: whitesmoke; } } /* CONSTRUCT LIST */ .construct-list { grid-area: constructs; display: flex; } .instance-construct { flex: 1; display: grid; grid-template-rows: min-content min-content min-content 1fr min-content; grid-template-areas: "name " "skills " "specs " "avatar " "stats "; /*padding: 0.5em;*/ border: 2px solid #222; border-left-width: 0; } .instance-construct:first-child { margin-left: 0; border-left-width: 1px; } .construct-list { .name { grid-area: name; margin-bottom: 0.5em; text-align: center; } .skills { grid-area: skills; padding: 0 0.5em; margin-bottom: 0.75em; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 0 0.5em; button { height: 3em; } label { display: flex; } } .specs { grid-area: specs; padding: 0 0.5em; margin-bottom: 0.75em; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 0 0.5em; button { padding: 0.25em 0; } figure { flex: 1; align-items: center; text-align: center; } figcaption { // font-size: 75%; line-height: initial; } label { display: flex; } } .stats { grid-area: stats; display: flex; flex-flow: row; flex: 1; border-width: 0px; text-align: center; figcaption { // font-size: 75%; } // give speed some space div:nth-child(4n) { margin: 0 1em; } div { flex: 1; } } button { margin: 0; &.empty { border-style: dashed; } } } /* Equipment */ .equip { display: flex; margin: 1.5em 0; text-align: center; } .equip h3 { margin-bottom: 0.5em; text-transform: uppercase; font-weight: bold; letter-spacing: 0.1em; } .equip .specs { flex: 1; border: 2px solid #222; } .equip .items { display: flex; flex: 1 0 100%; justify-content: space-around; } .label { flex: 1 0 100%; } // .equipping { // position: relative; // } // .equipping::before { // content: ''; // position: absolute; // top: 2px; // left: 50%; // width: 100%; // height: 2px; // transform-origin: center; // background-color: whitesmoke; // animation: equipping-skill 2s infinite ease-out alternate; // opacity: 0; // } // .equipping::after { // content: ''; // position: absolute; // bottom: 2px; // left: 50%; // width: 100%; // height: 2px; // transform-origin: center; // background-color: whitesmoke; // animation: equipping-skill 2s infinite ease-out alternate; // opacity: 0; // animation-delay: 0.75s // } // @keyframes equipping-skill { // from { // transform: translate(-50%, 0) scaleX(0); // } // to { // transform: translate(-50%, 0) scaleX(0.75); // opacity: 1; // } // } // .equip-spec { // position: relative; // stroke: #333; // } // .equip-spec::after { // content: ''; // position: absolute; // bottom: 2px; // left: 50%; // width: 100%; // height: 2px; // transform-origin: center; // background-color: whitesmoke; // animation: equipping-skill 2s infinite ease-out alternate; // opacity: 0; // } .equipping, .receiving { animation: eq 0.75s cubic-bezier(0, 0, 1, 1) 0s infinite alternate; } @keyframes eq { from { background: @black; } to { background: @gray; } } .thresholds { display: flex; flex-flow: row; } .thresholds svg { stroke-width: 5px; } .thresholds hr { margin: 1em 0; } .spec-goal { margin-top: 0.5em; div { display: flex; margin: 0 1em 1em 0; } .bonus { justify-content: center; } } .thresholds figure svg { margin-right: 0.25em; height: 1.5em; } .thresholds .unmet { opacity: 0.5; } .faceoff { text-align: center; overflow: hidden; display: grid; grid-template-rows: 1fr 0.5fr 1fr; grid-template-areas: "opponent" "text" "player"; h1 { text-align: center; } button { grid-area: ready; justify-self: center; margin-top: 1em; } .winner { color: @yellow; font-weight: bold; } .team { display: grid; grid-template-columns: repeat(auto-fill, minmax(min-content, 33%)); max-height: 100%; } } .faceoff-text { grid-area: text; text-transform: uppercase; letter-spacing: 1em; font-weight: bold; display: flex; flex-flow: column; justify-content: center; color: @black; animation: faceoff 4s ease-in-out 0s 2 alternate; &.winner { animation: win 2s ease-in-out 0s 1; } } .tutorial { button { width: 100%; } button.focus { animation: co 0.75s cubic-bezier(0, 0, 1, 1) 0s infinite alternate; } } @keyframes faceoff { from { color: @black; } to { color: @white; } } @keyframes win { from { color: @black; } to { color: @yellow; } } /* Mobile Nav*/ .instance-nav { display: none; } .vbox-arrow-mobile { display: none }