[HN Gopher] JetBrains Ring UI
       ___________________________________________________________________
        
       JetBrains Ring UI
        
       Author : gjvc
       Score  : 287 points
       Date   : 2022-10-07 16:57 UTC (6 hours ago)
        
 (HTM) web link (jetbrains.github.io)
 (TXT) w3m dump (jetbrains.github.io)
        
       | varispeed wrote:
       | It looks impressive in terms of features, but it feels like it
       | was done solely by developers and there was no thought put into
       | looks.
       | 
       | The typography looks awful, spacing looks all over the place -
       | elements are difficult to read. I can't see much consistency as
       | if it was developed by disjointed teams.
       | 
       | Not something I would use unless there are good looking templates
       | available.
        
       | dglass wrote:
       | The date picker is pretty impressive. Well done.
       | 
       | https://jetbrains.github.io/ring-ui/master/index.html?path=/...
        
         | harikb wrote:
         | I tried selecting a particular date. I couldn't. The selection
         | (and the resulting date value in the text column) remained in
         | the previous year.
         | 
         | I refreshed the browser and came back, now I can select the
         | date.
        
         | yyyk wrote:
         | It looks nice, but that's it. Usability is pretty bad. e.g.
         | keyboard use completely breaks it on Firefox (didn't test other
         | browsers).
        
         | princevegeta89 wrote:
         | It's incredible they basically built it with a completely
         | different design in mind. Making use of scrolls/swipes for
         | months and years on the same screen.
         | 
         | Impressive.
        
         | kevingadd wrote:
         | Very stylish, but also randomly resets to 2018 when I
         | mousewheel scroll, which is kind of unfortunate. The
         | fundamental UI design for it is great.
        
         | LeonenTheDK wrote:
         | Wow, that's gotta be the nicest looking and most functional
         | date picker I've ever seen. Date pickers are normally so hit or
         | miss imo but this one is a hit out of the park.
        
         | dev_snd wrote:
         | Looks great in theory, but does not work on Android Firefox
         | unfortunately.
        
           | Kiro wrote:
           | Not supposed to be used on mobile. These are components to be
           | used for building stuff inside JetBrains.
        
           | yesimahuman wrote:
           | If you want mobile-enabled components like this Ionic has
           | many. Here's the datetime:
           | https://ionicframework.com/docs/api/datetime
        
             | joshstrange wrote:
             | Ionic's is probably one of the best date+time combo (other
             | examples are always strong in one and terrible in the
             | other, time being the thing that often gets short shrift)
             | 
             | I also quite like Quasar's date picker
             | https://quasar.dev/vue-components/date
             | 
             | Though do not even look at their time picker... It's a
             | mess, I roll a custom component for time when I need it.
        
             | pmontra wrote:
             | Interestingly it lets see both the iOS and Material Design
             | versions of the component.
             | 
             | iOS has a strange combination of arrows to handle the
             | month: right to expand the months dialog, down to close it.
             | It took me a while to understand that the down arrow would
             | bring me back to the calendar. Why not right and left?
             | Maybe it is how it works on a Mac too.
             | 
             | MD and anything else I remember has a down arrow to expand
             | and an up arrow to close.
        
             | javier2 wrote:
             | Damn that is good. Even with the swipe gesture on mobile. I
             | think we are webscale now
        
             | [deleted]
        
         | aka878 wrote:
         | Funny enough, it doesn't work is Desktop Safari.
        
           | mardifoufs wrote:
           | Does not work on android chromium either
        
         | hooverd wrote:
         | Please, just let me type dates.
        
           | throwaway0x7E6 wrote:
           | this. please.
        
         | l0b0 wrote:
         | Yep. Scrolled into the 2100s and back into the 1800s in a few
         | seconds, then decided to figure out which day of the week I was
         | born, which took about three seconds. In most date pickers this
         | would've taken O(year difference * month difference + day of
         | month), here it took something like O(year difference + month
         | difference + day of month).
        
           | azinman2 wrote:
           | It doesn't scroll on mobile safari.
        
           | sr_impostor_eng wrote:
           | This is the first time I see big O notation applied to user
           | experience and it's genius, I'll use it in my work from now
           | on
        
         | craigching wrote:
         | It's not bad, but I have grown really fond of Grafana's
         | date/time picker and can whip up a clone of that using React-
         | Bootstrap and React Datepicker (https://reactdatepicker.com) in
         | about ten minutes :)
        
           | makmanalp wrote:
           | Funnily enough I have a pet peeve with Grafana's picker
           | (which is overall quite nice) - I can't copy and paste the
           | whole date range from one window to another in one go. I'm
           | often punching in varies specific datetime ranges across
           | multiple dashboards so this comes up all the time every day.
           | Sure I've added data links for the cases that I use most
           | frequently but I can't do that for everything. The "recently
           | used ranges" (which is a neat feature) doesn't seem to work
           | across dashboards and seems to require a page reload which
           | baffles me a bit.
        
           | paxys wrote:
           | Not being able to go back months or years without pressing
           | the back button 3000 times is the worst possible design for a
           | date picker.
        
             | geekrax wrote:
             | I am assuming that you're judging the behavior by the
             | minimal example in the top 1% of the site. If you scroll
             | further, you will notice how extensible it is to support
             | not only month and date navigation but many other
             | customizations.
        
               | craigching wrote:
               | Exactly. There are tons of different ways to solve that
               | problem in react-date picker, this being one of them:
               | https://reactdatepicker.com/#example-year-dropdown
        
               | stoplying1 wrote:
               | I also assumed it was limited in such ways. Mostly
               | because it is extraordinarily rare that anyone bothers to
               | enable those. I'd much, much, much rather have a
               | singular, consistent full UX available to me instead of
               | defaulting to some "simple elegant" artificially stunted
               | version.
        
               | matsemann wrote:
               | A hundred more clicks than JetBrains' one, though.
        
           | madeofpalk wrote:
           | For what it's worth, the Grafana date picker[0] is "just"
           | react-calendar[1]. The time range picker you see on a
           | dashboard uses that and a bunch of other (custom) stuff.
           | 
           | (I work on grafana frontend)
           | 
           | [0]: https://github.com/grafana/grafana/blob/4b2a9406596ba63a
           | 6945...
           | 
           | [1]: https://www.npmjs.com/package/react-calendar
        
         | amluto wrote:
         | Except that the top bar covers about the top 2/3 of it on
         | mobile safari. This glitch renders essentially the entire site
         | useless.
         | 
         | (What's up with floating top bars? Either just make them be a
         | real part of the page, or move them to the bottom, or, if
         | absolutely necessary, keep them floating and test the heck out
         | of them. Because that floating element that can't be dismissed
         | will result in a near 100% reduction in your conversion rate
         | all by itself.)
        
           | Kiro wrote:
           | Do you use JetBrains software on mobile? This is for building
           | stuff inside JetBrains.
        
             | tbcj wrote:
             | JetBrains has web applications which is where these are
             | used - YouTrack, Space, TeamCity.
        
             | pmontra wrote:
             | So, these are components for building their IDEs? They
             | can't be used for anything else?
        
             | wartijn_ wrote:
             | I don't but I do use, and am interested in, their software.
             | So it's a bit disappointing to see a link to their site
             | while using hn on mobile, only to get to a page that
             | doesn't display anything useful.
        
               | Kiro wrote:
               | But the components are not supposed to work on mobile so
               | what is there to see?
        
               | wartijn_ wrote:
               | You seem to assume that everybody on this website knows
               | what Ring UI is. But I didn't know and judging from quite
               | a few other comments here, I wasn't the only one. All we
               | had to go by was the title "JetBrains Ring UI" and a
               | comment stating that a date picker looks nice. Without
               | any kind of description it's not that weird to assume a
               | website with a datepicker works decently on mobile.
        
               | nsxwolf wrote:
               | I wouldn't be investing effort improving the mobile
               | browser behavior of desktop oriented controls for the
               | benefit of making it a better HN submission.
        
               | [deleted]
        
               | robertlagrant wrote:
               | I think you've missed the point of the previous comment.
        
           | mey wrote:
           | This is true in Firefox and Chrome on Android as well.
        
             | rob74 wrote:
             | I guess this is more desktop-centric than most other
             | browser-based UIs - I mean, JetBrains is mostly developer
             | tools, and most people don't use their phone for
             | programming...
        
               | Kuinox wrote:
               | You hope...
        
               | Bilal_io wrote:
               | What's broken is the Storybook UI which is only used to
               | demo the components. The components themselves should
               | work fine on any modern browser.
        
           | cercatrova wrote:
           | Storybook is not supposed to be used on mobile, it's a
           | desktop optimized UI.
        
             | IshKebab wrote:
             | Ok but the reason it is broken really has nothing to do
             | with mobile vs desktop.
        
               | CodeSgt wrote:
               | It sure seems like the only issues are those on mobile
        
             | danpeddle wrote:
             | But then, how do you test components on mobile? Or are we
             | not supposed to ask that?
        
               | [deleted]
        
               | Kiro wrote:
               | Why would you test components that can only be reached on
               | desktop on mobile? These are components to be used inside
               | JetBrains IDE.
        
               | fragmede wrote:
               | It sure seems like people are reaching this on mobile
        
         | ssalka wrote:
         | I wasn't expecting much, but I got a whole lot. Probably the
         | best date picker I've ever seen
        
       | palebt wrote:
       | What's the relation to the Compose Multiplatform (another UI
       | toolkit from JetBrains)? https://www.jetbrains.com/lp/compose-
       | mpp/
        
       | pier25 wrote:
       | This is such a huge effort.
       | 
       | I wonder how much money it must have cost and is it worth it for
       | JetBrains?
       | 
       | How much time would it take for a team of 5 to make a UI library
       | at this level of sophistication (tests, accessibility, response,
       | etc)? 6 months? 1 year?
        
         | sz4kerto wrote:
         | I'd be very surprised if this took 5 FTE years, I'd assume way
         | more. Especially including all the non-devs necessary
         | (designers, managers, etc.).
        
           | pier25 wrote:
           | Honestly I was thinking more like 18-24 months total (for a
           | team of 5). 1 UI designer, 1 UX designer, 3 React devs.
           | 
           | But let's say 5 people working 12 months x 50,000 USD =
           | 250,000 USD.
           | 
           | Even considering non US payrolls at 50k per year, that's a
           | significant expense.
        
             | 4O4 wrote:
             | I don't know US market. How common is it to get 50k a month
             | as a React dev or UX/UI designer across the USA? Or do you
             | mean Silicon Valley only?
        
               | Merad wrote:
               | 50k per month (600k per year) is an extraordinarily high
               | salary even in the US. I assume the parent poster meant
               | 50k per month for the team of 5, so each dev is getting
               | 10k per month/120k per year.
        
               | pier25 wrote:
               | I don't know the US market that much... but here in
               | Mexico that's what a decent dev makes when working for a
               | US company.
               | 
               | I would imagine a good React dev in the US would make (on
               | average) closer to 100k? SV salaries will probably be
               | higher than 100k, no?
        
               | cercatrova wrote:
               | That's pretty low, I'd expect twice that at least.
        
             | sz4kerto wrote:
             | Why are you multiplying yearly salaries with months? :)
             | 
             | JetBrains devs likely cost around 100k/y year here in CEE
             | by the way. But I think 3M is a reasonable guess, 30 FTE
             | years (7 devs, 1 PM, 1 UX, 1 "overhead" (other management
             | costs)).
        
               | [deleted]
        
               | pier25 wrote:
               | Jesus you're right... I'm such an idiot.
        
         | cachvico wrote:
         | I think it's more likely this grew from a single developer who
         | knew what he's doing, to a small team, organically over time as
         | they expanded.
         | 
         | The competitive advantage is that it's bespoke and designed
         | exactly for their own needs. It also provides a look+feel that
         | is distinct from the typical Material UI fork, which could be
         | considered a savvy move.
        
         | qudat wrote:
         | Literally every company I have worked for builds a component UI
         | library. They are boring and catered specifically to the
         | company's branding and needs.
         | 
         | They also grow with every feature iteration. It starts with
         | `<Text />` and `<Button />` and then grows to include `<Toast
         | />`, forms, modals, etc.
         | 
         | If the company is big enough they can make it public and get
         | some attention but I don't see why anyone would use them for
         | their own personal projects outside of the very limited scope
         | of the company itself.
        
           | pier25 wrote:
           | Sure, but at this level of polish?
           | 
           | I don't know but I don't think many companies can afford to
           | do this.
        
       | dagmx wrote:
       | The top heading bar hides a bunch of the UI elements on mobile.
       | Not the best showing for what otherwise seems like a nice project
       | from Jetbrains.
        
         | gavmor wrote:
         | The linked webpage is generated with Storybook.js, a generic
         | web component display framework, and is not itself en exemplar
         | of the showcased UI library.
        
         | hbn wrote:
         | I imagine JetBrains isn't too concerned with mobile interfaces
         | considering desktop software is their bread and butter
        
           | MrRiddle wrote:
        
           | jen20 wrote:
           | TeamCity has had a web based UI for at least 15 years, so I'd
           | imagine they are very much concerned with it.
        
             | jm4 wrote:
             | This is not a general purpose responsive web UI toolkit.
             | It's a toolkit for their IDE products. Nobody is using
             | those on mobile.
        
               | Kwpolska wrote:
               | Well, not for IDEs, but web-based developer tools.
        
           | colejohnson66 wrote:
           | Even then, YouTrack (at least the one for JetBrains products)
           | is extremely slow and annoying to use
        
       | ramesh31 wrote:
       | This is very very good. Clean, simple, extensible. The death of
       | Material UI patterns can't come fast enough IMO, and I'm glad to
       | see people moving away from it toward a more functional
       | aesthetic.
        
       | dsissitka wrote:
       | I'd never heard of it so I did some quick googling.
       | 
       | From https://github.com/JetBrains/ring-ui:
       | 
       | > This collection of UI components aims to provide all the
       | necessary building blocks for web-based products built inside
       | JetBrains, as well as third-party plugins developed for
       | JetBrains' products.
       | 
       | From https://blog.jetbrains.com/blog/2018/09/25/ring-ui-1-0-is-
       | re...:
       | 
       | > At JetBrains, we use Ring UI components for our web-based
       | products like YouTrack, Hub, TeamCity, and Upsource.
        
         | NonNefarious wrote:
        
           | [deleted]
        
           | [deleted]
        
           | vosper wrote:
           | > Still doesn't explain what this is doing on here
           | 
           | Because someone posted the link. It's not off-topic, and
           | design systems are posted here fairly often.
        
             | NonNefarious wrote:
        
               | Kiro wrote:
               | What are you even talking about? Yes, this is exactly the
               | type of stuff you will see on HN.
        
           | NonNefarious wrote:
           | Mere seconds for some shills to downmod those facts. Go back
           | to Reddit, children.
        
             | dang wrote:
             | We've banned this account for repeatedly breaking the site
             | guidelines. Please don't create accounts to do that with.
             | 
             | https://news.ycombinator.com/newsguidelines.html
        
               | cercatrova wrote:
               | Thank you, we appreciate it Dan.
        
           | jbverschoor wrote:
           | All these things end with Ng..
           | 
           | So maybe it's React Interface Ng (next gen)?
        
             | NonNefarious wrote:
        
               | pc86 wrote:
               | You've used HN before. None of the things you're
               | complaining about are unique to this post, or
               | particularly new in HN. Why the vitriol now?
        
             | Foobar8568 wrote:
             | ng used to be angular stuff.
             | https://stackoverflow.com/questions/14669322/what-does-
             | the-n...
        
             | Shacklz wrote:
             | ng is usually used in an AngularJS-context, which is the
             | case here given the displayed code in their "Ng"-legacy-
             | components
        
       | ole800 wrote:
       | This doesn't work on my fridge, I feel intense discomfort
        
       | tim-- wrote:
       | The individual components are really nice, but mixing and
       | matching them seems to make a user interface that is condensed
       | and overly complex.
       | 
       | YouTrack specifically comes to mind here. It's a fantastic bug
       | tracker, but the UI is missing a certain... jeu ne se quoi
        
       | bilekas wrote:
       | All I see is :
       | 
       | >Open landing page >Force token update >Log out
        
       | ole800 wrote:
       | This doesn't work on my fridge! I feel sad
        
       | cetinsert wrote:
       | https://shoelace.style/
       | 
       | or even
       | 
       | https://opensource.adobe.com/spectrum-web-components/
       | 
       | are simply much better as they just work with native web
       | standards. React is just another way FB/Meta hurts people :)
        
         | qwertox wrote:
         | Thank you for sharing the shoelace link. Looks like it behaves
         | well on mobile, unlike many other frameworks. I'm using Quasar,
         | but I want to try something else.
        
         | whoisthemachine wrote:
         | Weird that a framework created by Adobe, the creators of Flash,
         | one of the most non-standard web ever created, would be cited
         | as a web standard friendly alternative to React. Such is the
         | way when a company loses its competitive advantage /shrug.
        
           | nfoz wrote:
           | Adobe didn't create Flash. They bought out Macromedia.
        
             | whoisthemachine wrote:
             | Ha very true, the cobwebs of time had erased that from my
             | memory.
        
         | runlaszlorun wrote:
         | Shoelace looks great, thx for posting! If you can think of any
         | more in that vein- that is clean looking vanilla web components
         | without adding a ton of 'framework'- feel free to share.
         | 
         | Personally, I'm of the believe that the bumbled mess that web
         | development has become can only be fixed by peeling away layers
         | (or perhaps starting from scratch) not adding more. I seem to
         | be in the minority on this though...
        
         | ramesh31 wrote:
         | >are simply much better as they just work with native web
         | standards. React is just another way FB/Meta hurts people :)
         | 
         | Sure, and all you need are 50+ dependencies to work with those
         | "standards": https://www.npmjs.com/package/@shoelace-
         | style/shoelace?activ...
         | 
         | If you're doing JS development, just use React. There's really
         | no good reason not to, and I would argue that in an enterprise
         | environment it would be _negligent_ not to.
         | 
         | If anyone can give a non-ideological reasoning for a better
         | choice, I'd love to hear it.
        
           | Existenceblinks wrote:
           | The less thing people know, the high risk, the more
           | defensive. Like losing the entire basket of egg. In
           | traditional way, they dedicated the whole life to one thing,
           | and that was called a cult.
        
           | Karunamon wrote:
           | I would argue that dev dependencies do not really matter.
           | That leaves a mere 7, 2 of those belong to the same namespace
           | as the style.
           | 
           | That said I am also against choosing libraries based on
           | political/ideological concerns. React is MIT anyways.
        
           | claytongulick wrote:
           | Sure, I'll bite.
           | 
           | The vdom and batching updates is slow, the theory behind it
           | that direct manipulation of the dom is worse has been pretty
           | conclusively shown to be incorrect, especially with css
           | "contains".
           | 
           | JSX doesn't end up bringing much value over vanilla html, but
           | can lead to a lot of strange and difficult to reason about
           | states.
           | 
           | The "execute everything on every render" style ends up being
           | extraordinarily costly and not particularly beneficial,
           | especially when you add something like redux to the mix.
           | 
           | Alternately, web components have a simple, lightweight and
           | easy to understand life cycle.
           | 
           | Reactivity is trivially implemented via property setters and
           | a call to a render() method.
           | 
           | Tiny, fast rendering libraries like lit-html work great, and
           | for other components you can do without them completely,
           | depending on the needs of the component.
           | 
           | React needs at least one build step, which distances the
           | developer's code from what executes.
           | 
           | Vanilla web components are simple to wrap into framework
           | components for pretty much any framework, and can be used
           | natively by most.
           | 
           | React components are limited to react things, unless you want
           | to include an absurd js payload size.
           | 
           | And "just use react" doesn't really mean anything. What
           | version? With what methodology? Hooks? Class based? Look at
           | how much it's changed. It's very costly for organizations to
           | get caught up in the framework upgrade cycle.
           | 
           | There's a reason why Ionic chose to base their components on
           | native web components. I recommend you read about it.
        
             | dimgl wrote:
             | > JSX doesn't end up bringing much value over vanilla html,
             | but can lead to a lot of strange and difficult to reason
             | about states.
             | 
             | This is just plain wrong. Like, unbelievably wrong.
        
             | dmitriid wrote:
             | > JSX doesn't end up bringing much value over vanilla html
             | 
             | > Tiny, fast rendering libraries like lit-html work great,
             | 
             | It's always funny to me how people bash JSX and then praise
             | lit-html that literally has things like ?value and .click
             | that it parses from strings using regexps, but it's somehow
             | "better than react because native web standards".
             | 
             | And lit in general is busy re-inventing react (working on
             | context API as we speak).
        
               | Existenceblinks wrote:
               | I think the Context proposal is rather "send function to
               | data" style data flow. (there's another one, more like
               | plain client-server data flow; req-res) Not really "prop
               | drilling" like its docs say.
               | 
               | I _guess_ `.value` | `@click` is pretty much all tag
               | template literal based libs do. The static parts need
               | parsing, right? Though regex would be slow (if they do),
               | a tiny parser would suffice.
        
               | dmitriid wrote:
               | > Not really "prop drilling" like its docs say.
               | 
               | Context is a way to _avoid_ prop drilling.
               | 
               | > The static parts need parsing, right?
               | 
               | You either provide a custom DSL and embrace it _or_ you
               | claim to be  "native standards" and bash JSX.
               | 
               | As far as I understand it's no longer just static parts
               | either. Can't properly test this on mobile, but it looks
               | like function calls like classMap or styleMap are only
               | allowed in certain locations of the code, so it's already
               | JSX-level (or more) manipulation.
        
           | huksley wrote:
           | It is not like I endorse (or don't appreciate) one or
           | another, just a bit of stats
           | 
           | npm install @shoelace-style/shoelace => 19MB, 17 packages
           | 
           | npm install @jetbrains/ring-ui => 189MB, 560 packages
        
           | cetinsert wrote:
           | 1. You are not reading those numbers right!
           | 
           | 2. Shoelace has far fewer dependencies than Ring.
           | 
           | Let us see,
           | 
           | Shoelace: https://www.npmjs.com/package/@shoelace-
           | style/shoelace?activ...
           | 
           | 7 user dependencies
           | 
           | 46 dev dependencies
           | 
           | VS
           | 
           | Ring: https://www.npmjs.com/package/@jetbrains/ring-
           | ui?activeTab=d...
           | 
           | 60 user dependencies o____O
           | 
           | 100 dev dependencies o__O
           | 
           | Also the person building Shoelace has consistently been an
           | early adopter of best practices/standards.
           | 
           | I believe a single person with taste and knowledge can build
           | better components than yet another team chasing after latest
           | 'trends' under time pressure.
        
             | [deleted]
        
           | megaman821 wrote:
           | First, dev dependencies don't count. There two are from
           | shoelace. Color's main features will eventually be in one of
           | the CSS Color Module's specs. Floating UI's main features
           | will be in the CSS Anchor Positioning spec. Lit is used for
           | building the web components. Lit React can be removed when
           | React supports web components better. The QR library can
           | probably only be installed if needed.
        
           | withinboredom wrote:
           | I've got a feeling this comment won't age well...
        
           | the__alchemist wrote:
           | This depends on the use. For a complex web app, React may be
           | a good choice. For a web page with interactivity (There is a
           | grey area between), native HTML/JS/CSS provides a much more
           | responsive experience to the user. Faster load, lower
           | latency, and reduced RAM use. It also makes it easier to
           | develop and maintain, due to not relying on a build process
           | or DSL.
        
           | Shacklz wrote:
           | > If you're doing JS development, just use React.
           | 
           | I totally agree with your sentiment, but there are more
           | frameworks out there with sufficient maturity to be
           | considered enterprise-grade on the scale of react. Angular is
           | certainly there, Vue as well at least in my book.
        
             | geraldwhen wrote:
             | Angular is an option from a high level but I would argue
             | against it on merit.
             | 
             | Vue is off the table. If you're not prioritizing "ability
             | to hire" with your tech choices you're in for a bad time.
             | Angular is popular enough that you would get a lot of
             | candidates.
        
               | thebradbain wrote:
               | Why is Vue off the table?
               | 
               | Where I work uses Vue rather than React, and we're _very_
               | happy with that choice. There's many reasons why
               | (specifically the Composition API is similar to React
               | Hooks, but in my opinion _much_ better thought out, and
               | so is the fact that the state-management story is much
               | more opinionated/first-party), but rather than start a
               | framework war, I will say that every FE engineer we've
               | hired who preciously worked at a React shop (which is all
               | of them) has gotten the hang of Vue within a week and
               | finds Vue a refreshing breath of fresh air. Me included.
               | 
               | I think React without a doubt has the largest ecosystem.
               | And I also think Vue is more than a valid choice, and
               | definitely not a problem in the hiring sphere.
        
         | wbobeirne wrote:
         | Who do you feel React is hurting, and in what way?
        
           | qwertox wrote:
           | My biggest issue with React is how it mixes HTML in
           | Javascript. Like putting HTML inside strings or whatever they
           | are doing. Without proper tooling and an editor which
           | supports it, you won't get anywhere. At least that's my
           | amateurish feeling on React, my reason for avoiding it. I may
           | very well be wrong, but I wouldn't know.
        
             | Ambroos wrote:
             | Of all the ways to write how your HTML is supposed to look
             | from JavaScript, JSX is probably the closest to Javascript
             | there is. It's a very simple syntax translation to JS
             | function calls, and all code / logic is still plain JS.
             | Every other template language that invents their own loops
             | / conditionals / ways to insert variables is waaaaaaay
             | further away from JS (and also still needs tooling and
             | editor support).
        
               | itslennysfault wrote:
               | ... or don't write how your HTML is supposed to look from
               | JavaScript.
               | 
               | I like Angular's approach the best. You have an HTML
               | file, a SCSS file, and a TS file. The TS file is
               | essentially your model and handles all the thinking.
               | HTML/SCSS are kept declarative like god intended.
        
               | Ambroos wrote:
               | Do you genuinely think Angular's template language and
               | all the complexity it comes with is better than JSX just
               | saying "anything between {} is plain JS"?
        
             | itslennysfault wrote:
             | Agreed. React reminds me of early days PHP. Which I
             | supposed makes sense from an engineering org that was
             | birthed on PHP. Separation of concerns?? NAHHH!!
        
             | cercatrova wrote:
             | You'd be wrong. JSX is just syntax sugar over manipulating
             | nested JS objects which represent the state. Try React
             | sometime, their docs are great: https://beta.reactjs.org/
        
             | woah wrote:
             | > Like putting HTML inside strings or whatever they are
             | doing.
             | 
             | That's exactly what they're not doing
        
           | ramesh31 wrote:
           | >Who do you feel React is hurting, and in what way?
           | 
           | There's an entire open source community that revolves around
           | "React alternatives that exist because they're not React".
           | For better or worse, people have ideological reasonings for
           | their choice of JS framework. I've seen it play out countless
           | times at multiple jobs between people who just want to get
           | their work done with the industry standard tooling, and
           | people who have a bone to pick with FB and become fanatical
           | about using Vue/Svelte/*whatever instead of React.
           | 
           | The contrarians usually win out, because the people who just
           | want to do their job and go home don't care enough to fight
           | that battle over and over again. The result is a patchwork of
           | forgotten projects and frozen dependencies that no one knows
           | how to maintain, and a security nightmare where everything is
           | pulling in tons of random unmaintained NPM packages with 4
           | GitHub stars, rather than the battle tested 5 year old React
           | equivalent with 2k stars.
        
             | bornfreddy wrote:
             | > ...and a security nightmare where everything is pulling
             | in tons of random NPM packages with 4 GitHub stars.
             | 
             | To be fair, this happens with React too (all the time). It
             | has more to do with the JS ecosystem than with the
             | framework of choice.
        
             | cercatrova wrote:
             | This is exactly why I use React after using libraries like
             | Vue. The ecosystem matters, and non-React libraries are
             | simply just not there. I want to make stuff, not wrangle
             | around with poorly-supported dependencies.
        
         | dmitriid wrote:
         | 1. What "non-native" web standards does React work with?
         | 
         | 2. Have the "non-hurting" web components solved all the issues
         | that literally no other "no -native-standard" frameworks have?
         | https://twitter.com/Rich_Harris/status/1198332398561353728
         | 
         | 3. Why is it that all the issues that arise from Web Components
         | merely existing are "solved" by throwing more and more
         | Javascript at the platform (anything from form participation to
         | anything else, really)
         | 
         | 4. Could it be that it is Google as the main driving force
         | behind web components is the one hurting people by making the
         | platform ever more brittle and unimplementable?
        
         | Existenceblinks wrote:
         | I don't love React but the examples you mentioned make web
         | component look bad. It's as bad (bloat) as React.
         | 
         | ---
         | 
         | EDIT: add links of evidence
         | 
         | https://github.com/adobe/spectrum-web-components/discussions...
         | 
         | https://github.com/shoelace-style/shoelace/issues/525
         | 
         | I've seen many people in this space often forget to utilize
         | `import` and `export`, that is not trying to write composable
         | modules so that it's treeshake-able.
        
         | rapfaria wrote:
         | Thought web components were dead
        
       | brailsafe wrote:
       | Ironically I had I no clue what I was looking at on mobile
        
       | RomanPushkin wrote:
       | I like the initiative.
       | 
       | The main concern is whether to stick to "proprietary" design
       | framework, either it's Jetbrains Ring UI, Atlaskit, and so on.
       | 
       | There are _lots_ of community-driven alternatives, and it feels
       | much safer to pick something that doesn't belong to a corp.
       | 
       | I'm willing to hear pros for choosing such UI framework.
        
         | MarathonSeeker wrote:
         | The main reason you would want to pick such a proprietary
         | library is to achieve a homogeneous look and feel (often
         | behavioral UX as well) when your app must work within another
         | product - this product/organization is usually the one that
         | also provides the library in question, and more often than not,
         | uses the same design system if not the library itself.
         | 
         | We built https://github.com/freshworks/crayons for the same
         | reason - apps published to the Freshworks Marketplace can be
         | built using Crayons. We also ended up building our own user
         | facing SaaS applications using Crayons.
        
       | Mikeb85 wrote:
       | Android Chrome right now, the navbar elements are squished and
       | the top of the body is hidden by the navbar.
        
       | blantonl wrote:
       | Here I am thinking this was a web based IDE for developing user
       | interfaces for Ring cameras.
       | 
       | I guess not.
       | 
       | This means Amazon is going to sue JetBrains, right?
        
       | manigandham wrote:
       | Lots of UI frameworks by various companies - I keep track of the
       | big ones here:
       | https://gist.github.com/manigandham/34154e63dc3c1b8747fab40d...
        
         | autoconfig wrote:
         | Just FYI a couple of heavy hitters you might wanna add to the
         | list:
         | 
         | - Adobe spectrum: https://spectrum.adobe.com/
         | 
         | - Radix UI: https://www.radix-ui.com/
         | 
         | - Tailwind UI: https://tailwindui.com/
         | 
         | - Reach UI: https://reach.tech/
        
           | eddieh wrote:
           | Adobe has http://topcoat.io too. How many companies have
           | multiple component libraries/frameworks? Seems like a lot of
           | wasted time and resources.
        
       | [deleted]
        
       | jbirer wrote:
       | So when is the JetBrains operating system coming through? I will
       | switch to it if it's as feature-full as other JetBrains products.
        
       | NonNefarious wrote:
        
         | mattmcknight wrote:
         | It's a design system. https://www.invisionapp.com/inside-
         | design/guide-to-design-sy...
        
         | kyawzazaw wrote:
         | People share things they find interesting on HN. Should there
         | be a reason?
         | 
         | Why it got on the front page is definitely not the work of the
         | OP alone.
        
         | grardb wrote:
         | There is a list of components in the sidebar on the left. If
         | you click those, you will see those components instead of the
         | alerts.
        
           | yCombLinks wrote:
           | That doesn't answer any of the questions. What am I supposed
           | to be admiring, thinking about, using this for? Is this a
           | tool I should adopt or test? Is this a new UI pattern to
           | think about? There's no obvious context.
        
             | notsrg wrote:
             | As a FE developer I appreciate the updates from HN when a
             | bigger company releases something as OSS. It's nice to know
             | what approaches others are taking to solve similar
             | problems.
        
             | slowmovintarget wrote:
             | What you're talking about is advertising and advocacy. I
             | personally don't mind less of that.
        
           | hoten wrote:
           | Thanks! The initial selection being an alert module had my
           | thinking the page was broken...
        
       | tmd83 wrote:
       | Does anyone has thoughts on what's the best datetime picker that
       | works sanely in mobile, first to pick an olde date (Say birth
       | date) and user date/time can also be somewhat typed in on the
       | text field?
        
       | pier25 wrote:
       | The Loader component has this parameter:
       | hermione: {skip: true}
       | 
       | Is that a reference to Harry Potter or maybe I'm missing
       | something as a non native speaker? :)
       | 
       | Edit:
       | 
       | No, it's about this:
       | 
       | https://github.com/gemini-testing/hermione
        
       | ulimn wrote:
       | Is it me, or are the labels totally not vertically centered in
       | the buttons? I'm using firefox.
        
         | varispeed wrote:
         | I am on Chrome and the styling looks messed up or there was no
         | UI designer in the team.
        
       | lxe wrote:
       | Component UI libraries have converged towards providing the most
       | basic building blocks instead of creating higher levels of
       | abstraction, which I personally think is a bad trend.
       | 
       | You could build a very complex UI with Ext.JS back in 2010 with a
       | lot less code and very little time, while it takes a while lot
       | more work to produce even something relatively basic with modern
       | UI frameworks.
       | 
       | I really don't care about how customizable your spinner is. I
       | want to use it in common contexts with as little code as
       | possible. Heck, at least provide me with a kitchen sink so I can
       | copy and paste common patterns.
        
         | savingGrace wrote:
         | "You could build a very complex UI with Ext.JS back in 2010
         | with a lot less code and very little time" I have not
         | encountered a more complex and verbose library than ExtJS. I
         | would never in a million years say "very little time" with
         | ExtJS. I did not enjoy my time with it at all. And that was a
         | whole lot of time, since it took forever to do the simplest of
         | things.
        
         | josh_p wrote:
         | Component libraries like Telerik and Infragistics still seem to
         | be going strong in 2022.
        
         | manmal wrote:
         | An approach I like is to provide basic components (i.e. a
         | toolkit) and higher order components that can be copied into
         | the project as required. This allows maximal flexibility while
         | also providing the possibility to DRY things up in your own
         | codebase.
         | 
         | Tailwind and Tailwind components achieves this for example. Web
         | components also come to mind.
        
         | brundolf wrote:
         | What's shifted is that product/design want the UI to be
         | distinctive to the company and its brand. So each company needs
         | its own foundational UI library, or at least a highly-
         | customizable third party one
        
           | jcz_nz wrote:
           | For some apps. For internally-facing admin for example tools
           | we want a minimal learning curve and readily recognisable,
           | sign posted models. It needs to look like stuff you already
           | know, down to icons and ux behaviour.
        
         | Philip-J-Fry wrote:
         | Supplying the building blocks is how you're able to compose
         | them into something different.
         | 
         | If all the UI libraries just gave you highly abstracted
         | prebuilt components with little to no customisability, then you
         | wouldn't use them. Because as soon as you want to do something
         | different, you'd have to write your own or find someone else's.
        
         | dustingetz wrote:
         | datasync / backend-for-frontend problem
        
         | woah wrote:
         | > You could build a very complex UI with Ext.JS back in 2010
         | with a lot less code and very little time
         | 
         | What's stopping you from doing that now?
        
           | lxe wrote:
           | Hype
        
         | jahewson wrote:
         | Being limited to highly abstracted libraries leads to worse UI
         | because you have to shoehorn your app into the limited set of
         | forms the library allows you to express.
         | 
         | If you just want some boilerplate UI in a hurry, this is fine
         | (it's actually better) but it sets an upper bound for how good
         | the UI can ever be and that's a problem for serious
         | professionals.
         | 
         | Of course most UI is horrible but that's true no matter what
         | framework you give them. There's always somebody using
         | checkboxes as radio buttons.
        
           | Kuinox wrote:
           | Funny how this argument was opposed against libraries in the
           | early days of programming.
        
         | ethbr0 wrote:
         | Developers care about functionality.
         | 
         | Designers care about uniqueness.
        
           | yellsatclouds wrote:
           | and their bosses care about both developers and designers
           | being replaceable cogs in their company... else the bus
           | accident test fails
        
       | RockingGoodNite wrote:
       | Where are they based out of these days?
        
       | ComputerGuru wrote:
       | Note to readers: you need to view this on a desktop (or maybe a
       | tablet would work?). At least on my phone a considerable amount
       | of the functional UI is completely cut off and rendered
       | inaccessible even with scrolling. (Hopefully they are not
       | dogfooding and this has nothing to do with the tech they're
       | touting!)
        
         | api wrote:
         | I think this is a desktop-oriented toolkit. It seems to be.
        
         | Shacklz wrote:
         | Probably some storybook-related issue, we also use it at work,
         | and while it's a joy to use _when_ it works it can be a pain to
         | set up, and it does tend to need a bit more effort to keep it
         | stable than one would wish for unfortunately.
        
           | geraldwhen wrote:
           | If you manage your own web pack config it's pretty
           | straightforward to keep updated and working.
           | 
           | It's when you rely on a webpack config you can't see that
           | it's hard to keep storybook's config and your app's config in
           | sync.
        
         | gedy wrote:
         | It's actually the tool they used to host the design system
         | (Storybook), it ironically has its own UI, not using the
         | Jetbrains components.
        
         | joenathanone wrote:
         | Completely locked up my phone, Galaxy S10+ Chrome.
        
         | joenathanone wrote:
         | Completely locked up my phones browser, Galaxy S10+ Chrome.
        
           | klabb3 wrote:
           | Firefox on iOS here. Crashed the browser, impressive!
        
       | dheera wrote:
       | Not only is this website a massive fail on mobile, but simple,
       | common gestures like swiping between tabs don't work.
       | 
       | This reminds me of older UI libraries like jQueryUI that are
       | equally painful on mobile.
        
         | geraldwhen wrote:
         | It's a storybook site. It has nothing to do with the hosted
         | components.
         | 
         | Storybook can work fine on mobile so I think they must be doing
         | something to hose the built storybook file.
        
       ___________________________________________________________________
       (page generated 2022-10-07 23:01 UTC)