メインコンテンツまでスキップ

Meritsブロック

Meritsコンポーネントは、ReactとTypeScriptで構築された完全にカスタマイズ可能でアクセシブルなメリット/ベネフィット表示ブロックです。企業のメリット、ベネフィット、または機能を紹介するための完全なインターフェースを、モダンなデザインパターン、柔軟なカスタマイズオプション、レスポンシブレイアウトとともに提供します。


🚀 インストール

npm install @nodeblocks/frontend-merits-block

📖 使用法

import {Merits} from '@nodeblocks/frontend-merits-block';
ライブエディター
function BasicMerits() {
  const meritsData = [
    {
      imageUrl: '/img/undraw_docusaurus_mountain.svg',
      text: '迅速な配送',
      subtext: '注文を迅速かつ効率的にお届けします'
    },
    {
      imageUrl: '/img/undraw_docusaurus_react.svg',
      text: '品質保証',
      subtext: 'すべての製品で最高品質を保証します'
    },
    {
      imageUrl: '/img/undraw_docusaurus_tree.svg',
      text: '24時間サポート',
      subtext: 'あらゆるニーズに対応する24時間体制のカスタマーサポート'
    }
  ];

  return (
    <Merits
      subtitle="なぜ私たちを選ぶのか"
      meritsTitle="私たちの主要なベネフィット"
      buttonText="詳細を見る"
      buttonHref="#about"
      items={meritsData}
      style={{backgroundColor: 'white', padding: '16px'}}>
      <Merits.Header />
      <Merits.Content />
      <Merits.ActionBar />
    </Merits>
  );
}
結果
Loading...

🔧 プロパティリファレンス

メインコンポーネントプロパティ

プロパティデフォルト説明
subtitleReactNode必須メインタイトルの上に表示されるサブタイトルテキスト
meritsTitleReactNode必須メリットセクションのメインタイトル
buttonTextstring必須アクションボタンのテキストコンテンツ
buttonHrefstring必須アクションボタンリンクのURLまたはパス
itemsMeritProps[]必須表示するメリット項目の配列
classNamestringundefinedコンテナのスタイリング用の追加CSSクラス名
childrenBlocksOverrideundefinedデフォルトレンダリングをオーバーライドするカスタムブロックコンポーネント

注意: メインコンポーネントはすべてのHTML div要素プロパティを継承します。

サブコンポーネント

Meritsコンポーネントは複数のサブコンポーネントを提供します。すべてのサブコンポーネントは、メインコンポーネントのコンテキストからデフォルト値を受け取り、プロパティを通じてこれらの値をオーバーライドできます。

Merits.Header

プロパティデフォルト説明
childrenReactNodeデフォルトヘッダーコンテンツデフォルトヘッダーレンダリングをオーバーライドするカスタムコンテンツ
subtitleReactNodeコンテキストから表示するサブタイトルテキスト(コンテキストのsubtitleをオーバーライド)
meritsTitleReactNodeコンテキストから表示するメインタイトルテキスト(コンテキストのmeritsTitleをオーバーライド)

注意: このコンポーネントはすべてのHTML div要素プロパティを継承します。

Merits.Content

プロパティデフォルト説明
childrenReactNodeデフォルトメリット項目デフォルトメリット項目レンダリングをオーバーライドするカスタムコンテンツ
itemsMeritProps[]コンテキストから表示するメリット項目の配列(コンテキストのitemsをオーバーライド)

注意: このコンポーネントはすべてのHTML div要素プロパティを継承します。

Merits.Content.MeritImage

プロパティデフォルト説明
srcstringundefined画像のURL
altstringundefined画像の代替テキスト
classNamestringundefinedスタイリング用の追加CSSクラス名

注意: このコンポーネントはすべてのHTML img要素プロパティを継承します。

Merits.Content.MeritText

プロパティデフォルト説明
childrenReactNodeコンテキストからタイトルコンテンツ - コンテキストのerrorTitleをオーバーライド
sizeenum"2XL"タイトルのタイポグラフィサイズ
typeenum"heading"タイポグラフィタイプ
colorenum"low-emphasis"タイトルのカラーテーマ
weightenum"bold"タイトルの太さ
classNamestringundefinedスタイリング用の追加CSSクラス名

