A GUI toolkit written in pure Go.
This repository has been archived on 2023-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Sasha Koshka 6ede0d0770 Added the BackgroundParent interface
Parents are now able to draw backgrounds for their children. This
means we can now have elements inside other elements that aren't
restricted to one background color.
2023-04-02 22:02:55 -04:00
artist Created a convenience constructor for Inset 2023-03-23 18:05:30 -04:00
assets
backends TextBox supports copy/paste with keyboard commands 2023-03-31 03:25:46 -04:00
canvas
data Added more package-level comments 2023-03-31 13:50:26 -04:00
default Added the BackgroundParent interface 2023-04-02 22:02:55 -04:00
dirs
elements Added the BackgroundParent interface 2023-04-02 22:02:55 -04:00
examples Added a whole bunch of new icons 2023-04-02 17:55:24 -04:00
fixedutil
flow
input
layouts Added more package-level comments 2023-03-31 13:50:26 -04:00
popups I am going insane 2023-03-31 01:06:29 -04:00
shatter
textdraw Oh my god 2023-03-31 21:14:40 -04:00
textmanip TextBox has double-click to select word 2023-03-31 20:28:53 -04:00
xcf Added a whole bunch of new icons 2023-04-02 17:55:24 -04:00
backend.go I am going insane 2023-03-31 01:06:29 -04:00
config.go Added double click delay to config 2023-03-31 14:02:56 -04:00
element.go I am going insane 2023-03-31 01:06:29 -04:00
go.mod Apparently go mod replace can do this! 2023-03-30 21:37:57 -04:00
go.sum Apparently go mod replace can do this! 2023-03-30 21:37:57 -04:00
layout.go Re-organized module structure 2023-03-30 23:19:04 -04:00
LICENSE
parent.go Added the BackgroundParent interface 2023-04-02 22:02:55 -04:00
README.md
theme.go Added table patterns 2023-04-02 21:15:16 -04:00
tomo.go I am going insane 2023-03-31 01:06:29 -04:00
window.go Re-organized module structure 2023-03-30 23:19:04 -04:00

tomo

This repository is mirrored on GitHub.

Please note: Tomo is in early development. Some features may not work properly, and its API may change without notice.

Tomo is a retro-looking GUI toolkit written in pure Go. It is designed with these goals in mind:

  • Modularity: the core of Tomo is mostly composed of interfaces—and the overwhelming majority of its code resides in pluggable modules. If you don't need it, then dont import it—and you can be assured it won't be there.
  • Extendability: during the design of Tomo's API, use cases such as creating custom backends, elements, and layouts were given just as much importance as normal application building. Your custom element is a first-class citizen.
  • Independence: Tomo is minimally dependent on code outside of the Go standard library. Because of this, the file size of a compiled Tomo application is typically very small.
  • Frugality: Tomo foregoes things like animations and anti-aliasing in order to use a minimal amount of system resources without even having to touch the GPU.
  • Consistency: Tomo's design is not only consistent within itself, but also with the Go standard library. If you've worked with Go in the past, Tomo will feel pleasantly familliar.

You can find out more about how to use it by visiting the examples directory, or pull up its documentation by running godoc within the repository. You can also view it on the web on pkg.go.dev.