xStyled
https://gyazo.com/5203ee172da722edb6a245198177013e
from CSS Framework
Tailwind CSSインスパイアっぽいmrsekut.icon
x.divタグに対し、propsでstyleを当てる
code:例.jsx
<x.div p={{ _: 3, md: 6 }} bg="white" display="flex" spaceX={4}>
...
</div>
website
github
styled-componentsからの移行方法
https://xstyled.dev/docs/migrate-from-styled-components/
styled-components風にも書ける
https://xstyled.dev/docs/enhanced-styled-components/
code:jsx
import styled from '@xstyled/...'
const Button = styled.button`
border-radius: md;
color: #fff;
..
`
hooksもいっぱい
https://xstyled.dev/docs/hooks/
theme
colorやfont-sizeなどをここに定義して一括管理ができる
型
このを記述しないとエラー出なかった
styled-componentsとその型が必須っぽい
#??
xstledに限らないが、JSXにごちゃごちゃ書くことのメリットがあまりわからない
ただでさえPropsでごちゃつくのに
JSXに直がきすると、スタイルの再利用しづらくない?
styled-componentsにもcss={}あるじゃん
それよりも具体化されているから使いやすいのか?
初期の学習コスト高くね??
heightはhですよ、みたいなのを一々調べないといけないj
この辺の疑問だいたいここに答え書いてたmrsekut.icon
Extending styleできないのか??
https://open8tech.hatenablog.com/entry/2019/01/25/113916
classnameで拡張するやつ
高さ指定していないかつx.buttonで作ったComponentを外からheight付けたりするのどうやってやるんだよ
code:ts
const A = () => {
return (
<x.div>
<Button h={100}>
<x.div>
)
}
const Button = () => <x.button>hoge</x.button>
参考までにVer1時の書き方
readme
全く見た目が異なるmrsekut.icon
styled-componentsの拡張みたいな感じ
code:jsx
import styled from '@xstyled/styled-components'
const Box = styled.div`
background-color: primary; /* ⟶ theme.colors.primary */
margin: 2; /* ⟶ theme.space.2 */
`
export default Box