GATE01

Install

インストール

@love-rox/ptpt-core は依存として自動的に引き込まれます。react(>=18)はピア依存です。既定の見た目には @love-rox/ptpt-core/styles.css を一度 import してください。

bun

bun add @love-rox/ptpt-react

pnpm

pnpm add @love-rox/ptpt-react

npm

npm i @love-rox/ptpt-react

yarn

yarn add @love-rox/ptpt-react
GATE02

Usage

使い方

<PatapataBoard>targets 文字列を渡すだけ——セル数は文字列の長さから決まります。cellOptions は全セルに共通で適用されます。各文字が所定の値までめくれ、盤面は時間差で動きます。targets を変えると新しいフリップが走ります。

Reacttsx
import { PatapataBoard } from "@love-rox/ptpt-react";
import { alphanumericPreset } from "@love-rox/ptpt-core/presets/alphanumeric";
import "@love-rox/ptpt-core/styles.css";

export function Departures() {
  return (
    <PatapataBoard
      cellOptions={{ preset: alphanumericPreset }}
      targets="TOKYO  "
      flipMode="replace"
    />
  );
}
GATE03

Options

オプション

<Patapata>CellOptions のすべてのフィールドに加え、下記のコンポーネント専用プロパティを受け付けます。共通オプションは Vue / rehype / Astro と完全に同じ意味で動きます。

共通セルオプション

オプション既定値説明
presetPresetDefinition | stringdefaultPresetフラップに使う文字セット。PresetDefinitionrecommendedDuration / locale を既定値に使う)か、フラップ順を表す文字列を渡します。frames とは排他です。
framesFrameInput[]undefined明示的なフレーム集合。文字だけでなく画像や任意要素も指定できます。preset とは排他です。
durationPerFlapnumberプリセットの推奨値、なければ 2001 枚をめくるミリ秒数。プリセットの recommendedDuration を上書きします。
direction'forward' | 'shortest''forward'フレームのリングをめくる向き。shortest は近いほうへ逆回りすることもあります。
reducedMotion'instant' | 'minimal' | 'ignore''instant'OS が「視差効果を減らす」設定のときの挙動。instant は瞬時に切り替えます。

コンポーネント専用プロパティ

オプション既定値説明
targetstring変化を監視し、変わるたびにめくる先のスラッグ。
flipMode'replace' | 'queue'undefinedtarget が連続で変わったときの挙動。replace は最新だけ、queue は順番に。
onFlipComplete() => voidundefined各フリップが落ち着いたあとに呼ばれます。
className / stylestring / CSSPropertiesundefinedホスト要素に付与するクラス/スタイル。
GATE04

Behaviour

挙動の注記

  • 構造に関わるオプションはマウント時に読まれます。作り直したいときは key を渡してください。target / targets を変えるだけならフリップが走るだけです。
  • flipMode="replace"(既定)は連続更新を最新の目標にまとめます。flipMode="queue" は順番に消化します。
  • 盤面は1つの role="status" ライブリージョンです。onFlipComplete は各フリップが落ち着いたあとに呼ばれます。
  • preset には文字列ではなくプリセットオブジェクト(preset={digitsPreset})を渡してください。文字列はプリセット名ではなく、フラップの文字列そのものとして扱われます。
GATE05

Related

他のアダプタ

Vue を使っているなら同じ API の Vue 版があります。Markdown のレンダリングや静的サイトの生成なら、React を持ち込まずに rehype / Astro 版が build 時に処理します。