devportal2 / static /css /settings.css
Akay Borana
Complete Android-first UI rebuild with mobile-first design system
81552f4
Raw
History Blame Contribute Delete
4.17 kB
/* static/css/settings.css β€” Mobile-first */
.settings-wrap {
flex: 1;
overflow-y: auto;
padding: var(--sp-4);
-webkit-overflow-scrolling: touch;
}
/* ── Settings Tabs (horizontal scroll on mobile) ── */
.settings-tabs {
display: flex;
gap: var(--sp-1);
overflow-x: auto;
padding-bottom: var(--sp-3);
margin-bottom: var(--sp-4);
border-bottom: 1px solid var(--divider);
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.settings-tabs::-webkit-scrollbar { display: none; }
.settings-tab {
display: flex;
align-items: center;
gap: var(--sp-2);
padding: var(--sp-2) var(--sp-3);
border-radius: var(--r-sm);
cursor: pointer;
color: var(--text-3);
font-size: 13px;
font-weight: 500;
white-space: nowrap;
min-height: var(--touch-min);
transition: all 0.15s ease;
border: 1px solid transparent;
flex-shrink: 0;
touch-action: manipulation;
}
.settings-tab:active { transform: scale(0.97); }
.settings-tab.active {
background: var(--accent-dim);
color: var(--accent);
border-color: rgba(255,193,7,0.2);
}
.settings-tab i { font-size: 14px; width: 18px; text-align: center; }
/* ── Settings Panel ── */
.settings-panel {
display: none;
animation: panelIn 0.2s ease;
}
.settings-panel.active { display: block; }
@keyframes panelIn {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
.settings-heading {
font-size: 18px;
font-weight: 600;
color: var(--text-1);
margin-bottom: var(--sp-5);
padding-bottom: var(--sp-3);
border-bottom: 1px solid var(--divider);
}
/* ── Form Groups ── */
.field-group { margin-bottom: var(--sp-5); }
.field-group label {
display: block;
font-size: 13px;
font-weight: 500;
color: var(--text-2);
margin-bottom: 6px;
}
.field-input, .field-select, .field-textarea {
width: 100%;
background: rgba(255,255,255,0.04);
border: 1px solid var(--border);
color: var(--text-1);
padding: 12px 14px;
border-radius: var(--r-sm);
font-family: var(--font-ui);
font-size: 16px;
transition: border-color 0.15s ease;
min-height: var(--touch-min);
}
.field-input:focus, .field-select:focus, .field-textarea:focus {
outline: none;
border-color: var(--accent);
}
.field-textarea { min-height: 80px; resize: vertical; }
.field-hint {
font-size: 11px;
color: var(--text-3);
margin-top: 4px;
}
/* ── Color Swatches ── */
.swatch-row {
display: flex;
gap: var(--sp-3);
flex-wrap: wrap;
align-items: center;
margin-top: var(--sp-2);
}
.swatch {
width: 32px;
height: 32px;
border-radius: 50%;
cursor: pointer;
border: 2px solid transparent;
transition: transform 0.15s ease;
min-width: var(--touch-min);
min-height: var(--touch-min);
display: flex;
align-items: center;
justify-content: center;
}
.swatch:active { transform: scale(0.9); }
.swatch.active { border-color: var(--text-1); transform: scale(1.1); }
/* ── Profile Avatar ── */
.profile-row {
display: flex;
align-items: center;
gap: var(--sp-4);
margin-bottom: var(--sp-6);
}
.profile-avatar {
width: 64px;
height: 64px;
border-radius: 50%;
background: var(--accent);
color: var(--accent-text);
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
font-weight: 700;
flex-shrink: 0;
}
/* ── Actions Bar ── */
.settings-actions {
margin-top: var(--sp-8);
padding-top: var(--sp-4);
border-top: 1px solid var(--divider);
display: flex;
gap: var(--sp-3);
}
.settings-actions .ed-btn { flex: 1; justify-content: center; min-height: var(--touch-min); }
/* ── Desktop ── */
@media (min-width: 769px) {
.settings-wrap {
max-width: 800px;
margin: 0 auto;
padding: var(--sp-8);
}
}
/* ── Light ── */
:root.light .field-input, :root.light .field-select, :root.light .field-textarea {
background: rgba(0,0,0,0.03);
border-color: rgba(0,0,0,0.1);
}