Skip to content

feat: enhance banner aesthetics with gradient colors, Unicode fonts, and demo mode#1

Merged
veteranbv merged 11 commits into
mainfrom
002-i-would-like
Oct 11, 2025
Merged

feat: enhance banner aesthetics with gradient colors, Unicode fonts, and demo mode#1
veteranbv merged 11 commits into
mainfrom
002-i-would-like

Conversation

@veteranbv
Copy link
Copy Markdown
Owner

Summary

Major visual overhaul of the banner system with new default styling, gradient color support, and special rendering modes. The new defaults provide a tighter, more professional appearance using Unicode block characters similar to modern CLI tools.

  • Switches default font from slant to ANSI Regular (compact Unicode blocks)
  • Implements gradient color cycling for banner lines
  • Adds 6 new Unicode block fonts for diverse styling options
  • Introduces --demo flag for screenshots with fake data
  • Introduces --text flag for custom ASCII art rendering
  • Improves visual spacing with padding around banner output

Key Changes

Added

  • Gradient color support - Banner lines cycle through color gradients (default: brightblue → blue → cyan → brightcyan → white)
  • 6 new Unicode block fonts - ANSI Regular, ANSI Shadow, Block, Blocks, DOS Rebel, Basic
  • --demo flag - Display 'SYSGREET' banner with realistic fake data for screenshots
  • --text flag - Render custom text as ASCII art (e.g., --text "Production DB")
  • Visual padding - Blank line before banner output for better aesthetics
  • Bootstrap system - First-run config file creation with interactive prompts

Changed

  • Default font - slantANSI Regular (compact Unicode blocks)
  • Default colors - Single color → gradient (5-color progression)
  • Banner style - Unicode block characters (█) for tighter, more readable output
  • Project rename - hostinfosysgreet throughout codebase

Documentation

  • Updated README.md with hero image and demo screenshot
  • Updated all example configs to show gradient configuration
  • Documented all 8 available fonts in docs/examples/fonts.md
  • Added special modes section to README (demo, text, disable)
  • Updated quickstart guide with new defaults and examples
  • Comprehensive CHANGELOG entry

Test Plan

  • All unit tests pass (make test)
  • Build succeeds (make build)
  • Bootstrap tests verify new default font (ANSI Regular)
  • Config tests verify gradient parsing from YAML/TOML
  • Integration tests updated for new defaults
  • Demo mode renders correctly with fake data
  • Text mode renders custom ASCII art
  • Gradient colors display correctly in terminal

Breaking Changes

⚠️ Default appearance changes - Users with no config will see ANSI Regular font with gradient colors instead of slant font with random single color. Existing configs are unaffected.

Visual Comparison

Before: slant font, single random color
After: ANSI Regular font, gradient colors (brightblue → white)

See media/demo.jpg for the new default output.

- Update project name in all relevant files including .gitignore, .goreleaser.yml, README, and configuration examples.
- Modify binary output name and build commands in Makefile and CI workflows.
- Adjust environment variable prefixes and configuration paths to reflect the new project name.
- Update tests and documentation to reference sysgreet instead of hostinfo.
- Add demo mode to sysgreet for showcasing a static banner with fake data.
- Update README to include a demo output image and improve aesthetic descriptions.
- Modify configuration examples to reflect new font options and gradient support.
- Adjust ASCII rendering to support gradient colors in the banner output.
- Replace the existing sysgreet.png with a new version to enhance visual branding.
- Replace the existing logo with a padded version to improve visual presentation.
- Insert a newline character before the header in the layout rendering to improve output formatting.
- Added gradient color support for banner lines, cycling through a defined color gradient.
- Introduced 6 new Unicode block fonts for enhanced ASCII art rendering.
- Implemented `--demo` flag to display a 'SYSGREET' banner with fake data for demos.
- Added `--text` flag to render custom text as ASCII art.
- Updated README and documentation to reflect new features and configuration examples.
- Changed expected default ASCII font from "slant" to "ANSI Regular" in multiple test cases.
- Updated integration tests to reflect the new default font setting for consistency across configurations.
- Refactored the Bootstrap function to improve readability and maintainability by extracting logic into separate functions for handling existing configurations and creating new ones.
- Introduced helper functions for merging configuration settings, enhancing modularity and clarity in the configuration management process.
- Updated tests to ensure consistent behavior across configuration handling scenarios.
- Updated the error variable name from `ErrUserCancelled` to `ErrUserCanceled` for consistency in the bootstrap package.
- Adjusted related error handling in the bootstrap process to reflect the new variable name.
- Improved comments and formatting in the system collector and rendering code for clarity.
- Added 'sysgreet' to .gitignore to exclude the binary from version control.
- Removed the 'sysgreet' binary file from the repository.
- Adjusted the CI workflow to maintain coverage reporting without changes to test execution.
- Replaced the 'exportloopref' linter with 'copyloopvar' in the .golangci.yml file to enhance code quality checks.
@veteranbv veteranbv merged commit b212a2d into main Oct 11, 2025
8 checks passed
@veteranbv veteranbv deleted the 002-i-would-like branch October 11, 2025 19:58
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.

1 participant