Meguro.css #5
https://gyazo.com/3ae3d76fb3114b7bcb98f66e3b9da8f1
4回目→Meguro.css#4
https://megurocss.connpass.com/event/120644/
CSSだけでウェブサイトをドット化する方法
https://speakerdeck.com/bcrikko/how-to-pixelize-a-website-using-only-css
ダーシノ
さくらインターネット株式会社
フロントエンドエンジニア
さくらのINFRA WARS
NES.css
ファミコン風CSSフレームワーク
世界ランク4位
GitHub公式ブログにも登場
コントリビューターは40人近くいるがメンテナはダーシノさん含めて2人
ドット表現はすべてbox-shadow
ドロップシャドウ効果をあたえるCSSプロパティ
使うのは以下だけ
code:css
box-shadow: {
inset
offset-x offser-y
}
カンマ区切りで複数指定ができる
ドット絵アニメーションもできる
key-framesで差分を指定する
https://gyazo.com/b7296b4f6523b3d267cdd240c43d5de9
box-shadowでのCSS芸はコスパがいい
参考
box-shadowを使ってCSSだけでドット絵を描き、アニメーションさせる | Black Everyday Company
box-shadow - CSS: カスケーディングスタイルシート | MDN
リニューアルを行う際にやったcssのルール作り
@yakiniku040220
nana music株式会社
DMM株式会社の子会社
サーバーサイドエンジニア
Vue.js
Nuxt.js
Django
Firebase
Vue.jsコアスタッフ
リニューアル中
SEOがよわい
使っているPythonのサポートが終わる
コードの改修が辛い
HTMLとCSSのコードが乱雑
reset.cssが存在しない
入社する前ちゃんとフロントを書いている人がいなかった
ルール作り
コーディングガイド
Qiitaの記事を参考
CSSとSassのコーディングスタイルガイドを作ってみた - Qiita
週1のレビュー会
CSSを書けるデザイナーに修正点をあげてもらってレビュー会をする
styled-componentsで脱CSSModules
https://speakerdeck.com/lemon/styled-componentsdetuo-cssmodules
@camcam_lemon
日本事務機株式会社
フロントエンドエンジニア・デザイナー
CSSModulesのメンテナンスに消耗していませんか
!important
変更したら崩れる
前書いたCSSがわからない
webpack
CSS in JSで管理する
styled-components
porpsで見た目制御
スタイリングの継承
疑似要素、疑似クラスのセレクタをほぼサポート
移行
カラー管理
16進数に変更
擬似クラス
そのままいける
多段ネスト
大規模なCSSがほど構造は複雑
attrs
定義済みのコンポーネント拡張
より動的で拡張的なコンポーネントつくり
高階関数、HOCみたいなもの
>と&
&は親セレクタへの参照
シンタックスシュガー
>は小セレクタのみの適応
まとめ
styled-componentsの表現力は sassやscssにも劣らない
大規模なcssを一度に書き換えるのは難しい
制御構文の書き換えにはattrs
複雑なcssの書き換えにはセレクター
セレクターはprops制御に書き換えよう!
CSS で MS(モビルスーツ) を作る
https://slides.com/ryamakuchi/make-ms-with-css#/
@ryamakuchi
去年6~10月までコーダーとして働いていた
業務レベルのCSSは書けるが複雑なものは無理
CSS芸人になりたい…!
強いCSS表現
線や湾曲や影のある2D のスタイル(静止画)
https://codepen.io/c5meg1012/pen/pQBPqb
https://codepen.io/rachel_web/pen/rOLRvM
2Dアニメーション
https://codepen.io/frontendzzzguy/full/zylEL
3Dスタイル(静止画)
https://codepen.io/geckotang/full/DlCdo
3Dアニメーション
https://codepen.io/YusukeNakaya/full/LXBdqJ
静止画を書こう
書きたいパーツを分解して考える
1divとして捉える
線と面という認識で絵を見る
CSSに向いている静止画はなにか?
最適な題材
ガンダム
ガンプラの要領で設計
左右対称
直線が多く線や面が多い
scssは便利
疑似要素は最大活用
変数に色を入れる
https://gyazo.com/fffec36472c6106eadd032be9cb1df29 初期設定
各カラーの変数
position: absolute;
content: '';
Nuxt.jsで開発
ポイント
末端の<div>に名前は着けない
div:nth-child(n)をたくさん使った
親要素のdivはrotate()しない
直感で動かしにくくなる
borderは基本topかleftしか使わない
便利なプロパティ
transform: skewY(10deg)
要素を傾斜変形する時に使う
好きな半円系が作れる
transform-origin: top left
原点の指定
まとめ
CSS技術力が上がった
SVGアニメーションで使いたい
絵を書く要領で書けるのでよい
.
create-nuxt-appで選べる現代の UI フレームワーク
https://speakerdeck.com/inouetakuya/modern-ui-frameworks
いのうえたくや
公式ドキュメントの翻訳、メンテナ
Vue Fes Japan 2018のサイト作成
現代のUIフレームワーク
つらさ
ちょっとだけ変更がしにくい
アプリ固有のスタイルと衝突
バージョンアップへの追随
きっかけ
create-nuxt-app
UIフレームワークの選択ステップ
bootstrap
もっともメジャー
v2 => v3のマイグレ地獄
レスポンシブ・モバイルファースト
jQuery依存(4.3)
v5からjQuery依存脱却
sass変数でカスタマイズ
一部でimportして利用できる
bulma
CSSのみ提供
意図しない挙動を起こしにくい
一部のみのスタイルも利用可能
flexboxベース
vuetify
Material Design
Tailwind CSS
UI Kitではない
デフォルトのテーマを持たない
element-ui
VueのUIコンポーネントではメジャー
スタイルがコンポーネントに閉じられているわけではない
グローバルなクラス設定
el-プレフィックスがあるのでバッティングしづらい
デスクトップUIに特化しているのでレスポンシブではない
buefy
Bulmaベース
そのほか
tachons
できるだけ小さいCSS
10.5KB
CSS variables
Vue.js向け
iView
Ant Design Vue
まとめ
SassやLessの変数でカスタマイズしやすく
スタイルの衝突をさけやすくなった
バージョンアップへの追随は難点
セマンティックバージョニングなのが救い
オブジェクト指向プログラミングをSCSSで雑に(小声)紹介してみる
https://slides.com/omiend/scss/#/
@omiend
anconsulting, inc,
https://craftors-port.jp
rryが後輩
java、Scala好き
ScalaMatsuriのコアスタッフ
Nuxt.jsとRuby on Railsでアプリ作成
OOCSSとはまったく関係ない
オブジェクト指向って?
プログラムを「オブジェクト」の集合体として構築し、オブジェクトはデータ(状態)を主とし、コード(動作)を従として構成され、無数のオブジェクトが相互に作用し合うようにして任意の処理が実行される。
よくわからん
Javaのソースコードより
https://code.sololearn.com/c36xj3tS9AEc/#java
クラス
動作させるオブジェクトを用意する
共通することを考える
クラスという単位で実装する
抽象化〜継承〜具象化
共通するもの親オブジェクト
共通の処理
動作対象を子オブジェクトと捉える
物によってちがう動作を抽象化
継承(extend)して具象化
多様化
ポリモーフィズム
何かを受け取っても共通の動作する行為自体は問題なく処理する
SCSSでオブジェクト指向
クラス→ class
抽象化→ class/@extend
親クラスを用意
abstarct class
再利用しづらいかも
できてもカオス化しそう
それくらいだったらOOCSSでいいんじゃない?
concrete classで継承・具象
多様化→ @mixin/@include
デモ
https://codepen.io/omiend/pen/VRjMKw
Dark side of the Web
https://speakerdeck.com/jxck/dark-side-of-the-web
Jxck
prefers-color-scheme を用いた Dark Mode 対応と User Preference Media Features | blog.jxck.io
macOSのアップデートでDark modeのCSSが設定できるように
code:light_and_dark.css
@media (prefers-color-scheme: light) {
background-color: white;
color: black;
}
@media (prefers-color-scheme: dark) {
background-color: black;
color: white;
}
テーマカラーをまとめておくと吉
code:css
@media (prefers-color-scheme: light) {
--theme-base: white;
--theme-font: black;
--theme-accent: red;
}
@media (prefers-color-scheme: dark) {
--theme-base: white;
--theme-font: black;
--theme-accent: red;
}
body {
background-color: var(--them-base);
font: var(--them-font);
strong: var(--them-accent);
}
画像はどうする?
filter: invert;で反転させる
filter: grayscale;でなんとなくそれっぽくする
<code>部分は?
filter: invertすると
絵文字が色反転しちゃう
ダークモード用に設定してあげる
参考:ep48 Monthly Web 201901 | mozaic.fm
34:45〜 ブログでの画像・シンタックスハイライト問題の言及
ワークショップ「Try! CSS 3D」
https://slides.com/yusukenakaya/try-css-3d
サイコロをつくる
表と裏を足すと7になる
1. Hello 3D world!
https://codepen.io/YusukeNakaya/pen/EMxqGg
矢印の方向が+
z軸は手前になるほど+になる
transform: translate3dをいじってみる
translate: translateX(), translateY(), translateZ()と同義
rotateは回転
rotate3d
引数は0, 1, -1
2. Property Value
3Dに重要プロパティ
transform
translate
移動
rotate
回転
scale
大きさ
大きくすると荒れるのであまり大きくしない
skew
傾き
perspective
perspective - CSS: カスケーディングスタイルシート | MDN
数値を大きくすれば平面化
数値を小さくすれば湾曲化
500~1000pxが現実ライン?
大きくするとブラウザの挙動がおかしくなる
transform-style
flat
preserve-3d
IE, Edgeでは使えないので実務では使えない
親要素に指定
3. Transform tips
transform: rotateY(90deg) translateZ(100px);
transform: translateZ(100px) rotateY(90deg);
実は違う指定になる
順番が大事
order list
1, 2, 3, 4 ...
非常に重要
transform: translateX(10px), translateX(20px);
Add
合計30pxになる
transform: 1 + 2 + 3 ...
rotateは鬼門
フォークしたものをグリグリ触ってみよう
4. Making of DICE
フォークしたcodepenをいじる
サイコロ
6枚の壁がある
divで作っていく
code:dice.html
<div class="dice">
<div class="dice_wall">1</div>
<div class="dice_wall">2</div>
<div class="dice_wall">3</div>
<div class="dice_wall">4</div>
<div class="dice_wall">5</div>
<div class="dice_wall">6</div>
</div>
ワークショップ結果:https://codepen.io/yamanoku/pen/MxJjwd
https://gyazo.com/a6012819ae8de3dc531307f16fa32d51