mínt
mint is minimal, renderer agnostic ui library for Haxe.
“
m
inimalint
erface”
Haxe is an expressive, beautiful modern programming language
that compiles its own code into other languages. learn more
About
Purpose
mint is a game and tool focused library.
mint is intentionally minimal and to the point.
It is designed around the notion that not every game
looks the same. Not every game uses the same UI skin
across all UI elements. That games are particularly
nuanced when it comes to user interfaces and interaction.
Goals
- efficient - no superfluous code or requirements for controls
- light weight - only the essentials, easy to include
- easy to use - rapid iteration for prototyping UI and UI based games
- flexible - per control renderer instances allow nuanced visual diversion
- extensible - Designed for writing UI, quickly and to the point
- agnostic - handles logic. abstracts the framework and layout specifics
This means the core library remains pure, and ideally use case specific
controls are shared via simple, isolated controls with similar intentions.
Release notes
Try the demo
http://snowkit.github.io/mint/demo/
rendered in luxe engine
setup
haxelib git mint https://github.com/snowkit/mint.git
quick start
- create a canvas
- feed it events!
- canvas.mousemove({ … });
- canvas.keydown({ … });
- canvas.update(dt);
Alpha
Please note
mint is currently considered alpha, which means there may be bugs, inconsistencies, incomplete implementations, and possible minor API changes. It is still considered fairly usable and is being used by multiple tools and games, but there are things to tighten up before it can be called beta or final.
Join us in developing and testing the library and tools, below.
luxe specifics
The mint.render.luxe
code and test_luxe
folders are temporarily stored
in the main repo for iteration and examples of a complete renderer, for the tests.
In the near future this will be moved to it’s own repo as it’s meant to be.
Examples
In the repo and in the wild
- See the tests/test_luxe folder
- See https://github.com/FuzzyWuzzie/LuxeParticleDesigner/
Controls
Current default controls include
- Control (empty)
- Canvas
- Button
- Checkbox
- Dropdown
- Image
- Label
- List
- Panel
- Progress
- Scroll area
- Slider
- TextEdit
- Window
Quick look
class Example {
...
function create() {
var rendering = new YourFrameworkMintRenderer();
canvas = new mint.Canvas({
name:'canvas',
rendering: rendering,
x: 0, y:0, w: 960, h: 640,
options: {
framework_specific_option: new FrameworkType()
}
});
new mint.Label({
parent: canvas,
name: 'label',
x:10, y:10, w:100, h:32,
text: 'hello mínt',
align:left,
text_size: 14,
onclick: function(_,_) { trace('hello mint!'); }
});
}
}
Contribute
Feedback, bugs, PR’s and suggestions definitely welcome!
(They will be weighted against the purpose and goals of the library)
mint is a snõwkit community library