title-feature
Design

グッとくる!デザインの参考になるECサイト特集

こんにちは!新人森田です。
新学期ですねーとか言ってたらあっという間にGW突入ってハヤイヨ!
気がづけばブログの更新さぼっておりましたすみません。

そういえば、無謀と思われていた10kmマラソンは無事に完走出来ました!!
皇居ランも毎週恒例イベントになりつつあり、ハレノヒマラソン部けっこうがんばってます。
ついでにシェイプアップも出来たらいいなと走った後にガッツリ食べながら願ってます。

さて、今回はデザインの勉強ということでECサイトをテーマに見ていきたいと思います。
国内外から気になるものを選りすぐって集めてまいりました!
ではいってみましょう。

豊富な情報がまるで雑貨屋さんのように!

扱う情報量が増えるほど、コンテンツの整理が一苦労。
他サイトとの差別化をはかりつつ、どのように商品を見せるかが腕のみせどころです。

Creema

ec-0

http://www.creema.jp/

こちらはハンドメイド作品の購入・販売が出来るサイトです。
トップバッターにして今回紹介する中でダントツの情報量を誇っています。
でもあまりゴチャゴチャして見えないのはメリハリのきいたグリッドのおかげでしょうか。

ec-0b

トップページの下部です。
スクロールすると[注目の作家]、[RANKING]、[SOLD OUT]、[USER VOICE]、[NEW WORKS]と更にコンテンツが続いています。
商品のジャンルもテイストも違うからか、それぞれに目移りしてどれもクリックしたくなっちゃいます。
( ゚д゚)ハッ!これってまさに、街なかで雰囲気に惹かれてフラッと入った雑貨屋さんの感覚

商品を立たせるために装飾は必要最低限ではありますが、その必要最低限の中にも一工夫を感じます。
ただ情報が多いだけでなく検索機能も豊富でユーザビリティの点でもしっかり作ってあります。
これはウッカリ眺め続けてしまう。。

mon cifaka online store

ec-1

http://mon.cifaka.jp/

岡山市にある雑貨屋さんのオンラインストアです。
オンライン先行であっても不思議じゃないほど充実した内容です。
スクリーンショットでお見せできないのがもどかしい、楽しいスクロール&ホバーアクション!
ロゴや商品周りの◯がぷにぷにふよふよします。

ec-1b

ページを読み込むと新着ニュースが降りてきて、一定時間経つと収納されます。
この新着ニュースと買い物カゴの部分だけ立体的に作ってあって、他と差別化されているなぁと思いきや、ページトップに固定されてスクロールしてもついてくるんです。
なるほど、これならコンテンツに埋もれずに目がいくなあ。
半フラットっていうべきなのか、リッチとフラットをいいとこ取りで使い分けてますね。

プロダクトを魅せるミニマルデザイン!

ECサイトの主役は何と言っても商品です。
実際に触れられないからこそデザインが必要です。
じゃあどんな風に見えたら商品をカゴに入れてもらえるんでしょうか。

sample

ec-2

http://ec-sample.shop-pro.jp/

ちょっとした環境や地域活動をベースに商品を製作販売しているサイトです。
その精神を反映しているみたいに、実直な、整った印象を受けます。
必要以上に文字を出しすぎず、言葉とモノの情報バランスがちょうどいい感じ

ec-2b

商品詳細はこのようなデザインです。
丁寧に撮られた商品写真が、手にとって見るように商品の魅力を物語っています。
そしてテキストが控えめに、けれど的確に情報を提供してくれます。
すごく心地の良い買い物体験が出来そう…これがUXってやつ?!

MAKR

ec-3

http://makr.com/

こちらは先ほどのサイトよりも更にテキスト要素を排除してプロダクト一本で勝負しているサイト。
もちろん必要な箇所にはテキストがありますが、この潔さはすごい。
国内ではこういうサイトはあまりないような気がします。

ec-3b

商品詳細においても徹底されてます。
スクロールすると、それだけで絵になる商品写真がたっぷりとスペースを使って並べられています。
海外のECサイトデザインの◯個のポイントみたいな記事を読んだ時に、「ナビゲーションに言葉を使い過ぎない」的なことが書いてあった気がしますが、それの極みっていうか。
巧みな言い回しじゃなく商品そのものに目がいくし、販売する側も商品そのもので勝負してる所が好感にも繋がりそうです。

canopy

ec-4

http://canopy.co/

はい、出ました。フラットとしか言いようがない完全なるフラットなフラットサイト。
アマゾンの商品をピックアップしてキュレートしているサイトのようです。
この流行突っ走ってます感がたまらなくたまらないです。

ec-4b

カテゴリー別や、商品のテイスト別でソートして商品を見ることも出来ます。
詳細画面もオールフラットでいちいちカッコいいです。
ナビゲーションも洗練されてるし、ばっちりレスポンシブだし、作りたかったものがそこにある感じでなんかくやしい!

まとめ

今やECサイトなんて山ほどありますが、ピックアップしてみた5つのサイトはどこか似た所があるように思います。
そもそもサイトのトーンがホワイト〜グレー基調なのが大きいのかもしれません。
色味は扱っている商品に任せてナビゲーションはミニマルに、ということなのでしょう。
そのような共通したテーマの元でも、表現の仕方は様々でした。

また、紹介した順序はテキスト情報の多さ順だったりもします。
日本のサイトはそういう風潮なのかテキスト要素がかなり多いように感じます。
それは悪いことではありませんが、後半の2サイトから学ぶ部分も大いにあると思います。
リッチデザインとフラットデザイン、テキストとプロダクト、ユーザビリティとミニマルナビゲーション。
バランスが大事だなぁと思いつつ、かっこいいカタカナ並べたかっただけです。

あと、あまり触れませんでしたが、それらが最終的に購入に結びつかなければならないわけで。
うーむ奥が深いです。