注意: このコンポーネントはすべてのHTML span要素プロパティを継承します。

Merits.Content.MeritSubtext

プロパティデフォルト説明
childrenReactNodeコンテキストからタイトルコンテンツ - コンテキストのerrorTitleをオーバーライド
sizeenum"S"タイトルのタイポグラフィサイズ
typeenum"heading"タイポグラフィタイプ
colorenum"low-emphasis"タイトルのカラーテーマ
weightenum"regular"タイトルの太さ
classNamestringundefinedスタイリング用の追加CSSクラス名

注意: このコンポーネントはすべてのHTML span要素プロパティを継承します。

Merits.ActionBar

プロパティデフォルト説明
childrenReactNodeデフォルトボタンデフォルトアクションバーレンダリングをオーバーライドするカスタムコンテンツ

注意: このコンポーネントはすべてのHTML div要素プロパティを継承します。Merits.ActionBar.Buttonコンポーネントをレンダリングします。

Merits.ActionBar.Button

プロパティデフォルト説明
childrenReactNode必須ボタン内に配置するテキスト
classNamestringundefinedスタイリング用の追加CSSクラス名
fillenum"fill"ボタンの塗りつぶしスタイル
iconenumundefinedボタンの左側のオプションアイコン
iconColorenumundefined左側アイコンの色。提供されない場合、塗りつぶしタイプのデフォルト色が使用されます
isDisabledbooleanfalseボタンが無効で使用できないかどうか
onClickfunctionundefinedボタンクリックを処理する関数
sizeenum"M"ボタンの垂直サイズ
textAlignenum"center"ボタン内のアイコンとテキストの位置
textColorenum"default"ボタンテキストの色
textEmphasisbooleanfalseボタンテキストの太さ
textSizeenum"M"ボタンテキストのサイズ
typeenum"button"ボタンの目的(htmlタイプに影響)

🔧 TypeScriptサポート

包括的な型定義による完全なTypeScriptサポート:

import {Merits} from '@nodeblocks/frontend-merits-block';
import {ComponentProps, ReactNode} from 'react';

// メリット項目インターフェース
interface MeritProps {
imageUrl: string;
text: ReactNode;
subtext: ReactNode;
}

// メインコンポーネントインターフェース
interface MeritsProps extends Omit<ComponentProps<'div'>, 'children'> {
subtitle: ReactNode;
meritsTitle: ReactNode;
buttonText: string;
buttonHref: string;
items: MeritProps[];
}

// 包括的なメリット設定の例
function CustomMeritsSection() {
const meritsData: MeritProps[] = [
{
imageUrl: '/icons/speed.svg',
text: '電光石火',
subtext: '最高のユーザー体験のための最適化されたパフォーマンス',
},
{
imageUrl: '/icons/security.svg',
text: '安全で信頼性が高い',
subtext: '99.9%の稼働率保証付きエンタープライズグレードのセキュリティ',
},
{
imageUrl: '/icons/support.svg',
text: '24時間エキスパートサポート',
subtext: 'いつでもどこでも専門家チームからサポートを受けられます',
},
];

return (
<Merits
subtitle="私たちのプラットフォームを選ぶ理由"
meritsTitle="モダンビジネス向けに構築"
buttonText="無料トライアル開始"
buttonHref="/signup"
items={meritsData}
className="custom-merits-section"
style={{backgroundColor: '#f8f9fa', padding: '4rem 2rem'}}
id="benefits-section">
<Merits.Header className="custom-header" style={{marginBottom: '3rem'}} />
<Merits.Content
className="custom-content"
style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
gap: '2rem',
}}
/>
<Merits.ActionBar className="custom-action-bar" style={{marginTop: '3rem'}}>
<Merits.ActionBar.Button href="/get-started" className="premium-cta">
🚀 今すぐ始める
</Merits.ActionBar.Button>
</Merits.ActionBar>
</Merits>
);
}

React、TypeScript、モダンWebスタンダードを使用して❤️で構築されました。