jsx
sciter
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jsx
-
I am having to pass down 8+ props even for simple components. What are some common ways to mitigate this? (Typescript)
Svelte syntax? Yes, there is upcoming initiative JSX 2.0 which includes shorthands like that. However, have no idea whether it will be released any time soon. So let's say "this is part of React/JSX 1.0" (shrugging)
-
Why TypeScript is the better JavaScript
Inherent support for JSX in the language itself
-
Node.js やReact、ESM、Viteの説明
JavaScript + HTML(DOM)= JSX
-
Alpine.js
FWIW, the className prop is a React thing not a JSX thing. Other libraries which use JSX will happily accept a plain class prop. The React limitation is abstraction leakage: props are not attributes, they map to DOM properties.
But to the point that JSX is a DSL, that limitation is specifically because React itself is very tightly coupled to DOM semantics… but JSX explicitly has no built in semantics[1].
1: First sentence of https://facebook.github.io/jsx/ - “JSX is an XML-like syntax extension to ECMAScript without any defined semantics.”
-
React - Introducing JSX
JSX stands for 'JavaScript XML' and is a syntax extension for JavaScript. It is used to create DOM elements that are then rendered in the React DOM. Although it looks like HTML, it is actually an XML-like syntax specifically written for use in React. Interestingly, JSX is not valid JavaScript either. JSX needs to be compiled by a tool like Babel to be translated into regular JavaScript that a browser can understand. Put simply, JSX describes what the UI should look like, and React takes care of properly rendering it.
- Web lagnunages to learn
-
My thoughts on Mithril.js
Alternatively, you can use JSX syntax (like with React), but then you need build-tools.
-
Incrementally adopting TypeScript in a create-react-app project
Note: For React component files (JSX) we'll use .tsx to maintain JSX support and for non React files we'll use the .ts file extension. However, if you want you could still use .ts file extension for React components without any problem.
-
Sciter, the 5 MB Electron alternative, has switched to JavaScript
I’m concerned that you’re falling into the same trap here with integrating your own variant of JSX, and mulling over adding more things like hyphens in unquoted object literal keys.
JSX is popular enough that it’s safe, ECMAScript isn’t going to break it, but your alterations to JSX are already significantly incompatible: you have being equivalent to JSX("input", {"class": "search"}, null), but the JSX everyone else is using has that equivalent to JSX(input.search, {}, null). I’m not certain if your JSX syntax is supposed to be able to be used with React code or anything else that uses JSX syntax, but if yes then it’ll be broken in a significant number of cases so that it’s worse than useless, and if no, well, it’s going to be misleading, and what if JSX did get merged into ECMAScript in some form? Then you’d be incompatible with ECMAScript again.
Same deal with hyphens in unquoted object literal keys: it’s not part of ECMAScript now, but just because it’d be a syntax error now doesn’t mean it always will be. Decorators in TypeScript are a good example of things going badly wrong even when an extremely popular project is involved.
I say: if you want to go JavaScript, go JavaScript, maaaaaybe plus standard JSX conforming with <https://facebook.github.io/jsx/>, and no further. Even if what you do is obviously superior, &c. &c. I’d apply the same reasoning on your fork of CSS: you introduced it for a good reason back then, but now it’s just friction, even if it’s a little better in a vacuum (and maybe it is in parts, maybe it isn’t in other parts).
-
Do you think HTML is a programming language
Then it might be time for a pull request which identifies these parts as JSX.
sciter
- Show HN: Open Source TailwindCSS UI Components
-
Show HN: Dropflow, a CSS layout engine for node or <canvas>
> wondering if css and svg could be used as abstraction over graphics and UI libraries
There's another project called Sciter that uses CSS to target native graphics libraries: https://sciter.com
> I wonder how hard it was to implement css. I've heard it can be pretty complex.
It was hard, but the biggest barrier is the obscurity of the knowledge.
Text layout is the hardest, because working with glyphs and iterating them in reverse for RTL is brain-breaking. And line wrapping gets really complicated. It's also the most obscure because nobody has written down everything you need to know in one place. After I finished block layout early on, I had to stop for a couple of years (only working a few hours a week though) and learn all of the ins, outs, dos, and don'ts around shaping and itemizing text. A lot of that I learned by reading Pango's [1] source code, and a lot I pieced together from Google searches.
But other than that, the W3C specifications cover almost everything. The CSS2 standard [2] is one of the most beautiful things I've ever read. It's internally consistent, concise, and obviously the result of years of deliberation, trial and error. (CSS3 is great, but CSS2 is the bedrock for everything).
[1] https://gitlab.gnome.org/GNOME/pango/
- Ask HN: Fastest cross-platform GUI stack/strategy
- Bringing Back Horizontal Rules in HTML Select Elements
-
Immediate Mode GUI Programming
otherwise, if we have only retained mode as in browsers, we will need to modify the DOM heavily and create temporary elements for handles.
[1] https://sciter.com
- This year in Servo: over 1000 pull requests and beyond
-
Rusty revenant Servo returns to render once more
I've still never used it but I've long been curious about Sciter:
https://sciter.com
- Ode to the M1
-
So you want to write a GUI framework (2021)
These bullet points are exactly what I did in Sciter (https://sciter.com)
- Windowing
-- Tabs
-- Menus
-- Painting
-- Animation
-- Text
-The compositor
-Handling input
-- Pointer input
-- Keyboard input
- Accessibility
- Internationalization and localization
- Cross-platform APIs
- The web view
- Native look and feel
On top of that DOM and CSS implementations to achieve declarative UI. And JS as a languuage behind UI - declarative in some sense way of defining UI behavior.
-
Servo, the parallel browser engine written in Rust
I'm not sure if it can support all the libraries but yes it can be used to make desktop apps. Theres also Sciter.
https://sciter.com/
What are some alternatives?
htm - Hyperscript Tagged Markup: JSX alternative using standard tagged templates, with compiler support.
webview - Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows).
React - The library for web and native user interfaces.
qt - Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
joystick - A full-stack JavaScript framework for building stable, easy-to-maintain apps and websites.
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.
denoflare - Develop, test, and deploy Cloudflare Workers with Deno.
flexboard - React component library for re-sizable sidebars
prepack - A JavaScript bundle optimizer.
RmlUi - RmlUi - The HTML/CSS User Interface library evolved
vite - Next generation frontend tooling. It's fast!
NanoGUI - Minimalistic GUI library for OpenGL