From bfb1ca62ce2e92a6134c88da71017fb78e94565d Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 5 Nov 2025 21:31:48 -0500 Subject: [PATCH] improved mobile experiance --- style.css | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 style.css diff --git a/style.css b/style.css new file mode 100644 index 0000000..69865ea --- /dev/null +++ b/style.css @@ -0,0 +1,240 @@ + +:root { + --surface-light: rgba(255, 255, 255, 0.96); + --surface-dark: rgba(15, 23, 42, 0.75); + --border-light: rgba(148, 163, 184, 0.35); + --border-dark: rgba(71, 85, 105, 0.55); + --text-light: #0f172a; + --text-dark: #f8fafc; + --shadow-light: 0 25px 50px -12px rgba(59, 130, 246, 0.35); + --shadow-dark: 0 25px 50px -12px rgba(14, 165, 233, 0.2); +} + +body { + font-family: 'Inter', sans-serif; + min-height: 100vh; + background: linear-gradient(135deg, #eef2ff 0%, #e0f2fe 45%, #ede9fe 100%); + color: var(--text-light); + transition: background-color 0.3s ease, color 0.3s ease; +} + +body.dark-mode { + background: radial-gradient(circle at top, #111827 0%, #020617 65%); + color: var(--text-dark); +} + +#appContainer { + min-height: 100vh; +} + +.card { + background: var(--surface-light); + border: 1px solid var(--border-light); + border-radius: 1rem; + padding: 1.5rem; + box-shadow: var(--shadow-light); + backdrop-filter: blur(16px); + transition: transform 0.25s ease, box-shadow 0.25s ease; +} + +.card:hover { + transform: translateY(-2px); + box-shadow: 0 30px 60px -20px rgba(37, 99, 235, 0.35); +} + +body.dark-mode .card { + background: var(--surface-dark); + border-color: var(--border-dark); + box-shadow: var(--shadow-dark); +} + +.nav-link { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.65rem 1rem; + border-radius: 1rem; + font-weight: 600; + color: #475569; + text-decoration: none; + transition: background 0.2s ease, transform 0.2s ease, color 0.2s ease; +} + +.nav-link .nav-icon { + display: flex; + align-items: center; + justify-content: center; + border-radius: 9999px; + height: 2.5rem; + width: 2.5rem; + background: rgba(37, 99, 235, 0.12); + transition: background 0.2s ease, color 0.2s ease; +} + +.nav-link:hover { + background: rgba(148, 163, 184, 0.18); + transform: translateX(4px); +} + +body.dark-mode .nav-link { + color: #cbd5f5; +} + +body.dark-mode .nav-link:hover { + background: rgba(30, 41, 59, 0.85); +} + +.active-nav { + background: linear-gradient(135deg, rgba(59, 130, 246, 0.9), rgba(147, 51, 234, 0.85)); + color: #ffffff; + transform: translateX(6px); + box-shadow: 0 18px 30px -12px rgba(79, 70, 229, 0.45); +} + +.active-nav .nav-icon { + background: rgba(255, 255, 255, 0.18); + color: #ffffff; +} + +.btn { + border-radius: 9999px; + padding: 0.625rem 1.5rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + background: rgba(255, 255, 255, 0.85); + border: none; + color: inherit; +} + +.btn:hover { + transform: translateY(-2px); + box-shadow: 0 10px 25px -10px rgba(15, 23, 42, 0.25); +} + +.btn:focus { + outline: none; + box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.25); +} + +.btn-primary { + background: linear-gradient(135deg, rgba(59, 130, 246, 1), rgba(147, 51, 234, 1)); + color: #ffffff; + box-shadow: 0 20px 40px -20px rgba(79, 70, 229, 0.65); +} + +.btn-primary:hover { + filter: brightness(1.05); + box-shadow: 0 24px 48px -24px rgba(79, 70, 229, 0.7); +} + +.form-control { + width: 100%; + border-radius: 0.85rem; + border: 1px solid transparent; + background: rgba(148, 163, 184, 0.12); + padding: 0.75rem 1rem; + font-size: 0.95rem; + color: inherit; + transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; +} + +.form-control:focus { + outline: none; + border-color: rgba(59, 130, 246, 0.4); + box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15); + background: rgba(255, 255, 255, 0.92); +} + +body.dark-mode .form-control { + background: rgba(30, 41, 59, 0.6); + border-color: rgba(51, 65, 85, 0.7); +} + +body.dark-mode .form-control:focus { + border-color: rgba(96, 165, 250, 0.55); + box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.25); + background: rgba(15, 23, 42, 0.85); +} + +.stat-card { + display: flex; + align-items: center; + gap: 1rem; + padding: 1.25rem 1.5rem; + border: none; +} + +.stat-label { + font-size: 0.75rem; + letter-spacing: 0.18em; + text-transform: uppercase; + color: #64748b; + font-weight: 600; +} + +.stat-value { + font-size: 1.9rem; + font-weight: 700; +} + +.stat-icon { + display: flex; + align-items: center; + justify-content: center; + height: 2.75rem; + width: 2.75rem; + border-radius: 9999px; +} + +body.dark-mode .stat-label { + color: #94a3b8; +} + +tbody tr:hover { + background-color: rgba(148, 163, 184, 0.08); +} + +body.dark-mode tbody tr:hover { + background-color: rgba(59, 130, 246, 0.12); +} + +.modal-content { + background: var(--surface-light); + border-radius: 1rem; + border: 1px solid var(--border-light); + box-shadow: var(--shadow-light); +} + +body.dark-mode .modal-content { + background: var(--surface-dark); + border-color: var(--border-dark); + box-shadow: var(--shadow-dark); +} + +@media (max-width: 768px) { + body:not(.dark-mode) { + background: #f8fafc; + color: #1f2937; + } + + body:not(.dark-mode) .card { + background: #ffffff; + box-shadow: 0 18px 36px -22px rgba(15, 23, 42, 0.28); + } + + body:not(.dark-mode) .btn.bg-white\/85, + body:not(.dark-mode) .btn.bg-white\/80 { + color: #1f2937; + } +} + +@media (min-width: 1024px) { + #sidebar { + transform: none !important; + } +}