feat(web/ui): consolidate dialogs, cards, and breakpoints (Pass 3)

- Unify modal/dialog system; .modal-* are now aliases of .dialog-*
- Migrate WorkspacesPage, start-tool-modal, merge-dialog, workspace-tools-panel to .dialog-*
- Add .card-sm/.card-md/.card-lg/.card-elevated/.card-borderless modifiers
- Apply card utilities across workspaces, projects, ssh-keys, workspace-detail, git-history
- Remove duplicated card-like background/border/padding from page CSS
- Remove 860px breakpoint; standardize on 767px/768px mobile split
- Add docs/development/ui-review-checklist.md
- Archive web-ui-spacing-typography-rework OpenSpec change
This commit is contained in:
Developer
2026-06-16 15:27:45 +00:00
parent 4f4939406f
commit 6e419f815d
25 changed files with 752 additions and 202 deletions
+2 -2
View File
@@ -107,7 +107,7 @@ export const GitHistoryPage = () => {
{commits.map((commit) => (
<div
key={commit.hash}
className={`commit-item ${selectedCommit === commit.hash ? "selected" : ""}`}
className={`card card-sm commit-item ${selectedCommit === commit.hash ? "selected" : ""}`}
onClick={() => void handleCommitClick(commit.hash)}
role="button"
tabIndex={0}
@@ -146,7 +146,7 @@ export const GitHistoryPage = () => {
</div>
{selectedCommit && (
<div className="commit-detail-panel">
<div className="card card-lg commit-detail-panel">
<div className="detail-header">
<h3>Commit Details</h3>
<button className="ghost-button" onClick={handleCloseDetail} type="button">
+4 -4
View File
@@ -120,10 +120,10 @@ export function WorkspacesPage() {
{startWorkspace && (
<div
className="modal-overlay"
className="dialog-overlay"
onClick={() => setStartWorkspace(null)}
>
<div className="modal-content" onClick={(e) => e.stopPropagation()}>
<div className="dialog" onClick={(e) => e.stopPropagation()}>
<h3>Start Tool</h3>
<ToolStarter
workspace={startWorkspace}
@@ -202,8 +202,8 @@ export function WorkspacesPage() {
)}
{startWorkspace && (
<div className="modal-overlay" onClick={() => setStartWorkspace(null)}>
<div className="modal-content" onClick={(e) => e.stopPropagation()}>
<div className="dialog-overlay" onClick={() => setStartWorkspace(null)}>
<div className="dialog" onClick={(e) => e.stopPropagation()}>
<h3>Start Tool</h3>
<ToolStarter
workspace={startWorkspace}