Colors and Themes
- Dominant language
- Rust
- Stars
- 22.5k
- Forks
- 773
- PR merge metrics
- No merged PRs in 30d
Description
## Scenario
I installed `gitui` on my bash. Unfortunately, the command bar display didn’t turn out well.
This happened because of some customizations to my terminal theme.
In the `gitui` documentation, the `Color Theme` section helped me, especially `command_fg` and `cmdbar_bg`.
In `issues`, some other posts also had some difficulty with the display (2286, [942]()) in the command bar.
## Suggestion
Use the `REVERSED` modifier.
I don’t know the language or the framework, but I noticed that the [styles]() in `rs-tui` accept modifiers, including `REVERSED`.
In bash, this modifier inverts the text and background colors.
If in `rs-tui` it does the same, this could help ensure the default theme of `gitui` is always readable.
An example of `REVERSE` in bash:
```bash
#!/bin/bash
BLUE='\033[0;34m'
RESET='\033[0m'
REVERSE='\033[7m'
echo -e "${BLUE}Normal blue text${RESET}"
echo -e "${BLUE}${REVERSE}Blue text with reverse style${RESET}"
```
> [!tip]
> In the bash example, using `reverse` should ensure good visibility in any theme.
> This is because it’s common for the default `blue` to be used in text, regardless of the theme. Thus, `blue` is typically distinct from the background.
> By applying the `reverse` style, the text takes on the background color. And the background takes on the `blue` color. This ensures the distinction between the two.
## What Not to Change
This suggestion is not intended to eliminate the option of setting a custom theme in `gitui`.
The suggestion merely provides an alternative so that the default theme is possibly always readable.
## References
An open project also focused on terminals that might bring some ideas is [starship.rs]( "starship.rs").
The `style strings` section in advanced configurations shows how flexible the style settings are ([https://starship.rs/advanced-config/#style-strings]()).
It seems that styles are specified as an array. For example, the array `(inverted fg:blue)` sets the font color to blue and then inverts the text and background colors.
This project has a comprehensive mapping of shells and terminals, as well as the limitations that may exist.
In `gitui` this would have some implications. This way of working likely doesn’t fit the `Ron format`.
And the formatting would be grouped by object. Ceasing to be:
```text
command_fg: Color::White
cmdbar_bg: Color::Blue
```
It would be unified to:
```text
command_bar: (inverted fg:blue)
```
Contributor guide
Assessment
This issue has not been assessed yet.