nxemu/lang/english/html/input_config.html

619 lines
23 KiB
HTML

<html window-frame="solid-with-shadow" window-icon="window-icon.png" window-resizable="false">
<head>
<link href="base.css" rel="stylesheet" type="text/css" />
<link href="dialog.css" rel="stylesheet" type="text/css" />
<link href="config.css" rel="stylesheet" type="text/css" />
<link href="volume_slider.css" rel="stylesheet" type="text/css" />
<title>Configure Input</title>
</head>
<header>
<window-caption role=window-caption><img src="window-icon-32.png" /><span>Configure input</span></window-caption>
<window-buttons>
<window-button role="window-close"></window-button>
</window-buttons>
</header>
<style>
html {
margin: 0;
padding: 0;
overflow: hidden;
width: max-content;
height: max-content;
}
body {
margin: 0;
width: max-content;
height: max-content;
}
.InputPage {
padding: 0.5rem 0.7rem 0 0.7rem;
width: max-content;
height: max-content;
}
#MainTabNav
{
flow: horizontal;
}
#MainTabNav Page
{
white-space: nowrap;
}
.tab-button {
text-align: center;
min-width: 2.5rem;
}
.connect {
position: absolute;
top: -0.5rem;
left: 0.2rem;
background: color(color-config-page);
padding: 0 8px;
display: flex;
align-items: center;
gap: 8px;
white-space: nowrap;
}
.controller-select
{
width: *;
min-width: min-content;
}
div.center-buttons-grid
{
margin: 0 0.4rem;
}
div.button-column,
#horizontalSpacerShoulderButtonsWidget,
#horizontalSpacerShoulderButtonsWidget2,
#horizontalSpacerShoulderButtonsWidget3,
#horizontalSpacerShoulderButtonsWidget4
{
flow: vertical;
display: inline-block;
}
.controller-config
{
background: color(color-config-page);
border: 1px solid color(color-config-page-border);
border-radius: 0 8px 8px 8px;
width: max-content;
height: max-content;
font-family: var(font-ui), Arial, sans-serif;
font-size: 0.8rem;
color: color(color-ui-text-primary);
padding: 1em;
}
.controller-config .config-header
{
flow: horizontal;
width: fit-content;
}
.controller-config .config-header .group
{
position: relative;
background-color: color(color-config-page);
border: 1px solid color(color-config-page-border);
border-radius: 6px;
padding: 1.2rem 0.5rem 0.5rem 0.5rem;
margin: 0 0 1rem 0;
}
.controller-config .group.InputDevice
{
min-width: 16rem;
margin-right: 0.4rem;
}
div.center-bottom-row
{
flow: horizontal;
width: *;
min-width: min-content;
margin-top: 0.2rem;
vertical-align: bottom;
}
.controller-config .group.vibration
{
position: relative;
background-color: color(color-config-page);
border: 1px solid color(color-config-page-border);
border-radius: 6px;
padding: 1.2rem 0.5rem 0.5rem 0.5rem;
margin-right: 0.6rem;
width: max-content;
}
.controller-config .group.vibration:disabled
{
opacity: 0.45;
cursor: default;
}
.controller-config .group.vibration:disabled #labelVibrationStrength:hover,
.controller-config .group.vibration:disabled #vibrationStrengthPopupBtn:hover
{
border: 1px solid transparent;
}
.controller-config .group.vibration .vibration-row
{
flow: horizontal;
vertical-align: middle;
white-space: nowrap;
height: 1.5em;
}
.controller-config .group.vibration .vibration-check
{
display: block;
height: 1.5em;
flow: horizontal;
vertical-align: middle;
margin-right: 0.35em;
}
.controller-config .group.vibration #VibrationEnabled
{
display: block;
size: 1em;
margin: 0;
vertical-align: middle;
}
.controller-config .group.vibration #vibrationStrengthAnchor
{
flow: horizontal;
vertical-align: middle;
white-space: nowrap;
height: 1.5em;
}
.controller-config .group.vibration #labelVibrationStrength,
.controller-config .group.vibration #vibrationStrengthPopupBtn
{
border: 1px solid transparent;
padding: 0 0.25em;
cursor: pointer;
white-space: nowrap;
display: block;
height: 1.5em;
line-height: 1.4em;
vertical-align: middle;
box-sizing: border-box;
}
.controller-config .group.vibration #labelVibrationStrength
{
width: 8.2em;
}
.controller-config .group.vibration #labelVibrationStrength:hover,
.controller-config .group.vibration #vibrationStrengthPopupBtn:hover
{
border: 1px solid color(color-accent);
border-radius: 4px;
}
.controller-config .group.vibration #vibrationStrengthPopupBtn svg
{
width: 1.1em;
height: 1.1em;
fill: currentColor;
display: block;
margin-top: 0.15em;
}
.controller-config .group.vibration #vibrationStrengthPopupBtn.open svg
{
transform: rotate(180deg);
}
#VibrationStrengthPopup
{
background: color(color-config-page);
border: 1px solid color(color-control-border);
border-radius: 6px;
padding: 0.8em;
}
.controller-config .group.profile
{
width: *;
min-width: 32rem;
}
div.center-buttons-grid
{
flow: horizontal;
vertical-align: top;
}
#bottom
{
flow: horizontal;
}
#bottomLeft,
#bottomRight
{
width: 13rem;
}
#bottomLeftSpacer,
#bottomRightSpacer
{
width: *;
}
.bottomMiddle
{
width: *;
min-width: 36rem;
flow: vertical;
}
#controllerGraphics
{
width: *;
min-width: min-content;
height: auto;
margin: 0;
padding: 0;
}
#ControllerTypeGroup
{
flow: horizontal;
min-width: 11rem;
margin-right: 0.4rem;
}
#comboControllerType
{
width: 10.8rem;
}
#ProController,
#Handheld,
#GCController,
#DualJoycons,
#LeftJoycon
{
width: 100%;
min-width: 400px;
height: auto;
display: block;
}
.input-row
{
width: min-content;
}
div.center-buttons-motion
{
flow: horizontal;
width: max-content;
vertical-align: bottom;
}
#horizontalSpacerMotionLeft,
#horizontalSpacerMotionRight
{
display: block;
width: *;
}
div.center-buttons-motion .input-row
{
display: block;
position: relative;
width: min-content;
margin: 0 0.35rem 0 0;
vertical-align: bottom;
padding: 0.64rem 0.38rem 0.34rem 0.38rem;
border-radius: 2px;
}
div.center-buttons-motion .input-row button
{
min-width: 4.5rem;
height: 1.23rem;
margin: 0;
}
button
{
width: min-content;
}
input[type=hslider]
{
style-set: volume-slider-control;
display: block;
width: *;
}
.input-row > input[type=hslider]
{
width: 4.6rem;
}
input[type=hslider] > button.slider
{
size:4dip;
foreground: none;
background: color(color-accent);
border:2dip solid color(color-accent);
border-radius:50%;
padding: 0px;
margin: 0px;
}
#horizontalSpacerShoulderButtonsWidget,
#horizontalSpacerShoulderButtonsWidget2,
#horizontalSpacerShoulderButtonsWidget3,
#horizontalSpacerShoulderButtonsWidget4
{
width: *;
}
#InputContents
{
width: max-content;
height: max-content;
}
body > .footer
{
padding: 0.5rem 0.75rem 0.5rem 0;
}
@keyframes flash {
0%, 100% { fill: #2c2c2c; }
50% { fill: #aa0000; }
}
#ProController .controller { stroke: black; stroke-opacity: 0.3; stroke-width: 1; }
#ProController .body { fill: #CCC; }
#ProController .leftGrip, .rightGrip { fill: #CCC; stroke: black; stroke-opacity: 0.3; stroke-width: 1; }
#ProController .button .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#ProController .button .label { fill: white; font-family: Arial, sans-serif; font-weight: bold; }
#ProController .button .symbol { fill: white; }
#ProController .button[data-pressed="1"] .shape { fill: #aa0000; }
#ProController .button[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#ProController .home .outer { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#ProController .home .inner { fill: none; stroke: white; stroke-width: 1; }
#ProController .home .house { fill: white; }
#ProController .screenshot .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#ProController .screenshot .symbol { fill: white; }
#ProController .plus .shape, .minus .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#ProController .plus .symbol, .minus .symbol { fill: white; }
#ProController .cube { stroke: #000; stroke-width: 1.3; stroke-linejoin: miter; }
#ProController .cube.face.front { fill: url(#frontFaceGradient); fill-opacity: 1; }
#ProController .cube.face.back { fill: url(#backFaceGradient); fill-opacity: 1; }
#ProController .cube.edge { stroke:#000; stroke-width:1; fill: none; }
#ProController .trigger .shape { fill: #232629; stroke: #ccc; stroke-width: 1; }
#ProController .trigger .label { fill: #ccc; }
#ProController .trigger.L .shape { stroke-width: 2; }
#ProController .trigger.R .shape { stroke-width: 2; }
#ProController .trigger[data-pressed="1"] .shape { fill: #aa0000; }
#ProController .trigger[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#ProController .trigger[data-pressed="1"] .label { fill: white; }
#ProController .joystick-range { stroke: #CCC; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#ProController .joystick-deadzone { stroke: #CC0000; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#ProController .joystick-dot-raw { fill: #AAEBFF; stroke: none; }
#ProController .joystick-dot-calibrated { fill: #3BA55D; stroke: none; }
#ProController .pro-left-stick .shape { stroke: #979797; stroke-width: 1; }
#ProController .pro-left-stick .outer { fill: #2c2c2c; }
#ProController .pro-left-stick .inner { stroke: #979797; stroke-width: 1; fill: #2c2c2c; }
#ProController .pro-right-stick .shape { stroke: #979797; stroke-width: 1; }
#ProController .pro-right-stick .outer { fill: #2c2c2c; }
#ProController .pro-right-stick .inner { stroke: #979797; stroke-width: 1; fill: #2c2c2c; }
#DualJoycons .body { fill: #CCC; }
#DualJoycons .slider { fill: #676A6D; stroke: #ccc; stroke-width: 0.5; }
#DualJoycons .slider-line { stroke: #ccc; stroke-width: 0.5; fill: none; }
#DualJoycons .slider-release { fill: #2c2c2c; stroke: #ccc; stroke-width: 0.5; }
#DualJoycons .button .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#DualJoycons .button .label { fill: white; font-family: Arial, sans-serif; font-weight: bold; }
#DualJoycons .button .symbol { fill: white; }
#DualJoycons .button[data-pressed="1"] .shape { fill: #aa0000; }
#DualJoycons .button[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#DualJoycons .trigger .shape { fill: #232629; stroke: #ccc; stroke-width: 1; stroke-opacity: 0.4; }
#DualJoycons .trigger .label { fill: #ccc; }
#DualJoycons .trigger[data-pressed="1"] .shape { fill: #aa0000; }
#DualJoycons .trigger[data-pressed="1"] .label { fill: white; }
#DualJoycons .trigger[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#DualJoycons .joystick-range { stroke: #CCC; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#DualJoycons .joystick-deadzone { stroke: #CC0000; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#DualJoycons .joystick-dot-raw { fill: #AAEBFF; stroke: none; }
#DualJoycons .joystick-dot-calibrated { fill: #3BA55D; stroke: none; }
#DualJoycons .left-stick .outline { stroke: #979797; stroke-width: 1; fill: #DDD; }
#DualJoycons .left-stick-movable .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .left-stick-movable .line { stroke: #ccc; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .left-stick-topview .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .left-stick-topview .line { stroke: #979797; stroke-width: 1; }
#DualJoycons .left-joycon-topview .button .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .left-joycon-topview .button[data-pressed="1"] .shape { fill: #aa0000; }
#DualJoycons .right-stick .outline { stroke: #979797; stroke-width: 1; fill: #DDD; }
#DualJoycons .right-stick-movable .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .right-stick-movable .line { stroke: #ccc; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .right-stick-topview .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#DualJoycons .right-stick-topview .line { stroke: #979797; stroke-width: 1; }
#DualJoycons .right-joycon-topview .bump { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .body { fill: #CCC; stroke: #676767; stroke-width: 0.5;}
#LeftJoycon .slider { fill: #676A6D; stroke: #ccc; stroke-width: 0.5; }
#LeftJoycon .slider-line { stroke: #ccc; stroke-width: 0.5; fill: none; }
#LeftJoycon .slider-release { fill: #2c2c2c; stroke: #ccc; stroke-width: 0.5; }
#LeftJoycon .button .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#LeftJoycon .button .label { fill: white; font-family: Arial, sans-serif; font-weight: bold; }
#LeftJoycon .button .symbol { fill: white; }
#LeftJoycon .button[data-pressed="1"] .shape { fill: #aa0000; }
#LeftJoycon .button[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#LeftJoycon .trigger .shape { fill: #232629; stroke: #ccc; stroke-width: 1; stroke-opacity: 0.4; }
#LeftJoycon .trigger .label { fill: #ccc; }
#LeftJoycon .trigger[data-pressed="1"] .shape { fill: #aa0000; }
#LeftJoycon .trigger[data-pressed="1"] .label { fill: white; }
#LeftJoycon .trigger[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#LeftJoycon .joystick-range { stroke: #CCC; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#LeftJoycon .joystick-deadzone { stroke: #CC0000; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#LeftJoycon .joystick-dot-raw { fill: #AAEBFF; stroke: none; }
#LeftJoycon .joystick-dot-calibrated { fill: #3BA55D; stroke: none; }
#LeftJoycon .left-stick .outline { stroke: #979797; stroke-width: 1; fill: #DDD; }
#LeftJoycon .left-stick-movable .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .left-stick-movable .line { stroke: #ccc; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .left-stick-topview .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .left-stick-topview .line { stroke: #979797; stroke-width: 1; }
#LeftJoycon .left-stick-sideview .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .left-stick-sideview .line { stroke: #979797; stroke-width: 1; }
#LeftJoycon .left-joycon-topview .button .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .left-joycon-topview .button[data-pressed="1"] .shape { fill: #aa0000; }
#LeftJoycon .rail-body { fill: #6a6a6a; stroke: #848484; stroke-width: 0.7; }
#LeftJoycon .rail-bottom { fill: #1b1b1b; stroke: #949494; stroke-width: 0.7; }
#LeftJoycon .led:nth-child(1) { fill: #ffd94d; stroke: #a0a0a0; stroke-width: 0.7; }
#LeftJoycon .led:nth-child(2) { fill: #8ee7ff; stroke: #a0a0a0; stroke-width: 0.7; }
#LeftJoycon .led:nth-child(3) { fill: #8ee7ff; stroke: #a0a0a0; stroke-width: 0.7; }
#LeftJoycon .led:nth-child(4) { fill: #8ee7ff; stroke: #a0a0a0; stroke-width: 0.7; }
#LeftJoycon .rail-sync { fill: #000000; stroke: #d0d0d0; stroke-width: 0.6; }
#LeftJoycon .arrow { fill: none; stroke: #ffffff; stroke-width: 0.9; stroke-linejoin: round; }
#LeftJoycon .joycon-side-buttons .button .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#LeftJoycon .joycon-side-buttons .button[data-pressed="1"] .shape { fill: #aa0000; }
#RightJoycon .body { fill: #CCC; stroke: #676767; stroke-width: 0.5; }
#RightJoycon .slider { fill: #676A6D; stroke: #ccc; stroke-width: 0.5; }
#RightJoycon .slider-line { stroke: #ccc; stroke-width: 0.5; fill: none; }
#RightJoycon .slider-release { fill: #2c2c2c; stroke: #ccc; stroke-width: 0.5; }
#RightJoycon .button .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#RightJoycon .button .label { fill: white; font-family: Arial, sans-serif; font-weight: bold; }
#RightJoycon .button .symbol { fill: white; }
#RightJoycon .button[data-pressed="1"] .shape { fill: #aa0000; }
#RightJoycon .button[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#RightJoycon .trigger .shape { fill: #232629; stroke: #ccc; stroke-width: 1; stroke-opacity: 0.4; }
#RightJoycon .trigger .label { fill: #ccc; }
#RightJoycon .trigger[data-pressed="1"] .shape { fill: #aa0000; }
#RightJoycon .trigger[data-pressed="1"] .label { fill: white; }
#RightJoycon .trigger[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#RightJoycon .joystick-range { stroke: #CCC; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#RightJoycon .joystick-deadzone { stroke: #CC0000; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#RightJoycon .joystick-dot-raw { fill: #AAEBFF; stroke: none; }
#RightJoycon .joystick-dot-calibrated { fill: #3BA55D; stroke: none; }
#RightJoycon .right-stick .outline { stroke: #979797; stroke-width: 1; fill: #DDD; }
#RightJoycon .right-stick-movable .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#RightJoycon .right-stick-movable .line { stroke: #ccc; stroke-width: 1; fill: #1a1b1e; }
#RightJoycon .right-stick-topview .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#RightJoycon .right-stick-topview .line { stroke: #979797; stroke-width: 1; }
#RightJoycon .right-joycon-topview .bump { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#RightJoycon .rail-body { fill: #6a6a6a; stroke: #848484; stroke-width: 0.7; }
#RightJoycon .rail-bottom { fill: #1b1b1b; stroke: #949494; stroke-width: 0.7; }
#RightJoycon .led:nth-child(1) { fill: #ffd94d; stroke: #a0a0a0; stroke-width: 0.7; }
#RightJoycon .led:nth-child(2) { fill: #8ee7ff; stroke: #a0a0a0; stroke-width: 0.7; }
#RightJoycon .led:nth-child(3) { fill: #8ee7ff; stroke: #a0a0a0; stroke-width: 0.7; }
#RightJoycon .led:nth-child(4) { fill: #8ee7ff; stroke: #a0a0a0; stroke-width: 0.7; }
#RightJoycon .rail-sync { fill: #000000; stroke: #d0d0d0; stroke-width: 0.6; }
#RightJoycon .arrow { fill: none; stroke: #ffffff; stroke-width: 0.9; stroke-linejoin: round; }
#RightJoycon .joycon-side-buttons .button .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#RightJoycon .joycon-side-buttons .button[data-pressed="1"] .shape { fill: #aa0000; }
#Handheld .controller { stroke: black; stroke-opacity: 0.28; stroke-width: 1; }
#Handheld .handheld-bezel { fill: #2a2c30; stroke: none; }
#Handheld .handheld-bezel-outline { fill: none; stroke: #555; stroke-width: 0.8; }
#Handheld .screen { fill: #1a3a5c; stroke: none; }
#Handheld .rail-left, #Handheld .rail-right { fill: #c9ced6; }
#Handheld .tablet-bezel { fill: #35383e; stroke: black; stroke-opacity: 0.35; stroke-width: 1; }
#Handheld .tablet-screen { fill: #141619; stroke: #0a0b0c; stroke-width: 1; }
#Handheld .button .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#Handheld .button .label { fill: white; font-family: Arial, sans-serif; font-weight: bold; }
#Handheld .button .symbol { fill: white; }
#Handheld .button[data-pressed="1"] .shape { fill: #aa0000; }
#Handheld .button[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#Handheld .home .outer { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#Handheld .home .inner { fill: none; stroke: white; stroke-width: 1; }
#Handheld .home .house { fill: white; }
#Handheld .screenshot .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#Handheld .screenshot .symbol { fill: white; }
#Handheld .plus .shape, #Handheld .minus .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#Handheld .plus .symbol, #Handheld .minus .symbol { fill: white; }
#Handheld .cube { stroke: #000; stroke-width: 1.3; stroke-linejoin: miter; }
#Handheld .cube.face.front { fill: url(#hhFrontFaceGradient); fill-opacity: 1; }
#Handheld .cube.face.back { fill: url(#hhBackFaceGradient); fill-opacity: 1; }
#Handheld .cube.edge { stroke:#000; stroke-width:1; fill: none; }
#Handheld .trigger .shape { fill: #232629; stroke: #ccc; stroke-width: 1; }
#Handheld .trigger .label { fill: #ccc; }
#Handheld .trigger.L .shape { stroke-width: 2; }
#Handheld .trigger.R .shape { stroke-width: 2; }
#Handheld .trigger[data-pressed="1"] .shape { fill: #aa0000; }
#Handheld .trigger[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#Handheld .trigger[data-pressed="1"] .label { fill: white; }
#Handheld .joystick-range { stroke: #CCC; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#Handheld .joystick-deadzone { stroke: #CC0000; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#Handheld .joystick-dot-raw { fill: #AAEBFF; stroke: none; }
#Handheld .joystick-dot-calibrated { fill: #3BA55D; stroke: none; }
#Handheld .dpad .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#Handheld .left-stick-movable .shape { stroke: #CCC; stroke-width: 1; fill: #2c2c2c; }
#Handheld .left-stick-movable .line { stroke: #CCC; stroke-width: 1; fill: #2c2c2c; }
#Handheld .right-stick-movable .shape { stroke: #CCC; stroke-width: 1; fill: #2c2c2c; }
#Handheld .right-stick-movable .line { stroke: #CCC; stroke-width: 1; fill: #2c2c2c; }
#GCController .outline { stroke: #000; stroke-width: 1.5; }
#GCController .primary { fill: #ccc; }
#GCController .left-handle { fill: #ccc; }
#GCController .right-handle { fill: #ccc; }
#GCController .button .label { fill: white; }
#GCController .button .shape { fill: #2c2c2c; stroke: black; stroke-opacity: 0.5; stroke-width: 1; }
#GCController .button[data-pressed="1"] .shape { fill: #aa0000; }
#GCController .button[data-setting="1"] .shape { animation: flash 0.5s ease-in-out infinite; }
#GCController .trigger.L .shape{ fill: #222629; }
#GCController .trigger.L[data-pressed="1"] .shape{ fill: #aa0000; }
#GCController .ZR .shape { fill: #1a1b1e; }
#GCController .transparent { fill: none; }
#GCController .highlight { fill: #AA0000; }
#GCController .joystick-range { stroke: #CCC; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#GCController .joystick-deadzone { stroke: #CC0000; stroke-width: 2; stroke-dasharray: 1 3; fill: none; }
#GCController .joystick-dot-raw { fill: #AAEBFF; stroke: none; }
#GCController .joystick-dot-calibrated { fill: #3BA55D; stroke: none; }
#GCController .left-stick .outline { stroke: #979797; stroke-width: 1; fill: #DDD; }
#GCController .left-stick-movable .shape { stroke: #979797; stroke-width: 1; fill: #1a1b1e; }
#GCController .right-stick .outline { stroke: #979797; stroke-width: 1; fill: #DDD; }
#GCController .right-stick .outer-circle { fill: #1a1b1e; }
#GCController .right-stick .shape { stroke: #979797; stroke-width: 1; }
</style>
<body>
<div class="InputPage">
<PageNav id="MainTabNav" target="InputContents">
<Page contents="input_config_player.html" label="Player 1" Name="Player1" class="tab-button" />
<Page contents="input_config_player.html" label="Player 2" Name="Player2" class="tab-button" />
<Page contents="input_config_player.html" label="Player 3" Name="Player3" class="tab-button" />
<Page contents="input_config_player.html" label="Player 4" Name="Player4" class="tab-button" />
<Page contents="input_config_player.html" label="Player 5" Name="Player5" class="tab-button" />
<Page contents="input_config_player.html" label="Player 6" Name="Player6" class="tab-button" />
<Page contents="input_config_player.html" label="Player 7" Name="Player7" class="tab-button" />
<Page contents="input_config_player.html" label="Player 8" Name="Player8" class="tab-button" />
</PageNav>
<div id="InputContents"/>
</div>
<div class="footer">
<button role="window-ok">OK</button>
<button role="window-close">Cancel</button>
</div>
</body>
</html>