SlideShare a Scribd company logo
1 of 51
CSS3

            Robin Poort (@rhcpoort)
CEO & co-founder ThemePartner (@theme_partner)
     J and Beyond, Bad Nauheim, may 2012
1993
Robert Raisch proposed "named Stylesheets"




Source: http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q2.messages/443.html
1994
Håkon Wium Lie & Bert Bos create CSS1




Source: http://upload.wikimedia.org/wikipedia/commons/5/54/H%C3%A5kon_Wium_Lie.jpg
Source: http://www.w3c.de/Events/2006/images/PrintSymposium/slides/_DSC0209.JPG
CSS1 in development




h1.font.size = 24pt 100%

40%
font.family = times
h1.font.family = helvetica 100%

60%
AGE > 3d ? background.color = pale_yellow : background.color = white
DISPLAY_HEIGHT > 30cm ? http://NYT.com/style : http://LeMonde.fr/style
1996
CSS1 recommended by the W3C
1998
CSS2 recommended by the W3C
1999
CSS3 mentioned for the first time
1999?!
Using CSS3
Where & when?
Not on the critical layers
don't use it on branding, layout & usability
Progressively enhance!
Make sure the website works in older browsers
Performance problems
   Make your website fast!
Some examples!
p.rgba1     {
    color: #000000;
    color: rgba(0,0,0,1);
}


p.rgba2     {
    color: #FF0000;
    color: rgba(255,0,0,.5);
}


p.rgba3     {
    color: #1ebdbe;
    color: rgba(30,189,190,.25);
}




      Always put the non-rgba color for older browsers before the rgba color
div.rgba1    {
    background: #000000;
    background: rgba(0,0,0,.8);
    color: #FFF;
}


div.rgba2    {
    background: #FFF;
    background: rgba(255,255,255,.25);
}


div.rgba3    {
    background: #1ebdbe;
    background: rgba(30,189,190,.5);
}
div.rgba1    {
    background: #555;
    border: 5px solid;
    border-color: #000;
    border-color: rgba(0,0,0,.3);
}
div.rgba2    {
    background: #3d3877;
    border: 5px solid;
    border-color: #9d9bba;
    border-color: rgba(255,255,255,.5);
}
div.rgba3    {
    background: url(seaguls.png);
    border: 10px solid;
    border-color: #black;
    border-color: rgba(0,0,0,.5);
}
<p class=”shadow1”>Lorem ipsum</p>


p.shadow1 {
    font-weight: bold;
    font-size: 75px;
    line-height: 1em;
    color: #137576;
    text-shadow:
      1px 1px 0 #42d5d6,
      -1px -1px 0 #084a4a,
      -2px -2px 1px rgba(0,0,0,.2),
      2px 2px 1px rgba(255,255,255,.2);
}
<p class=”shadow2”>Lorem ipsum</p>


p.shadow2 {
    font-weight: bold;
    font-size: 75px;
    line-height: 1em;
    color: #FFF;
    text-shadow:
      0 1px 0 #96e0e0,
      0 2px 0 #86e0e0,
      0 3px 0 #76e0e0,
      0 4px 0 #56e0e0,
      0 5px 5px rgba(0,0,0,.3),
      0 10px 10px rgba(0,0,0,.2);
}
<p class=”shadow3”>Lorem ipsum</p>


p.shadow3 {
    font-weight: bold;
    font-size: 75px;
    line-height: 1em;
    color: #FFF;
    background: #222;
    text-shadow:
      0 0 4px black,
      0 -5px 4px #ff3,
      2px -10px 6px #fd3,
      -2px -15px 11px #f80,
      2px -25px 18px #f20;
}
<div class=”shadow1”>Lorem ipsum</div>


div.shadow1 {
    background: #FFF;
    text-align: center;
    -webkit-box-shadow: ...;
    -moz-box-shadow: ...;
    box-shadow:
      5px 5px 0 rgba(0,0,0,.3);
}
<div class=”shadow2”>Lorem ipsum</div>


div.shadow2 {
    background: #FFF;
    text-align: center;
    -webkit-box-shadow: ...;
    -moz-box-shadow: ...;
    box-shadow:
      0 0 1px black,
      0 0 15px white;
}
<div class=”shadow3”>Lorem ipsum</div>


