Skip to main content

A Python-first — Declarative-Mode — Backend-Agnostic — UI Library

Project description

CoshUI

The Python-first, Declarative-Mode, Backend Agnostic, UI Library.

CoshUI Logo

PyPI version Python License GitLab Docs

What is CoshUI?

CoshUI is a Python-first, declarative UI library inspired by CSS, Godot, and Dear ImGui. Unlike most Python UI libraries, CoshUI is fully backend-agnostic — write your UI once and render it with Pygame, Raylib, ModernGL, or any backends you build or are supported.

CoshUI features a full layout engine with flexbox-inspired sizing, a retained-state system, a tween animation system, a signal-based event model, and a theme system — all within in a declarative API that's simple to pick up without sacrificing flexibility.

How to Install

pip install coshui

CoshUI is backend-agnostic — install with your renderer of choice:

# Pygame
pip install coshui[pygame]

# Raylib
pip install coshui[raylib]

# ModernGL
pip install coshui[moderngl] # or [moderngl-mglw]

# Both
pip install coshui[all]

How to Use

CoshUI uses Python's context managers to define UI hierarchy through indentation — familiar if you've worked with HTML or CSS:

import coshui as cui

# Within your loop
with cui.CoshUIRenderer(...):
    with cui.Container(id="main_container", width=cui.FILL, height=cui.FILL, direction=cui.COLUMN, align=cui.ALIGN_CENTER, justify=cui.JUSTIFY_CENTER, gap=20):
        cui.Label(id="menu_label", text="CoshUI", width=200, height=50, font_size=64)
        cui.Button(id="print_btn", text="Print Hello World!", width=210)
        cui.Button(id="color_btn", text="Change Color!", width=210)

# Listen for signals
if cui.get_signal("print_btn", cui.CLICKED):
    print("Hello World!")

# Animate with one line
if cui.get_signal("color_btn", cui.CLICKED):
    cui.animate("background_color", "main_container", (200, 200, 200), 1.5, "ease_in_out")

To learn more, check out the examples or visit the documentation.

Documentation

CoshUI's documentation features the basic API coverage and all you need to know about how to use it. It can be viewed here.

Contributing

CoshUI is primarily developed on GitLab. Please open issues and pull requests there.

To learn more about how to contribute, check the contributing markdown.

Author

Main Developer and Maintainer: Jyle Frazier (Terra) Villareal

Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coshui-0.3.1.tar.gz (344.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

coshui-0.3.1-py3-none-any.whl (353.6 kB view details)

Uploaded Python 3

File details

Details for the file coshui-0.3.1.tar.gz.

File metadata

  • Download URL: coshui-0.3.1.tar.gz
  • Upload date:
  • Size: 344.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for coshui-0.3.1.tar.gz
Algorithm Hash digest
SHA256 ae9840b9d1f739120f5026674a7395e3221cd148cd3c2b26736d6debb2f3ac44
MD5 f44ce6428f703b3c84cbe7bb453964c5
BLAKE2b-256 ebacb9d1af5ce27f09ed113d34eb5442dac5bd7f8a28e7d0c47c90ed695a3fb2

See more details on using hashes here.

File details

Details for the file coshui-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: coshui-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 353.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for coshui-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 650520336b51b04bbbef3d57a7ee2fa04ba342474aa29cc0daa42511f855b518
MD5 573e343a23d81defc0a5ea18e7496a79
BLAKE2b-256 41cf60a115cf725fc24e73cb4e42262fc5e0d0fc66152249e5c298bac95fb491

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page