Framer + RemixでWebサイトをつくる #9 - トップナビゲーションバーとドロワーでメニューをつくる
引き続き開催しているもくもく会「Kamakura MokMok Hack」のサイトをFramer + Remixでつくっていきます。
サイトの要件などに興味ある方は1日目の記事をご覧ください。
9日目 - トップナビゲーションバーとドロワーをつくる
前回まででスクロールも固定レイアウトもできるようになったのでここまでのテクを使い、サイトメニューをドロワーに入れてトリガーをトップナビゲーションバーとして固定します。
前回までのプレビュー
トップナビゲーションバーをつくる

以下の内容でトップナビゲーションバーを作成します。Scroll Componentの上に被せて配置するので前回の記事でも説明したように固定レイアウトになります。
-
TopNavigationBar(Stack) を作って画面上部へ配置し以下の設定に
-
Directionは たて方向に Gap: 12-
PaddingはTop: 44pxにしてスマートフォン実機で確認した際にノッチに被らないように -
DistributionをEndに
-
- TopNavigationBar(Stack) をの中に Navs(Stack) と Separation(Frame) を配置
-
Navs(Stack) は以下の設定に
-
Directionはよこ方向に -
Gap: 12,Padding: 0 - Left(Stack), Title(Stack), Right(Stack) を配置
-
Title(Stack) の横幅は
Width: 1fr(Fraction) -
Left(Stack), Right(Stack) はそれぞれ
Width: 60px,Height: Fill-
FillはHeight: 100%と同じ意味です
-
-
-
Left(Stack), Right(Stack) は
Directionはたて方向でDistribution: CenterでGap: 0,Padding: 0 -
Title(Stack) の中にはTextを配置
Size: 16Line: 1.2emAlign: Center
トリガーのハンバーガーメニューボタン
ちなみにトリガーのハンバーガーメニューはFramerが用意しているHero Icon Componentをとりあえず配置してます。
Framerが用意しているコンポーネントを使うにはFramerの上部にある「Insert」アイコンをクリックすると色々選べます。

Heroアイコンを使うには、 Graphic > Icons > Hero を選択して、 Insert ボタンをクリックで任意の場所にComponentを配置できます。

Componentには配置すると色々オプションが右のコンパネに表示されます。アイコン類は色々アイコンの種類を選んだり、色や向きを変更するなどできるようになります。

というわけでここまでのプレビューです。
ドロワーをつくる
ドロワーをFramerの純粋な機能だけで作るには以下の手順で作成できます。
- ドロワー用のDrawer(Screen)を作成
- Screenの背景を削除して透過背景にする
-
Drawerの本体(今回は BodyWrapper と命名)を適当にFrameかStackで作成する
- この時、横幅は
Width: 70%とかにしておくと良いです - たて幅は
Height: 100%にする
- この時、横幅は
-
BodyWrapperの下にはFramerが自動で薄い背景レイヤー(今回はClickableLayer(Frame))と命名)をつけてくれますが、ScreenサイズでDrawer本体の横幅を
Relativeにしたいので透明のFrameを配置- 横幅・たて幅は
Relativeのそれぞれ100%を設定 - この背景レイヤーには
Transition BackのIntaractionを追加しておく- ドロワー閉じるために使います
- 横幅・たて幅は

ドロワーのメニューをつくる
レイアウトの組み方は省略します。が、Layersの構成から読み取っていただければと。
ここではIntractionについて簡単に説明します。
ここで必要な要件があります。
- ドロワーのメニューは遷移する際にドロワーは閉じられるもの
- 任意メニューをクリック(タップ)で任意の画面へ遷移する
Intaraction は以下の内容で設定します。
Event On
|
Animate |
Target |
|---|---|---|
Tap |
Instant |
任意の画面 |
⚠️「任意画面へ遷移する」というユースケースに例えば Push などの Animate にしてしまうと現在はドロワーの表示が期待したものにならないようです。

というわけで、ここまでのプレビューです。
だいぶそれっぽくなってきました。
ここまで作ってきてFigmaやXD, Sketchなど触っているデザイナーの皆さんもReactやVueなどView ComponentライブラリーやFrameworkを実装しているエンジニアの皆さんも薄々感じているとは思いますが、今現在見ただけでも再利用性の高いFrameやStackの塊がいくつかあると思います。
というわけで、次回はいよいよFramerでComponentを作る過程を説明しようと思います。
Discussion