- {$ lastRun $}
+ {$ lastRun $}
{$ allSites $}
-
+
diff --git a/backup/templates/backup/oneClickBackups.html b/backup/templates/backup/oneClickBackups.html
index 2d10a4d51..829d64db9 100644
--- a/backup/templates/backup/oneClickBackups.html
+++ b/backup/templates/backup/oneClickBackups.html
@@ -23,7 +23,7 @@
text-align: center;
margin-bottom: 3rem;
padding: 3rem 0;
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
border-radius: 20px;
animation: fadeInDown 0.5s ease-out;
}
@@ -31,7 +31,7 @@
.page-title {
font-size: 3rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 1rem;
display: flex;
align-items: center;
@@ -41,7 +41,7 @@
.page-subtitle {
font-size: 1.25rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-bottom: 1.5rem;
max-width: 600px;
margin-left: auto;
@@ -56,7 +56,7 @@
}
.btn-primary {
- background: #5b5fcf;
+ background: var(--accent-color, #5b5fcf);
color: white;
border: none;
padding: 0.875rem 2.25rem;
@@ -72,7 +72,7 @@
}
.btn-primary:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(91, 95, 207, 0.4);
color: white;
@@ -80,8 +80,8 @@
.btn-secondary {
background: #fff;
- color: #5b5fcf;
- border: 1px solid #e8e9ff;
+ color: var(--accent-color, #5b5fcf);
+ border: 1px solid var(--border-color, #e8e9ff);
padding: 0.875rem 2.25rem;
border-radius: 10px;
font-weight: 500;
@@ -95,16 +95,16 @@
}
.btn-secondary:hover {
- background: #f8f9ff;
- border-color: #5b5fcf;
+ background: var(--bg-hover, #f8f9ff);
+ border-color: var(--accent-color, #5b5fcf);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(91, 95, 207, 0.2);
}
.btn-outline {
background: transparent;
- color: #5b5fcf;
- border: 2px solid #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
+ border: 2px solid var(--accent-color, #5b5fcf);
padding: 0.75rem 2rem;
border-radius: 10px;
font-weight: 500;
@@ -118,7 +118,7 @@
}
.btn-outline:hover {
- background: #5b5fcf;
+ background: var(--accent-color, #5b5fcf);
color: white;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(91, 95, 207, 0.4);
@@ -128,22 +128,22 @@
background: white;
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 10px 40px rgba(0,0,0,0.08);
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
overflow: hidden;
margin-bottom: 2rem;
animation: fadeInUp 0.5s ease-out;
}
.card-header {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
padding: 1.5rem 2rem;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
}
.card-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
display: flex;
align-items: center;
@@ -163,7 +163,7 @@
.section-title {
font-size: 2rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 0.5rem;
position: relative;
display: inline-block;
@@ -177,7 +177,7 @@
transform: translateX(-50%);
width: 60px;
height: 4px;
- background: linear-gradient(90deg, #5b5fcf 0%, #8187ff 100%);
+ background: linear-gradient(90deg, var(--accent-color, #5b5fcf) 0%, var(--accent-light, #8187ff) 100%);
border-radius: 2px;
}
@@ -192,27 +192,27 @@
}
.alert-success {
- background: #d1fae5;
- color: #065f46;
- border: 1px solid #a7f3d0;
+ background: var(--success-bg, #d1fae5);
+ color: var(--success-text, #065f46);
+ border: 1px solid var(--success-border, #a7f3d0);
}
.alert-danger {
- background: #fee2e2;
- color: #991b1b;
- border: 1px solid #fecaca;
+ background: var(--danger-bg, #fee2e2);
+ color: var(--danger-text, #991b1b);
+ border: 1px solid var(--danger-border, #fecaca);
}
.alert-info {
- background: #dbeafe;
- color: #1e40af;
- border: 1px solid #bfdbfe;
+ background: var(--info-bg, #dbeafe);
+ color: var(--info-text, #1e40af);
+ border: 1px solid var(--info-border, #bfdbfe);
}
.fetch-plans-section {
text-align: center;
padding: 4rem 2rem;
- background: linear-gradient(135deg, #5b5fcf 0%, #8187ff 100%);
+ background: linear-gradient(135deg, var(--accent-color, #5b5fcf) 0%, var(--accent-light, #8187ff) 100%);
border-radius: 20px;
margin-bottom: 3rem;
position: relative;
@@ -232,7 +232,7 @@
.fetch-plans-btn {
background: white;
- color: #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
padding: 1rem 3rem;
border-radius: 50px;
font-weight: 600;
@@ -263,14 +263,14 @@
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
font-size: 1rem;
}
.form-control {
width: 100%;
padding: 0.875rem 1rem;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 10px;
font-size: 1rem;
transition: all 0.3s ease;
@@ -279,7 +279,7 @@
.form-control:focus {
outline: none;
- border-color: #5b5fcf;
+ border-color: var(--accent-color, #5b5fcf);
box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1);
}
@@ -288,34 +288,34 @@
background: white;
border-radius: 12px;
overflow: hidden;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
}
.data-table thead {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
}
.data-table th {
padding: 1rem;
text-align: left;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 0.05em;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
}
.data-table td {
padding: 1.125rem;
- color: #475569;
+ color: var(--text-secondary, #475569);
font-size: 1.125rem;
- border-bottom: 1px solid #f3f4f6;
+ border-bottom: 1px solid var(--border-light, #f3f4f6);
font-weight: 400;
}
.data-table tbody tr:hover {
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
}
.data-table tbody tr:last-child td {
@@ -335,13 +335,13 @@
}
.status-badge.active {
- background: #d1fae5;
- color: #065f46;
+ background: var(--success-bg, #d1fae5);
+ color: var(--success-text, #065f46);
}
.status-badge.inactive {
- background: #fee2e2;
- color: #991b1b;
+ background: var(--danger-bg, #fee2e2);
+ color: var(--danger-text, #991b1b);
}
.plan-grid {
@@ -355,7 +355,7 @@
background: white;
border-radius: 20px;
padding: 2rem;
- border: 2px solid #e8e9ff;
+ border: 2px solid var(--border-color, #e8e9ff);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
@@ -364,12 +364,12 @@
.plan-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0,0,0,0.1);
- border-color: #5b5fcf;
+ border-color: var(--accent-color, #5b5fcf);
}
.plan-card.featured {
- border-color: #5b5fcf;
- background: linear-gradient(135deg, #f8f9ff 0%, #fff 100%);
+ border-color: var(--accent-color, #5b5fcf);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-secondary, #fff) 100%);
}
.plan-card.featured::before {
@@ -377,7 +377,7 @@
position: absolute;
top: 20px;
right: -30px;
- background: #5b5fcf;
+ background: var(--accent-color, #5b5fcf);
color: white;
padding: 0.25rem 3rem;
font-size: 0.875rem;
@@ -394,19 +394,19 @@
.plan-name {
font-size: 1.5rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 0.5rem;
}
.plan-storage {
font-size: 3rem;
font-weight: 700;
- color: #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
margin-bottom: 1rem;
}
.price-container {
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
border-radius: 12px;
padding: 1.5rem;
margin-bottom: 1.5rem;
@@ -416,18 +416,18 @@
.price-amount {
font-size: 2.5rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
line-height: 1;
}
.price-currency {
font-size: 1.5rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
}
.price-period {
font-size: 1rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
font-weight: 500;
}
@@ -615,7 +615,7 @@
- {$ sub.subscription_id $}
+ {$ sub.subscription_id $}
@@ -682,13 +682,13 @@
{% for plan in bPlans %}
-
+
{{ plan.sftpUser }}
{{ plan.planName }}
{{ plan.subscription }}
-
+
{% if plan.months == '1' %}
${{ plan.price }}/month
{% else %}
@@ -744,7 +744,7 @@
{{ plans.0.monthlyPrice }}
/month
-
+
$
{{ plans.0.yearlyPrice }}
/year
@@ -769,7 +769,7 @@
{{ plans.1.monthlyPrice }}
/month
-
+
$
{{ plans.1.yearlyPrice }}
/year
@@ -800,7 +800,7 @@
{{ plans.2.monthlyPrice }}
/month
-
+
$
{{ plans.2.yearlyPrice }}
/year
@@ -831,7 +831,7 @@
{{ plans.3.monthlyPrice }}
/month
-
+
$
{{ plans.3.yearlyPrice }}
/year
@@ -862,7 +862,7 @@
{{ plans.4.monthlyPrice }}
/month
-
+
$
{{ plans.4.yearlyPrice }}
/year
diff --git a/backup/templates/backup/remoteBackups.html b/backup/templates/backup/remoteBackups.html
index 23563974f..3392c6c35 100644
--- a/backup/templates/backup/remoteBackups.html
+++ b/backup/templates/backup/remoteBackups.html
@@ -18,7 +18,7 @@
text-align: center;
margin-bottom: 3rem;
padding: 3rem 0;
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
border-radius: 20px;
animation: fadeInDown 0.5s ease-out;
position: relative;
@@ -39,7 +39,7 @@
.page-title {
font-size: 3rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 1rem;
display: flex;
align-items: center;
@@ -51,7 +51,7 @@
.page-subtitle {
font-size: 1.25rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-bottom: 1.5rem;
position: relative;
z-index: 1;
@@ -67,8 +67,8 @@
}
.btn-primary {
- background: #5b5fcf;
- color: white;
+ background: var(--accent-color, #5b5fcf);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.75rem 2rem;
border-radius: 10px;
@@ -83,23 +83,23 @@
}
.btn-primary:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-2px);
- box-shadow: 0 8px 20px rgba(91, 95, 207, 0.4);
- color: white;
+ box-shadow: 0 8px 20px var(--accent-shadow-hover, rgba(91, 95, 207, 0.4));
+ color: var(--bg-secondary, white);
}
.btn-primary:disabled {
- background: #cbd5e1;
+ background: var(--text-secondary, #cbd5e1);
cursor: not-allowed;
transform: none;
box-shadow: none;
}
.btn-secondary {
- background: #fff;
- color: #5b5fcf;
- border: 1px solid #e8e9ff;
+ background: var(--bg-secondary, #fff);
+ color: var(--accent-color, #5b5fcf);
+ border: 1px solid var(--border-color, #e8e9ff);
padding: 0.75rem 2rem;
border-radius: 10px;
font-weight: 500;
@@ -113,15 +113,15 @@
}
.btn-secondary:hover {
- background: #f8f9ff;
- border-color: #5b5fcf;
+ background: var(--bg-hover, #f8f9ff);
+ border-color: var(--accent-color, #5b5fcf);
transform: translateY(-2px);
- box-shadow: 0 4px 12px rgba(91, 95, 207, 0.2);
+ box-shadow: 0 4px 12px var(--accent-shadow-light, rgba(91, 95, 207, 0.2));
}
.btn-success {
- background: #10b981;
- color: white;
+ background: var(--success-color, #10b981);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.75rem 2rem;
border-radius: 10px;
@@ -135,14 +135,14 @@
}
.btn-success:hover {
- background: #059669;
+ background: var(--success-hover, #059669);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(16, 185, 129, 0.4);
}
.btn-danger {
- background: #ef4444;
- color: white;
+ background: var(--danger-color, #ef4444);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.75rem 2rem;
border-radius: 10px;
@@ -156,31 +156,31 @@
}
.btn-danger:hover {
- background: #dc2626;
+ background: var(--danger-hover, #dc2626);
transform: translateY(-2px);
- box-shadow: 0 8px 20px rgba(239, 68, 68, 0.4);
+ box-shadow: 0 8px 20px var(--danger-shadow, rgba(239, 68, 68, 0.4));
}
.main-card {
background: white;
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 10px 40px rgba(0,0,0,0.08);
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
overflow: hidden;
margin-bottom: 2rem;
animation: fadeInUp 0.5s ease-out;
}
.card-header {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
padding: 1.5rem 2rem;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
}
.card-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
display: flex;
align-items: center;
@@ -203,23 +203,23 @@
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
font-size: 0.875rem;
}
.form-control {
width: 100%;
padding: 0.875rem 1rem;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 10px;
font-size: 0.875rem;
transition: all 0.3s ease;
- background: #fff;
+ background: var(--bg-secondary, #fff);
}
.form-control:focus {
outline: none;
- border-color: #5b5fcf;
+ border-color: var(--accent-color, #5b5fcf);
box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1);
}
@@ -234,15 +234,15 @@
}
.alert-success {
- background: #d1fae5;
- color: #065f46;
- border: 1px solid #a7f3d0;
+ background: var(--success-bg, #d1fae5);
+ color: var(--success-text, #065f46);
+ border: 1px solid var(--success-border, #a7f3d0);
}
.alert-danger {
- background: #fee2e2;
- color: #991b1b;
- border: 1px solid #fecaca;
+ background: var(--danger-bg, #fee2e2);
+ color: var(--danger-text, #991b1b);
+ border: 1px solid var(--danger-border, #fecaca);
}
.alert p {
@@ -256,34 +256,34 @@
background: white;
border-radius: 12px;
overflow: hidden;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
margin-top: 1rem;
}
.remote-table thead {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
}
.remote-table th {
padding: 1rem;
text-align: left;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.05em;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
}
.remote-table td {
padding: 1rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
font-size: 0.875rem;
- border-bottom: 1px solid #f3f4f6;
+ border-bottom: 1px solid var(--border-light, #f3f4f6);
}
.remote-table tbody tr:hover {
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
}
.remote-table tbody tr:last-child td {
@@ -300,7 +300,7 @@
width: 18px;
height: 18px;
cursor: pointer;
- accent-color: #5b5fcf;
+ accent-color: var(--accent-color, #5b5fcf);
}
.search-box {
@@ -313,28 +313,28 @@
left: 1rem;
top: 50%;
transform: translateY(-50%);
- color: #94a3b8;
+ color: var(--text-secondary, #94a3b8);
}
.search-input {
width: 100%;
padding: 0.875rem 1rem 0.875rem 3rem;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 10px;
font-size: 0.875rem;
transition: all 0.3s ease;
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
}
.search-input:focus {
outline: none;
- border-color: #5b5fcf;
+ border-color: var(--accent-color, #5b5fcf);
box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1);
- background: #fff;
+ background: var(--bg-secondary, #fff);
}
.terminal-section {
- background: #1e293b;
+ background: var(--text-primary, #1e293b);
border-radius: 12px;
overflow: hidden;
margin-top: 2rem;
@@ -342,7 +342,7 @@
}
.terminal-header {
- background: #334155;
+ background: var(--text-secondary, #334155);
padding: 0.75rem 1rem;
display: flex;
justify-content: space-between;
@@ -350,7 +350,7 @@
}
.terminal-title {
- color: #e2e8f0;
+ color: var(--bg-secondary, #e2e8f0);
font-size: 0.875rem;
font-weight: 500;
display: flex;
@@ -370,15 +370,15 @@
}
.terminal-dot.red {
- background: #ef4444;
+ background: var(--danger-color, #ef4444);
}
.terminal-dot.yellow {
- background: #f59e0b;
+ background: var(--warning-color, #f59e0b);
}
.terminal-dot.green {
- background: #10b981;
+ background: var(--success-color, #10b981);
}
.terminal-body {
@@ -388,7 +388,7 @@
font-family: 'Monaco', 'Consolas', monospace;
font-size: 0.875rem;
line-height: 1.6;
- color: #e2e8f0;
+ color: var(--bg-secondary, #e2e8f0);
}
.terminal-grid {
@@ -408,8 +408,8 @@
.loading-spinner {
width: 20px;
height: 20px;
- border: 3px solid #e8e9ff;
- border-top-color: #5b5fcf;
+ border: 3px solid var(--border-color, #e8e9ff);
+ border-top-color: var(--accent-color, #5b5fcf);
border-radius: 50%;
animation: spin 1s linear infinite;
display: inline-block;
@@ -417,8 +417,8 @@
}
.php-badge {
- background: #e0e7ff;
- color: #5b5fcf;
+ background: var(--accent-bg, #e0e7ff);
+ color: var(--accent-color, #5b5fcf);
padding: 0.25rem 0.75rem;
border-radius: 6px;
font-size: 0.75rem;
@@ -426,8 +426,8 @@
}
.package-badge {
- background: #f3f4f6;
- color: #1e293b;
+ background: var(--border-light, #f3f4f6);
+ color: var(--text-primary, #1e293b);
padding: 0.25rem 0.75rem;
border-radius: 6px;
font-size: 0.875rem;
@@ -618,7 +618,7 @@
-
+
@@ -628,7 +628,7 @@
-
+
@@ -674,13 +674,13 @@
-
+
{% trans "Backup Progress" %}
-
+
{% trans "Restore Progress" %}
diff --git a/backup/templates/backup/restoreOCBackups.html b/backup/templates/backup/restoreOCBackups.html
index eab7fa8a1..3e8a44b8c 100644
--- a/backup/templates/backup/restoreOCBackups.html
+++ b/backup/templates/backup/restoreOCBackups.html
@@ -23,7 +23,7 @@
text-align: center;
margin-bottom: 3rem;
padding: 3rem 0;
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
border-radius: 20px;
animation: fadeInDown 0.5s ease-out;
}
@@ -31,7 +31,7 @@
.page-title {
font-size: 3rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 1rem;
display: flex;
align-items: center;
@@ -41,7 +41,7 @@
.page-subtitle {
font-size: 1.25rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-bottom: 1.5rem;
max-width: 700px;
margin-left: auto;
@@ -50,7 +50,7 @@
}
.page-subtitle strong {
- color: #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
font-weight: 600;
}
@@ -62,7 +62,7 @@
}
.btn-primary {
- background: #5b5fcf;
+ background: var(--accent-color, #5b5fcf);
color: white;
border: none;
padding: 0.875rem 2.25rem;
@@ -78,14 +78,14 @@
}
.btn-primary:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(91, 95, 207, 0.4);
color: white;
}
.btn-primary:disabled {
- background: #d1d5db;
+ background: var(--text-secondary, #d1d5db);
cursor: not-allowed;
transform: none;
box-shadow: none;
@@ -93,8 +93,8 @@
.btn-secondary {
background: #fff;
- color: #5b5fcf;
- border: 1px solid #e8e9ff;
+ color: var(--accent-color, #5b5fcf);
+ border: 1px solid var(--border-color, #e8e9ff);
padding: 0.875rem 2.25rem;
border-radius: 10px;
font-weight: 500;
@@ -108,8 +108,8 @@
}
.btn-secondary:hover {
- background: #f8f9ff;
- border-color: #5b5fcf;
+ background: var(--bg-hover, #f8f9ff);
+ border-color: var(--accent-color, #5b5fcf);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(91, 95, 207, 0.2);
}
@@ -118,7 +118,7 @@
background: white;
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 10px 40px rgba(0,0,0,0.08);
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
overflow: hidden;
margin-bottom: 2rem;
animation: fadeInUp 0.5s ease-out;
@@ -128,15 +128,15 @@
}
.card-header {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
padding: 1.5rem 2rem;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
}
.card-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
display: flex;
align-items: center;
@@ -157,14 +157,14 @@
.form-label {
flex: 0 0 150px;
font-weight: 500;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
font-size: 1.125rem;
}
.form-control {
flex: 1;
padding: 0.875rem 1rem;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 10px;
font-size: 1.125rem;
transition: all 0.3s ease;
@@ -173,21 +173,21 @@
.form-control:focus {
outline: none;
- border-color: #5b5fcf;
+ border-color: var(--accent-color, #5b5fcf);
box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1);
}
.progress-section {
margin-top: 2rem;
padding: 2rem;
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
border-radius: 12px;
}
.status-message {
- background: #e0f2fe;
- border: 1px solid #7dd3fc;
- color: #0369a1;
+ background: var(--info-bg, #e0f2fe);
+ border: 1px solid var(--info-border, #7dd3fc);
+ color: var(--info-text, #0369a1);
padding: 1rem 1.5rem;
border-radius: 10px;
text-align: center;
@@ -197,7 +197,7 @@
}
.progress-wrapper {
- background: #e2e8f0;
+ background: var(--border-light, #e2e8f0);
border-radius: 10px;
overflow: hidden;
height: 24px;
@@ -205,7 +205,7 @@
}
.progress-bar {
- background: linear-gradient(90deg, #5b5fcf 0%, #8187ff 100%);
+ background: linear-gradient(90deg, var(--accent-color, #5b5fcf) 0%, var(--accent-light, #8187ff) 100%);
height: 100%;
border-radius: 10px;
transition: width 0.3s ease;
@@ -228,15 +228,15 @@
}
.alert-success {
- background: #d1fae5;
- color: #065f46;
- border: 1px solid #a7f3d0;
+ background: var(--success-bg, #d1fae5);
+ color: var(--success-text, #065f46);
+ border: 1px solid var(--success-border, #a7f3d0);
}
.alert-danger {
- background: #fee2e2;
- color: #991b1b;
- border: 1px solid #fecaca;
+ background: var(--danger-bg, #fee2e2);
+ color: var(--danger-text, #991b1b);
+ border: 1px solid var(--danger-border, #fecaca);
}
.alert i {
diff --git a/dockerManager/templates/dockerManager/images.html b/dockerManager/templates/dockerManager/images.html
index 4c0ff0d9c..a550c6737 100644
--- a/dockerManager/templates/dockerManager/images.html
+++ b/dockerManager/templates/dockerManager/images.html
@@ -18,7 +18,7 @@
text-align: center;
margin-bottom: 3rem;
padding: 3rem 0;
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
border-radius: 20px;
animation: fadeInDown 0.5s ease-out;
position: relative;
@@ -32,14 +32,14 @@
right: -50%;
width: 200%;
height: 200%;
- background: radial-gradient(circle at 70% 30%, rgba(91, 95, 207, 0.15) 0%, transparent 50%);
+ background: radial-gradient(circle at 70% 30%, var(--accent-shadow-light, rgba(91, 95, 207, 0.15)) 0%, transparent 50%);
animation: rotate 30s linear infinite;
}
.page-title {
font-size: 3rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 1rem;
display: flex;
align-items: center;
@@ -52,17 +52,17 @@
.docker-icon {
width: 60px;
height: 60px;
- background: white;
+ background: var(--bg-secondary, white);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
- box-shadow: 0 4px 12px rgba(0,0,0,0.1);
+ box-shadow: 0 4px 12px var(--shadow-medium, rgba(0,0,0,0.1));
}
.page-subtitle {
font-size: 1.25rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-bottom: 1.5rem;
position: relative;
z-index: 1;
@@ -78,8 +78,8 @@
}
.btn-primary {
- background: #5b5fcf;
- color: white;
+ background: var(--accent-color, #5b5fcf);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.75rem 2rem;
border-radius: 10px;
@@ -94,16 +94,16 @@
}
.btn-primary:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-2px);
- box-shadow: 0 8px 20px rgba(91, 95, 207, 0.4);
- color: white;
+ box-shadow: 0 8px 20px var(--accent-shadow-hover, rgba(91, 95, 207, 0.4));
+ color: var(--bg-secondary, white);
}
.btn-secondary {
- background: #fff;
- color: #5b5fcf;
- border: 1px solid #e8e9ff;
+ background: var(--bg-secondary, #fff);
+ color: var(--accent-color, #5b5fcf);
+ border: 1px solid var(--border-color, #e8e9ff);
padding: 0.75rem 2rem;
border-radius: 10px;
font-weight: 500;
@@ -117,26 +117,26 @@
}
.btn-secondary:hover {
- background: #f8f9ff;
- border-color: #5b5fcf;
+ background: var(--bg-hover, #f8f9ff);
+ border-color: var(--accent-color, #5b5fcf);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(91, 95, 207, 0.2);
}
.main-card {
- background: white;
+ background: var(--bg-secondary, white);
border-radius: 16px;
- box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 10px 40px rgba(0,0,0,0.08);
- border: 1px solid #e8e9ff;
+ box-shadow: 0 1px 3px var(--shadow-light, rgba(0,0,0,0.05)), 0 10px 40px var(--shadow-color, rgba(0,0,0,0.08));
+ border: 1px solid var(--border-color, #e8e9ff);
overflow: hidden;
margin-bottom: 2rem;
animation: fadeInUp 0.5s ease-out;
}
.card-header {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
padding: 1.5rem 2rem;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
display: flex;
justify-content: space-between;
align-items: center;
@@ -145,7 +145,7 @@
.card-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
display: flex;
align-items: center;
@@ -163,8 +163,8 @@
}
.image-card {
- background: #f8f9ff;
- border: 1px solid #e8e9ff;
+ background: var(--bg-hover, #f8f9ff);
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 12px;
padding: 1.5rem;
transition: all 0.3s ease;
@@ -179,15 +179,15 @@
right: 0;
width: 100px;
height: 100px;
- background: linear-gradient(135deg, rgba(91, 95, 207, 0.1) 0%, transparent 100%);
+ background: linear-gradient(135deg, var(--accent-focus, rgba(91, 95, 207, 0.1)) 0%, transparent 100%);
border-radius: 0 0 0 100%;
transition: all 0.3s ease;
}
.image-card:hover {
transform: translateY(-4px);
- box-shadow: 0 8px 20px rgba(91, 95, 207, 0.15);
- border-color: #5b5fcf;
+ box-shadow: 0 8px 20px var(--accent-shadow-light, rgba(91, 95, 207, 0.15));
+ border-color: var(--accent-color, #5b5fcf);
}
.image-card:hover::before {
@@ -205,13 +205,13 @@
.image-icon {
width: 48px;
height: 48px;
- background: white;
+ background: var(--bg-secondary, white);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
- color: #5b5fcf;
+ box-shadow: 0 2px 8px var(--shadow-medium, rgba(0,0,0,0.1));
+ color: var(--accent-color, #5b5fcf);
font-size: 1.5rem;
}
@@ -222,14 +222,14 @@
.image-title {
font-size: 1.125rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
word-break: break-word;
}
.image-subtitle {
font-size: 0.75rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-top: 0.25rem;
}
@@ -240,7 +240,7 @@
.tag-label {
font-size: 0.75rem;
font-weight: 600;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 0.5rem;
@@ -250,10 +250,10 @@
.tag-select {
width: 100%;
padding: 0.75rem 1rem;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 8px;
- background: white;
- color: #1e293b;
+ background: var(--bg-secondary, white);
+ color: var(--text-primary, #1e293b);
font-size: 0.875rem;
transition: all 0.3s ease;
cursor: pointer;
@@ -261,8 +261,8 @@
.tag-select:focus {
outline: none;
- border-color: #5b5fcf;
- box-shadow: 0 0 0 3px rgba(91, 95, 207, 0.1);
+ border-color: var(--accent-color, #5b5fcf);
+ box-shadow: 0 0 0 3px var(--accent-focus, rgba(91, 95, 207, 0.1));
}
.image-actions {
@@ -289,25 +289,25 @@
}
.action-btn.create {
- background: #5b5fcf;
- color: white;
+ background: var(--accent-color, #5b5fcf);
+ color: var(--bg-secondary, white);
}
.action-btn.create:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(91, 95, 207, 0.3);
}
.action-btn.details {
- background: white;
- color: #5b5fcf;
- border: 1px solid #e8e9ff;
+ background: var(--bg-secondary, white);
+ color: var(--accent-color, #5b5fcf);
+ border: 1px solid var(--border-color, #e8e9ff);
}
.action-btn.details:hover {
- background: #f8f9ff;
- border-color: #5b5fcf;
+ background: var(--bg-hover, #f8f9ff);
+ border-color: var(--accent-color, #5b5fcf);
transform: translateY(-2px);
}
@@ -319,25 +319,25 @@
.empty-icon {
width: 80px;
height: 80px;
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1.5rem;
- color: #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
font-size: 2rem;
}
.empty-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 0.5rem;
}
.empty-text {
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-bottom: 2rem;
}
@@ -345,7 +345,7 @@
width: 20px;
height: 20px;
border: 3px solid #e8e9ff;
- border-top-color: #5b5fcf;
+ border-top-color: var(--accent-color, #5b5fcf);
border-radius: 50%;
animation: spin 1s linear infinite;
display: inline-block;
@@ -363,8 +363,8 @@
}
.badge-count {
- background: #e0e7ff;
- color: #5b5fcf;
+ background: var(--accent-bg, #e0e7ff);
+ color: var(--accent-color, #5b5fcf);
}
@keyframes spin {
@@ -423,7 +423,7 @@
-
-
-
+
+
+
{% trans "About Tags" %}
-
+
{% trans "Tags represent different versions of an image. 'latest' is the most recent stable version." %}
-
-
-
+
+
+
{% trans "Container Resources" %}
-
+
{% trans "You can set memory limits and other resources when creating a container." %}
-
-
-
+
+
+
{% trans "Port Mapping" %}
-
+
{% trans "Configure port mappings to access services running inside containers." %}
diff --git a/dockerManager/templates/dockerManager/listContainers.html b/dockerManager/templates/dockerManager/listContainers.html
index 70ad12e57..e896b8165 100644
--- a/dockerManager/templates/dockerManager/listContainers.html
+++ b/dockerManager/templates/dockerManager/listContainers.html
@@ -18,7 +18,7 @@
text-align: center;
margin-bottom: 3rem;
padding: 3rem 0;
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
border-radius: 20px;
animation: fadeInDown 0.5s ease-out;
position: relative;
@@ -32,14 +32,14 @@
right: -50%;
width: 200%;
height: 200%;
- background: radial-gradient(circle at 70% 30%, rgba(91, 95, 207, 0.15) 0%, transparent 50%);
+ background: radial-gradient(circle at 70% 30%, var(--accent-shadow-light, rgba(91, 95, 207, 0.15)) 0%, transparent 50%);
animation: rotate 30s linear infinite;
}
.page-title {
font-size: 3rem;
font-weight: 700;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin-bottom: 1rem;
display: flex;
align-items: center;
@@ -52,17 +52,17 @@
.docker-icon {
width: 60px;
height: 60px;
- background: white;
+ background: var(--bg-secondary, white);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
- box-shadow: 0 4px 12px rgba(0,0,0,0.1);
+ box-shadow: 0 4px 12px var(--shadow-medium, rgba(0,0,0,0.1));
}
.page-subtitle {
font-size: 1.25rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
margin-bottom: 1.5rem;
position: relative;
z-index: 1;
@@ -78,8 +78,8 @@
}
.btn-primary {
- background: #5b5fcf;
- color: white;
+ background: var(--accent-color, #5b5fcf);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.75rem 2rem;
border-radius: 10px;
@@ -94,15 +94,15 @@
}
.btn-primary:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-2px);
- box-shadow: 0 8px 20px rgba(91, 95, 207, 0.4);
- color: white;
+ box-shadow: 0 8px 20px var(--accent-shadow-hover, rgba(91, 95, 207, 0.4));
+ color: var(--bg-secondary, white);
}
.btn-danger {
- background: #ef4444;
- color: white;
+ background: var(--danger-color, #ef4444);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.5rem 1rem;
border-radius: 8px;
@@ -117,14 +117,14 @@
}
.btn-danger:hover {
- background: #dc2626;
+ background: var(--danger-hover, #dc2626);
transform: translateY(-2px);
- box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
+ box-shadow: 0 4px 12px var(--danger-shadow, rgba(239, 68, 68, 0.4));
}
.btn-info {
- background: #3b82f6;
- color: white;
+ background: var(--info-color, #3b82f6);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.5rem 1rem;
border-radius: 8px;
@@ -139,14 +139,14 @@
}
.btn-info:hover {
- background: #2563eb;
+ background: var(--info-hover, #2563eb);
transform: translateY(-2px);
- box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
+ box-shadow: 0 4px 12px var(--info-shadow, rgba(59, 130, 246, 0.4));
}
.btn-success {
- background: #10b981;
- color: white;
+ background: var(--success-color, #10b981);
+ color: var(--bg-secondary, white);
border: none;
padding: 0.5rem 1rem;
border-radius: 8px;
@@ -167,19 +167,19 @@
}
.main-card {
- background: white;
+ background: var(--bg-secondary, white);
border-radius: 16px;
- box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 10px 40px rgba(0,0,0,0.08);
- border: 1px solid #e8e9ff;
+ box-shadow: 0 1px 3px var(--shadow-light, rgba(0,0,0,0.05)), 0 10px 40px var(--shadow-color, rgba(0,0,0,0.08));
+ border: 1px solid var(--border-color, #e8e9ff);
overflow: hidden;
margin-bottom: 2rem;
animation: fadeInUp 0.5s ease-out;
}
.card-header {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
padding: 1.5rem 2rem;
- border-bottom: 1px solid #e8e9ff;
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
display: flex;
justify-content: space-between;
align-items: center;
@@ -188,7 +188,7 @@
.card-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
display: flex;
align-items: center;
@@ -201,33 +201,33 @@
.containers-table {
width: 100%;
- background: white;
+ background: var(--bg-secondary, white);
border-radius: 12px;
overflow: hidden;
- border: 1px solid #e8e9ff;
+ border: 1px solid var(--border-color, #e8e9ff);
margin-bottom: 2rem;
}
.containers-table thead {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
}
.containers-table th {
padding: 1rem;
text-align: left;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.05em;
- border-bottom: 2px solid #e8e9ff;
+ border-bottom: 2px solid var(--border-color, #e8e9ff);
}
.containers-table td {
padding: 1rem;
- color: #64748b;
+ color: var(--text-secondary, #64748b);
font-size: 0.875rem;
- border-bottom: 1px solid #f3f4f6;
+ border-bottom: 1px solid var(--border-light, #f3f4f6);
vertical-align: middle;
}
@@ -236,7 +236,7 @@
}
.containers-table tbody tr:hover {
- background: #f8f9ff;
+ background: var(--bg-hover, #f8f9ff);
}
.containers-table tbody tr:last-child td {
@@ -252,13 +252,13 @@
.container-icon {
width: 32px;
height: 32px;
- background: #e0e7ff;
+ background: var(--accent-bg, #e0e7ff);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.875rem;
- color: #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
}
.status-badge {
@@ -271,8 +271,8 @@
}
.status-running {
- background: #d1fae5;
- color: #065f46;
+ background: var(--success-bg, #d1fae5);
+ color: var(--success-text, #065f46);
}
.status-stopped {
@@ -290,7 +290,7 @@
width: 20px;
height: 20px;
border: 3px solid #e8e9ff;
- border-top-color: #5b5fcf;
+ border-top-color: var(--accent-color, #5b5fcf);
border-radius: 50%;
animation: spin 1s linear infinite;
display: inline-block;
@@ -320,37 +320,37 @@
.pagination li a {
display: block;
padding: 0.5rem 1rem;
- background: #f8f9ff;
- border: 1px solid #e8e9ff;
+ background: var(--bg-hover, #f8f9ff);
+ border: 1px solid var(--border-color, #e8e9ff);
border-radius: 8px;
- color: #5b5fcf;
+ color: var(--accent-color, #5b5fcf);
text-decoration: none;
font-weight: 500;
transition: all 0.2s ease;
}
.pagination li a:hover {
- background: #5b5fcf;
- color: white;
+ background: var(--accent-color, #5b5fcf);
+ color: var(--bg-secondary, white);
}
.modal-content {
border-radius: 16px;
overflow: hidden;
border: none;
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
+ box-shadow: 0 25px 50px -12px var(--shadow-dark, rgba(0, 0, 0, 0.25));
}
.modal-header {
- background: linear-gradient(135deg, #f8f9ff 0%, #f0f1ff 100%);
- border-bottom: 1px solid #e8e9ff;
+ background: linear-gradient(135deg, var(--bg-hover, #f8f9ff) 0%, var(--bg-gradient, #f0f1ff) 100%);
+ border-bottom: 1px solid var(--border-color, #e8e9ff);
padding: 1.5rem 2rem;
}
.modal-title {
font-size: 1.25rem;
font-weight: 600;
- color: #1e293b;
+ color: var(--text-primary, #1e293b);
margin: 0;
}
@@ -359,8 +359,8 @@
}
.modal-footer {
- background: #f8f9ff;
- border-top: 1px solid #e8e9ff;
+ background: var(--bg-hover, #f8f9ff);
+ border-top: 1px solid var(--border-color, #e8e9ff);
padding: 1rem 2rem;
}
@@ -378,19 +378,19 @@
}
.modal-footer .btn.btn-primary {
- background: #5b5fcf;
- color: white;
+ background: var(--accent-color, #5b5fcf);
+ color: var(--bg-secondary, white);
}
.modal-footer .btn.btn-primary:hover {
- background: #4547a9;
+ background: var(--accent-hover, #4547a9);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(91, 95, 207, 0.3);
}
.modal-footer .btn.btn-secondary {
background: #6b7280;
- color: white;
+ color: var(--bg-secondary, white);
margin-left: 0.5rem;
}
@@ -474,7 +474,7 @@