Media
メディア用に少し特殊な処理が加えられている<Lism>
コンポーネントです。
- デフォルトで
<img>
タグが出力されます。 <Media>
には filter系プロパティ を指定しやすくなっています。
blur
,contrast
,brightness
,grayscale
,hueRotate
,invert
,saturate
,sepia
,dropShadow
を統合し、style.filter
へ受け渡します。objectPosition
をstyle
プロパティを介さずにそのま指定できます。objectFit
をstyle
プロパティを介さずにそのま指定できます。
さらに、cover
,contain
の場合はユーティリティクラス(-obf:cv
,-obf:cn
)で出力します。
↓
例

<Media src='/img/img-2.jpg' alt='' width='960' height='640' />
↓
filter系のプロパティ, objectPosition の指定

<Frame tag='figure' ar='16/9' pos='r'> <Media contrast={1.1} saturate={0.2} objectPosition='50% 100%' src='/img/img-2.jpg' alt='' width='960' height='640' /> <Text tag='figcaption' pos='a' z='1' b='0' p='5' w='100%' c='white' ta='c' lts='l'>Lorem ipsum text.</Text></Frame>
Next.js の<Image>
を使う方法
Section titled “Next.js の<Image>を使う方法”Next.jsのImage
などは、as
プロパティに渡すことができます。
↓
as
を活用してでNext.jsのImage
を渡すimport { Media } from 'lism-css/react';import Image from 'next/image';
<Media as={Image} src="/img.jpg" alt="" width='960' height='640' />
Astro の<Image>
を使う方法
Section titled “Astro の<Image>を使う方法”Astroの<Image>
は、as
に渡すことができません。
Astro(TypeScript?)のチェックに引っかかり、「Image missing required “alt” property.」エラーが出てしまいます。
そのため、lism-css/astro
から読み込んだ<Media>
では、以下のようにas
に'AstroImage'
という文字列を指定することで内部で<Image>
が呼び出されるようにしています。
↓
Astroの
<Image>
を使用する例import { Media } from 'lism-css/astro';import Image from 'next/image';
<Media as='AstroImage' src="/img.jpg" alt="" width='960' height='640' />