SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
自己紹介
なかしまこうき
前職: 組込系のSE
現職: フロントエンドエンジニア
kouki.nakashima
@kuronekomichael
LESSとは?
LESSとは?
の前に
CSSに
満足してますか?
✔
CSSに満足してますか?
• よいところ
•容易
✗
•よくないところ
•冗長
•読みづらい
•再利用しづらい
CSSメタ言語
• いわゆる中間言語
• わかりやすく書いて、利用する時はcssに変換して使う
• 「アセンブラ書くの大変だから別の言語で書こうぜ」
みたいな感じ。(そんな大仰じゃないけど)
• JavaScriptにも同じ様な流れがきてる
• Haxe, CoffeeScript, JSX, TypeScript等など
• CSSメタ言語の選択肢も色々
• Sass(SCSS)、Stylus、LESS、TASS等など
喧嘩は(・A・)イクナイ!!
LESSの導入
LESSの導入
(a) 動的:ページ表示時に変換して使う
or
(b) 静的:事前にcssに変換しておいて使う
LESSの導入:(a)動的に組み込む
• lessファイルと一緒に、less.js(http://lesscss.org/)をページに
組み込むだけ
• less.jsが自動的にlessを抽出→cssに変換して展開してくれる
• 長所:
• 超手軽
• 短所:
• コスト高い(変換コスト、通信コスト)
• IEだと31ファイル制限がある
LESSの導入:(a)動的に組み込む
LESSの導入:(b)静的に組み込む
• 事前にツールでless→cssファイルに変換しておく
• HTMLには今まで通り、cssとして組み込む
• ツールはCUIもGUI (LESS.app, WINLESS)も充実
• 長所:良いことしかない
• 短所:超が付くほど手軽じゃなくなる
LESSの機能
LESSの機能:(1/4)変数
//CSS
	
  	
  	
  	
  .feed-­‐detail	
  {
	
  	
  	
  	
  	
  	
  	
  	
  word-­‐wrap:	
  break-­‐word;
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  #fffbdc;
	
  	
  	
  	
  }
	
  	
  	
  	
  .service-­‐header	
  .posted-­‐title	
  {
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  #fffbdc;
	
  	
  	
  	
  }
//LESS
	
  	
  	
  	
  @bg-­‐color-­‐common:	
  #fffbdc;
	
  	
  	
  	
  .feed-­‐detail	
  {
	
  	
  	
  	
  	
  	
  	
  	
  word-­‐wrap:	
  break-­‐word;
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  @bg-­‐color-­‐common;
	
  	
  	
  	
  }
	
  	
  	
  	
  .service-­‐header	
  .posted-­‐title	
  {
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  @bg-­‐color-­‐common;
	
  	
  	
  	
  }
LESSの機能:(1/4)変数
//colors.less
	
  	
  	
  	
  @bg-­‐color-­‐common:	
  #fffbdc;
	
  	
  	
  	
  @bg-­‐color-­‐disable:	
  #ccc;
//detail.less
	
  	
  	
  	
  @import	
  "colors.less"
	
  	
  	
  	
  .feed-­‐detail	
  {
	
  	
  	
  	
  	
  	
  	
  	
  word-­‐wrap:	
  break-­‐word;
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  @bg-­‐color-­‐common:
	
  	
  	
  	
  }
//main.less
	
  	
  	
  	
  @import	
  "colors.less"
	
  	
  	
  	
  .service-­‐header	
  .posted-­‐title	
  {
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  @bg-­‐color-­‐common:
	
  	
  	
  	
  }
LESSの機能:(2/4)入れ子
//CSS
.service-­‐header	
  {
	
  	
  	
  	
  background-­‐color:	
  #cbe3dc;
}
.service-­‐header	
  .posted-­‐title	
  {
	
  	
  	
  	
  font-­‐weight:	
  bold;
	
  	
  	
  	
  background-­‐color:	
  #fffbdc;
}
.service-­‐header	
  .posted-­‐title	
  .date-­‐text	
  {
	
  	
  	
  	
  font-­‐size:	
  .9em;
	
  	
  	
  	
  color:	
  #cc6639;
}
.service-­‐header	
  .posted-­‐title	
  .date-­‐text:hover	
  {
	
  	
  	
  	
  color:	
  #99cc39;
}
LESSの機能:(2/4)入れ子
//LESS
.service-­‐header	
  {
	
  	
  	
  	
  .posted-­‐title	
  {
	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  #fffbdc;
	
  	
  	
  	
  	
  	
  	
  	
  .date-­‐text	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  font-­‐size:	
  .9em;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  color:	
  #cc6639;
	
  	
  	
  	
  	
  	
  	
  	
  }
	
  	
  	
  	
  	
  	
  	
  	
  .date-­‐text:hover	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  color:	
  #99cc39;
	
  	
  	
  	
  	
  	
  	
  	
  }
	
  	
  	
  	
  }
}
LESSの機能:(3/4)mixin
//CSS
	
  	
  	
  	
  .input-­‐container	
  {
	
  	
  	
  	
  	
  	
  	
  	
  -­‐o-­‐border-­‐radius:	
  5px;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐ms-­‐border-­‐radius:	
  5px;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐moz-­‐border-­‐radius:	
  5px;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐webkit-­‐border-­‐radius:	
  5px;
	
  	
  	
  	
  	
  	
  	
  	
  border-­‐radius:	
  5px;
	
  	
  	
  	
  }
	
  	
  	
  	
  .user-­‐output-­‐box	
  {
	
  	
  	
  	
  	
  	
  	
  	
  -­‐o-­‐border-­‐radius:	
  10px;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐ms-­‐border-­‐radius:	
  10px;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐moz-­‐barder-­‐radius:	
  10px;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐webkit-­‐border-­‐radius:	
  10px;
	
  	
  	
  	
  	
  	
  	
  	
  border-­‐radius:	
  10px;
	
  	
  	
  	
  }
