自社デザインで作る

100%自社デザインで作る

お手持ちのHTML・CSSをそのまま使って、Frames CMS を自社デザインのCMSにするための手順です。
※Free(無料版)でもお試し頂けます。
(関連リンク:フレームだけ自社デザイン、パーツはFrames CMS標準パーツを使う)
(関連リンク:仕様の詳細リファレンス)

2026年10月のバージョンアップに対応した版です。主な変更点:
・frame.json に書く設定が大きく減りました(管理画面の入力欄は、HTMLに書いた差し込み口から自動で決まります)
・お客様(クライアント)に見せない入力欄・メニューを指定できるようになりました → 使わない指定
・差し込み口が増えました(ヘッダーの受付時間・ヘッダー上の一行・メニューのサブ表記・キャッチの背景・画像の明るさ・ヘッダーをメイン画像に重ねる)
それより前のCMSをお使いの場合は、旧版のマニュアルをご覧ください。
事前にFrames CMS標準CMS(Free/無料版 でもOK)での動作確認をお願い致します。
基本的な使い方をお試し頂いたのち、こちらのマニュアルを読んで頂いた方が理解が早いです。
オリジナル性の高い演出をそのまま移植することはできません。お客様(クライアント)が管理画面から中身を入れ替えられるようにするため、ページの構造をCMS側が決めているためです。
載せやすい:ロゴ+メニューのヘッダー(スマホはハンバーガー)/写真・スライド・動画+キャッチのファーストビュー/セクションを縦に積む構成/素のHTML+CSS(Grid・Flexbox・CSS変数もOK)
そのままでは載せにくい:スクロール連動のアニメーション・パララックス/横スクロールのページ送り/ページごとに骨組みが大きく変わるデザイン
メイン画像は、「静止画」「スライドショー」「動画」をご利用頂けます。具体的なイメージはFrames CMS製品版を使ったデモ一覧ページにてご確認下さい。Freeで実際に動作確認もできます。
ここで説明のない、プログラム本体(エンジン層=core/・admin/・assets/)のカスタマイズは原則お断りしています。どうしてもプログラム本体の改造が必要な場合は、それ以降のサポート・バージョンアップ対応を一切お受けできないことを条件に、お客様の責任において行っていただけます。改造された場合、不具合対応やアップデート時の互換性は保証の対象外となりますので、あらかじめご了承ください。

目次

  1. 作業の前に「必ず」行って下さい
  2. ダウンロードと設置
  3. フレームの作り方
  4. パーツの作り方
  5. メニューを自社のJSで動かす
  6. フッターを自社のものにする
  7. フォーム・お知らせ・一覧(プラグイン)の見た目
  8. お客様の管理画面をすっきりさせる(使わない指定)
  9. 納品前のチェックリスト
  10. うまくいかない場合は

1. 作業の前に「必ず」行って下さい(1分で終わります)

1. 受皿の準備
Free(無料版)をどれでもいいので先にDLしておいて下さい。
すでに製品版をご購入されている場合は、Free(無料版)をDLした上で、マイページから製品版zipをDLして上書きしておいて下さい。

2. 最上層に「demo-pack.php」があれば削除。
初回アクセス時にサンプルのページを自動で作るためのファイルなので削除しておきます。
※お問い合わせ・お知らせなどのページは、プラグインが別に自動で作ります。不要なら管理画面から削除してください。

3. 不要ファイルの削除(いずれもFrames CMS専用なので残しておくと崩れます。)
framesフォルダを丸ごと削除。(以下手順で骨格のみのフレームが入ります)
partsフォルダを丸ごと削除。(以下手順で骨格のみのパーツが入ります)
footersフォルダを丸ごと削除。(以下手順でオリジナルのfooterを準備して頂きます)


2. ダウンロードと設置

骨組みのダウンロード

中身は装飾用のcssがない、シンプルなフレーム(1つ)とパーツ(2つ)です。

pro-original のダウンロード

