Skip to content

feat: mobile responsive infrastructure foundation (#262)#265

Merged
mikkisguy merged 3 commits into
mainfrom
262-mobile-responsive-infrastructure
Jul 7, 2026
Merged

feat: mobile responsive infrastructure foundation (#262)#265
mikkisguy merged 3 commits into
mainfrom
262-mobile-responsive-infrastructure

Conversation

@mikkisguy

@mikkisguy mikkisguy commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Issue

Closes #262

What changed

CSS & Tokens

  • Added mobile: 375px breakpoint to Tailwind screens config, enabling mobile: and max-mobile: variants

Touch targets (WCAG 2.5.5)

  • Button variants: All size variants (default, sm, lg, icon) bumped to 44px minimum height via h-11 / min-h-11 + min-w-11 on icon
  • Switch: Restructured with 44x44px touch target wrapper; visual track/thumbs remain proportional
  • Select trigger: Added min-h-11 for 44px minimum height
  • Tabs trigger: Added min-h-11 for 44px minimum height
  • DialogShell close button: Added size-11 with flex centering and rounded corners (44x44px touch target)

Dialogs

  • DialogContent: Added max-mobile:p-4 to reduce padding on screens <375px
  • DialogShell: max-mobile:p-4 on header, body, and footer sections
  • ConfirmDialog: max-mobile:p-4 on header and footer sections

Table

  • Existing overflow-auto wrapper already handles horizontal overflow correctly — no changes needed

Verification

  • pnpm typecheck — passes across all 4 projects
  • pnpm lint (frontend) — 2 pre-existing warnings only
  • pnpm test (frontend) — 860/861 pass (1 pre-existing flaky performance benchmark timeout)

Files changed

  • apps/frontend/tailwind.config.js
  • apps/frontend/src/components/ui/button-variants.ts
  • apps/frontend/src/components/ui/switch.tsx
  • apps/frontend/src/components/ui/select.tsx
  • apps/frontend/src/components/ui/tabs.tsx
  • apps/frontend/src/components/ui/DialogShell.tsx
  • apps/frontend/src/components/ui/dialog.tsx
  • apps/frontend/src/components/ui/confirm-dialog.tsx

@oracle review

Skipped — diff is small (~50 lines, 8 files), doesn't touch auth/DB/API routes/security boundaries, and architectural choices are straightforward (Tailwind class changes + one component restructure).

Summary by CodeRabbit

  • New Features

    • Added a new mobile (375px) breakpoint to improve responsive behavior on smaller screens.
  • Bug Fixes

    • Improved mobile spacing/padding for dialog and confirm dialog layouts, including scroll regions and footers.
    • Enhanced accessibility for dialog close controls with clearer labeling.
    • Increased touch-friendly minimum heights across buttons, selects, tabs, triggers, and certain input variants.
    • Refined switch styling for clearer on/off state visuals.

- Add mobile (375px) breakpoint to Tailwind config
- Bump all button size variants to 44px minimum (WCAG 2.5.5 touch target)
- Ensure Switch, Select trigger, and Tabs trigger meet 44px minimum height
- Add 44x44px touch target to DialogShell close button
- Add mobile-responsive padding (max-mobile:p-4) to DialogContent,
  DialogShell, and ConfirmDialog
- Restructure Switch component with proper touch target wrapper
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
branchforge-docs Ready Ready Preview, Comment Jul 7, 2026 2:27pm

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 1b684ab.

@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3ec944db-0062-4bd8-b2f0-9f2b9c425afd

📥 Commits

Reviewing files that changed from the base of the PR and between fa721a6 and 1b684ab.

📒 Files selected for processing (1)
  • apps/frontend/src/components/ui/input.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/frontend/src/components/ui/input.tsx

📝 Walkthrough

Walkthrough

This PR adds a 375px mobile breakpoint and updates shared base UI components to increase touch targets and apply responsive padding in dialog layouts.

Changes

Mobile responsive infrastructure

Layer / File(s) Summary
Mobile breakpoint token
apps/frontend/tailwind.config.js
Adds a mobile: "375px" screen breakpoint.
Touch target sizing for interactive components
apps/frontend/src/components/ui/button-variants.ts, apps/frontend/src/components/ui/input.tsx, apps/frontend/src/components/ui/select.tsx, apps/frontend/src/components/ui/switch.tsx, apps/frontend/src/components/ui/tabs.tsx
Increases minimum heights and widths for shared buttons, inputs, select trigger, switch, and tabs trigger; switch track styling is also restructured for checked and unchecked states.
Dialog responsive padding and close button
apps/frontend/src/components/ui/DialogShell.tsx, apps/frontend/src/components/ui/confirm-dialog.tsx
Adds max-mobile:p-4 padding to dialog sections and standardizes the DialogShell close button classes and label.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related issues

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main mobile responsiveness foundation changes.
Linked Issues check ✅ Passed The PR adds a 375px mobile breakpoint and updates base controls and dialog padding to meet the foundation requirements in #262.
Out of Scope Changes check ✅ Passed The changes stay within the base UI/mobile-responsiveness scope and do not introduce unrelated feature or page-level updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 262-mobile-responsive-infrastructure

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/frontend/tailwind.config.js`:
- Around line 25-27: The Tailwind breakpoint config in the main theme is
overriding all default responsive variants, leaving only the custom `mobile`
screen. Move the `mobile` entry from `theme.screens` into `theme.extend.screens`
in the Tailwind config so the default `sm`/`md`/`lg`/`xl`/`2xl` breakpoints
remain available across the frontend.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ec3fbbf1-0ec0-4ef9-b896-9dfbb5ec3c2f

📥 Commits

Reviewing files that changed from the base of the PR and between 6bdb6e1 and f47e525.

📒 Files selected for processing (8)
  • apps/frontend/src/components/ui/DialogShell.tsx
  • apps/frontend/src/components/ui/button-variants.ts
  • apps/frontend/src/components/ui/confirm-dialog.tsx
  • apps/frontend/src/components/ui/dialog.tsx
  • apps/frontend/src/components/ui/select.tsx
  • apps/frontend/src/components/ui/switch.tsx
  • apps/frontend/src/components/ui/tabs.tsx
  • apps/frontend/tailwind.config.js

Comment thread apps/frontend/tailwind.config.js Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/frontend/src/components/ui/input.tsx`:
- Around line 31-34: The non-file input styling in input and inputVariants
applies min-h-11 universally, which makes size="sm" lose its compact height.
Update the class logic in the input component so the 44px minimum only applies
when size is "default" (or otherwise constrain it to the intended touch-target
case), while preserving the smaller height for the sm variant.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3964c7b9-210f-48cb-ac78-f30627f40288

📥 Commits

Reviewing files that changed from the base of the PR and between f47e525 and fa721a6.

📒 Files selected for processing (2)
  • apps/frontend/src/components/ui/input.tsx
  • apps/frontend/tailwind.config.js
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/frontend/tailwind.config.js

Comment thread apps/frontend/src/components/ui/input.tsx
@mikkisguy mikkisguy merged commit a128b54 into main Jul 7, 2026
11 of 12 checks passed
@mikkisguy mikkisguy deleted the 262-mobile-responsive-infrastructure branch July 7, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mobile responsive infrastructure (foundation)

1 participant