I've mentioned I was hoping to release mínt sooner than later.

Well, here it is!

Repo and site



http://snowkit.github.io/mint/

https://github.com/snowkit/mint

Release notes

The documentation has the majority of information you need to know.

It's got rough edges basically everywhere, because I am releasing this for the benefit of people brave enough to try and use it in a game jam, and it's about time it got some wider testing and application!

It's important to note that it is in alpha status, meaning that things are not completed, will be broken probably, and will require testing.

Auto layout

I spoke about the auto layout that was planned and I wanted to mention that this will definitely be available as a layout module quite soon - just that I had to focus on getting the core controls and rendering under control (heh) before continuing on the layouts.

It's very much coming along, if you haven't seen the demo on the chat - try it here

Modules

The idea behind layout and rendering being separated is that they should be modular. There are MANY cases where auto layout or heavy weight restructuring of controls is too costly, and doesn't fit. The tool that is mint is a sharp blade built for specifics.

It comes with a really simple constraint like layout helper (soon to be renamed) margins , which will help you make resizable layouts in the mean time, and give you an example for the kind of sharp use cases I'm referring to.

That includes rendering - framework specific rendering modules do not belong in the core library and as mentioned on the documentation, the luxe render module is currently in there for rapid iteration and example, and will soon be moved as well.

luxe render module

The library currently has a luxe render module that works out of the box, and has configurable colors for the majority of things. More information can be found in the luxe test project.

Other render modules?

I'll document this in detail soon. The code should be self explanatory, as it's quite straight forward. See the mint.render.luxe folder for rough examples.

In short, each control can have a Renderer , which can come from the canvas' default Rendering service, or a rendering service specified in the constructor.

Control guidelines

Whilst you are free to work on whatever is fitting for your project I'd like to make a quick note regarding sharable controls for others to use.

Let's make sure, together, that the base controls are really solid

Try to think about clean, clear controls that would fit in a gist.

Try to compose controls (not inherit) them

Compose controls from the base controls as much as you can

I think it's really cool to be able to need a simple ___ control and just find a nice succinct one that just works. If we can aim for not making monoliths out of the sharp tool we should have a really nice place to build from going forward.

Rambling

Previously, I went over some of the thoughts about mint and what I want/need from it. At the time, I wasn't happy with the code as it was and it wasn't fitting just right into the boundaries I wanted it in.

Recently however I had some ideas and managed to find some time to throw in some much needed changes, and it clicked. I was working on the asset packer, and the things I had been hoping to achieve started falling into place.

With some extra help from the handful of testers I had added to the repo, and the determined friends that spent their time finding most of the obvious bugs - it's ready enough!

These people played a role in some way or another and I wanted to say thanks, here.

jonparrott, dazKind BrodyB, Absurditure, FuzzyWuzzie, le-doux, jonathanhirz, jeremyfa, jtruher, shockham, anissen, bmfs, stbachmann, KeyMaster-, haxiomic, whuop

If i left you out sorry, let me know!

Thinking a lot

You may notice that the repo contains a 2 year history of random ideas and messy code. This is partly due to how I explore things design wise that I have an idea for but no clear execution (mentioned before). The other part of it is use cases, I can always use a UI but needed to spend time on more pressing things - leaving long gaps in the time frames.

I am happy with where the library ended up in terms of structure and workflow and I've managed to press through a lot of tools quickly with it, and look forward to solidifying it with the community and see what we can make of it further.

Conclusion

All in all, I'm excited to have it out of the unnecessarily dark perfectionist corner of my private repository collection and into the wild.

I hope it's helpful, and I look forward to finishing up the documentation, writing some clear examples, and seeing what we can do.

Let me know, as always, if you have feedback, ideas or fixes.

Enjoy!