検索

Frame (l--frame)

l--frame は、直下のメディア要素(img,video,iframe)を 自身のサイズにフィットさせて表示するクラスです。

CSS

.l--frame {
  overflow: hidden; // Memo: clip だと stack の直下で aspect-ratio が効かない。

  // 直下のメディアを frame いっぱいに広げる。
  > :where(img, video, iframe) {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

Lismコンポーネント

Import

import { Frame } from 'lism-css/react';

専用Props

プロパティ説明
arフレームの比率を指定できます。

(ar 自体はどのコンポーネントにも指定できる CSS Props です。)

Usage

アスペクト比の指定

ar='16/9'を指定
リサイズ
<Frame ar="16/9">
<img src="https://cdn.lism-css.com/img/a-1.jpg" alt="" width="960" height="640" />
</Frame>

figure, figcaptionの使用

figure, figcaptionの使用
Lorem ipsum text.
リサイズ
<Frame as="figure" ar="16/9" pos="relative">
<img src="https://cdn.lism-css.com/img/a-1.jpg" alt="" width="960" height="640" />
<Flex as="figcaption" pos="absolute" z="1" b="0" w="100%" jc="center" p="10" c="white" bgc="rgb(0 0 0 / 40%)">
Lorem ipsum text.
</Flex>
</Frame>

videoの使用

videoの使用
リサイズ
<Frame ar="16/9">
<video controls>
<source src="/video/video-1.mp4" type="video/mp4" />
</video>
</Frame>

iframeの使用

iframeの使用
リサイズ
<Frame ar="16/9">
<iframe
src="https://www.youtube.com/embed/gcgKUcJKxIs?si=uDa6akiLY3QmM8pK"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowfullscreen
></iframe>
</Frame>

Layer系を活用する

Layer系を活用する

Heading

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.

リサイズ
<Frame ar="3/2" pos="relative" c="#fff">
<img src="https://cdn.lism-css.com/img/a-1.jpg" alt="" width="960" height="640" />
<Layer style={{ backdropFilter: 'blur(4px)' }} bgc="rgb(0 0 0 / 40%)" />
<Layer p="30" ov="auto">
<Center min-h="100%" g="15">
<h2>Heading</h2>
<Text max-w="xs">
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.
</Text>
</Center>
</Layer>
</Frame>

arはどのコンポーネントにも指定できます

arで指定できる値について

ar(aspect-ratioのCSS Props)は他のコンポーネントでも指定できる汎用的なプロパティです。
使用できる値についてはこちらをご覧ください。

Flowにarを指定する例

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 ar="16/9" ov-y="auto" p="30">
...
</Flow>
arはブレイクポイントで変更することも可能です。
比率:1/13/216/9
リサイズ
<Frame ar={['1/1', '3/2', '16/9']} pos="relative">
...
</Frame>

© Lism CSS. All rights reserved.