コンテンツにスキップ

Utilitiy Class

ユーティリティクラスを紹介します。

スタイル・装飾をまとめてセットするようなクラスを分類しています。

--keycolor変数をベースに、--c, --bgc, --bdccolor-mix() で生成します。

color, background-color にそれぞれ生成された 変数がセットされますが、--bdcは変数定義のみになるため、ボーダーを表示する時は-bdクラスとの併用が必要です。

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

リサイズ可能
<div class='u-cbox -p:20' style='--keycolor:var(--red)'>
<p>Lorem ipsum dolor <i>sit amet</i>. consectetur <a href='###'>adipisicing elit</a>, sed do eiusmod tempor. Non facere <code>Laudantium</code> ex eos <b>doloribus aut dolore</b> nisi provident.</p>
</div>
<div class='u-cbox set-shadow -bd -bdrs:20 -bxsh:20 -p:20' style='--keycolor:var(--purple)'>
<p>Lorem ipsum dolor <i>sit amet</i>. consectetur <a href='###'>adipisicing elit</a>, sed do eiusmod tempor. Non facere <code>Laudantium</code> ex eos <b>doloribus aut dolore</b> nisi provident.</p>
</div>
<div class='u-cbox -bd-x-s -p:20' style='--keycolor:var(--brand);--bdc:var(--keycolor);--bdw:4px'>
<p>Lorem ipsum dolor <i>sit amet</i>. consectetur <a href='###'>adipisicing elit</a>, sed do eiusmod tempor. Non facere <code>Laudantium</code> ex eos <b>doloribus aut dolore</b> nisi provident.</p>
</div>
バッジで利用する例と、変数によるカスタマイズ例
Badge Badge Badge
Badge Badge Badge
リサイズ可能
<div class='u-cbox -p:20' style='--keycolor:var(--blue)'>...</div>
<div class='u-cbox -bd -p:20' style='--keycolor:var(--red)'>...</div>
<div class="u-cbox -bd -p:20" style="--keycolor:var(--purple);--bdc:color-mix(in srgb, var(--keycolor) 25%, var(--base))">...</div>
<div class='u-cbox -bd-x-s -p:20' style='--keycolor:#688f04;--bdw:4px;'>...</div>
パレットカラー一覧

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.


Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

Title Text

Lorem ipsum dolor sit amet. consectetur adipisicing elit, sed do eiusmod tempor. Non facere Laudantium ex eos doloribus aut dolore nisi provident.

テキストのハーフレディング分の余白を調整するためのクラスです。

自身のmargin-blockを調整するだけのu-trimと、子要素全ての上下マージンを調整するためのu-trimItemsがあります。

u-trim

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.

リサイズ可能
<div class="l--box -bd" style="--bds:dashed">
<p class="u-trim">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.</p>
</div>

u-trimItems内のimg, figure, tableに対してはマージンの調節を無効化しています。

u-trimItems

ロレム・イプサムの座り雨。目まぐるしい文章の流れの中で、それは静かに歩く仮の言葉です。

ロレム・イプサムの座り雨。目まぐるしい文章の流れの中で、それは静かに歩く仮の言葉です。Elitも穏やかに続いていきますが、積み重ねられてきた「LiberroyとFoogの取り組み」は、余白のようなものです。作業が進むにつれて、工夫や考えとともに関心が折り重なりながらも、必要以上に主張せず彼らの作品は私たちに一定の示唆を与えてくれます。

リサイズ可能
<div class='u-trimItems l--stack -bd -g:30 -p:30 -bdrs:10'>
<img class='a--media -ar:og' src='https://cdn.lism-css.com/img/a-1.jpg' />
<p>ロレム・イプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。</p>
<p>ロレム・イプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。ブラインド行うにはいくつかの重要な事柄が流れます...。</p>
</div>

クリック範囲を親要素に広げるためのクラスです。

主にis--linkBoxと併用して、内部のリンクをボックス全体に広げるために使用します。

活用例は <LinkBox> を参照してください。

要素を視覚的に隠すことができるクラスです。
スクリーンリーダー用のテキストなどに利用してください。

.u-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}

グリッド・フレックスボックス等の子要素間に区切りとなるようなボーダーを表示します。

実装としてはbox-shadowで表現していますので、少し扱いには注意が必要です。

Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
リサイズ可能
<Grid layout='fluidCols' className='u-collapseGrid' cols='12rem' bdrs='20'>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
</Grid>
pにp='0' ov='clip'をセットすると、周囲のボーダーが見えなくなります。
Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
リサイズ可能
<Grid layout='fluidCols' className='u-collapseGrid' cols='12rem'>
<Box p='15'><Dummy /></Box>
<Box p='15'><Dummy /></Box>
<Box p='15'><Dummy /></Box>
<Box p='15'><Dummy /></Box>
<Box p='15'><Dummy /></Box>
<Box p='15'><Dummy /></Box>
<Box p='15'><Dummy /></Box>
</Grid>

