First of all, how does this differ from existing Nim GUI libraries like
[NiGui](https://github.com/trustable-code/NiGui),
[ui](https://github.com/nim-lang/ui), [nimx](https://github.com/yglukhov/nimx)
(cross-platform), or more comparably [wNim](https://github.com/khchen/wNim)
(Windows only)? *
Looking at the API - it doesn't feel like very idiomatic Nim to me, yet.
1\. Procs like `CreateButton`, `NewColor`, and `AddHandler` should be in
camelCase to avoid confusion with types which are in PascalCase.
2\. I'd also get rid of all the `Create{Button,Calendar,RichEdit}` procs in
favor of a generic `Create` proc where the first argument is a `Control`.
3\. `CreateButton` doesn't seem to be actually creating the button, since I
think that's done earlier by `var b1 = Button()`, so maybe it should be called
`RenderButton` or just `render` following my last point.
> And then i will post the full code. Before that, i would like to learn how
> people are using github and publish their code via github.
I honestly recommend just putting this in a repo on GitHub and working on it in
the open, even if it's a WIP. That way people can come across it, contribute,
and see the history of changes you've made and maybe understand why.
> And i also want to learn how to use nimble to deploy my library.
This part's fairly simple thanks to Nimble's CLI but handling binaries and
configs with UI libraries can get tricky.
\---
* The main reason I ask is: If this is a project you're using to learn and all,
that's totally cool. But there's already a lot out there for GUI projects (I
haven't listed them all) and we seem to be stalling at certain points on a lot
them rather than pushing a couple implementations to a high standard.
For example `NiGui` is great but missing a lot of widgets and PRs were left to
rot. `ui` has a lot of widgets and is cross-platform but can be scratchy to
build (I had/have a lot of trouble on Windows). `wNim` is spectacular but it's
Windows only. All this being said, don't let me kill your vibe as far as
working on this goes!