Uikit

  • We all knoe that Uikit is deeply integrated - but it's possible that somebody creates a template using Bootstrap or something else and does not load Uikit.


    My question is: Should all extension-devs check if Uikit is loaded if they use it? Otherwise the design could be destroyed.


    Or am I wrong and it is always loaded?

  • Well, I suppose that Uikit is not loaded by default in every custom theme.

    E.g. - Theme Hello, which is a blueprint for theme developers. It only loads theme.cssand theme.js that could contain any code from any framework.

    So the design could be destoyed when Bootstrap is used instead of Uikit.

  • If you follow the tutorial to create a new theme you will find instructions on how to create a theme.css based on uikit. The uikit css is then included in your theme.css. But it is also possible to use any other UI framework. So no, uikit is not loaded automatically. Only the javascript files are always "loaded" and if you include any javascript file having a uikit javscript file as prerequisite in your extension, it will be there.


    But I will not check whether uikit is "loaded" for two reasons: Is impossible to check whether the CSS is loaded (as explained the uikit CSS usually is merged with the theme css into one single file). Additionally I can - and will - not check for every possible ui framework whether it is available and adjust the classes I insert accordingly. I rely on uikit with its components (e.g. javascript) when building my extension, so every theme which uses a different ui framework might be broken. It is simply not possible to provide an extension with custom design which fits for every possible theme. Therefore I rely as much as possible on one ui framework to format my extension and use as less custom styling as possible. As the uikit javascript also uses the uk-* css classes, I will also use uikit. Therefore my used css classes usually will start with uk-*. The only thing which might be possible is to allow for custom classes for some elements, but this will be limited and not possible for all elements.

  • I try to avoid any kind of fronted-frameworks as I find myself working against them more than with them. They also introduce a whole lot of bloat. I like to keep my amount of HTTP requests to a minimum as well as my filesizes.


    At this point I'm rewriting some widgets to not include UI-Kit. I think all assumptions about front-end should be made in themes and widget views, I really hate the fact that UI-Kit along with jquery, lodash, vue and a whole bunch of other crap is all assumed to be used in my website.