設置のしかた

  1. zipを解凍し、framesフォルダ と partsフォルダ を、ご利用中のCMSのルート(index.php がある場所)に移動。
  2. アップロードし、管理者認証を済ませてログインします。
  3. サイト側を表示すると、装飾のない素のHTMLが出ます。先ほどDLした骨組みフレーム(starter-zero)です。
  4. 管理画面のパーツの「基本セット」に「見出しと文章(starter-text)」「画像(1枚)(starter-image)」が出ます。先ほどDLしたzipに入っていたパーツの2種類です。

3. フレームの作り方

フレームが1つのみでいい場合(フレームの着せ替えをしない場合)、お手持ちのHTMLの構造をそのまま持ち込めるので、デザインの自由度はかなりあがります。
フレームが増えれば増えるほど(フレームの着せ替えに対応させたい場合)、自由度が下がります。パーツのHTMLは全フレーム共通なので、どのフレームに入れても成立する形にしておく必要があるためです(違いを出せるのはCSSの範囲まで)。

ファイル構成

ファイル/フォルダ役割必須
layout.htmlサイト全体の骨組み。必須
mainimg.htmlトップのメイン画像。必須
frame.jsonフレームの名前・説明・設定。必須
css/theme.css色・余白・フォントの変数。★パスとファイル名は変えられません(CMSがこのファイルを直接読み、管理画面の色の初期値として使います)。必須
css/style.cssデザイン本体。ファイル名も枚数も自由(layout.html の <link> を書き換えてください)。任意
footer.htmlフッター。任意
js/main.jsこのフレーム専用のJS。置くと自動で読み込まれます。任意
images/mainimg1.jpgメイン画像の初期値。★消さないでください(画像が1枚も無いと、メイン画像が出力されません)。mainimg1_s.jpg を置くとスマホ用になります。必須
thumb.webpデザイン選択画面に出る見本画像(600×400px 推奨)。任意

フレームの名前とメイン画像の種類を書くファイルです。同梱のものは、この3行だけです。

{
  "name": "スターター:完全自社版(starter-zero)",
  "description": "デザイン選択画面に出る説明文",
  "mainvisual_type": "static"
}

mainvisual_type は "static"(静止画)/"slideshow"(スライド)/"video"(動画)のどれかです。メニューを常にハンバーガーにしたいときは "menu_type": "hamburger" を足します。
管理画面の入力欄は、HTMLに書いた差し込み口から自動で決まるので、ほかの設定はほとんど要りません(全キーは仕様の詳細リファレンス ↗)。

キーも値も半角のダブルクォートで囲み、カンマを忘れないでください。1文字でも崩れると、設定がすべて無効になります。

自社のHTMLに、下の差し込み口を埋め込んでいきます。囲みのタグやクラス名は自由です。

必ず必要なもの