その状態で親グリッドにbdを指定すると、要素が埋まっていないところだけボーダーを表示しないカレンダーのような表現が可能です。

bdを指定
Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
Grid Item
リサイズ可能
<Grid layout='fluidCols' className='u-collapseGrid' cols='10rem' ov='clip' p='0' bd>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
<Box p='15'>Grid Item</Box>
</Grid>

Flexboxで横並び・縦並びが変わるようなレイアウトでも、このユーティリティクラスを活用すれば簡単に要素感のボーダーを表示できます。

Box
Box
Box
Box
リサイズ可能
<Flex fxd={['column','row']} className='u-collapseGrid'>
<Box fx='1' p='15'>Box</Box>
<Box fx='1' p='15'>Box</Box>
<Box fx='1' p='15'>Box</Box>
<Box fx='1' p='15'>Box</Box>
</Flex>

Gridを使って table タグのような表現もできるようになります。

u-collapseGridを使ってテーブルのような表現にする
A
B
Lorem ipsum

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.

Dolor sit amet

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint.

リサイズ可能
<Grid gtc={['2fr 3fr', '1fr 2fr']} className='u-collapseGrid'>
<Box p='15' bgc='base-2'>A</Box>
<Box p='15' bgc='base-2'>B</Box>
<Box p='15'>Lorem ipsum</Box>
<Box p='15'><Dummy /></Box>
<Box p='15'>Dolor sit amet</Box>
<Box p='15'><Dummy length='l'/></Box>
</Grid>

ここからは、Lism CSS のコアCSSファイルには含まれていないが便利なユーティリティクラスの作成例をいくつか紹介します。

絵文字やインラインアイコンをテキストのセンター位置に合わせて配置するためのクラスです。 vertical-align: middle;だけではずれが発生するため、追加でtranslateで調整を加えています。

使用例

Lorem ipsum dolor sit amet.

Dog, and Cat.

🚀 Emoji.

Inline img icon.

<p><Icon className='u-inlineCenter' icon='alert' c='red' fz='xl' /> Lorem ipsum dolor sit amet.</p>
<p><Icon className='u-inlineCenter' as={Dog} fz='l' />Dog, and <Icon className='u-inlineCenter' as={Cat} fz='l'/>Cat.</p>
<p><span class='u-inlineCenter -fz:xl'>🚀</span> Emoji.</p>
<p><Icon fz='2xl' className='u-inlineCenter' src="https://emojix.s3.ap-northeast-1.amazonaws.com/g3/svg/1f916.svg" alt="image" /> Inline img icon.</p>

スクロール可能な方向を示すためにコンテンツをフェードさせるためのクラスです。

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint.

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint.Occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis undeomnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint.

<Flow p='30' ar='2/1' bgc='base-2' ov='auto' className='u-scFade:y'>
<Dummy />
<Dummy length='l' />
<Dummy tag='img' />
<Dummy length='xl' />
</Flow>
<Divider />
<Flex className='u-scFade:x set-snap' ov='auto' g='20'>
<Frame ar='16/9' fxsh='0' w='40%'>
<img src='https://cdn.lism-css.com/img/a-1.jpg' alt='' />
</Frame>
<Frame ar='16/9' fxsh='0' w='40%'>
<img src='https://cdn.lism-css.com/img/a-2.jpg' alt='' />
</Frame>
<Frame ar='16/9' fxsh='0' w='40%'>
<img src='https://cdn.lism-css.com/img/a-3.jpg' alt='' />
</Frame>
<Frame ar='16/9' fxsh='0' w='40%'>
<img src='https://cdn.lism-css.com/img/a-4.jpg' alt='' />
</Frame>
<Frame ar='16/9' fxsh='0' w='40%'>
<img src='https://cdn.lism-css.com/img/a-5.jpg' alt='' />
</Frame>
</Flex>

スクロール可能な方向を示すためにshadowを内側に表示させるためのクラスです。
(insetなシャドウでスクロールヒントを表現しているため、内側コンテンツに背景色がついていたり、画像の場合は影が隠れてしまうことには注意が必要です。)

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint.

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.Aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint.Occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis undeomnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.

Lorem ipsum dolor sit amet.Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.Labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.

<Flow className='u-scShadow:y' p='20' ar='2/1' ov='auto' max-sz='s' bgc='base-2'>
<Dummy />
<Dummy length='l' />
<Dummy tag='img' />
<Dummy length='xl' />
</Flow>
<Frame className='u-scShadow:x' p='20' ov='auto' max-sz='s' bgc='base-2'>
<Dummy whspace='nowrap' />
</Frame>

テキストで背景をクリッピングするためのクラスです。

テキストで背景をクリッピング

TEXT

<Center>
<Box className='u-bgclipText' bg='linear-gradient(45deg, var(--blue), var(--pink))'>
<HTML.p fz='5xl' fw='bold' lh='1' lts='l'>TEXT</HTML.p>
</Box>
</Center>
...