MENU

第12章 レスポンシブ対応を行なってみる

目次-全章

目次

12.1 flexboxとは

第11章までで、簡易版Twitterの機能が完成しました。

しかしブラウザの幅を狭めると表示が崩れたり、一覧とページング要素の間に余計な余白が発生したりしています。

図12.1.1 preview画面例①
図12.1.2 preview画面例②

これらを整理し、スマートフォンでもPCでも綺麗なレイアウトにするため、bubbleのレスポンシブ機能を利用します。

bubbleのレスポンシブ機能

レスポンシブの設定

bubbleでは、エレメントそれぞれに対し、最小値と最大値を設定することで自動的に横幅が決定することができます。

例えばログインページのログインボタンの「Make this element fixed-width」のチェックを外し、以下のように設定します。

図12.1.3 Button Loginの設定

Minimum width(% of current width) が 30 なので、横幅500pxを 500px × 0.3 = 150pxまで縮小する設定です。

Maximum width(% of current width)が100なので、横幅500pxを100% = 500pxまで広げる設定となります。

このように、各エレメントについて設定していくことで、画面幅に応じて横幅を変更することが可能です。ただし、高さについてはこのような設定が利用できません。

新レスポンシブエンジン

そこで数年前に開始されたのが新レスポンシブエンジンです。新レスポンシブエンジンはflexboxというデザイン要素(CSS)を利用しており、縦横ともに要素や最小・最大値に応じて自動的にレイアウトされる仕組みです。

flexboxとは

CSSのflex boxをご存じの方は読み飛ばしていただいて問題ありません。

flexboxとは、flexアイテムと呼ばれる複数の子要素を内包するflexコンテナの親要素で構成されています。

以下のようなboxがそれぞれ存在した場合、左詰めにしたり、親boxの中で均等の幅にしたり、子要素の幅に合わせて親要素の幅を狭めたり、といった指定が簡単にできます。

もとの配置
左詰め配置
均等幅の配置
親要素を子要素に合わせる

これらは横位置だけでなく、縦位置に対しても可能です。

上に詰める、上下に配置し要素間に余白を持たせる、縦位置中央に配置する、などの例です。

また、子要素の横幅合計が親要素をはみ出した場合、自動的に折り返すことができます(設定によっては折り返しを禁止することもできますが、bubbleでは基本的に折り返しが適用されます)。

子要素がすべて横幅100pxで固定、親要素の横幅の最大値が300pxだったとします。子要素が4つ存在するので、子要素の横幅合計は400pxとなり、親要素の横幅を超えています。この場合、4つめの子要素は自動的に次の行に折り返されます。

この性質を利用して、PCなど横幅が広いデバイスでは要素を横並びに、スマートフォンなど横幅が狭いデバイスでは要素を縦並びにすることができます。ウェブサイトのグローバルナビゲーション(メニュー)でよく利用されています。

第12章では、レスポンシブエンジンを利用して、画面のレスポンシブ対応を行っていきます。

第12章では、便宜上アプリをコピーしてレスポンシブを行っていますが、チュートリアルではアプリをコピーする必要はありません。

レスポンシブエンジンを適用する

レスポンシブエンジンを適用するには、Design > Responsive タブをクリックします。

ビジュアルエディタでHeaderを開き、Responsiveタブをクリックします。

図12.2.1 Responsiveタブを選択

ヘッダー全体をレスポンシブ化する

Headerのプロパティエディタを確認すると、今までと異なった構成になっています。

図12.2.3 プロパティエディタの構成

Appearanceはあまり変わりませんが、Layoutという新しいタブが存在します。このLayoutタブでエレメントの幅やflexboxの並び方などを設定していきます。

固定幅で構築したページやエレメントは、基本的に固定幅のままとなっています。HeaderのプロパティエディタのLayoutは以下のようになっています。

図12.2.4 HeaderのLayout

Container layoutがFixedになっています。ヘッダーではアプリケーション名やメニューリンクを横並びにしたいので、Rowを選択します。なお、Columnを選択すると縦並びになります。Align to parentを選択すると、親要素に対して子要素をどの位置にするか相対的に指定することになります。

図12.2.5 Rowを設定した時のHeaderの画面

