Files
cap/standalone/public/index.css
T

825 lines
14 KiB
CSS

* {
box-sizing: border-box;
}
body {
background-color: #161718;
color: white;
display: flex;
max-height: 100vh;
height: 100vh;
margin: 0px;
padding: 0px;
flex-direction: column;
font-family: InterVariable, system-ui, -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell,
"Open Sans", "Helvetica Neue", sans-serif;
}
nav {
padding: 0.8em 1.5rem;
display: flex;
align-items: center;
gap: 0.5rem;
padding-bottom: 0px;
user-select: none;
}
nav .logo {
display: flex;
align-items: center;
cursor: pointer;
border: none;
font-family: inherit;
font-size: inherit;
background-color: transparent;
padding: 0px;
margin-right: auto;
transition: opacity 0.15s;
}
nav .logo img {
width: 28px;
height: 28px;
margin-right: 8px;
}
nav .logo p {
margin: 0px;
color: rgb(248, 248, 248);
opacity: 0;
margin-left: -5px;
transition: margin-left 0.15s, opacity 0.15s;
pointer-events: none;
filter: blur(1px);
}
nav .logo:hover p {
opacity: 1;
margin-left: 0px;
filter: none;
pointer-events: all;
}
nav .logo:active {
opacity: 0.6;
}
nav .settings {
font-size: inherit;
cursor: pointer;
background-color: transparent;
padding: 0px;
border: none;
color: rgb(248, 248, 248);
opacity: 0.6;
display: flex;
align-items: center;
justify-content: center;
transition: opacity 0.15s;
}
nav .settings:hover {
opacity: 1;
}
nav .logout {
font-family: inherit;
margin-left: auto;
font-size: inherit;
cursor: pointer;
background-color: transparent;
padding: 0px;
border: none;
color: rgb(248, 248, 248);
opacity: 0.6;
transition: opacity 0.15s;
}
nav .logout:hover {
opacity: 1;
}
.state-loading {
max-height: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
gap: 0.8em;
}
.state-loading svg {
width: 30px;
height: 30px;
}
.state-homepage {
max-width: 520px;
flex-direction: column;
margin: 2em auto;
width: 100%;
padding: 0px 0.5rem;
}
.state-homepage h1 {
font-size: 1.5em;
font-weight: 600;
}
.state-homepage .keys-top {
border: 1px solid #1f1f1f;
border-radius: 12px;
background-color: #161616;
height: 46px;
display: flex;
transition: border 0.15s;
}
.state-homepage .keys-top input {
font-size: 15px;
font-family: inherit;
background-color: transparent;
color: inherit;
border: none;
height: 100%;
width: 100%;
padding-left: 1em;
}
.state-homepage .keys-top input:focus {
outline: none;
}
.state-homepage .keys-top:has(input:focus) {
border: 1px solid #3f3f3f;
}
.state-homepage .keys-top .create-key {
width: fit-content;
display: flex;
align-items: center;
margin: 4px;
border-radius: 7px;
border: none;
background-color: #056dff;
color: white;
font-family: inherit;
cursor: pointer;
white-space: nowrap;
padding: 0px 10px;
font-weight: 450;
font-size: 14px;
transition: transform 0.15s, background-color 0.15s, box-shadow 0.15s;
}
.state-homepage .keys-top .create-key svg {
width: 18px;
height: 18px;
margin-right: 4px;
}
.state-homepage .keys-top .create-key:hover {
background-color: #094cb2;
}
.state-homepage .keys-top .create-key:active {
transform: scale(0.97);
}
.state-homepage .keys-top .create-key:focus {
box-shadow: 0px 0px 0px 2px rgba(0, 122, 255, 0.5);
}
.keys-list.no-keys p {
text-align: center;
opacity: 0.8;
font-size: 15px;
margin-top: 20px;
}
.modal {
position: fixed;
inset: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
animation: fadeIn 0.15s ease-in-out;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.modal-content {
background-color: #212121;
border-radius: 10px;
max-width: 400px;
width: 90%;
color: white;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
animation: scaleIn 0.15s ease-in-out;
}
@keyframes scaleIn {
from {
transform: scale(0.98);
}
to {
transform: scale(1);
}
}
.modal-content header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 1em;
border-bottom: 1px solid #323232;
padding: 12px 16px;
}
.modal-content header h2 {
margin: 0;
font-size: 17px;
font-weight: 500;
}
.modal-content header .close-button {
background: transparent;
border: none;
color: white;
cursor: pointer;
padding: 0px;
}
.modal .content {
padding: 12px 16px;
padding-top: 0px;
line-height: 1.4;
}
.modal-content input[type="text"] {
width: 100%;
padding: 0.6em 0.7em;
margin-top: 8px;
border-radius: 8px;
font-size: 15px;
box-shadow: inset 0 0 0 1px color(display-p3 0.9608 0.9608 1 / 0.242);
color: #eee;
border: none;
background-color: transparent;
font-family: inherit;
margin-bottom: 8px;
text-overflow: ellipsis;
transition: box-shadow 0.15s;
}
.modal-content input[type="text"]:focus {
text-overflow: unset;
box-shadow: 0px 0px 0px 2px rgba(255, 255, 255);
outline: none;
}
.modal-content label {
font-weight: 500;
font-size: 14px;
}
.modal-content button.primary {
border: none;
border-radius: 8px;
background-color: #056dff;
color: white;
font-size: 15px;
cursor: pointer;
font-family: inherit;
height: 36px;
font-weight: 500;
display: flex;
align-items: center;
justify-content: center;
margin: 16px;
width: calc(100% - 32px);
margin-top: 0px;
transition: opacity 0.15s, background-color 0.15s;
}
.modal-content button.primary.secondary {
background: rgba(255, 255, 255, 0.1);
color: white;
}
.modal-content button.primary:hover {
opacity: 0.8;
}
.modal-content button.primary:active {
opacity: 0.5;
}
.modal-content button.primary:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.key-created-header {
display: flex;
gap: 11px;
margin-bottom: 2px;
}
.key-created-header svg {
width: 40px;
height: 40px;
}
.key-created-header h3 {
margin-top: 10px;
font-weight: 500;
}
.modal-content p.small-text {
line-height: 1.4;
font-size: 14px;
max-width: 90%;
opacity: 0.9;
margin-top: 2px;
margin-bottom: 4px;
}
.keys-list {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 12px;
}
.keys-list .key {
border: 1px solid #1f1f1f;
border-radius: 8px;
background-color: #161616;
display: flex;
gap: 6px;
height: 68px;
cursor: pointer;
user-select: none;
}
.key .key-text {
padding-left: 14px;
display: flex;
flex-direction: column;
justify-content: center;
width: 100%;
}
.key .key-text h2 {
font-size: 17px;
font-weight: 500;
text-overflow: ellipsis;
overflow: hidden;
margin: 0px;
}
.key .key-text p {
margin-bottom: 0px;
margin-top: 4px;
font-size: 14px;
color: rgba(255, 255, 255, 0.5);
font-weight: 300;
}
.key .key-text p b {
color: rgba(255, 255, 255, 0.7);
font-weight: 500;
}
.key .key-actions {
display: flex;
align-items: center;
gap: 4px;
margin-right: 14px;
}
.key .key-actions button {
width: 38px;
height: 38px;
border-radius: 100px;
border: none;
background: transparent;
color: white;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.key:focus,
.key:active,
.key:has(button:focus) {
box-shadow: 0px 0px 0px 3px rgba(255, 255, 255, 0.5);
}
.state-key-page {
flex-direction: column;
max-width: 800px;
width: 100%;
margin: 2em auto;
padding: 0px 0.5rem;
padding-bottom: 4em;
}
.state-key-page .chart-container {
width: 100%;
height: 380px;
border: 1px solid #e3e4e810;
background-color: #191A1C;
padding: 15px;
border-radius: 12px;
}
.state-key-page .topbar {
display: flex;
gap: 4px;
align-items: center;
margin-bottom: 18px;
}
.state-key-page .topbar .left {
display: flex;
gap: 12px;
align-items: center;
}
.state-key-page .topbar .left h1 {
font-size: 23px;
margin: 0px;
font-weight: 500;
}
.state-key-page .topbar .left button {
border-radius: 6px;
color: rgba(255, 255, 255, 0.85);
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.05);
padding: 0.4em 0.6em;
font-family: inherit;
cursor: pointer;
display: flex;
align-items: center;
gap: 6px;
}
.state-key-page .topbar .left button:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.state-key-page .topbar .left button:focus {
box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5);
}
.state-key-page .topbar .right {
margin-left: auto;
}
.state-key-page .time-duration {
border: none;
border-radius: 6px;
color: white;
background-color: #161718;
padding: 0px;
font-family: inherit;
cursor: pointer;
}
.state-key-page .time-duration:focus {
outline: none;
}
.state-key-page h2 {
font-size: 18px;
margin: 0px;
font-weight: 600;
margin-top: 20px;
margin-bottom: 10px;
}
.danger-zone-buttons button {
color: white;
background-color: rgba(255, 255, 255, 0.05);
font-family: inherit;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.05);
padding: 0.5em 1em;
cursor: pointer;
}
.danger-zone-buttons button:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.danger-zone-buttons button:focus {
box-shadow: 0px 0px 0px 3px rgba(255, 255, 255, 0.37);
outline: none;
}
.danger-zone-buttons button:disabled {
opacity: 0.5;
pointer-events: none;
}
.config input {
width: 100%;
padding: 0.6em 0.7em;
margin-top: 8px;
border-radius: 8px;
font-size: 15px;
border: none;
box-shadow: inset 0 0 0 1px color(display-p3 0.9608 0.9608 1 / 0.242);
color: #eee;
background-color: transparent;
font-family: inherit;
margin-bottom: 8px;
text-overflow: ellipsis;
max-width: 300px;
display: block;
}
.config input:focus {
text-overflow: unset;
box-shadow: 0px 0px 0px 2px white;
outline: none;
}
.config label {
font-weight: 500;
font-size: 14px;
}
.config .config-item {
margin-bottom: 16px;
}
.config button {
border: none;
border-radius: 8px;
background-color: white;
color: black;
font-size: 15px;
cursor: pointer;
transition: background-color 0.15s;
font-family: inherit;
height: 36px;
font-weight: 500;
display: flex;
align-items: center;
justify-content: center;
padding: 0px 16px;
}
.config button:hover {
opacity: 0.8;
}
.config button:focus {
box-shadow: 0px 0px 0px 3px rgba(255, 255, 255, 0.37);
}
.config button:disabled {
opacity: 0.4;
pointer-events: none;
}
.keypage-back {
display: flex;
align-items: center;
border: none;
padding: 0px;
background-color: transparent;
color: white;
font-family: inherit;
font-size: 16px;
margin-bottom: 10px;
opacity: 0.63;
margin-left: -6px;
cursor: pointer;
width: fit-content;
transition: opacity 0.15s;
}
.keypage-back:hover {
opacity: 1;
}
.keypage-back:active {
opacity: 0.58;
}
.keypage-back svg {
transition: margin-left 0.15s, margin-right 0.15s;
}
.keypage-back:hover svg {
margin-left: -2px;
margin-right: 2px;
}
.state-settings {
flex-direction: column;
max-width: 800px;
width: 100%;
margin: 2em auto;
padding: 0px 0.5rem;
padding-bottom: 4em;
}
.state-settings {
flex-direction: column;
max-width: 700px;
width: 100%;
margin: 2em auto;
padding: 0px 0.5rem;
padding-bottom: 4em;
}
.state-settings h1 {
margin-top: 0px;
font-size: 27px;
margin-bottom: 20px;
font-weight: 600;
}
.state-settings h2 {
font-weight: 500;
font-size: 22px;
margin: 0px;
}
.sessions-list,
.apikeys-list {
display: flex;
flex-direction: column;
gap: 12px;
margin-top: 13px;
margin-bottom: 22px;
}
.sessions-list .session,
.apikeys-list .apikey {
border: 1px solid #1f1f1f;
border-radius: 8px;
background-color: #161616;
display: flex;
gap: 6px;
height: 80px;
align-items: center;
}
.apikeys-list p {
margin: 0px;
}
.about-info {
line-height: 1.5;
color: #eee;
}
.about-info b {
color: white;
font-weight: 500;
}
.about-button {
display: inline-flex;
align-items: center;
gap: 6px;
margin-top: 8px;
color: white;
text-decoration: none;
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.2);
width: fit-content;
padding: 0.4em 0.6em;
transition: opacity 0.15s;
border-radius: 6px;
animation: abtbtn 1s ease-in-out;
box-shadow: rgb(0 0 0 / 9%) 0px 8px 24px;
}
.about-button:hover {
background-color: rgba(255, 255, 255, 0.02);
}
.about-button:focus {
box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5);
}
.nano-github-button {
display: inline-flex;
align-items: center;
gap: 6px;
opacity: 0.2;
text-decoration: none;
width: fit-content;
transition: opacity 0.15s;
font-size: 14px;
color: white;
margin-top: 2em;
border-radius: 6px;
animation: abtbtn 1s ease-in-out;
}
.nano-github-button:hover {
opacity: 0.5;
}
.nano-github-button:focus {
box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5);
}
.session .session-info,
.apikey .apikey-info {
display: flex;
flex-direction: column;
justify-content: center;
padding: 12px 16px;
}
.session-token,
.apikey-token {
margin-bottom: 5px;
font-weight: 500;
}
.session-expires,
.apikey-created {
opacity: 0.93;
font-size: 14px;
}
.session .session-delete-button,
.apikey .apikey-delete-button {
border-radius: 6px;
color: rgba(255, 255, 255, 0.85);
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.05);
padding: 0.4em 0.6em;
font-family: inherit;
cursor: pointer;
margin-left: auto;
margin-right: 16px;
}
.session .session-delete-button:hover,
.apikey .apikey-delete-button:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.session .session-delete-button:focus,
.apikey .apikey-delete-button:focus {
box-shadow: 0px 0px 0px 2px white;
}
.apikeys-title {
display: flex;
gap: 8px;
align-items: center;
}
.apikeys-title button {
border: none;
border-radius: 6px;
background-color: #056dff;
color: white;
padding: 0.4em 0.6em;
font-family: inherit;
cursor: pointer;
margin-left: auto;
margin-right: 16px;
display: flex;
align-items: center;
gap: 6px;
transition: opacity 0.15s;
}
.apikeys-title button:hover {
opacity: 0.8;
}
.apikeys-title button:focus {
box-shadow: 0px 0px 0px 2px rgba(0, 122, 255, 0.5);
}
@font-face {
font-family: InterVariable;
src: url("./assets/InterVariable.woff2");
}