feat: Add comprehensive appearance customization system#151
Open
olereon wants to merge 6 commits into
Open
Conversation
- Add Appearance tab in Settings with font size, panel width, and keyboard layout options - Implement global font scaling system affecting all UI text (8 size options: small to giant) - Add panel width customization with 8 options from compact (768px) to full width with padding - Create keyboard layout support for COLEMAK, DVORAK, and WORKMAN with real-time translation - Add PreferencesContext for centralized app preferences management - Create KeyboardInput and KeyboardTextarea components with layout translation - Implement CSS custom properties for dynamic font and panel scaling - Update FloatingPromptInput to use keyboard-aware textarea component - Add concurrently package and dev:tauri script for development workflow 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add JSDoc comments to all exported functions and types - Document component props and interfaces - Add usage examples for hooks - Improve code documentation for maintainability
- Fix tab overflow at large font sizes with responsive grid layout - Apply panel width setting to ALL GUI panels (not just main content) - Change default panel width to 1600px (wider option) - Update CSS to target all max-width classes and common containers - Improve accessibility for users with large fonts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…er coverage - Add Ultra Wide+ (2560px) panel width option for extreme wide screens - Change default panel width to Ultra Wide (1920px) for better modern display support - Apply panel width settings to ALL GUI panels including Settings and Usage Dashboard - Ensure max-w-4xl and max-w-6xl containers respect the global panel width setting - Improve description to clarify panel width affects all panels, not just main content 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…tor toolbar - Add specific CSS overrides for div.max-w-4xl, div.max-w-5xl, div.max-w-6xl to ensure Settings and other panels respect panel width setting - Scale MDEditor toolbar buttons, icons, and height according to font size setting - Apply font scaling to toolbar SVG icons and button padding for consistent UI scaling - Fix panel width application for Settings, Usage Dashboard, and CLAUDE.md editor 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
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.
Feature: Add comprehensive appearance customization system
Summary
This pull request introduces a comprehensive appearance customization system to Claudia, addressing accessibility needs for users with high-resolution monitors and alternative keyboard layouts. The feature adds:
Problem Solved
Approach
1. Global Font Scaling System
--font-scale) that cascade through the entire UI--font-size-xsthrough--font-size-4xl2. Universal Panel Width Management
--panel-max-widthfor dynamic panel sizing3. Responsive Tab Layout
4. Keyboard Layout Translation
KeyboardInputandKeyboardTextareacomponents with automatic translationTechnical Implementation
New Components
PreferencesContext- Centralized state management for appearance settingsKeyboardInput- Input component with layout translationKeyboardTextarea- Textarea component with layout translationNew Hooks
usePreferences- Access appearance preferences throughout the appuseKeyboardLayoutInput- Handle keyboard translation logicNew Utilities
keyboardLayouts.ts- Complete keyboard layout mappings and translation functionsModified Files
Settings.tsx- Added "Appearance" tab with all customization optionsApp.tsx- Integrated PreferencesProvider for app-wide preferencesFloatingPromptInput.tsx- Updated to use KeyboardTextarea for layout supportstyles.css- Added global CSS scaling systempackage.json- Addedconcurrentlydependency for development workflowFeatures Details
Font Size Options
Panel Width Options
Keyboard Layouts
Testing
Screenshots
Font Size Scaling
Panel Width Options
Keyboard Layout Settings
Dependencies
concurrently@^8.2.2for improved development workflow (dev:tauriscript)Notes
Benefits
This feature significantly improves the user experience and accessibility of Claudia while maintaining backward compatibility and following the project's coding standards.