div.shadow3 {
    background: #FFF;
    text-align: center;
    -webkit-box-shadow: ...;
    -moz-box-shadow: ...;
    box-shadow:
      5px 5px 0 white inset,
      -5px -5px 0 white inset,
      6px 6px 0 rgba(0,0,0,.15) inset,
      -6px -6px 0 rgba(0,0,0,.15) inset,
      0 0 20px rgba(0,0,0,.5) inset,
      0 0 7px rgba(0,0,0,.2),
      0 10px 10px -10px black;
}
<div class=”radius1”>Lorem ipsum</div>


div.radius1 {
    background: #FFF;
    text-align: center;
    -webkit-border-radius: ...;
    -moz-border-radius: ...;
    border-radius: 20px;
}
<div class=”radius2”>Lorem ipsum</div>


div.radius2 {
    background: #FFF;
    text-align: center;
    width: 200px;
    height: 200px;
    font-size: 20px;
    line-height: 200px;
    -webkit-border-radius: ...;
    -moz-border-radius: ...;
    border-radius: 9999px;
}
<div class=”radius3”>Lorem ipsum</div>


div.radius3 {
    background: #FFF;
    text-align: center;
    -webkit-border-radius: ...;
    -moz-border-radius: ...;
    border-radius: 20px 60px;
}
<div class=”gradient1”></div>