LESSの機能:(3/4)mixin
//LESS
	
  	
  	
  	
  .b-­‐radius(@radius:	
  5px)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  -­‐o-­‐border-­‐radius:	
  @radius;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐ms-­‐border-­‐radius:	
  @radius;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐moz-­‐border-­‐radius:	
  @radius;
	
  	
  	
  	
  	
  	
  	
  	
  -­‐webkit-­‐border-­‐radius:	
  @radius;
	
  	
  	
  	
  	
  	
  	
  	
  border-­‐radius:	
  @radius;
	
  	
  	
  	
  }
	
  	
  	
  	
  .input-­‐container	
  {
	
  	
  	
  	
  	
  	
  	
  	
  .b-­‐radius;
	
  	
  	
  	
  }
	
  	
  	
  	
  .user-­‐output-­‐box	
  {
	
  	
  	
  	
  	
  	
  	
  	
  .b-­‐radius(10px);
	
  	
  	
  	
  }
LESSの機能:(4/4)演算,関数
@color:	
  #666	
  -­‐	
  #222;
h2	
  {
	
  	
  	
  	
  color:	
  @color;
}
h2	
  {
	
  	
  	
  	
  color:	
  #444;
}
@color:	
  #3399cc;
.owner-­‐link	
  {
	
  	
  	
  	
  color:	
  @color;
}
.owner-­‐link:hover	
  {
	
  	
  	
  	
  color:	
  lighten(@color,	
  10%);
}
 lighten(@color,	
  10%);	
  	
  	
  	
  	
  //	
  @colorより10%だけ明度が高い値
	
  darken(@color,	
  10%);	
  	
  	
  	
  	
  	
  //	
  @colorより10%だけ明度が低い値
	
  saturate(@color,	
  10%);	
  	
  	
  	
  //	
  @colorより10%だけ彩度を上げた値
	
  desaturate(@color,	
  10%);	
  	
  //	
  @colorより10%だけ彩度を下げた値
	
  fadein(@color,	
  10%);	
  	
  	
  	
  	
  	
  //	
  @colorより10%だけ透明度が高い値
	
  fadeout(@color,	
  10%);	
  	
  	
  	
  	
  //	
  @colorより10%だけ透明度が低い値
	
  fade(@color,	
  50%);	
  	
  	
  	
  	
  	
  	
  	
  //	
  @colorを50%透過した値
	
  spin(@color,	
  10);	
  	
  	
  	
  	
  	
  	
  	
  	
  //	
  @colorより10度だけ色相が大きい値
	
  spin(@color,	
  -­‐10);	
  	
  	
  	
  	
  	
  	
  	
  //	
  @colorより10度だけ色相が小さい値
	
  mix(@color1,	
  @color2);	
  	
  	
  	
  //	
  @color1と@color2をミックスした値
