ida-arbeitszeit / arbeitszeitapp

A webapp for labour-time calculation.
https://arbeitszeitapp.readthedocs.io
GNU Affero General Public License v3.0
36 stars 4 forks source link

RFC: Remove bulma-css from project #989

Closed seppeljordan closed 2 months ago

seppeljordan commented 5 months ago

I would like to propose that we remove the css framework Bulma from our code base. I think that it encourages writing hard to maintain html code that violates the basic principle of separating semantic concerns from stylistic ones. This is a major problem when it comes to accessibility as well as we dictate the look of the page to the user disregarding any local styling that might be present in the browser. This however would require us to accept that the page will look less corporate/professional since we currently don't have the means to replicate the "look and feel" of bulma.

I previously heard the notion that a more corporate look of the web page would increase the likelihood of adoption among workers as it would make the arbeitsapp seem like "just another app". I would like to argue against this notion in the following.

I think that workers will never adopt labour time calculation individually but only ever as part of a larger context, e.g. a revolutionary movement, trade unions or organized worker owned coops. In such a context it will probably not matter at all how the app looks. Wither will the organization of the working class have deliberated about using labour time accounting (in which case it doesn't really matter if they use the app or not) or capitalism is unraveling (at least partially) which makes the adoption of another mode of production necessary.

I feel like using Bulma has not lead to a easy to use UI which would be another another argument one could field in favor of Bulma. The html form that we have in our app are in some cases less accessible since we once again force users to use the Bulma styling for for every single element on those pages. Having a university professor style web page that looks like it escaped from the 90s would probably look rough to modern eyes but it would be responsive out of the box and can easily be adapted to the needs of individual users via browser settings and browser style sheets.

As another member of the development team said in a recent meeting: "The web page should have a socialistic look" and I agree.

sloschert commented 5 months ago

In general I agree that the bulma design looks too corporate. I think about bulma as a placeholder until we found someone who will rework the frontend. (Btw, IDA could probably contract a collective).

What i like about bulma as a placeholder:

So I’m hesitating to remove it very soon/before we know that someone will take care of the front end. But I will not oppose it neither if we come to that conclusion.

4lm commented 3 months ago

Interesting request, @seppeljordan. I understand your frustration and issue with using a class-based CSS framework like Bulma. I have done a lot of frontend development in the past years and know many different approaches to creating frontends on the web. Frankly, I'm tired of how frontend development wants to be engineering (aiming for the big paycheck), therefore, needlessly complicates the development process, and, on top of that, often completely ignores things like semantic HTML tags (e.g.: footer, aside, article) and does not care about accessibility.

A small community on the web actually does what you suggest, but in a slightly modified way that allows for custom styling. They take an approach that extends the default CSS stylesheet delivered by the browser:

Using this approach, we can create an app that uses the semantic web, is intuitive to develop, and doesn't bombard the users with shiny but non-functional elements. This "classless" approach creates an easy-to-maintain stylesheet that users can even modify or swap.

I would be happy to facilitate this process with a gradual, sensitive approach that keeps Bulma at first so we can merge multiple PRs over time but never break the app, at any given moment. This would involve:

For all elements not represented as a single semantic HTML element, I will go straight to the source.

It's all there. No CSS frameworks are required!

But never forget, it's just a https://motherfuckingwebsite.com/ ;)

4lm commented 3 months ago

Since #1035 exists now. This RFC issue can be closed now - right?!