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.0.tar.gz (342.7 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.0-py3-none-any.whl (350.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for coshui-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6d10150f41cb462d07c91e04b942f1586654b45d08f3fb6e743923bdfd38e81c
MD5 98207e01e7c7f2ae2b8e7654c5672729
BLAKE2b-256 b9cad7285d005ec6d1165964239d168a9d879f8b96fe91ec5046e0751181b3ba

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for coshui-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5803aa5cf6d04357cf5980233ff91b4aa49bcb2c74aecc830f0c23c1f8663e99
MD5 2a2314f9482b5bafce53313dfe61ecf1
BLAKE2b-256 9daefa3fdffe61e20d92f0936678e67b31a001638159c65d8c2538956499b161

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