SlideShare une entreprise Scribd logo
1  sur  26
Software programming tools for creating/managing CSS files DinuSuman
What kind of software tools can be? IDE Tools for generating templates CSS Frameworks with existing plugins, … Languages that extend css 			(will be covered in this presentation)
Some Languages that extend css: Less (http://lesscss.org/) xCSS (http://xcss.antpaw.org) Sass/Scss (http://sass-lang.com/) Hss (http://ncannasse.fr/projects/hss) CleverCss (http://sandbox.pocoo.org/clevercss/)
Why simple css isn’t enough? Why do we need extending languages?
What do we get? Variables Mixins Nested Rules Functions & Operations
Variables // LESS  @color: #4D926F; #header {  color:@color; }  h2 {  color:@color;  } /* Compiled CSS */  #header {  	color: #4D926F;  }  h2 {  	color: #4D926F;  }
Mixins // LESS  .rounded-corners (@radius: 5px) {  border-radius:@radius; -webkit-border-radius:@radius; -moz-border-radius:@radius;  }  #header {  .rounded-corners; }  #footer {  .rounded-corners(10px);  } /* Compiled CSS */  #header {  	border-radius: 5px;  	-webkit-border-radius: 5px;  	-moz-border-radius: 5px;  }  #footer {  	border-radius: 10px;  	-webkit-border-radius: 10px;  	-moz-border-radius: 10px;  }
Nested Rules // LESS  #header {  h1 {  font-size: 26px;  font-weight: bold;  	}  p {   font-size:12px;  a {  text-decoration: none;  &:hover {  border-width: 1px ; } } 	}  } /* Compiled CSS */  #headerh1 {  font-size: 26px;  font-weight: bold;  }  #header p {  font-size: 12px;  }  #header p a {  text-decoration: none;  }  #header p a:hover {  border-width: 1px;  }
		Functions & Operations   // LESS  @the-border: 1px;  @base-color: #111;  @red: #842210;  #header {  color: @base-color * 3;  border-left: @the-border;  border-right: @the-border * 2;  }  #footer {  color: @base-color + #003300;  border-color: desaturate(@red, 10%);  } /* Compiled CSS */  #header {  color: #333;  border-left: 1px;  border-right: 2px;  }  #footer {  color: #114411;  border-color: #7d2717;  }
	Other Operations: @base: 5%;  @filler: @base * 2;  @other: @base + @filler;  color: #888 / 4;  background-color: @base-color + #111;  Height: 100% / 2 + @filler; @var: 1px + 5; width: (@var+ 5) * 2; border: (@width * 2) solidblack;
Functions: lighten(@color, 10%); // return a color which is 10% *lighter* than @color  darken(@color, 10%); // return a color which is 10% *darker* than @color  saturate(@color, 10%); // return a color 10% *more* saturated than @color  desaturate(@color, 10%); // return a color 10% *less* saturated than @color  fadein(@color, 10%); // return a color 10% *less* transparent than @color  fadeout(@color, 10%); // return a color 10% *more* transparent than @color  spin(@color, 10); // return a color with a 10 degree larger in hue than @color  spin(@color, -10); // return a color with a 10 degree smaller hue than @color hue(@color); // returns the `hue` channel of @color  saturation(@color); // returns the `saturation` channel of @color  lightness(@color); // returns the 'lightness' channel of @color
Other: //Scope @var: red;  #page {  @var: white;  #header { color: @var; // white }  }  #footer { color: @var; // red } //importing @import "lib.less";  //or @import"lib"; //if css @import "lib.css";
Usage Client: CSS + JS: <linkrel="stylesheet/less" type="text/css"href="styles.less"> <scriptsrc="less.js" type="text/javascript"></script> Server: $npm install less Command-line usage: $lesscstyles.less $lesscstyles.less > styles.css Options: -x (minified)
vs /* CSS */ .selector {  	background-image:   url(../img/tmpl1/png/head_bg.png); background-color: #FF00FF;  	border-top: 1px solid #FF00FF; }  Variables: vars {  	$path = ../img/tmpl1/png;  	$color1 = #FF00FF;  	$border = border-top: 1px solid 				$color1;  } .selector {  	background-image: 	url($path/head_bg.png);  	background-color: $color1;  	$border;  }
vs Nested selectors: .selector {  	self {  		margin: 20px;  	}  	a {  		display: block;  	}  	strong {  		color: blue;  	} }  /* CSS */ .selector { margin: 20px; } .selector a { display: block; }  .selector strong { color: blue; }
vs Extending Objects: .basicClass {  	padding: 20px;  	background-color: #FF0000;  }  .specialClassextends .basicClass {  	padding: 10px;  	font-size: 14px;  }  /* CSS */ .specialClass, .basicClass {  padding: 20px;  background-color: #FF0000;  }  .specialClass {  padding: 10px;  font-size: 14px;  }
vs Math Operations: .selector {  	padding: [5px * 2];  	color: [#ccc * 2];  // lets assume $color is '#FFF555'  	background-color: [$color - #222 + 	#101010];  }  .selector {  	padding: [5px - 3em + 5px]cm; margin: [20 - 10] [30% - 10];  } /* CSS */ .selector {  	padding: 10px;  	color: #ffffff;  	background-color: #ede343;  }  .selector {  padding: 7cm;  margin: 10px 20%;  }
vs Usage: Download xCSS archive. Add this lines: <script type="text/javascript"src="path_to_xcss/"></script> <linkrel="stylesheet“ type="text/css“href=“/css/master.css”/> Edit the configuration file config.php as needed. $config['path_to_CSS_dir'] $config['xCSS_files'] $config['use_master_file'] $config['master_filename'] $config['reset_files'] $config['minify_output'] … Done!
vs			   & Variables: $blue: #3bbfce  $margin: 16px  .content-navigation  	border-color: $blue  	color: darken($blue, 9%)  .border  	padding: $margin / 2  	margin: $margin / 2  	border-color: $blue /* CSS */ .content-navigation {  	border-color: #3bbfce;  	color: #2b9eab;  }  .border {  	padding: 8px;  	margin: 8px;  	border-color: #3bbfce;  }
vs			   & Nesting rules: table.hl 	margin: 2em 0  td.ln 		text-align: right  li 	font:  		family: serif 	 		weight: bold  		size: 1.2em /* CSS */ table.hl {  	margin: 2em 0;  }  table.hltd.ln {  	text-align: right;  }  li {  	font-family: serif;  	font-weight: bold;  	font-size: 1.2em;  }
vs			   & Mixins: @mixintable-base  th 		text-align: center 	 		font-weight: bold  	td, th 		padding: 2px  @mixin  left($dist)  	float: left  	margin-left: $dist  #data  @include left(10px) @include table-base /* CSS */ #data {  	float: left;  	margin-left: 10px;  }  #data th {  	text-align: center;  	font-weight: bold;  }  #data td, #data th { 	padding: 2px;  }
vs			   & Selector Inheritance: .error  	border: 1px #f00 	background: #fdd .error.intrusion 	font-size: 1.3em  	font-weight: bold  .badError @extend .error 	border-width: 3px /* CSS */ .error, .badError {  	border: 1px #f00;  	background: #fdd;  }  .error.intrusion, .badError.intrusion {  	font-size: 1.3em;  	font-weight: bold;  }  .badError {  	border-width: 3px;  }
vs			   & Control Directives: p {  @if 1 + 1 == 2 { border: 1px solid; }  @if 5 < 3 { border: 2px dotted; }  } @for $ifrom 1 through 3 {  	.item-#{$i} { width: 2em * $i; }  } $i: 6;  @while $i > 0 {  	.item-#{$i} { width: 2em * $i; }  	$i: $i - 2;  } /* CSS */ p { border: 1px solid; } .item-1 { width: 2em; }  .item-2 { width: 4em; }  .item-3 { width: 6em; } .item-6 { width: 12em; }  .item-4 { width: 8em; }  .item-2 { width: 4em; }
vs			   & Usage: $ gem install haml  $ sassinput.sass output.css $sass --watch style.sass:style.css $sass --watch app/sass:public/stylesheets Options: --style (:nested, :expanded, :compact, :compressed) # Convert Sass to SCSS  $sass-convertstyle.sassstyle.scss # Convert SCSS to Sass  $sass-convertstyle.scssstyle.sass
Q&A?
Thanks.

Contenu connexe

Tendances

ID01 Week 3
ID01 Week 3ID01 Week 3
ID01 Week 3mkontopo
 
ID01 / W01
ID01 / W01ID01 / W01
ID01 / W01mkontopo
 
Compass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS DeveloperCompass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS DeveloperWynn Netherland
 
Getting Started with Sass & Compass
Getting Started with Sass & CompassGetting Started with Sass & Compass
Getting Started with Sass & CompassRob Davarnia
 
Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Goro Fuji
 
HTML Templates Using Clear Silver
HTML Templates Using Clear SilverHTML Templates Using Clear Silver
HTML Templates Using Clear SilverPaulWay
 
LESS is More
LESS is MoreLESS is More
LESS is Morejsmith92
 
Sass - Making CSS fun again.
Sass - Making CSS fun again.Sass - Making CSS fun again.
Sass - Making CSS fun again.Gabriel Neutzling
 
Accelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemAccelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemWynn Netherland
 
Drawing the Line with Browser Compatibility
Drawing the Line with Browser CompatibilityDrawing the Line with Browser Compatibility
Drawing the Line with Browser Compatibilityjsmith92
 
i18n for Plugin and Theme Developers, WordCamp Milano 2016
i18n for Plugin and Theme Developers, WordCamp Milano 2016i18n for Plugin and Theme Developers, WordCamp Milano 2016
i18n for Plugin and Theme Developers, WordCamp Milano 2016Sergey Biryukov
 
Web Development Course: PHP lecture 2
Web Development Course: PHP lecture 2Web Development Course: PHP lecture 2
Web Development Course: PHP lecture 2Gheyath M. Othman
 
Intro to #memtech PHP 2011-12-05
Intro to #memtech PHP   2011-12-05Intro to #memtech PHP   2011-12-05
Intro to #memtech PHP 2011-12-05Jeremy Kendall
 
LESS(CSS preprocessor)
LESS(CSS preprocessor)LESS(CSS preprocessor)
LESS(CSS preprocessor)VIPIN KUMAR
 
Big Design Conference: CSS3
Big Design Conference: CSS3 Big Design Conference: CSS3
Big Design Conference: CSS3 Wynn Netherland
 
Html5 appunti.0
Html5   appunti.0Html5   appunti.0
Html5 appunti.0orestJump
 

Tendances (20)

ID01 Week 3
ID01 Week 3ID01 Week 3
ID01 Week 3
 
ID01 / W01
ID01 / W01ID01 / W01
ID01 / W01
 
Ubi comp27nov04
Ubi comp27nov04Ubi comp27nov04
Ubi comp27nov04
 
FCIP SASS Talk
FCIP SASS TalkFCIP SASS Talk
FCIP SASS Talk
 
Compass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS DeveloperCompass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS Developer
 
Getting Started with Sass & Compass
Getting Started with Sass & CompassGetting Started with Sass & Compass
Getting Started with Sass & Compass
 
Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11
 
HTML Templates Using Clear Silver
HTML Templates Using Clear SilverHTML Templates Using Clear Silver
HTML Templates Using Clear Silver
 
Accelerated Stylesheets
Accelerated StylesheetsAccelerated Stylesheets
Accelerated Stylesheets
 
LESS is More
LESS is MoreLESS is More
LESS is More
 
Sass - Making CSS fun again.
Sass - Making CSS fun again.Sass - Making CSS fun again.
Sass - Making CSS fun again.
 
Accelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemAccelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gem
 
Drawing the Line with Browser Compatibility
Drawing the Line with Browser CompatibilityDrawing the Line with Browser Compatibility
Drawing the Line with Browser Compatibility
 
i18n for Plugin and Theme Developers, WordCamp Milano 2016
i18n for Plugin and Theme Developers, WordCamp Milano 2016i18n for Plugin and Theme Developers, WordCamp Milano 2016
i18n for Plugin and Theme Developers, WordCamp Milano 2016
 
Web Development Course: PHP lecture 2
Web Development Course: PHP lecture 2Web Development Course: PHP lecture 2
Web Development Course: PHP lecture 2
 
Intro to #memtech PHP 2011-12-05
Intro to #memtech PHP   2011-12-05Intro to #memtech PHP   2011-12-05
Intro to #memtech PHP 2011-12-05
 
LESS(CSS preprocessor)
LESS(CSS preprocessor)LESS(CSS preprocessor)
LESS(CSS preprocessor)
 
Big Design Conference: CSS3
Big Design Conference: CSS3 Big Design Conference: CSS3
Big Design Conference: CSS3
 
Further Php
Further PhpFurther Php
Further Php
 
Html5 appunti.0
Html5   appunti.0Html5   appunti.0
Html5 appunti.0
 

Similaire à CSS programming tools and languages

Wrangling the CSS Beast with Sass
Wrangling the CSS Beast  with SassWrangling the CSS Beast  with Sass
Wrangling the CSS Beast with SassRob Friesel
 
Mobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive NewsMobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive NewsKaelig Deloumeau-Prigent
 
CSS Less framework overview, Pros and Cons
CSS Less framework overview, Pros and ConsCSS Less framework overview, Pros and Cons
CSS Less framework overview, Pros and ConsSanjoy Kr. Paul
 
Sass and Compass - Getting Started
Sass and Compass - Getting StartedSass and Compass - Getting Started
Sass and Compass - Getting Startededgincvg
 
Curso CSS3 com Sass e Compass - Aula 01 - Introducão
Curso CSS3 com Sass e Compass - Aula 01 - IntroducãoCurso CSS3 com Sass e Compass - Aula 01 - Introducão
Curso CSS3 com Sass e Compass - Aula 01 - IntroducãoLoiane Groner
 
Sass & Compass (Barcamp Stuttgart 2012)
Sass & Compass (Barcamp Stuttgart 2012)Sass & Compass (Barcamp Stuttgart 2012)
Sass & Compass (Barcamp Stuttgart 2012)emrox
 
Exam 70 480 CSS3 at Jinal Desai .NET
Exam 70 480 CSS3 at Jinal Desai .NETExam 70 480 CSS3 at Jinal Desai .NET
Exam 70 480 CSS3 at Jinal Desai .NETjinaldesailive
 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentationMario Noble
 
Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)
Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)
Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)Adam Darowski
 
How to use CSS3 in WordPress
How to use CSS3 in WordPressHow to use CSS3 in WordPress
How to use CSS3 in WordPressSuzette Franck
 
How to use CSS3 in WordPress - Sacramento
How to use CSS3 in WordPress - SacramentoHow to use CSS3 in WordPress - Sacramento
How to use CSS3 in WordPress - SacramentoSuzette Franck
 

Similaire à CSS programming tools and languages (20)

Theming and Sass
Theming and SassTheming and Sass
Theming and Sass
 
CSS Extenders
CSS ExtendersCSS Extenders
CSS Extenders
 
Wrangling the CSS Beast with Sass
Wrangling the CSS Beast  with SassWrangling the CSS Beast  with Sass
Wrangling the CSS Beast with Sass
 
A better CSS: Sass and Less - CC FE & UX
A better CSS: Sass and Less - CC FE & UXA better CSS: Sass and Less - CC FE & UX
A better CSS: Sass and Less - CC FE & UX
 
Mobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive NewsMobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive News
 
Less css
Less cssLess css
Less css
 
CSS Basics
CSS BasicsCSS Basics
CSS Basics
 
Sass Essentials
Sass EssentialsSass Essentials
Sass Essentials
 
Workshop 6: Designer tools
Workshop 6: Designer toolsWorkshop 6: Designer tools
Workshop 6: Designer tools
 
CSS Less framework overview, Pros and Cons
CSS Less framework overview, Pros and ConsCSS Less framework overview, Pros and Cons
CSS Less framework overview, Pros and Cons
 
Sass and Compass - Getting Started
Sass and Compass - Getting StartedSass and Compass - Getting Started
Sass and Compass - Getting Started
 
Curso CSS3 com Sass e Compass - Aula 01 - Introducão
Curso CSS3 com Sass e Compass - Aula 01 - IntroducãoCurso CSS3 com Sass e Compass - Aula 01 - Introducão
Curso CSS3 com Sass e Compass - Aula 01 - Introducão
 
Sass & Compass (Barcamp Stuttgart 2012)
Sass & Compass (Barcamp Stuttgart 2012)Sass & Compass (Barcamp Stuttgart 2012)
Sass & Compass (Barcamp Stuttgart 2012)
 
Exam 70 480 CSS3 at Jinal Desai .NET
Exam 70 480 CSS3 at Jinal Desai .NETExam 70 480 CSS3 at Jinal Desai .NET
Exam 70 480 CSS3 at Jinal Desai .NET
 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentation
 
Do more with {less}
Do more with {less}Do more with {less}
Do more with {less}
 
Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)
Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)
Sassive Aggressive: Using Sass to Make Your Life Easier (Refresh Boston Version)
 
Sencha Touch
Sencha TouchSencha Touch
Sencha Touch
 
How to use CSS3 in WordPress
How to use CSS3 in WordPressHow to use CSS3 in WordPress
How to use CSS3 in WordPress
 
How to use CSS3 in WordPress - Sacramento
How to use CSS3 in WordPress - SacramentoHow to use CSS3 in WordPress - Sacramento
How to use CSS3 in WordPress - Sacramento
 

Dernier

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Dernier (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

CSS programming tools and languages

  • 1. Software programming tools for creating/managing CSS files DinuSuman
  • 2. What kind of software tools can be? IDE Tools for generating templates CSS Frameworks with existing plugins, … Languages that extend css (will be covered in this presentation)
  • 3. Some Languages that extend css: Less (http://lesscss.org/) xCSS (http://xcss.antpaw.org) Sass/Scss (http://sass-lang.com/) Hss (http://ncannasse.fr/projects/hss) CleverCss (http://sandbox.pocoo.org/clevercss/)
  • 4. Why simple css isn’t enough? Why do we need extending languages?
  • 5. What do we get? Variables Mixins Nested Rules Functions & Operations
  • 6. Variables // LESS @color: #4D926F; #header { color:@color; } h2 { color:@color; } /* Compiled CSS */ #header { color: #4D926F; } h2 { color: #4D926F; }
  • 7. Mixins // LESS .rounded-corners (@radius: 5px) { border-radius:@radius; -webkit-border-radius:@radius; -moz-border-radius:@radius; } #header { .rounded-corners; } #footer { .rounded-corners(10px); } /* Compiled CSS */ #header { border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; } #footer { border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; }
  • 8. Nested Rules // LESS #header { h1 { font-size: 26px; font-weight: bold; } p { font-size:12px; a { text-decoration: none; &:hover { border-width: 1px ; } } } } /* Compiled CSS */ #headerh1 { font-size: 26px; font-weight: bold; } #header p { font-size: 12px; } #header p a { text-decoration: none; } #header p a:hover { border-width: 1px; }
  • 9. Functions & Operations // LESS @the-border: 1px; @base-color: #111; @red: #842210; #header { color: @base-color * 3; border-left: @the-border; border-right: @the-border * 2; } #footer { color: @base-color + #003300; border-color: desaturate(@red, 10%); } /* Compiled CSS */ #header { color: #333; border-left: 1px; border-right: 2px; } #footer { color: #114411; border-color: #7d2717; }
  • 10. Other Operations: @base: 5%; @filler: @base * 2; @other: @base + @filler; color: #888 / 4; background-color: @base-color + #111; Height: 100% / 2 + @filler; @var: 1px + 5; width: (@var+ 5) * 2; border: (@width * 2) solidblack;
  • 11. Functions: lighten(@color, 10%); // return a color which is 10% *lighter* than @color darken(@color, 10%); // return a color which is 10% *darker* than @color saturate(@color, 10%); // return a color 10% *more* saturated than @color desaturate(@color, 10%); // return a color 10% *less* saturated than @color fadein(@color, 10%); // return a color 10% *less* transparent than @color fadeout(@color, 10%); // return a color 10% *more* transparent than @color spin(@color, 10); // return a color with a 10 degree larger in hue than @color spin(@color, -10); // return a color with a 10 degree smaller hue than @color hue(@color); // returns the `hue` channel of @color saturation(@color); // returns the `saturation` channel of @color lightness(@color); // returns the 'lightness' channel of @color
  • 12. Other: //Scope @var: red; #page { @var: white; #header { color: @var; // white } } #footer { color: @var; // red } //importing @import "lib.less"; //or @import"lib"; //if css @import "lib.css";
  • 13. Usage Client: CSS + JS: <linkrel="stylesheet/less" type="text/css"href="styles.less"> <scriptsrc="less.js" type="text/javascript"></script> Server: $npm install less Command-line usage: $lesscstyles.less $lesscstyles.less > styles.css Options: -x (minified)
  • 14. vs /* CSS */ .selector { background-image: url(../img/tmpl1/png/head_bg.png); background-color: #FF00FF; border-top: 1px solid #FF00FF; } Variables: vars { $path = ../img/tmpl1/png; $color1 = #FF00FF; $border = border-top: 1px solid $color1; } .selector { background-image: url($path/head_bg.png); background-color: $color1; $border; }
  • 15. vs Nested selectors: .selector { self { margin: 20px; } a { display: block; } strong { color: blue; } } /* CSS */ .selector { margin: 20px; } .selector a { display: block; } .selector strong { color: blue; }
  • 16. vs Extending Objects: .basicClass { padding: 20px; background-color: #FF0000; } .specialClassextends .basicClass { padding: 10px; font-size: 14px; } /* CSS */ .specialClass, .basicClass { padding: 20px; background-color: #FF0000; } .specialClass { padding: 10px; font-size: 14px; }
  • 17. vs Math Operations: .selector { padding: [5px * 2]; color: [#ccc * 2]; // lets assume $color is '#FFF555' background-color: [$color - #222 + #101010]; } .selector { padding: [5px - 3em + 5px]cm; margin: [20 - 10] [30% - 10]; } /* CSS */ .selector { padding: 10px; color: #ffffff; background-color: #ede343; } .selector { padding: 7cm; margin: 10px 20%; }
  • 18. vs Usage: Download xCSS archive. Add this lines: <script type="text/javascript"src="path_to_xcss/"></script> <linkrel="stylesheet“ type="text/css“href=“/css/master.css”/> Edit the configuration file config.php as needed. $config['path_to_CSS_dir'] $config['xCSS_files'] $config['use_master_file'] $config['master_filename'] $config['reset_files'] $config['minify_output'] … Done!
  • 19. vs & Variables: $blue: #3bbfce $margin: 16px .content-navigation border-color: $blue color: darken($blue, 9%) .border padding: $margin / 2 margin: $margin / 2 border-color: $blue /* CSS */ .content-navigation { border-color: #3bbfce; color: #2b9eab; } .border { padding: 8px; margin: 8px; border-color: #3bbfce; }
  • 20. vs & Nesting rules: table.hl margin: 2em 0 td.ln text-align: right li font: family: serif weight: bold size: 1.2em /* CSS */ table.hl { margin: 2em 0; } table.hltd.ln { text-align: right; } li { font-family: serif; font-weight: bold; font-size: 1.2em; }
  • 21. vs & Mixins: @mixintable-base th text-align: center font-weight: bold td, th padding: 2px @mixin left($dist) float: left margin-left: $dist #data @include left(10px) @include table-base /* CSS */ #data { float: left; margin-left: 10px; } #data th { text-align: center; font-weight: bold; } #data td, #data th { padding: 2px; }
  • 22. vs & Selector Inheritance: .error border: 1px #f00 background: #fdd .error.intrusion font-size: 1.3em font-weight: bold .badError @extend .error border-width: 3px /* CSS */ .error, .badError { border: 1px #f00; background: #fdd; } .error.intrusion, .badError.intrusion { font-size: 1.3em; font-weight: bold; } .badError { border-width: 3px; }
  • 23. vs & Control Directives: p { @if 1 + 1 == 2 { border: 1px solid; } @if 5 < 3 { border: 2px dotted; } } @for $ifrom 1 through 3 { .item-#{$i} { width: 2em * $i; } } $i: 6; @while $i > 0 { .item-#{$i} { width: 2em * $i; } $i: $i - 2; } /* CSS */ p { border: 1px solid; } .item-1 { width: 2em; } .item-2 { width: 4em; } .item-3 { width: 6em; } .item-6 { width: 12em; } .item-4 { width: 8em; } .item-2 { width: 4em; }
  • 24. vs & Usage: $ gem install haml  $ sassinput.sass output.css $sass --watch style.sass:style.css $sass --watch app/sass:public/stylesheets Options: --style (:nested, :expanded, :compact, :compressed) # Convert Sass to SCSS $sass-convertstyle.sassstyle.scss # Convert SCSS to Sass $sass-convertstyle.scssstyle.sass
  • 25. Q&A?