Why elgg is not using any popular UI packs, but its own cloned UI?

Why are we not using any popular UI packs like Semantic UI, Foundation etc, but recreated everything again in Elgg's way?

Elgg engine is released with an intention of extending it by developers. If we are using a popular framework for theming, extending elgg will be easier for developers. Now theming is a nightmare in Elgg.

Any thoughts? At least in Elgg 4 we can think about this?


  • Why are we not using any popular UI packs

    Maybe due to the fact that developers can choose their own UI.

    Now theming is a nightmare in Elgg.

    It's not a nightmare if you've learned Elgg.

    Just look at our latest projects with Bootstrap 4 UI Kit and Google Material design.

  • I know anybody can use the available frameworks for their needs. Just by loading the main css and js of the UI package anybody can do it. But to me this appears an unwanted thing. 

    For example take some of the core elgg UI - modules, pagination, buttons, tabs, filters etc.. all these are just duplicated from some UI frameworks. Now up on this, if I load framework's js and css, then its completely chaotic. What's the need for that? In such a case, most of elgg's core css and js will be loaded unnecessarily, which can even affect your site performance. 

    Instead if elgg comes with a default UI (using any of the popular packs), like how we use fontawesome icons now in elgg, it will be easy for the designers to expand.

  • Most of elgg's core css and js will be loaded unnecessarily, which can even affect your site performance.

    Just unregistered it with one or two lines of code. Simple!

    These are some of my sites that is build on elgg 3 and I can confirm I have modified the UI and it is not that much of a pain. If you know elgg you would be able to create your own theme plugin in no time. The below site's theme was developed in 5-7 days.


  • I think you all are not getting my point. As you said we can easily unregister these files. But just have a look at the css and js files (fortunately elgg engine is minifying it). Many core css files cant be unregistered (like the one for modules, navigation etc)... so we have to load these files. in addition when you load the UI framework resources, there are similar CSS getting loaded unwantedly.

    If you are using the core css and js, and additionally a framework too, to me it appears as unnecessary bloating. 

    I was not mentioning about sites which are created just by downloading plugins, themes from elgg community, I mean applications developed using elgg engine, with a maximum of only 2-3 core plugins and rest all custom made.

    @rohit: the material UI web (tradeguid) looks nice. Good work you have done there.

  • @Rohit Gupta Thanks for https://tradeguide.in/home - Awesome work!

    @Sarath Elgg is not CMS but a framework that has several tools: functions library, classes, services, API.

    There is some model/logic of your project based on Elgg (we calls them distributions but Elgg already has starter- project).
    The default view of this project can be easily replaced by your owned views.

  • @Sarath Elgg is not CMS but a framework that has several tools: functions library, classes, services, API.

    That exactly what I said. I am using Elgg as a framework only. But my worry is in duplicating all codes. There are many core elements which cannot be easily over-rided by copying the view files to your plugins.. And when you copy these core view files into your theme / plugin, each time when a new elgg version launches you have to cross check the core and may have to adapt to it. 

    If using a framework for theming, a big chunk of duplicated core codes can be eliminated and further developments can be easily done using these frameworks.

    I think ismayil did some work on elgg and foundation UI framework in past. He understood the real pain in using the duplicated core codes.

  • @Rohit : I see that you are using boot strap for tradeguid website.

    If you and @Rvr looks into the code of your website, you can understand what I meant.

    1. You are loading bootstrap UI over Elgg
    2. Elgg got its own css and js codes for breadcrumps, navigation, modules, forms, buttons, image_blocks, system_messages, colorbox, popups etc..
    3. Css, js for similar functionalities you are again loading through your bootstrap library.
    4. Now this results in unnecessary code bloat.

    Instead if Elgg is using a popular established UI framework for its core, we can theme additional contents easily.