Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ウラカタ勉強会 2016年11月度 PostCSS
Search
Urakata
December 01, 2016
Technology
0
220
ウラカタ勉強会 2016年11月度 PostCSS
Urakata
December 01, 2016
Tweet
Share
More Decks by Urakata
See All by Urakata
ウラカタ勉強会 2017年2月度 Vagrantによるローカル仮想環境の構築
urakata
2
300
ウラカタ勉強会 2017年1月度 最近のWebから学ぶデザイン術
urakata
0
210
ウラカタ勉強会 2016年11月度 AdminLTEの有料テンプレートが良かった
urakata
0
310
ウラカタ勉強会 2016年10月度 カタラウ勉強会
urakata
0
180
ウラカタ勉強会 2016年9月度 静的サイトジェネレータを 利用してみよう!
urakata
0
150
ウラカタ勉強会 2016年7月度 事例から学ぶ!Sass大解剖
urakata
0
350
Other Decks in Technology
See All in Technology
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
100
Lazy application authentication with Tailscale
bluehatbrit
0
170
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
450
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
1
200
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
27
9.4k
品質と速度の両立:生成AI時代の品質保証アプローチ
odasho
1
230
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
230
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
450
ゼロからはじめる採用広報
yutadayo
2
720
Connect 100+を支える技術
kanyamaguc
0
200
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Making Projects Easy
brettharned
116
6.3k
The Invisible Side of Design
smashingmag
301
51k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
960
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Site-Speed That Sticks
csswizardry
10
690
Navigating Team Friction
lara
187
15k
GitHub's CSS Performance
jonrohan
1031
460k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
49
5.5k
Building an army of robots
kneath
306
45k
Gamification - CAS2011
davidbonilla
81
5.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Transcript
None
デザイナーの中嶋です。 制作会社・フリーを経て 2008年に名案企画に入社。 ただひたすらデザインと マークアップをしてます。 最近、驚いた事 → KABAちゃんの変貌ぶり 自己紹介
None
錬金術に関係あり?
アジェンダ 1. PostCSSとは 2. PostCSSの特長 3. PostCSSを使う 4. おすすめプラグイン 5.
PostCssの現実
PostCSSとは
http://postcss.org/
A tool for transforming CSS with JavaScript JavaScriptでCSSを変換するツール CSS JS
NEW CSS
SassとPostCSSの違い • 変数 • Mixin • 四則演算 • ループ •
ネスト • Extend • 関数 • パーシャル etc... パッケージ化している
変数 SassとPostCSSの違い etc... パーシャル Mixin ネスト 四則演算 ループ 関数 必要なプラグインを選ぶ
PostCSSは • PostCSS本体だけでは、CSSに変更を加える ことはできない。 • プラグインは機能ごとに細かく分けられている • 「プラグイン」を組み合わせて使用する
PostCSSの特長
• カスタマイズ性が高い • パフォーマンスに優れている • 次世代CSSが使える
PostCSSのプラグイン • ネスト • 変数 • 四則演算 • Mixin、Extend •
ループ、条件分岐 • パーシャル • 画像サイズ取得 • 独自プロパティ • ベンダープリフィックス • プロパティの並び替え • flexboxのバグ修正 • フォールバック • コードチェック • 圧縮 • メディアクエリをまとめる • 出力コードの整形 好みのプラグインを組み合わせて使う
PostCSSのプラグイン http://postcss.parts/
PostCSSのパフォーマンス
次世代CSSが利用できる W3Cで仕様策定中の次世代 CSS をパッケージ化
PostCSSを使う
PostCSSのコンパイル コンパイルにはタスクランナーが必要
インストール $ npm i gulp-postcss --save-dev
gulpfile.js var gulp = require('gulp'); var postcss = require('gulp-postcss'); gulp.task("css",
function() { return gulp.src('./src/style.css') .pipe(postcss([])) .pipe(gulp.dest('./css')) });
プラグインを追加する var gulp = require('gulp'); var postcss = require('gulp-postcss'); gulp.task("css",
function() { return gulp.src('./src/style.css') .pipe(postcss([ require('cssnano'), require('autoprefixer')({ browsers: ['last 2 versions'] }) ])) .pipe(gulp.dest('./css')) });
おすすめプラグイン
Autoprefixer gulp.task("css", function() { return gulp.src('./src/style.css') .pipe(postcss([ require('autoprefixer')({ browsers: ['last
2 versions'] }) ])) .pipe(gulp.dest('./css')) }); ベンダープレフィックスを追加するプラグイン npm install --save-dev postcss-cssnext
cssnext npm install --save-dev postcss-cssnext 最新のCSS構文が使えるプラグイン • 変数 • カスタムセレクター
• カラー関数 etc...
CSS MQPacker メディアクエリをまとめてくれるプラグイン npm install --save-dev css-mqpacker
CSS MQPacker
PostCSSの現実
• Sassがデファクトスタンダード • Sassの拡張として使うのが良い • 次世代CSSは使い方に注意が必要
まとめ
• PostCSSはカスタマイズして使うもの • 次世代CSSは使い方に注意が必要 • パフォーマンスに優れているので、大型案件の 載せ替えにはメリットがありそう • 無理にSass移行は考えず、便利プラグインのみ を使用するのが現実的
おしまい。 ありがとうございました。