ITエンジニア/デザイナ向けにオープンソースを毎日紹介

WebアプリケーションはAjaxを多用するので処理状態を分かりやすくためローディングアイコンを使うと良いでしょう。通常その手のリソースにはアニメーションGIFが使われますが、色やサイズを変えたいと思う度に素材を作らないといけないのは不便です。

そこで新しいローディングアイコンを提供してくれるのがLoaders Kitです。なんとCSS3を使って多彩なローディングアイコンを提供しています。

全体像としてはこんな感じです。12種類のローディングアイコンが公開されています。
全体像としてはこんな感じです。12種類のローディングアイコンが公開されています。

画像では分かりづらいので動画にて。

実際の使い方ですが、例えば左上のタイマーの場合は次のようなスタイルシートになっています。

/* Timer*/
.timer{
    width: 24px;
    height: 24px;
    background-color: transparent;
    box-shadow: inset 0px 0px 0px 2px #fff;
    border-radius: 50%;
    position: relative;
    margin: 38px auto;/* Not necessary- its only for layouting*/    
 }
.timer:after, .timer:before{
    position: absolute;
    content:"";
    background-color: #fff;
}
.timer:after{
    width: 10px;
    height: 2px;
    top: 11px;
    left: 11px;
    -webkit-transform-origin: 1px 1px;
       -moz-transform-origin: 1px 1px;
            transform-origin: 1px 1px;
    -webkit-animation: minhand 2s linear infinite;
       -moz-animation: minhand 2s linear infinite;
            animation: minhand 2s linear infinite;
}

.timer:before{
    width: 8px;
    height: 2px;
    top: 11px;
    left: 11px;
    -webkit-transform-origin: 1px 1px;
       -moz-transform-origin: 1px 1px;
            transform-origin: 1px 1px;
    -webkit-animation: hrhand 8s linear infinite;
       -moz-animation: hrhand 8s linear infinite;
            animation: hrhand 8s linear infinite;
}

@-webkit-keyframes minhand{
    0%{-webkit-transform:rotate(0deg)}
    100%{-webkit-transform:rotate(360deg)}
}
@-moz-keyframes minhand{
    0%{-moz-transform:rotate(0deg)}
    100%{-moz-transform:rotate(360deg)}
}
@keyframes minhand{
    0%{transform:rotate(0deg)}
    100%{transform:rotate(360deg)}
}

@-webkit-keyframes hrhand{
    0%{-webkit-transform:rotate(0deg)}
    100%{-webkit-transform:rotate(360deg)}
}
@-moz-keyframes hrhand{
    0%{-moz-transform:rotate(0deg)}
    100%{-moz-transform:rotate(360deg)}
}
@keyframes hrhand{
    0%{transform:rotate(0deg)}
    100%{transform:rotate(360deg)}
}

後はHTML側では

<div class="timer"></div>

と記述するのみです。beforeとafter、キーフレームの設定によって様々なローディングアイコンを表現しています。


利点としてはやはり大きさを自由に変えられる、色を自由に変更できるということではないでしょうか。またスタイルシートであればJavaScriptとの親和性も高いので表示したり消したり、アイコンが上から降ってきたりといったイベント連携も容易にできるでしょう。

Loaders KitはCSS3製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

Loaders Kit - By Viduthalai

viduthalai1947/loaderskit

 

MOONGIFTの関連記事

  • DevRel
  • Com2