What's with the page loads when switching between components? You built a React comparison tool that is not a SPA?
Would also be nice if you could render components of multiple frameworks side-by-side, that way you can really compare.
Also, Semantic UI is now forked as https://fomantic-ui.com/
Sorry, need to re-visit this thread, cause I'm still a bit confused.
If I get myself to install the framework, there's a couple of things to get out the way, please correct me if I'm wrong…
let's take this as an example: https://fomantic-ui.com/introduction/getting-started.html
When I install it locally via terminal. it requires Node.js and NPM, so now I know those are two different things. I thought Node.js is a programming language and/or a software that allows to use javascript on the server (?). Why is that an absolute requirement, can't I use PHP on the server? The packages, included via NPM or manually are just js and css files anyway, right?
And NPM is the node package manager that keeps the js and css files up to date, right?
Then it says:
Now you will need to build your distribution of the CSS and JavaScript you use on your website.
And it wants me to install "gulp". What the heck is a gulp? Let me guess, it makes things even easier XD
And last but not least, if everything is up and running, how does the development or I should say styling i.e. usage of the framework differ from the "classic" way of webdesigning? Do I still just use the css classes according to the framework components documentation? I mean do I still style with css, is that still the same workflow or has that changed as well?
I ask because when I look at the components doc for theming I can see they define and you're ought to define "variables" and global variables with an @
Does that go inside the css file? or the js? What language is that?
As far as I know, theming in FUI is... Not as pleasant as it could be. Essentially, you need to follow this doc and create separate versions of FUI, one per theme. Here's some info on how to automate it with Webpack.
I was using TailWind before but Semantic seemed easier to build with. There's Fomantic which seems to be an updated fork but still not great, especially for webpack. I tried your code because I like it (makes the app nicer) but I'm really not happy with all the crap of Semantic (and the webpacker has changed so your code didn't work). Here's how far I got rewriting it before I gave up:
const path = require('path'); environment.loaders.append('expose', { test: require.resolve('jquery'), use: [ { loader: 'expose-loader', options: { exposes: ['$','jquery', 'jQuery'], }, }, ], }); environment.loaders.append('image_rewrite', { test: /.jpe?g$|.gif$|.ico$|.png$|.svg$/, use: 'file-loader?name=[name].[ext]?[hash]' }); environment.loaders.append('font_rewrite_1', { test: /.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff' }); environment.loaders.append('font_rewrite_2', { test: /.(ttf|eot)(\?v=[0-9].[0-9].[0-9])?$/, loader: 'file-loader' }); environment.loaders.append('font_rewrite_3', { test: /.otf(\?.*)?$/, use: 'file-loader?name=/fonts/[name]. [ext]&mimetype=application/font-otf' }); environment.config.merge({ resolve: { alias: { '../../theme.config$': path.join(__dirname, '../../semantic/theme.config') } } });
> First, the front-end developer must now know Kotlin in addition to html, css and maybe some Javascript. It's not going to be easy to find someone who knows all four well.
Kweb is intended for back-end developers, and only requires a fairly rudimentary understanding of HTML. CSS is mostly outsourced to Fomantic, and knowledge of JavaScript can be helpful but not required to use Kweb.
> Another issue here is that in order to make a small cosmetic change on the front-end one now must recompile and deploy a Kotlin app.
Is that any more complicated than recompiling and redeploying a React app, or any other kind of web app?
> I've been looking at your project and if I not wrong, what you are doing is creating a Ktor server rendering HTML from the server and comunicating with the client via websockets with JSON, isn't it?
Yes, that's correct.
> How about web sockets security?
Since Kweb uses Ktor underneath, if you configure Ktor to use HTTPS then the WebSocket messaging should be encrypted, is that what you meant?
> How about of the lack of UI component libraries and have to reinvent the wheel?
We avoid reinventing the wheel by supporting plugins for JavaScript component libraries. We support a library called Fomantic UI which integrates nicely with Kweb.
Plugins for other UI libraries like Bootstrap, Foundation etc can also be created with relative ease, it's mostly just a question of understanding the framework well enough to create a good Kotlin DSL for it.
> How about testing?
Pretty good although it could always be better. In particular we use Jupiter/Selenium to test Kweb's browser integration.
SemanticUI, if I'm not wrong, it's more than 4-5 months without new news. FomanticUI https://fomantic-ui.com/ is a fork driven by the community (and actively developed) that still doesn't have the react port ready (but they claim everything is working, so it is usable)
​
I started to use semantic-ui combined with styled components, and it worked ok. But worried by this lack of development I am working now with my own styled components alone, so far very happy with the decision