// Hero patterns for PACE LP — 3 refined search-first variants
// Principles applied:
// - No decorative SVG (concentric circles, dot patterns, sparkles, "+" marks)
// - Icons reduced to bare minimum (search glass only, in pattern 2/3)
// - Stats woven into prose, never a 4-tile row
// - Long-form copy, no telegraphic 体言止め tagline
// - Asymmetric grids, generous paper-like whitespace
// - Product photos as protagonist (placeholders sized & framed for real shots)
const { useState: useStateH } = React;
// Hero search bar の共通ロジック。input + 3 select + 送信。
function useHeroSearch() {
const [kw, setKw] = useStateH("");
const [scene, setScene] = useStateH("");
const [budget, setBudget] = useStateH("");
const [lot, setLot] = useStateH("");
const submit = () => window.applyHeroSearch({ keyword: kw, scene, budget, lot });
const onKey = (e) => { if (e.key === "Enter") { e.preventDefault(); submit(); } };
return { kw, setKw, scene, setScene, budget, setBudget, lot, setLot, submit, onKey };
}
// 共通のセレクト。value="" が placeholder を兼ねる。
function HeroSelect({ label, opts, value, onChange, style }) {
return (
);
}
// Shared product placeholder. Real catalog photo goes here later.
const ProductPhoto = ({ p, ratio = "4 / 5", showBadge = true, tone = "warm" }) => {
const tones = {
warm: { bg: "#ece6da", ink: "#a8a094" },
cool: { bg: "#e6e6e2", ink: "#a0a09a" },
dark: { bg: "#2a2620", ink: "#5a544a" },
};
const t = tones[tone] || tones.warm;
return (
{/* Subtle paper grain — single soft gradient, not a pattern */}
{/* Filename hint — designers/devs see where photo goes */}
photo / {p?.cat?.toLowerCase?.() || "product"}_{String(p?.id || 0).padStart(2, "0")}
{showBadge && p?.badge && (
{p.badge}
)}
);
};
// Magnifying glass — kept as a single small icon (not "decorative SVG")
const SearchGlass = ({ size = 18, color = "#1a1612" }) => (
);
// =========================================================
// "選ばれる理由" — pace の強み4点をファーストビューに織り込む
// 装飾なし、罫線と漢数字番号、長めの説明文で「AI感」を避ける
// =========================================================
const WHY_REASONS = [
{
n: "一",
title: "戦略としてのノベルティ",
body: "ご担当者様のビジネス課題を伺った上で、企業戦略に沿ったオリジナルノベルティをご提案します。配って終わりではない、一手としてのノベルティです。",
},
{
n: "二",
title: "課題から逆算する企画",
body: "御社が抱える課題を解くための装置として、ノベルティを設計します。記念品でも宣伝品でもない、もうひとつの企業戦略の手段としてご活用いただけます。",
},
{
n: "三",
title: "差別化されたものづくり",
body: "市場に溢れる「普通のノベルティ」とは違う、御社のためにつくられた一点を。形・素材・印刷・パッケージまで、差別化を前提に組み上げます。",
},
{
n: "四",
title: "職人と仕上げる一点",
body: "国内外の協力工場・職人とともに、御社の意向を汲んだオリジナルノベルティをかたちにします。発注先ではなく、共につくる相手としてお付き合いください。",
},
];
const WhyChosen = ({ tone = "cream", title = "パーチェが選ばれる、四つの理由", variant }) => {
const v = variant || window.__WHY_VARIANT || "A";
if (v === "B") return ;
if (v === "C") return ;
if (v === "D") return ;
if (v === "E") return ;
return ;
};
const WHY_PALETTES = {
cream: { bg: "#f4f1ea", panel: "#ede4d1", ink: "#1a1612", muted: "#6b6055", rule: "#d5c9aa", accent: "#9a7e3a", eyebrow: "#9a7e3a" },
paper: { bg: "#ede4d1", panel: "#e3d6b5", ink: "#1a1612", muted: "#6b6055", rule: "#c8b878", accent: "#9a7e3a", eyebrow: "#9a7e3a" },
indigo: { bg: "#1f2a3a", panel: "#293648", ink: "#f0e9d8", muted: "#a8a39a", rule: "#3d4a5e", accent: "#c8b878", eyebrow: "#c8b878" },
forest: { bg: "#1d2b22", panel: "#27382e", ink: "#f4ead0", muted: "#a8a08e", rule: "#3a4a3d", accent: "#c8b878", eyebrow: "#c8b878" },
burgundy: { bg: "#5a2a26", panel: "#6b332e", ink: "#f4ead0", muted: "#c8a89a", rule: "#7a4540", accent: "#e0c890", eyebrow: "#e0c890" },
};
// =========================================================
// Variant A — 漢数字+縦罫線4分割(既存)
// 帳簿のような端正さ。読み物として成立。
// =========================================================
const WhyChosenA = ({ tone, title }) => {
const t = WHY_PALETTES[tone] || WHY_PALETTES.cream;
return (
Why pace — 選ばれる理由
{title}
{WHY_REASONS.map((r, i) => (
))}
);
};
// =========================================================
// Variant B — 縦書きインデックス(雑誌の目次風)
// 左に大型タイトル+導入文、右に4項目を縦書きで並べる
// =========================================================
const WhyChosenB = ({ tone, title }) => {
const t = WHY_PALETTES[tone] || WHY_PALETTES.cream;
return (
Why pace
{title}
ノベルティを「配って終わる消耗品」ではなく、企業戦略の一手として捉え直すこと。それがパーチェの仕事です。
{WHY_REASONS.map((r, i) => (
{`0${i + 1}`}
{r.title}
{r.body}
))}
);
};
// =========================================================
// Variant C — オーバーラップ大番号(タイポグラフィ前面)
// 大きな数字とタイトルが重なる構図、説明文は番号の下に控えめに
// =========================================================
const WhyChosenC = ({ tone, title }) => {
const t = WHY_PALETTES[tone] || WHY_PALETTES.cream;
const { isMobile, isTablet } = (window.useViewport || (() => ({ isMobile: false, isTablet: false })))();
return (
Why pace — 選ばれる理由
{title}
{WHY_REASONS.map((r, i) => (
{`0${i + 1}`}
{r.title}
{r.body}
))}
);
};
// =========================================================
// Variant D — タイムライン横並び(プロセスの流れとして)
// 4本柱を「戦略 → 企画 → 差別化 → ものづくり」の流れに見立てる
// =========================================================
const WhyChosenD = ({ tone, title }) => {
const t = WHY_PALETTES[tone] || WHY_PALETTES.cream;
const stages = ["戦略", "企画", "差別化", "ものづくり"];
return (
Why pace — 選ばれる理由
{title}
{/* Timeline rule */}
{stages.map((stg, i) => (
))}
{WHY_REASONS.map((r, i) => (
))}
);
};
// =========================================================
// Variant E — 写真とペアリング(左右交互の縦積み)
// 各項目に商品写真プレースホルダを添え、説得力を出す
// =========================================================
const WhyChosenE = ({ tone, title }) => {
const t = WHY_PALETTES[tone] || WHY_PALETTES.cream;
const products = window.PRODUCTS || [];
return (
Why pace — 選ばれる理由
{title}
{WHY_REASONS.map((r, i) => {
const p = products[i] || {};
return (
);
})}
);
};
// =========================================================
// Pattern 1 — Quiet catalog (paper-white, asymmetric)
// 紙の図録のように静かに。タイトルは1サイズ、長文リードで語りかける。
// 上半分は見出し+リード+検索、下半分は1点の主役写真+小さな商品索引。
// =========================================================
function HeroSearch() {
const featured = (window.PRODUCTS || []).slice(0, 1)[0];
const grid = (window.PRODUCTS || []).slice(1, 7);
const s = useHeroSearch();
return (
<>
{/* Top eyebrow — single line, very small */}
Strategic Novelty — pace
{/* Asymmetric headline + lede grid */}
ノベルティ戦略の本質は、
経営戦略である。
企業戦略やイベントの本質に沿った、オリジナルノベルティを製作いたします。御社の目指す将来像へ近づくために、戦略的にノベルティをご活用ください。
ECO素材・バイオマス素材など、環境に配慮した仕様もすべてご相談いただけます。
世界陸上・デフリンピック・ホノルルマラソンといった大型イベントから、大企業のノベルティ戦略まで——陰で支えてきた弊社が、「配って終わり」ではないオリジナルノベルティを、圧倒的なコスト感と精度でお届けします。
{/* Quiet search bar — paper field, no shadow */}
s.setKw(e.target.value)} onKeyDown={s.onKey}
placeholder="商品名・キーワード(例:今治タオル)" style={{
flex: 1, border: "none", outline: "none", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 16, color: "#1a1612",
padding: "20px 0", letterSpacing: "0.05em",
}} />
{(() => { const selStyle = {
border: "none", borderRight: "1px solid #e8e2d6", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 15, color: "#3d3530",
padding: "20px 18px", outline: "none", appearance: "none", letterSpacing: "0.08em",
}; return (<>
>); })()}
{/* Inline link row instead of stat tiles */}
よく検索されているもの —
{["今治タオル", "ボールペン", "エコバッグ", "タンブラー", "ドリップコーヒー"].map((k, i, a) => (
{k}
{i < a.length - 1 ? "、" : ""}
))}
紙のカタログを取り寄せる →
{/* Hero product band — one large photo + small index */}
>
);
}
// =========================================================
// Pattern 2 — Dark editorial (deep ink, large search card on warm paper)
// 黒インクの上半分に長文の挨拶文。下半分は紙色に戻り、検索 + 主役写真2点。
// =========================================================
function HeroSearchHero() {
const a = (window.PRODUCTS || [])[0];
const b = (window.PRODUCTS || [])[1];
const c = (window.PRODUCTS || [])[2];
const s = useHeroSearch();
const { isMobile, isTablet } = (window.useViewport || (() => ({ isMobile: false, isTablet: false })))();
const compact = isMobile || isTablet;
// WordPress から商品が非同期で読み込まれたら再描画(Featured が出るように)
const [, setTick] = useStateH(0);
React.useEffect(() => {
const onLoaded = () => setTick((t) => t + 1);
window.addEventListener("pace:products-loaded", onLoaded);
return () => window.removeEventListener("pace:products-loaded", onLoaded);
}, []);
return (
<>
{/* Top — warm cream panel with golden accent rule */}
Strategic Novelty — pace
ノベルティ戦略の
本質は、
経営戦略である。
企業戦略やイベントの本質に沿った、オリジナルノベルティを製作いたします。御社の目指す将来像へ近づくために、戦略的にノベルティをご活用ください。
ECO素材・バイオマス素材など、環境に配慮した仕様もすべてご相談いただけます。
世界陸上・デフリンピック・ホノルルマラソンといった大型イベントから、大企業のノベルティ戦略まで——陰で支えてきた弊社が、「配って終わり」ではないオリジナルノベルティを、圧倒的なコスト感と精度でお届けします。
{/* Bottom — paper, search overlapping the seam */}
{/* Search bar overlapping the seam (モバイルは縦並び) */}
s.setKw(e.target.value)} onKeyDown={s.onKey}
placeholder="探したい商品の名前、キーワード" style={{
flex: 1, border: "none", outline: "none", background: "transparent",
fontFamily: "'Noto Serif JP', serif",
fontSize: isMobile ? 14 : 16, color: "#1a1612",
padding: isMobile ? "16px 0" : "22px 0", letterSpacing: "0.05em",
width: "100%",
}} />
{(() => { const selStyle = {
border: "none",
borderRight: compact ? "none" : "1px solid #e8e2d6",
borderBottom: compact ? "1px solid #e8e2d6" : "none",
background: "transparent",
fontFamily: "'Noto Serif JP', serif",
fontSize: isMobile ? 14 : 15, color: "#3d3530",
padding: isMobile ? "14px 12px" : "22px 18px",
outline: "none", appearance: "none", letterSpacing: "0.08em",
width: "100%",
}; return (<>
>); })()}
{/* Featured 3 — コンパクトな横並び(商品なしなら非表示)
選定ロジック:
1) isFeatured が true の商品を最優先(featuredOrder 昇順)
2) 該当なしの場合は、全商品の先頭3件をフォールバック表示 */}
{(() => {
const all = window.PRODUCTS || [];
if (all.length === 0) return null;
const marked = all.filter((p) => p.isFeatured)
.sort((a, b) => {
const ao = a.featuredOrder ?? 9999;
const bo = b.featuredOrder ?? 9999;
return ao - bo;
});
const featured = (marked.length > 0 ? marked : all).slice(0, 3);
if (featured.length === 0) return null;
const cardImg = (p) => {
if (Array.isArray(p.images) && p.images.length > 0) return p.images[0];
if (p.imageUrl) return p.imageUrl;
return `uploads/products/product_${String(p.id).padStart(2, "0")}.jpg`;
};
return (
);
})()}
>
);
}
// =========================================================
// Pattern 3 — Forest green (deep green ink + warm cream, asymmetric library)
// 深い緑のサイドバンド+クリーム紙。本棚のように写真が並ぶ。
// =========================================================
function HeroSearchRich() {
const lead = (window.PRODUCTS || [])[0];
const items = (window.PRODUCTS || []).slice(1, 5);
const s = useHeroSearch();
return (
<>
{/* Top band: deep green left, cream right — single grid, no abs positioning */}
{/* Green left panel */}
The Catalogue, vol. 30
ノベルティ戦略の
本質は、
経営戦略である。
戦略型ノベルティの図録 — pace
{/* Cream right panel — lede + intro */}
企業戦略やイベントの本質に沿った、オリジナルノベルティを製作いたします。御社の目指す将来像へ近づくために、戦略的にノベルティをご活用ください。
ECO素材・バイオマス素材など、環境に配慮した仕様もすべてご相談いただけます。
世界陸上・デフリンピック・ホノルルマラソンといった大型イベントから、大企業のノベルティ戦略まで——陰で支えてきた弊社が、「配って終わり」ではないオリジナルノベルティを、圧倒的なコスト感と精度でお届けします。
紙のカタログを取り寄せる →
{/* Body — cream, centered */}
{/* Search bar */}
s.setKw(e.target.value)} onKeyDown={s.onKey}
placeholder="商品名・キーワード" style={{
flex: 1, border: "none", outline: "none", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 15, color: "#1a1612",
padding: "18px 0", letterSpacing: "0.05em",
}} />
{(() => { const selStyle = {
border: "none", borderRight: "1px solid #e8e2d6", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 14, color: "#3d3530",
padding: "18px 14px", outline: "none", appearance: "none", letterSpacing: "0.08em",
}; return (<>
>); })()}
{/* Library row — one large + four small, asymmetric */}
>
);
}
// =========================================================
// Pattern 4 — Indigo & cream "spread" (見開き)
// 雑誌の見開きのように左ページに藍色の小見出し、右ページに大きな写真。
// 検索バーは下端に1本の細いラインで配置。
// =========================================================
function HeroSpread() {
const a = (window.PRODUCTS || [])[0];
const small = (window.PRODUCTS || []).slice(1, 4);
const s = useHeroSearch();
return (
<>
{/* Top eyebrow row, very minimal */}
The Spread — pace strategic novelty
April, MMXXVI
{/* Spread: left text page / right photo page */}
{/* Left page */}
Vol. 30 — Towel
ノベルティ戦略の本質は、
経営戦略である。
企業戦略やイベントの本質に沿った、オリジナルノベルティを製作いたします。御社の目指す将来像へ近づくために、戦略的にノベルティをご活用ください。
ECO素材・バイオマス素材など、環境に配慮した仕様もご相談いただけます。
世界陸上・デフリンピック・ホノルルマラソンから大企業のノベルティ戦略まで——陰で支えてきた弊社が、「配って終わり」ではないノベルティを、圧倒的なコスト感と精度でお届けします。
{/* Right page: large photo + caption */}
{a?.name}
Plate I / {a?.cat}
{/* Bottom: thin search line (no card, no shadow) */}
s.setKw(e.target.value)} onKeyDown={s.onKey}
placeholder="商品名・キーワードでお探しください" style={{
flex: 1, border: "none", outline: "none", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 16, color: "#1a1612",
padding: "16px 0", letterSpacing: "0.05em",
}} />
{(() => { const selStyle = {
border: "none", borderLeft: "1px solid #d5c9aa", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 15, color: "#3d3530",
padding: "16px 18px", outline: "none", appearance: "none", letterSpacing: "0.08em",
}; return (<>
>); })()}
{/* Small thumbs strip */}
>
);
}
// =========================================================
// Pattern 5 — Marquee headline (大判タイポ + 余白)
// 一行の大きな見出しが画面を横断。下に検索と4枚の小さな写真。
// 写真より文字が主役。引き算の構図。
// =========================================================
function HeroMarquee() {
const items = (window.PRODUCTS || []).slice(0, 4);
const s = useHeroSearch();
return (
<>
{/* Eyebrow */}
Strategic Novelty — pace
パーチェ株式会社
{/* Marquee headline — single line that fills width */}
ノベルティ戦略の本質は、
経営戦略である。
{/* Lede sits to the right, below */}
企業戦略やイベントの本質に沿った、オリジナルノベルティを製作いたします。御社の目指す将来像へ近づくために、戦略的にノベルティをご活用ください。
ECO素材・バイオマス素材など、環境に配慮した仕様もすべてご相談いただけます。
世界陸上・デフリンピック・ホノルルマラソンといった大型イベントから、大企業のノベルティ戦略まで——陰で支えてきた弊社が、「配って終わり」ではないオリジナルノベルティを、圧倒的なコスト感と精度でお届けします。
{/* Search bar */}
s.setKw(e.target.value)} onKeyDown={s.onKey}
placeholder="商品名・キーワード(例:今治タオル)" style={{
flex: 1, border: "none", outline: "none", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 16, color: "#1a1612",
padding: "20px 0", letterSpacing: "0.05em",
}} />
{(() => { const selStyle = {
border: "none", borderRight: "1px solid #e8e2d6", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 15, color: "#3d3530",
padding: "20px 18px", outline: "none", appearance: "none", letterSpacing: "0.08em",
}; return (<>
>); })()}
{/* Four-tile thumb strip, equal grid */}
>
);
}
// =========================================================
// Pattern 6 — Burgundy ledger (深い赤茶 + 帳簿のような表組み)
// 老舗商家の帳簿のような端正さ。番号付きインデックス + 1点写真。
// =========================================================
function HeroLedger() {
const items = (window.PRODUCTS || []).slice(0, 6);
const lead = items[0];
const s = useHeroSearch();
return (
<>
{/* Burgundy header band */}
The Ledger / Strategic Novelty
pace / vol. 30
ノベルティ戦略の本質は、
経営戦略である。
企業戦略やイベントの本質に沿った、オリジナルノベルティを製作いたします。御社の目指す将来像へ近づくために、戦略的にノベルティをご活用ください。
ECO素材・バイオマス素材など、環境に配慮した仕様もすべてご相談いただけます。
世界陸上・デフリンピック・ホノルルマラソンといった大型イベントから、大企業のノベルティ戦略まで——陰で支えてきた弊社が、「配って終わり」ではないオリジナルノベルティを、圧倒的なコスト感と精度でお届けします。
{/* Body — ledger-style index + lead photo */}
{/* Search row, narrow, slightly inset */}
s.setKw(e.target.value)} onKeyDown={s.onKey}
placeholder="商品名・キーワード" style={{
flex: 1, border: "none", outline: "none", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 15, color: "#1a1612",
padding: "18px 0", letterSpacing: "0.05em",
}} />
{(() => { const selStyle = {
border: "none", borderRight: "1px solid #e8e2d6", background: "transparent",
fontFamily: "'Noto Serif JP', serif", fontSize: 14, color: "#3d3530",
padding: "18px 14px", outline: "none", appearance: "none", letterSpacing: "0.08em",
}; return (<>
>); })()}
{/* Two columns: ledger (left) + lead photo (right) */}
{/* Ledger: numbered index */}
{/* Lead photo */}
>
);
}
Object.assign(window, { HeroSearch, HeroSearchHero, HeroSearchRich, HeroSpread, HeroMarquee, HeroLedger, WhyChosen });