コンテンツにスキップ

Lism

Lism Props( CSS Props 及び State Props )を受け取るための特殊なコンポーネントです。
何も指定がなければ、ただの<div>タグを返します。

Lismで配布しているコンポーネントのほぼ全ては、この<Lism>がベースなっています。

Props

プロパティ説明
tag出力する HTMLタグを指定できます。デフォルトはdivを返します。
asLism Propsの処理後、asに指定された別コンポーネントとして展開できます。
exPropsLism Propsとして処理したくないpropsを指定できます。asで指定した外部コンポーネントに渡したいpropsを指定するのにも便利です。
skipStateState Props用の処理をスキップできます。

Import

import { Lism } from '@lism-ui/core';

Usage

Lismの使用例

Content…

<Lism p='30' bgc='base-2'>
<p>Content...</p>
</Lism>

派生コンポーネント

<Lism>は汎用的すぎるので、用途に合わせた派生コンポーネントもいくつか用意されています。

<Text>

テキスト用にデフォルトで<p>タグが出力されるようになった<Lism>コンポーネントです。
<Lism tag='p'>のエイリアス)

Textの例 1

Lorem ipsum text.

<Text ta='c' fz='xl' lts='l'>Lorem ipsum text.</Text>

リンク用に少し特殊な処理が加えられているコンポーネントです。

  • デフォルトで<a>タグが出力されます。
  • isOverlayLinkis--overlayLinkクラス、
    isHiddenLinkis--hiddenLinkクラスが出力されます。
Linkの例

Lorem ipsum link text

リサイズ可能
<p>Lorem ipsum <Link href='###'>link text</Link></p>

<Media>

メディア用に少し特殊な処理が加えられているコンポーネントで、<Lism>と同様のPropsを受け取れるほか、以下のような特徴があります。

  • デフォルトで<img>タグが出力されます。
  • blur,contrast,brightness,grayscale,hueRotate,invert,saturate,sepia, dropShadow を統合し、css.filterに受け渡します。 <Media>には filter を指定しやすくなっていますので、それを活用する例も。
  • css.objectFit,css.objectPositioncssプロパティを介さずにそのまま受け取れます。

リサイズ可能
<Media src='/img/img-2.jpg' alt='' width='960' height='640' />

filter系のプロパティ, objectPositionの指定

Lorem ipsum text.
リサイズ可能
<Frame tag='figure' ar='16/9' pos='r'>
<Media contrast={1.1} saturate={0.2} objectPosition='50% 70%' 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>を使う方法

Next.jsのImageは、asに渡すことができます。

asを活用してでNext.jsのImageを渡す
import { Media } from '@lism-ui/core';
import Image from 'next/image';
<Media as={Image} src="/img.jpg" alt="" width='960' height='640' />

Astro の<Image>を使う方法

Astroの<Image>は、asに渡すことができません。(Astro の <Image>asで渡そうとすると、Astro(TypeScript?)のチェックに引っかかり、「Image missing required “alt” property.」エラーが出てしまいます。)

そのため、以下のようにas'AstroImage'という文字列を指定することで内部で<Image>が呼び出されるようにしています。

import { Media } from '@lism-ui/astro';
import Image from 'next/image';
<Media as='AstroImage' src="/img.jpg" alt="" width='960' height='640' />

<Dummy>

テキスト用にデフォルトで<p>タグが出力されるようになった<Lism>コンポーネントです。
<Lism tag='p'>のエイリアス)

Textの例 1

ロレムイプサムの座り雨。

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。ブラインド行うにはいくつかの重要な事柄が流れます。

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。ブラインド行うにはいくつかの重要な事柄が流れます。長年にわたり、私は学区と長寿であれば、そのような Liberroy, Foo の取り組み、我らのうち、Mulla Sunt の利点を提案したのなら。

ロレムイプサムの座り雨、トマ好き学習だったエリット、しかし時と活力はそのような木々と楽しみ。ブラインド行うにはいくつかの重要な事柄が流れます。長年にわたり、私は学区と長寿であれば、そのような Liberroy, Foo の取り組み、我らのうち、Mulla Sunt の利点を提案したのなら。つまり、彼らはあなたの悩みに一般的な魂を癒しています。困難な必要性に少ないもの、それがコンテンツの比較です。あなたが選択的な彼女の事実、無意味な含有、便利な阻止と甘さ、誰かがもっと腐敗した残り物。提供する時間の生活、それで発明者が賢明です。

<Dummy lang='ja' length='xs'>Lorem ipsum text.</Dummy>
<Dummy lang='ja' length='s'>Lorem ipsum text.</Dummy>
<Dummy lang='ja'>Lorem ipsum text.</Dummy>
<Dummy lang='ja' length='l'>Lorem ipsum text.</Dummy>
<Dummy lang='ja' length='xl'>Lorem ipsum text.</Dummy>