minicrossterm/docs/mdbook/src/styling.md
Timon 1e332daaed
Refactor and API stabilization (#115)
- Major refactor and cleanup.
- Improved performance; 
    - No locking when writing to stdout. 
    - UNIX doesn't have any dynamic dispatch anymore. 
    - Windows has improved the way to check if ANSI modes are enabled.
    - Removed lot's of complex API calls: `from_screen`, `from_output`
    - Removed `Arc<TerminalOutput>` from all internal Api's. 
- Removed termios dependency for UNIX systems.
- Upgraded deps.
- Removed about 1000 lines of code
    - `TerminalOutput` 
    - `Screen`
    - unsafe code
    - Some duplicated code introduced by a previous refactor.
- Raw modes UNIX systems improved     
- Added `NoItalic` attribute
2019-04-10 23:46:30 +02:00

4.4 KiB

Styling Module

Crossterm provides options for you to style your font and terminal. Take for example coloring output and applying attributes.

Color support Windows systems with versions less than 10 will only have support for 16 colors and don't have any support for attributes. Most UNIX-terminal is supporting lots of colors and attributes.

Colors

There are 16 base colors which available for almost all terminals even windows 7 and 8.

Light Variant Dark Variant
Grey Black
Red DarkRed
Green DarkGreen
Yellow DarkYellow
Blue DarkBlue
Magenta DarkMagenta
Cyan DarkCyan
White DarkWhite

In addition to 16 colors, most UNIX terminals and Windows 10 consoles are also supporting more colors. Those colors could be: True color (24-bit) coloring scheme, which allows you to use RGB, and 256 (Xterm, 8-bit) colors. Checkout the examples on how to use this feature.

Attributes

Only UNIX and Windows 10 terminals are supporting attributes on top of the text. Crossterm allows you to add attributes to the text. Not all attributes are widely supported for all terminals, keep that in mind when working with this.

Crossterm implements almost all attributes shown in this Wikipedia-list.

Attribute Support Note
Reset Windows, UNIX This will reset all current set attributes.
Bold Windows, UNIX This will increase the font sensitivity also known as bold.
Dim Windows, UNIX This will decrease the font sensitivity also known as bold.
Italic Not widely supported, sometimes treated as inverse. This will make the font italic.
Underlined Windows, UNIX An line under a word, especially in order to show its importance.
SlowBlink Not widely supported, sometimes treated as inverse. less than 150 per minute
RapidBlink Not widely supported MS-DOS ANSI.SYS; 150+ per minute;
Reverse Windows, UNIX foreground and background colors
Hidden Windows, UNIX
Fraktur UNIX characters legible, but marked for deletion.
DefaultForegroundColor Unknown Implementation defined (according to standard)
DefaultBackgroundColor Unknown Implementation defined (according to standard)
Framed Not widely supported Framed font.
Encircled Unknown This will turn on the encircled attribute.
OverLined Unknown This will draw a line at the top of the font.

(There are a few attributes who disable one of the above attributes, I did not write those down to keep the list short).

Now we have covered the basics of styling lets go some examples.


Next up: Examples