• underscores@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 minutes ago

    I’ve used raw CSS for the last 2 years at work and it’s not like it’s magically better or my productivity is higher or that it is simpler to read and understand.

    Use the tool that works for you, tailwind is fine.

  • Blackmist@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    16 minutes ago

    Which CSS framework is it that puts this shit everywhere?

    That one can die in a fire.

  • orca@orcas.enjoying.yachts
    link
    fedilink
    arrow-up
    3
    ·
    36 minutes ago

    In my personal projects, I don’t use anything. I wrote a set of utilities and functions in SCSS years ago that let me easily create reusable variables and classes that already do what TW does, but with less bloat and overhead. I get project-specific spacing, colors, font classes, everything.

    I also highly recommend picking up Andy Bell’s Complete CSS course.

  • 0x01@lemmy.ml
    link
    fedilink
    arrow-up
    18
    arrow-down
    2
    ·
    3 hours ago

    Ngl I love tailwind, I’ve been through so many different css paradigms

    • separate css files: why did we ever do this, if you’ve ever used kendo’s css stuff you’ll understand how unfathomable hundreds of thousands of lines of css with complex rules is. Identifying all the things that affect a single component is the work of dozens of minutes at minimum, sometimes hours, you have to understand every nook and cranny of the css spec.
    • inline styles: fine, but verbose and requires object spreading, harder to compose, theming is tough and requires discipline to be consistent in your theme conventions, almost impossible to also theme imported library components
    • module.css with imported classes: my go to outside of tailwind
    • scss: I actually really like scss but it exacerbates the complexity and mystery of css, great for small projects but terrible as projects bloat
    • bootstrap: basically just worse tailwind, providing only components and colors

    That’s all I can think of right now, but tailwind is my preferred way to style a new project, I love how easy theming and style consistency is

    • TrickDacy@lemmy.world
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      edit-2
      49 minutes ago

      I’ve never quite understood how adding all these HTML classes to a page is supposed to be clean. Just do a decent job of organizing your code and it’s honestly not that hard to keep from breaking styles unexpectedly. This is the part you tell me “well that only works for small projects”. Not really, it works when styles are managed carefully. I’ve worked on fairly large sites with what modern standards would call “bad” css practices and it was fine, we just had an understanding that some devs were frontend (I was lead for a couple years at this particular company I’m thinking of) and some were backend. The backend people botched styles every time so we forbade them eventually. I think that contextless type of “help” is where people get the idea that you have to have a css setup that prevents people from breaking anything unexpectedly. CSS just gets no respect. You wouldn’t let a frontend guy go changing your core backend code so why is the reverse ok?

      I like css modules too but I totally disagree that css is irreparably broken and needs some system that discourages the cascade of styles in all cases.

    • Jesus_666@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      45 minutes ago

      Honestly, I’m still very much in the “classes define what a tag represents, CSS defines how it looks” camp. While the old semantic web was never truly feasible, assigning semantic meaning to a page’s structure very much is. A well-designed layout won’t create too much trouble and allows for fairly easy consistency without constant repetition.

      Inline styles are essentially tag soup. They work like a print designer thinks: This element has a margin on the right. Why does it have that margin? Who cares, I just want a margin here. That’s acceptable if all you build are one-off pages but requires manual bookkeeping for sitewide consistency. It also bloats pages and while I’m aware that modern web design assumes unmetered connections with infinite bandwidth and mobile devices with infinitely big batteries, I’m oldschool enough to consider it rude to waste the user’s resources like that. I also consider it hard to maintain so I’d only use it for throwaway pages that never need to be maintained.

      CSS frameworks are like inline styles but with the styles moved to classes and with some default styling provided. They’re not comically bad like inline styles but still not great. A class like gap-2 still carries no structural meaning, still doesn’t create a reusable component, and barely saves any bandwidth over inline CSS since it’s usually accompanied by several other classes. At least some frameworks can strip out unused framework code to help with the latter.

      I don’t use SCSS much (most of its best functionality being covered by vanilla CSS these days) but it might actually be useful to bridge the gap between semantically useful CSS classes and prefabricated framework styles: Just fill your semantic classes entirely with @include statements. And even SCSS won’t be needed once native mixins are finished and reach mainstream adoption.

      Note: All of this assumes static pages. JS-driven animations will usually need inline styles, of course.

    • MonkderVierte@lemmy.zip
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      Would be fine if it used a custom parameter for their tags. Using class names makes for bad accessibility.

    • brian@programming.dev
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      1 hour ago

      except we generally use higher level abstractions now, like component based frameworks. If you’re writing raw html with tailwind and no library you’re doing it wrong and css is a better fit.

      well written straight css ends up building it’s own tree of components. if you’re using react too you’re either only selecting a single component (inline styles but have to open two files) or writing good css (duplicating the component hierarchy in css).

      tailwind is just the former but better since it encourages using a projectwide set of specific sizes/colors/breakpoints and small scope, the two actual problems with inline styles after organization and resuse, which react etc solves.

      • TrickDacy@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        30 minutes ago

        I cannot tell if you’re saying tailwind is taking away from useful abstractions or adding to them. I think it’s taking away from them. A whole bunch of class names in the page is opposite to what we were taught and there was a good reason for the lesson: content and presentation should be defined separately. This lends flexibility, readability and accessibility. Tailwind doesn’t help with anything but preventing a breakage in another component/page. To me the reason to value this trade off is that you don’t want devs to “have to care about css” which is a bad sign to begin with. It says “we think the way the web is built is bullshit, so let’s just try to work around that with the latest attempt to make it better”. The web is not bullshit. CSS is beautiful. Embrace the challenge. (Sorry I’m only halfway directing this rant at you)

    • Lemminary@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      19 minutes ago

      That’s a common misconception by people who never used it. The truth is you need to know CSS to use Tailwind. Just because it simplifies styling doesn’t mean it simplifies the underlying technology.

  • RushLana@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    23
    ·
    6 hours ago

    Genuine question : what’s wrong with modern vanilla CSS3 ?

    Maybe it’s because I’ve used css2 I don’t see the point of css frameworks.

    • TrickDacy@lemmy.world
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      46 minutes ago

      People fear what seems foreign. Devs want css to be like a programming language and it’s not so they’re uncomfortable. Or at least this is my unvarnished opinion

    • ClassifiedPancake@discuss.tchncs.de
      link
      fedilink
      arrow-up
      11
      ·
      5 hours ago

      It helps to avoid the specificity problem. You don’t have to manage a complicated class system, you just set styles directly on the elements. Yes this is pretty much what everyone agreed in the past was the worst thing to do but that was before things like CSS variables existed (which Tailwind uses excessively) that lets you control details like color and fonts from a single point. So you don’t have to go through every component to change the brand color.

      At work we don’t use Tailwind often but in our React apps we mostly use Theme-UI which lets us write regular CSS on each element in a nice JSON format instead of the class name hell that is Tailwind. This is my preferred way.

      • 5opn0o30@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        3 hours ago

        This is very informative. I avoided Tailwind for the reason you mentioned, but look closer now that I know the difference.

        • ClassifiedPancake@discuss.tchncs.de
          link
          fedilink
          arrow-up
          1
          ·
          2 hours ago

          I think it’s especially great for smaller apps/sites or prototyping. Setup is quick if you’re already comfortable with CLI tools and configs. Or if you just want to get started immediately with no setup, just add a script into your site and when it needs to go into production later you can still do the setup process for a robust build.

    • kambusha@sh.itjust.works
      link
      fedilink
      arrow-up
      22
      arrow-down
      1
      ·
      6 hours ago

      I was very much against frameworks initially: tailwind, bootstrap etc. However, when I started really building sites & apps using components, I found tailwind made my life a lot easier, so I could easily see and change styling while writing code/html, and it would only affect that component.

      Beforehand, I was trying to come up with names for CSS classes all the time, and then I’d change one thing, and fuck up styling on a diff page.

      • Karjalan@lemmy.world
        link
        fedilink
        arrow-up
        13
        ·
        4 hours ago

        Honestly love tailwind. Once you get used to all the names/abbreviations and how they work with sizes and states etc. it’s much easier to see what’s happening when eyeballing code.

        Makes reviewing and bug fixing easier too.

        I get that early on it feels annoying. I recall disliking it the first time I learnt it, but then when I went back to regular css and classes I really missed it.

    • Havald@lemmy.world
      link
      fedilink
      arrow-up
      4
      arrow-down
      4
      ·
      6 hours ago

      Tailwind sounds cooler than CSS, which, I presume, would be important when you’re applying at a startup.

    • Lemminary@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      11 minutes ago

      It’s actually very useful. All these negative comments have the hallmarks of people who don’t generally use it. I can tell because the criticisms stem from a lack of familiarity, missing the point.

    • NotNotMike@programming.dev
      link
      fedilink
      arrow-up
      7
      ·
      4 hours ago

      No, it is not that bad. It’s actually very nice.

      It affords a lot of consistency, is relatively easy to understand (once you’re familiar with the convention), and theming allows you to modify all the colors and sizing in one file rather than modifying a lot of CSS

      I think the worst that can be said about it is that it is unnecessary, but I cannot see a true downside to using it besides personal preference. It gets the job done efficiently and correctly and that’s what’s important at the end of the day

    • Piatro@programming.dev
      link
      fedilink
      English
      arrow-up
      13
      ·
      6 hours ago

      I’ve not used it in anger but the principle just seems like inline-styles with extra steps. However I’ve also had to change something in a large project that had a lot of dedicated classes with specific and shared styles and trying to sort that out without breaking stuff was a massive pain.

    • scott@lemmy.org
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      3
      ·
      4 hours ago

      At first it seems nice…I played with it for a few hours in an established project and didn’t mind. But the I thought about using it from scratch and I’m just baffled anyone does. It’s like if CSS was slightly more abbreviated but you couldn’t use classes so every style has to be specified on every component.

      • brian@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        50 minutes ago

        instead of using classes you just use whatever your ui library provides for reuse. stick a classname string in a variable and you have a class. use a component and it just contains all its styles.

        unless you mean that if you look in the inspector you see a mess of classnames. I don’t have a solution there

      • beeb@lemmy.zip
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        3 hours ago

        A lot of ui frameworks are based on tailwind and allow you to customize the components with more tailwind. It’s really a win because:

        • it’s not “just inline classes”, it’s a design system (spacing, colors, breakpoints etc are well structured and not random)
        • it is way less verbose than vanilla css and easier to remember
          • brian@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            56 minutes ago

            shadcn is the primary one for react at least. they’ve done a great job filling the space where you’re trying to build up a design system but don’t want to start from scratch, but they’re great if you just want prebuilt components too

            all the components build on something else like radix, and are pretty simple themselves. normally just the radix component with styles. Installing a component just copypastes the source into your project at configured locations.

            if you’ve ever fought against something like mui to get it to fit design changes or change specific behavior, shadcn is great. at some point the extension points of a library aren’t enough, but if you own all the code that’ll never be a problem.

        • scott@lemmy.org
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 hours ago

          Yes but it’s also expressly discouraged in the documentation so…

    • paulbg@programming.dev
      link
      fedilink
      arrow-up
      5
      arrow-down
      2
      ·
      6 hours ago

      yea it’s redundant as hell if not combined with UI libraries that extend it like shadcn / daisyui