SlideShare a Scribd company logo
1 of 47
Download to read offline
Theming Ext JS 4


  ROBERT DOUGAN, SENCHA
Ext JS 4 Theme
       CSS3
 Component Templates
       SASS
   Theming Ext JS 4
       Demo
CSS3
Currently
     Design it
      Chop it
Sprite the images
  Add the CSS
 For every state!
With CSS3
  Design it
 Add the CSS
Every Component!
Component Templates
<table id="ext-comp-1003" cellspacing="0" class="x-btn x-btn-noicon" style="width: auto; ">
    <tbody class="x-btn-small x-btn-icon-small-left">
         <tr>
              <td class="x-btn-tl">
                  <i>&nbsp;</i>
              </td>
              <td class="x-btn-tc"></td>
              <td class="x-btn-tr">
                  <i>&nbsp;</i>
              </td>
         </tr>
         <tr>
              <td class="x-btn-ml">
                  <i>&nbsp;</i>
              </td>
              <td class="x-btn-mc">
                  <em class="" unselectable="on">
                      <button type="button" id="ext-gen9" class=" x-btn-text">Add User</button>
                  </em>
              </td>
              <td class="x-btn-mr">
                  <i>&nbsp;</i>
              </td>
         </tr>
         <tr>
              <td class="x-btn-bl">
                  <i>&nbsp;</i>
              </td>
              <td class="x-btn-bc"></td>
              <td class="x-btn-br">
                  <i>&nbsp;</i>
              </td>
         </tr>
    </tbody>
</table>
<div id="button-1003" class="x-btn x-btn-small x-gray x-btn-icon-small-left x-btn-noicon">
    <button type="button" role="button" id="ext-gen1004">Add User</button>
</div>
Every Component!
Legacy Browsers?
SASS
http://sass-lang.com
Variables
               SCSS                       CSS
$blue:#3bbfce;               /* line 4, ../src/test.scss */
$margin:16px;                .example1 {
                               border-color:#3bbfce;
.example1 {                  }
  border-color:$blue;
}                            /* line 8, ../src/test.scss */
                             .example2 {
.example2 {                    margin:16px;
  margin:$margin;              color:#3bbfce;
                             }
    color:$blue;
}
Inline Variables
               SCSS                        CSS
$str:‘test’;                  /* line 3, ../src/test.scss */
                              .example.test {
.example.#{$str} {              color:black;
  color:black;                }
}
                              /* line 9, ../src/test.scss */
$str:‘foo’;                   .example.foo {
                                color:black;
.example.#{$str} {            }
  color:black;
}
Math Functions
              SCSS                          CSS
$one:8px;                      /* line 5, ../src/test.scss */
$two:16px;                     .example1 {
$three:3px;                      border: 1px solid 4px;
                               }
.example1 {
  border:1px solid $one / 2;   /* line 9, ../src/test.scss */
}                              .example2 {
                                 margin: 48px;
.example2 {                    }
  margin:$two * $three;
}
Color Functions
                SCSS                                   CSS
.example1 {                               /* line 1, ../src/test.scss */
  color:darken(yellow, 10);               .example1 {
                                            color: #cccc00;
    background:lighten(blue, 30);           background: #9999ff;
                                            border-color: #aa0000;
    border-color:saturate(#aa0000, 10);   }
}
                                          /* line 9, ../src/test.scss */
.example2 {                               .example2 {
  background:mix(yellow, red);              background: #ff7f00;
}                                         }
Mixins
               SCSS                              CSS
@mixin add-stuff($color) {        /* line 6, ../src/test.scss */
  color:$color;                   .example {
  background-color:#000;            color: blue;
                                    background-color: #000;
    .child {
      padding:5px;                    .child {
    }                                   padding: 5px;
}                                     }
                                  }
.example {
  @include add-stuff(blue);
}
Combined
                 SCSS                                   CSS
@mixin style-btn($name, $color) {          /* line 2, ../src/test.scss */
  .btn.#{$name} {                          .btn.tangy {
    background:$color;                       background: yellow;
                                             border: 1px solid;
        border:1px solid;                    border-color: #cccc00;
        border-color:darken($color, 10);     color: #666666;
                                           }
        color:lighten($color, 40);
    }                                      /* line 2, ../src/test.scss */
}                                          .btn.pale {
                                             background: blue;
@include style-btn(‘tangy’, yellow);         border: 1px solid;
@include style-btn(‘pale’, blue);            border-color: #0000cc;
                                             color: #666666;
                                           }
