やっぱり、「メトロ」といえば、これでしょう?
HTML5 の canvas を利用して、東京メトロUI を実現している方なんて、誰もいませんからッ!!!
HTMLでメトロUIっぽい画面をつくってみた ? テスターですが何か?
[inline]
[script type=”text/javascript”]
[/script]
[/inline]
ソースコードはこちら
<canvas id="sample1" style="background-color:white;" width="1000" height="600">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
<script type="text/javascript">
<!--
function sample() {
var canvas = document.getElementById('sample1');
if (!canvas.getContext) return ;
var ctx = canvas.getContext('2d');
metro( ctx, 60+(100+20)*0,75, 'rgb(243,173,0)',"G" );
metro( ctx, 60+(100+20)*1,75, 'rgb(227,27,11)',"M" );
metro( ctx, 60+(100+20)*2,75, 'rgb(208,200,184)',"H" );
metro( ctx, 60+(100+20)*3,75, 'rgb(11,157,227)',"T" );
metro( ctx, 60+(100+20)*4,75, 'rgb(3,168,90)',"C" );
metro( ctx, 60+(100+20)/2*1,75+150, 'rgb(217,175,82)',"Y" );
metro( ctx, 60+(100+20)/2*3,75+150, 'rgb(147,127,185)',"Z" );
metro( ctx, 60+(100+20)/2*5,75+150, 'rgb(0,175,149)',"N" );
metro( ctx, 60+(100+20)/2*7,75+150, 'rgb(171,91,25)',"F" );
}
function metro(ctx,x,y,col,m)
{
ctx.beginPath();
ctx.fillStyle = col;
ctx.arc(x,y,50,0,Math.PI*2,true);
ctx.fill();
ctx.beginPath();
ctx.arc(x,y,25,0,Math.PI*2,true);
ctx.fillStyle = 'rgb(255,255,255)';
ctx.fill();
ctx.beginPath();
ctx.font = "bold 42px 'Arial'";
ctx.fillStyle = "black";
ctx.textAlign = "center";
ctx.fillText(m, x, y+15);
}
// 実行
sample();
//-->
</script>

本当は svg で作りたいところ。本家? metroUI に合わせて、hover ぐらいはつけたいですね。
実は、ipad で見ると、Arial Black のフォントがないから明朝体になって東京メトロっぽくないです。複数のフォントに対応することはできるのかな?