index.css
.settings-panel {
	position: relative;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	cursor: default;
	text-align: left;
	box-sizing: border-box;
	font-family: sans-serif;
	font-size: 1rem;
	width: 32em;
	max-width: 100%;
	padding: 1em;
}

.settings-panel [hidden] {
	display: none!important;
}

.settings-panel * {
	box-sizing: border-box;
}

.settings-panel svg {
	fill: currentColor;
	max-width: 100%;
	max-height: 100%;
	display: inline-block;
}

.settings-panel input,
.settings-panel button,
.settings-panel textarea,
.settings-panel select {
	font-family: inherit;
	font-size: inherit;
}

.settings-panel textarea {
	max-height: 8em;
}


.settings-panel a {
	color: inherit;
}

/** Basic layout */
.settings-panel-field {
	position: relative;
	padding: .25em;
	display: table;
	width: 100%;
}
.settings-panel-field:last-child {
	margin-bottom: 0;
}
.settings-panel-label {
	left: 0;
	display: table-cell;
	line-height: 1.2;
	vertical-align: baseline;
	padding-top: 0;
	max-width: 100%;
}
.settings-panel-input {
	display: table-cell;
	vertical-align: baseline;
	position: relative;
	white-space: nowrap;
}

.settings-panel-orientation-left .settings-panel-label {
	width: 9em;
	padding-right: .5em;
}
.settings-panel-orientation-right .settings-panel-label {
	display: block;
	margin-right: 0;
	float: right;
	width: 9em;
	padding-top: .4em;
	padding-left: .5em;
}
.settings-panel-orientation-right .settings-panel-label + .settings-panel-input {
	display: block;
	width: calc(100% - 9em);
}
.settings-panel-orientation-top .settings-panel-label {
	display: block;
	width: 100%;
	margin-right: 0;
	padding-top: 0;
	line-height: 1.5;
}
.settings-panel-orientation-top .settings-panel-label + .settings-panel-input {
	display: block;
	width: 100%;
	padding: 0;
}
.settings-panel-orientation-bottom .settings-panel-label {
	display: block;
	width: 100%;
	margin-right: 0;
	padding: 0;
	line-height: 1.5;
	border-top: 2.5em solid transparent;
}
.settings-panel-orientation-bottom .settings-panel-label + .settings-panel-input {
	width: 100%;
	position: absolute;
	top: 0;
}

.settings-panel-orientation-left > .settings-panel-label {
	width: 9em;
	display: table-cell;
}

.settings-panel-title {
	font-size: 1.6em;
	line-height: 1.25;
	margin-top: 0;
	margin-bottom: 0;
	padding: .25em .25em;
	text-align: center;
}
.settings-panel--collapsible .settings-panel-title {
	cursor: pointer;
}
.settings-panel--collapsed > *:not(.settings-panel-title) {
	display: none!important;
}


/** Button */
.settings-panel-field--button {
	display: inline-block;
}
.settings-panel-field--button .settings-panel-input {
	display: block;
	text-align: center;
}
.settings-panel-button {
	vertical-align: baseline;
	line-height: 1;
	min-height: 2em;
	padding: .2em 1em;
	width: 100%;
	cursor: pointer;
}


/** Default text and alike style */
.settings-panel-text {
	height: 2em;
	width: 100%;
	vertical-align: baseline;
}
.settings-panel-textarea {
	width: 100%;
	display: block;
	vertical-align: top; /* allowable as we use autoheight */
	min-height: 2em;
}

/** Checkbox style */
.settings-panel-field--checkbox .settings-panel-input {
	line-height: 2em;
}
.settings-panel-checkbox-group {
	border: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	-o-appearance: none;
	appearance: none;
	margin: 0;
	padding: 0;
	white-space: normal;
}
.settings-panel-checkbox {
	display: inline-block;
	vertical-align: middle;
	width: 1.2em;
	height: 1.2em;
	line-height: 1.2em;
	margin: -.15em .25em 0 0;
}
.settings-panel-checkbox-label {
	display: inline-block;
	vertical-align: baseline;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	line-height: 1.2;
	margin-right: 1em;
}
.settings-panel-checkbox-group .settings-panel-checkbox-label:last-child {
	margin-right: 0;
}