Container layoutをRowに変更したことで、内部の要素が上寄せ、左詰めになったと思います。ここで、各エレメント間の余白を設定するには、Apply gap spacing between elementsにチェックを入れ、数字を入力します。もともとエレメント間の余白は24pxに設定していたので24pxにします。

図12.2.6 Headerのgapを設定

flexboxの子要素は親要素の幅を超えると折り返しが自動で発生します。Row gapは折り返しが発生したときに縦位置の余白を指定するものです。

Headerのサイズですが、基本的に最小値を320pxとします。スマートフォン対応では最小値を320pxと考えてほぼ問題ありません。最近のスマートフォンでは横幅が375pxのものが多いですが、古い機種や小さめの機種にも対応するため320pxとします。

Min widthに320と入力しておきます。Max widthを空にしておくと、画面幅いっぱいまでエレメントを表示することになります。ヘッダーのオレンジ色の部分は画面幅いっぱいに表示すべき要素なので、Max widthは指定しません。

高さは、最小値にもともと設定していた100pxとします。

図12.2.7 Min widthとMin heightを設定

ヘッダーのpaddingを設定する

paddingとは、エレメント内部に設定する余白です。例えば20pxのpaddingを設定した場合、20pxを含めてエレメントの横幅と考えます。

ヘッダーでは、左に28px、上に16px、下に12pxの余白を設定していたので、paddingも同じように設定します。

図12.2.8 Headerのpaddingを設定

ここまで設定したところで、コピーしたReusable elementのHeader_copyと見た目が一緒になっていることが確認できたでしょうか。

内部のエレメントの設定

次に、内部のエレメントの横幅の設定も変更しておきましょう。

アプリケーション名 AppNameでは、Min widhtが設定されていますが、Fit width to contentにチェックを入れます。AppNameは固定文字ですが、動的にテキストが変更になる場合、チェックを入れておくとテキスト幅に合わせて横幅を変更することができます。

Min heightを小さい値 10pxなどに変更し、Vertical AlignをMiddleにします。すると、エレメントの高さは文字が表示できる最小の高さになり、親エレメントの縦位置中央に設置されます。レスポンシブエンジンを利用する場合は、StyleのCenter the text verticallyを設定しなくても、縦位置中央に設定することができます。

図12.2.9 AppName(bubble チュートリアル)の設定

この性質を利用して、Min widthを260px、Max widthを320pxにします。

図12.2.10 Min widthとMax widthを設定

ビジュアルエディタのResponsiveをクリックすると横幅に応じた外観を確認できます。スマートフォンの外観を確認するには320pxをクリックします。

図12.2.11 320pxの時の画面

先ほど、App Nameを最小値260px、最大値320pxにしましたが、タイムラインの文字を合わせると320pxを超えてしまうため、親エレメントの幅を超える要素は折り返して表示されます。

このようにして、横並びの設定でも折り返しを発生させたい場合は、最小値を調整して隣のエレメントが折り返されるようにします。

メニュー要素の余白を統一する

HeaderのColumn gapの設定により各エレメント間の余白は統一しましたが、タイムラインとマイページでは文字の長さが異なるので余白がバラバラに見えます。そのため、メニューリンクの各エレメントは横幅を小さい値に設定し、Fit contentにチェックを入れることで文字数に応じた横幅にします。高さもAppNameと同様に小さい値を設定しておき、最小の高さになるように設定します。

図12.2.12 Link Timeline(タイムライン)の設定
図12.2.13 Link UserList(ユーザー一覧)の設定
図12.2.14 Link Mypage(マイページ)の設定

Linkエレメントは文字幅に合った横幅になり、エレメント間の余白が揃ったことが確認できます。

図12.2.15 Responsive設定後のHeader

12.3 ログインページのレスポンシブ対応

レスポンシブエンジンを適用する

ページレイアウトをRowにし、Container alignmentをcenterにすると、Group Loginが横位置中央に配置されます。

ページのサイズについては、全てのページで以下のように設定します。

図12.3.1 loginのResponsive例

Width for UI builderについてはビジュアルエディタ上の横幅なので、あまり気にする必要はありません。基本的なPCの横幅程度にしておけば問題ないですが、Preset page widthでFull widthを選択すると1200になりますので、このままにします。

Min widthはスマートフォンの最小サイズ320にしておきます。

画面高さはエレメントの高さに合わせて自動的に調整されるので、Min heightを600くらいにしておけば問題ないです。