div.gradient1 {
    /* Basic color */
    background-color: #183c7a;
    /* Chrome, Safari4+ */
    background-image: -webkit-gradient(linear, left top, left bottom,
                         color-stop(0%,#183c7a), color-stop(100%,#84b6f4));
    /* Chrome10+, Safari5.1+ & The rest */
    background-image: -webkit-linear-gradient(top, #183c7a 0%,#84b6f4 100%);
    background-image: -moz-linear-gradient(top, #183c7a 0%, #84b6f4 100%);
    background-image: -o-linear-gradient(top, #183c7a 0%,#84b6f4 100%);
    background-image: -ms-linear-gradient(top, #183c7a 0%,#84b6f4 100%);
    background-image: linear-gradient(top, #183c7a 0%,#84b6f4 100%);
}




      Always start with a solid color for older browsers
<div class=”gradient2”></div>


div.gradient2 {
    /* Basic color */
    background-color: #183c7a;
    /* Chrome, Safari4+ */
    background: -webkit-gradient(radial, center center, 0px, center center,
                100%, color-stop(0%,rgba(24,60,122,1)),
                color-stop(100%,rgba(132,182,244,0.5)));
    /* Chrome10+, Safari5.1+ & The rest */
    background: -webkit-radial-gradient(center, ellipse cover,
                rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%);
    background: -moz-radial-gradient(Same as webkit)
    background: o-radial-gradient(Same as webkit)
    background: radial-gradient(center, ellipse cover,
                rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%);
}
<div class=”gradient3”></div>


div.gradient3 {
    /* Basic color */
    background-color: red;
    /* Chrome, Safari4+ */
    background-image: -webkit-gradient(radial, center center, 0px, center
                        center, 100%, color-stop(0%,rgba(24,60,122,1)),
                        color-stop(100%,rgba(132,182,244,0.5)));
    background-image: -webkit-radial-gradient(center, ellipse cover,
                        rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%);
    background-image: -moz-radial-gradient(Same as webkit)
    background-image: o-radial-gradient(Same as webkit)
    background-image: radial-gradient(center, ellipse cover,
                        rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%);
}
body {
    background: url(../images/pattern2.png) repeat-x top left,
                 url(../images/pattern.png),
                 linear-gradient(top, rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 100%);
    background-color: #1EBDBE;
}




      By setting background-color last you can simply only change the color
div.wordwrap1 {
    word-wrap: normal;
}
div.wordwrap2 {
    word-wrap: break-word;
}
div.textoverflow1 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
div.textoverflow2 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
}

      :hover {overflow:visible} makes the text visible again
a.transition1 {
    background: #FFF;
    color: #000;
    -webkit-transition: background .5s ease-in-out,color .5s ease-in-out;
      -moz-transition: background .5s ease-in-out,color .5s ease-in-out;
       -ms-transition: background .5s ease-in-out,color .5s ease-in-out;
        -o-transition: background .5s ease-in-out,color .5s ease-in-out;
           transition: background .5s ease-in-out,color .5s ease-in-out;
}


a.transition1:hover {
    background: #000;
    color: #FFF;
}


transition: all .5s ease-in-out;
img.transform1 {
    border: 5px solid white;
    box-shadow: 5px 5px 5px rgba(0,0,0,.2);
    transform: rotate(5deg);
}
img.transform2 {
    border: 5px solid white;
    box-shadow: 5px 5px 5px rgba(0,0,0,.2);
    transform: skew(10deg) scale(1.1,1.1) rotate(-5deg)
    translate(10px, 20px);
}



-webkit-transform:
-moz-transform:
-ms-transform:
-o-transform:
@keyframes animate {         @-webkit-keyframes animate {...}
    0% {                     @-moz-keyframes animate {...}
        width: 300px;        @-ms-keyframes animate {...}
        height: 100px;       @-o-keyframes animate {...}
    }
    25% {
        width: 600px;
        background: black;
        color: #FFF;
        height: 200px;
    }
    100% {
        width: 300px;
        height: 100px;
    }
}
div.animate1 {
    width: 300px;
    height: 100px;
    background: #FFF;
    padding: .5em;
}


div.animate1:hover {
    -webkit-animation: animate 3s infinite;
       -moz-animation: animate 3s infinite;
        -ms-animation: animate 3s infinite;
         -o-animation: animate 3s infinite;
            animation: animate 3s infinite;
}
table {
    border-collapse: collapse;
    width: 400px;
}
table th {
    background: #555;
    color: #FFF;
    padding: 5px;
    border: 1px solid #AAA;
    text-align: left;
    font-weight: bold;
}
table td {
    border: 1px solid #CCC;
    padding: 5px;
}
table tr:nth-child(odd) {
    background: #DDD;
}
table tr:nth-child(odd) {
    background: #DDD;
}
table tr:nth-child(5) {
    background: #fcf79f;
}
table tr:nth-child(odd) {
    background: #DDD;
}
table tr:nth-child(5) {
    background: #fcf79f;
}
table tr:first-of-type {
    background: #9fecf9;
}
table tr:nth-child(odd) {
    background: #DDD;
}
table tr:nth-child(5) {
    background: #fcf79f;
}
table tr:first-of-type {
    background: #9fecf9;
}
table tr:last-child {
    background: #9fecf9;
}
Useful websites
Because we're not encyclopedias
CSS3.info

     HTML5please.com

      CSS3please.com

colorzilla.com/gradient-editor

    w3.org/TR/selectors
Questions?
Use it today, but be             Progressively enhance!
careful where to use it



                           CSS3

                                     Don't let it take
        Put users first!
                                          over
Time up

   Robin Poort (@rhcpoort)
ThemePartner (@theme_partner)

More Related Content

What's hot

Corilennyg gmail-com-rsp2
Corilennyg gmail-com-rsp2Corilennyg gmail-com-rsp2
Corilennyg gmail-com-rsp2
cori0506
 

What's hot (14)

Corilennyg gmail-com-rsp2
Corilennyg gmail-com-rsp2Corilennyg gmail-com-rsp2
Corilennyg gmail-com-rsp2
 
The CSS of Tomorrow (Front Row 2011)
The CSS of Tomorrow (Front Row 2011)The CSS of Tomorrow (Front Row 2011)
The CSS of Tomorrow (Front Row 2011)
 
Palestra pré processadores CSS
Palestra pré processadores CSSPalestra pré processadores CSS
Palestra pré processadores CSS
 
Cloudstack UI Customization
Cloudstack UI CustomizationCloudstack UI Customization
Cloudstack UI Customization
 
WordPress theme translation
WordPress theme translationWordPress theme translation
WordPress theme translation
 
Web Development for Mobile: GTUG Talk at Google
Web Development for Mobile: GTUG Talk at GoogleWeb Development for Mobile: GTUG Talk at Google
Web Development for Mobile: GTUG Talk at Google
 
Open Web Camp: CSS3 Implementable Features
Open Web Camp: CSS3 Implementable FeaturesOpen Web Camp: CSS3 Implementable Features
Open Web Camp: CSS3 Implementable Features
 
CSS3 For WebKit: iPadDevCamp Presentation
CSS3 For WebKit: iPadDevCamp PresentationCSS3 For WebKit: iPadDevCamp Presentation
CSS3 For WebKit: iPadDevCamp Presentation
 
The Basics of CSS3
The Basics of CSS3The Basics of CSS3
The Basics of CSS3
 
CSS3 Implementable Features
CSS3 Implementable FeaturesCSS3 Implementable Features
CSS3 Implementable Features
 
Css(handbook)
Css(handbook)Css(handbook)
Css(handbook)
 
Zebra
ZebraZebra
Zebra
 
Css3 process bar
Css3 process barCss3 process bar
Css3 process bar
 
Theme verdadeiro
Theme verdadeiroTheme verdadeiro
Theme verdadeiro
 

Viewers also liked (7)

Técnicasproyectivas
TécnicasproyectivasTécnicasproyectivas
Técnicasproyectivas
 
Sns
SnsSns
Sns
 
광고와뉴미디어
광고와뉴미디어광고와뉴미디어
광고와뉴미디어
 
광고와 뉴미디어
광고와 뉴미디어광고와 뉴미디어
광고와 뉴미디어
 
Em3 funcao sentencas
Em3 funcao  sentencasEm3 funcao  sentencas
Em3 funcao sentencas
 
Publi 05.03.2015
Publi 05.03.2015Publi 05.03.2015
Publi 05.03.2015
 
Esquema proyecto tesis nespo
Esquema proyecto tesis nespoEsquema proyecto tesis nespo
Esquema proyecto tesis nespo
 

Similar to Learn to Love CSS3 [English]

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
Kaelig Deloumeau-Prigent
 
Big Design Conference: CSS3
Big Design Conference: CSS3 Big Design Conference: CSS3
Big Design Conference: CSS3
Wynn Netherland
 
My discussion Student A A8 - Cross-Site Request Forgery (CSR.docx
My discussion Student A A8 - Cross-Site Request Forgery (CSR.docxMy discussion Student A A8 - Cross-Site Request Forgery (CSR.docx
My discussion Student A A8 - Cross-Site Request Forgery (CSR.docx
gilpinleeanna
 
Sass, Compass and the new tools - Open Web Camp IV
Sass, Compass and the new tools - Open Web Camp IVSass, Compass and the new tools - Open Web Camp IV
Sass, Compass and the new tools - Open Web Camp IV
Dirk Ginader
 
untitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docx
untitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docxuntitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docx
untitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docx
dickonsondorris
 

Similar to Learn to Love CSS3 [English] (20)

Sass, Compass
Sass, CompassSass, Compass
Sass, Compass
 
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
 
Big Design Conference: CSS3
Big Design Conference: CSS3 Big Design Conference: CSS3
Big Design Conference: CSS3
 
"Вклад Adobe в Web". Дмитрий Барановский, Adobe
"Вклад Adobe в Web". Дмитрий Барановский, Adobe"Вклад Adobe в Web". Дмитрий Барановский, Adobe
"Вклад Adobe в Web". Дмитрий Барановский, Adobe
 
Sass compass
Sass compassSass compass
Sass compass
 
My discussion Student A A8 - Cross-Site Request Forgery (CSR.docx
My discussion Student A A8 - Cross-Site Request Forgery (CSR.docxMy discussion Student A A8 - Cross-Site Request Forgery (CSR.docx
My discussion Student A A8 - Cross-Site Request Forgery (CSR.docx
 
popular posts widget
popular posts widgetpopular posts widget
popular posts widget
 
Sass & Compass (Barcamp Stuttgart 2012)
Sass & Compass (Barcamp Stuttgart 2012)Sass & Compass (Barcamp Stuttgart 2012)
Sass & Compass (Barcamp Stuttgart 2012)
 
Making Links Magical Again with CSS
Making Links Magical Again with CSSMaking Links Magical Again with CSS
Making Links Magical Again with CSS
 
LessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingLessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG Meeting
 
Accelerated Stylesheets
Accelerated StylesheetsAccelerated Stylesheets
Accelerated Stylesheets
 
Sass, Compass and the new tools - Open Web Camp IV
Sass, Compass and the new tools - Open Web Camp IVSass, Compass and the new tools - Open Web Camp IV
Sass, Compass and the new tools - Open Web Camp IV
 
Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESS
 
The CSS3 of Tomorrow
The CSS3 of TomorrowThe CSS3 of Tomorrow
The CSS3 of Tomorrow
 
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
 
HTML5 e Css3 - 4 | WebMaster & WebDesigner
HTML5 e Css3 - 4 | WebMaster & WebDesignerHTML5 e Css3 - 4 | WebMaster & WebDesigner
HTML5 e Css3 - 4 | WebMaster & WebDesigner
 
Css3 process bar
Css3 process barCss3 process bar
Css3 process bar
 
Css3 process bar
Css3 process barCss3 process bar
Css3 process bar
 
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
 
untitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docx
untitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docxuntitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docx
untitled folder 6.DS_Store__MACOSXuntitled folder 6._.DS_.docx
 

More from ThemePartner

Stop Building Links, Start Earning Them
Stop Building Links, Start Earning ThemStop Building Links, Start Earning Them
Stop Building Links, Start Earning Them
ThemePartner
 
Joomla! SEO (with Super Mario) [Dutch]
Joomla! SEO (with Super Mario) [Dutch]Joomla! SEO (with Super Mario) [Dutch]
Joomla! SEO (with Super Mario) [Dutch]
ThemePartner
 
Joomla 2.5 SEO [Dutch]
Joomla 2.5 SEO [Dutch]Joomla 2.5 SEO [Dutch]
Joomla 2.5 SEO [Dutch]
ThemePartner
 

More from ThemePartner (14)

Stop Building Links, Start Earning Them
Stop Building Links, Start Earning ThemStop Building Links, Start Earning Them
Stop Building Links, Start Earning Them
 
Clever Joomla! Templating Tips and Tricks
Clever Joomla! Templating Tips and TricksClever Joomla! Templating Tips and Tricks
Clever Joomla! Templating Tips and Tricks
 
Slimme Joomla! Templating Tips en Truuks
Slimme Joomla! Templating Tips en TruuksSlimme Joomla! Templating Tips en Truuks
Slimme Joomla! Templating Tips en Truuks
 
Responsive Design: Uitdagingen en Oplossingen
Responsive Design: Uitdagingen en OplossingenResponsive Design: Uitdagingen en Oplossingen
Responsive Design: Uitdagingen en Oplossingen
 
Van voor, naar achter, van links naar... Likes?
Van voor, naar achter, van links naar... Likes?Van voor, naar achter, van links naar... Likes?
Van voor, naar achter, van links naar... Likes?
 
Is Joomla nog steeds de juiste keuze in 2017?
Is Joomla nog steeds de juiste keuze in 2017?Is Joomla nog steeds de juiste keuze in 2017?
Is Joomla nog steeds de juiste keuze in 2017?
 
Creating User Friendly Joomla! Websites and Forms | Joomla! Day Deutschland
Creating User Friendly Joomla! Websites and Forms | Joomla! Day DeutschlandCreating User Friendly Joomla! Websites and Forms | Joomla! Day Deutschland
Creating User Friendly Joomla! Websites and Forms | Joomla! Day Deutschland
 
Creating User Friendly Joomla! Websites and Forms [English]
Creating User Friendly Joomla! Websites and Forms [English]Creating User Friendly Joomla! Websites and Forms [English]
Creating User Friendly Joomla! Websites and Forms [English]
 
Joomla! SEO (With Super Mario) [English]
Joomla! SEO (With Super Mario) [English]Joomla! SEO (With Super Mario) [English]
Joomla! SEO (With Super Mario) [English]
 
6 Psychological Techniques to Improve Your Conversion Rate [English]
6 Psychological Techniques to Improve Your Conversion Rate [English]6 Psychological Techniques to Improve Your Conversion Rate [English]
6 Psychological Techniques to Improve Your Conversion Rate [English]
 
Gebruiksvriendelijke sites maken (dutch)
Gebruiksvriendelijke sites maken (dutch)Gebruiksvriendelijke sites maken (dutch)
Gebruiksvriendelijke sites maken (dutch)
 
CSS3 (dutch)
CSS3 (dutch)CSS3 (dutch)
CSS3 (dutch)
 
Joomla! SEO (with Super Mario) [Dutch]
Joomla! SEO (with Super Mario) [Dutch]Joomla! SEO (with Super Mario) [Dutch]
Joomla! SEO (with Super Mario) [Dutch]
 
Joomla 2.5 SEO [Dutch]
Joomla 2.5 SEO [Dutch]Joomla 2.5 SEO [Dutch]
Joomla 2.5 SEO [Dutch]
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Learn to Love CSS3 [English]

  • 1. CSS3 Robin Poort (@rhcpoort) CEO & co-founder ThemePartner (@theme_partner) J and Beyond, Bad Nauheim, may 2012
  • 2.
  • 4. Robert Raisch proposed "named Stylesheets" Source: http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q2.messages/443.html
  • 6. Håkon Wium Lie & Bert Bos create CSS1 Source: http://upload.wikimedia.org/wikipedia/commons/5/54/H%C3%A5kon_Wium_Lie.jpg Source: http://www.w3c.de/Events/2006/images/PrintSymposium/slides/_DSC0209.JPG
  • 7. CSS1 in development h1.font.size = 24pt 100% 40% font.family = times h1.font.family = helvetica 100% 60% AGE > 3d ? background.color = pale_yellow : background.color = white DISPLAY_HEIGHT > 30cm ? http://NYT.com/style : http://LeMonde.fr/style
  • 10. 1998
  • 12. 1999
  • 13. CSS3 mentioned for the first time
  • 16. Not on the critical layers don't use it on branding, layout & usability
  • 17. Progressively enhance! Make sure the website works in older browsers
  • 18. Performance problems Make your website fast!
  • 20. p.rgba1 { color: #000000; color: rgba(0,0,0,1); } p.rgba2 { color: #FF0000; color: rgba(255,0,0,.5); } p.rgba3 { color: #1ebdbe; color: rgba(30,189,190,.25); } Always put the non-rgba color for older browsers before the rgba color
  • 21. div.rgba1 { background: #000000; background: rgba(0,0,0,.8); color: #FFF; } div.rgba2 { background: #FFF; background: rgba(255,255,255,.25); } div.rgba3 { background: #1ebdbe; background: rgba(30,189,190,.5); }
  • 22. div.rgba1 { background: #555; border: 5px solid; border-color: #000; border-color: rgba(0,0,0,.3); } div.rgba2 { background: #3d3877; border: 5px solid; border-color: #9d9bba; border-color: rgba(255,255,255,.5); } div.rgba3 { background: url(seaguls.png); border: 10px solid; border-color: #black; border-color: rgba(0,0,0,.5); }
  • 23. <p class=”shadow1”>Lorem ipsum</p> p.shadow1 { font-weight: bold; font-size: 75px; line-height: 1em; color: #137576; text-shadow: 1px 1px 0 #42d5d6, -1px -1px 0 #084a4a, -2px -2px 1px rgba(0,0,0,.2), 2px 2px 1px rgba(255,255,255,.2); }
  • 24. <p class=”shadow2”>Lorem ipsum</p> p.shadow2 { font-weight: bold; font-size: 75px; line-height: 1em; color: #FFF; text-shadow: 0 1px 0 #96e0e0, 0 2px 0 #86e0e0, 0 3px 0 #76e0e0, 0 4px 0 #56e0e0, 0 5px 5px rgba(0,0,0,.3), 0 10px 10px rgba(0,0,0,.2); }
  • 25. <p class=”shadow3”>Lorem ipsum</p> p.shadow3 { font-weight: bold; font-size: 75px; line-height: 1em; color: #FFF; background: #222; text-shadow: 0 0 4px black, 0 -5px 4px #ff3, 2px -10px 6px #fd3, -2px -15px 11px #f80, 2px -25px 18px #f20; }
  • 26. <div class=”shadow1”>Lorem ipsum</div> div.shadow1 { background: #FFF; text-align: center; -webkit-box-shadow: ...; -moz-box-shadow: ...; box-shadow: 5px 5px 0 rgba(0,0,0,.3); }
  • 27. <div class=”shadow2”>Lorem ipsum</div> div.shadow2 { background: #FFF; text-align: center; -webkit-box-shadow: ...; -moz-box-shadow: ...; box-shadow: 0 0 1px black, 0 0 15px white; }
  • 28. <div class=”shadow3”>Lorem ipsum</div> div.shadow3 { background: #FFF; text-align: center; -webkit-box-shadow: ...; -moz-box-shadow: ...; box-shadow: 5px 5px 0 white inset, -5px -5px 0 white inset, 6px 6px 0 rgba(0,0,0,.15) inset, -6px -6px 0 rgba(0,0,0,.15) inset, 0 0 20px rgba(0,0,0,.5) inset, 0 0 7px rgba(0,0,0,.2), 0 10px 10px -10px black; }
  • 29. <div class=”radius1”>Lorem ipsum</div> div.radius1 { background: #FFF; text-align: center; -webkit-border-radius: ...; -moz-border-radius: ...; border-radius: 20px; }
  • 30. <div class=”radius2”>Lorem ipsum</div> div.radius2 { background: #FFF; text-align: center; width: 200px; height: 200px; font-size: 20px; line-height: 200px; -webkit-border-radius: ...; -moz-border-radius: ...; border-radius: 9999px; }
  • 31. <div class=”radius3”>Lorem ipsum</div> div.radius3 { background: #FFF; text-align: center; -webkit-border-radius: ...; -moz-border-radius: ...; border-radius: 20px 60px; }
  • 32. <div class=”gradient1”></div> div.gradient1 { /* Basic color */ background-color: #183c7a; /* Chrome, Safari4+ */ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#183c7a), color-stop(100%,#84b6f4)); /* Chrome10+, Safari5.1+ & The rest */ background-image: -webkit-linear-gradient(top, #183c7a 0%,#84b6f4 100%); background-image: -moz-linear-gradient(top, #183c7a 0%, #84b6f4 100%); background-image: -o-linear-gradient(top, #183c7a 0%,#84b6f4 100%); background-image: -ms-linear-gradient(top, #183c7a 0%,#84b6f4 100%); background-image: linear-gradient(top, #183c7a 0%,#84b6f4 100%); } Always start with a solid color for older browsers
  • 33. <div class=”gradient2”></div> div.gradient2 { /* Basic color */ background-color: #183c7a; /* Chrome, Safari4+ */ background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(24,60,122,1)), color-stop(100%,rgba(132,182,244,0.5))); /* Chrome10+, Safari5.1+ & The rest */ background: -webkit-radial-gradient(center, ellipse cover, rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%); background: -moz-radial-gradient(Same as webkit) background: o-radial-gradient(Same as webkit) background: radial-gradient(center, ellipse cover, rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%); }
  • 34. <div class=”gradient3”></div> div.gradient3 { /* Basic color */ background-color: red; /* Chrome, Safari4+ */ background-image: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(24,60,122,1)), color-stop(100%,rgba(132,182,244,0.5))); background-image: -webkit-radial-gradient(center, ellipse cover, rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%); background-image: -moz-radial-gradient(Same as webkit) background-image: o-radial-gradient(Same as webkit) background-image: radial-gradient(center, ellipse cover, rgba(24,60,122,1) 0%,rgba(132,182,244,0.5) 100%); }
  • 35. body { background: url(../images/pattern2.png) repeat-x top left, url(../images/pattern.png), linear-gradient(top, rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 100%); background-color: #1EBDBE; } By setting background-color last you can simply only change the color
  • 36. div.wordwrap1 { word-wrap: normal; } div.wordwrap2 { word-wrap: break-word; } div.textoverflow1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } div.textoverflow2 { white-space: nowrap; overflow: hidden; text-overflow: clip; } :hover {overflow:visible} makes the text visible again
  • 37. a.transition1 { background: #FFF; color: #000; -webkit-transition: background .5s ease-in-out,color .5s ease-in-out; -moz-transition: background .5s ease-in-out,color .5s ease-in-out; -ms-transition: background .5s ease-in-out,color .5s ease-in-out; -o-transition: background .5s ease-in-out,color .5s ease-in-out; transition: background .5s ease-in-out,color .5s ease-in-out; } a.transition1:hover { background: #000; color: #FFF; } transition: all .5s ease-in-out;
  • 38. img.transform1 { border: 5px solid white; box-shadow: 5px 5px 5px rgba(0,0,0,.2); transform: rotate(5deg); } img.transform2 { border: 5px solid white; box-shadow: 5px 5px 5px rgba(0,0,0,.2); transform: skew(10deg) scale(1.1,1.1) rotate(-5deg) translate(10px, 20px); } -webkit-transform: -moz-transform: -ms-transform: -o-transform:
  • 39. @keyframes animate { @-webkit-keyframes animate {...} 0% { @-moz-keyframes animate {...} width: 300px; @-ms-keyframes animate {...} height: 100px; @-o-keyframes animate {...} } 25% { width: 600px; background: black; color: #FFF; height: 200px; } 100% { width: 300px; height: 100px; } }
  • 40. div.animate1 { width: 300px; height: 100px; background: #FFF; padding: .5em; } div.animate1:hover { -webkit-animation: animate 3s infinite; -moz-animation: animate 3s infinite; -ms-animation: animate 3s infinite; -o-animation: animate 3s infinite; animation: animate 3s infinite; }
  • 41. table { border-collapse: collapse; width: 400px; } table th { background: #555; color: #FFF; padding: 5px; border: 1px solid #AAA; text-align: left; font-weight: bold; } table td { border: 1px solid #CCC; padding: 5px; }
  • 42. table tr:nth-child(odd) { background: #DDD; }
  • 43. table tr:nth-child(odd) { background: #DDD; } table tr:nth-child(5) { background: #fcf79f; }
  • 44. table tr:nth-child(odd) { background: #DDD; } table tr:nth-child(5) { background: #fcf79f; } table tr:first-of-type { background: #9fecf9; }
  • 45. table tr:nth-child(odd) { background: #DDD; } table tr:nth-child(5) { background: #fcf79f; } table tr:first-of-type { background: #9fecf9; } table tr:last-child { background: #9fecf9; }
  • 46.
  • 47. Useful websites Because we're not encyclopedias
  • 48. CSS3.info HTML5please.com CSS3please.com colorzilla.com/gradient-editor w3.org/TR/selectors
  • 50. Use it today, but be Progressively enhance! careful where to use it CSS3 Don't let it take Put users first! over
  • 51. Time up Robin Poort (@rhcpoort) ThemePartner (@theme_partner)

Editor's Notes

  1. Use when and where? Some examples. History first
  2. Looks hard. I&apos;m happy that in 1994 Hakon and Bert went to work together
  3. Very similar as you can see
  4. Took a long time. Some browsers found it harder to support/implement CSS2.1 then others
  5. No CSS3 logo. Do not use clumns with gaps etc or box-sizing w/o fallback. Not to make things clear on forms. No box-shadow as border on input elements.
  6. Think of gradients and RGBA or HSLA for example
  7. Things like box-shadow, text-shadow &amp; border-radius on big elements or to much of it
  8. I&apos;ll start with RGBA because I will use it in following examples. I won&apos;t get into depth because there&apos;s no time and the sheets will be online.
  9. Mozilla 3.x, all Chrome, Safari 3.x, Opera 10.x, IE9, mobile safari Use it on: color; background &amp; border
  10. Mozilla 3.x, all Chrome, Safari 3.x, Opera 10.x, IE9, mobile safari Use it on: color; background &amp; border
  11. Mozilla 3.x, all Chrome, Safari 3.x, Opera 10.x, IE9, mobile safari Use it on: color; background &amp; border
  12. Text-shadow was introduced in CSS2.0 but was removed in CSS2.1 because of compatibility This doesn&apos;t work on IE9! Seperate with a comma!
  13. Vendor prefixes!
  14. Inset + Smaller shadow + with spread
  15. shorthand is ...
  16. Most readable or middel color as a background color Webkit has two. I only use the latest one
  17. NO background image for transparancy
  18. Do give it a background-color and make use of it
  19. It doesn&apos;t recognize text yet. It breaks words on width and not on words. Could be improved
  20. I always use all because when only some parts &amp;quot;animate&amp;quot; it looks weird DOESN&apos;T work on IE(, sucks
  21. 4 different transforms + vendor prefixes Doesnt work with commas
  22. Use it only for &amp;quot;animations&amp;quot; with more then one frame
  23. Nooit te veel zelf onthouden, check altijd je sites