Comments (5)
Now that @jlongster made prettier to help him write JSX for styled-components
and nobody else has asked for this use case I'll close this issue!
from styled-components.
fwiw, don't do this just for me, as I'm likely to stick to glamor for the time being. Let's see if there are any other non-JSX users. I'm still surprised there aren't more of them.
from styled-components.
I think this would actually be pretty straightforward, right? This is where we define all our shorthands:
https://github.com/styled-components/styled-components/blob/master/src/constructors/styled.js
The important thing is here:
const styled = (tag: Target) =>
(strings: Array<string>, ...interpolations: Array<Interpolation>) =>
styledComponent(tag, css(strings, ...interpolations))
If we made line 3 return React.createFactory(styledComponent(tag, css(strings, ...interpolations)))
wouldn't that be enough? Wanna fork it and give it a go, see if you end up liking use it?
from styled-components.
I think @jlongster would want to avoid having to call React.createFactory
here (directly or indirectly). Something like this would be nice:
dom.div(css`
border: 1px solid black;
`, children)
Or maybe a different syntax to allow passing other props.
But I can see this quickly become a performance problem. If the component style is created within a render
function, it would probably become rather difficult to enable reuse of the style definitions. So I guess you would still want to define the components outside.
from styled-components.
Why would calling React.createFactory
be a bad thing if it was hidden inside the library? @jlongster maybe you could weigh in here?
from styled-components.
Related Issues (20)
- Theme prop (not styled) is not being passed through HOT 1
- Feature request for v5 to ease migration to v6 of large ecosystems
- Interplay of `shouldForwardProp` clarifying question
- Export the `toStyleSheet` function HOT 3
- createGlobalStyle not working version >= 5.3.1 HOT 1
- [Docs] Lint for pseudo selectors - Styled Components update from v5 to v6 HOT 1
- Tailwind selectors do not work the expected (from me) way
- React SSR Streaming Bug
- Error while building project after upgrading from 5.3.11 to 6.0.0 HOT 2
- styled-components is ~50% larger than it could be due to IE11 support HOT 1
- Cannot infer the 'as' and 'forwardedAs' props by React.ComponentProps
- Ssr not picking up styled components from an npm package HOT 1
- error TS4023 when compiling a library that uses "styled-components": "^6.1.9" HOT 4
- Required attrs type fixes for 6.1.9 not applied when using prop factory
- Types of `.attrs` are still broken for React Native on 6.1.9 when using `styled()` HOT 2
- Required attrs type fixes for 6.1.9 not applied when using union props HOT 1
- Heap issues in latest 6.1.9 HOT 3
- Regression: `typeof` on a styled component returns incompatible type
- toHaveStyleRule assertion fails after upgrading to 6.1.10 HOT 2
- Use changesets
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 styled-components.