メインのエレメントをレスポンシブ対応する

loginページのメイン要素、Group Loginのlayoutは内部エレメントが縦に並んでいるので、Columnにします。Vertical alignmentはcenteredにしておきます。

横幅が固定幅になっているので、スマートフォンで表示したときに画面横幅より少し小さくなるようにMin widthは280px、Max widthは500pxとします。ただし、横幅は最大値まで広がってしまうので、PaddingのLeft、Rightに20pxを設定します。

今後、基本的にMax widthは固定幅で作成したサイズとしていきます。

エレメント間の余白は32pxだったので、layoutの「Apply gap spacing between elements」にチェックを入れ、Row gap(px)を32にします。

Min heightは100pxにしておきます。内部エレメントは100px以上あるので、高さは内部エレメントに合わせて調整されます。

図12.3.2 Group Loginの設定

内部のエレメントをレスポンシブ対応する

内部のエレメントについては、親エレメントに合わせてサイズを設定できます。

例えばPage Titleに対して、横幅を100%にします。こうすると自動的に親エレメントGroup Loginに対して100%の横幅になります。

図12.3.3 Page Titleの設定

Group Login内部のButton Loginについても同じように設定します。

Group Email、Group Passwordのグループは、Container layoutをColumnにし、Apply gap spacing between elementsにチェックを入れ、Row gapは16pxにします。

図12.3.4 Group Emailの設定

このように、エレメントが縦並びだとしてもエレメントの余白が異なる場合はGroup Emailのようにグループを作成してエレメントを内包しておくと便利です。

Group Emailの内部エレメントは横幅100%としておきます。

図12.3.5 Emailの設定

リンクの横幅を自動にする

Link ResetPassword、Link Signupについては、横幅を文字幅に合わせるため、Fit width to contentにチェックを入れます。横幅は実際のサイズより小さめに設定しておきます。

図12.3.6 Link ResetPasswordの設定

これでloginページのレスポンシブ対応は終わりです。

新規登録ページについても同じようなデザインなので、同様に設定しましょう。

Responsiveを確認する

Design > Responsiveをクリックして、横幅を色々と変更して確認します。

図12.3.7 Design > Responsiveを選択

320pxで確認すると、Group Loginが画面いっぱいに表示されず、左右に余白ができていることが確認できます。

図12.3.8 左右に余白

画像の赤枠部分をドラッグして、横幅を好きなサイズに変更できます。自由に変更して、表示が崩れないか確認しましょう。

12.4 タイムラインページのレスポンシブ対応

レスポンシブエンジンを適用する

homeページにレスポンシブエンジンを適用し、Container layoutはHeader、Bodyを縦に並べるため、Columnを選択します。

図12.4.1 homeの設定

ヘッダーは画面幅いっぱいに表示するため、横幅を100%にします。

図12.4.2 Headerの設定

Bodyをレスポンシブ対応する

Body内部のGroup UserとTimeLineを横に並べるため、Container layoutはRowにします。Padding Left / Rightに20pxを設定しておきます。Apply gap spacing between elementsにチェックを入れ、column gap を34にします。

図12.4.3 Bodyの設定

Group Userとその内部をレスポンシブ対応する

Group Userは画像とGroup UserInfoを横並びにするため、Container layoutをRow、Apply gap spacing between elements にチェックを入れColumn gapを20とします。横幅はもともと228pxですが、スマートフォンで表示したとき横幅いっぱいになるようにMax Widthを280pxにしておきます。

図12.4.4 Group Userの設定

Group UserInfoはエレメントを縦並びにするため、Container layoutはColumnにし、Apply gap spacing between elements にチェックを入れColumn Capを8にします。横幅はMake this element fixed-widthのチェックを外しておきます。こうすると、Group Userの内部で、ユーザー画像とColumn Gapを除いたサイズまで自動で横幅を広げてくれます。

図12.4.5 Group UserInfoの設定

Group UserInfo内部のTextエレメントやLinkエレメントの横幅も同様に、Make this element fixed-widthのチェックを外します。

図12.4.6 Fit height to contentにチェック

Fit height to contentにチェックがついていることを確認します。

TimeLineのレスポンシブ対応をする

TimeLineはスマートフォンのとき、Group Userの下に回り込み、横幅いっぱいに表示されるようにします。

