256 lines
4.4 KiB
SCSS
256 lines
4.4 KiB
SCSS
@use 'sass:math';
|
|
|
|
// Probably will need to adjust for other langs...
|
|
$mapping-min-width: 80*8;
|
|
$visual-max-width: $base-modal-max-width - $mapping-min-width - $scrollbar-width;
|
|
|
|
.input-config {
|
|
padding: 0;
|
|
}
|
|
|
|
.input-config__horizontal-split {
|
|
display: flex;
|
|
position: relative;
|
|
flex-direction: row;
|
|
height: 100%;
|
|
}
|
|
|
|
.input-config__mappings {
|
|
display: block;
|
|
flex: 1 1 auto;
|
|
height: 100%;
|
|
min-width: space($mapping-min-width);
|
|
}
|
|
|
|
.input-config__mappings-scroll {
|
|
display: block;
|
|
width: 100%;
|
|
max-height: 100%;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.input-config__mappings-wrapper {
|
|
padding: space(8);
|
|
}
|
|
|
|
.input-config__visual-wrapper {
|
|
display: block;
|
|
width: auto;
|
|
height: auto;
|
|
max-width: space($visual-max-width);
|
|
max-height: space(math.div($visual-max-width, 4) * 3);
|
|
margin: auto 0;
|
|
flex: 1 1 100%;
|
|
}
|
|
|
|
.input-config__visual-aspect {
|
|
position: relative;
|
|
width: 100%;
|
|
padding-bottom: 75%;
|
|
background-color: $color-bg-shadow;
|
|
margin: auto 0;
|
|
}
|
|
|
|
.input-config__visual {
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: absolute;
|
|
top: space(16);
|
|
right: space(16);
|
|
bottom: space(16);
|
|
left: space(16);
|
|
border-radius: space(108);
|
|
background-color: $color-white-a5;
|
|
}
|
|
|
|
.input-config__visual-half {
|
|
display: flex;
|
|
position: relative;
|
|
flex-direction: row;
|
|
flex: 1 1 100%;
|
|
padding: 6%;
|
|
|
|
&--bottom {
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
}
|
|
}
|
|
|
|
.input-config__visual-quarter-left {
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
width: auto;
|
|
align-items: flex-start;
|
|
justify-content: flex-start;
|
|
|
|
}
|
|
|
|
.input-config__visual-quarter-right {
|
|
display: flex;
|
|
flex: 1 1 100%;
|
|
align-items: flex-start;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.input-config__visual-stick-wrapper {
|
|
display: flex;
|
|
position: absolute;
|
|
align-items: center;
|
|
justify-content: center;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
}
|
|
|
|
.input-config__visual-stick {
|
|
display: flex;
|
|
position: relative;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: space(200);
|
|
height: space(200);
|
|
border-radius: space(100);
|
|
background-color: $color-white-a5;
|
|
}
|
|
|
|
.input-viz {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
svg {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
&__mappings div {
|
|
@extend %prompt-font-sm;
|
|
}
|
|
}
|
|
|
|
$all-inputs:
|
|
A,
|
|
B,
|
|
Z,
|
|
START,
|
|
DPAD_UP,
|
|
DPAD_DOWN,
|
|
DPAD_LEFT,
|
|
DPAD_RIGHT,
|
|
L,
|
|
R,
|
|
C_UP,
|
|
C_DOWN,
|
|
C_LEFT,
|
|
C_RIGHT,
|
|
X_AXIS_NEG,
|
|
X_AXIS_POS,
|
|
Y_AXIS_NEG,
|
|
Y_AXIS_POS;
|
|
|
|
// Show default state while no inputs are active
|
|
[cur-input="NONE"] .input-viz[visual-input] {
|
|
opacity: 1;
|
|
}
|
|
|
|
@each $inp in $all-inputs {
|
|
.input-viz[visual-input="#{$inp}"] {
|
|
opacity: 0.5;
|
|
|
|
[cur-input="#{$inp}"] & {
|
|
opacity: 1.0;
|
|
}
|
|
}
|
|
}
|
|
|
|
@mixin set-sizes($sz) {
|
|
width: space($sz);
|
|
height: space($sz);
|
|
|
|
svg {
|
|
width: space($sz);
|
|
height: space($sz);
|
|
}
|
|
}
|
|
|
|
.input-viz__button {
|
|
@include set-color($color-text);
|
|
|
|
&--sm {
|
|
@include set-sizes(64);
|
|
}
|
|
|
|
&--md {
|
|
@include set-sizes(76);
|
|
}
|
|
|
|
&--lg {
|
|
@include set-sizes(84);
|
|
}
|
|
|
|
&--C {
|
|
@include set-svgs-color($color-warning);
|
|
}
|
|
|
|
&--A {
|
|
@include set-svgs-color($color-a);
|
|
}
|
|
|
|
&--B {
|
|
@include set-svgs-color($color-success);
|
|
}
|
|
}
|
|
|
|
.input-viz__Z {
|
|
@include set-svgs-color($color-warning);
|
|
@include set-sizes(136);
|
|
}
|
|
|
|
.input-viz__R {
|
|
@include set-svgs-color($color-white);
|
|
@include set-sizes(96);
|
|
}
|
|
|
|
.input-viz__L {
|
|
@include set-svgs-color($color-secondary);
|
|
@include set-sizes(136);
|
|
}
|
|
|
|
.input-config__c-buttons {
|
|
position: relative;
|
|
width: space(76+76+56);
|
|
height: space(76+56);
|
|
|
|
&-lr, &-du {
|
|
display: flex;
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
&-lr {
|
|
flex-direction: row;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
&-du {
|
|
flex-direction: column-reverse;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.input-viz {
|
|
&[visual-input="C_UP"] {
|
|
margin-top: space(-32);
|
|
}
|
|
}
|
|
}
|