#egui #theming #themes #dark #programmatic #applications #uniform

egui-aesthetix-lj

A Uniform and programmatic approach to theming Egui applications with some enhancements

1 unstable release

0.2.4 Aug 7, 2024

#438 in GUI

Custom license

215KB
651 lines

Egui-Aesthetix-lj


Crates.io Crates.io docs.rs Crates.io

A Uniform and Programmatic approach to theming Egui Applications

Table of Contents

About

This library is based on Egui-Aesthetix with some minor changes to fit my adaption of egui-dashboard which is used for my project 'egui-dashboard-duplicate-file-finder' (https://github.com/ljoeckel/egui-dashboard-duplicate-file-finder)

This library is my answer to theming egui. There are other libraries, and approaches. I like this method because it is trait based, so many themes could be added to this crate for everyone to use.

Default themes

The library ships with the following themes if default features are left on. These should look great on Mac, Windows and Linux alike.

  1. Standard Dark

  2. Standard Light

Other themes

There are plenty of other themes that can be specified through features

  1. Carl Dark

  2. Nord (Light and Dark)

  3. Tokyo Night (Dark and Storm)

  4. Catpuccin

    • TODO

Checkout the results

Screen Shots

Standard Dark theme on Kde Plasma

Standard Dark

Standard Light theme on Kde Plasma

Standard Light

Carl Dark theme Kde on Plasma

Standard Light

Nord Dark

Nord Dark

Nord Light

Nord Light

Tokyo Night

Tokyo Night

Tokyo Night Sorm

Tokyo Night Storm

Install

The library is very flexible and doesn't force you to include themes you don't want.

This includes default features which is the Aesthetix trait, and the StandardDark and StandardLight themes

egui-aesthetix = "0.2.3"

Only includes the Aesthetix trait, no themes will be included

egui-aesthetix = { version = "0.2.3", default-features = false }

Include all the themes

egui-aesthetix = { version = "0.2.3", features = ["all_themes"] }

Only include standard themes and a specified theme (here carl is used as the specified theme)

egui-aesthetix = { version = "0.2.3", features = ["standard", "carl" ] }

Only include nord themes

egui-aesthetix = { version = "0.2.3", features = ["nord"] }

Only include tokyo night themes

egui-aesthetix = { version = "0.2.3", features = ["tokyo_night"] }

Usage

Here is the dashboard template from the above screenshots using this crate for its themes. The code is straight forward to read. Reading the egui-aesthetix source code and the dashboard code should give you more than enough information and context to use it in your own applications as well as implement your own custom themes using the Aesthetix trait. Happy Theming!!

Maintainers

@thebashpotato

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

MIT © 2023 Matt Williams For changes MIT © 2023 Lothar Joeckel

Dependencies

~4–9MB
~84K SLoC