投稿用のエレメントをグループ化する

事前に、Tweet、Save Tweet、PictureUploaderをGroup TweetEditというグループに入れておきます。3つのエレメントを選択した状態で右クリックし、Group element in a Column containerをクリックします。

図12.4.7 Group element in a Column containerを選択

3つのエレメントがGroupで囲まれますので、名称をGroup TweetEditに変更します。

TimeLineのレスポンシブ対応をする

TimeLineの各エレメントは縦に並ぶのでContainer layoutはColumn、Apply gap spacing between elementsにチェックを入れ、Apply gap spacing between elementsにチェックを入れ、Row gapは20とします。Min widthは280px、Min heightは100pxにします。

図12.4.8 TimeLineの設定

Group TweetEditのレスポンシブ対応をする

エレメントを縦並びにするため、Container layoutはColumn、Apply gap spacing between elementsにチェックを入れRow gapは10、Min widthは280px、Min heightは100pxにします。

図12.4.9.1 Group TweetEditの設定
図12.4.9.2 Group TweetEditの設定

内部のTweet、Picture Uploader、Save Tweetは横幅100%に設定します。

図12.4.10 Responsive対応例

一覧表示をレスポンシブ対応する

Repeating Groupの横幅を280px〜にしておきます。また、このRepeating GroupのCell’s Container layoutはcolumnに設定します。

図12.4.11 container layoutとMin widthの設定

Group Tweetの内部エレメントTweet、Text CreatorName、Link Creator、Tweet Imageを選択し、Group elements in a Column containerでグループを作成します。(3章で既に設定してあります。)

図12.4.12 Group elements in a Column containerを選択

このグループをGroup TweetDataという名称にします。

図12.4.13 Group TweetDataの設定

次にGroup TweetのContainer layoutをRow、Apply gap spacing between elementsにチェックを入れColumn gapを28にします。

図12.4.14 Group Tweetの設定

横幅は100%、高さは小さめの100pxでFit height to contentにチェックを入れ、Paddingを設定します。

図12.4.15 Group Tweetの設定

ユーザー画像をレスポンシブ対応する

Creator Imageのサイズを40px〜100pxとなるように設定します。画像やShapeは「Keep element aspect ratio fixed」にチェックを入れるとアスペクト比(縦横比)を保ったまま縮小されます。

図12.4.16 Creator imageの設定

投稿表示欄をレスポンシブ対応する

投稿表示欄Group TweetDataのサイズを以下のように設定します。すると、Creator Imageの横にGroup TweetDataが回り込むことが確認できます。

図12.4.17 Group TweetDataの設定

内部のText CreatorNameは横幅100%にし、高さはFit height to contentにチェックを入れます。これで、Group TweetDataの横幅いっぱいにユーザー名を表示します。ユーザー名が横幅より長かった場合でも、改行して高さは自動的に変化します。

図12.4.18 Text CreatorNameの設定

Link Creatorは固定テキストのため、リンク幅が文字幅に一致するようFit width to contentにチェックを入れます。

図12.4.19 Link Creatorの設定

TweetのサイズもText CreatorNameと同じように設定します。

図12.4.20 Tweetの設定

Tweet ImageもKeep element aspect ratio fixedにチェックを入れます。

図12.4.21 Tweet Imageの設定

RepeatingGroup Tweetの高さを可変にする

Min heightを100pxにし、Fit height to contentにチェックをいれます。こうするとRepeatingGroupの高さがエレメントに合わせて自動で変化し、ページングとの間の余白がなくなります。

図12.4.22 RepeatingGroup Tweetの設定

ページングをレスポンシブ対応する

ページングの数字は横並びなので、Container layoutをRowにします。Column gapを設定するとスマートフォンの時に横幅が入りきらないことがあるので、Container alignmentをSpace betweenにします。こうすると横幅に余裕がある場合、エレメントの間に余白が作成され、余裕がない場合は余白がなくなります。

図12.4.23 Group Pagingの設定①

横幅は280px〜とします。

図12.4.24 Group Pagingの設定②

RG Pagingの横幅は、280 – ( 22 × 2 ) = 236px に設定します。最大値の280pxから、Icon Prev、Icon Nextの横幅を引き算したサイズです。

図12.4.25 RG Pagingの設定

