Added basic control panel

This commit is contained in:
2026-03-11 16:46:06 +01:00
parent 7df210aaf2
commit c4eedfff1e
105 changed files with 21923 additions and 958 deletions

View File

@@ -0,0 +1,183 @@
.ntsh-outofservicemode {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 20px;
margin-top: 30px;
}
.ntsh-timer {
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 10px;
margin-top: 30px;
.ntsh-timer-row {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 20px;
h4 {
width: 85px;
}
input[type="time"] {
position: relative;
padding: 10px;
border: 2px solid #000;
font-weight: 500;
transition-duration: 0.2s;
cursor: pointer;
font-size: 20px;
&::-webkit-calendar-picker-indicator {
background: transparent;
bottom: 0;
color: transparent;
cursor: pointer;
height: auto;
left: 0;
position: absolute;
right: 0;
top: 0;
width: auto;
}
}
}
}
.ntsh-autolighting {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 20px;
margin: 30px 0px;
}
.ntsh_lightingsettings-container {
width: 100%;
&.disabled {
opacity: .3;
pointer-events: none;
}
h3 {
margin-bottom: 10px;
}
.ntsh_lightingsettings {
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 5px;
.ntsh_lightingsettings-row {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 20px;
h4 {
width: 120px;
}
input {
position: relative;
padding: 10px;
border: 2px solid #000;
font-weight: 500;
transition-duration: 0.2s;
cursor: pointer;
font-size: 20px;
&::-webkit-calendar-picker-indicator {
background: transparent;
bottom: 0;
color: transparent;
cursor: pointer;
height: auto;
left: 0;
position: absolute;
right: 0;
top: 0;
width: auto;
}
}
}
}
}
.ntsh_soundsettings {
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 5px;
&.disabled {
opacity: .3;
pointer-events: none;
}
.ntsh_soundsettings-row {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 20px;
h4 {
width: 120px;
}
input {
padding: 10px;
border: 2px solid #000;
font-weight: 500;
transition-duration: 0.2s;
cursor: pointer;
font-size: 20px;
&::-webkit-calendar-picker-indicator {
background: transparent;
bottom: 0;
color: transparent;
cursor: pointer;
height: auto;
left: 0;
position: absolute;
right: 0;
top: 0;
width: auto;
}
}
}
}
.ntsh_soundsettings-resetcontainer {
width: 100%;
display: flex;
justify-content: flex-end;
margin-bottom: 30px;
.ntsh_soundsettings-reset {
padding: 10px 20px;
border: 2px solid #000;
font-weight: 500;
transition-duration: .2s;
cursor: pointer;
&:hover {
background: #d7ccc1;
}
}
}

View File

@@ -0,0 +1,70 @@
.ntsh-checklist {
width: 100%;
margin: 30px 0px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 10px;
.ntsh-checklist-row {
width: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
gap: 10px;
.ntsh-checklist-row-status {
width: 20px;
height: 20px;
margin: 0px 10px;
border-radius: 100%;
background: #00000024;
flex-shrink: 0;
&.GREEN {
background: #1db100;
}
&.RED {
background: #b10000;
}
&.YELLOW {
background: #b1a100;
}
&.GRAY {
background: #d5c7ba;
}
}
.ntsh-checklist-row-text {
flex-grow: 1;
}
.ntsh-checklist-row-buttons {
display: flex;
flex-direction: column;
gap: 3px;
.ntsh-checklist-row-button {
align-self: stretch;
display: none;
padding: 5px 10px;
border: 2px solid #000;
font-weight: 500;
transition-duration: 0.2s;
cursor: pointer;
font-size: 12px;
text-align: center;
&:hover {
background: #d7ccc1;
}
}
}
}
}

View File

@@ -0,0 +1,60 @@
.ntsh-fullreboot {
width: 100%;
display: flex;
justify-content: center;
.ntsh-fullreboot-button {
padding: 20px;
border: 2px solid #000;
font-weight: 500;
transition-duration: 0.2s;
cursor: pointer;
background: #ff644e;
font-size: 25px;
font-weight: 800;
letter-spacing: -1px;
&:hover {
background: #be4939;
}
}
}
.ntsh-support {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
gap: 20px;
margin-top: 30px;
img {
height: 50px;
cursor: pointer;
transition-duration: .2s;
&:hover {
filter: brightness(.8);
}
}
}
.ntsh-calibration {
width: 100%;
margin: 30px 0px;
img {
width: 100%;
}
}
.ntsh_callanchor {
width: 100%;
display: block;
background: #454545;
text-align: center;
padding: 10px 00px;
font-size: 40px;
color: #fff;
}

View File

@@ -0,0 +1,75 @@
@use '../node_modules/morphux/style.css';
@use './topbar.scss';
@use './checklist.scss';
@use './text.scss';
@use './switch.scss';
@use './home.scss';
@use './advanced.scss';
@font-face {
font-family: Roboto;
src: url(/font/Roboto-VariableFont_wdth,wght.ttf) format('truetype');
}
@font-face {
font-family: ScothBrace;
src: url(/font/ScothBrace.ttf) format('truetype');
}
@font-face {
font-family: RidleyGrotesk;
src: url(/font/RidleyGrotesk-Bold.otf) format('opentype');
font-weight: bold;
}
@font-face {
font-family: RidleyGrotesk;
src: url(/font/RidleyGrotesk-Regular.otf) format('opentype');
font-weight: normal;
}
body {
position: absolute;
inset: 0px;
margin: 0px;
padding: 0px;
color: #000;
font-family: RidleyGrotesk, sans-serif;
background: #E1EAF6;
}
.ntsh {
position: absolute;
inset: 0px;
overflow-y: scroll;
.ntsh-wrapper {
width: 100%;
min-height: 100%;
background: linear-gradient(0deg, #E1EAF6, #F9E7D6);
.ntsh-inlay {
width: min(800px, calc(100% - 40px));
margin: 0 auto;
}
}
}
.ntsh_tabs {
width: 100%;
.ntsh_tab {
width: 100%;
display: none;
&.visible {
display: block;
}
}
}
.ntsh-separator {
width: 100%;
border-bottom: 10px dotted #000;
margin: 30px 0px;
}

View File

@@ -0,0 +1,61 @@
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
/* Hide default HTML checkbox */
.switch input {
opacity: 0;
width: 0;
height: 0;
}
/* The slider */
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked+.slider {
background-color: #2bc038;
}
input:focus+.slider {
box-shadow: 0 0 1px #2bc038;
}
input:checked+.slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

View File

@@ -0,0 +1,27 @@
h1 {
font-size: 45px;
margin: 0px;
font-weight: 600;
}
h2 {
font-size: 24px;
margin: 0px 0px 5px 0px;
}
h3 {
font-size: 22px;
margin: 0px;
font-weight: 400;
}
h4 {
font-size: 14px;
margin: 0px;
}
p {
font-size: 14px;
margin: 0px;
}

View File

@@ -0,0 +1,30 @@
.ntsh-topbar {
.ntsh_menubar {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30px;
.ntsh_menubar-item {
padding: 10px 20px;
border: 2px solid #000;
font-weight: 500;
transition-duration: .2s;
cursor: pointer;
&:hover {
background: #d7ccc1;
}
&.selected {
pointer-events: none;
opacity: .3;
}
}
}
img {
width: 100%;
}
}