Repository navigation
refactor(frontend): introduce MockMate design system documentation and UI updates - #7
Merged
Merged
Conversation
CUinspace233
commented
Jun 8, 2026
Owner
- Added a comprehensive DESIGN.md file outlining the MockMate design system, including principles, visual system, and product positioning.
- Updated the favicon in index.html to use an SVG format for better scalability.
- Removed unused CSS animations from App.css to streamline styles.
- Enhanced theme colors and typography in theme.ts for improved visual consistency.
- Refactored components to align with the new design system, including updates to AuthLayout, InterviewChat, and ProgressChart for better layout and styling.
- Introduced a new MockMateIcon component for consistent branding across the application.
- Adjusted various components to improve accessibility and user experience, including layout refinements in InterviewTraining and ResumeDrill.
There was a problem hiding this comment.
Pull request overview
This PR introduces a documented MockMate design system and refactors the frontend UI to match a ChatGPT-like “workspace” layout (sidebar navigation, centered chat thread, sticky composer), while aligning colors/typography/elevation with the new theme tokens.
Changes:
- Added
DESIGN.mdand updated theme tokens to establish a consistent visual system. - Introduced an authenticated
AppShell+SidebarNavlayout and migrated major pages (Chat/Resume Drill/History/Progress) into this shell. - Refactored chat UI into smaller primitives (
PracticeSetupPanel,ChatThread,MessageBubble,ChatComposer,EvaluationCard) and refreshed Auth pages with shared branding (MockMateIcon,AuthPreview).
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/theme.ts | Updates palette, background levels, radii, shadows, and card hover elevation. |
| frontend/src/stores/useAuthStore.ts | Adjusts persisted auth state defaults and API key encryption behavior. |
| frontend/src/components/ResumeDrill.tsx | Tunes Resume Drill layout sizing, grid columns, and overflow/gap behavior. |
| frontend/src/components/resume-drill/ResumeDrillSidebar.tsx | Restyles the resume drill “inspector” panel to match the design system. |
| frontend/src/components/resume-drill/ResumeDrillChatPanel.tsx | Adds bordered/surfaced chat panel styling and neutralizes status/chip colors. |
| frontend/src/components/RegisterPage.tsx | Updates mobile brand header to use MockMateIcon and simplified typography. |
| frontend/src/components/ProgressChart.tsx | Restyles stats cards and page padding/max-width to fit the new workspace look. |
| frontend/src/components/MockMateIcon.tsx | Adds reusable brand icon component backed by /mock-mate.svg. |
| frontend/src/components/LoginPage.tsx | Updates mobile brand header to use MockMateIcon and simplified typography. |
| frontend/src/components/InterviewTraining.tsx | Replaces tabs-based layout with AppShell + WorkspaceMain and adds setup panel flow. |
| frontend/src/components/InterviewHistory.tsx | Restyles history statistics/filter/table containers for the flatter panel system. |
| frontend/src/components/InterviewChat.tsx | Refactors chat UI into ChatThread + ChatComposer and introduces new empty state layout. |
| frontend/src/components/interview/PracticeSetupPanel.tsx | Adds collapsible setup surface for position/difficulty/model/API key/job description, etc. |
| frontend/src/components/interview/MessageBubble.tsx | Adds unified message bubble rendering (user/AI/evaluation) with Markdown support. |
| frontend/src/components/interview/EvaluationCard.tsx | Adds structured evaluation rendering (score, summary, strengths/improvements, keywords). |
| frontend/src/components/interview/ChatThread.tsx | Adds scrollable thread container and progress chips. |
| frontend/src/components/interview/ChatComposer.tsx | Adds sticky composer UI with send + optional voice controls. |
| frontend/src/components/AuthLayout.tsx | Replaces marketing-gradient auth layout with restrained preview + card form layout. |
| frontend/src/components/auth/AuthPreview.tsx | Adds an auth-page product preview panel aligned with design system tokens. |
| frontend/src/components/app-shell/WorkspaceMain.tsx | Adds standardized main-content host with consistent padding/max-width. |
| frontend/src/components/app-shell/SidebarNav.tsx | Adds persistent sidebar navigation (routes, daily count, user menu, GitHub link). |
| frontend/src/components/app-shell/AppShell.tsx | Adds overall app frame, responsive drawer behavior, and mobile top bar. |
| frontend/src/App.css | Removes unused decorative animations (float/gradientShift). |
| frontend/src/api/api.ts | Changes resume upload to omit openai_model when not provided (backend default applies). |
| frontend/index.html | Switches favicon to SVG (/mock-mate.svg). |
| DESIGN.md | Adds comprehensive design system documentation and acceptance criteria. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
55
to
58
| language: "en", | ||
| setLanguage: (language) => set({ language }), | ||
| openaiModel: "gpt-5.4-mini", | ||
| openaiModel: "", | ||
| setOpenaiModel: (model) => set({ openaiModel: model }), |
Comment on lines
+256
to
260
| } else { | ||
| setAvailableModels([]); | ||
| setOpenaiModel(""); | ||
| setApiKeyStatus("invalid"); | ||
| } |
Comment on lines
286
to
290
| } else { | ||
| setApiKeyStatus("invalid"); | ||
| setAvailableModels([]); | ||
| setOpenaiModel(""); | ||
| } |
Comment on lines
291
to
295
| } catch { | ||
| setApiKeyStatus("invalid"); | ||
| setAvailableModels([]); | ||
| setOpenaiModel(""); | ||
| } |
Comment on lines
+54
to
+58
| onKeyDown={(event) => { | ||
| if (event.key === "Enter" && (event.ctrlKey || event.metaKey)) { | ||
| onSend(); | ||
| } | ||
| }} |
Comment on lines
+23
to
+27
| {items.map((item) => ( | ||
| <Typography key={item} level="body-sm" sx={{ color: "neutral.700", lineHeight: 1.55 }}> | ||
| {item} | ||
| </Typography> | ||
| ))} |
Comment on lines
+37
to
+47
| <IconButton | ||
| component="a" | ||
| href="https://github.com/CUinspace233/mock-mate" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| variant="plain" | ||
| size="sm" | ||
| color="neutral" | ||
| > | ||
| {feature.icon} | ||
| </Box> | ||
| <Box> | ||
| <Typography sx={{ color: "#fff", fontWeight: 600, fontSize: "0.95rem" }}> | ||
| {feature.title} | ||
| </Typography> | ||
| <Typography sx={{ color: "rgba(255,255,255,0.55)", fontSize: "0.82rem" }}> | ||
| {feature.desc} | ||
| </Typography> | ||
| </Box> | ||
| </Box> | ||
| ))} | ||
| </Box> | ||
|
|
||
| {/* Trust line */} | ||
| <Box | ||
| sx={{ | ||
| position: "absolute", | ||
| bottom: 32, | ||
| display: "flex", | ||
| alignItems: "center", | ||
| gap: 1, | ||
| }} | ||
| > | ||
| <Typography | ||
| sx={{ | ||
| color: "rgba(255,255,255,0.35)", | ||
| fontSize: "0.75rem", | ||
| }} | ||
| > | ||
| Trusted by candidates preparing for top tech companies | ||
| </Typography> | ||
| <IconButton | ||
| component="a" | ||
| href="https://github.com/CUinspace233/mock-mate" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| variant="plain" | ||
| size="sm" | ||
| sx={{ "& svg": { color: "rgba(255,255,255,0.5)" }, "&:hover": { bgcolor: "transparent" }, "&:hover svg": { color: "#fff" } }} | ||
| > | ||
| <GitHubIcon fontSize="small" /> | ||
| </IconButton> | ||
| </Box> | ||
| <GitHubIcon /> | ||
| </IconButton> |
Comment on lines
+97
to
+99
| <IconButton variant="plain" color="neutral" onClick={() => setDrawerOpen(true)}> | ||
| <MenuIcon /> | ||
| </IconButton> |
CUinspace233
force-pushed
the
frontend_redesign
branch
from
June 8, 2026 17:34
e806824 to
d59ef7f
Compare
…d UI updates - Added a comprehensive DESIGN.md file outlining the MockMate design system, including principles, visual system, and product positioning. - Updated the favicon in index.html to use an SVG format for better scalability. - Removed unused CSS animations from App.css to streamline styles. - Enhanced theme colors and typography in theme.ts for improved visual consistency. - Refactored components to align with the new design system, including updates to AuthLayout, InterviewChat, and ProgressChart for better layout and styling. - Introduced a new MockMateIcon component for consistent branding across the application. - Adjusted various components to improve accessibility and user experience, including layout refinements in InterviewTraining and ResumeDrill.
CUinspace233
force-pushed
the
frontend_redesign
branch
from
June 8, 2026 17:37
d59ef7f to
f83e214
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.