差し込み口役割・書き方
{{META_TITLE}}ページのタイトル。<title>{{META_TITLE}}</title>
{{META_DESCRIPTION}}ページの説明文。<meta name="description" content="{{META_DESCRIPTION}}">
{{BASE}} / {{FRAME}}自社のCSSや画像を読み込むためのパス。{{BASE}}/frames/{{FRAME}}/css/style.css のように使います。
{{{HEAD_CSS}}}CMSが出すCSS。自社CSSの「前」に置きます。CMSのパーツ用CSSには main p などへの指定が少しあるため、自社CSSを前に置くと負けてしまいます(お客様が選んだ色はCSS変数で出るので、後ろに置いても効きます)。
{{{SCRIPTS}}}CMSが出すJS。</body> の直前に必ず置きます。
{{{CONTENT}}}パーツを一括出力します。<main> の直下に置いてください。間に他のタグを挟むと、パーツの背景色が正しく出ません。
{{{MAINVISUAL}}}メイン画像。同じフォルダの mainimg.html の中身がここに入ります。
{{{NAV}}}メニュー。CMSが <ul><li><a> を出力します。
{{{FOOTER}}}フッター。
{{BODY_CLASS}}<body class="{{BODY_CLASS}}"> と書きます。トップは home、下層は page-<スラッグ> が入ります。「トップだけ背景を変える」といった指定ができます。
{{#IS_HOME}}〜{{/IS_HOME}}トップページのときだけ出したいものを囲みます。{{#IS_HOME}}{{{MAINVISUAL}}}{{/IS_HOME}}

よく使うもの

差し込み口役割・書き方
{{SITE_NAME}}
{{HOME_URL}}
{{HAS_LOGO}}
{{LOGO_URL}}
ロゴまわり。この4つはセットで1つの動きをします(下記)。
{{PAGE_TITLE}}そのページの「ページ名」。h1 に使う場合は、トップページも「ホーム」という名前になるため、下のように出し分けます。
<h1>{{#IS_HOME}}{{SITE_NAME}}{{/IS_HOME}}{{^IS_HOME}}{{PAGE_TITLE}}{{/IS_HOME}}</h1>
{{TEL}} {{ADDRESS}}
{{COPYRIGHT}} {{YEAR}}
管理画面「サイト基本設定」の値。
{{{NAV_PC}}}
{{{NAV_MOBILE}}}
PC用とスマホ用でメニューのHTMLを分けたい場合に、{{{NAV}}} の代わりに使います。

ロゴの書き方

4つの差し込み口がセットで「ロゴ画像が登録されていれば画像を、無ければサイト名の文字を出す」という動きをします。下の形をまるごとコピーして使ってください。囲むタグは自由に変えられます。

<p><a href="{{HOME_URL}}">{{#HAS_LOGO}}<img src="{{LOGO_URL}}" alt="{{SITE_NAME}}">{{/HAS_LOGO}}{{^HAS_LOGO}}{{SITE_NAME}}{{/HAS_LOGO}}</a></p>
お客様(クライアント)がロゴ画像を用意していない場合でも崩れないための書き分けです。{{^HAS_LOGO}}〜{{/HAS_LOGO}} を消さないでください。

差し込み口の書き方のルール

書き方意味
{{名前}}文字として出す(タイトル・URLなど)
{{{名前}}}HTMLの塊が入る場所(中身・メニュー・フッターなど)
{{#名前}}〜{{/名前}}あるときだけ出す
{{^名前}}〜{{/名前}}ないときだけ出す
コメントタグ <!-- --> の中に {{ }} を書かないでください。コメントで囲んでもCMSは解釈してしまうので、ページが真っ白になるなどの不具合が出る可能性があります。

そのまま残すタグ

下の4つは、メニューの開閉やページトップへ戻る動作にCMSのJSが使っています。id とクラス名は変えないでください。置く場所と見た目は自由です。

タグ役割
<div id="menubar">メニュー。この中に {{{NAV}}} を入れます。
<div id="menubar_hdr">ハンバーガーボタン。中の <span>×3 もそのまま必要です。
<div id="menubar-overlay">メニューを開いたときの背景。クリックで閉じます。
<div class="pagetop">ページの上部へ戻るボタン。
やりたいこと書き方
ヘッダーに受付時間layout.html に {{HEADER_HOURS}}
ヘッダー上の一行layout.html に {{HEADER_TEXT}}
メニューのサブ表記(英語など)style.css に .nav-sub のCSS(標準は非表示)
文字サイズ(大・中・小)style.css に .mv-size-sm .mv-size-md .mv-size-lg のCSS
キャッチの背景(半透明の箱)mainimg.html に {{MV_TEXT_BG}}
画像の明るさ(暗くする)mainimg.html に {{MV_DIM}}
ヘッダーをメイン画像に重ねるstyle.css に .hdr-overlay のCSS
静止画・スライド・動画を選ばせるmainimg-slideshow.html などをタイプ別に置く

書き方の例は仕様の詳細リファレンス ↗にあります。

layout.html の {{{MAINVISUAL}}} の場所に、このファイルの中身が入ります。<div class="mainimg"> で全体を囲んでください。管理画面の「文字色」の指定が、このクラスを目印にして効きます。中の構造は自由です。

差し込み口役割・書き方
{{#MV_IMAGES}}〜{{/MV_IMAGES}}
{{url}}
画像の枚数ぶん繰り返されます。{{url}} が画像のURLです。
{{#HAS_SP}}〜{{/HAS_SP}}
{{MV_SP}}
スマホ用画像が設定されたときだけ出ます。
<picture>{{#HAS_SP}}<source media="(max-width:800px)" srcset="{{MV_SP}}">{{/HAS_SP}}<img src="{{url}}" alt=""></picture>
{{#HAS_TEXT}}〜{{/HAS_TEXT}}管理画面で文字が入力されたときだけ出ます。この囲みは画像の繰り返しの外に置いてください。中に入れると、画像を複数枚にしたときに2枚目以降にも文字が付きます。
{{MV_TEXT_CLASS}}管理画面で選んだ「テキストの位置」と「文字サイズ」のクラスが入ります。<div class="text {{MV_TEXT_CLASS}}">
位置は left-parts / center-parts / right-parts、文字サイズは mv-size-lg / md / sm。この6つのCSSは自社で用意してください。
{{{MV_CATCH}}}
{{{MV_SUB}}}
キャッチコピーとサブテキスト。改行を活かすため3重カッコで書きます。それぞれ {{#HAS_CATCH}} {{#HAS_SUB}} で囲みます。
{{MV_BTN1_CLASS}}
{{MV_BTN1_URL}}
{{MV_BTN1_TEXT}}
メイン画像上のボタン。{{#HAS_BTN1}} で囲みます。2つ目は BTN2 で同じ形です。クラスは btn / btn inverse が入るので、直書きせず {{MV_BTN1_CLASS}} を使ってください。

使わない差し込み口は、書かなければ管理画面の入力欄も出ません(画像そのものを使わないときだけ、frame.json に "mainvisual_no_image": true)。

frame.json の mainvisual_type を変えると、管理画面の入力欄と、ここで使える差し込み口が変わります。上の表は "static"(静止画)のものです。

スライド("slideshow")

書き方は静止画と同じで、{{#MV_IMAGES}} が登録枚数ぶん繰り返されます。1枚ずつを class="slide" で囲むと、CMSの共通JSがフェードで順番に切り替えます。{{n}} には 1、2、3… の連番が入るので、枚数ごとに違う指定をしたいときに使えます。

<div class="mainimg">
{{#MV_IMAGES}}
<div class="slide img{{n}}">
<picture>{{#HAS_SP}}<source media="(max-width:800px)" srcset="{{MV_SP}}">{{/HAS_SP}}<img src="{{url}}" alt=""></picture>
</div>
{{/MV_IMAGES}}
<div class="slide-indicators"></div>
</div>

切り替えのCSSは自社で用意してください。共通JSが行うのは「表示中のスライドに .active を付け、opacity を操作する」ことだけです。最低限、次のような指定が要ります。

.mainimg {position: relative;}
.mainimg .slide {position: absolute; inset: 0; opacity: 0; transition: opacity 1s;}
.mainimg .slide.active {opacity: 1;}
.mainimg .slide:first-child {position: relative;}	/*高さを確保するため*/

キャッチやボタンを囲む {{#HAS_TEXT}}〜{{/HAS_TEXT}} を繰り返しの中に置くとスライドごと、外に置くと全スライド共通の1つになります(管理画面の入力欄も自動で合わせます)。

  • <div class="slide-indicators"></div> を置くと、現在位置を示すボタンが自動で作られます(任意。見た目のCSSは自社で書きます)。
  • 管理画面で「スライドの動き」に拡大・縮小を選んだときは、共通CSSが .slide img を拡大します。倍率は .mainimg { --mv-zoom-scale: 1.2; } で変えられます。

動画("video")

差し込み口役割
{{#HAS_VIDEO}}〜{{/HAS_VIDEO}}動画が登録されているときだけ出します。
{{MV_VIDEO}}動画ファイルのURL。
{{#HAS_VIDEO_SP}}〜{{/HAS_VIDEO_SP}}
{{MV_VIDEO_SP}}
スマホ用の動画が登録されているときだけ出します。
<div class="mainimg">
{{#HAS_VIDEO}}
<div class="slide">
<video autoplay muted loop playsinline preload="metadata">
{{#HAS_VIDEO_SP}}<source src="{{MV_VIDEO_SP}}" media="(max-width:800px)" type="video/mp4">{{/HAS_VIDEO_SP}}
<source src="{{MV_VIDEO}}" type="video/mp4">
</video>
</div>
{{/HAS_VIDEO}}
</div>
muted と playsinline は必ず付けてください。付けないと、スマホで自動再生されません(iPhoneでは全画面で開いてしまいます)。

キャッチコピーやボタンを重ねる場合は、静止画と同じく {{#HAS_TEXT}}〜{{/HAS_TEXT}} のブロックを <video> と並べて置きます。

スクロールに合わせて映像が進むタイプ(コマ画像を使う応用)もあります。→ フレームの作り方(スクロール連動の映像)↗

スターターの style.css には、CMSの動作に必要な指定だけが入っています。レイアウトも装飾もリセットCSSも入れていません。ブロックごとにコメントを書いてあるので、読んでから編集してください。

ブロック扱い
【1】最低限の土台(img のはみ出し防止)お使いのリセットCSSに同じ指定があれば消して構いません。
【2】メニューの開閉★残す(CMSのJSと対になっています)
【3】CMSが出すCSSの打ち消し(main p)★残す
【4】無料版のクレジット表示(.pr)★残す(書き換え禁止)
【5】ここから下自社のCSSを書く場所です。
「管理画面で選べる=見た目も自動で付く」ではありません。CMSが出すのはクラス名だけです。自社CSSを書かないと、お客様が管理画面で選んでも見た目は何も変わりません(ページは壊れませんが、選んだ意味がなくなります)。

下は「管理画面のどこを操作すると、どのHTMLが出るか」の一覧です。使う予定のものだけCSSを書けば十分です。

管理画面のどこで選ぶか出力されるHTML
メイン画像 → ボタンの種類<a class="btn"> / <a class="btn inverse">
メニュー → ボタン風に表示<li class="btn"><a>…</a></li>
一覧プラグイン → もっと見る<a class="btn">
メイン画像 → テキストの位置left-parts / center-parts / right-parts が付きます
メイン画像 → 文字サイズmv-size-lg / mv-size-md / mv-size-sm(既定は mv-size-md)
パーツ → 背景色<section class="bg-parts bg1-light-parts">
薄い色=bg1-light-parts/標準色=bg1-parts/メイン=bg1-primary-parts/アクセント=bg1-accent-parts
パーツ → 見出しの装飾テキスト<h2><span>ABOUT US</span>会社概要</h2>
装飾テキストは h2 専用の項目です。CSSは h2 > span に当ててください
パーツ → 見出し・本文の寄せ中央寄せのとき class="c" が付きます(text-align: center; を当ててください)
背景色を敷くときは、文字色も同じ面の相方をセットで指定してください。
例:background: var(--primary-color); color: var(--primary-inverse-color);
片方だけ指定すると、色を敷いたセクションで文字が見えなくなります。

✅ セクションの上下の余白の作り方(重要)

CMSはパーツを <section> の単位で出力します。お客様(クライアント)は管理画面から、パーツごとに背景色を後から変えられます。
そのため、セクションの上下の余白は必ず padding で作ってください。margin で作ると、背景色のあり・なしで余白が変わり、メニューの「ページ内リンク」で飛んだときの停止位置もズレます。

/*セクション(パーツ1つ分)の上下・左右の余白*/
section {
	padding: var(--content-space-v, var(--content-space-l)) var(--content-space-l);
}

/*section内の最初と最後の要素のマージンはリセット*/
section > :first-child {margin-top: 0;}
section > :last-child {margin-bottom: 0;}

/*見出しの上のマージンもリセット*/
main h2 {margin-top: 0;}
  • 上下のセクションが隣り合うと、間の余白は2つ分になります(padding は相殺されません)。--content-space-v は --content-space-l の0.8倍くらいが目安です。
  • padding-top: 0 のように打ち消す指定を書くときは、:not(.bg-parts) を付けてください。
    例:main section:first-child:not(.bg-parts) { padding-top: 0; }
    付け忘れると、そのパーツに背景色を選んだとき、色のブロックの上端に見出しが張り付きます。

theme.css(色・余白・フォント)

色は「背景色 / その上に乗る文字色 / 枠線の色」の3点セットで、4つの面ぶん用意されています。ここに書いた値が、管理画面「デザイン(枠・色)」の初期値になり、お客様(クライアント)が変更するとその値で上書きされます。

フォームやお知らせなどのプラグインも、この変数を読んでいます。まず theme.css の色を自社のブランドカラーに変えるだけで、プラグインの見た目もかなり馴染みます。

4. パーツの作り方

パーツ(=管理画面で1つずつ追加する「セクション」)は、2つのファイルだけで作れます。同梱の starter-text と starter-image を見本にしてください。

parts/自社パーツ名/
├ part.json      ← パーツの名前と、管理画面に出す入力欄の定義
└ template.html  ← 出力するHTML

フォルダ名がそのままパーツのキーになります(半角英数字とハイフン)。

part.json

{
  "title":       "見出しと文章",
  "category":    "基本セット",
  "sort":        1,
  "description": "一覧に出る説明文",
  "fields": [
    { "key": "image", "type": "image", "label": "画像" },
    { "key": "alt",   "type": "text",  "label": "画像の説明(任意)",
      "hint": "入力欄の下に出る補足文(任意)" }
  ]
}

✅ 入力欄で使える型(type)の一覧

type入力欄
text1行テキスト
textarea複数行。**太字** と [文字](リンク先) の簡易記法が使えます
image画像アップロード(動画も可)
linkリンク先。サイト内ページを選ぶプルダウン+自由入力
selectプルダウン("options": ["A","B"])
toggle2択のボタン(左寄せ/中央寄せ など)
iconアイコン選択
checklist1行=1項目のリスト

このほかに、行を繰り返す入力(リピーター)も作れます。→ 行を繰り返す入力(リピーター)(↓)

次の8つの名前は key に使えません。CMSは、どのパーツにも共通の入力欄(背景色・見出し・本文など)を自動で追加します。同じ名前を fields で使うと、その共通の欄と同じ入力を指してしまいます。
使えない key共通で追加される欄
bg背景色
h_textセクションの見出し
h_level見出しタイプ(h2 / h3)
h_align見出しの寄せ
h_deco装飾テキスト
lead本文(見出しの下)
lead_align本文の寄せ
anchorアンカーID(ページ内リンクの飛び先)
「リード文」のような欄を自社で作りたい場合は、intro など別の名前にしてください。

template.html

<section{{{SECTION_ATTR}}}>
{{{HEAD}}}
{{#image_url}}
<img src="{{image_url}}" alt="{{alt}}">
{{/image_url}}
</section>
差し込み口役割
{{{SECTION_ATTR}}}背景色の指定とアンカーIDが入ります(section タグに必ず付ける)
{{{HEAD}}}見出しと本文が入ります
{{キー}}part.json で決めた入力欄の値
{{キー_url}}image 型のときの画像URL
{{#キー}}〜{{/キー}}値があるときだけ出す(空欄のとき枠だけ残るのを防ぎます)
★共通の入力欄は、どのパーツにも自動で付きます。
CMSは、自社で作ったパーツにも次の入力欄を自動で追加します。
  • 背景色(なし/薄い色/標準色/メインカラー/アクセント)
  • セクションの見出し(h2 / h3)と、寄せ、装飾テキスト
  • 本文(見出しの下)と、寄せ
これらを画面に出すのが {{{SECTION_ATTR}}} と {{{HEAD}}} です。書かないと「管理画面に欄はあるのに、何も起きない」状態になり、お客様(クライアント)が戸惑います。特別な理由がなければ、必ず両方を入れてください。

同梱の starter-text は、この仕組みを使って入力欄の定義をゼロ("fields": [])にし、テンプレートを3行だけにした例です。

「カードを3つ並べる」「スタッフを人数分並べる」のように、同じ形を繰り返すパーツを作るときに使います。お客様(クライアント)は管理画面から、行の追加・削除・並べ替えができます。

part.json に repeater を足します(fields と並べて書きます)。

{
  "title": "スタッフ紹介",
  "category": "基本セット",
  "fields": [],
  "repeater": {
    "key": "rows",
    "label": "項目",
    "fields": [
      { "key": "image", "type": "image",    "label": "写真" },
      { "key": "name",  "type": "text",     "label": "名前" },
      { "key": "body",  "type": "textarea", "label": "紹介文" }
    ]
  }
}

template.html では、繰り返す部分を {{#rows}}〜{{/rows}} で囲みます。中では、行の key をそのまま書きます。

<section{{{SECTION_ATTR}}}>
{{{HEAD}}}
<div class="staff-list">
{{#rows}}
<div class="staff-item">
{{#image_url}}<figure><img src="{{image_url}}" alt=""></figure>{{/image_url}}
{{#name}}<h4>{{name}}</h4>{{/name}}
{{#body}}<p>{{{body}}}</p>{{/body}}
</div>
{{/rows}}
</div>
</section>
書き方意味
{{#rows}}〜{{/rows}}行の数だけ繰り返します。rows は part.json の "key" と同じ名前にします。
{{キー}}その行の値。
{{キー_url}}その行の画像のURL。{{image}} ではなく {{image_url}} を使ってください(image にはファイル名だけが入ります)。
{{{キー}}}textarea の値は3重カッコで書きます(改行と **太字** の記法を活かすため)。
リピーターは、1つのパーツに1つだけです。2種類の繰り返しが必要な場合は、パーツを2つに分けてください。
行の中でも text / textarea / image / link / select / icon などが使えます(table だけは行の中では使えません)。
このほかにできること
※どちらもFrames CMS標準パーツ向けの資料ですが、自社パーツでも同じように使えます。

パーツのCSSとサムネイル

  • パーツ用のCSSは、フレームの css/style.css にまとめて書いてください。パーツのフォルダにCSSを置いても読み込まれません。
  • バージョンアップで parts を上書きしても、自社で追加したパーツのフォルダは消えません。
  • クラス名は自由ですが、Frames CMS標準パーツと同じ名前(末尾が -parts のもの)は避けたほうが安全です。
  • parts/自社パーツ名/thumb.webp を置くと、パーツ選択画面に見本画像が出ます(任意)。
  • フレームを複数作って切り替える(着せ替える)場合、パーツの中身(入力された文章や画像)はそのまま残りますが、見た目は自動では引き継がれません。パーツ用のCSSはフレームごとに持っているためです。着せ替える予定があるなら、着せ替え対象の各フレームに、同じパーツ用のCSSを用意してください。

5. メニューを自社のJSで動かす

CMSのメニューは、共通のJS(jQuery)が style="display:..." を書き換えて開閉しています(開いた状態のクラスは付かないので、CSSの transition による演出は使えません)。
演出を自分で作りたい場合は、frame.json に次の1行を足してください。

"menu_js": false

これでCMSデフォルトの開閉JSが止まり、ハンバーガーの開閉・子メニューの開閉を、すべて自社のJSで自由に作れます。サンプルを js/menu-sample.txt に入れてあるので、ファイル名を js/main.js に変えて(コードももちろん変更して下さい)お試しください。

この設定にしたときは、次の3つを自社CSS・JSで用意してください。
  1. ハンバーガーとドロワーの表示・非表示(これまでCMSのJSが行っていました)
    .small-screen #menubar_hdr {display: block;}
    .small-screen #menubar.is-open {display: block;}
    ※スターターの style.css には、この2行が入っています。
  2. 子メニューの目印クラス。CMSが付けていた .ddmenu_parent(子メニューを持つ li)と .ddmenu(その親リンク)も付かなくなります。サンプルのように自社のJSで付けるか、自社のクラス名を使ってください。
  3. メニューがオーバーレイより上に出る指定。.small-screen #menubar に position: relative; z-index: 100; が必要です。
止まるのは開閉の制御だけです。body の small-screen / large-screen は付き続けます。

6. フッターを自社のものにする

frames/自社フレーム名/footer.html を置いて下さい。
フッターについては、Frames CMS標準フッターのように3択にはできません。1フレーム=1フッターです。
無料版のクレジット表示はCMSが自動で末尾に足すので、書く必要はありません。footer.html を消せば、管理画面「フッター」で選ぶデザインに戻ります。

差し込み口役割
{{SITE_NAME}} {{HOME_URL}}サイト名とトップページのURL
{{#HAS_LOGO}} {{LOGO_URL}}ロゴ(フッター用ロゴ→ヘッダーロゴの順に使われます)
{{{ADDRESS_TEL}}}住所と電話(改行で連結済み)。個別は {{ADDRESS}} {{TEL}}
{{#HAS_MENU}} {{#FOOTER_GROUPS}}フッターメニュー。グループごとに {{heading}} と {{#links}}({{href}} {{label}})
{{#HAS_SNS}} {{#SNS_ITEMS}}SNSアイコン({{url}} {{icon}} {{label}})
{{COPYRIGHT}} {{YEAR}}コピーライト表記と年

7. フォーム・お知らせ・一覧(プラグイン)の見た目

フォーム、お知らせ、一覧・詳細はプラグインとして動いており、HTMLの構造もCSSもプラグイン側が持っています。CSSは自動で読み込まれるので、何もしなくてもそれなりに表示されます。自社デザインに合わせる場合は、次の順で進めるのがおすすめです。

  1. 自社CSSで上書きする。スターターは自社CSSをCMSのCSSより後ろに読ませているので、同じクラス名を書けば上書きできます。バージョンアップで消えないので、この方法が安全です。
  2. それでも足りなければ、プラグインのCSSを直接書き換える。ただしバージョンアップで上書きされるので、変更内容は手元に控えておいてください。
    plugins/form/assets/form.css           ← フォーム
    plugins/list-news/assets/list-news.css ← お知らせ
    plugins/list-pro/assets/list-pro.css   ← 一覧・詳細

一覧・詳細はクラスが約100個あるので、色と余白の調整にとどめるのがおすすめです。フォームとお知らせ(各20個ほど)は、必要なら書き直せる量です。

プラグインのパーツも、自社パーツと同じく {{{SECTION_ATTR}}} と {{{HEAD}}} に対応しています(背景色・見出し・本文が使えます)。

8. お客様の管理画面をすっきりさせる(使わない指定)

1つのデザインで納品するときは、お客様(クライアント)に見せない入力欄や管理メニューを隠せます。data フォルダに hide.json を置き、名前をカンマ区切りで書きます。

{ "hide": "mv_text_color, mv_text_size, part_bg, menu_design, menu_code" }
  • 隠した欄は何も選んでいない状態(フレームのCSSのまま)で表示されます。入力済みの値は消えません。
  • 名前を間違えると、管理画面の上に赤い帯でお知らせします。

指定できる名前の一覧は仕様の詳細リファレンス ↗をご覧ください。


9. 納品前のチェックリスト

  • 使わないフレーム・パーツを、サーバーから削除した
  • サイトを表示して、レイアウト崩れが無いか確認した(スマホ幅も)
  • メニューの開閉、子メニュー、ページ上部へ戻るボタンが動く
  • お問い合わせフォームから実際に送信して、メールが届く
  • 管理画面「デザイン(枠・色)」で色を変えても、極端に崩れない
  • パーツに背景色を設定しても、文字が読める
  • お客様(クライアント)が触る管理画面に、使えない選択肢が残っていない → 使わない指定(↑)
  • CMSが出力するクラス(.btn / .bg1-* / .c など)に、自社CSSを当てた → CMSが自動で出力するクラス(↑)

うまくいかない場合は

Free(無料版)をご利用中のお客様はフォーラムから。
製品版を購入済みのお客様はサポート掲示板(マイページからアクセス)からお問い合わせ下さい。
尚、当ページ冒頭に記載のように、プログラム側のカスタマイズはサポート外なのでご了承ください。