131 comments

  • lenkite 10 days ago
    Why is this advertised as HTML-first and framework-agnostic ? It directly leverages tailwind and UIKit libraries. That is NOT framework agnostic by any means.
    • codetrotter 10 days ago
      When they say framework-agnostic they are talking about not being dependent on using React.

      > Who is Franken UI for?

      > Franken UI is tailored for small teams and solo developers seeking a beautiful, reliable CSS framework without the complexity of React, Vue, or Svelte. It's designed with an "HTML-first" approach, making it accessible to developers at any skill level.

      https://www.franken-ui.dev/docs/introduction

      As opposed to the shadcn ui

      > Which frameworks are supported?

      > You can use any framework that supports React.

      > Next.js, Astro, Remix, Gatsby etc.

      https://ui.shadcn.com/docs

      • nsonha 9 days ago
        > not being dependent on using React

        it's not about not-being-something, more like the component created by UI kit will function regardless of any framework you use, or the lack of one.

    • Capricorn2481 10 days ago
      Tailwind is just a convenience compiler for CSS, it's hardly a framework.
      • jasaldivara 10 days ago
        There are Javascript frameworks and CSS frameworks. Tailwind is the later one. Even the Tailwind front page describes it as a CSS framework.
        • 9dev 10 days ago
          That’s technically true, but anyone I know in the field would immediately understand what is meant by framework agnostic in this case. Unless we’re being pedantic for the sake of it, of course.
          • cqqxo4zV46cp 10 days ago
            Yes. I immediately knew what it meant. GP is being needlessly literal. Language is a communication tool. I, as the audience, was communicated to as intended. I’m not sure what this pedantry does for anyone.
      • nsonha 9 days ago
        by that logic nothing is a framework, everything "compiles" to js and css
        • Capricorn2481 9 days ago
          I didn't say it wasn't a framework because it compiles. I would expect framework to be a large shift in how you write or structure code. But there's no agreed definition.
  • gloosx 10 days ago
    Have to agree with most of the commenters here, framework-agnostic really means independent of any framework. This one is built on top of the CSS framework which adds a whole build step. So it was really better to go with a less misleading title like Tailwind CSS implementation of shadcn/UI
    • ricardobeat 10 days ago
      Indeed. One of the reasons my latest project at work did not adopt shadcn/ui is precisely not wanting to introduce the Tailwind dependency. Was hoping this could be an option.
  • TheRealPomax 11 days ago
    This is definitely not HTML first, though. This is TS first, JS second, CSS third, and only then, HTML last. I'm all for clean frameworks, but this is very far removed from the idea of putting HTML first.
    • tbeseda 10 days ago
      I'd really like a set of elements like this that is truly HTML + CSS. Vanilla. Layer on some _optional_ JS for some enhancements.

      But this franken <form> element requires JavaScript to even render. Same for the tooltip, leader, cover, totop, ++ components; all of which can be done with HTML and CSS.

      Fine, write your HTML is JS, but that isn't "HTML first".

      edit: I stand corrected. the form will render without JS. The tab element in the docs wrapping the form doesn't render.

      • Frotag 10 days ago
        DaisyUI offers zero-JS components

        https://daisyui.com/

        I used it for a small form + search result list recently and it works well enough for simple / static stuff.

        But I think I'll still be reaching for a JS lib first since I'd miss things like inputs-with-autocomplete too much.

        • eddd-ddde 10 days ago
          DaisyUI is a blessing when working on qwik projects, since there is an emphasis on eliminating hydration.

          It would seem that all other libraries want js for something as simple as a drop-down.

        • bouncing 10 days ago
          See also Bulma; you can totally get by without JS for most projects, though again, you'll miss out on the more interactive things.
      • sveltecult 10 days ago
        The form does not need JS. There are two labels black and red "Requires JS". The black one should've been "May Require JS". It is use for the "custom controls" provided by UIkit. But it is not required.

        Cover, leader, dropdowns and even modals, you can always use the CSS class instead of UIkit custom attributes and toggle it manually via server.

        • tbeseda 10 days ago
          Ah so the tab component doesn't render without JS. Because I can't see the form render in the docs. Which is in a tab. Tabs can also be plain HTML + CSS. Even easier now with :has
    • rzmmm 10 days ago
      The extreme version of HTML first: classless CSS libraries. IMO every web developer should be aware that these are sometimes a great option https://github.com/dbohdan/classless-css
      • blooalien 10 days ago
        I'ma huge fan of these. They often have a built in CSS "reset" and then nice base styling for all the HTML elements most folks typically use in a website. Overlay a tiny little bit of custom CSS to "make it your own", and you're off to the races!
    • hilti 10 days ago
      Yes - absolutely misleading. At least the name seems to originate from „Frankenstein“ which perfectly matches.
    • sveltecult 10 days ago
      Let me disagree. This is HTML-first because you can always grab the compiled CSS and optionally, compiled JS and reference it in your plain HTML file via <link rel="" href=""> and it will work just fine.

      The TypeScript and Tailwind insanities are just there for easier development and my convenience. ;)

      Maybe soon, someone will publish the compiled CSS. IDK

      • lelanthran 10 days ago
        > This is HTML-first because you can always grab the compiled CSS and optionally, compiled JS and reference it in your plain HTML file via <link rel="" href=""> and it will work just fine.

        But this is true for almost every web thing, and every web framework - you can just grab the final outputs and stick it into your web page.

        So either your thing is "HTML-first", but so is everything else, or your thing is not "HTML-first", and some other things are.

        > Maybe soon, someone will publish the compiled CSS.

        So, until then, not only is this not HTML-first, it's not HTML at all.

        To me (and maybe others), there's a difference between web development and Node/npm.

        They are not one and the same.

  • mubu 10 days ago
    It doesn't seem HTML-first though. Also the Github description says it's a library of web components, this may be misleading because this project doesn't use Web Components.
    • stanac 10 days ago
      I wasn't expecting it to use Web Components, I guess that's what happens when you give something a generic name. Similarly if some company named a code editor Code.
      • LoganDark 10 days ago
        It's supposed to be named Visual Studio Code, VS Code for short, but I think Microsoft has started using just "Code" for things like the title of its Mac app bundle, which has gotten confusing/annoying.
        • afiori 10 days ago
          The executable on Linux is called code
  • hanniabu 11 days ago
    Foolish of me to think "HTML-first" meant it wouldn't require nodejs/npm and that dependency hell.
    • 708733454927516 10 days ago
      Thanks for that. Good to know I wasn't the only one...
      • lelanthran 10 days ago
        > Thanks for that. Good to know I wasn't the only one...

        I'm also glad I'm not the only one.

        I may, however, be the only one to be annoyed at what looks like a rug-pull:

        "Here, come see this thing I made that doesn't require $FOO!"

        > Requirements: $FOO

  • afavour 11 days ago
    > framework-agnostic

    > Franken UI is a Tailwind CSS plugin

    :|

    • tipiirai 10 days ago
      Indeed. I clicked to see an HTML-first UI library but entered a utility-first Tailwind library.
    • jillesvangurp 10 days ago
      I guess they mean Javascript framework agnostic. We use kotlin-js with Tailwind for our frontend. Actually works really nicely. So, this might be interesting for us.
    • bschmidt1 10 days ago
      Had the same thoughts, I like the tailwind className approach enough but you'd think agnostic means it would work with sites that use regular CSS.
    • oddevan 11 days ago
      As someone using Svelte for a project, I'm always happy to see something less React-specific.

      But yeah, I'm kinda over Tailwind. You whipper-snappers think CSS sucks so much; back in my day* we had font tags and tables!

      *high school

      • afavour 10 days ago
        Yeah I know it’s crotchety old man territory but I find CSS absolutely fine to work with these days, now that we have variables etc. Every time I’ve added PostCSS, Tailwind or whatever I’ve found my build times jump a ton and I don’t get a whole lot of use out of it.

        Plain CSS and containerisation provided by Svelte (or the forthcoming scope stuff) is more than enough for me.

        • prisenco 10 days ago
          CSS is a dream these days. I understand why it’s intimidating for devs because it’s not meant for engineers it’s meant for designer so it has a wildly different set of assumptions and expectations.

          But learning it is 100% worth it.

          Tailwind is like an ORM. I get the appeal but if you know SQL /CSS it’s just going to get in the way.

          • bschmidt1 10 days ago
            I like the SQL/CSS analogy, with the full-stack spectrum being like:

              SQL - Backend - Frontend - CSS 
            
            Most people just want to stay in the middle doing backend/frontend ("full-stack") work because it's just writing functions. Or because it's building the core of a feature, where things like database work and styling is pushed off or abstracted in libraries.

            But on each end is where all the interesting stuff is really happening, and a full-stack dev who embraces both SQL and CSS is a lot more useful than a full-stack dev who stays in the middle.

          • nullandvoid 10 days ago
            For me it's not intimidating, it's just time consuming. I can create / iterate twice as fast when I'm styling inline with my HTML. It could be with tailwind, or other utility based libraries - tailwind has just done it the best from my experience.
          • balls187 10 days ago
            In addition to intimidating—there is the rote repetitiveness: how many times do you want to style the same components? Or adding the same custom components.

            Sometimes I just wanna work on my app and not write css.

          • ffsm8 10 days ago
            This is ridiculous. Tailwind css is a utility "framework", which generates configured css classes to set 1-2 css attributes each. The only reason it adds a build step is that it wants to tree-shake all unused classes to keep your bundle size as small as possible and let you configure which classes are available for generation.

            Even the documentation makes it extremely clear which properties are set by which class (the default ones anyway).

            As an actual example: how completely braindead do you have to be to not know which properties are set from looking at the official documentation? https://tailwindcss.com/docs/overscroll-behavior

            Your comparison to an ORM would work for things like Bulma, bootstrap and pretty much all component libraries, including TailwindUI. It's completely nonsensical for tailwindcss

            You've either never actually looked into tailwind css and are purely talking out of your ass or are just repeating this opinion from someone that did such.

            Disliking tailwind css is fine, and there are perfectly fine reasons to not use it. But your argument is just plain dumb.

            • Capricorn2481 10 days ago
              You're completely right, and it's annoying to see this downvoted. Having read a lot of frontend discussions on HN, I would wager that half the people talking about how "complex" frontend is don't work in it. Tailwind and regular CSS are hardly distinct, it's just slightly different names.

              It's very odd to see HN, supposedly a "self-thinker" crowd, continuously spout incorrect things because they heard someone else say it on here. Here are other things I've heard on HN repeatedly that aren't true (often in very upvoted comments).

              - You can't make a static site with React

              - React is only for SPAs.

              - You can't use React without NextJS anymore.

              - PHP is too slow for web development (maybe it is for your use case, but people seem to think it's bad for all use cases).

              - PHP doesn't have strict type checking.

              - NPM is somehow worse than every other packaging system (ignoring PIP, Maven, etc. NPM is surprisingly good at things that the rest of packaging systems don't get right).

              • bschmidt1 10 days ago
                > Tailwind and regular CSS are hardly distinct, it's just slightly different names

                Tailwind:

                  <div className="shadow-lg" />
                
                CSS:

                  div {
                    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
                  }
                
                Not to mention the Tailwind classNames are compiled to CSS in a build step, where CSS is not compiled, it's written in its native form. They're clearly very different syntaxes and approaches, even though one compiles to the other.

                The above example shows how convenient Tailwind can be... well if you happen to want that 10px 15px -3px, 4px 6px -4px shadow, but the moment you break out of their palette or default style setup you end up doing stuff like this:

                  <div className="bg-[#243c5a]" /> 
                
                Either storing that color value in JavaScript, or creating a Tailwind theme for it in tailwind.config.js:

                  module.exports = {
                    theme: {
                      extend: {
                        colors: {
                          'regal-blue': '#243c5a'
                        }
                      }
                    }
                  }
                
                Something that could have been easily accomplished in native CSS:

                  :root {
                    --regal-blue: #243c5a;
                  }
                
                  div {
                    background-color: var(--regal-blue);
                  }
                
                For most React websites, I use Tailwind by default almost always, and Tailwind UI is a great starting point for building a component library. But it still helps to support CSS for more advance styling use cases - even within Tailwind. Knowing CSS very well will make you better at Tailwind too even for common things like

                  <div className="w-[calc(100% - 1rem)]" />
                
                It's kinda important to know both as separate technologies.
                • Capricorn2481 10 days ago
                  That's a very extreme example, and yes, I would just use the bracket syntax in Tailwind because I can see clearly that's not what I want for box-shadow.

                  If I didn't know how box shadow worked, Tailwind made it easier for me to decide by having defaults in the docs that map to the actual CSS.

                  • bschmidt1 9 days ago
                    > a very extreme example

                    It's not very extreme, it's literally any time you deviate from their prefab - so any truly custom UI. The size of shadow (corner radius, font-size, etc.) at different steps are hard-coded in Tailwind, if you want something else that's up to you. In terms of colors (text, background, etc.) they have a default palette, colors like "slate", etc. but anything else is up to you. So - most brands.

                    > Tailwind makes box shadow easier

                    Easier sure: What it does is give you the abstractions "shadow-sm", "shadow-lg", "shadow-none", etc. in fact a total of SEVEN options for shadows.

                    That teaches you something - how to apply up to seven types of shadows! But you would be a lot more powerful of a developer if you knew how to do more than that. This doesn't teach you a foundation for understanding box-shadow or learning anything more - I think your point about learning is not valid.

                    I learned CSS in 2003 from Myspace profiles and Dreamweaver - visual IDEs are great for education, so don't get me wrong here, I'm a believer in what I think you're getting at, but Tailwind aint it (for that).

                    • Capricorn2481 9 days ago
                      I meant that it's an extreme example of a tailwind utility doing a lot of settings for you. Versus, say, `italic`, which just does `font-style: italic;`. I can hardly compare that to an ORM where people can make full apps without learning SQL.

                      > if you want something else that's up to you

                      Right, just like CSS. It's a very light helper library that isn't dissimilar from CSS. That's my point.

                    • ffsm8 9 days ago
                      We've been using visual generators since the introduction of the box-shadow css attribute.

                      Did you ever actually write them fully by hand?

                      I for one got better with css after using tailwindcss for a while. So Capricorn2481's statement is true at least for me.

                      Before I used it for a while I've always gone with component libraries, after that I very rarely did... Aside from work projects that mandate specific libraries, anyway

                      • prisenco 9 days ago
                        | Did you ever actually write them fully by hand?

                        Absolutely. Have for decades. Still do.

                        This is why I said Tailwind reminds me of an ORM. If you properly know the underlying technology, it just gets in the way.

                        And CSS is not just about properties. It's also about inheritance and DOM independence, something tailwind doesn't address.

                      • bschmidt1 9 days ago
                        Of course I know CSS shorthand by memory (and most of Tailwind too), and yeah definitely googled "tailwind box shadow" more often (which one is which).

                        Back in my day we used Bootstrap classes but those guys put -15px margins everywhere so nobody uses their library anymore LOL

                        • ffsm8 9 days ago
                          Knowing the shorthand and actually writing it are different things.

                          If I get a visual spec from a designer, I'm not going to try out various numbers until it fits the image. I'll either ask them for the specific attribute if their tool allows for that or replicate it with a generator.

                          And if I'm fully in control myself, I'm going to use a generator too as I'll want it to look a specific way, which is easier to achieve with instantaneous feedback as you get it from a generator such as https://www.cssmatic.com/box-shadow

                          • bschmidt1 9 days ago
                            > Knowing the shorthand and actually writing it are different things

                            CSS shorthand meaning:

                              margin: 0 0 1rem;
                            
                            which is the same as:

                              margin-top: 0;
                              margin-right: 0;  
                              margin-bottom: 1rem;
                              margin-left: 0;
                            
                            etc.

                            I can't imagine how you would know the shorthand without first knowing the longer form. CSS shorthand requires that you know the original form + the order of values in shorthand, and when values can be omitted along with special formatting as in:

                              font: normal normal 1em/1.6em sans-serif;
                            
                            CSS shorthand is - I would say - more advanced than long form.

                            > I'm going to ask the designer what units to use

                            I would never get in the habit of letting a designer tell the front-end developers how to write CSS, mainly because they work in pixels, when the developer is often using viewport units, rem for sizing, em for fonts and icons relative to an initial size and current user zoom factor, and flex gaps and alignment for spacing. That level of collaboration and specification on spacing, sizes, etc. between the developer and designer (redlining) might be part of an initial design system discussion, but the resulting component library is probably translated into a style system that works well for the engineering team.

                            I think it's good you're using CSS generators, I learned most of CSS that way via Dreamweaver, and have copy/pasted from CSS Tricks countless times for edge case stuff - it's a great way to learn.

                • mubu 10 days ago
                  Tailwind v4 is getting rid of tailwind.config.js in favor of regular css as config.
  • bibstha 10 days ago
    This is exactly what I was looking for. I love Stripe's UI and I was looking for a library of unified components that I can copy paste with my Rails app. Then I saw shadcn and was disappointed that it was only for React.

    I'm mostly a backend developer and TailwindCSS really enabled me to be bold with working with frontend CSS. So far I've been copy pasting examples from Tailwind or Flowbite. But "franken" really looks much closer to what I was looking for, a cleaner opinionated unified interfaces that I can put together, works with Tailwind and can be used with Rails.

    Thanks for the work on this.

  • naasking 11 days ago
    I was just looking at shadcn and thinking it's a shame it was react specific. Looking forward to seeing if this is viable to use in a server rendered site with htmx!
  • kevincox 11 days ago
    The demo at the very least appears to assume a lot about font sizes or shapes. It is very broken on my setup with everything escaping the bounds that it is presumably supposed to live in:

    https://pasteboard.co/6Z1nLEWhPHRg.png

    However I do like the dark theme. It manages to separate different areas without too much noise which can be hard to do without shadows.

    • sveltecult 11 days ago
      Hello, thank you for feedback. Mind sharing what device are you using? That will definitely help me I'd be happy to fix it.

      Right now, I'm cheating a little and it only supports tablet (landscape) and up. Below that will just hide everything and show a static PNG.

      • kevincox 11 days ago
        Firefox on desktop Linux 2k monitor with 22px font size.
  • snow_mac 10 days ago
    "HTML-first" -> Opens the docs and sees a bunch of javascript... Haha. Am I missing something? I was expecting to see `<section class="rounded white content">` or similar not `ui({ components: { countdown: {hooks: {}, media: false} } })`.
    • afiori 9 days ago
      My understanding is that is the configuration part where the library interacts with tailwind to compile the css.

      The way you actually use the ui components is by including html snippets in your page

  • Alifatisk 9 days ago
    I noticed on difference between franken-ui.dev and ui.shadcn.com

    The navigation between the different exmaples on https://www.franken-ui.dev/examples/mail refreshed the website and did not restore the scroll position.

    While on https://ui.shadcn.com/examples/mail, switching between the different examples keeps the scroll position and does not refresh the page.

  • anomaloustho 9 days ago
    We just built a JS-frontend-framework-agnostic library because we have Vue, React, and Svelte. We found that the trade off was that it worked poorly in all of them and we couldn’t take advantage of their individual strengths.

    We’ve since switched to React-based and found that, because support for React is so high, they can be incorporated elsewhere more seamlessly than “agnostic” components.

  • Traubenfuchs 10 days ago
    > I mean you do not install it as a dependency. It is not available or distributed via npm.

    > You can use the diff command to check for updates against the registry.

    Isn't that a contradiction? So they do offer automatic importing & updating but refuse to use the infrastructure everyone else is using and instead copy/paste their files directly into your project with their cli?

  • andrethegiant 10 days ago
    How about some color? Or in other words, how much longer until the Vercel-inspired brutalism fad wears off?
    • spiderfarmer 10 days ago
      The idea is that this is neutral enough to gain an impression and that you theme it yourself. That has been the idea for each UI library ever since bootstrap. Doesn't mean that people take the time to actually customize it.
    • chimen 10 days ago
      I see minimalism, not brutalism and, comparing Vercel's design with Netlify's (from your bio), guess where I find the brutalism...
  • devops000 10 days ago
    I still wonder why they cannot use <detail> tag for a dropdown instead of using JS.
    • gibbitz 9 days ago
      Had the same thought. The one part that would still require js is the exclusive opened element requirement. Still just a simple vanilla event listener.
  • tambourine_man 10 days ago
    HTML-first, yet there’s not a single line of it in the documentation’s introduction.
  • TheCapeGreek 10 days ago
    Great! If you're not using common frontend stacks, UI kits become annoying to use if they don't have any stock HTML (or close to it Tailwind like this) versions.
  • begueradj 10 days ago
    It looks similar to Tailwind UI and other free and paid alternatives which components you can also reuse and modify at will.

    But it's always good to have other options like this one.

  • replwoacause 10 days ago
    I’ve been looking for something like this forever. Thank you!
  • kewp 10 days ago
    This is great, have been looking for something like this.
  • gedw99 9 days ago
    Very disappointed. It’s typescript, not quite framework independent.

    https://github.com/sveltecult/franken-ui/tree/master/src/lib...

    I am using golang and htmx and am looking around for a simple html based system .

    Daisyui or something might work

  • canadiantim 11 days ago
    Looks cool!
  • squigglydonut 10 days ago
    This made me want to unlearn react.
  • ivanjermakov 11 days ago
    Mods are asleep and someone bombarding HN with spam..
    • CharlesW 11 days ago
      Taking 30 seconds to send an email to Hacker News <hn@ycombinator.com> is shockingly effective and a nice thing to do for the HN community.
    • slavetologic 11 days ago
      Free ai girlfriend sounds amazing
    • datascienced 10 days ago
      For clarification I think my parent comment is referring to the now dead comments, not the submission.
    • cebert 11 days ago
      What is going on with the spam. It’s not even good spam.
  • SEXMCNIGGA11537 11 days ago
    [dead]
  • SEXMCNIGGA34130 11 days ago
    [dead]
  • SEXMCNIGGA16603 11 days ago
    [dead]
  • 2genders3253 11 days ago
    [dead]
  • SEXMCNIGGA35416 11 days ago
    [dead]
  • 2genders27218 11 days ago
    [dead]
  • SEXMCNIGGA8027 11 days ago
    [dead]
  • SEXMCNIGGA33051 11 days ago
    [dead]
  • SEXMCNIGGA18717 11 days ago
    [dead]
  • SEXMCNIGGA16153 11 days ago
    [dead]
  • 2genders31142 11 days ago
    [dead]
  • SEXMCNIGGA21425 11 days ago
    [dead]
  • SEXMCNIGGA29695 11 days ago
    [dead]
  • SEXMCNIGGA20978 11 days ago
    [dead]
  • SEXMCNIGGA14503 11 days ago
    [dead]
  • 2genders1206 11 days ago
    [dead]
  • SEXMCNIGGA15607 11 days ago
    [dead]
  • indianmilf11409 11 days ago
    [dead]
  • indianmilf30045 11 days ago
    [dead]
  • indianmilf45976 11 days ago
    [dead]
  • indianmilf11877 11 days ago
    [flagged]
  • indianmilf35174 11 days ago
    [flagged]
  • indianmilf4363 11 days ago
    [flagged]
  • sexmc9970 11 days ago
    [flagged]
  • sexmc16058 11 days ago
    [flagged]
  • sexmc6421 11 days ago
    [flagged]
  • sexmc37338 11 days ago
    [flagged]
  • sexmc36604 11 days ago
    [flagged]
  • indianmilf15961 11 days ago
    [flagged]
  • sexmc29153 11 days ago
    [flagged]
  • sexmc28911 11 days ago
    [flagged]
  • sexmc8025 11 days ago
    [flagged]
  • indianmilf21126 11 days ago
    [flagged]
  • indianmilf48444 11 days ago
    [flagged]
  • indianmilf31403 11 days ago
    [flagged]
  • sexmc35688 11 days ago
    [flagged]
  • sexmc35838 11 days ago
    [flagged]
  • indianmilf34854 11 days ago
    [flagged]
  • sexmc12141 11 days ago
    [flagged]
  • sexmc16673 11 days ago
    [flagged]
  • sexmc32264 11 days ago
    [flagged]
  • sexmc33615 11 days ago
    [flagged]
  • sexmc1649 11 days ago
    [flagged]
  • sexmc28363 11 days ago
    [flagged]
  • 2genders37082 11 days ago
    [flagged]
  • 2genders4161 11 days ago
    [flagged]
  • 2genders49491 11 days ago
    [flagged]
  • 2genders2513 11 days ago
    [flagged]
  • 2genders9163 11 days ago
    [flagged]
  • 2genders36035 11 days ago
    [flagged]
  • 2genders20183 11 days ago
    [flagged]
  • 2genders6966 11 days ago
    [flagged]
  • 2genders30123 11 days ago
    [flagged]
  • 2genders42516 11 days ago
    [flagged]
  • 2genders21299 11 days ago
    [flagged]
  • 2genders36913 11 days ago
    [flagged]
  • indianmilf30755 11 days ago
    [flagged]
  • indianmilf25313 11 days ago
    [flagged]
  • indianmilf48152 11 days ago
    [flagged]
  • indianmilf38252 11 days ago
    [flagged]
  • indianmilf36279 11 days ago
    [flagged]
  • indianmilf15310 11 days ago
    [flagged]
  • 2genders8976 11 days ago
    [flagged]
  • 2genders42998 11 days ago
    [flagged]
  • 2genders38844 11 days ago
    [flagged]
  • indianmilf36812 11 days ago
    [flagged]
  • sexmc23466 11 days ago
    [flagged]
  • 2genders40018 11 days ago
    [flagged]
  • 2genders13057 11 days ago
    [flagged]
  • 2genders38654 11 days ago
    [flagged]
  • 2genders33730 11 days ago
    [flagged]
  • 2genders19317 11 days ago
    [flagged]
  • 2genders45275 11 days ago
    [flagged]
  • 2genders3638 11 days ago
    [flagged]
  • SEXMCNIGGA24531 11 days ago
    [flagged]
  • 2genders9277 11 days ago
    [flagged]
  • 2genders24716 11 days ago
    [flagged]
  • 2genders20592 11 days ago
    [flagged]
  • 2genders31142 11 days ago
    [flagged]
  • SEXMCNIGGA941 11 days ago
    [flagged]
  • 2genders42980 11 days ago
    [flagged]
  • 2genders25672 11 days ago
    [flagged]
  • SEXMCNIGGA17999 11 days ago
    [flagged]
  • 2genders45922 11 days ago
    [flagged]
  • 2genders1261 11 days ago
    [flagged]
  • 2genders18 11 days ago
    [flagged]
  • 2genders28879 11 days ago
    [flagged]
  • 2genders20975 11 days ago
    [flagged]
  • 2genders3253 11 days ago
    [dead]
  • SEXMCNIGGA16119 11 days ago
    [flagged]
  • SEXMCNIGGA30567 11 days ago
    [dead]
  • 2genders2099 11 days ago
    [flagged]
  • 2genders42998 11 days ago
    [flagged]
  • 2genders18299 11 days ago
    [flagged]
  • 2genders10037 11 days ago
    [flagged]
  • 2genders816 11 days ago
    [flagged]
  • 2genders39646 11 days ago
    [flagged]
  • 2genders4244 11 days ago
    [flagged]
  • 2genders32700 11 days ago
    [flagged]
  • 2genders22374 11 days ago
    [flagged]
  • 2genders48513 11 days ago
    [flagged]
  • 2genders17435 11 days ago
    [flagged]
  • 2genders968 11 days ago
    [flagged]
  • 2genders43015 11 days ago
    [flagged]
  • SEXMCNIGGA26515 11 days ago
    [flagged]
  • SEXMCNIGGA19991 11 days ago
    [flagged]
  • dankobgd 10 days ago
    Useless trash. Imagine not using web components in 2024 and you still use tailwinds and stuff.