LESSってみた感想
•スキルレベルがバラバラのチームでも・・・
• 学習コストがほぼゼロで、立ち上がることができた
•SinglePageAppを3名が同時並行作業でも・・・
• ネストさせることでクラス名の衝突を回避できた
•LESSの全機能を無理に使う必要はない!
• 入れ子とmixinだけで、導入のメリットは充分にあった
• 変数、ビルトイン関数、演算は結局使ってない
Questions?
ご静聴ありがとう
ございました

Weitere ähnliche Inhalte

Ähnlich wie Less - first step

LESS楽しいれす(^q^)
LESS楽しいれす(^q^) LESS楽しいれす(^q^)
LESS楽しいれす(^q^) taiju higashi
 
Css preprocessorの始めかた
Css preprocessorの始めかたCss preprocessorの始めかた
Css preprocessorの始めかたHiroki Shibata
 
Sass
SassSass
SassSu Ga
 
Sass introduction (jscafe 10)
Sass introduction (jscafe 10)Sass introduction (jscafe 10)
Sass introduction (jscafe 10)Ryuma Tsukano
 
Sass/Compass講習会
Sass/Compass講習会Sass/Compass講習会
Sass/Compass講習会Beeworks
 
イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016Sou Lab
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるYutaro Miyazaki
 
WebデザイナーのためのSass/Compass入門 先生:石本 光司
WebデザイナーのためのSass/Compass入門 先生:石本 光司WebデザイナーのためのSass/Compass入門 先生:石本 光司
WebデザイナーのためのSass/Compass入門 先生:石本 光司schoowebcampus
 
WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門Koji Ishimoto
 
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>Horiguchi Seito
 
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編Toshimichi Suekane
 
Sassを使ってみよう
Sassを使ってみようSassを使ってみよう
Sassを使ってみようGIG inc.
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and ProgrammingTaku AMANO
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ知己 久保
 

Ähnlich wie Less - first step (20)

Sass(SCSS)について
Sass(SCSS)についてSass(SCSS)について
Sass(SCSS)について
 
LESS楽しいれす(^q^)
LESS楽しいれす(^q^) LESS楽しいれす(^q^)
LESS楽しいれす(^q^)
 
Css preprocessorの始めかた
Css preprocessorの始めかたCss preprocessorの始めかた
Css preprocessorの始めかた
 
Sass
SassSass
Sass
 
実践Sass 前編
実践Sass 前編実践Sass 前編
実践Sass 前編
 
First sass
First sassFirst sass
First sass
 
Sass introduction (jscafe 10)
Sass introduction (jscafe 10)Sass introduction (jscafe 10)
Sass introduction (jscafe 10)
 
Sass/Compass講習会
Sass/Compass講習会Sass/Compass講習会
Sass/Compass講習会
 
イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016
 
CSS Preprocessor Hands-on
CSS Preprocessor Hands-onCSS Preprocessor Hands-on
CSS Preprocessor Hands-on
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考える
 
WebデザイナーのためのSass/Compass入門 先生:石本 光司
WebデザイナーのためのSass/Compass入門 先生:石本 光司WebデザイナーのためのSass/Compass入門 先生:石本 光司
WebデザイナーのためのSass/Compass入門 先生:石本 光司
 
WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門
 
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>
 
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
 
Sassを使ってみよう
Sassを使ってみようSassを使ってみよう
Sassを使ってみよう
 
壊れやすいCSS
壊れやすいCSS壊れやすいCSS
壊れやすいCSS
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
 
CSSの光と闇
CSSの光と闇CSSの光と闇
CSSの光と闇
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
 

Kürzlich hochgeladen

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Kürzlich hochgeladen (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Less - first step