From 0489bb49a1f2fd844215d7cd4d154068b58672dc Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 19 Apr 2026 20:24:41 +0200 Subject: [PATCH] =?UTF-8?q?Redesign=20Settings=20page=20=E2=80=94=20respon?= =?UTF-8?q?sive=20grid,=20abridged=20docs,=20less=20scroll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Page max-width 1100px (from 600px) for desktop side-by-side layout - CSS grid auto-fits cards at minmax(320px, 1fr) โ€” 1 col mobile, 2-3 cols desktop - Cards align to top (alignItems: start) so short ones don't stretch - Password change hidden behind a
summary to reduce scroll - Notifications + Appearance + Admin compacted (smaller padding, tighter layout) - Documents section: shows 5 most recent, 'Show all N' button expands inline, 'Show less' collapses โ€” no separate page needed - Long filenames truncate with ellipsis - Removed redundant descriptive text, shortened labels Mobile: single column stack, preserves all functionality. Desktop: 2-3 columns depending on viewport width. Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/pages/SettingsPage.jsx | 207 ++++++++++++++++------------ 1 file changed, 120 insertions(+), 87 deletions(-) diff --git a/frontend/src/pages/SettingsPage.jsx b/frontend/src/pages/SettingsPage.jsx index d342977..117e4b2 100644 --- a/frontend/src/pages/SettingsPage.jsx +++ b/frontend/src/pages/SettingsPage.jsx @@ -4,10 +4,10 @@ import { useAuth } from '../context/AuthContext' import { useTheme } from '../context/ThemeContext' import api from '../api/client' -function Section({ title, children }) { +function Section({ title, children, compact = false }) { return ( -
-

{title}

+
+

{title}

{children}
) @@ -44,7 +44,7 @@ function ProfileSection({ user }) { return (
-

+

{user?.email}   Display Name setName(e.target.value)} required />

-
-

- Change Password (leave blank to keep current) -

-
- - setCurrentPassword(e.target.value)} placeholder="Required to change password" /> -
-
- - setNewPassword(e.target.value)} placeholder="At least 8 characters" /> -
-
- - setConfirmPassword(e.target.value)} /> -
- +
+ + Change password + +
+ + setCurrentPassword(e.target.value)} placeholder="Required to change password" /> +
+
+ + setNewPassword(e.target.value)} placeholder="At least 8 characters" /> +
+
+ + setConfirmPassword(e.target.value)} /> +
+
+ ) @@ -102,15 +105,15 @@ function NotificationsSection() { if (!loaded) return null return ( -
-
-
+
+
+
Quiz Reminders - Receive email reminders to review quizzes based on your performance. + Emails to review quizzes based on performance.
-