Comments (7)
@dani-mp It seems to work fine. I tried this locally with the latest develop
branch.
theme-ui1.mp4
from theme-ui.
Let's close the issue then. Thanks a lot for your insight! π
from theme-ui.
@dev-cj interesting, it wasn't working for us 5 months ago and I don't see anything has changed in the Flex
component implementation. Maybe it did somewhere else (e.g. emotion)?
Could you put that in a codesanbox so I can play with it?
from theme-ui.
@dev-cj btw, this is the implementation, the sx
prop is overwritten and then spread. If you spread a fn inside an object, you get nothing.
What am I missing?
from theme-ui.
@dev-cj interesting, it wasn't working for us 5 months ago and I don't see anything has changed in the
Flex
component implementation. Maybe it did somewhere else (e.g. emotion)?Could you put that in a codesanbox so I can play with it?
Sure, here you can check https://codesandbox.io/s/zealous-star-7thpek
@dev-cj btw, this is the implementation, the
sx
prop is overwritten and then spread. If you spread a fn inside an object, you get nothing.What am I missing?
Yes sx prop is overwritten and then spread there, but there theme-ui
's transpiler executes the sx
props instead of the reac babel runtime, so even if you try to log the sx
props that are passed into the flex
component you will not see the function in the props.
To see the function in logs try logging in parseProps
here
from theme-ui.
Thanks, yeah it works!
I didn't know that the theme-ui
transpiler was kicking in before the sx
prop was computed. Or you said instead? I was assuming that first everything was compiled down to basic JavaScript, and then as a final/later step, the sx
prop was converted into something else, and removed from the final props. I guess I still don't really know how this works because it doesn't make sense to me that depending on whether your prop is sx
or not, the semantics of the JavaScript you're writing changes.
And in any case (there's probably a way to double check this), it seems that the implementation of Flex
hasn't changed during these months since I created the issue (end of last year), but a colleague and I did find this issue in our codebase and verified that Flex
wasn't working with a function, and Box was. Maybe the implementation of the runtime itself suffered a regression for some time? I even mentioned this in the description of the issue:
Maybe this was working before? We recently made a significant upgrade to one of our projects that was using quite an old version of theme-ui and noticed that some components broke because of this bug.
I didn't write the original code and I was suspicious that it never worked before, the team would have caught it for sure, and it only surfaced till we migrated to the by then current version of theme-ui
.
from theme-ui.
Yeah, it could be some core changes or conflicts with other dependencies have caused the regression.
from theme-ui.
Related Issues (20)
- Update "How it Works" Guide HOT 1
- @theme-ui/prism README improvements
- Declaration file parsing error HOT 4
- @theme-ui/global breaks when using with Vite.js define global config HOT 1
- supports the theme on `clamp` HOT 3
- link component breaks with nextjs link v13 HOT 3
- Vite crush when use theme-ui with vite-plugin-linter
- button colors for dark mode not working theme ui HOT 3
- Module '"theme-ui"' has no exported member 'Grid'.ts(2305) HOT 1
- Give logo image a white BG on README HOT 2
- Unable to use sx prop on Input component HOT 2
- NextJS: 'Box' cannot be used as a JSX component. HOT 5
- TS error: Namespace 'React.JSX' has no exported member 'ElementType'. HOT 4
- useBorderBox: false not working HOT 1
- Custom React components with an sx prop canβt live alongside HTML elements using the @jsxImportSource theme-ui pragma HOT 4
- Several TypeScript errors when upgrading to 0.16.1 HOT 5
- After updating the fonts are not properly resolved HOT 1
- Media queries are overwritten HOT 1
- Add styles to HEAD, not to BODY HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from theme-ui.