若干迷宮入りし始めたので今回はこの辺で。
最近コーディングを頑張ってるので、その中で気づいたことなども書いていけたらなと思ってます!押忍!

標準
title
Design

Javascript修行

こんにちは!新人森田です。
エイプリルフールというイベントもありつつ、今日からいよいよ新年度ですね。
今年度はがっつり活躍するのが私の目標です。
その為にも修行あるのみ!

コーディングの修行をいくつかやったところで、Javascript(以下js)の勉強を再開しました。
というのも、流行っている内に一度はパララックス作ってみたいんです。
いまだに私のjsコードは師匠からのアドバイス9割で出来ているので、少なくとも今の自分のhtmlやcssの知識くらいに、試行錯誤しながら作っていけるレベルにはなりたいところ。

師匠に色々教わった中でも、今回は基礎中の基礎である“jsを書く時の注意点”をまとめてみます。
これを絶対守らなければだめだという訳ではなく、こういったことに気をつけると見やすいコードになるよという目印ですね。
ブログが練習ノートみたいになってますすいません。

Javascriptを書く時の注意点

コーテーション

0401_01

htmlでは<div class=“”>のようにダブルコーテーションを使うのが一般的ですが、たとえばRubyではダブルコーテーションには特別な意味があったりします。様々な言語に共通して使えるという面もあり、特別な理由がない限りはシングルコーテーションを使うと無難そうです。
ただし文字列の中にコーテーションが使われる場合はダブルコーテーションで囲います。例:“I’m …”

オブジェクト

0401_03_03

{}で囲われるオブジェクトは、中身が複雑化しがちなため括弧の内側にスペースをあけて見やすくします。
また、オブジェクト内に複数の要素が入る場合はカンマで区切ったあとにスペースをあけて次を記述します。

配列

0401_05

一方、[]で囲われる配列にはスペースを使わずに記述します。
複数の要素を書く場合はオブジェクトと同じです。

引数

ここではif文の引数という形で見てみます。
関数(function)の時も同じです。

0401_07

ifと()の間にはスペースをあけて、()と{}の間は続けて書くことが多いです。
引数、つまり()内はスペースをあけません

0401_09_09

ifの後にelse ifを書く場合、if(){…}に続いていることを明確にするため}の隣にスペースをあけて書き始めます。

また、条件定義する時に同じ項目を使う場合は左項にまとめたりすると見やすいです。
≦≧はそれぞれ“<=”、“>=”と書きます。

キャメルケースとスネークケース

0401_11

関数定義に使う名前はキャメルケース(上の行)、それ以外の定義ではアンダーバーでつなげるスネークケース(下の行)を使います。

0401_15

また、戻り値が真偽値の時は“is~”という形式でキャメルケースを使って名前を付けます。

計算式

0401_13

計算式を記述する場合は、数字と記号の間にスペースをあけて書きます。
このとき記号は、足す“+”、引く“-”、掛ける“*”、割る“/”を使います。
通常の数式と同じで掛け算割り算が優先して行われるので、足してから掛けたい場合は()でくくります。

まとめ

細かい部分ではありますが、細かい部分が疎かになっているとコードが膨大になった時に散々な目にあうかも知れません。
私が高校大学でやってきた弓道でも、どんなに的に当たっても型が疎かではいけませんでした。
出来る人っていうのはそういう部分からしっかりしてるから結果的に出来てるんじゃないかなと思ったり。

あとjsが思った以上に計算地獄で、もともとない数学の頭をフル稼働してしんどいです。
でも書いたものが稼働してるのを見るとそんなの吹っ飛んじゃうんですけどね!
早くコードがすっと頭に入ってくるようになりたいです。押忍!

標準
title-coding
Design

コーディング修行 クラス名編

こんにちは!新人森田です。
何気にマラソン大会を間近に控えた先週末、はじめて皇居ランしました。
走る前は諦める気満々でしたが、だんだん楽しくなってきて約5km完走できました!
恥ずかしながら人生初の快挙です。

筋肉痛がおさまったらまた走ろうと乗り気でいたら、日曜日に微熱とだるさに襲われるという重傷っぷり。
風邪引いたのかと思いました。
日頃の運動不足がたたりまくっています。。

なんとか良くなった今回は、サイトコピーの番外編な感じでクラス名の扱いについてまとめてみます。

クラス名の扱い

BEMの命名規則

最近取り組んでいるのは、BEMの命名規則を取り入れたやり方です。
師匠はCSSの命名規則をちゃんとやるためにBEMはいい選択だと思うそうです。

BEMとは。
アメリカのある企業でエンジニアと非エンジニア社員がhtml内の要素を正確に把握する為に作られたもので、お互いの意思疎通・情報共有を促進するためにお互いが歩み寄りながら出来たのだとか。
また、後から参入したメンバーにもすぐ理解しやすく、自分で読み返しても分かりやすいという利点もあります。
バリバリのエンジニアさんからすると美しくないようですが、上記のような利点はとても現実的と言えそうです。

BEMという命名規則とSass 3.3の新しい記法
こちらに分かりやすく且つ実践的にまとめてあります。

BEM
こちらが本家。英文ですが概要がつかめると思います。

実践してみる

ルールが分かったところで、前回作ったインデックスページを例にして見てみましょう。
内容を省略して大枠の部分のクラスを取り出すとこんな感じです。

0330-2

hamlという書き方で作ったので<div>などが省略されてます。
インデントで入れ子状態を表していて、閉じタグ不要なのが楽々です。

一番上の.tosakenで囲っているのは、他ページとの名前のバッティングを回避するためです。
以下の部分は実際の表示と照らし合わせて見ると分かりやすいかもしれません。

0330-1b

.sectionで行を分けて、.section__innerで内側の要素を囲っています。
ヘッダー部は.section__inner––header(innerがheaderの状態)と書いて差別化してあります。
コンテンツ部はアイコンを.section__label、内容を.section__contentでまとめて、この枠組みを繰り返しています。

BEMで正確に追おうとすると、例えばロゴは.section__inner––header__logoとなるかと思いますが、大事なのは正確さではなくて分かりやすさです。
ロゴといえばこのページではタイトルロゴしかあり得ないので独立した.logoになっています。
クラス名とスタイルが対応していれば内容はどうであれデザインには反映されるわけで、正確すぎるのも自己満足の極みというか、それを言っちゃうと元も子もないんですが。
要するに誰が見ても分かりやすく書こう!という意識が大事ということです。

悪い例

正解例を挙げたあとで私が最初に書いていたコードを再現してみます。

0330-3

全体の構成的には全く同じで、これにスタイルを当てれば実際の表示も変わりません。
BEMの命名規則にも従った書き方です。

ではなにが良くないのかというと、クラス名が内容に引っ張られすぎている点です。

.header(headerタグでも可)でコンテンツと差別化。
.companyというクラスは、その中身が会社情報であったことから付けました。

それぞれの要素の役割をもっと俯瞰して見てみると、区分けするパーツなのに.companyはちょっとおかしい。
icon、addressといった部分も直接的すぎます。
枠組みはあくまで枠組みとしてクラス名を付けることで、どんなサイトにも適応できるコーディングが出来上がるんですね。

0330-4b

ビフォーアフターはこんな感じです。
スッキリまとまりました!

まとめ

サイトコピーの作業の間に師匠からクラス名のご指摘をがっつり頂いたので、復習の意味も兼ねてまとめてみました。
BEMで追う範囲や汎用的な名付け方を見極めるにはまだ修行が足りないようです。
あと“__”と“––”の使い分けもまだまだ甘かったりします。
この辺はたくさん読んだり書いたり数をこなして慣れていくに限るんじゃないかと思います。
空いた時間でもっとガツガツ書かねばー。

というわけで今回はこの辺で終わります。押忍!

標準
title-coding
Design

サイトコピーしてコーディング修行 その2

こんにちは!新人森田です。
そろそろ桜も咲いてきましたね。お花見したいです。
今年はどのお花見スポットに行こうかなあ。

さて、それでは前回に引き続きサイトコピーしてコーディングの修行をしていきたいと思います。

Tosakenのインデックスページをコピーする

今回もギャラリーサイトから気になるサイトを見つけてきました。
株式会社トサケンのオフィシャルサイトです。
内容はシンプルですが、縦横100%に引かれたこのラインをどうやって表現するかが鍵になりそうです。

0328-1b

構成を考える

はじめ私は縦100%のborderをもった空divをposition: absoluteで置いてから中を作り込んでいこうと考えました。
でもpositionで場所指定すると、何層にも重なった要素のレイヤーの一番上にきてしまいます。
見た目だけ同じになっても、リンクが機能しなかったりとサイトとしては成立しませんでした。

最終的にこんな風に整理してみました。

0328-2b

まずborder-bottomをもった横100%のブロックで要素を横に分割。
その中に横幅が等しいブロックを入れ子にしてborder-left,rightをつけて線がつながっているように見せる。
内容は更にその中に記述していく。
という感じです。

ホバーエフェクトをコピーする

一枚目のスクリーンショットをよく見ると、“NEWS”の上に黒丸が表示されています。
これはホバー時に表示されて、普段は非表示になってます。

森田:
displayで表示切り替えだと要素の高さ分ずれたりするだろうし…
htmlの方に●って書いておいてfont-colorを白→黒にすればいっか!

師匠:
それだと本来必要ないものがhtml上に記述されることになるよね。
こういう時は疑似要素を使うといいよ。

疑似要素とは。
私がよく見るのは“:before”、“:after”あたりです。
float解除とかアイコンフォント用に使っていますが実はよく分からずに使ってました。
contentと併せてコード上に実体はないけど仮の要素を生成する仕組みのようです。
どうやらこれを極めると表現の幅がグッと広がるらしいです。面白そう!

0328-3

その第一歩として:beforeを使って作ってみました。
10pxの円をpositionで位置指定しています。
文字のクリッカブル領域内だと近い気がして、ちょっとはみ出してます。
これが気になる人は文字のpaddingを調整すればボックスに収まると思います。

ちなみに:hoverは疑似クラスといって、要素のスタイル指定を表示するための条件定義のようなもののようです。
これも今まで何気なく使ってきてました。そういうことだったのか。

文字列をタテ幅の中央に揃える

ヨコ幅の中央だったらtext-align: center;もしくはmargin: 0 auto;でそんなに苦労なく揃えられます。
でもそれがタテになるとヨコほど一筋縄じゃなかったりします。
タテの高さを揃える為に使うスタイルはvertical-alignなのですが、これが子要素に効かないからです。

vertical-alignを使って一発で中央揃えしたい場合は“display: table”の出番です。
ブロックをテーブル扱いにすると楽に解決できちゃうんです。

0328-4b

このように親要素をdisplay:table;にして、子要素をdisplay:table-cell;にすれば楽でした。
また、table-cellのブロックを分けることで3行の文字列に対してアイコンが中央に来てくれるという嬉しいおまけ付き。
なるほどこういうやり方もあるんですね。

アイコンはFontawesomeから同じ意味合いのもので代用してあります。

displayスタイルの違い?

これで完成!と思って全体のチェックをしていると、

0328-5b

あれ。borderが1pxずれてる…。

最初はborderの位置を%で指定したからウインドウ幅で誤差が生じているのかと思いました。
(実際ウインドウ幅によって合ったり合わなかったりしてました)
でもどのクラスも同じスタイルを継承してあるので、ずれるはずがありません。

違いがあるとすれば、上のdivはdisplay:block;、下のdivはdisplay:tableだということです。
結果的に全てをdisplay:tableにすることで解決しましたが、
もしかするとそれぞれの座標の出し方がちょっと違うのかもしれません。

ここを直して、フォントの調整もして改めて完成です。

一応レスポンシブになってます。
1230pxくらいのウインドウで比べるとちょっと似てる気がします。

まとめ

というわけで、インデックスページをコピーしてみました。
シンプルなサイトではありましたが、タイトルロゴ・メニュー・コンテンツと役割の異なる要素が盛り込まれていて、前回よりボリュームのある内容になったんじゃないかと思います。

大体ひととおり作れるようになったかなとサクッとやるつもりでいたら、初歩的なことをいくつも気付かされました。
クラス名の付け方も根本的に見直したりして、やっぱりまだ足りないことだらけです。
クラスの扱いに関して気付いたことなどはまた別でまとめたいと思います。

あとは、当たり前といえばそうなんですが、やっぱりやるのとやらないのとでは全然違います。
出来そうなところから少しずつでもコーディングしてくのがホントに大事だなと思いました。
手をうごかしてこー。おす!

標準
title-coding
Design

サイトコピーしてコーディング修行 その1

こんにちは!新人森田です。
入社してからあっという間に3ヶ月が経ちました。
まだまだ知ることが山積みすぎますが、ここからは更に気合い入れていきます!

そして久しぶりのブログ更新ですすみません。
ネタ探しに行き詰まって違うことしてました。
何をしていたかというと、サイトコピー的なことです。
サイト模写はデザインのスクリーンショットを撮ってPhotoshopでトレースし、間の使い方だったり平面的な勉強が出来ます。
サイトコピーはコーディングで同じようなサイトを作るので、模写の効果+コーディングの腕も上がるんじゃないかという目論見です。

仕事で少しずつコードを触るようになりちょっとしたアイコンなどを画像として切り出して処理していたら、師匠から画像を使わないやり方を教わって目からウロコだったり。
ギャラリーサイトでかっこいいなーと思ったサイトをレスポンシブにしたくなったり。
そんな経緯があって始めてみました。
参考元の作り方を批判したいわけじゃなく、どうやったらより良く作れるかの練習です。
作業する上でのルールもなんとなく決めてみました。

サイトコピーのマイルール

(コード読み解くのめんどくさいから)出来るだけ元のコードは見ない
色とかフォント情報などは参考にしますが、自分でやり方を模索するためです。

(Photoshop立ち上げるのめんどくさいから)出来るだけ画像を使わない
画像を使わないほうが軽いし、修正も楽かもしれない。という言い訳です。使うときは使います。

こんな感じで、ここからはどんな感じで進めたのかをご紹介。

制作準備

制作環境を整える

Bootstrapの回と同様、やっぱり最初は制作環境です。
自分でフォルダ作ってローカルで確認しつつっていう感じでも出来ますが、Compassなどの導入・scss使うにはscout起動必須、などなど結構手間だったりします。というか最初はそうやってました。
が、そんなやり方をしなくてもあるんです。便利ツール。

Middleman

どん!師匠に教えていただいたMiddlemanという静的サイトジェネレータです。
これはRubyをベースに作られているため、まずRuby環境を整える必要があります。
やり方はRubyを始めようで詳しく紹介しています。

最初が少しむずかしくても、Middlemanを導入すればちょっとコマンドを書くだけで至れり尽くせりな環境を作ってくれます。

0327-4

サーバーも立ち上がるみたいだし、練習するにはこの上ありません。

コピーしたいサイトを探す

ギャラリーサイトにも色々あるし、それをまとめたものもググればすぐ出てくるんですが。
あえて挙げるとしたら、このへんがいいかもです。

io3000
どこのまとめサイトでもオススメされてる使い勝手の良いサイトです

muuuuu.org
最近はやりの1ページ完結型の縦長サイトがたくさんあります

これらは国産サイトのギャラリーですが、そのうち海外のデザインも参考にする予定。
おそらく1つはコピーしたいものが見つかったと思うので、早速作業にうつりましょう。

私の作ったものを例に挙げながら作業の様子をお伝えしていきます。

Chowder’sのコンテンツをコピーする

まず1つめに選んだのは、Chowder’sというスープ屋さんのサイトの一部です。
メニューラインナップの下に、本日の名言とおすすめメニューの紹介があります。
このデザインがシンプルなのに可愛くて、すごく気に入ってしまいました。

構成を考える

まずどんな構造かを調べてみます。
コンソールで背景画像を消してみると、要素のひとつひとつがよく見えます。

0327-1

見てみると、見出しがそれぞれ画像だったので、cssだけで作ってみようと思います。

0327-2

まずはこんな風にボックス要素の構成を決めます。

コーディングする

画像の代わりにcssのborderを使うことで周囲の線を処理。
ポストイットに見せかけた黄色いボックスも頑張ればいけそうですが、さすがにそこまでやるとコードがごちゃごちゃしそうなので画像を使います。
Google Fontsを使って見出しのフォントを似せれば完成です。

↑スクロール出来ます
日替わりコンテンツのため、引用したスクリーンショットと内容は違ってます。
スープの画像のところは角丸にしたdivにbox-shadowを使ってそれっぽく。
完全再現とまではいきませんがだいぶ近いはず。

まとめ

今回の例はコンテンツの1部なのであまり複雑なことはしていません。
でもcssだけでもフラットなデザインなら画像なしで結構いけちゃうことが分かりました。
英字ならGoogleFontsで表現の幅もぐっ広がりますね。

というわけでウォーミングアップ編は終了です。
ここから徐々にコピーする範囲をサイト全体に広げていきたいと思います。
次回もお楽しみにー!

標準
title-feature
Design

スタイリッシュ!デザインの参考になるNYのホテルのWebサイト特集

こんにちは!新人森田です。
今日こそは暖かいんじゃないかと思って外に出ると期待を裏切られる毎日です。
むしろ雪が降りました。
最近くしゃみがよく出ますがこれはまだ花粉症ではないと信じてます。

今回はいつもと趣向を変えて、デザインの参考になるWebサイトを特集してみます。
暖かくなったら重いコートを脱いで、お出かけもはかどりますね。
お花見やいちご狩りと日本にも素敵スポットは沢山ありますが、せっかくならNY行っちゃう?!

というわけで特集内容はこちら!
(NY旅行にも役立つかもしれない)デザインの参考になるNYのホテルのWebサイト特集

ではいってみましょう。

堂々たる高級感!

ホテルから連想されるワードとして挙げられるもののひとつに「高級感」があります。
歴史ある一流ホテルにはそれにふさわしい雰囲気作りが必要です。

THE HIGHLINE HOTEL

hotel-1

http://www.thehighlinehotel.com/

これぞ正統派といえそうな佇まいです。
余計な装飾などは加えず、ナビゲーションはモノトーン。
丁寧に撮られた写真と、饒舌すぎないコンパクトにまとめられた情報から上質さを感じます。

THE NOMAD HOTEL

hotel-2

http://www.thenomadhotel.com/

こちらはまずページの黒枠に目がいきます。
フィルム写真を見ているかのような感覚がします。
コンテンツそれぞれにフルサイズの画像が使われているので、その世界観に引き込まれてしまいます。
また、米仏伊独日の言語にローカライズされていてるのも嬉しい。

フォント選びが素敵!

「高級感」といえばかっちりとしたセリフフォントを想像しがちですが、それだけではスタイリッシュとはいえません。
上品かつオシャレに演出されたサイトを見たら旅行したい衝動が一層強まります。

WYTHE HOTEL

hotel-3

http://wythehotel.com/

今回紹介した中で唯一きちんとレスポンシブしていたサイトでした。
トップページを見るとカジュアルめな印象を受けますが、本文にはセリフ体が使われていてあくまで見出しの役割のようです。
メリハリがあって好きなテイストです。
提携している(?)レストランのページもオシャレ。

THOMPSON HOTELS

hotel-4

http://www.thompsonhotels.com/

左上に予約ボックスが固定されていながらも、ページ全面を使ったレイアウトにはスタイリッシュとしか言いようがありません。
予約ボックスの横のナビゲーションが実はパンくずみたいな機能も果たしていてシビれました。
各要素のポジションが%で定義されていたので、ある程度の画面サイズの変化には耐えられそうでした。

REFINERY Hotel

hotel-5

http://www.refineryhotelnewyork.com/

今までのサイトとは違って、ギャラリーサイトみたいな、雑誌を読んでいるみたいなレイアウトです。
黒背景に写真の色が際立っています。
全体の雰囲気に合わせた手書き風フォントがかっこよかったり、でもどこか親しみやすい感じがしたり。

リゾート感あふれてる!

異国への旅はまるで非現実の世界に来たかのようです。
あふれるリゾート感もまた、もうここ行くしかないわって思っちゃう理由のひとつです。

THE Jade Hotel

hotel-6

http://www.thejadenyc.com/

indexページと各コンテンツページの見せ方に差があって分かりやすいです。
随所に使われている花モチーフのパターンが全体の雰囲気を引き立たせてくれています。
差し色が赤だったりと色使いが絶妙。

THE JAMES HOTELS

hotel-7

http://www.jameshotels.com/

見るからに開放感あふれちゃってます。
こういう広々のびのびとした空間の使い方は海外ならではな感じ。
NYのホテルっていうテーマなのにマイアミのビーチに目がいきまくってしまいます。
これはあれですね、旅行業界におけるシズルというか。今すぐ旅立ちたい!

まとめ

いかがだったでしょうか。
コンパクトかつ使いやすいナビゲーション・迷わないUI設計・フルスクリーンでスライドする写真などなどスタイリッシュさ満載で、さすがWeb先進国という感じでした。
何よりやっぱり毎回思うけど海外の写真とか英語はずるいです。
でも日本にも日本の良さがあって、日本という文化圏に合わせた、使いやすくスてタイリッシュなWebサイトってきっとあるはず。
今回紹介したようなWebサイトに刺激とエッセンスを貰いつつ、どうやったらそれが実現出来るのかを日々模索します。押忍!

標準
jquery-title2
Design

jQueryを使ってみよう その1(動く目をつくる)

こんにちは!
昨日会社のヒーターでコートの袖を焦がしそうになった新人森田です。
わたあめみたいなにおいがしました。
暖かくなるのはいつなんでしょうか。

jQueryを使ってWebサイト作りたいなあとずっと思っていたんですが、前回Bootstrapでついに使うことが出来ました。
でも便利すぎたおかげで、ちゃんと使えるようになったわけではありません。
これは勉強するしかないなと思い立ちました。
ら、師匠がJavascript基礎講座を開いてくださいました。

教わりながら簡単なJavascriptを作ってみたので、
今回はその作り方を振り返りながら頭の中を整理してみたいと思います。

データのルール

関数と変数

Javascriptにはそれ自体が動作をもっている関数と、動作をもっていない変数があります。
変数はscssでも使ったことがあるし何となく使い方も分かるような気がします。
関数にはさらに“input = 引数(ヒキスウ)”“output = 戻り値、返り値”というのがあって、引数を与えて出てきた戻り値を色々と処理するわけです。

文系に進んで数学から逃げてきたと思いきや、まさかここで関数と出会うことになるとは。。
というか、そもそもプログラミングが数学っぽいものだったりしますね。
Javascriptを多少なりとも理解することで数学を克服したと思うことにします。

データ型

扱うデータの型は5種類です。
それぞれ記述の仕方によって区別されます。

  • 1  :int,integer,number(整数)
  • ‘…’    :string(文字列)
  • […] :データの順番が保持される配列
  • {…}   :データを格納するオブジェクト
  • 真偽値:true,false

これらのデータ型を使い分けていきます。

jQueryを使ってみる

予備知識がすごくアバウトですが、あとは実際に書きながら覚えていきましょう。
今回はjQueryを使って「マウスを追いかけて動く目」をつくってみます。

最初に顔のベース画像を用意します。
ティムバートン作品を意識してみました。

0305-1

 html,cssを書く

Webページ上にデータがないと動かせないので、htmlとcssを使って簡単なページを作ります。
この時のポイントは、目が動く範囲のdivを作っておいて、その中に黒目の部分を入れるということです。

0305-2

こんな感じです。ついでに口も作っておきました。
目や口はpositionで位置を調整してあります。
円形に可動範囲を限定しようとすると難しい処理が必要とのことで、ちょっと目ん玉飛び出しますがご了承ください。

jQueryを前提としているため、htmlファイルには自分で書くjsファイルの他にjQueryのjsファイルにもリンクが必要です。

jsを書く 1

準備が整ったところでjsファイルをいじりましょう。
今までノータッチだった未知の領域に一歩踏み出しちゃいます。
“main.js”と名付けて作業を始めます。

htmlと同じようにざっくりした部分から詳細設定を書き込んでいきます。

まずは実行タイミングを決めます。
青い文字は自分の覚え書き的なものですが結構主張しちゃっててすみません。

0305-3b

“$()”の()内に引数を入力します。
ここでは引数が“function”=無名関数というもので、“function(){}”の()に仮引数、{}には関数の中身を書き込むという形式になっています。
jsさんなかなか複雑です。

上の段落の記述で.readyと同じようにページ読み込みのタイミングでjsが実行されます。
そのオブジェクトの中に、次にどういう動きをするかを設定します。
また、それが正しく動作しているかを“console.log”を使って確認をします。

下の段落は、
「body内でマウスを動かすとtestという文字列が表示される」
という動作を定義してあります。

0305-4

bodyのwidthとheightが100%なので、body=画面となり、画面内でマウスを動かすと動かした分“test”が表示され続けることになります。

というわけで1つめはクリアです。

jsを書く 2

次はマウス(ポインタ)の位置に応じて目を動かしてみます。

目を動かすということは目のcssを変更するということです。
目のcssがどこにあるかをコンピューターに指示するためには、
目に割り当てたclassをセレクタに入れて、あらかじめjQuery化(jQueryが処理しやすい変数に変換)しておくことで動作がスムーズになります。
なのでページ読み込みと同時に“var”を使って変数定義しておきましょう。
これをしなくても動作はしますが、いちいちコンピューターがclassを探すことになって重くなる要因となります。

また、マウスの位置を取るには“mousemove”というイベントを使用します。
“mousemove”のイベントオブジェクトに格納されている“clientX”“clientY”を使うことでマウスの座標を知ることが出来ます。
そしてイベントオブジェクトには変数の名前を付けます。
“e”などに略されることが多く、今回はそれにならってfunctionの引数に“e”を書き込み、“e.clientX”という風に使います。

0305-5b

では“e.clientX”を使って左右の動きを付けてみます。

画面の中央に配置した顔を基準にしてどこが左でどこが右かというと、次のように考えます。
ウインドウ幅の半分の座標を中心として定義して、その増減で左右を認識させます。
後で上下の動きをつける時にも使うので、ウインドウ幅も最初に変数にしておくといいかも知れません。

“center_x”を定義したら、if文を使って「中心より左ならこう」「中心より右ならこう」と動くための条件を分けます。
ここでは(e.clientX >= center_x)という条件を使っています。
分かりやすく書くと「e.clientX ≧ center_x」つまり「中心より右」ということです。
それ以外を“else”として2つに条件分岐しています。

条件が決まったら、どういう動作をするかを書きます。
if文の中はどういう意味かというと、
変数化しておいた“$leftEye”“$rightEye”のcssを
「マウスが中心より右だったら左から70pxの位置に」
「マウスが中心より左だったら左から0pxの位置に」
変更する、という定義です。

なんでcssの値がこうなるかというと、

0305-6b

目のエリアが100×100px、目の大きさが30×30pxということを考慮して計算した結果の値なのです。

これでx座標(左右)の設定が出来ました。
xをyに変換して同様に書けば上下の設定も完了です。

たとえばマウスを画面の左上に動かしてみると、こんな顔になります。

0305-7

目が飛び出てるとギャグっぽくてこれはこれでありかも。

もし思った通りに動作しなかったら、プログラムエラーが出ていないかを確認してみてください。
アラートさんは常に冷静に何が足りないかを教えてくれます。

jsを書く 3

ここまでで、マウスの位置に応じて目が左上、左下、右上、右下に飛び出るというプログラムが書けました。
せっかくだからマウスが顔の範囲に入ってきたら目を真ん中に表示させてみます。

0305-8

if文の中にもう1つ条件分岐を書き込みます。

“else if”を使って、「e.clientX≧center_xより150px少ない値」&「e.clientX≦center_xより150px多い値」の両方の条件を満たした場合の動きをつくります。
±150pxの理由は、顔のwidthが300pxで、中心線から考えると150pxずつ幅があるからです。
この時にcssを左から35pxに変更することで目が中心に来ます。

上下も同様に、顔のheightが400pxということを踏まえてcenter_yから+200px、-200pxで条件と動きを設定します。

0305-9

これで、上図の青い範囲内にマウスが来た時に目がそれぞれの真ん中の位置にくるようになりました。

まとめ

慣れないjs構文を書くと、
文字列にすべきところにコーテーションがなくてエラー
閉じ括弧忘れてエラー
スペルミスしてエラー
と、初歩的なミスばっかりしてたような気がします。

でも実際動いてくれるのを見ると楽しい!
思い通りに使えるようになったらもっと楽しいんだろうなと思います。

今回作ったJavascriptは下記のリンクで実際に動かせますので動作確認したい方はどうぞ!
上図の青い範囲が重なっている部分(顔の範囲内)にマウスが来た時だけする動きがあったりしちゃうかも?

http://nnnzzz000.github.io/move-eye/

これからはjsももっと読んだり書いたりしていこうと思います!押忍!

標準
title-2
Design

Bootstrapを使ってWebサイトを作ろう その5

こんにちは!新人森田です。
気付いたらもう3月で、しかも3月3日ひな祭りです。
せっかくだしひなあられは食べておこうと思います。

ハレノヒブログのプチリニューアルはその後も少しずつ進行してたりします。
たとえばここ!

0303-1

タグの使用頻度に応じて強弱をつけました。
ブログの記事を読む際にこの辺も使っていただけたらと思います。

それからここ!

banner

さり気なく真ん中バースデーのバナーもおいてあります。
友だち検索機能が付いたりと日々成長中です。
DLがまだの方はこちらからもどうぞ!

では今日の本題に入りたいと思います。
BootstrapでWebサイトを作ろう1〜4ではhtmlとcssのみで制作しましたが、今回はそこにJavascriptを使ってみます。
BootstrapがあればJavascriptも怖くない!

Javascriptを導入する

JavascriptとはWebページに動きをつけるためのプログラミング言語です。
Bootstrapにはあらかじめjsフォルダの中に“bootstrap.js”が用意されているので、まずはこれを使うタグを書きます。

0303-4

<script>で“bootstrap.js”だけ書いたらjqueryがないと動かないとシステムエラーが出てしまいました。
jqueryのサイトから“the compressed, production jQuery 1.11.0”を頂いてjsフォルダの中に保存し、“bootstrap.js”の前に同様に書き込みます。

これで導入準備は完了です。

カルーセルを作る

メインビジュアルの部分をカルーセルにします。
横にスライドする動きを使って、複数のコンテンツビジュアルを表示するのがカルーセル(意味は回転木馬)です。

0303-5

↑はサンプルコードをほぼそのままコピペしたものですが、カルーセルはこんな風に“Indicators”、“Wrapper for sliders”、“Controls”の3つのパーツから成り立っているようです。カルーセルにのせる画像を、元の画像も合わせて3種類にしてみました。

0303-2

おお、見事にスライドしてます。
“jquary”と“bootstrap.js”に動き方などが設定してあるおかげで、htmlをいじるだけでもう出来ました。

ドロップダウンを作る

次はメニューバーにドロップダウンのボタンを付けてみます。

0303-7

上に囲ってある“Toggle navigation”というのは、スマホサイズまで縮めた時にメニューが収納されるアレです。
そして下の“dropdown”の部分がドロップダウンのボタンを設定している箇所です。

0303-3

ちゃんと表示されてますね。

画面幅を縮めていくと…

0303-6

メニューがきちんと収納されました。

まとめ

Javascriptの文法をまったくといっていいほど知らない私でも簡単にJavascriptを使えてしまいました!
本当におそるべしjquery&Bootstrap。
今回はサンプルコードをコピペして動作確認しつつ微調整というシンプルな作業でしたが、こだわろうと思えばもっと作り込めそうです。
今後jqueryとかもっと使えるようになるために、まずはBootstrapのJavascriptを色々使ってみようと思います!押忍!

標準
blog-0221b
Design

ブログをプチリニューアルしました

こんにちは!新人森田です。
今日はアプリ博2014を見学してまいりました。
ユーザーでいるだけでは気付かないようなアプリの裏側を垣間見ることが出来たり、
名刺交換させていただいたりととても良い刺激になりました。

マーケットに山ほどあるアプリの中から選んでもらえるものを作れるように
デザインももちろんですが技術の理解も深めていきたいと思いました。

ブログプチリニューアル

さて、ハレノヒブログのリニューアルから早くも約1ヶ月が経ちました。
実装された時は嬉しいだけだったんですが、自分たちで実際に使ってみると改善点がちらほら。
修正箇所を挙げてどう進めていこうか相談していたところ、ちまちま直していくよりは思い切って作り直そうという結論になりました。

早速デザインの見直しをして、昨日プチリニューアルしました!

今回は、様々な制作会社のブログを観察しながら制作を進めました。
その作業の中で気付いた点をいくつかまとめたいと思います。

他ブログとの比較をして気付いたこと

デザインルールを意識する

リニューアルするにあたって、「デザインルール」をもう少し意識してみました。

ハレノヒブログの場合はヘッダーを水色・背景をうすいグレー・コンテンツは白地に黒文字としています。
そのルールに従って、各サブカテゴリのタイトル部を水色の帯にしたらメリハリがつきました。

また、今まで白だったフッターを濃いめのグレーにしてフッターとしての存在感を出してみました。
さらにそれに従って、記事の下のページングを同色にして同類っぽさを出してます。
濃いめのグレーに黒文字だと印象が重すぎる気がして、文字をグレーにしたところもちょっとしたポイントです。

ゆったりとしたマージン

ブログといえば情報量が多いし、いかにコンパクトに詰め込むかと考えていたのがそもそも間違いでした。
情報量が多いからこそ1つ1つの要素に広めの幅を取ることで、どこを見るべきかが分かりやすくなるんだと思います。
今までほとんど5pxだったmarginやpaddingを部分的に15px〜30pxくらいにしてみたら、窮屈感がなくなって広々と見やすくなりました。

フッターエリアが広い

フッターといえば会社のロゴやリンクやコピーライトを表示するだけの簡潔であまり幅を取らないエリア、というのが今までの認識でした。
でも改めてフッターに注目してみると、工夫する余地は十分あるんだと気付かされました。

今回フッターエリアを縦に3分割して使ってみることに。
会社情報がちょっと豊かになって、名前の文字列だけじゃないものも伝わるような気がします。

ソーシャルボタンの設置位置