/** Color picker style */
.settings-panel-color {
	position: relative;
	width: 2em;
	height: 2em;
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
}
.settings-panel-color-value {
	width: 100%;
	height: 2em;
	padding: 0 0 0 2.5em;
}
.settings-panel .Scp {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	position: absolute;
	z-index: 10;
	cursor: pointer;
	bottom: -120px;
}
.settings-panel .Scp-saturation {
	position: relative;
	width: calc(100% - 25px);
	height: 100%;
	background: linear-gradient(to right, #fff 0%, #f00 100%);
	float: left;
}
.settings-panel .Scp-brightness {
	width: 100%;
	height: 100%;
	background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);
}
.settings-panel .Scp-sbSelector {
	border: 1px solid;
	position: absolute;
	width: 14px;
	height: 14px;
	background: #fff;
	border-radius: 10px;
	top: -7px;
	left: -7px;
	box-sizing: border-box;
	z-index: 10;
}
.settings-panel .Scp-hue {
	width: 20px;
	height: 100%;
	position: relative;
	float: left;
	background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);
}
.settings-panel .Scp-hSelector {
	position: absolute;
	background: #fff;
	border-bottom: 1px solid #000;
	right: -3px;
	width: 10px;
	height: 2px;
}



/** Interval style */
.settings-panel-interval {
	position: relative;
	-webkit-appearance: none;
	display: inline-block;
	vertical-align: top;
	height: 2em;
	margin: 0px 0;
	width: 70%;
	background: #ddd;
	cursor: ew-resize;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
.settings-panel-interval-handle {
	background: #7a4;
	position: absolute;
	top: 0;
	bottom: 0;
	min-width: 1px;
}
.settings-panel.settings-panel-interval-dragging * {
	-webkit-touch-callout: none !important;
	-webkit-user-select: none !important;
	-khtml-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
	user-select: none !important;

	cursor: ew-resize !important;
}

.settings-panel-interval + .settings-panel-value {
	right: 0;
	padding-left: .5em;
}



/** Select style */
.settings-panel-select {
	display: inline-block;
	width: 100%;
	height: 2em;
	vertical-align: baseline;
}

/** Value style */
.settings-panel-value {
	-webkit-appearance: none;
	-moz-appearance: none;
	-o-appearance: none;
	appearance: none;
	min-width: 3em;
	padding: 0 0 0 0em;
	display: inline-block;
	vertical-align: baseline;
	cursor: text;
	height: 2em;
	border: none;
	border-radius: 0;
	outline: none;
	font-family: inherit;
	background: none;
	color: inherit;
	width: 15%;
}
.settings-panel-value:focus {
	outline: 0;
	box-shadow: 0;
}
.settings-panel-value-tip {
	display: none;
}

/** Range style */
.settings-panel-range {
	width: 85%;
	padding: 0;
	margin: 0px 0;
	height: 2em;
	vertical-align: top;
}
.settings-panel-range + .settings-panel-value {
	padding-left: .5em;
	width: 15%;
}

.settings-panel-switch {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	display: block;
	vertical-align: baseline;
	padding: 0;
	margin: 0;
	line-height: 2em;
}
.settings-panel-switch-input {
	margin: 0;
	vertical-align: middle;
	width: 1.2em;
	height: 1.2em;
	cursor: pointer;
	margin-right: .25em;
}
.settings-panel-switch-label {
	display: inline-block;
	vertical-align: baseline;
	line-height: 1.2;
	margin-right: 1em;
}


.settings-panel hr {
	border: none;
	height: 0;
	margin: .5em 0;
	border-bottom: 1px dotted;
}

.settings-panel-field--disabled {
	opacity: .5;
	pointer-events: none;
}
