SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
.LESS
an overview of the CSS preprocessor
/* Joe Seifi @joeseifi */
“When I am working on
a problem, I never think
about beauty, but when
I have finished, if the
solution is not beautiful,
I know it is wrong.
Buckminster Fuller
http://www.flickr.com/photos/21680590@N06/4654423909/
http://www.flickr.com/photos/kejun/6988320204/
authoring abstractions have matured...
why less?
CSS is fine... I don’t wanna add more complexity to it?
Do we have to learn a new programming language?
just a few reasons
CSS is fine... yes, but our needs have outgrown its features.
Using CSS on a big project quickly becomes...
http://www.flickr.com/photos/stevendepolo/3340172798/
complex,
http://www.flickr.com/photos/stevendepolo/3340172798/
messy,
http://www.flickr.com/photos/nathalier/3349184641/
& hard to manage.
http://www.flickr.com/photos/bohman/201715020/
Existing code is tough to maintain or update,
http://www.flickr.com/photos/northbaywanderer/121971388/
becomes unreadable,
http://www.flickr.com/photos/miran/4538440349/
and is not reusable.
http://www.flickr.com/photos/via/42436087/
less gives us new tricks, tools,
http://www.flickr.com/photos/jdhancock/3578775702/
and it’s fun to use.
http://www.flickr.com/photos/shollingsworth/3069791717/
getting started with less...
/* Windows? ------------------------------
Try tools like WinLess or SimpLESS. You can also install less builders
for most code editors like Sublime Text 2 and Eclipse (see references.)
http://winless.org/ http://wearekiss.com/simpless
*/
install
install brew $ ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)
install node $ brew install node
install npm $ curl http://npmjs.org/install.sh | sh
install less $ npm -g install less
.less files
/* Notes: ------------------------------
To get started, all you have to do is change your .css file
extensions to .less files.
One of the strengths of LESS over competing CSS
preprocessors, is that .less files are valid CSS files and
vice versa. This makes learning the language easier, and
reading LESS files a no brainer for new comers.
*/
/* Notes: ------------------------------
The compress option will remove all whitespace. The yui-compress option
will also remove all line-breaks.
*/
using the less cli
$ lessc [options] input.less [output.css file]
options:
-compress
-yui-compress
http://www.imdb.com/media/rm2567540224/tt0097523
honey, i shrunk the css
@import "reset.css";.font-family{font-family:arial,sans-serif}.button{background-
color:#ccc;padding:10px 15px;font-weight:700;-webkit-border-radius:5px;-moz-border-radius:
5px;border-radius:5px;box-shadow:0 1px 3px 0 #6a6a6a;-moz-box-shadow:0 1px 3px 0 #6a6a6a;-webkit-
box-shadow:0 1px 3px 0 #6a6a6a;background-image:linear-gradient(top,#fff,17%,#d3d3d3
59%);background-image:-o-linear-gradient(top,#fff 17%,#d3d3d3 59%);background-image:-moz-linear-
gradient(top,#fff 17%,#d3d3d3 59%);background-image:-ms-linear-gradient(top,#fff 17%,#d3d3d3
59%);background-image:-webkit-linear-gradient(top,#fff 17%,#d3d3d3 59%);background-image:-webkit-
gradient(linear,left top,left bottom,color-stop(0.17,#fff),color-stop(0.59,#d3d3d3))}.h1{font-size:
1.75em;font-weight:700;text-shadow:0 0 5px #888}body{font-size:20px;background:#d3d3d3 url("/
images/bg.png");color:#353535;padding:10%;font-family:arial,sans-serif}a{text-
decoration:none;color:#00589c}header h1{font-size:24px;font-size:1.75em;font-weight:700;text-
shadow:0 0 5px #888;padding:0 0 5% 5%}header #navigation ul li{display:inline-block}header
#navigation ul li:first-child{border-left:5px solid #353535}header #navigation ul li>a{background-
color:#ccc;padding:10px 15px;font-weight:700;-webkit-border-radius:5px;-moz-border-radius:
5px;border-radius:5px;box-shadow:0 1px 3px 0 #6a6a6a;-moz-box-shadow:0 1px 3px 0 #6a6a6a;-webkit-
box-shadow:0 1px 3px 0 #6a6a6a;background-image:linear-gradient(top,#fff,17%,#d3d3d3
59%);background-image:-o-linear-gradient(top,#fff 17%,#d3d3d3 59%);background-image:-moz-linear-
gradient(top,#fff 17%,#d3d3d3 59%);background-image:-ms-linear-gradient(top,#fff 17%,#d3d3d3
59%);background-image:-webkit-linear-gradient(top,#fff 17%,#d3d3d3 59%);background-image:-webkit-
gradient(linear,left top,left bottom,color-stop(0.17,#fff),color-stop(0.59,#d3d3d3))}header
#navigation ul li>a.selected{background:#fff}header #navigation ul li>a:hover{color:#f00}
/* Notes: ------------------------------
The less compiler will find syntax errors as well as errors with
undefined variables. You can also try csslint on your output files, but
be ready to get your feelings hurt.
*/
debugging
html {
font-size 100%;
}
$ lessc source.less
$ ParseError: Syntax Error on line 2 in source.less:2:0
1 html {
2 font-size 100%;
3 }
/* Inner Workings: ------------------------------
Node compiles matching .less files when it receives a URL request for
a .css resource. For example if you hit http://localhost/style.less Node
looks for a style.less file in the same path and compiles it into a
style.css file on the fly and returns it to you.
*/
node.js & less middleware
app.configure(function(){
app.use(require('less-middleware')({
src: __dirname + '/public',
compress: true,
yuicompress: true, // one or the other
optimization: [0,1,2]
}));
}
http://www.flickr.com/photos/papalars/777342980/
imports in less
/* Tips: ------------------------------
LESS will import the contents of files and concatenate them into the one
file, unless you specify the .css extension. If you leave out the extension
LESS looks for a .less file, not a .css file.
*/
imports
@import “reset.css”; // statement is left alone in output
@import “reset.less”; // processed and contents imported into output
@import “reset”; // same as above since the “.less” is optional
http://www.flickr.com/photos/75491103@N00/3565601486/
nesting in less
/* Notes: ------------------------------
Nesting in LESS results in scope. We will cover scope in a few minutes.
Nesting order, spacing, and tabs are purely for readability. So you can
also do things like: li > a.selected {} though it is not recommended.
*/
nesting
#navigation {
li {
display: inline-block;
&:first-child { padding: 5%; }
> a {
&.selected { color: gray; }
&:hover { background: red; }
}
}
/* Notes: ------------------------------
Keep in mind that in less, variables are actually constants, so they can
only be defined once.
It’s good practice to line up your variable columns for good readability.
*/
variables
@base-font-size: 16;
@base-padding: 5%;
@base: “/images”;
@light-gray: #D3D3D3;
/* Hint: ------------------------------
Most LESS aware editors like Coda 2 will suggest and auto-complete your
defined variable names as you type.
*/
using variables
.box {
padding: @base-padding;
background-color: @light-gray;
}
http://www.flickr.com/photos/75491103@N00/3565601486/
using strings in less
/* Details: ------------------------------
Embed and use variables using the @{variable} syntax, like PHP or Ruby.
*/
string interpolation
@base: “/images”;
@light-gray: #D3D3D3;
body {
background: @light-gray url("@{base}/bg.png");
}
/* Details: ------------------------------
Tilde escapes the value. You can also use the e() function if you like.
Use it for value calculations, otherwise the output becomes font-size:
“20px” not 20px. Also use the ~ with IE specific rules like filter.
*/
escaping strings
@base-font-size: 16;
body {
font-size: ~"@{base-font-size}px";
filter: e("ms:likesProprietaryCssStuff()");
}
http://www.flickr.com/photos/maisonbisson/201844037/
math operations
/* Notes: ------------------------------
Basic math operations (+ - * /) are supported in less. What’s great is
that any CSS value, number, or color, plus any less variable can be
operated on. This includes things like %, em, px, etc.
More on color operations later in this presentation.
*/
math operations
@base-padding: 5%;
@gutter-padding: @base-padding * 2;
@light-gray: #D3D3D3;
@body-padding: @gutter-padding - 3; // 7%
@body-color: @light-gray / 4; // #353535
/* Notes: ------------------------------
Other Math functions like abs, max, min, random, etc. are not supported
at this time.
*/
math functions
@width-flexible: percentage( 650 / 960 ); // 67.70833333333334%
@width-round: round( @width-flexible ); // 1%
@width-ceil: ceil( @width-flexible ); // 1%
@width-floor: floor( @width-flexible ); // 0%
http://www.flickr.com/photos/rickchung/7832568498/
mixins
/* Notes: ------------------------------
Mixins are functions in less. They help you reuse css code.
Keep in mind that this .button mixin is actually is a basic CSS class in
LESS and will appear in your output file as such.
*/
mixins
.button {
! box-shadow: inset 1px 1px 5px 0px @light-gray / 2;
! -webkit-border-radius: 5px;
! -moz-border-radius: 5px;
! border-radius: 5px;
}
/* Notes: ------------------------------
The opening and closing parentheses are not required when calling a
simple mixin like this without parameters. You always do have to include
the semi-colon.
*/
using mixins
a {
.button;
}
/* The result will be */
a {
! box-shadow: inset 1px 1px 5px 0px @light-gray / 2;
! -webkit-border-radius: 5px;
! -moz-border-radius: 5px;
! border-radius: 5px;
}
/* Notes: ------------------------------
The first part of the parameter is the name and the second part is the
optional default value. Parameterized mixins are not included in the
resulting .css files by the LESS compiler.
*/
mixins with parameters
.ems(@size: @base-font-size, @base: @base-font-size) {
! @value: @size / @base;
! font-size: ~"@{value}em";
}
/* Notes: ------------------------------
Our mixin takes 2 paramters. We’ve made them both optional, so we can
also call the it using just .ems(24); or .ems(); or .ems; in this case.
It is good practice to provide default values in your mixin definitions.
*/
passing mixin parameters
.title {
! .ems(24, 16);
}
/* The result will be */
.title {
! font-size: 1.5em;
}
/* Notes: ------------------------------
When you call the .h1 mixin you will get the result from the ems mixin as
well as the bold font, assigned to your calling class.
*/
mixins calling other mixins
.heading {
! .ems(32);
! font-weight: 700;
}
h1 { .heading; }
/* The result will be */
h1 {
! font-size: 2em;
! font-weight: 700;
}
http://www.flickr.com/photos/clydeorama/6327739969/
arguments
/* Notes: ------------------------------
If you just use the @arguments variable, it will spit out the values you
need based on what is passed in and what defaults you’ve set up, in the
order you defined them.
*/
the @arguments variable
.box-shadow(@x: 0, @y: 0, @blur: 1px, @spread: 1px, @color: #000){
! box-shadow: @arguments;
! -moz-box-shadow: @arguments;
! -webkit-box-shadow: @arguments;
}
/* Notes: ------------------------------
You can only leave out arguments at the end of an argument list, but not
the beginning. For example you can do .box-shadow(0px, 0px, 3px); but you
can’t do .box-shadow(0px, @light-gray / 2)
*/
using @arguments
.button {
.box-shadow(0px, 0px, 3px, 0px, @light-gray / 2);
}
/* The result will be */
.button {
box-shadow: 0px 1px 3px 0px #6a6a6a;
-moz-box-shadow: 0px 1px 3px 0px #6a6a6a;
-webkit-box-shadow: 0px 1px 3px 0px #6a6a6a;
}
http://www.flickr.com/photos/passetti/5605375493/
less makes color fun
/* Super Geeky stuff: ------------------------------
LESS first converts colors into the HSL (hue, saturation %, lightness %)
color-space, and then manipulates them at the channel level.
*/
colors
@green: #00FF00;
lighten(@green, 30%); // #99ff99 - 30% *lighter*
darken(@green, 30%); // #006600 - 30% *darker*
saturate(@green, 30%); // #00ff00 - 30% *more* saturated
desaturate(@green, 30%); // #262926 - 30% *less* saturated
/* Super Geeky stuff: ------------------------------
The mix function requires a weight argument between 0-100.
The fade functions always return rgba values, unless the color has hit a
max alpha, such as blue above, which can’t be made less transparent.
*/
more color functions
@blue: #0000FF;
@red: #FF0000;
fade(@blue, 50%); // rgba(0,0,255,0.5) - 50% transparency
fadein(@blue, 30%); // #0000ff - 30% *less* transparent
fadeout(@blue, 30%); // rgba(0,0,255,0.7) - 30% *more* transparent
spin(@blue, 30); // #7f00ff - 30 degrees larger hue
spin(@blue, -30); // #007fff - 30 degrees smaller hue
mix(@blue, @red, 50); // #800080 - a mid blend of @red and @blue
http://www.flickr.com/photos/tomorrowstand/2280680315/
patterns
/* Notes: ------------------------------
Mixin changes behavior based on parameters.
The first mixin will only match if our @display-type variable has a value
of “block” and the second one will only run if is set to “inline”. The @_
argument matches any value.
*/
switch patterns
.switch-me (box, @color) { border-radius: 0; }
.switch-me (round, @color) { border-radius: 5px; }
.switch-me (@_, @color) { color: @color; }
color: @color;
.button { .switch-me(@display-type, 300px); }
// Output
.button {
display: block;
width: 300px;
}
/* Notes: ------------------------------
LESS inspects all defined mixin signatures and only applies the one(s)
that matches your called arity.
*/
switch on arity
.flex-box (@min) { min-width: @min; }
.flex-box (@min, @max) { min-width: @min; max-width: @max; }
.content {
.flex-box(200px, 800px);
}
// Output
.content {
min-width: 200px;
max-width: 800px;
}
http://www.seifi.org
guards
/* Notes: ------------------------------
LESS uses the “when” keyword instead of if/else statements.
You can use the following comparison operators < =< = >= >
*/
guarded mixins
.mixin (@a) when (lightness(@a) >= 50%) { background-color: black; }
.mixin (@a) when (lightness(@a) < 50%) { background-color: white; }
.mixin (@a) { color: @a; }
.class1 { .mixin(#ddd) }
.class2 { .mixin(#555) }
// Output
.class1 { background-color: black; color: #dddddd; }
.class2 { background-color: white; color: #555555; }
http://www.flickr.com/photos/mandolux/11290919/
scope in less
/* Notes: ------------------------------
As you can see, LESS keeps block scope inside curly braces.
Note: Not to be confused with the scoped style attribute introduced in
HTML5.
*/
scope
@my-text-color: black;
section {
@my-text-color: gold;
header {
color: @var; // gold
}
}
footer {
color: @my-text-color; // black
}
http://www.flickr.com/photos/newmediadaysdk/5178421986/
namespaces
/* Notes: ------------------------------
Namespaces allow for code organization and or encapsulation. You have
access to the @arguments variable as with mixins.
*/
namespaces
#lib {
.clear(@direction) {
zoom: 1;
&:after { content: ”00a0”; clear: @direction; display: block;
}
}
}
#wrapper {
#lib > .clear(both); // inserts our clear rules from the lib namespace
}
/* Notes: ------------------------------
Write helpful comments to help you find scoped mixins when debugging.
*/
comments
// Single line comments are not shown in the compiled output
/* Block level comments will be kept in the output */
THANKS
CREDITS
Plugins
http://lesscss.org/
http://drupal.org/project/less
https://npmjs.org/package/less
http://rubygems.org/gems/less
http://www.asual.com/lesscss/
http://wordpress.org/extend/plugins/wp-less/
Tools
http://winless.org/
http://crunchapp.net/
http://panic.com/coda/
http://wearekiss.com/simpless
http://incident57.com/codekit/
https://github.com/danro/LESS-sublime
https://github.com/berfarah/LESS-build-sublime/
https://github.com/appden/less.tmbundle
http://www.normalesup.org/~simonet/soft/ow/eclipse-
less.fr.html
http://csslint.net/
Projects
http://markdotto.com/bootstrap/
http://less-griddy.webatu.com/
http://lesselements.com/
Other CSS Preprocessors
http://code.google.com/p/closure-stylesheets/
http://sass-lang.com/
http://learnboost.github.com/stylus/

Mais conteúdo relacionado

Mais procurados

SASS is more than LESS
SASS is more than LESSSASS is more than LESS
SASS is more than LESSItai Koren
 
How to use CSS3 in WordPress
How to use CSS3 in WordPressHow to use CSS3 in WordPress
How to use CSS3 in WordPressSuzette Franck
 
CSS 開發加速指南-Sass & Compass
CSS 開發加速指南-Sass & CompassCSS 開發加速指南-Sass & Compass
CSS 開發加速指南-Sass & CompassLucien Lee
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Holger Bartel
 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentationMario Noble
 
Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Marc Grabanski
 
CSS Preprocessors: LESS is more or look SASS-y trying
CSS Preprocessors: LESS is more or look SASS-y tryingCSS Preprocessors: LESS is more or look SASS-y trying
CSS Preprocessors: LESS is more or look SASS-y tryingJames Cryer
 
From PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeFrom PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeDerek Christensen
 
HTML5 Dev Conf - Sass, Compass & the new Webdev tools
HTML5 Dev Conf - Sass, Compass &  the new Webdev toolsHTML5 Dev Conf - Sass, Compass &  the new Webdev tools
HTML5 Dev Conf - Sass, Compass & the new Webdev toolsDirk Ginader
 
Front-End Dev Tools
Front-End Dev ToolsFront-End Dev Tools
Front-End Dev ToolsNetguru
 
Bringing sexy back to CSS: SASS/SCSS, LESS and Compass
Bringing sexy back to CSS: SASS/SCSS, LESS and CompassBringing sexy back to CSS: SASS/SCSS, LESS and Compass
Bringing sexy back to CSS: SASS/SCSS, LESS and CompassClaudina Sarahe
 
CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nlHans Kuijpers
 

Mais procurados (20)

Less vs sass
Less vs sassLess vs sass
Less vs sass
 
SASS is more than LESS
SASS is more than LESSSASS is more than LESS
SASS is more than LESS
 
How to use CSS3 in WordPress
How to use CSS3 in WordPressHow to use CSS3 in WordPress
How to use CSS3 in WordPress
 
CSS 開發加速指南-Sass & Compass
CSS 開發加速指南-Sass & CompassCSS 開發加速指南-Sass & Compass
CSS 開發加速指南-Sass & Compass
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentation
 
Less css
Less cssLess css
Less css
 
Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)
 
ActiveDOM
ActiveDOMActiveDOM
ActiveDOM
 
CSS Preprocessors: LESS is more or look SASS-y trying
CSS Preprocessors: LESS is more or look SASS-y tryingCSS Preprocessors: LESS is more or look SASS-y trying
CSS Preprocessors: LESS is more or look SASS-y trying
 
Bootstrap Framework
Bootstrap Framework Bootstrap Framework
Bootstrap Framework
 
From PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to lifeFrom PSD to WordPress Theme: Bringing designs to life
From PSD to WordPress Theme: Bringing designs to life
 
HTML5 Dev Conf - Sass, Compass & the new Webdev tools
HTML5 Dev Conf - Sass, Compass &  the new Webdev toolsHTML5 Dev Conf - Sass, Compass &  the new Webdev tools
HTML5 Dev Conf - Sass, Compass & the new Webdev tools
 
Death of a Themer
Death of a ThemerDeath of a Themer
Death of a Themer
 
Front-End Dev Tools
Front-End Dev ToolsFront-End Dev Tools
Front-End Dev Tools
 
Css frameworks
Css frameworksCss frameworks
Css frameworks
 
Landing Pages 101
Landing Pages 101Landing Pages 101
Landing Pages 101
 
Bringing sexy back to CSS: SASS/SCSS, LESS and Compass
Bringing sexy back to CSS: SASS/SCSS, LESS and CompassBringing sexy back to CSS: SASS/SCSS, LESS and Compass
Bringing sexy back to CSS: SASS/SCSS, LESS and Compass
 
CSS with LESS for #jd13nl
CSS with LESS for #jd13nlCSS with LESS for #jd13nl
CSS with LESS for #jd13nl
 
Css web side
Css web sideCss web side
Css web side
 

Semelhante a LESS

Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESSjsmith92
 
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
 
LESS is More
LESS is MoreLESS is More
LESS is Morejsmith92
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 
Highly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSHighly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSZoe Gillenwater
 
HTML Web Devlopment presentation css.ppt
HTML Web Devlopment presentation css.pptHTML Web Devlopment presentation css.ppt
HTML Web Devlopment presentation css.pptraghavanp4
 
Rapid Prototyping
Rapid PrototypingRapid Prototyping
Rapid PrototypingEven Wu
 
Getting Started with Sass & Compass
Getting Started with Sass & CompassGetting Started with Sass & Compass
Getting Started with Sass & CompassRob Davarnia
 
LessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingLessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingMyles Braithwaite
 
Learn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day DeutschlandLearn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day DeutschlandThemePartner
 
Evrone.ru / BEM for RoR
Evrone.ru / BEM for RoREvrone.ru / BEM for RoR
Evrone.ru / BEM for RoRDmitry KODer
 
CSS and image optimization
CSS and image optimizationCSS and image optimization
CSS and image optimizationStoyan Stefanov
 
Learn to Love CSS3 [English]
Learn to Love CSS3 [English]Learn to Love CSS3 [English]
Learn to Love CSS3 [English]ThemePartner
 
CSS Architecture - JSIL.pdf
CSS Architecture - JSIL.pdfCSS Architecture - JSIL.pdf
CSS Architecture - JSIL.pdfJonDan6
 

Semelhante a LESS (20)

Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESS
 
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
 
LESS is More
LESS is MoreLESS is More
LESS is More
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 
Highly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSHighly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSS
 
HTML Web Devlopment presentation css.ppt
HTML Web Devlopment presentation css.pptHTML Web Devlopment presentation css.ppt
HTML Web Devlopment presentation css.ppt
 
css.ppt
css.pptcss.ppt
css.ppt
 
css.ppt
css.pptcss.ppt
css.ppt
 
Look ma! No images!
Look ma! No images!Look ma! No images!
Look ma! No images!
 
Accelerated Stylesheets
Accelerated StylesheetsAccelerated Stylesheets
Accelerated Stylesheets
 
Rapid Prototyping
Rapid PrototypingRapid Prototyping
Rapid Prototyping
 
Getting Started with Sass & Compass
Getting Started with Sass & CompassGetting Started with Sass & Compass
Getting Started with Sass & Compass
 
LessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingLessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG Meeting
 
Learn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day DeutschlandLearn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day Deutschland
 
Evrone.ru / BEM for RoR
Evrone.ru / BEM for RoREvrone.ru / BEM for RoR
Evrone.ru / BEM for RoR
 
Responsive design
Responsive designResponsive design
Responsive design
 
Using a CSS Framework
Using a CSS FrameworkUsing a CSS Framework
Using a CSS Framework
 
CSS and image optimization
CSS and image optimizationCSS and image optimization
CSS and image optimization
 
Learn to Love CSS3 [English]
Learn to Love CSS3 [English]Learn to Love CSS3 [English]
Learn to Love CSS3 [English]
 
CSS Architecture - JSIL.pdf
CSS Architecture - JSIL.pdfCSS Architecture - JSIL.pdf
CSS Architecture - JSIL.pdf
 

Último

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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Último (20)

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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

LESS