WithSide
サイドコンテンツを持つ2カラムレイアウト を作成します。
Props
プロパティ | 出力 | 説明 |
---|---|---|
isSide | .is--side | サイド要素として扱いたい要素に指定します。 |
sideW | --side-w | Side要素の横幅 |
mainMinW | --main-minW | もう一方の流動幅の要素が維持する最小幅 ( sidePosition がない時のみ有効) |
sidePosition | [data-side-position] | サイド要素の配置を指定できます。 |
bp | .-gt@{bp} | sidePosition の指定がある時の、カラム折り返しタイミングを指定できます( sidePosition がない時は無効) |
Import
import { WithSide } from '@lism-ui/core';
Usage
子要素の一方に isSide
(.is--side
)を指定する必要があります。
ブレイクポイントでの折り返し
sidePosition
([data-side-position]
)を指定し、横並び時と縦並び時のside要素の配置を指定できます。
この時、<WithSide>
(.l--withSide
)は grid レイアウトで構成されるようになり、ブレイクポイントを起点に縦並び・横並びが切り替わります。
(デフォルトではsm
サイズでレイアウトが切り替わります)
sidePosition
は、"{横並び時の配置} {縦並び時の配置}"
という形式で指定します。
それぞれstart
またはend
で指定します。
sidePosition='start end'
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
<WithSide sidePosition='start end' sideW='10rem' g='30'> <Box> <Dummy /> </Box> <Box isSide>Side Content</Box></WithSide>
sidePosition
指定パターン一覧
sidePosition
([data-side-position]
)は以下の値をサポートしています。
'start start'
( ='start'
)'start end'
'end start'
'end end'
( ='end'
)
sidePosition="start start"
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
sidePosition="start end"
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
sidePosition="end start"
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
sidePosition="end end"
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
ブレイクポイントの指定
bp
で指定できます。
ここで有効な値は、grid
(gd
)がサポートするブレイクポイントに従います。(sass設定で上書き可能)
bp='md'
にセットLorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
<WithSide sidePosition='end' bp='md' sideW='10rem' g='30'> <Box> <Dummy /> </Box> <Box isSide>Side Content</Box></WithSide>
メディアクエリに依存しない配置切り替え
sidePosition
([data-side-position]
) の指定を省くことで、メディアクエリに依存せずに横並びと縦並びの切り替えを行うこともできます。
この時、side要素ではない方の要素の幅が、--main-minW
の値を下回ると1カラムに切り替わるようになっています。
デフォルトではmax(16rem,50%)の幅を最低限維持します
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
<WithSide sideW='10rem' g='30'> <Box> <Dummy /> </Box> <Box isSide>Side Content</Box></WithSide>
メイン要素が30rem
を下回る時、1カラムに切り替える
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
<WithSide sideW='10rem' mainMinW='30rem' g='30'> <Box isSide>Side Content</Box> <Box> <Dummy /> </Box></WithSide>
反転
-fxd:rr
クラス(flex-direction:row-reverse
)を併用することで、横並びの時の順番だけを反転させることができます。
これにより、横並びの時は左側、縦並びの時は下側にside要素を配置できます。
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
<WithSide fxd='rr' sideW='10rem' g='30'> <Box> <Dummy /> </Box> <Box isSide>Side Content</Box></WithSide>