CustomTkinter is a Python UI library based on Tkinter that provides modern, fully customizable widgets. These widgets are created and used just like standard Tkinter widgets and can also be combined with them seamlessly.

The widgets and window colors adapt to the system's appearance settings or can be manually set to 'light' or 'dark' mode. Additionally, all CustomTkinter widgets and windows support HighDPI scaling across Windows and macOS.

With CustomTkinter, you can achieve a consistent and modern look across all desktop platforms, including Windows, macOS, and Linux.

Appearance Mode and Scaling Adjustments

CustomTkinter can automatically adapt to Windows 10/11 light or dark mode:

  • Windows 11 with dark mode and 'blue' theme

  • macOS in light mode with the default 'blue' theme

Buttons with Images

You can add an image to a CTkButton by passing a PhotoImage object using the image argument. If you don't want any text, set text="". Alternatively, you can specify both text and image positioning using the compound option.

Scrollable Frames

CustomTkinter allows the creation of scrollable frames, both vertically and horizontally. These frames can be combined with any other widget for flexible UI design.


These are just a few examples of what can be done with CustomTkinter. In this tutorial, we will explore more features and, by the end, create an app to demonstrate its capabilities in practice.