You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🤖 feat: responsive ChatInput controls with compact display (#517)
Changes chat controls to use compact display on narrow viewports instead
of hiding elements entirely.
## Changes
### 1. **1M Context Label**
- Changed from "1M Context" to just "1M" (always, not viewport
dependent)
- Reduces horizontal space usage while keeping meaning clear
### 2. **Thinking Slider**
- Wide viewports (>550px): Full slider with visual feedback
- Narrow viewports (≤550px): Compact clickable badge that cycles through
levels (off → low → medium → high → off)
- Badge maintains the same visual styling (color, glow) as the slider
label
- Tooltip explains click-to-cycle behavior
### 3. **Mode Switch**
- Wide viewports (>550px): Shows both "Exec" and "Plan" buttons in
toggle group
- Narrow viewports (≤550px): Shows only the active mode as a clickable
badge that cycles to the other mode
- Maintains same color styling (exec mode = blue, plan mode = purple)
## Technical Implementation
- Added `compact` prop to `ThinkingSliderComponent` and `ToggleGroup`
components
- Both full and compact versions are rendered in DOM, CSS handles
show/hide with `max-[550px]:hidden` and `max-[550px]:flex`
- Compact controls use click-to-cycle pattern for toggling between
states
- All controls remain fully functional at any viewport size
## Testing
- ✅ `make typecheck` passes
- ✅ `make lint` passes
- ✅ `make test` passes (955 tests)
- Verified responsive behavior at 400px, 500px, 550px, and 800px
viewport widths
_Generated with `cmux`_
0 commit comments