誰の役にも立たないじゃないか...!!
Pure CSS UI
中矢 雄介
@s14garnet
- 株式会社オロ
- テクニカルクリエイター / CSS振付師
- HTML, CSS, JavaScript, Flash...
- アニメーション、インタラクション
- スポーツカー、スノボ、ゲーム
1年くらい本気でCSS研究してた
前歯、かける
{
Pure
CSS
UI
誰の
役にも
立たんがな
目指すUI
- クリックしたら何かが起こる
- マウスオンしたら何かが起こる
使う魔法
- checked
- hover
- ~
クリックしたら
何かが起こる!?
インターフェイス
<input type="radio">
<input type="checkbox">
動きを想像するよ
これが...
こうなる!!
Blue
Green
Green
Blue
Red
Red
コードを考えるよ
Pug
Sass
input.red(type="radio" name="color" checked)
| Red
input.green(type="radio" name="color")
| Green
input.blue(type="radio" name="color")
| Blue
.graphic ♥
.graphic {
.red:checked ~ & {
background: red;
}
.green:checked ~ & {
background: green;
}
.blue:checked ~ & {
background: blue;
}
}
やってみるよー
やってみたよー
Pure CSS UI
DEMO
checked
Joint Animation
3D Box
Showcase Car
マウスオンしたら
何かが起こる!?!?
インターフェイス
hoverの対象要素は
なんでもOK
動きを想像するよ
これが...
こうなる!!
R
G
B
R
G
B
もうちょっと工夫するよ
これが...
こうなる!!
インターフェイスは隠す!!
コードを考えるよ
Pug
Sass
.red
.green
.blue
.graphic ♥
.graphic {
pointer-events: none;
.red:hover ~ & {
background: red;
}
.green:hover ~ & {
background: green;
}
.blue:hover ~ & {
background: blue;
}
}
やってみるよー
やってみたよー
Pure CSS UI
Demo
hover
Happy New Year 2018
Mt. Fuji
Creepy Window
Chase Ameba
Chase Ameba (Grid確認用)
Attention
トリッキーで
ワクワクすっぞ
役に立たなさ
マークアップの制約
- 兄弟要素しか指定できない
- 親要素にさかのぼれない
CSSコーディングの制約
- コード量が多く見通しが悪い
- 状態管理が複雑
イベントハンドリングは
JavaScript でやろっか...
follow me
- twitter : @s14garnet
- codepen : Yusuke Nakaya
- dribbble : Yusuke Nakaya
Thanks!
}
誰の役にも立たない Pure CSS UI
By yusukenakaya
誰の役にも立たない Pure CSS UI
CSS のみで、簡単なクリックイベントやマウスオンイベントを実装できる、というお話です。
- 1,289