Compass
Compass
             SCSS                             CSS
@import 'compass';               /* line 3, ../src/test.scss */
                                 .example1 {
.example1 {                        -moz-border-radius: 5px;
  @include border-radius(5px);     -webkit-border-radius: 5px;
}                                  -o-border-radius: 5px;
                                   -ms-border-radius: 5px;
                                   -khtml-border-radius: 5px;
                                   border-radius: 5px;
                                 }
Theming Ext JS 4
Neptune
Variables
$base-color: #cc0000;
$frame-base-color: #333;
$frame-border-radius: 10px;
  $frame-font-size: 14px;
Mixins
@include extjs-button-color(‘yellow’, darken(#ddaa00, 13));
Optimization
/*include extjs components*/
@include extjs-button;
@include extjs-form;
@include extjs-panel;
@include extjs-qtip;
@include extjs-toolbar;
@include extjs-window;
/*include extjs components*/
@include extjs-button;
@include extjs-panel;
@include extjs-toolbar;
@include extjs-window;
Documentation
Demo
Questions?
Thanks!
@rdougan
rdougan@me.com
  http://rwd.me

  @senchainc

More Related Content

What's hot

JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
gyuque
 
Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013
Sébastien Deleuze
 
Just css results dogmeat template validator
Just css results dogmeat template validatorJust css results dogmeat template validator
Just css results dogmeat template validator
Gaejang Guk
 
MyBB account hijacking
MyBB account hijackingMyBB account hijacking
MyBB account hijacking
Chris Illusion
 

What's hot (19)

Sass - Making CSS fun again.
Sass - Making CSS fun again.Sass - Making CSS fun again.
Sass - Making CSS fun again.
 
CSS3 vs jQuery
CSS3 vs jQueryCSS3 vs jQuery
CSS3 vs jQuery
 
Growing jQuery
Growing jQueryGrowing jQuery
Growing jQuery
 
Krueger Library Custom CSS for LibGuides
Krueger Library Custom CSS for LibGuidesKrueger Library Custom CSS for LibGuides
Krueger Library Custom CSS for LibGuides
 
Bloqueador cmd-sh
Bloqueador cmd-shBloqueador cmd-sh
Bloqueador cmd-sh
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
 
Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013
 
Jina Bolton
Jina BoltonJina Bolton
Jina Bolton
 
CSS3 and jQuery
CSS3 and jQueryCSS3 and jQuery
CSS3 and jQuery
 
Code Tops Comments
Code Tops CommentsCode Tops Comments
Code Tops Comments
 
Manipuler avec attention les URLs courtes
Manipuler avec attention les URLs courtesManipuler avec attention les URLs courtes
Manipuler avec attention les URLs courtes
 
Finding a Better Way to CSS: Navigating Sass with Compass
Finding a Better Way to CSS: Navigating Sass with CompassFinding a Better Way to CSS: Navigating Sass with Compass
Finding a Better Way to CSS: Navigating Sass with Compass
 
PHP with MySQL
PHP with MySQLPHP with MySQL
PHP with MySQL
 
Just css results dogmeat template validator
Just css results dogmeat template validatorJust css results dogmeat template validator
Just css results dogmeat template validator
 
To get user client system name on ui welcome screen.doc
To get user client system name on ui welcome screen.docTo get user client system name on ui welcome screen.doc
To get user client system name on ui welcome screen.doc
 
MyBB account hijacking
MyBB account hijackingMyBB account hijacking
MyBB account hijacking
 
HTML5 - Pedro Rosa
HTML5 - Pedro RosaHTML5 - Pedro Rosa
HTML5 - Pedro Rosa
 
Prograweb
PrograwebPrograweb
Prograweb
 
Lettering js
Lettering jsLettering js
Lettering js
 

Viewers also liked

Designing an ExtJS user login panel
Designing an ExtJS user login panelDesigning an ExtJS user login panel
Designing an ExtJS user login panel
Arun Prasad
 

Viewers also liked (7)

Designing an ExtJS user login panel
Designing an ExtJS user login panelDesigning an ExtJS user login panel
Designing an ExtJS user login panel
 
Building Sencha Themes
Building Sencha ThemesBuilding Sencha Themes
Building Sencha Themes
 
Ext js 6
Ext js 6Ext js 6
Ext js 6
 
Ext js user login panel
Ext js user login panelExt js user login panel
Ext js user login panel
 
Introduction to ExtJS lesson 01 Part two
Introduction to ExtJS lesson 01 Part twoIntroduction to ExtJS lesson 01 Part two
Introduction to ExtJS lesson 01 Part two
 
Ext JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsExt JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell Simeons
 
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
 

Similar to Theming Ext JS 4

Simple introduction Sass
Simple introduction SassSimple introduction Sass
Simple introduction Sass
Zeeshan Ahmed
 
Software programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS filesSoftware programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS files
Dinu Suman
 
SASS is more than LESS
SASS is more than LESSSASS is more than LESS
SASS is more than LESS
Itai Koren
 
Sass and Compass - Getting Started
Sass and Compass - Getting StartedSass and Compass - Getting Started
Sass and Compass - Getting Started
edgincvg
 
Evrone.ru / BEM for RoR
Evrone.ru / BEM for RoREvrone.ru / BEM for RoR
Evrone.ru / BEM for RoR
Dmitry KODer
 

Similar to Theming Ext JS 4 (20)

Theming and Sass
Theming and SassTheming and Sass
Theming and Sass
 
Simple introduction Sass
Simple introduction SassSimple introduction Sass
Simple introduction Sass
 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentation
 
Software programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS filesSoftware programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS files
 
Front-End Dev Tools
Front-End Dev ToolsFront-End Dev Tools
Front-End Dev Tools
 
LESS : The dynamic stylesheet language
LESS : The dynamic stylesheet languageLESS : The dynamic stylesheet language
LESS : The dynamic stylesheet language
 
Accelerated Stylesheets
Accelerated StylesheetsAccelerated Stylesheets
Accelerated Stylesheets
 
CSS: A Slippery Slope to the Backend
CSS: A Slippery Slope to the BackendCSS: A Slippery Slope to the Backend
CSS: A Slippery Slope to the Backend
 
Building a theming system with React - Matteo Ronchi - Codemotion Amsterdam 2017
Building a theming system with React - Matteo Ronchi - Codemotion Amsterdam 2017Building a theming system with React - Matteo Ronchi - Codemotion Amsterdam 2017
Building a theming system with React - Matteo Ronchi - Codemotion Amsterdam 2017
 
3 Steps to Make Better & Faster Frontends
3 Steps to Make Better & Faster Frontends3 Steps to Make Better & Faster Frontends
3 Steps to Make Better & Faster Frontends
 
CSS Extenders
CSS ExtendersCSS Extenders
CSS Extenders
 
LESS CSS Pre-processor
LESS CSS Pre-processorLESS CSS Pre-processor
LESS CSS Pre-processor
 
SASS is more than LESS
SASS is more than LESSSASS is more than LESS
SASS is more than LESS
 
Insertcustomer
InsertcustomerInsertcustomer
Insertcustomer
 
Getting Started with Sass & Compass
Getting Started with Sass & CompassGetting Started with Sass & Compass
Getting Started with Sass & Compass
 
Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESS
 
Sass and Compass - Getting Started
Sass and Compass - Getting StartedSass and Compass - Getting Started
Sass and Compass - Getting Started
 
Less css
Less cssLess css
Less css
 
Evrone.ru / BEM for RoR
Evrone.ru / BEM for RoREvrone.ru / BEM for RoR
Evrone.ru / BEM for RoR
 
16-DOMTree.pptx
16-DOMTree.pptx16-DOMTree.pptx
16-DOMTree.pptx
 

More from Sencha

More from Sencha (20)

Breathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsBreathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web Components
 
Ext JS 6.6 Highlights
Ext JS 6.6 HighlightsExt JS 6.6 Highlights
Ext JS 6.6 Highlights
 
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha Test
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
 
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
 
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
 
Sencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop First
 
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
 
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridLeveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
 
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsIntroducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
 
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
 
Building Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff StanoBuilding Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff Stano
 
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Theming Ext JS 4

  • 1.
  • 2. Theming Ext JS 4 ROBERT DOUGAN, SENCHA
  • 3.
  • 4.
  • 5. Ext JS 4 Theme CSS3 Component Templates SASS Theming Ext JS 4 Demo
  • 7.
  • 8. Currently Design it Chop it Sprite the images Add the CSS For every state!
  • 9. With CSS3 Design it Add the CSS
  • 12.
  • 13. <table id="ext-comp-1003" cellspacing="0" class="x-btn x-btn-noicon" style="width: auto; "> <tbody class="x-btn-small x-btn-icon-small-left"> <tr> <td class="x-btn-tl"> <i>&nbsp;</i> </td> <td class="x-btn-tc"></td> <td class="x-btn-tr"> <i>&nbsp;</i> </td> </tr> <tr> <td class="x-btn-ml"> <i>&nbsp;</i> </td> <td class="x-btn-mc"> <em class="" unselectable="on"> <button type="button" id="ext-gen9" class=" x-btn-text">Add User</button> </em> </td> <td class="x-btn-mr"> <i>&nbsp;</i> </td> </tr> <tr> <td class="x-btn-bl"> <i>&nbsp;</i> </td> <td class="x-btn-bc"></td> <td class="x-btn-br"> <i>&nbsp;</i> </td> </tr> </tbody> </table>
  • 14. <div id="button-1003" class="x-btn x-btn-small x-gray x-btn-icon-small-left x-btn-noicon"> <button type="button" role="button" id="ext-gen1004">Add User</button> </div>
  • 18. Variables SCSS CSS $blue:#3bbfce; /* line 4, ../src/test.scss */ $margin:16px; .example1 { border-color:#3bbfce; .example1 { } border-color:$blue; } /* line 8, ../src/test.scss */ .example2 { .example2 { margin:16px; margin:$margin; color:#3bbfce; } color:$blue; }
  • 19. Inline Variables SCSS CSS $str:‘test’; /* line 3, ../src/test.scss */ .example.test { .example.#{$str} { color:black; color:black; } } /* line 9, ../src/test.scss */ $str:‘foo’; .example.foo { color:black; .example.#{$str} { } color:black; }
  • 20. Math Functions SCSS CSS $one:8px; /* line 5, ../src/test.scss */ $two:16px; .example1 { $three:3px; border: 1px solid 4px; } .example1 { border:1px solid $one / 2; /* line 9, ../src/test.scss */ } .example2 { margin: 48px; .example2 { } margin:$two * $three; }
  • 21. Color Functions SCSS CSS .example1 { /* line 1, ../src/test.scss */ color:darken(yellow, 10); .example1 { color: #cccc00; background:lighten(blue, 30); background: #9999ff; border-color: #aa0000; border-color:saturate(#aa0000, 10); } } /* line 9, ../src/test.scss */ .example2 { .example2 { background:mix(yellow, red); background: #ff7f00; } }
  • 22. Mixins SCSS CSS @mixin add-stuff($color) { /* line 6, ../src/test.scss */ color:$color; .example { background-color:#000; color: blue; background-color: #000; .child { padding:5px; .child { } padding: 5px; } } } .example { @include add-stuff(blue); }
  • 23. Combined SCSS CSS @mixin style-btn($name, $color) { /* line 2, ../src/test.scss */ .btn.#{$name} { .btn.tangy { background:$color; background: yellow; border: 1px solid; border:1px solid; border-color: #cccc00; border-color:darken($color, 10); color: #666666; } color:lighten($color, 40); } /* line 2, ../src/test.scss */ } .btn.pale { background: blue; @include style-btn(‘tangy’, yellow); border: 1px solid; @include style-btn(‘pale’, blue); border-color: #0000cc; color: #666666; }
  • 25. Compass SCSS CSS @import 'compass'; /* line 3, ../src/test.scss */ .example1 { .example1 { -moz-border-radius: 5px; @include border-radius(5px); -webkit-border-radius: 5px; } -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; }
  • 27.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 41. /*include extjs components*/ @include extjs-button; @include extjs-form; @include extjs-panel; @include extjs-qtip; @include extjs-toolbar; @include extjs-window;
  • 42. /*include extjs components*/ @include extjs-button; @include extjs-panel; @include extjs-toolbar; @include extjs-window;
  • 44. Demo