<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>Bootstrap &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/bootstrap/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>「Web Componentsが来る！CSS設計はどうなる？」―CSSのエキスパートに聞いてみた！</title>
		<link>/shumpei-shiraishi/22820/</link>
		<pubDate>Mon, 17 Apr 2017 01:30:36 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[デザイン]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Compass]]></category>
		<category><![CDATA[WebComponents]]></category>

		<guid isPermaLink="false">/?p=22820</guid>
		<description><![CDATA[こんにちは、編集長の白石です。 Safari 10.1からCustom Elementsが使えるようになったり、Microsoft EdgeもWeb Componentsの実装を約束していたりと、Web Componen...]]></description>
				<content:encoded><![CDATA[<p>こんにちは、編集長の白石です。<br>
<a href="https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.1からCustom Elementsが使える</a>ようになったり、<a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/04/19/microsoft-edge-and-web-components/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft EdgeもWeb Componentsの実装を約束していたり</a>と、Web Componentsの足音は刻一刻と迫ってきています。</p>

<p>そんな時代に、Web開発はどう変わるのか？まずはCSS設計というところに着目して聞いてみたいと思い、先日「Web Components時代のCSS設計」という座談会を開催し、エキスパートの方々にお話を伺ってみました。</p>

<p><img src="/wp-content/uploads/2017/04/DSC00139.jpg" alt="" width="640" height="405" class="alignnone size-full wp-image-22884" srcset="/wp-content/uploads/2017/04/DSC00139.jpg 640w, /wp-content/uploads/2017/04/DSC00139-300x190.jpg 300w, /wp-content/uploads/2017/04/DSC00139-207x131.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>ゲストのエキスパート紹介</h2>

<h3>高津戸 壮さん</h3>

<p><img src="/wp-content/uploads/2017/04/6ec41b91e4d4403fc55b20ee707032df.jpg" alt="" width="300" height="240" class="alignleft size-full wp-image-22890" srcset="/wp-content/uploads/2017/04/6ec41b91e4d4403fc55b20ee707032df.jpg 300w, /wp-content/uploads/2017/04/6ec41b91e4d4403fc55b20ee707032df-207x166.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /><strong>株式会社ピクセルグリッド フロントエンドエンジニア</strong><br><br><span style="font-size: 90%;">Web制作会社、フリーランスを経て、株式会社ピクセルグリッドに入社。スケーラビリティを考慮したHTMLテンプレート設計・実装、JavaScriptを使った込み入ったUIの設計・実装を得意分野とする。著書に『改訂版 Webデザイナーのための jQuery入門』がある。CSS Nite 2011ベストセッションにおいて、全170セッションの中から、ベスト10セッションに、CSS Nite 2013ベストセッションでは、全278セッション中、ベスト20セッションに選出。</span></p>

<p><br></p>

<h3>小原 司さん</h3>

<p><img src="/wp-content/uploads/2017/04/076096f5cfa6bb724d6363f2fd4e7000.jpg" alt="" width="300" height="240" class="alignleft size-full wp-image-22891" srcset="/wp-content/uploads/2017/04/076096f5cfa6bb724d6363f2fd4e7000.jpg 300w, /wp-content/uploads/2017/04/076096f5cfa6bb724d6363f2fd4e7000-207x166.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /><strong>株式会社ピクセルグリッド UIデザイナー</strong><br><br><span style="font-size: 90%;">デザイン事務所で広告デザインの基礎を学び、2000年に独立。2007年頃からWebデザインにも取り組み、クロスプラットフォームアプリのデザイン、画面設計、実装に携わる。現在はその媒体の特長を活かしたグラフィックデザインに励む。マンセル色相環とムーン＆スペンサー配色理論を採用した配色アプリ『HUE360』の開発を行っている。著書に『改訂版 Webデザイナーのための jQuery入門』、『ノンデザイナーズ・デザインブック[第4版]』。</span></p>

<p><br></p>

<h3>榊原 昌彦さん</h3>

<p><img src="/wp-content/uploads/2017/04/DSC00022.jpg" alt="" width="300" height="240" class="alignleft size-full wp-image-22892" srcset="/wp-content/uploads/2017/04/DSC00022.jpg 300w, /wp-content/uploads/2017/04/DSC00022-207x166.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /><strong><strong>一般社団法人リレーションデザイン研究所 代表理事</strong></strong><br><br><span style="font-size: 90%;">大学院卒業後、一般社団法人リレーションデザイン研究所立ち上げ。その後、まちづくりの産業化を目指す一般社団法人エリア・イノベーション・アライアンスにも参画し、全国の様々なまちづくりの現場に携わる。事業の構造的転換を図り、Webを導入。事業で用いるWebアプリやシステムの開発を行っている。関西フロントエンドユーザーズグループを中心に活動し、CodeIgniter、Ionic2、Onsen UI 2についてもSlackやTwitterを通じて関わる。</span></p>

<p><br></p>

<h2>CSS設計の遍歴を探る…3年前、どうしてましたか？</h2>

<p><strong>白石</strong>: 今回の座談会は「Web Components時代のCSS設計」と題し、Web Componentsが一般的に普及した未来の話を主眼として、そこに至るまでの流れも重視したいと思っています。</p>

<p>過去のCSS設計から現在の皆さんのベストプラクティスの話をもとに、未来に向けた話も聞いていきます。 まずは3年前くらいから振り返っていきたいのですが、当時のCSS設計はどんなふうにしていましたか？</p>

<p><img src="/wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993.jpg" alt="" width="640" height="427" class="aligncenter size-full wp-image-22901" srcset="/wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993.jpg 640w, /wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993-300x200.jpg 300w, /wp-content/uploads/2017/04/d76a6c32875387d7e4434ff5f8e4e993-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>榊原</strong>: ちょっと調べてみたのですが、3年前というとiOS7がフラットデザインを採用した年なんですよね。</p>

<p><strong>白石</strong>: おお！そう聞くとずい分昔な気がしますね。</p>

<p><strong>榊原</strong>: そう、そしてCSSまわりの話でいうと、Bootstrapがフラットデザインを採用しました。UIデザインの潮流が大きく変わった年でもあります。</p>

<p><strong>白石</strong>: なるほど。そういう状況下で、榊原さんはどのようにデザインを行っていましたか？ UIのビジュアルデザインも、設計という意味でのCSS設計も含めてお聞かせください。</p>

<p><strong>榊原</strong>:その頃は、デザイナーがPhotoshopなどで作ったデザインカンプを元に、「ピクセルパーフェクト」で書き起こしていました。 最近は、レスポンシブなWebサイトもわりと当たり前になったおかげで、ピクセルパーフェクトってあまり聞かなくなりましたよね。</p>

<p><strong>白石</strong>: なるほど。高津戸さんはいかがですか？</p>

<p><strong>高津戸</strong>: 実は私と小原は3年前も今も、やっている案件自体は変わらないので、やり方自体もそれほど変わっていないんです。どういうふうにCSS設計を行っているかというと、デザインを様々な単位に分割してCSSのクラスにまとめ、そうしたパーツを組み合わせたり再利用したりしながらサイトを構築していく。レゴブロックを組み立てるような要領です。</p>

<h2>やはり話題に上がります、OOCSS</h2>

<p><strong>白石</strong>: それは、OOCSS (オブジェクト指向CSS)の考え方と関係しているのでしょうか？</p>

<p><strong>高津戸</strong>: そうですね…。OOCSSについて話すと長くなるので、詳細は割愛します(笑)。OOCSSはヤフーのエンジニアだったニコール・サリバンが提唱した手法で、サイトを構成するパーツを、レゴのような小さい単位のモジュールの集まりで考えるというものです。その中で、オブジェクト指向プログラミングの考え方を応用して、似通ったモジュールをクラスの継承のような実装で実現するというものです。</p>

<p><strong>白石</strong>: なるほど。以前から誰かに聞きたかったのですが、例えば「テキストを右寄せにする」ための「align-right」というクラス、もっというと「8pxのマージン」をつけるための「margin-8」みたいなクラスを作って組み合わせる、というのもOOCSSと言えるんでしょうか？ 正直、あまり好みではないのですが…。</p>

<p><strong>高津戸</strong>: それがOOCSSかどうか、でいえば「そうだ」と言えるとは思います。ただ、OOCSSがCSSを構造的に扱おうという考え方が広く広まっていなかった時は、そういうUIパーツをモジュール化して効率的に設計しようとした点が重要なところでした。</p>

<p>その頃はそれを実現する手段として、複数のクラスを一つの要素に指定し、スタイルを当てるという方法を採用していたんです。なので、そういう複数クラスを利用することがOOCSSなのかと聞かれたら、否定することはできないですけれども、複数クラスの利用＝OOCSSというわけででもないですね。</p>

<p><img src="/wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd.jpg" alt="" width="640" height="417" class="aligncenter size-full wp-image-22904" srcset="/wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd.jpg 640w, /wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd-300x195.jpg 300w, /wp-content/uploads/2017/04/98abd82c9eed3987bd54bee5e67b67cd-207x135.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>榊原</strong>: Bootstrapは、OOCSSの一つのかたちだとは思います。ただ、BootstrapなどのCSSフレームワークを使いはじめたばかりの頃に思ったのは、フレームワークの流儀に合わせるためにdivを追加していくのはどうなのかな、と。 本来不要なはずのdivじゃないですか。結果、HTMLの見通しが悪くなったりするので、こういう不満を解決するのも（後で論じる）Web Componentsの役割なのかなと思います。</p>

<p><strong>白石</strong>: 小原さんは、UIデザイナーの立場でいうと、3年前はどのようなかたちでデザインやワークフローを行っていましたか？ 例えばPhotoshopでカンプを作ったりするのでしょうか？</p>

<p><strong>小原</strong>: いえ、ぼくはそもそもPhotoshopは使っているわけではなくて、Illustratorを使ってます。Illustratorはキャンバスを広大に使えるので、状態違いを横に置いたり、引出線でメモを入れたりしていますね。Illustratorでデザインしたあと、そこにエンジニアにお願いすることもいろいろと書き込んだりします。</p>

<p><strong>高津戸</strong>: 小原のデザインは「エンジニアフレンドリー」と言いますか(笑)、指示が細かくて適切なんです。パディングの幅とかまで書いてあることもありますし、時にはCSSのコードが書かれたJSFiddleのURLが貼られていることもあります(笑)。</p>

<p><strong>小原</strong>: アニメーションなどは、実際に自分で試してみないとデザインできませんから。試してみた結果を参考として伝えるわけですが、そのまま（そのコードを）使ってくれという意味ではありません。同じような結果になる、より良いコードに書き換えてもらう前提ではあります。</p>

<h2>デザインのコンポーネント化、そして共通化</h2>

<p><strong>白石</strong>: 先ほど高津戸さんが言っていた「レゴブロックを組み立てるような」構築の仕方についてお聞きしたいのですが、そういう共通化や部品化、いわば「コンポーネント化」はUIデザインの段階から考えているものなのでしょうか？</p>

<p><strong>小原</strong>: いえ、UIデザインの段階では考えていませんね。その段階では全体で見ることが重要だと思っているので、パーツ単体でデザインするわけではありません。</p>

<p><img src="/wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30.jpg" alt="" width="640" height="421" class="aligncenter size-full wp-image-22905" srcset="/wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30.jpg 640w, /wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30-300x197.jpg 300w, /wp-content/uploads/2017/04/afe58b3b7d24ed975e22ca24d862ab30-207x136.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>白石</strong>: なるほどー。UIデザインの段階で共通化が可能だと判明することも多々あるんじゃないかな、と思ってお聞きしたんですよね。ボタンのパディングだとかもそうでしょうし、色なども。</p>

<p><strong>高津戸</strong>: ああ、色はかなり重要ですね。色をSassの変数とかにして、共通化できるんじゃないか…というのは私たちも何度も検討しています。ただ、今はそうしていないですね。</p>

<p><strong>白石</strong>: プリプロセッサはSassを使ってらっしゃるんですね？LessやStylusなどもありますが。</p>

<p><strong>高津戸</strong>: はい、Sass一色ですね。</p>

<p><strong>榊原</strong>: <a href="https://github.com/Compass/compass" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Compass</a>とかも懐かしいですよね。</p>

<p><strong>高津戸</strong>: ああ、懐かしいですね。昔、ブラウザごとのベンダープレフィックスを付けていくのにCompassの関数を利用したりしていましたが、今はPostCSSにautoprefixerというプラグインがあって、それが自動的にベンダープレフィックスを付与してくれるので、めっきり使わなくなりました。CompassってRuby Sassを前提にしていましたが、今はぼくらはより高速なnode-sassを使っています。</p>

<p><strong>榊原</strong>: そうですね、そもそもCompass自体もうメンテナンスされていませんしね。</p>

<p><strong>白石</strong>: で、先ほどの話に戻りますが、色をSassの変数などで管理しようとしたけどまだやっていない、と。</p>

<p><strong>小原</strong>: そうですね、やっていないです。様々な場面で同じ印象を与えようとすると、色って一元的なものじゃなくなるんです。例えば同じ色のボタンでも、背景が暗い場合と明るい場合では、明るさが大きく違って見えてしまう場合があります。</p>

<p>そういうふうに、状況に応じて色合いの微調整を行うことを考えると、Sassの変数で一元管理するというやり方はうまく管理し続けられたことがありません。</p>

<p><strong>高津戸</strong>: エンジニア的な考え方でいくと色は常に同じに思えてしまうし、一元管理が望ましいとも思えるのですが、現実と照らし合わせると難しいところもあって、今はそうしていないということです。 ただ、Sassのlighten()やdarken()などの関数を使えば、ベースカラーを派生させた色合いの微調整が可能なので、それを活用して色を一元管理できるかも…とは考えています。</p>

<p><strong>白石</strong>: 最近、<a href="http://scg.ar-ch.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Sass Color Generator</a>という便利なものがあるのを発見して、重宝してます。</p>

<p><strong>高津戸</strong>: 色については、調整のための関数がCSSの標準でも提案されていますね（著者注: <a href="https://drafts.csswg.org/css-color/#modifying-colors" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Color Module Level4</a>）。</p>

<p><strong>白石</strong>: おお、そうなんですね。変数とかも、<a href="https://developer.mozilla.org/ja/docs/Web/CSS/Using_CSS_variables" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Variables</a>などの標準でサポートされつつありますし、CSS標準にも引き続き注目ですね。</p>

<p>では、過去の話はこれくらいにして、現在皆さんが行っているCSSデザインという話に移行しましょうか。</p>

<h2>CSSフレームワーク使う？インブラウザデザインする？</h2>

<p><strong>白石</strong>: 皆さんは、現在はどのようなワークフローでUIデザインからCSS設計まで行っていますか？ 榊原さんいかがでしょう。</p>

<p><strong>榊原</strong>: ぼくは手書きでワイヤー書いちゃったら、あとは直接ブラウザ上で確認してしまいますね。 そういう流れなので、CSSフレームワークは必須です。ざっとコードを組んでしまって、ブラウザ上で確認と修正を繰り返して調整していく感じです。</p>

<p>SketchとかAdobe XDとか、Webやアプリに特化したプロトタイピングツールも試して便利だとは思いましたが、まだ本格的に使ってはいません。</p>

<p><strong>白石</strong>: なるほど。榊原さんはインブラウザデザインが主だと。ちなみにCSSフレームワークは何を使うことが多いんでしょうか？</p>

<p><strong>榊原</strong>: ぼくは<a href="http://foundation.zurb.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Foundation</a>を使うことが多いですね。</p>

<p><strong>白石</strong>: ピクセルグリッドのお二人は、3年前とほぼ変わらない、ということでしたね。</p>

<p><strong>小原</strong>: そうですね。今のところSketchは使っていません。</p>

<p>インブラウザデザインは、最終的な成果物を確認しながらできるというのはとても良いのですが、デザインをより良くするという視点で考えると、確認と改善をするためにコードを書かないといけないので、その分時間がかかってしまうと感じています。</p>

<p>ある程度出来上がってからの調整を行うにはいい方法だと思いますが、UIデザインの初期段階だとやはりツールを使ったほうがデザインを素早く行えるかなと。使い分けが大事だと思います。</p>

<p><img src="/wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9.jpg" alt="" width="640" height="411" class="aligncenter size-full wp-image-22906" srcset="/wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9.jpg 640w, /wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9-300x193.jpg 300w, /wp-content/uploads/2017/04/e47684ae098fd27a22bcf770a9381fc9-207x133.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>高津戸</strong>: ぼくらは受託のお仕事が中心だから、というのもあると思います。お客様からの要望を聞いて、UIデザインを提案して…っていうフローが重要なので、可能な限り素早くUIデザインを改善できる形に落ち着くんだと思います。</p>

<p>あと、<strong>お客様からのニーズに細かく対応していくとなると、CSSフレームワークとかは邪魔になってしまうことが多い</strong>。</p>

<p><strong>小原</strong>: そうですね。CSSフレームワークはあるレベルまでは便利なのですが、そこを超えて「カスタマイズ」の域に達してしまうと、途端に作業が大変なものになってしまいます。</p>

<p><strong>白石</strong>: それはわかる。ぼくらが作っているTechFeedというサービスでも、現在IonicというUIフレームワークを使っているのですが、<strong>「<code>ionic-hack.scss</code>」っていうファイルに闇のようなコードを詰め込んでいます(笑)</strong>。</p>

<p><strong>榊原</strong>: 私もBootstrap使ってた時、「<code>bootstrap-override.scss</code>」ってファイルを作ってましたよ(笑)。</p>

<p><strong>白石</strong>: フレームワークを使うか使わないか、って話、些細なことのように思われがちですが、結構大事な話ですよね。</p>

<p><strong>高津戸</strong>: ぼくらも、社内だったりプロジェクト単位だったりでフレームワークのようなものを持ってはいるんです。先程申し上げたように、レゴブロックを組み合わせて作る要領で構築を行えるように、ですね。</p>

<p>一般的なCSSフレームワークを使うとなると、まずいらないコードが大量についてきて、そういうコードを捨てるところから始めたくなってしまいます。 不要なコードがたくさんある、というのはプロジェクト全体の見通しの点でも、コードのメンテナンスの上でもよくないですしね。</p>

<p><strong>白石</strong>: なるほど、プロジェクト内で再利用できる部分などについては、きちんとフレームワーク化、もっというとコンポーネント化しているという話ですね。 では、いよいよ最後のお題として、今日の主題である「Web Components時代のCSS設計」について話しましょうか。</p>

<h2>Web Componentsって…なに？</h2>

<p><strong>白石</strong>: ではまず、コンポーネント指向とWeb Componentsについて、榊原さんに簡単に説明をお願いしたいと思います。</p>

<p><img src="/wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4.jpg" alt="" width="640" height="427" class="aligncenter size-full wp-image-22900" srcset="/wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4.jpg 640w, /wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4-300x200.jpg 300w, /wp-content/uploads/2017/04/d0d9a042ba8bbe43936118751edaeda4-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>榊原</strong>: はい、では<a href="https://speakerdeck.com/rdlabo/web-components-css-design" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちらのスライド（Webコンポーネント時代のCSSデザイン）</a>をご覧ください。</p>

<p>これはHTML5 ExpertsのWebサイトなのですが、よくみると同じようなデザインパーツが使いまわされていますよね。そういったデザインパーツを共通規格化するのがコンポーネント指向です。使い回し、というとちょっと表現悪いので、「再利用性を高める」といったりしています。</p>

<p><img src="/wp-content/uploads/2017/04/webComponents-02.jpg" alt="" width="600" height="450" class="aligncenter size-full wp-image-22894" srcset="/wp-content/uploads/2017/04/webComponents-02.jpg 600w, /wp-content/uploads/2017/04/webComponents-02-300x225.jpg 300w, /wp-content/uploads/2017/04/webComponents-02-207x155.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>例えば、そういう思想を理論化したものとして<a href="http://bradfrost.com/blog/post/atomic-web-design/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Atomic Design</a>があります。</p>

<p>デザインのパーツを原子、分子、生体、テンプレート、ページという粒度で構成していく。 コンポーネントの再利用については、こういったアイデアが提案されて、試行錯誤されてきました。</p>

<p>（榊原補足：厳密には、Atomic Designは粒度毎のコミュニケーションとワークフローデザイン論ですので、「コンポーネント指向の理論」という見方は一側面となります）</p>

<p><img src="/wp-content/uploads/2017/04/slide-3-640x480.png" alt="" width="600" height="450" class="aligncenter size-large wp-image-22824" srcset="/wp-content/uploads/2017/04/slide-3.png 640w, /wp-content/uploads/2017/04/slide-3-300x225.png 300w, /wp-content/uploads/2017/04/slide-3-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>しかし、実際にコンポーネントの再利用を実践するにあたっては、これまではフレームワークや、CSSのクラス名などをやりくりして乗り切っていたわけです。</p>

<p><img src="/wp-content/uploads/2017/04/webComponents-03.jpg" alt="" width="600" height="369" class="aligncenter size-full wp-image-22895" srcset="/wp-content/uploads/2017/04/webComponents-03.jpg 600w, /wp-content/uploads/2017/04/webComponents-03-300x185.jpg 300w, /wp-content/uploads/2017/04/webComponents-03-207x127.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>こうした問題を抜本的に解決すべく、標準技術として提案されているのがWeb Componentsです。 Web Componentsは、端的にいうと自作のタグを作れる技術です。</p>

<p><img src="/wp-content/uploads/2017/04/slide-5-640x480.png" alt="" width="600" height="450" class="aligncenter size-large wp-image-22826" srcset="/wp-content/uploads/2017/04/slide-5.png 640w, /wp-content/uploads/2017/04/slide-5-300x225.png 300w, /wp-content/uploads/2017/04/slide-5-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>Web Componentsは、Custom Elements、Templates、HTML Imports、Shadow DOMと言った要素技術から成り立っています。</p>

<p><img src="/wp-content/uploads/2017/04/slide-6-640x480.png" alt="" width="600" height="450"class="aligncenter size-large wp-image-22827" srcset="/wp-content/uploads/2017/04/slide-6.png 640w, /wp-content/uploads/2017/04/slide-6-300x225.png 300w, /wp-content/uploads/2017/04/slide-6-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<p>ブラウザによっても、要素技術によっても対応状況には差がありますが、着実に実装は進んでいますし、Polyfillを使うとほとんどの環境下で利用することができます。近い将来、あらゆる環境でWeb Componentsが利用できるようになるのは間違いないでしょう。</p>

<p><img src="/wp-content/uploads/2017/04/webComponents-04-1.jpg" alt="" width="600" height="432" class="aligncenter size-full wp-image-22898" srcset="/wp-content/uploads/2017/04/webComponents-04-1.jpg 600w, /wp-content/uploads/2017/04/webComponents-04-1-300x216.jpg 300w, /wp-content/uploads/2017/04/webComponents-04-1-207x149.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" />
<img src="/wp-content/uploads/2017/04/webComponents05.jpg" alt="" width="600" height="322" class="aligncenter size-full wp-image-22899" srcset="/wp-content/uploads/2017/04/webComponents05.jpg 600w, /wp-content/uploads/2017/04/webComponents05-300x161.jpg 300w, /wp-content/uploads/2017/04/webComponents05-207x111.jpg 207w" sizes="(max-width: 600px) 100vw, 600px" /></p>

<h2>Web Components時代のCSS設計</h2>

<p><strong>白石</strong>: 榊原さん、簡潔なご説明、ありがとうございました。さて、こうして近い将来Web Componentsの普及が見込めるという状況において、CSS設計などにどう影響するかをお聞きしたいのですが…そもそもWeb Componentsってどう使われるんでしょうね。</p>

<p><strong>榊原</strong>: いきなり世界がすべてWeb Componentsになることはないと思うんです。例えば昔はやった「ブログパーツ」みたいなもの、以前はiframeで作られていましたが、そういうものがWeb Componentsという形で流通して使われるようになるとか、そういうところから使われ始めるんじゃないかと。</p>

<p><strong>白石</strong>: 広く再利用可能なパーツが、Web Componentsによって流通しやすくなるんじゃないかということですね。</p>

<p><strong>榊原</strong>: そうですね、例えば<a href="https://www.webcomponents.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WEBCOMPONENTS.ORG</a>というサイトでは、そういうコンポーネントが共有されていますので、これをサイト制作やアプリ開発に一部利用していくとか、そういうあたりから使われていくんじゃないかと。</p>

<p><img src="/wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e.jpg" alt="" width="640" height="423" class="aligncenter size-full wp-image-22907" srcset="/wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e.jpg 640w, /wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e-300x198.jpg 300w, /wp-content/uploads/2017/04/985160f44912dcf9d52d8a3b71ee9a2e-207x137.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>白石</strong>: では、Web ComponentsはCSS設計にどう影響を与えるでしょう？</p>

<p><strong>高津戸</strong>: Web Componentsになったからいきなり変わるということでもなくて、すでに変化は始まっているとは思うんですよね。</p>

<p>例えば<a href="http://getbem.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">BEM</a>や<a href="https://smacss.com/ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SMACSS</a>などは、クラスの命名規則やカテゴライズによって、スタイルの再利用性や独立性を高めています。こういう手法を採用してWebアプリを構築している場合、すでにそれはコンポーネント指向的なCSS設計を始めていると言ってもいいんじゃないかな、と思います。</p>

<p><strong>白石</strong>: HTML5Experts.jpに寄稿してくださった<a href="https://html5experts.jp/takazudo/21946/" data-wpel-link="internal">Enduring CSS</a>などもそうでしょうか？</p>

<p><strong>高津戸</strong>: そうですね。Enduring CSSは、NamespaceやModuleという考え方を取り入れており、Namespaceごとにアセットを分離するよう設計していくのが特徴です。</p>

<p>そうすることで、例えばあるページが不要になった場合、Namespaceに対応するディレクトリごとバッサリと削除してしまえる。そのように分離して管理するということがECSSの目指す設計です。</p>

<p><strong>白石</strong>: なるほど。ほかには、コンポーネント指向に関連して、どのようなアプローチが取られていると思いますか？</p>

<p><strong>高津戸</strong>: 私自身はまだあまり触っていないのですが、やはり、Reactなどのコンポーネント指向のJSフレームワークの存在を抜きにしては語れないと考えています。</p>

<p>例えば、<a href="https://speakerdeck.com/vjeux/react-css-in-js" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS in JS</a>や<a href="https://github.com/css-modules/css-modules" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Modules</a>は、CSSのルールを全体に当てるのではなく、コンポーネント内だけに当てるのが第一であるという思想を実装に落としこんだ一つの形であると言っていいかなと。</p>

<p>現時点でも、こういった技術を取り入れることで、コンポーネントを意識した設計が行えるだろうとは思います。これらを例えばReactと合わせて使うことで、CSSが従来抱えていた問題を解決し、コンポーネント指向な開発と相性のいいCSS設計を進められるんじゃないかな、と期待しています。</p>

<p><img src="/wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971.jpg" alt="" width="640" height="397" class="aligncenter size-full wp-image-22909" srcset="/wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971.jpg 640w, /wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971-300x186.jpg 300w, /wp-content/uploads/2017/04/d4da1a3c6453ef13a3cb52b9db93d971-207x128.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><strong>白石</strong>: Angularなんかも、フレームワークの機能として、コンポーネントごとにCSSを分離してくれますよね。私も使っていますが、BEMみたいに命名規約に頼らずにスタイルをカプセル化できるので、クラス名が短いままでも他の部分との衝突を考えなくてすむので気楽です。</p>

<p><strong>榊原</strong>: はい、Angularを普通に使うと、CSSがコンポーネントごとにカプセル化されますね。Shadow DOMと似たような分離の仕組みをフレームワークで実現していますね（筆者注: AngularはShadow DOMを直接扱うことも可能）。</p>

<p><strong>白石</strong>: 榊原さんは、<a href="http://ionicframework.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ionic2</a> (AngularをベースとしたUIフレームワーク。解説記事は<a href="https://html5experts.jp/rdlabo/22296/" data-wpel-link="internal">こちら</a>)や<a href="https://ja.onsen.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI2</a>（ReactやAngularなど様々なフレームワークと合わせて使えるUIフレームワーク。解説記事は<a href="https://html5experts.jp/n_matagawa/20766/" data-wpel-link="internal">こちら</a>）などの、コンポーネント指向のUIフレームワークも活用されてらっしゃいますよね。</p>

<p><strong>榊原</strong>: はい、そうですね。Ionicなどで素早くUIを構築してしまって、あとはブラウザ上でデザインしていく…というフローで最近はデザインと開発を行っています。</p>

<p><strong>白石</strong>: BootstrapやFoundationなどのCSSフレームワークをベースに素早くUIを作って、あとはブラウザ上でいじる…というのと同様の手法でアプリケーションのデザインを行っているわけですね。</p>

<p>となると結局また、「CSSフレームワークを使うか否か」という先ほどの話と同様に「汎用的なコンポーネントライブラリを使うか否か」という話も出てきそうです。</p>

<p>とはいえ、「外部のコンポーネントを全く使わない」という選択肢もないと思うんですよね。例えばピクセルグリッドさんでも、jQuery UIのDatepicker（日付選択ダイアログ）なんかは使ってたんじゃないかと思うんですが、結局そのデザインカスタマイズなどはどうしてらっしゃったんでしょう？</p>

<p><strong>小原</strong>: 実はDatepickerについても、ぼくら自作していたので…(笑)。</p>

<p><strong>白石</strong>: ええっ！それはすごい。</p>

<p><strong>小原</strong>: もちろん、外部のUIパーツとか、全く使わないわけじゃないですよ。お客様のニーズを満たせるもの、自分たちが求めるクオリティを満たすものがあるかどうかまずは探してみて、なければ自分たちで作るって感じですね。</p>

<p>&#8230;</p>

<h2>編集後記</h2>

<p>というかんじで、イベントは盛況のうちに終了いたしました。その後の懇親会にもかなりの人数の方々が参加され、Webエンジニア同士の交流も大いに盛り上がりました。HTML5Experts.jpは、今後もこうしたイベントを開催していきますので、ご期待ください。</p>

<p><img src="/wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c.jpg" alt="" width="640" height="407" class="aligncenter size-full wp-image-22902" srcset="/wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c.jpg 640w, /wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c-300x191.jpg 300w, /wp-content/uploads/2017/04/05fb7057bc4d7315b6d7d47155d2989c-207x132.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>最後に、イベントの様子を書き起こしつつぼくが感じた、今回の結論めいたものを最後に記したいと思います。</p>

<p>そもそもなぜWebにコンポーネント化が求められているのかというと、その理由の一つに「<strong>再利用性</strong>」があります。そしてその再利用性は、「プロジェクトを横断した、汎用的な再利用性」と「プロジェクト内における再利用性」の2種類が考えられます。</p>

<p>Web Componentsが普及することのメリットの一つは、<strong>汎用的な再利用性を持つコンポーネントの流通が活発になる</strong>ことでしょう。</p>

<p><a href="http://webcomponents.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WEBCOMPONENTS.ORG</a>に見られるコンポーネントのリポジトリはこれからも増えてくることでしょうし、コンポーネントを有料で販売するというビジネスも早晩現れることでしょう。</p>

<p>そうしたコンポーネントを組み合わせて素早くアプリケーションを開発する、というアプローチは、今後より一般的になると思われます。</p>

<p>ただし、そうした外部ライブラリやフレームワークを使用する際に厄介なのが、<strong>カスタマイズが面倒</strong>という問題です。特に、Shadow DOMはCSSを強くカプセル化しますので、カスタマイズがより困難になる印象もあるかもしれません。</p>

<p>しかし、Web Components (Shadow DOM)には<a href="https://www.html5rocks.com/ja/tutorials/webcomponents/shadowdom-201/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">コンポーネント内部をスタイリングする様々な手段があります</a>。それらを使って「汎用的で、スタイリングも容易なコンポーネント」を開発する手法は、今後ベストプラクティスが模索されていくことと思います。</p>

<p>一方で受託開発のように、先にデザインを綿密に擦り合わせた後に開発に入るようなワークフローの場合、外部のコンポーネントをカスタマイズするコストや、コンポーネント内部の構造を把握するためのコスト（そして多くの場合、完全に把握し切ることはないでしょう）が大きく、<strong>外部ライブラリを利用するメリットを上回ってしまう</strong>ことも考えられます。</p>

<p>その場合は外部ライブラリやフレームワークを使用せず、できるだけプロジェクト内や社内で完結するよう、開発用のアセットを積み上げていく方が優れたアプローチでしょう。その場合でも、Web Componentsの「モジュラリティ」や「カプセル化」、「拡張性」といったメリットは非常に大きいのではないでしょうか。</p>

<p>そして今回の主題である「Web Components」は、まだまだこれからの技術なのは間違いありませんが、一方現場ではとっくにコンポーネント化は必要とされ、実践もされています。</p>

<p>それをより良くWeb標準でサポートするための技術がWeb Componentsであり、多くの人に待ち望まれている重要な技術であることが再確認できたかな、と思いました。</p>

<p><img src="/wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d.jpg" alt="" width="640" height="428" class="aligncenter size-full wp-image-22903" srcset="/wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d.jpg 640w, /wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d-300x201.jpg 300w, /wp-content/uploads/2017/04/2066ff983ef8c9b69d7cae140a4b0f5d-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>
]]></content:encoded>
			</item>
		<item>
		<title>【速攻レビュー】よりモバイルフレンドリーになった「Twitter Bootstrap v4」</title>
		<link>/albatrosary/16824/</link>
		<pubDate>Wed, 02 Sep 2015 02:00:54 +0000</pubDate>
		<dc:creator><![CDATA[佐川 夫美雄]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Sass]]></category>

		<guid isPermaLink="false">/?p=16824</guid>
		<description><![CDATA[Twitter Bootstrapバージョン4アルファ版が8月19日に公開されました。既にご存知の通りTwitter BootstrapはレスポンシブでモバイルファーストなCSSフレームワークです。さっとレスポンシブなサ...]]></description>
				<content:encoded><![CDATA[<p><a href="http://v4-alpha.getbootstrap.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Twitter Bootstrapバージョン4アルファ版</a>が8月19日に公開されました。既にご存知の通りTwitter BootstrapはレスポンシブでモバイルファーストなCSSフレームワークです。さっとレスポンシブなサイトを構築するのに多くの方が利用しているのではないかと思います。この記事ではTwitter Bootstrapバージョン4の変更点について、筆者が「これは！」と思ったところをピックアップしてまとめます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/79686793859202b9371ec01cdd197c6e.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/79686793859202b9371ec01cdd197c6e-640x372.png" alt="Twitter Bootstrap v4 Site" width="640" height="372" class="alignnone size-large wp-image-16825" srcset="/wp-content/uploads/2015/08/79686793859202b9371ec01cdd197c6e.png 640w, /wp-content/uploads/2015/08/79686793859202b9371ec01cdd197c6e-300x174.png 300w, /wp-content/uploads/2015/08/79686793859202b9371ec01cdd197c6e-207x120.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>バージョン4の変更内容はGitHub上の<a href="https://github.com/twbs/bootstrap/pull/17021" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">issue</a>で確認することができます。この中で筆者が注目している事項は</p>

<ul>
<li>LESSからSASSへの変更</li>
<li>アイコン（グラフィックアイコン）の削除</li>
<li>IE8のサポート終了とjQuery1系からjQuery2系へ</li>
<li>pxからemへの変更</li>
<li>グリッドシステムに、さらに大きなブレイクポイントを追加</li>
<li>ボタンのカラー指定にClass属性「default」がなくなり「secondary」を指定するようになった</li>
<li>Class属性「display-*」でフォントサイズを指定可能に</li>
<li>ECMAScript2015(babel)の採用</li>
<li>Angularのui.bootstrapはどうなる？</li>
</ul>

<p>現段階ではバージョン4はアルファ版ではありますが、先取りして早速レビューします。</p>

<h2>LESSからSASS</h2>

<p>Twitter Bootstrapはバージョン3ではLESSを用いて開発を行っていましたが、<a href="https://github.com/twbs/bootstrap-sass" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">SASS版Bootstrap</a>もあり、LESS版/SASS版の両方メンテナンスが行われていました。バージョン4からはSASSを採用することになりました。</p>

<p>開発者にとってこれは大きな変更です。例えば、<a href="http://bower.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">bower</a>を使ってTwitter Bootstrapを利用する場合、LESS版では</p>

<p><code>$ bower install bootstrap</code></p>

<p>SASS版を利用する場合は</p>

<p><code>$ bower install bootstrap-sass-official</code></p>

<p>と、LESS版を利用するかSASS版を利用するかで呼び出すパッケージが分かれ、しかもgruntタスクやgulpタスク等のコンフィグレーションを記載する際に、それぞれの異なる記載を行っていました。こうしたことが一本化されたことは、冗長的な記述をスッキリさせてくれます。</p>

<p>YEOMANジェネレータに<a href="https://github.com/yeoman/generator-webapp" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">generator-webapp</a>というWeb開発のベーシックなジェネレータがありますが、CSS版/SASS版の切り替えのために、いたるところの分岐が書かれています。</p>

<p>ちなみに、bowerを使ったアルファ版のインストールは、明示的にバージョンを指定する必要があります。バージョンを指定しない場合は3系がダウンロードされます。</p>

<p><code>$ bower install bootstrap#4.0.0-alpha</code></p>

<h2>アイコン（グラフィックアイコン）の削除</h2>

<p>Twitter Bootstrapと言えば、豊富な人気のあった<a href="http://getbootstrap.com/components/#glyphicons-glyphs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Glyphicons</a>ですが、バージョン4では削除されています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/b5c2950df2785ae0cd4f8e7cabf6e83d.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/b5c2950df2785ae0cd4f8e7cabf6e83d-640x463.png" alt="Glyphicons" width="640" height="463" class="alignnone size-large wp-image-16841" srcset="/wp-content/uploads/2015/08/b5c2950df2785ae0cd4f8e7cabf6e83d.png 640w, /wp-content/uploads/2015/08/b5c2950df2785ae0cd4f8e7cabf6e83d-300x217.png 300w, /wp-content/uploads/2015/08/b5c2950df2785ae0cd4f8e7cabf6e83d-207x150.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>現段階では極わずかにGlyphiconsが残されているだけになっていて、入力時の警告等を表示させているだけになっています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/dbe6928786ed5ad5d354e7096134d3a71.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/dbe6928786ed5ad5d354e7096134d3a71-640x480.png" alt="form-icon" width="640" height="480" class="alignnone size-large wp-image-16827" srcset="/wp-content/uploads/2015/08/dbe6928786ed5ad5d354e7096134d3a71.png 640w, /wp-content/uploads/2015/08/dbe6928786ed5ad5d354e7096134d3a71-300x225.png 300w, /wp-content/uploads/2015/08/dbe6928786ed5ad5d354e7096134d3a71-207x155.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><code></p>

<div class="form-group has-success">
  <label class="control-label" for="inputSuccess1">Input with success</label>
</div>

<div class="form-group has-warning">
  <label class="control-label" for="inputWarning1">Input with warning</label>
</div>

<div class="form-group has-error">
  <label class="control-label" for="inputError1">Input with error</label>
</div>

<p></code></p>

<p>削除されたグラフィックアイコンですが、現状ではTwitter Bootstrapの管理外で定義されているような記述もありません。もしグラフィックアイコンを利用したい場合は、別途どこかからお気に入りグラフィックアイコンを利用する必要があります。</p>

<h2>IE8のサポート終了とjQuery1系からjQuery2系へ</h2>

<p>Internet Explorer8とiOS6へのサポートが終了します。Twitter BootstrapがjQueryのバージョンを1系から2系への利用変更に伴いInternet Explorer8のサポートも打ち切られました。IE8を利用する必要がある場合にはバージョン3を利用します。</p>

<p>さようならIE8…</p>

<h2>pxからemへの変更</h2>

<p>フォントサイズ等の指定が<code>px</code>から<code>em</code>(およびCSS3で導入された<code>rem</code>)に変更されました。<code>px</code>はピクセル単位の指定で、環境によって変化しない絶対単位です。<code>em</code>は文字の高さを基準にした単位で<code>1em</code>は1文字を表します。特に<code>rem</code>はCSS3で新しく定義された<code>root em</code>でroot要素（html要素）のフォントサイズを継承します。</p>

<p><code>px</code>の場合、ブラウザのフォントサイズを変更しても文字の大きさが変わりませんが、<code>em</code>ではフォントサイズの大きさに合わせ表示されるフォントサイズも変わります。chromeの場合は「chrome://settings/」でフォントサイズを変更した場合に違いが確認できます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/095f235c11c239866cb784e0ea46022b.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/095f235c11c239866cb784e0ea46022b-640x192.png" alt="chrome-settings" width="640" height="192" class="alignnone size-large wp-image-16829" srcset="/wp-content/uploads/2015/08/095f235c11c239866cb784e0ea46022b.png 640w, /wp-content/uploads/2015/08/095f235c11c239866cb784e0ea46022b-300x90.png 300w, /wp-content/uploads/2015/08/095f235c11c239866cb784e0ea46022b-207x62.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>乱暴な言い方ですが、ユーザの好みのフォントサイズに対応するというのはある意味よりレスポンシブになったと言えるのではと思います。<code>px</code>が良いのか<code>em</code>が良いのか議論としては様々だとは思いますが、Twitter Bootstrapでは<code>em</code>を利用します。</p>

<h2>グリッドシステムに、さらに大きなブレイクポイントを追加</h2>

<p><a href="https://html5experts.jp/shumpei-shiraishi/1538/" data-wpel-link="internal">Bootstrap3超速レビュー！刷新されたグリッドシステムを理解しよう！</a>でも記述されているグリッドシステムですが、4つ定義されていたブレークポイントがバージョン4ではブレークポイントが5つになり「Extra large」が追加されました。</p>

<p>具体的に、バージョン3では</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/98765df1dd03b7a0590d98a4b1e5caea.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/98765df1dd03b7a0590d98a4b1e5caea-640x299.png" alt="Grid v3" width="640" height="299" class="alignnone size-large wp-image-16830" srcset="/wp-content/uploads/2015/08/98765df1dd03b7a0590d98a4b1e5caea.png 640w, /wp-content/uploads/2015/08/98765df1dd03b7a0590d98a4b1e5caea-300x140.png 300w, /wp-content/uploads/2015/08/98765df1dd03b7a0590d98a4b1e5caea-207x97.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>バージョン4では</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/157e413c151d7fac9b20d016b4a8e104.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/157e413c151d7fac9b20d016b4a8e104-640x377.png" alt="Grid v4" width="640" height="377" class="alignnone size-large wp-image-16831" srcset="/wp-content/uploads/2015/08/157e413c151d7fac9b20d016b4a8e104.png 640w, /wp-content/uploads/2015/08/157e413c151d7fac9b20d016b4a8e104-300x177.png 300w, /wp-content/uploads/2015/08/157e413c151d7fac9b20d016b4a8e104-207x122.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>ブレークポイントにより大きなExtra largeが定義されましたが、実際には小さい画面に対するブレークポイントが追加されています。</p>

<p>比較するとわかりますが</p>

<table>
<thead>
<tr>
  <th>サイズ</th>
  <th>バージョン3</th>
  <th>バージョン4</th>
</tr>
</thead>
<tbody>
<tr>
  <td>&lt;34em</td>
  <td>&#8211;</td>
  <td>Extra small &lt;34em</td>
</tr>
<tr>
  <td>≥34em(544px)</td>
  <td>Extra small devices Phones &lt;768px</td>
  <td>Small ≥34em</td>
</tr>
<tr>
  <td>≥48em(768px)</td>
  <td>Small devices Tablets ≥768px</td>
  <td>Medium ≥48em</td>
</tr>
<tr>
  <td>≥62em(922px)</td>
  <td>Medium devices Desktops ≥992px</td>
  <td>Large ≥62em</td>
</tr>
<tr>
  <td>≥75em(1200px)</td>
  <td>Large devices Desktops ≥1200px</td>
  <td>Extra large ≥75em</td>
</tr>
</tbody>
</table>

<p>※ 1emを16pxとした場合</p>

<p><code>visible-*(-block)</code>というクラス属性ですが、バージョン４では実装されていません。これは特定のサイズのときに表示させるのもで、例えば</p>

<p><code>
<span class="visible-sm-block">✔ Visible on small</span>
</code></p>

<p>としたときに「smサイズ」で表示されます。<code>.visible-*(-block)</code>が削除され変わりに<code>.hidden-*-up</code> or <code>.hidden-*-down</code> を利用する方向です。</p>

<h2>ボタンのカラー指定にClass属性「default」がなくなり「secondary」を指定するようになった</h2>

<p><code>btn-*</code>では、<code>default</code>がなくなり<code>secondary</code>が新たに追加されました。<code>default</code>と同様の色を指定する場合は<code>secondary</code>を指定する必要があります。btn-primaryのバックグラウンドカラーも若干明るめに定義されています。</p>

<p>バージョン3では</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/6dcd69e278bea198b5794240e3cb0f6d.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/6dcd69e278bea198b5794240e3cb0f6d-640x85.png" alt="スクリーンショット 2015-08-26 14.23.38" width="640" height="85" class="alignnone size-large wp-image-16834" srcset="/wp-content/uploads/2015/08/6dcd69e278bea198b5794240e3cb0f6d.png 640w, /wp-content/uploads/2015/08/6dcd69e278bea198b5794240e3cb0f6d-300x40.png 300w, /wp-content/uploads/2015/08/6dcd69e278bea198b5794240e3cb0f6d-207x27.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>バージョン4では</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/22d933c35c469e05131a490b6b0c0f58.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/22d933c35c469e05131a490b6b0c0f58-640x93.png" alt="buttons v3" width="640" height="93" class="alignnone size-large wp-image-16833" srcset="/wp-content/uploads/2015/08/22d933c35c469e05131a490b6b0c0f58.png 640w, /wp-content/uploads/2015/08/22d933c35c469e05131a490b6b0c0f58-300x44.png 300w, /wp-content/uploads/2015/08/22d933c35c469e05131a490b6b0c0f58-207x30.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>現在バージョン3とバージョン4で定義されている値を比較すると次の通りです：</p>

<table>
<thead>
<tr>
  <th>クラス属性</th>
  <th>v3</th>
  <th>v4</th>
</tr>
</thead>
<tbody>
<tr>
  <td>btn-default-bg</td>
  <td>#fff</td>
  <td>&#8211;</td>
</tr>
<tr>
  <td>btn-primary-bg</td>
  <td>darken(#428bca, 6.5%); // #337ab7</td>
  <td>#0275d8</td>
</tr>
<tr>
  <td>btn-secondary-bg</td>
  <td>&#8211;</td>
  <td>#fff</td>
</tr>
<tr>
  <td>btn-success-bg</td>
  <td>#5cb85c;</td>
  <td>#5cb85c</td>
</tr>
<tr>
  <td>btn-info-bg</td>
  <td>#5bc0de;</td>
  <td>#5bc0de</td>
</tr>
<tr>
  <td>btn-warning-bg</td>
  <td>#f0ad4e;</td>
  <td>#f0ad4e</td>
</tr>
<tr>
  <td>btn-danger-bg</td>
  <td>#d9534f;</td>
  <td>#d9534f</td>
</tr>
</tbody>
</table>

<p>こうしたカラーリングですが、ラベルやアラートに関しては今のところ変更がありません、ボタンのみ変更されています。</p>

<h2>Class属性「display-*」でフォントサイズを指定可能に</h2>

<p>小さい部分ですが、フォントサイズを指定するクラス属性に<code>display-*</code>が追加されました。コメントには次のような記載があります:</p>

<p>&gt; 見出し要素(h1,h2,…h6)はページのコンテンツのボディで最適に動作するように設計されています。より目立つような見出しが必要な場合は、より大きいスタイルを使用することを検討してください。</p>

<p>具体的には</p>

<table>
<thead>
<tr>
  <th>display-*</th>
  <th>フォントサイズ</th>
</tr>
</thead>
<tbody>
<tr>
  <td>display-1</td>
  <td>3.5rem</td>
</tr>
<tr>
  <td>display-2</td>
  <td>4.5rem</td>
</tr>
<tr>
  <td>display-3</td>
  <td>5.5rem</td>
</tr>
<tr>
  <td>display-4</td>
  <td>6rem</td>
</tr>
</tbody>
</table>

<p>として定義されています。しかし、CSSの<code>font-weight</code>の定義が<code>h1</code>では<code>500</code>であるのに対し、<code>display-*</code>では<code>300</code>ですので若干ほっそりとした表示になります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/08/f649fc61464b206a51073e74a1661248.png" data-wpel-link="internal"><img src="/wp-content/uploads/2015/08/f649fc61464b206a51073e74a1661248-640x480.png" alt="display-*" width="640" height="480" class="alignnone size-large wp-image-16836" srcset="/wp-content/uploads/2015/08/f649fc61464b206a51073e74a1661248.png 640w, /wp-content/uploads/2015/08/f649fc61464b206a51073e74a1661248-300x225.png 300w, /wp-content/uploads/2015/08/f649fc61464b206a51073e74a1661248-207x155.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><code></p>

<h1 class="display-4">Display 4</h1>

<h1 class="display-3">Display 3</h1>

<h1 class="display-2">Display 2</h1>

<h1 class="display-1">Display 1</h1>

<h1>Display</h1>

<p></code></p>

<h2>ECMAScript2015(Babel)の採用</h2>

<p>Twitter BootstrapのJavaScript開発には<a href="https://babeljs.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Babel</a>が採用されています。Babelは、<a href="https://html5experts.jp/vvakame/16241/" data-wpel-link="internal">TypeScriptを使ってECMAScript 2015時代のJavaScriptを先取りしよう！</a>での記載もあるように、今年6月に公式に次のECMAScriptとして仕様が公開されたECMAScript2015(今まではECMAScript6と呼ばれていました)の文法で記載することが出来ます。参考までに、ECMAScriptは<a href="http://www.ecma-international.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ECMA International</a>が策定した仕様で、この仕様に基いて実装されたものがJavaScriptです。</p>

<p>ECMAScript2015の特徴をいくつか上げると次の通りです。詳しくは<a href="https://babeljs.io/docs/learn-es2015/#ecmascript-6-features" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>を参照ください。</p>

<ul>
<li>Arrows</li>
<li>Classes</li>
<li>Let + Const</li>
<li>Iterators + For..Of</li>
<li>Generators</li>
<li>Modules and Module Loaders</li>
<li>Map + Set + WeakMap + WeakSet</li>
<li>Proxies</li>
<li>Promises</li>
</ul>

<h2>Angularのui.bootstrapはどうなる？</h2>

<p>AngularにはBootstrap Componentsをベースにした<a href="http://angular-ui.github.io/bootstrap/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ui.bootstrap</a>があります。Angularを使って日頃開発を行っている方には、ui.bootstrapの動向も気になるところではないかと思います。というのも私は、ui.bootstrapのディレクティブ実装が非常に良いと思っているので、積極的に利用しています。</p>

<p>ui.bootstrapの対応に関しては現在<a href="https://github.com/angular-ui/bootstrap/issues/4234" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">issue</a>で話が上がっています。ui.bootstrapはAngular2の対応もありますので、Twitter Bootstrapバージョン4の対応は難しい状況のようです。</p>

<h2>まとめ</h2>

<p>バージョン3からレスポンシブWebデザインを前提として作られたTwitter Bootstrapですが、バージョン4では現在のモバイル環境に合わせより強力に洗練されたCSSフレームワークです。</p>

<p>今回のレビューはまだアルファ版のため一部機能が実装されていない部分もありますが正式リリースが楽しみです。</p>
]]></content:encoded>
			</item>
		<item>
		<title>HTML5 Experts.jp編集部より感謝を込めて！「2013年の読まれた記事ランキング」年間TOP20</title>
		<link>/miyuki-baba/4018/</link>
		<pubDate>Mon, 30 Dec 2013 10:16:46 +0000</pubDate>
		<dc:creator><![CDATA[馬場 美由紀]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[html5j]]></category>
		<category><![CDATA[iOS7]]></category>
		<category><![CDATA[パフォーマンス]]></category>

		<guid isPermaLink="false">/?p=4018</guid>
		<description><![CDATA[7月10日に開設した日本初のHTML5技術専門サイト「HTML5 Experts.jp」。2013年は数々のHTML5を中心とした最新技術の動向や活用方法の解説、Web業界の著名人のインタビュー、事例やイベントレポートを...]]></description>
				<content:encoded><![CDATA[<p>7月10日に開設した日本初のHTML5技術専門サイト「HTML5 Experts.jp」。2013年は数々のHTML5を中心とした最新技術の動向や活用方法の解説、Web業界の著名人のインタビュー、事例やイベントレポートをお届けしてきました。今年最後のレポートは「記事公開後1週間の閲覧数（PV)」をもとに、2013年人気記事ランキング年間TOP20をお届けします！</p>

<p><strong>＜1位＞</strong><br>
<a href="https://html5experts.jp/shumpei-shiraishi/2602/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/ios7-1.jpg" alt="ios7-1" width="207" height="156" class="alignleft size-full wp-image-4030" /></a>
<strong><a href="https://html5experts.jp/shumpei-shiraishi/2602/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">iOS7におけるMobile Safariの主な変更点</a></strong><br>
──白石 俊平（HTML5 Experts.jp編集長）</p>

<p>iOS 7上のSafariがどのように変化したかについて、Maximiliano Firtman氏（@firt）のブログから、Web制作者／開発者にとって重要と思われる情報を引用。Web技術者にとっても大きな影響を持つこのアップデートについて紹介しました。</p>

<p><strong>＜2位＞</strong><br>
<a href="https://html5experts.jp/shumpei-shiraishi/1538/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/Bootstrap3.jpg" alt="Bootstrap3" width="207" height="156" class="alignleft size-full wp-image-4041" /></a>
<strong><a href="https://html5experts.jp/shumpei-shiraishi/1538/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Bootstrap3超速レビュー！刷新されたグリッドシステムを理解しよう！</a></strong>──白石 俊平（HTML5 Experts.jp編集長）</p>

<p>人気のCSSフレームワーク「Bootstrap」のバージョン3が正式リリースされたタイミングで、白石編集長が早速Bootstrap3をレビュー。特にグリッドシステムを掘り下げて解説し、大反響となりました。<br><br></p>

<p><strong>＜3位＞</strong><br>
<a href="https://html5experts.jp/albatrosary/3191/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/javajs1.jpg" alt="javajs1" width="207" height="156" class="alignleft size-full wp-image-4047" /></a>
<strong><a href="https://html5experts.jp/albatrosary/3191/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">JavaからHTML5ヘ。業務システムの開発におけるWeb技術の変化と適応事例</a></strong>──佐川夫美雄</p>

<p>フロント開発の現場では、Java中心の開発から、HTML、CSS、JavaScript中心の開発にかわりつつあります。具体的な事例をもとに、実装アーキテクチャや開発インフラに、どのような変化が起きているかをレポートしました。</p>

<p><strong>＜4位＞</strong><br>
<a href="https://html5experts.jp/nakajmg/3225/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/markup-1.jpg" alt="markup-1" width="207" height="156" class="alignleft size-full wp-image-4058" /></a>
<strong><a href="https://html5experts.jp/nakajmg/3225/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">続・よくある3つのデザインから考える、マークアップの最適解</a></strong><br>
──中島 直博</p>

<p>マークアップシリーズの第2回。前回のよくある3つのデザインから考える、マークアップの最適解と同じく、html5jマークアップ部主催のイベント「MarkupCafe」で出題された3つのお題から最適なマークアップを探りました。</p>

<p><strong>＜5位＞</strong><br>
<a href="https://html5experts.jp/yoshikawa_t/877/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/yoshikawa1.jpg" alt="yoshikawa1" width="207" height="156" class="alignleft size-full wp-image-4061" /></a>
<strong><a href="https://html5experts.jp/yoshikawa_t/877/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ユーザーの体感速度を高めるためのJavaScriptチューニング（前編）</a></strong><br>
──吉川 徹</p>

<p>人気連載「Webサイト・アプリ高速化テクニック徹底解説」第2回。JavaScriptの高速化について、ユーザーの体感速度を向上させるための方法を紹介。JavaScriptの同期・非同期の仕組みやscript要素のasync属性、defer属性を解説。</p>

<p><strong>＜6位＞</strong><br>
<a href="https://html5experts.jp/clockmaker/2183/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/altJS1.jpg" alt="altJS1" width="207" height="156" class="alignleft size-full wp-image-4064" /></a>
<strong><a href="https://html5experts.jp/clockmaker/2183/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">モダンな言語でHTML5を開発しよう！ 俯瞰して理解するaltJSの比較 (前篇 – TypeScript, CoffeeScript, Haxe)</a></strong><br>
──池田 泰延</p>

<p>2010年前後から登場したJavaScriptを生成する中間言語「altJS」。スマートにコードを書くための仕組みが用意されており、開発効率を大幅に向上させることができます。この記事では、TypeScript, CoffeeScript, Haxeについて解説しました。</p>

<p><strong>＜7位＞</strong><br>
<a href="https://html5experts.jp/nakajmg/2502/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/markup-2.jpg" alt="markup-2" width="207" height="156" class="alignleft size-full wp-image-4065" /></a>
<strong><a href="https://html5experts.jp/nakajmg/2502/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">よくある3つのデザインから考える、マークアップの最適解</a></strong><br>
──中島 直博</p>

<p>html5jマークアップ部が開催したた「MarkupCafe」第1回。&#8221;フッター&#8221;、&#8221;パンくずリスト&#8221;、&#8221;求人情報&#8221;のお題をもとに、Web制作におけるマークアップの捉え方、誤った使い方をしがちな要素などについてマークアップの最適解を探ったレポート。</p>

<p><strong>＜8位＞</strong><br>
<a href="https://html5experts.jp/jxck/3102/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/Jxck-1.jpg" alt="Jxck-1" width="207" height="156" class="alignleft size-full wp-image-4068" /></a>
<strong><a href="https://html5experts.jp/jxck/3102/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Hosted Library – Webを速くするためにGoogleがやっていること Make the Web Faster 03 &#8211;</a></strong><br>
──Jxck</p>

<p>Googleがよく使われるJavaScriptのライブラリなどを配布している「Google Hosted Library」。実はこれはみんなが使えば使うほど、得をする仕組みになっています。その仕組となるCDNやキャッシュの技術などについて解説しました。</p>

<p><strong>＜9位＞</strong><br>
<a href="https://html5experts.jp/jxck/2550/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/Jxck-2.jpg" alt="Jxck-2" width="207" height="156" class="alignleft size-full wp-image-4071" /></a>
<strong><a href="https://html5experts.jp/jxck/2550/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebP – Webを速くするためにGoogleがやっていること Make the Web Faster 01 &#8211;</a></strong><br>
──Jxck</p>

<p>WebPは、Googleが開発した圧縮形式で、パフォーマンスを上げるために、従来の形式よりもファイルサイズを小さくすることを目的としています。そんなWebPの概要と使い方、注意点を取り上げました。</p>

<p><strong>＜10位＞</strong><br>
<a href="https://html5experts.jp/technohippy/2038/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/ando-1.jpg" alt="ando-1" width="207" height="156" class="alignleft size-full wp-image-4073" /></a>
<strong><a href="https://html5experts.jp/technohippy/2038/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">伝説のおっぱいエンジニアは先端技術の無駄遣いがお好き ── あんどうやすしさん（ミクシィ）</a></strong><br></p>

<p>世界的に有名な物理エンジンライブラリ「Box2D.jsの作者」という面もさることながら、「Google Waveの人」や「おっぱいエンジニア」など「おもしろい感じの人」としても有名なあんどうやすしさんに、経歴や関心などをインタビュー。</p>

<p><strong>＜11位＞</strong><br>
<a href="https://html5experts.jp/yoshikawa_t/1888/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/dtl_thm_018.png" alt="dtl_thm_018" width="207" height="156" class="alignleft size-full wp-image-4100" /></a>
<strong><a href="https://html5experts.jp/yoshikawa_t/1888/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">DOM操作の最適化によるJavaScriptチューニング（前編）</a></strong><br>
──吉川 徹</p>

<p>JavaScriptのチューニングのうち、ボトルネックになりやすいDOM操作の最適化について解説。前編・後編にわたって、DOM操作が遅くなる原因と仕組み、その解決策について詳しく解説。<br><br></p>

<p><strong>＜12位＞</strong><br>
<a href="https://html5experts.jp/jxck/3529/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/Jxck-3.jpg" alt="Jxck-3" width="207" height="156" class="alignleft size-full wp-image-4101" /></a>
<strong><a href="https://html5experts.jp/jxck/3529/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">TCP Fast Open – Webを速くするためにGoogleがやっていること Make the Web Faster 4 &#8211;</a></strong><br>
──Jxck</p>

<p>GoogleはWebを速くするための活動として、TCPのようなプロトコルレイヤの改善にも取り組んでいます。この記事ではその中の一つ、TCP Fast Openを取り上げ、解説と動作検証、簡単なベンチマークを行い、レポートしました。</p>

<p><strong>＜13位＞</strong><br>
<a href="https://html5experts.jp/tsuj/2333/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/dtl_thm_016.png" alt="dtl_thm_016" width="207" height="156" class="alignleft size-full wp-image-4102" /></a>
<strong><a href="https://html5experts.jp/tsuj/2333/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5のSEO－マークアップで注意すべき3つのポイント</a></strong><br>
──辻 正浩</p>

<p>HTML5を採用したWebサイト構築をする際に、SEOはどのようなポイントを考慮すべきなのか？　HTML5でのマークアップ、リッチ表現、SEO効果のあるh要素の使い方、HTML5で追加・削除・復活された要素などについて解説。</p>

<p><strong>＜14位＞</strong><br>
<a href="https://html5experts.jp/cssradar/2669/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/devtool.gif" alt="devtool" width="206" height="113" class="alignleft size-full wp-image-4104" /></a>
<strong><a href="https://html5experts.jp/cssradar/2669/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Webアニメーションを高速化するために知っておくべき10のこと（後編）</a></strong>──斉藤 祐也</p>

<p>アニメーション／トランジションをより自然にスムーズに動作させるために知っておきたいレンダリングプロセスや、計測方法、アクシデント回避方法についてのレポート後編です。</p>

<p><strong>＜15位＞</strong><br>
<a href="https://html5experts.jp/masuidrive/807/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/masui1.jpg" alt="masui" width="207" height="156" class="alignleft size-full wp-image-4108" /></a>
<strong><a href="https://html5experts.jp/masuidrive/807/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5でサイトを高速化─wri.peで学ぶ、イマドキのWebアプリの作りかた（後編）</a></strong><br>
──増井 雄一郎</p>

<p>wri.peでHTML5をどのように活用しているかの解説レポート後編。Web StorageのlocalStorage/sessionStorageを使い、Ajax通信部分と表示の高速化を行う手法を説明しています。</p>

<p><strong>＜16位＞</strong><br>
<a href="https://html5experts.jp/yusuke-naka/2810/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/naka-1.jpg" alt="naka-1" width="207" height="156" class="alignleft size-full wp-image-4110" /></a>
<strong><a href="https://html5experts.jp/yusuke-naka/2810/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">テレビ画面はdiv要素でできている！- Hybridcastとテレビの未来 &#8211;</a></strong><br>
──仲 裕介</p>

<p>NHKが2013年9月2日よりサービスを開始したHybridcast（ハイブリッドキャスト）。放送とWebが融合した新しいサービスです。今回特別に入手したHybridcastのソースコードサンプルを始め、注目トピックを紹介しました。</p>

<p><strong>＜17位＞</strong><br>
<a href="https://html5experts.jp/yoshikawa_t/1016/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/js-1.jpg" alt="js-1" width="207" height="156" class="alignleft size-full wp-image-4111" /></a>
<strong><a href="https://html5experts.jp/yoshikawa_t/1016/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ユーザーの体感速度を高めるためのJavaScriptチューニング（後編）</a></strong><br>
──吉川 徹</p>

<p>後編は、「ユーザーの操作を阻害しない」方法についてJavaScriptのシングルスレッドやイベントループを交えて解説。HTML5のWeb Workersについても紹介しています。<br><br></p>

<p><strong>＜18位＞</strong><br>
<a href="https://html5experts.jp/sou/2413/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/html5experts_image_Mobile.png" alt="html5experts_image_Mobile" width="207" height="156" class="alignleft size-full wp-image-4112" /></a>
<strong><a href="https://html5experts.jp/sou/2413/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">モバイルブラウザでもサクサクに動作する最適化6つのノウハウ</a></strong><br>
──城戸 総史</p>

<p>モバイル端末はきちんと最適化を行えば、その分比較的低スペックな端末や3G回線であっても、サクサク軽量なサービス提供が可能です。その最適化ノウハウについて6つのポイントから解説しました。<br><br></p>

<p><strong>＜19位＞</strong><br>
<a href="https://html5experts.jp/yoshikawa_t/1932/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/dtl_thm_018.png" alt="dtl_thm_018" width="207" height="156" class="alignleft size-full wp-image-4100" /></a>
<strong><a href="https://html5experts.jp/yoshikawa_t/1932/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">DOM操作の最適化によるJavaScriptチューニング（後編）</a></strong><br>
──吉川 徹</p>

<p>createElement()やappendChild()などのDOM操作メソッドを使った方法では、単純にinnerHTMLによるコードを置き換えるだけでなく、さまざまなテクニックがあります。パフォーマンスを劣化させるパターンから、そのチューニング方法を紹介。</p>

<p><strong>＜20位＞</strong><br>
<a href="https://html5experts.jp/yomotsu/2897/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/12/webgl-1.jpg" alt="webgl-1" width="207" height="156" class="alignleft size-full wp-image-4113" /></a>
<strong><a href="https://html5experts.jp/yomotsu/2897/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">初心者でも絶対わかる、WebGLプログラミング＜基礎知識編＞</a></strong><br>
──小山田 晃浩</p>

<p>HTML5に関連する技術のひとつで、ブラウザ上で3DCGプログラミングを実現できる「WebGL」。今回のレポートでは「WebGLでどんなことができるのか」など、WebGLプログラミングの基礎知識について紹介しました。</p>

<p>2013年は多くの方に「HTML5 Experts.jp」をご覧いただき、執筆陣・編集部共々感謝しています。本当にありがとうございました。来年もどうぞよろしくお願いいたします！</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
