Files
nutty-tools/.common/styles/global.css
T

492 lines
8.2 KiB
CSS

/*****************/
/*** VARIABLES ***/
/*****************/
:root {
--domain: nutty;
--background-color: #181818;
--accent-color: #2196f3;
--success-color: #3be477;
--confirm-flash: #3be47680;
--button-color: #2e2e2e;
--dialog-background: #1d1d1d;
--callout-background: #181818;
--error-background: #a82d2e33;
--error-color: #c65e5e;
--mandatory-field-color: #c93f3f;
--error-text-color: #c93f3f;
--danger-color: #c93f3f;
--blur-intensity: 20px;
}
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');
html,
body {
margin: 0;
padding: 0;
font-family: Inter, system-ui, sans-serif;
/* font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif; */
/* font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif; */
color: white;
background-color: var(--background-color);
}
/************/
/*** TEXT ***/
/************/
.title {
font-weight: 900;
font-size: 1.2em;
text-transform: uppercase;
}
.field {
display: flex;
flex-direction: column;
gap: 0.5em;
}
.setting-label {
font-weight: 500;
}
.setting-description {
font-size: 0.9em;
font-weight: 100;
}
.setting-attribute {
font-size: 0.8em;
font-weight: 200;
}
.time-pill {
background-color: #333;
color: #ccc;
border-radius: 1em;
padding: 0.2em 0.5em;
font-size: 0.8em;
font-weight: 200;
display: inline-block;
white-space: nowrap;
}
/***************/
/*** DIVIDER ***/
/***************/
.divider {
border: none;
/* border-top: 0.1px solid #444444; */
margin: 0.3em 0;
}
/***************/
/*** BUTTONS ***/
/***************/
button {
font-size: 1em;
font-weight: 600;
background-color: var(--button-color);
color: white;
opacity: 0.8;
border-width: 0;
border-radius: 0.5em;
border: 1px solid #404040;
padding: 0.5em 1em;
width: 100%;
transition: all 0.2s ease-in-out;
display: flex;
align-items: center;
justify-content: center;
}
button:hover {
opacity: 1;
cursor: pointer;
}
button:disabled {
opacity: 0.3;
cursor: not-allowed;
}
.icon-button {
width: 1em;
height: 1em;
background: transparent;
border: none;
font-size: 1.1em;
padding: 1em;
border-radius: 50%;
}
.icon-button:hover {
background: var(--button-color);
}
/************************/
/*** INPUT TEXT BOXES ***/
/************************/
textarea,
input {
font-family: inherit;
border-radius: 0.5em;
width: auto;
padding: 0.5em;
background-color: #171717;
border: none;
outline: 1px solid #404040;
color: white;
font-size: 0.9em;
transition: 0.2s;
}
textarea:disabled,
input:disabled {
opacity: 0.5;
}
textarea:focus,
input:focus,
select:focus {
outline: 1px solid var(--accent-color);
}
textarea {
resize: vertical;
}
.textarea-description {
min-height: 10em;
}
textarea::-webkit-resizer {
display: none;
}
/***********************/
/*** SLIDER SWITCHES ***/
/***********************/
/* Switch styling */
.switch {
position: relative;
display: inline-block;
width: 3em;
height: 1.5em;
font-size: 1em;
overflow: hidden;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
transition: 0.4s;
}
.slider:before {
position: absolute;
content: "";
height: 1.1em;
width: 1.1em;
left: 0.2em;
top: 50%;
transform: translateY(-50%);
background-color: white;
transition: 0.4s;
}
input:checked+.slider {
background-color: var(--accent-color);
}
input:focus+.slider {
box-shadow: 0 0 1px var(--accent-color);
}
input:checked+.slider:before {
transform: translate(1.5em, -50%);
/* move knob across, stay centered */
}
/* Rounded sliders */
.slider.round {
border-radius: 1.5em;
}
.slider.round:before {
border-radius: 50%;
}
/******************/
/*** SCROLLBARS ***/
/******************/
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #2c2c2c;
/* Color of the tracking area */
}
::-webkit-scrollbar-thumb {
background-color: #9f9f9f;
/* Color of the scroll thumb */
border-radius: 4px;
/* Roundness of the scroll thumb */
border: none;
}
::-webkit-scrollbar-thumb:hover {
background-color: #d1d1d1;
/* Color of the scroll thumb on hover */
}
/***************/
/*** IFRAMES ***/
/***************/
iframe {
border-width: 0px;
}
/***************/
/*** CALLOUT ***/
/***************/
.callout {
font-size: 0.9em;
font-weight: 100;
background-color: var(--callout-background);
display: flex;
flex-direction: column;
gap: 1em;
padding: 1em;
border-radius: 0.5em;
border: 1px solid #40404080;
}
/**************/
/*** DIALOG ***/
/**************/
.dialog-wrapper {
position: fixed;
width: 100%;
height: 100%;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
z-index: 1000;
backdrop-filter: blur(var(--blur-intensity));
}
.dialog {
font-size: 1em;
background-color: var(--dialog-background);
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
display: flex;
flex-direction: column;
gap: 1em;
padding: 1em;
border-radius: 0.5em;
border: 1px solid #40404080;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
z-index: 1000;
backdrop-filter: blur(var(--blur-intensity));
}
.dialog-nav-button {
background: transparent;
border: none;
font-size: 1.5em;
font-weight: 100;
padding: 0em;
width: 1em;
height: 1em;
position: absolute;
position: fixed;
/* fixed to viewport */
top: 0.5em;
/* small offset from top */
right: 0.5em;
/* small offset from right */
}
.dialog-nav-button:hover {
background: var(--button-color);
}
/******************/
/*** BLUR LAYER ***/
/******************/
.blur {
position: fixed;
inset: 0;
/* top:0; left:0; bottom:0; right:0 */
backdrop-filter: blur(10px);
/* blur the content behind */
-webkit-backdrop-filter: blur(10px);
/* Safari support */
z-index: 1;
/* behind the modal */
}
/***************/
/*** SELECTS ***/
/***************/
select {
padding: 0.5em;
font-size: 0.9em;
border-radius: 0.5em;
border: none;
outline: 1px solid #404040;
background-color: var(--callout-background);
color: #fff;
cursor: pointer;
min-width: 8em;
}
/***************/
/*** SIDEBAR ***/
/***************/
#sidebar {
position: fixed;
top: 0;
left: 0;
width: 250px;
/* expanded width */
height: 100vh;
color: #fff;
overflow: hidden;
transition: width 0.3s ease;
backdrop-filter: blur(var(--blur-intensity));
/* <-- adds the blur */
box-shadow: 0 0 10px rgba(0, 0, 0, 1);
}
#sidebar.collapsed {
width: 3em;
/* collapsed width */
}
#sidebar button {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 0.5em;
padding: 0.5em 1em;
border-radius: 0;
}
#sidebar .sidebar-menu {
opacity: 1;
transition: opacity 0.3s ease;
}
#sidebar.collapsed .sidebar-menu {
opacity: 1;
}
#collapse-sidebar-btn {
width: 100%;
background: none;
border: none;
color: #fff;
cursor: pointer;
justify-content: flex-end !important;
}
.sidebar-item {
padding: 0.75em 1em;
text-align: left;
background: none;
border: none;
color: inherit;
font-size: 1em;
cursor: pointer;
white-space: nowrap;
/* prevent line breaks */
overflow: hidden;
/* hide overflow text */
text-overflow: ellipsis;
/* optional: show "..." if needed */
}
#sidebar.collapsed .sidebar-item {
justify-content: center;
padding: 0.75em 0;
}
.sidebar-label {
display: inline-block;
}
#sidebar.collapsed .sidebar-label {
display: none;
}
.sidebar-item svg {
width: 1em;
height: 1em;
flex-shrink: 0;
}
.sidebar-spacer {
flex: 1;
}
.sidebar-item:hover {
background-color: #333;
}