Mishka Chelekom - Phoenix and LiveView UI kit and components

Hey dear friends! :tada: We’ve implemented basic accessibility :wheelchair_symbol: across all our components!
You can now access it in version 0.0.5-alpha.12. :sparkles: Plus, we’ve squashed a lot of bugs! :bug: :white_check_mark:

Please help us to test before releasing! :folded_hands:t2:

First install/update

{:mishka_chelekom, "~> 0.0.5-alpha.12", only: :dev}

After that run

mix mishka.ui.gen.components --import --helpers --global
5 Likes

Hey Elixir friends, This is a Huge Update !! :fire::tada:

:rocket: Excited to announce Mishka Chelekom v0.0.5 is out! 5 new components, improved custom classes support, and accessibility across all components. :wheelchair_symbol::fire:

Support the project please :folded_hands:t2: :pleading_face:

Blog post

First install/update

{:mishka_chelekom, "~> 0.0.5", only: :dev}

After that run

mix mishka.ui.gen.components --import --helpers --global
11 Likes

Next version of Mishka Chelekom with support for dynamic design system (including daisyUI) will start from next week and this version might take a bit longer. We’re trying to convert all the currently hard-coded sections into Tailwind configs and CSS variables! :rocket: :sparkles:

2 Likes

Not sure if anyone asked this before, but is there also a standard way (i.e. a dependency ā€œhassleā€ based one) to use the components (instead of letting the installer do it automatically)?

Thanks

Hello dear friend. I’m not entirely sure I understand your question. If my explanation doesn’t fully address your issue, please provide more details or an example.

Generally, there are several ways to install components, as mentioned in our documentation:

Install each component separately:

mix mishka.ui.gen.component alert

Limiting a specific component, for example:

mix mishka.ui.gen.component alert --color info --variant default
# For Windows users please use `""` when you have more than
# one value for an argument
mix mishka.ui.gen.component alert --color "info,danger"

If you want to install all components with helpers macro (easy import):

mix mishka.ui.gen.components --import --yes
# Or you want to install helpers too
mix mishka.ui.gen.components --import --helpers --yes

If you want the CLI to do everything for you without needing anything else, simply run:

mix mishka.ui.gen.components --import --helpers --global --yes

This will even handle the replacement process with Phoenix components for you. The last method, installation with a single command, is my personal recommendation if you want to use all of our components.

Thank you in advance

Ref:

2 Likes

What I am asking is whether there’s a way to use the components without running the generators, i.e. simply add a certain dependency or dependencies to the web app in the project?

Thanks

1 Like

I’m sorry, I just realized. For now unfortunately No,
Our entire approach is based on CLI so that you can install whatever you need and easily customize it.
I think this is one of the features of this library makes it specific.

The quick and easy way is for you to create a project, put all the components in it, and install it. This is a temporary solution.

I will try to add an installable package to the project in future versions so that you won’t need the CLI.
I think this will be added in a few more versions. :folded_hands:t2:

Thank you.

1 Like

A first draft of mix assets has been added to the Mishka Chelekom project using igniter and the bun library in elixir— our first step toward bigger components like an editor.

Try out version 0.0.6-alpha.2 and use:

{:mishka_chelekom, "~> 0.0.6-alpha.2", only: :dev}

Example

# install
mix mishka.assets.deps axios 
mix mishka.assets.deps axios,lodash

# uninstall
mix mishka.assets.deps axios --remove
mix mishka.assets.deps axios,lodash --remove

If you have any of npm, yarn, or bun installed, the system will automatically use the first available one in that order—unless you specify otherwise. To choose a specific package manager, use an option like:

mix mishka.assets.deps axios --npm --yes

Note: You must also specify the package manager when removing a dependency.

If none of the three are available, bun will be used by default, and its binary will be placed in your build folder.

Road to add bigger components :fire::airplane::rocket:

4 Likes

Mishka Chelekom just passed 10K downloads :fire: :exploding_head: — and it’s only used in dev, not in prod! Hope elixir community support us more .
The next release will be our biggest yet, packed with optimizations.
It’ll take time, but it’s worth the wait. :heart::folded_hands:t2:

6 Likes

Hi my friends, it is not out long term update for Mishka Chelekom but this version fixes Phoenix 1.8 errors.

Download mishka_chelekom | Hex

We still working on our next version that will be our biggest one :heart::fire:

{:mishka_chelekom, "~> 0.0.7", only: :dev}
6 Likes

We’re excited to share that our library has been downloaded over 15,000 times on Hex.pm! :tada:
Thank you so much for your trust and support! :folded_hands:

Here’s some great news:
After months of trial and error, we finally opened a pull request in the Mishka Chelekom project! :rocket:
We’ve been working super hard to reach the next version, and you can check out the progress at the link below.

These days, we’re working full-time to bring the new release to life! :hammer_and_wrench::laptop:

It’s also worth mentioning that Tailwind v4 brought major changes, which unfortunately broke a lot of components :smiling_face_with_tear::frowning::yawning_face:. Fixing this has taken a huge amount of effort on its own!

But here’s the good part:

With this new version, you no longer need to dig into each component just to change colors. :rainbow:
We’ve moved all the colors into a CSS file, and the CLI now builds it for you effortlessly. :sparkles:

Please consider supporting the project so we can cover the costs and keep moving forward. :heart::money_with_wings:

9 Likes

Hello friends,
Yesterday, I released the first beta version. Due to the large number of changes, I really need your help with testing.
I hope you’ll support us by trying out the new version.
The minimum requirements are Tailwind 4 and Phoenix 1.8.

{:mishka_chelekom, "~> 0.0.8-beta.1", only: :dev}

For creating components

mix mishka.ui.gen.components --import --helpers --global
# OR
mix mishka.ui.gen.components --import --helpers --global --yes

By the way it creates priv/mishka_chelekom/config.exs for you and you can change the colors or another stuff! and run top command or if it is just about color just run this.

mix mishka.ui.css.config --regenerate

If you need create this config and change it, after that run the mishka.ui.gen.components

Please after install deps run
Initialize a configuration file:

mix mishka.ui.css.config --init

Force overwrite existing configuration with sample:

mix mishka.ui.css.config --init --force

We’re almost in the final stages of the release, and unless any major issues come up, I believe we’ll reach the new version within the next 3 to 4 days.
I hope we can count on your support with testing during this time. :heart: :folded_hands:t2: :safety_vest:

Thank you in advance

3 Likes

Hey :raising_hands:t2:

:rocket: Beta v2 was released yesterday!
We’ve almost completed a full revamp of all our components :hammer_and_wrench::sparkles:
Next, we’ll be focusing on addressing user-reported issues :lady_beetle::memo:
Huge thanks in advance for your support in testing the beta versions :folded_hands::blue_heart:

{:mishka_chelekom, "~> 0.0.8-beta.2", only: :dev}
3 Likes

We are absolutely thrilled to announce the release of version 0.0.8 of Mishka Chelekom! :tada: Hits 16K+ Downloads

This release represents over 21K lines of code changes across our components :gear: :carpentry_saw:


Key Highlights of v0.0.8:

:sparkles: Complete Tailwind 4 Migration: All components now leverage the latest Tailwind CSS capabilities

:wrench: Phoenix 1.8 Optimization: Full compatibility and performance improvements for the latest Phoenix release

:artist_palette: Custom Configuration System: No more manual color adjustments in generated code! Our new config file system enables you to:

  • Generate all components with your custom color palette

  • Implement your own CSS styling (which were defined in this lib components)

  • Achieve complete component customization with ease

:brick: New components and JsHooks: This version has some new components and Infrastructure JsHooks


Support Open Source Development This free and open-source project thrives with community support. If you find value in our work, please consider sponsoring us, even a coffee-sized contribution makes a difference! :hot_beverage:

Please for more information, read this Blog Post:

Repo: GitHub - mishka-group/mishka_chelekom: Mishka Chelekom is a fully featured components and UI kit library for Phoenix & Phoenix LiveView

Doc: Chelekom - Phoenix & LiveView UI kit and components

Hex: mishka_chelekom | Hex

10 Likes

Would it automatically remove all Tailwind stuff in the generated code?

1 Like

Hi dear Eiji,
In this version, we’ve moved all color-related styles outside of the components and provided them as examples. The result is a file called mishka_chelekom.css, which is located in the vendor directory of your project. We’ve also added it as an import in app.css.

Every line in that file — which currently contains only color definitions — can be overridden via the config file located in the priv directory.

You can see it in action in the video below:
https://www.youtube.com/watch?v=kVRgVgD9xZ4


The only important point to mention here is that we completely replace the @theme in app.css with our own version.
If you had previously made hardcoded changes to the components, I think those changes might be overwritten. So, it’s a good idea to take a backup beforehand.

If I didn’t fully understand your question, please explain it to me with an example. If the feature you’re referring to doesn’t exist, I’ll definitely consider implementing it in the next release.

Overall, our components are simple .eex files that can be customized using several parameters like color, size, border, and so on.
In previous versions, you could only choose between predefined options. But now, in addition to that, you can completely override any color using the config file.


In new version we will try to move shadow size and etc to config file too

For example, we define these and use it inside html tailwind!

:root {
    --opacity-base: 10;
    --overlay-opacity: 100%;
1 Like

Simply you use naming like custom CSS which is often used here and on other forums to refer user-defined CSS usually for the entire site as an alternative to using Tailwind, Bootstrap and any other CSS library/framework. This is a bit confusing especially for developers who do not know anything about your project.

1 Like

Yes you are right! I changed this to Implement your own CSS styling (which were defined in this lib components)

Thank you

1 Like

If possible, I’d appreciate your help with sharing the post on social media.

Reddit: https://www.reddit.com/r/elixir/comments/1ntdjks/mishka_chelekom_hits_16k_downloads_free/

X(twitter): https://x.com/shahryar_tbiz/status/1972586057943412952

BlueSky: @shahryar-tbiz.bsky.social on Bluesky

Dear friends and colleagues,
What features do you think should be added to the CLI for the Mishka Chelekom project?
We’d greatly appreciate your suggestions, especially for potential Mix tasks that could enhance the project.

Thank you in advance! :folded_hands:t2::heart: