日記 | ヨモツネット text ja http://www.yomotsu.net/wp/

日記

マークアップ言語で図画やロゴを描く text ja 2010-06-15 http://www.yomotsu.net/wp/?p=586 CSS, HTML 5, SVG

マークアップ言語で図画やロゴを描く

最近、HTML と CSS を使い、Opera のロゴや、ドラえもんアンパンマンを描画するといったネタをしばしば目にします。例えば HTML と CSS の表現力を利用すれば SVG のロゴを描画することもできます。

border-radius による角丸や transform による変形などを使えばいろいろな表現ができるようになりますが、一般的な CSS はあくまでも文書の装飾であり、図画の描画をするための技術ではありません。CSS のベンチマーク的にネタとして試す分には別にいいのですが…。

次に用意したのは前記のロゴを SVG を用いて描画した demo です。

スクリーンショット : SVG が描画された様子とそのソースコード。ベクター画像なので図画のエッジは綺麗に描画される。SVG とはベクターグラフィクスを描画するためのマークアップ言語 (XML) です。例えば円や矩形、ベジェ曲線の描画、グラデーションなどを利用することができます。Adobe Illustrator のデータに似ています。アニメーションもできるので Flash 4 くらいのことができます。現在は XHTML 内や、img 要素などの埋め込み対象として利用できます。また、HTML5 では <svg> 要素が登場し、より扱いやすくなる予定です。

e.g.

<head>
  <title></title>
</head>
<body>
  <h1>circle !</h1>
  <svg>
    <circle cx="50" cy="50" r="30" fill="#00f"/>
  </svg>
</body>

CSS ばかりではなく、SVG に注目してみるのも面白いと思います。ここでは簡単な図画を例にしましたが、オーサリングツールを使えばとか Firefox のロゴを SVG で描画することもできます。

Raphaël を使う

SVG は IE6 の存在もあり、今すぐに実務で使うのは難しいです。いまベクターグラフィックスを描画したいなら Raphaël を利用するとよさそうです。

Raphael は JavaScript でコードを書くと自動でベクターグラフィックスとして出力してくれるライブラリです。コードの書き方は SVG と canvas の中間のような。SVG または canvas のどちらかを書いた経験があればすぐに書くことが出来るんじゃないでしょうか。

試しに Raphael を使用してみました。SVG から Raphaël に置き換える感覚は XML から JSON を書くみたいな。例えば、円を描くには

var paper = Raphael("testDiv", 600, 600);
paper.circle().attr({cx:100, cy:100, r:50, stroke: "none", fill:"#f00"})

とします。

しっかり IE6 でも描画されます (IE には VML として出力されます)。ただし、VML の仕様にあわせて text に transform が使えないなどの縛りがあります。

コメントはありません

CSS Nite LP 9.2 (reprise) フォローアップ text ja 2010-06-07 http://www.yomotsu.net/wp/?p=578 HTML 5, イベント / セミナーレポート

CSS Nite LP 9.2 (reprise) フォローアップ

写真 : 益子さんと共に登壇している様子。 撮影 : 飯田氏6 月 5 日に行われた CSS Nite LP 9.2 で HTML5 についてのセッションで益子さんと共に登壇をいたしました。

4 月に行われた CSS Nite LP 9 の内容に加え、文書構造とその関連要素型の解説、canvas や svg、math などの埋込み要素型についても触れました。

アンケートのコメントとしていくつか質問をいただきましたので以下にまとめました。補足として参考にしていただけば幸いです。

a 要素などに音をつけたりすることは可能でしょうか ?

可能です。audio 要素は JavaScript と連携することができるので、例えば a 要素のマウスオーバー時に特定の音声を再生するといったことができます。もちろん、 a 要素以外に再生イベントを割り当てることも可能です。簡単な demo を作成しましたのでご参考にどうぞ。

マウスオーバー時に音声を再生する demo (Fx, Opera, Webkit (Desktop, iPad))

ただ、現在の iPhone では video や audio の再生が Safari 内で実行されないので iPhone, iPod touch への応用はいまのところ難有りです。iPad は問題ありません。

video 要素は IE で再生できるのでしょうか ? また、それぞれの Web ブラウザーでサポートされているファイル形式は ?

video 要素は現状、Fx, Opera, Webkit 系で対応しています。また IE 9 から対応予定です。残念ながら IE 6, 7, 8 では video 要素で動画を再生することはできませんが、JavaScript と SWF を組み合わせた フォールバック (代替手段) は既にいくつか知られています。例えば flowplayer を利用した html5mediaVideo JS、JW Player を利用した Video For Everybody などが存在します。

また、現時点で各 Web ブラウザーが対応している動画の形式は以下のとおりです。

各ブラウザーが対応する video コーデック
FirefoxOperaSafariChromeIE9IE6~8
H.264 (mp4,mov)×××
Ogg Theora××?×
WebM×△?×

video 要素、audio 要素のコントロール部分をデザインすることは可能でしょうか ?

はい。可能です。JavaScript で video や audio に命令することができるので JavaScript と CSS を組み合わせて実現できます。video 要素を例にとって demo を作成してみましたのでご参考にどうぞ。

video 要素のコントロールをカスタマイズした demo

Dreamweaver に機能拡張などを追加していますか ?

はい。Adobe Dreamweaver CS5 HTML5 Pack をインストールしています。この機能拡張を使うことで、HTML5 の要素型と属性や CSS3 入力補完が追加されたり、Multiscreen Preview panel の機能を利用できます。

また、セッションとは直接関係ないのですが「ゲーム好きですか ?」という質問もいただきました。反応していただいてありがとうございます。一応…Fantasy Earth Zero というゲームをやっています !

コメントはありません

Google I/O で気になった部分 text ja 2010-05-20 http://www.yomotsu.net/wp/?p=566 CSS, Firefox, HTML 5, Internet Explorer, Opera, Web, Web ブラウザー

Google I/O で気になった部分

気になった部分の簡単なまとめ。後で見直す用です。

WebM

<video> でも使われることになる新しいファイル形式。動画部分に VP8、音声部分に Ogg Vorbis をつかった Matroska ベースのコンテナ。H.264 と違い、ロイヤリティーフリーのオープンソース。Ogg Theora と違い、高圧縮で高画質。拡張子は .webm

Chrome, Firefox, Opera でサポートする予定。IE9 は VP8 コーデックをインストールすることで利用することができる予定。Safari は…どうなるか。ブラウザーのほかにも Skype, Adobe Flash, Android, YouTube などでもサポートしていく。

Adobe Dreamweaver CS5 HTML5 Pack

Dreamweaver CS5 では直接 HTML5, CSS3 はサポートしないけど、エクステンションとしてサポートする。

Google App Engine for Business

SSL (HTTPS) と SQL が使えるようになる

Google Storage for Developers

Amazon S3 みたなオンラインストレージの Web サービス。領域 100GB、転送量 300GB / 月までを無料で利用可能。

Google Font API 

Google が WebFonts をホストする。Google Font API をつかっていれば様々な Web サイトから同一のリソースを参照することになるので閲覧者はローカルのキャッシュを使うことができ、ダウンロードの負荷を軽減することができる…はず。以下のように CSS を読み込めば利用可能。

<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Tangerine">
<style>
body {
  font-family: 'Tangerine';
}
</style>

コメントはありません

CSS Nite LP 9, HTML5 マークアップのセッションの資料と補足など text ja 2010-04-18 http://www.yomotsu.net/wp/?p=562 HTML 5, 執筆 / 講演など

CSS Nite LP 9, HTML5 マークアップのセッションの資料と補足など

写真 : 400 人ほどのご参加があり、沢山の方にお聞きいただきました。2010 年 4 月 17 日に開催された CSS Nite LP9 の HTML5 マークアップのセッションに登壇いたしました。当日使用した一部の資料を以下に公開し、あわせて補足などをまとめました。

おさらいと補足

HTML5 では従来の XHTML1.0 で存在した要素型に加え、28 の新しい要素型が増える予定です。また、いくつかの既存の要素型は意味がかわります。

セクション関連の要素

セクショニング系の要素型として、section, article, aside, nav が新たに登場予定です。これらの要素型を利用することで、HTML の構造をより明確にすることができます。セクショニング系の要素型は基本的に見出しの影響範囲を包含するように利用します。

例えば、今回利用したサンプルのページでは、

  • body : なぞの野菜市場
    • nav : (見出しなし)
    • article : 取り扱う野菜について
      • section : 生産者について
        • aside : (見出しなし)
      • section : 農場について
    • nav : 商品一覧
    • aside : (見出しなし)

のような、章の入れ子構造と、役割を取得できます。この仕組みはアウトラインと呼ばれ、HTML5 の 4.4.11.1 Creating an outline に明記されています。nav : (見出しなし) の箇所のように、アウトラインに出現させるために見出しがないブロックをセクションとしてマークアップすることもできます。

HTML5 が安定した規格となり広く利用されるようになれば、検索エンジンや支援技術 (アクセシビリティ用の機器など)、や Web サービスなどが Web ページから取得できるアウトラインを有効に利用するかもしれません。

time 要素型

time 要素型は特定の日時をの日付や時刻を正確に示すための要素型です。CSS Nite LP では

<time datetime="1957-12-24">18歳の誕生日</time>

のように例を紹介しましたが、時間までを正確に示すこともできます。例えば

<time datetime="2010-04-17T06:30:00+09:00">昨日の6時半</time>

のように記述します。属性値末尾の +09:00 は日本のタイムゾーン (世界時からの時差) です。

また、記事の投稿日を意味する pubdate 属性をあわせて指定することもでき、その場合は

<time datetime="2010-04-17T06:30:00+09:00" pubdate="pubdate">2010月4月17日</time>

のよう記述します。これにより記事がどれくらい古いのかがわかるので、Web から 2010 年 4 月以降に投稿されたドキュメントを検索、などといったことができるようになるかもしれません。

video 要素型

video 要素型は動画を埋め込むことができる要素型です。羽田野さんのセッションでも紹介されていましたが、以下のようにブラウザーによってサポートしている形式が違います。そのため、今回ご紹介した作例のように複数のリソースを参照します。

<video width="320" height="240" controls="controls">
<source src="images/video_01.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt
<source src="images/video_01.ogg" type='video/ogg; codecs="theora, vorbis"' />
<p>畑の様子。冬なので作物は少なめ</p>
</video>

各ブラウザーがサポートする形式は以下のとおりです。

各ブラウザーが対応する video コーデック
FirefoxOperaSafariChromeIE6~8IE9
H.264 (mp4,mov)×××○?
Ogg Theora××?

動画形式としては、MP4 などの H.264 が一般的ですが、H.264 は Apple や Microsoft など、一部の企業のみがライセンスを持つコーデックです(AVC/H.264 Licensors)。H.264 について、現在は無料で利用することができますが将来的にどうなるかは不明なため、Mozilla や Opera はオープンなライセンスの Theora のみをサポートしています。最近では Google が VP8 というコーデックをオープンソース化しましたする計画のようです。。各ブラウザーによる対応コーデックに関しては今後まだ変化してきそうなので、その動向には敏感になっておくとよさそうです。

なお、MP4 などの形式から Ogg Theora に変換する対応にはシンプルな MiniCoder や多機能な SUPER c が便利です。

最後に

CSS Nite LP 9 でのご清聴、ありがとうございました。

導入編のような位置づけだったために、あまり深い内容にならず、深く掘り下げた情報を期待していた参加者さんには満足いただけないであろう内容となってしまいましたが、今後別の機会やこのブログにもうすこし濃い情報 (たぶん SVG ばかりですが…) をまとめていきたいと思います。

コメントはありません

HTML5 を使ってみよう ! に参加してきました text ja 2009-12-03 http://www.yomotsu.net/wp/?p=554 HTML 5, イベント / セミナーレポート

HTML5 を使ってみよう ! に参加してきました

写真 : OPERA Software オフィスのエントランス。白い壁と差し色の赤が Opera っぽさを感る内装Opera software で開催されたイベント、HTML5 を使ってみよう ! に参加をしてきました。Opera のオフィス移転後初めて中にはいりましたが、広くきれいでした !! イベントはオフィス内のリスレッシュスペースで行われました。このスペースだけでもけっこう広かったです。

  • HTML5 Japanese Interest Group の紹介
  • ライブでウェブページの HTML5 化
  • HTML5: The Web platform as an application runtime environment

の 3つのセッションがありました。以下メモ。

ミツエーリンクスの矢倉さんから HTML5 Japanese Interest Group の紹介

  • HTML5 Japanese Interest Group がありました。
  • 仕様に問題がないか、仕様をどう活用していくかを議論する
  • テストケースを用意する
  • 幅広いインプットを集められるように誰でも参加できる
  • 今後は Japanese Interest Group として何らかのフィードバックを行う予定
  • 特に ruby 要素、input mode、Web sockets などを中心に、問題がないか、足りない機能はないかを論議していきたい

自分も参加していますが、メーリングリストに登録し、受信するだけでも勉強になるかと思います。参加してみるといいです。

Opera Software の Daniel Davis さんから ライブでウェブページの HTML5 化

ライブによるマークアップも行われ HTML5 を触っていないような人にも分かりやすそうな内容でした。

  • HTML5 には 2つの面がある
    • canvas、videoといった機能
    • マークアップ
  • マークアップはUAが読むもの
  • UserAgent はブラウザだけではない
    • スクリーンリーダーなども UserAgent
    • Bots (クローラー) も UserAgent
  • いろんな UserAgent がページにアクセスする
  • マークアップは UserAgent のためでもある
  • HTML5 の語彙を利用したマークアップはページの表示は変わらないが裏側のデータは変えることができる
  • アクセシビリティ向上
    • <div id="nav"><div id="navigation"> などを <nav> として標準的にしてまとめることも目的
  • 検索エンジンが見つけやすい
    • どこが重要であるかがわかればそこを抜き出せるかもしれない
    • 日付のフォーマットが決まっていればパブリッシュした日などもわかりやすい
  • 将来のための対策
    • 将来のアプリで使われるかもしれない
  • かっこいい
    • ギークが反応する
  • HTML5 をつかったからといって劇的に表示がよくなるというわけではない。HTML4 とさほどかわらない
  • HTML5 は分野が広い マークアップだけではなく、機能的な要素や API もある
  • HTML5 は 難しい ドラッグドロップは微妙だよねととかいう話もある。でも難しいとこは使わないでもいい
  • 対応されていない
    • 発展途中なのでブラウザによって対応度合いに差がある。でも OPERA も含めてベンダーはがんばってる

W3C の Mike Smith さんから HTML5: The Web platform as an application runtime environment

写真 : Mike が壁に描いた WebSokets による双方向通信のモデル。

  • オブジェクトにブラウザからアクセスできる APIs を提供
  • (サーバーサイドではなく) クライアントサイドの API の標準化を行っている
  • Open Web Platform はクライアントサイドの技術
  • サーバー側はブラックボックス。そこから受け取る情報に注力
  • OPEN Web Platform はフォーマット (HTML, CSS, JS) + API
    • フォーマットには SVG も。(Webkit も SVG のフィルタを実装し始めている)
  • OPEN Web Platform 以外のランタイムは Java や C など
  • ゴールはマークアップ + 機能
  • Web Sockets API は HTTP ではできなかったサーバーからのリクエストも可能になる
  • (とりあえずクライアントからリクエストを送りまくっている) チャットなどの同期はスマートではなかった。Web Sockets によってこれがもっとスマートになる。
  • Web Sockets を利用すればオンラインゲームなどもできる

イベントの帰りには kotarok さん、myakura さん、neotag さんと一緒に近くの中華飯店でご飯を食べてきました。チャーハンが美味しかったみたいです。

写真 : ライブスタジオ鹿鳴館あと、目黒といえば…鹿鳴館 (スタジオ) ですね !! ライブに行きたい…。

コメントはありません

カテゴリー一覧

この Weblog の FEED

この Weblog の FEED