mnml/client/assets/styles/instance.less
2019-11-22 16:26:43 +11:00

389 lines
7.2 KiB
Plaintext

.instance.lobby {
align-content: center;
}
.instance {
overflow: hidden;
display: grid;
grid-template-columns: 1fr minmax(min-content, 1fr);
grid-template-rows: min-content 1fr;
grid-template-areas:
"vbox info"
"constructs constructs";
.info {
h2 {
text-transform: uppercase;
}
svg {
display: inline;
height: 1em;
}
figure {
display: inline;
height: 0.5em;
svg {
margin-right: 0.5em;
}
}
figcaption {
font-size: 1em;
display: inline-block;
vertical-align: middle;
}
margin-left: 1em;
grid-area: info;
display: grid;
grid-template-columns: 1fr min-content;
grid-template-areas:
"item combos";
.info-item {
grid-area: item;
}
.combos {
display: grid;
grid-area: combos;
margin-left: 0.5em;
grid-template-rows: min-content min-content;
grid-template-areas:
"comboHeader"
"comboList";
.combo-header {
text-align: center;
}
.combo-list {
display: grid;
grid-template-rows: min-content min-content min-content;
grid-template-columns: min-content min-content;
grid-gap: 0.5em;
margin-top: 0.5em;
width: 15.5em;
.table-button {
display: grid;
text-align: center;
align-content: center;
grid-template-areas:
"item"
"ingr";
cursor: pointer;
&:hover {
color: whitesmoke;
background-color: @gray;
}
.item {
border-top: 2px solid #222;
border-bottom: 2px solid #222;
flex: 1;
grid-area: item;
font-weight: bold;
div {
width: 5em;
}
}
div {
border-left: 2px solid #222;
border-right: 2px solid #222;
height: 1.75em;
width: 7.5em;
svg {
vertical-align: middle;
}
&:last-child {
border-bottom: 2px solid #222;
}
}
}
}
}
}
.constructs {
grid-area: constructs;
}
}
@keyframes action {
0% {
color: palegoldenrod;
}
100% {
color: whitesmoke;
}
}
/* CONSTRUCT LIST */
.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;
&:first-child {
margin-left: 0;
border-left-width: 1px;
}
}
.construct-list {
grid-area: constructs;
display: flex;
button {
&.highlight {
color: black;
background: @white;
// border: 1px solid @white; (this bangs around the vbox)
// overwrite the classes on white svg elements
svg {
stroke-width: 0.75em;
}
.white {
stroke: black;
}
}
}
.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;
}
}
}
.label {
flex: 1 0 100%;
}
.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;
}
.cancelled {
color: white;
}
}
.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;
}
}