内部のText Numberの横幅を30〜44pxにします。Text Numberの横幅が、RG Pagingに入りきるサイズです。

図12.4.26 Text Numberの設定

最後に、Icon Prev、Icon NextはVertical alignmentをcentered(高さ中央)にしておきます。

Responsiveタブで確認する

ここまで設定できたら、Responsiveタブで320px表示して確認します。エレメントが横幅からはみ出ていた場合は調整してください。

図12.4.27 Responsive対応例①
図12.4.28 Responsive対応例②

12.5 マイページのレスポンシブ対応

レスポンシブエンジンを適用する

mypageページにレスポンシブエンジンを適用し、Container layoutはHeader、Bodyを縦に並べるため、Columnを選択します。Row gapはhomeと同様に34pxを設定します。

基本的にページの設定はどのページも同じにします。

図12.5.1 mypageの設定

Headerの設定もHomeと同じです。

図12.5.2 Headerの設定

Bodyの設定も同じようにします。

図12.5.3 Bodyの設定①
図12.5.4 Bodyの設定②

ユーザー情報のレスポンシブ化

Group Userはエレメントが横並びなのでContainer layoutをRow、Column gapを20 、横幅を100%にします。

図12.5.5 Group Userの設定

エレメントが入りきらなくなったので、User Imageを調整します。

図12.5.6 User Imageの設定
図12.5.7 Button Editの設定

Button Edit / Button Logoutの横幅も調整します。

Group UserInfoは、縦・横にエレメントが並んでいるため、まずユーザー名と投稿数をグループに入れます。次にフォロー数、フォロワー数、退会するリンクをグループに入れます。

それぞれ、Group UserText、Group UserLinkというグループに入れた状態です。

図12.5.8 各エレメントのグループ構成

Group UserInfoの設定は以下の通りです。

図12.5.9 Group UserInfoの設定

Group UserTextを以下の通り設定します。Group UserLinkも設定内容は同じです。

図12.5.10 Group UserTextの設定①

内部のText、Linkエレメントは横幅100%、高さ Fit height to contentにチェックを入れます。

図12.5.11 Group UserTextの設定②

「退会する」リンクのみ、横幅が文字幅と同じになるようにします。

図12.5.12 Link Withdrawalの設定

タブ要素のレスポンシブ化

タブを内包するGroup Tabは、Container layoutをRow、横幅を320〜600pxにします。横位置中央に表示されるようHorizontal alignmentをCenterにします。

図12.5.13 Group Tabの設定

各タブはスマートフォンでも入りきるように320pxの1/3幅を最小値としますが、BodyにPaddingが左右20pxずつ設定されているため、280pxの1/3幅とします。割り切れないので90pxとすれば問題ありません。

図12.5.14 Text Timelineの設定

TimeLineをレスポンシブにする

TimeLineのレスポンシブについては、タイムラインページのレスポンシブ対応を参考に同じように設定しましょう。

このとき、homeのタイムラインで追加してあった投稿の画像も表示できるようにImageエレメントを追加しておきましょう。

また、TimeLineのCollapse when hiddenにはチェックを入れてください。チェックを入れないと、非表示のときもエレメントの高さ分が余白として表示されます。

図12.5.15 Text Timelineの設定

Follow Userのレスポンシブ対応をする

Follow UserもTimeLineと同じような設定をしていきます。こちらもCollapse when hiddenにチェックを入れます。横幅やgapなどのサイズはTimeLineと同じです。

図12.5.16 Follow Userの設定

ユーザー情報を縦並びにするために、グループでまとめます。

図12.5.17 Group FollowUserInfoの設定

RG FollowUserはContainer layoutをColumn、横幅100%とします。

図12.5.18 RG FollowUserの設定

Group FollowUserはContainer layoutをRow、横幅100%にします。

図12.5.19 Group FollowUserの設定

TimeLineのGroup Tweetエレメントと同様に、Paddingも設定しておきます。

図12.5.20 エレメントのPadding設定

やはり横幅がはみ出すため、フォローユーザーの画像サイズやボタンのサイズを調整していきます。

ユーザー画像のサイズを80〜100pxにします。

図12.5.21 FollowUser Imageの設定

フォローボタン、フォロー解除ボタンは同じ設定にします。このボタンはどちらかしか表示されないため、Collapse when hiddenにチェックを入れておくと、ユーザー情報の横幅を広く利用できます。

