2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Stripe UI拡張機能入門: 要素の見た目をカスタマイズする方法

Last updated at Posted at 2022-12-06

この記事は、Stripe Apps を25日間紹介し続ける Advent Calendar 2022 6日目の記事です。

スクリーンショット 2022-11-24 17.56.45.png

Stripe AppsのUIフレームワーク(@stripe/ui-extension-sdk)を利用することで、Stripe Dashboardに馴染みやすいUIを簡単に構築できます。

スクリーンショット 2022-12-05 11.56.13.png

しかし画面要件によっては、CSSで見た目を調整したい場合も出てきます。

その場合、Stripe Appsでは、BoxInlineの2要素と、cssプロパティを利用して調整を行います。

BoxInlineの使い分け

BoxInlineはそれぞれdivspanに相当する要素です。

const Example: FC = () => {
  return (
    <>
      <Box>Hello World</Box>
      <Inline>Hello World</Inline>
    </>
  )
}

このコンポーネントを表示すると、ブラウザ上では次のようになります。

<div>Hello World</div>
<span>Hello World</span>

spanのようなインライン系の要素ではInlineを、そうでない場合はBoxを利用してマークアップしましょう。

スタイルはCSS in JS形式で実装

BoxInlineそれぞれへのCSS設定は、cssプロパティで行います。

      <Box
        css={{
          margin: 'small',
          padding: 'xxlarge',
          color: 'primary',
          background: 'container',
        }}
      >Hello World</Box>

実行すると、次のような要素ができあがります。

スクリーンショット 2022-12-05 13.52.07.png

プロパティはドキュメントまたはTypeScriptの型定義でチェック

スタイルを設定する場合の注意点としては、24px10vw#fefefeのように個別に値を設定することができない点です。

基本的にほぼ全ての値が、Stripeとライブラリが提供するプロパティのみ許可しています。

そのため、色はprimary, secondary, successなどのToken形式で指定します。

スクリーンショット 2022-12-05 13.58.21.png

フォントやmargin / paddingについても、headingsmallなどの形式で指定する必要があります。

スクリーンショット 2022-12-05 13.59.16.png

「どのようなスタイルが設定できるか」を確認する方法

Stripeとライブラリによる制限が強い分、プロパティごとの見た目などについてはドキュメントで網羅されています。

Gridレイアウト系のサポート・サンプルが強力ですので、アプリを実装する際にはぜひご活用ください。

<Box
  css={{
    stack: 'x',
    gap: 'medium',
    alignX: 'start',
  }}
>

スクリーンショット 2022-12-05 14.02.13.png

BoxInline以外の要素でCSSを設定する

基本的に、BoxInline以外の要素では、CSSを設定できません。

そのため、Boxでラップしてレイアウトを調整するなどの対応が必要です。


<Box
  css={{
    stack: 'x',
    gap: 'medium',
    alignX: 'start',
  }}
>
  <Img
    src="https://stripe.com/margin.svg"
    width="484"
    height="207"
    alt="Gross margin"
  />
  <Img
    src="https://stripe.com/margin.svg"
    width="484"
    height="207"
    alt="Gross margin"
  />
</Box>

Iconのカラーなど、一部コンポーネントで特定のパラメータが利用できます。

<Icon
  name="cancelCircle"
  css={{fill: 'critical'}}
/>

Stripe Appsひとりアドベントカレンダー 2022

今年ベータリリースされたばかりのStripe Appsは、まだ日本語の情報が多くありません。

そこでQiita Advent Calendar 2022にて、毎日Stripe Appsについての情報を投稿します。

ノーコードで利用する方法や、開発するためのTipsなども紹介予定ですので、ぜひ購読をお願いします。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?