これは一覧ではなく記事のページについてです。
前はツイートボタンなどは記事の頭の部分に設置していたんですが、これも良くありませんでした。他のブログでなぜソーシャルボタンを記事の上下に2カ所設置しているのかを改めて考えると、

上部:その記事の人気指数を表して、読みたくさせる
下部:記事を読み終えた後にボタンを押す、という流れをつくる

ということなんじゃないかと思います。

なのでソーシャルボタンを記事の上下に設置してみました。(押していただけるとやる気倍増します)

まとめ

結論からいえばブログはあくまでブログなので、パーツの寄せ集めなんですよね。
個性を出す部分はある程度決まっていたり。

でも色々見ながら作り直してみることで、思い込みで作っていたことに気付かされたりもしました。

まだまだ改良点はありますが、プチリニューアルしたハレノヒブログをよろしくお願いします!

標準
title-2b
Design

一日でゲームデザインをする

こんにちは!新人森田です。

皆様『イケメンばかりにチョコは渡さない』は楽しんでいただけていますか?
今回はゲーム制作の裏話をデザイナーサイドから書いてみたいと思います。
デザイナーサイドとかニヤニヤしちゃう響きです。

ゲームの素材を作る

まずはどんなゲームを作るか、企画会議です。

バレンタイン前々日に山形師匠の発案によりゲーム制作が決まり、色々とアイデアを混ぜ込んでゲームの仕組みを考えました。
…てことは制作期限1日ですか!
使用ツールはPhotoshopでどこまでいけるかやってみます!

世界観づくり

ゲームの企画が固まったら、どんなビジュアルにするかイメージを膨らませます。
登場人物はイケメンと女の子。場所は多分日本。時代はなう。

0214-4

手書きで色々とスケッチしてみました。お色気オネーサマはボツです。

0214-3

スケッチを元にPhotoshopで清書ってほどでもないラフを書きました。

でも今回のゲームはドット絵を使いたいので、本番はこれからです。

ドット絵を作る 1

ドット絵と言われても、にわか知識しかないしちゃんと作るのはこれが初めてです。
期限内に出来上がるのかも怪しいところ。

でもとにかくやらなきゃ始まらない、ということでここからは面白法人カヤックさんのデザイナーブログを参考にしました。

0214-5

まずさきほどのラフを縮小して荒くします。

その上にレイヤーを作って1ピクセルの鉛筆ツールで清書します。
普通に絵を描く感覚でなぞってから、いらないドットを消すという感じで作業しました。
0214-6

ブログ通りにやっただけでもうそれっぽくなってきました。

輪郭線のレイヤーの下に色塗り用のレイヤーを作って色を塗っていきます。
以前どこかで「ドット絵はビビットな色の方がいい」的な情報を見かけたような気がするので、一度色を置いてから彩度を上げました。あと、子供向け戦隊モノみたいに一定の色相を使った方がキャラのイメージが湧くかなと思って、ある程度系統を決めて塗ってみました。

0214-7

青系コーデにピンクのシャツで女子力アッピルです。
ビビットな塗り分けの為、陰は焼き込みカラー、ハイライトはオーバーレイに設定してあります。

見よう見まねでしたが、なんとか出来ちゃいました。
人間やろうと思えば出来るんですね。

ドット絵を作る 2

この子が歩いてくれなければゲームになりません。
先ほどのドット絵とにわか知識を元に動きをつけてみます。

0214-8

こうして大きくすると粗さが目立ちますすみません。

歩くのは足の動きが一番大事ですが、頭の高さや肩の高さ(=チョコの高さ)、髪の揺れを表現すると歩いてる感が出るかなとやってみました。微妙に頬のテカリなども変えてあります。
この辺は昔からのゲーマー気質が功を奏しました。
この調子で他のキャラも1〜2ピクセルずつパーツをずらして動きを作りました。

けど、ゲーム内では動きが速すぎてあんまり分からないというかなしみ。

背景を描く

キャラが出来たら背景を作ります。
背景は師匠の一言で「吊り橋」と決まっていたので吊り橋を描きます。
背景に取りかかった段階でもうあまり時間がなく、というかキャラはまだしも背景なんて全然描いたことがなくて、それでもなんとか間に合わせられないものかと頭をフル回転させました。

背景を描く上で大事なのは、「それっぽさ」を出すことかなと思いました。
そんなにしっかり書き込まなくてもそれっぽさがあれば人が勝手に脳内補完してくれる。はず。

0214-10

まずペン先を平たくした適当な太さのラインを引きます。

0214-9

あとは矢印の通りにざっくざっく描いていったら出来上がり。
木の質感はペン先を平筆にして木目っぽくしています。
ほとんどひたすら縦線を描くだけという突貫工事でごり押しました。

0214-11

一番しっかりしてる背景の雲はフリーのブラシ素材です。
「リアルな雲 ブラシ」あたりのワードで検索すると色んなブラシが出てくると思います。
使うか分からないけど一応DLしておいたのが役に立ちました。

各パーツを作る

その他に作ったものは以下の通りです。

  • タイトル兼スタートボタン
  • 得点の背景パーツ
  • 制限時間の背景パーツ
  • 結果表示の背景パーツ

このあたりはほとんど一発描き…
プログラミングと同時進行で足りないパーツを教えてもらって作る、という連携プレイでなんとか1日で仕上がりました。

ドット絵公開

最後に、作ったドット絵を大公開しちゃいます。
地味に表情とかこだわってたりします。
意外と悲しい顔と嬉しい顔って使い回せることも判明。

girl-blueboy

girl-pink

それぞれ「通常・チョコ渡せた・チョコ渡せなかった」バージョンです。

今回も本当に良い勉強になりました。
これで簡単なゲーム作りはばっちこい!と思いたいです!

『イケメンばかりにチョコは渡さない』

http://www.halenohi.jp/

標準