feat: Integrate Noora terminal UI design system - #46
Conversation
Phase 1 of Noora integration (P0): - Add NooraUI convenience methods for success/error/warning/info/debug - Migrate TerminalUI.info/success/warning/error/debug to use NooraUI - Add formatAsTerminalText() to ExFigWarningFormatter and ExFigErrorFormatter - Add comprehensive NooraUI tests (16 new tests) - Add TerminalText API tests for formatters This replaces direct Rainbow color calls with semantic Noora components (.success, .danger, .accent, .primary, .muted) for consistent theming. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add documentation for new NooraUI methods: - formatSuccess/Error/Warning/Info/Debug - formatMultilineError/Warning - Decision matrix for Noora vs custom components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add NooraUI.progressBarStep() wrapper for percentage-based progress - Add NooraUI.progressStep() wrapper for spinner with dynamic messages - Document decision matrix: when to use Noora vs custom components - Add migration guide: Rainbow to Noora for future formatters - Keep custom Spinner/ProgressBar for batch mode integration (80+ call sites) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
All tasks completed: - Phase 1: Semantic text formatting with Noora TerminalText - Phase 2: Progress wrappers (progressBarStep, progressStep) - Documentation: decision matrix, migration guide Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary of ChangesHello @alexey1312, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly refactors the terminal user interface by integrating the Noora design system. The primary goal is to achieve a more consistent, semantic, and maintainable approach to CLI output styling. This involves introducing a NooraUI adapter to centralize formatting logic, updating existing error and warning formatters to produce semantic TerminalText, and modifying the TerminalUI facade to delegate its message formatting to the new NooraUI layer. While core animation components like spinners and progress bars retain their custom implementations for specific UX benefits, the overall text output now benefits from Noora's structured approach, laying the groundwork for future UI enhancements and easier theming. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request successfully integrates the Noora design system for semantic terminal UI, which is a great step towards standardizing terminal output. The refactoring of TerminalUI and its formatters to use the new NooraUI wrapper simplifies the codebase and improves maintainability by centralizing formatting logic. The comprehensive documentation and tests for the new components are excellent.
I have identified a couple of areas for improvement: a bug in how multi-line warnings are constructed in ExFigWarningFormatter and a minor inconsistency in the dependency documentation.
Description
Migrate TerminalUI to use Noora semantic formatting for consistent terminal output styling across the CLI.
Changes