図12.5.22 Button AddFollowの設定

先ほど作成したユーザー情報をまとめたグループGroup FollowUserInfoの設定は以下の通りです。最大値を設定していないため、ユーザー画像、フォローボタンを除いた横幅まで自動的に広がります。

図12.5.23 Group FollowUserInfoの設定

内部のユーザー名、投稿数、フォロー数、フォロワー数の横幅を100%、Fit height to contentにチェックを設定します。

図12.5.24 Fit height to contentにチェック

プロフィールを見るリンクのみ、Fit width to contentにチェックを入れておきます。

図12.5.25 Link UserProfileの設定

Follow Userのページングをレスポンシブにする

ページング要素はTimeLineのページングと同様の設定を行ってください。

Popupをレスポンシブ対応する

ビジュアルエディタで非表示になっているPopupを表示し、Container layoutをColumnにします。

スマートフォンのとき横幅より少し小さくなるようにMin widthを300px、Max widthはもともとの設定値にします。Row gapは16pxにしておきます。

また、余白を持たせたいので、Padding Top / Bottomに70、Left / Rightに20を設定します。

図12.5.26 Popup Editの設定

ここで、2つのボタン間の余白が気になるため、グループで内包します。ボタンのグループをGroup Buttonsとします。

Row gap、横幅などは以下を参考にしてください。ポップアップの横幅よりさらに少し狭くなるようにします。

図12.5.27 Group Buttonの設定

ポップアップ内部のエレメントを中央寄せにし、横幅を260〜500pxで揃えます。

図12.5.28 Min widthとMax widthの設定

設定が完了すると以下のような外観になります。

図12.5.29 Preview画面例

最後に、Resoinsiveタブで横幅を変えながら確認してください。

12.6 ユーザーの一覧ページのレスポンシブ対応

レスポンシブエンジンを適用する

usersページにレスポンシブエンジンを適用し、Container layoutはHeader、Bodyを縦に並べるため、Columnを選択します。Row gapはhomeと同様に34pxを設定します。

図12.6.1 usersの設定

Header、Bodyのレスポンシブ対応

usersページのHeader、Bodyの設定は、mypageとほぼ同じです。そのためここでは説明を割愛します。マイページのレスポンシブ対応を確認して、同じように設定してください。

Search Bodyのレスポンシブ対応

Search Body本体も、Bodyと同様にContainer layoutをColumn、Row gapを40、Padding Left / Rightを20pxにします。

図12.6.2 Search Bodyの設定①
図12.6.3 Search Bodyの設定②

Grourp Searchの横幅を最大600pxとし、親要素の中央に配置します。

図12.6.4 Group Searchの設定

このように最小値を設定しなかった場合、画面に入りきる最大サイズに自動で設定されます。スマートフォンなどで画面幅いっぱいに表示したいエレメントは最小値を設定しなくてもかまいません。

ここでは、上下にPaddingを設定しています。

図12.6.5 Group SearchのPadding設定

検索ボックスとボタンのサイズはどちらももともとのサイズが最大値になるように設定します。

図12.6.6 各エレメントの設定

グループUserlistおよび内部は、他のページのフォローユーザー一覧と同様に設定します。

12.7 メールアドレス認証・送信ページのレスポンシブ対応

レスポンシブエンジンを適用する

email_authenticationページにレスポンシブエンジンを適用し、Container layoutはRowを選択します。

図12.7.1 email_authenticationの設定

送信ページ(Group Auth)のレスポンシブ適用

Group AuthはContainer layoutをColumn、Row gapに32px、Collapse when hiddenにチェック、Vertical alignmentをMiddle、Padding Left / RIghtに20を設定します。横幅は280〜500pxにします。

図12.7.2 Group Authの設定①
図12.7.3 Group Authの設定②

Page Title、Group Email、Button Sendは横幅100%に設定します。

図12.7.4 Page Titleの設定

Group EmailはContainer layoutをColumn、Row gapを16にします。

Group Emailの内部エレメントの横幅も100%にします。

図12.7.5 Group Emailの設定
図12.7.6 Button Sendの設定

Link Loginのみ、横幅を小さく設定し、Fit width to contentを設定します。

図12.7.7 Link Loginの設定

Responsiveタブで確認する

Responsiveタブで横幅320pxにすると以下のように表示されます。

