ローディングのアニメーションの次の段階、インターフェイスプレビューに対応するための軽量スタイルシート
Post on:2017年5月29日
Webページやスマホアプリを読み込む際に、ローディングのアニメーションを表示するのをよく見かけます。しかし、最近ではFacebookやSlackなどでインターフェイスプレビューとして、表示される予定のコンテンツをプレースフォルダーで先に表示しています。
表示される予定のコンテンツとして利用できる画像や見出しやテキストなどをプレースフォルダーで表示できる軽量のスタイルシートを紹介します。
そのまま使用してもよし、カスタマイズもCSSベースで簡単にできます。
mockaのデモ
デモページでは、mockaでスタイルしたコンテンツを確認できます。
mockaの使い方
Step 1: 外部ファイル
当スタイルシートを外部ファイルとして、記述します。
1 2 3 4 |
<head> ... <link rel="stylesheet" href="mocka.min.css"> </head> |
CSSの中身はわずか、500bytesなので、HTMLに直接記述してもよいですね。
Step 2: HTML
ダミー画像、ダミーテキストを配置したい箇所に、HTMLを記述します。
1 2 3 4 5 |
<div class="mocka-container"> <span class="mocka-media"></span> <span class="mocka-heading"></span> <span class="mocka-text"></span> </div> |
-
- .mocka-container
- ダミーのコンテナ
-
- .mocka-media
- ダミーの画像
-
- .mocka-heading
- ダミーの見出し
-
- .mocka-text
- ダミーのテキスト
カスタマイズ
スタイルシートは非常にシンプルなので、スタイルを簡単に変更できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
@-webkit-keyframes mocka-dot-a { 8% { -webkit-transform: translateY(0); } 22% { -webkit-transform: translateY(-0.3125rem); } 36% { -webkit-transform: translateY(0); } } @keyframes mocka-dot-a { 8% { transform: translateY(0); } 22% { transform: translateY(-0.3125rem); } 36% { transform: translateY(0); } } @-webkit-keyframes mocka-dot-b { 36% { -webkit-transform: translateY(0); } 50% { -webkit-transform: translateY(-0.4375rem); } 64% { -webkit-transform: translateY(0); } } @keyframes mocka-dot-b { 36% { transform: translateY(0); } 50% { transform: translateY(-0.4375rem); } 64% { transform: translateY(0); } } @-webkit-keyframes mocka-dot-c { 64% { -webkit-transform: translateY(0); } 78% { -webkit-transform: translateY(-0.3125rem); } 92% { -webkit-transform: translateY(0); } } @keyframes mocka-dot-c { 64% { transform: translateY(0); } 78% { transform: translateY(-0.3125rem); } 92% { transform: translateY(0); } } .mocka-container { position: relative; width: 20rem; height: 9.5rem; background: #fafafa; border-radius: 0.125rem; border: 0.0625rem solid #acacac; } .mocka-media, .mocka-media:before, .mocka-media:after, .mocka-heading, .mocka-heading:before, .mocka-heading:after, .mocka-text, .mocka-text:before, .mocka-text:after { position: absolute; background: #c9c9c9; } .mocka-media { top: 0.5rem; left: 0.5rem; width: 4rem; height: 4rem; } .mocka-media:before, .mocka-media:after { top: 2rem; width: 0.5rem; height: 0.5rem; border-radius: 1rem; background: #7a7a7a; content: ''; } .mocka-media:before { left: 0.75rem; -webkit-animation: mocka-dot-a 1.8s ease infinite; animation: mocka-dot-a 1.8s ease infinite; } .mocka-media:after { left: 1.75rem; -webkit-animation: mocka-dot-b 1.8s ease infinite; animation: mocka-dot-b 1.8s ease infinite; } .mocka-heading { top: 1.125rem; left: 5rem; width: calc(100% - 5.5rem); } .mocka-heading, .mocka-heading:before { height: 0.875rem; } .mocka-heading:before, .mocka-heading:after { content: ''; } .mocka-heading:before { top: 1.5rem; width: 85%; } .mocka-heading:after { top: 1.375rem; left: -1.75rem; width: 0.5rem; height: 0.5rem; border-radius: 1rem; background: #7a7a7a; -webkit-animation: mocka-dot-c 1.8s ease infinite; animation: mocka-dot-c 1.8s ease infinite; } .mocka-text { top: 5.25rem; left: 0.5rem; width: calc(85% - 1rem); } .mocka-text, .mocka-text:before, .mocka-text:after { height: 0.75rem; } .mocka-text:before, .mocka-text:after { content: ''; } .mocka-text:before { top: 1.25rem; width: calc(120% - 1rem); } .mocka-text:after { top: 2.5rem; width: 90%; } |
sponsors