Update v1.1.0-beta.1
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2024-12-21 18:16:25 +01:00
parent f7658eca22
commit 51d11a6c36
20 changed files with 2688 additions and 935 deletions

View File

@@ -0,0 +1,387 @@
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
:root {
/* Light theme */
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
}
.dark {
/* Dark theme */
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
}
/* Base styles */
body {
font-family: 'Inter', sans-serif;
background-color: hsl(var(--background));
color: hsl(var(--foreground));
transition: background-color 0.3s ease, color 0.3s ease;
}
/* Tabs styling */
.tabs {
display: flex;
gap: 1rem;
border-bottom: 1px solid hsl(var(--border));
margin-bottom: 2rem;
overflow-x: auto;
padding-bottom: 0.5rem;
}
.tab {
padding: 0.75rem 1.5rem;
border-radius: var(--radius);
cursor: pointer;
transition: all 0.3s ease;
white-space: nowrap;
display: flex;
align-items: center;
gap: 0.5rem;
background: transparent;
color: hsl(var(--foreground));
border: none;
}
.tab:hover {
background-color: hsl(var(--accent));
color: hsl(var(--accent-foreground));
}
.tab.active {
background-color: hsl(var(--primary));
color: hsl(var(--primary-foreground));
}
.tab-content {
display: none;
}
.tab-content.active {
display: block;
animation: fadeIn 0.3s ease-out;
}
/* Cards styling */
.settings-card {
background-color: hsl(var(--card));
border: 1px solid hsl(var(--border));
border-radius: var(--radius);
padding: 1.5rem;
margin-bottom: 1.5rem;
}
.settings-card-header {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 1.5rem;
}
.settings-card-title {
font-size: 1.25rem;
font-weight: 600;
color: hsl(var(--card-foreground));
}
/* Form elements */
.form-group {
margin-bottom: 1.5rem;
}
.form-control {
width: 100%;
padding: 0.75rem;
border-radius: var(--radius);
border: 1px solid hsl(var(--border));
background-color: hsl(var(--background));
color: hsl(var(--foreground));
transition: border-color 0.3s ease;
}
.form-control:focus {
outline: none;
border-color: hsl(var(--ring));
box-shadow: 0 0 0 2px hsl(var(--ring) / 0.2);
}
/* Switch toggle */
.switch {
position: relative;
display: inline-block;
width: 3.5rem;
height: 2rem;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: hsl(var(--muted));
transition: .4s;
border-radius: 2rem;
}
.slider:before {
position: absolute;
content: "";
height: 1.5rem;
width: 1.5rem;
left: 0.25rem;
bottom: 0.25rem;
background-color: white;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider {
background-color: hsl(var(--primary));
}
input:checked + .slider:before {
transform: translateX(1.5rem);
}
/* Buttons */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.75rem 1.5rem;
border-radius: var(--radius);
font-weight: 500;
transition: all 0.3s ease;
cursor: pointer;
border: none;
}
.btn-primary {
background-color: hsl(var(--primary));
color: hsl(var(--primary-foreground));
}
.btn-secondary {
background-color: hsl(var(--secondary));
color: hsl(var(--secondary-foreground));
}
.btn-icon {
padding: 0.5rem;
border-radius: 50%;
}
/* IP List */
.ip-entry {
display: flex;
gap: 0.5rem;
margin-bottom: 0.5rem;
}
/* Path List */
.path-entry {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.5rem 1rem;
background-color: hsl(var(--secondary));
border-radius: var(--radius);
margin-bottom: 0.5rem;
}
/* Log Levels */
.log-level-btn {
padding: 0.5rem 1rem;
border-radius: var(--radius);
background-color: hsl(var(--secondary));
color: hsl(var(--secondary-foreground));
transition: all 0.3s ease;
}
.log-level-btn.active {
background-color: hsl(var(--primary));
color: hsl(var(--primary-foreground));
}
/* Fixed bottom bar */
.fixed-bottom-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 1rem;
background-color: hsl(var(--background));
border-top: 1px solid hsl(var(--border));
z-index: 50;
}
/* Theme switcher */
.theme-switcher {
position: fixed;
top: 1rem;
right: 1rem;
padding: 0.75rem;
border-radius: 50%;
background-color: hsl(var(--secondary));
color: hsl(var(--secondary-foreground));
cursor: pointer;
transition: all 0.3s ease;
z-index: 50;
}
.theme-switcher:hover {
background-color: hsl(var(--accent));
}
/* Nested settings */
.nested-settings {
margin-top: 1rem;
padding-left:padding-left: 1.5rem;
border-left: 2px solid hsl(var(--border));
animation: fadeIn 0.3s ease-out;
}
/* Animations */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeOut {
from {
opacity: 1;
transform: translateY(0);
}
to {
opacity: 0;
transform: translateY(-10px);
}
}
/* Responsive adjustments */
@media (max-width: 768px) {
.tabs {
flex-wrap: nowrap;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding-bottom: 0.5rem;
}
.tab {
padding: 0.5rem 1rem;
font-size: 0.875rem;
}
.settings-card {
padding: 1rem;
}
.fixed-bottom-bar {
padding: 0.75rem;
}
.btn {
padding: 0.5rem 1rem;
font-size: 0.875rem;
}
}
/* Dark mode adjustments */
.dark .form-control {
background-color: hsl(var(--input));
}
.dark .settings-card {
background-color: hsl(var(--card));
}
/* Utility classes */
.hidden {
display: none;
}
.animate {
animation: fadeIn 0.3s ease-out;
}
.fade-out {
animation: fadeOut 0.3s ease-out forwards;
}
/* Modal styles */
.modal-common-paths {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: hsl(var(--background));
border: 1px solid hsl(var(--border));
border-radius: var(--radius);
padding: 1.5rem;
max-width: 500px;
width: 90%;
max-height: 80vh;
overflow-y: auto;
z-index: 1000;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}