※Group AuthDone要素のCollapse when hiddenにチェックを入れてから確認してください。

図12.7.8 Responsive対応例

12.8 メールアドレス認証・完了ページのレスポンシブ対応

完了ページ(Group AuthDone)のレスポンシブ適用

Group AuthDoneはContainer layoutをColumn、Row gapに32px、Collapse when hiddenにチェック、Vertical alignmentをMiddle、Padding Left / RIghtに20を設定します。横幅は280〜500pxにします。

図12.8.1 Group AuthDoneの設定
図12.8.2 Group Authの設定

内部エレメントのPage TItle、Text Auth Doneは横幅を100%に設定します。

図12.8.3 Page Titleの設定
図12.8.4 Text Auth Doneの設定

Link Loginは横幅を小さくし、Fit width to contentを設定します。

図12.8.5 Link Loginの設定

Responsiveタブで確認する

Responsiveタブを横幅320pxで確認すると、以下のように表示されます。

図12.8.6 Responsive対応例

12.9 パスワードリセット・送信ページのレスポンシブ対応

Responsiveエンジンを適用する

password_resetページもResponsiveエンジンを適用し、email_authenticationやloginと同様の設定をします。

図12.9.1 password_resetの設定

送信ページ(Group SendEmail)のレスポンシブ適用

Group SendEmailのContainer layoutはColumn、Row gapは32、Collapse when hiddenにチェック、Vertical alignmentはmiddle、Padding Left / Rightに20を設定します。

図12.9.2 Group SendEmailの設定①
図12.9.3 Group SendEmailの設定②

Group SendEmailの内部エレメント、Page TItleの横幅を100%にします。

図12.9.4 Page Titieの設定

Group EmailはContainer layoutをColumn、Row gapを16、横幅を100%にします。高さを小さい値(50px)にし、Fit height to contentにチェックを入れておきます。

図12.9.5 Group Emailの設定

内部エレメントの横幅は100%にします。

Button Sendの横幅を100%にします。

図12.9.6 Button Sendの設定

Link Loginは横幅を100pxにし、Fit width to contentにチェックを入れます。

図12.9.7 Link Loginの設定

Responsiveタブで確認する

Responsiveタブを横幅320pxで確認すると、以下のように表示されます。

※Group SentEmailのCollapse when hiddenにチェックを入れておいてください。

図12.9.8 Responsive対応例

12.10 パスワードリセット・完了ページのレスポンシブ対応

送信ページ(Group SendEmail)のレスポンシブ適用

Group SendEmailのContainer layoutはColumn、Row gapは32、Collapse when hiddenにチェック、Vertical alignmentはmiddle、Padding Left / Rightに20を設定します。

図12.10.1 Group SentEmailの設定①
図12.10.2 Group SentEmaiの設定②

Group SentEmailの内部エレメントは横幅100%にします。

図12.10.3 Page Titleの設定
図12.10.4 Text SentEmailの設定

Link Loginのみ、横幅100pxにしてFit width to contentにチェックを入れます。

図12.10.5 Link Loginの設定

Responsiveタブで確認する

Responsiveタブを横幅320pxで確認すると、以下のように表示されます。

図12.10.6 Responsive対応例

12.11 パスワード再設定ページのレスポンシブ対応

レスポンシブエンジンを適用する

reset_pwページは、レスポンシブエンジンを適用し、loginページなどヘッダーがないページと同様に設定します。

図12.11.1 reset_pwの設定

メインのエレメントをレスポンシブ対応する

Group ResetPwのContainer layoutはColumn、Row gapは32、Collapse when hiddenにチェック、Vertical alignmentはmiddle、Padding Left / Rightに20を設定します。

図12.11.2 Group RestPwの設定①
図12.11.3 Group RestPwの設定②

Group ReserPwの内部エレメントは横幅100%に設定します。Page Title、Button ResetPwの設定は以下の通りです。

図12.11.4 各エレメントの設定

Group Password、Group PasswordConfirmはContainer layoutをColumn、Row gapを16、横幅を100%にします。

図12.11.5 Group Passwordの設定

それぞれのGroupの内部エレメントは横幅を100%にします。

Responsiveタブで確認する

Responsiveタブを横幅320pxで確認すると、以下のように表示されます。

図12.11.6 Responsive対応例

12.12 退会ページのレスポンシブ対応

レスポンシブエンジンを適用する

withdrawalページは、homeなどヘッダーがあるページと同様に設定します。

図12.12.1 Headerの設定①

Headerをレスポンシブ対応す

Headerは横幅いっぱいに表示させたいので、Widthを100%にします。

図12.12.2 Headerの設定②

Bodyをレスポンシブ対応する

BodyのContainer layoutはColumn、Horizontal alignmentはcenter、横幅は320〜526px、Min heightは100pxにしFit height to contentにチェック、Padding Left / Rightに20を設定します。

図12.12.3 Bodyの設定
図12.12.4 BodyのPadding設定

Group WithdrawalのContainer layoutはColumn、Row gapは32、Collapse when hiddenにチェック、Horizontal alignmentはCenter、横幅を100%にします。

図12.12.5 Group withdrawalの設定

2つのボタンが縦に並んでしまっているので、グループで内包します。

作成したグループ Group Buttonsの設定は以下のようにします。

図12.12.6 Group Buttonの設定

Group Withdrawalに戻り、Min heightを100px、Fit height to contentにチェックを入れます。内部エレメントの高さに合わせて、高さが変更されます。

図12.12.7 Group Withdrawalの設定

Group Withdrawal内部のTextエレメントは横幅100%に設定します。

Group Withdrawal Confirmも同様に設定します。

図12.12.8 Group Withdrawal Confirmの設定

内部のTextエレメントは横幅100%にします。

図12.12.9 Textエレメントの設定

Linkエレメントは横幅100px、Fit width to contentにチェックを入れ、文字幅と同じ横幅にします。

図12.12.10 Linkエレメントの設定

Responsiveタブで確認する

Responsiveタブを横幅320pxで確認すると、以下のように表示されます。

図12.12.11 Responsive対応例①
図12.12.12 Responsive対応例②

12.13 最後に

第12章では、bubbleの新しいレスポンシブエンジンについて学びました。

flexboxの概念は最初は分かりづらいかもしれませんが、幅や高さを自動で変更してくれる柔軟なbox(箱)と考えてください。慣れてくると非常に便利で、現在ではスマートフォン対応している実際のウェブサイトのほとんどでflexboxが利用されています。

最初のうちは一つずつ設定してはResponsiveタブに移動し、どのように表示されるかを確認しながら設定していきましょう。

以上でチュートリアルのアプリケーションの作成が完了しました。

アプリケーションをプレビューするURLにスマートフォンやタブレットからアクセスして、アプリケーションを確認してみましょう。

レスポンシブ対応をする際にコピーされたページや、デフォルトで用意されていたReusable elementsなど不要なものは、ゴミ箱アイコンをクリックして削除して構いません。

アプリケーションの構築に慣れてきたら、以下のような順番でアプリケーションを構築できるようになるとより開発速度が上がります。

  1. データベースの設計をする
  2. 画面レイアウトを構築しながら、エレメントにデータを設定する
  3. ワークフローを構築する
  4. 同じようなレイアウトのページは、既存のページをクローンする

特に業務システムでは画面一覧と詳細ページといった組み合わせが多く存在します。このとき、全てのページレイアウトを作成してからデータの設定やワークフローの設定を行うと同じような設定を何度も行うことになります。同じレイアウトのページが複数存在するときは、1つ作成してからクローンして内容を変更した方が効率的に構築できます。

ぜひ試してみてください。

【未経験・経験者】システムエンジニア募集中!

当社では現在一緒に働くメンバー募集しています!
正社員でシステムエンジニアとして当社のシステム開発業務に携わってみませんか?
未経験者から経験者まで広く募集しているのでぜひエントリーをお待ちしています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私たち株式会社ファンリピートは、ITを通じてお客様の課題解決を行うスタートアップベンチャーです。ノーコード・ローコードを用いたDX支援事業を主軸に、スピード感を持ってお客様のご要望にお応えしています。

2019年の創業から、出版業界・広告業界をはじめ、幅広い業界のデジタル施策を支援。財務管理・顧客管理などの基幹・業務システムから、新規Webサービスなど開発前検証フェーズのシステム導入支援まで、ワンストップでサポートを実施しています。この先も本質的なご提案を通じて、お客様の課題を解決し続けます。

コメント

コメントする

目次