SlideShare une entreprise Scribd logo
Formation
Améliorer le développement avec CSS-in-JS
Styled Component & Styled-jsx
Une formation
Sandy LUDOSKY
Cursus CSS
Une formation
Introduction
1. Premier pas avec le CSS moderne
2. Web moderne : les méthodes et solutions
3. CSS-in-JS : styled-component
4. CSS-in-JS : styled-component (avancé)
5. CSS-in-JS : librairie styled-jsx avec NextJS
6. CSS-in-JS : librairie styled-jsx avec ReactJS
Conclusion
Plan de la formation
Une formation
Niveau intermédiaire à avancé
Développeurs professionnels
Intégrateurs web
Public concerné
Connaissances requises
ReactJS ⚛
Bootstrap
Une formation
Connaissances requises
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Component & Styled-jsx
Présentation du projet
Une formation
Sandy LUDOSKY
Une formation
Présentation des outils
Visual Studio Code
Navigateur moderne
React Developer Tools
Ressources et outils
Une formation
Sandy LUDOSKY
Visual Studio Code
Node.js & npm
Librairies
Une formation
Les fichiers téléchargeables 📁
Version de démarrage
Version finale
Ressources
Découvrir les fondements
et les principes de construction
moderne CSS
Une formation
Sandy LUDOSKY
Une formation
Présentation
CSS = Cascading Stylesheet
1994 : début CSS
1996 : premières spécifications CSS1
Une formation
Versions du CSS
CSS 1.0 => CSS 2.0 => CSS 2.1
CSS 3
Utilités du CSS
Mise en forme et habillage page web
Métiers du web et numérique
Photo by Campaign Creators on Unsplash
Photo by Alex Kotliarskyi on Unsplash
Utilités du CSS
Photo by UX Indonesia on Unsplash
Utilités du CSS
Photo by Ярослав Алексеенко on Unsplash
Photo by Brett Jordan on Unsplash
CSS
Découvrir les solutions
du CSS moderne
Une formation
Sandy LUDOSKY
Une formation
Les solutions CSS moderne
La grille CSS & Flexbox
Les librairies & frameworks
CSS-in-JS
Écrire du CSS dans javascript
Une formation
Sandy LUDOSKY
Une formation
Écrire du CSS dans javascript
Installation
Aucune
Syntaxe
const styles = { … }
Écrire du CSS modulaire
avec styled JSX et styled component
Une formation
Sandy LUDOSKY
Une formation
Écrire du CSS dans javascript
CSS scopé
CSS à portée limitée
Une formation
Styled-component
Module npm
4M+ téléchargements
const Component = styled.div`
…
`
Une formation
Styled-jsx
<style jsx>
{`
….
`}
</style>
Installer le React CLI
et démarrer le projet
Une formation
Sandy LUDOSKY
Une formation
Projet de démarrage ReactJs
Npm install
Projet de démarrage ReactJs
const styles = {
background: #333;
color: white;
}
const App = () => {
return(<div style={styles}> … </div>)
}
Comprendre CSS-in-JS
Une formation
Sandy LUDOSKY
Objet de style
Combinaison de propriétés CSS et de langage Javascript
const styles = {
…
}
const styles = {
background: #333
color: white
}
Mettre en forme
avec les objets de style
Une formation
Sandy LUDOSKY
Mise en forme avec les objets de style
const styles = {
background: #333;
color: white;
}
const styles = {
background: #333;
color: white;
}
const App = () => {
return(<div style={styles}> … </div>)
}
Mise en forme avec les objets de style
Télécharger le projet
de démarrage
Une formation
Sandy LUDOSKY
Installer les librairies
styled-component et react-bootstrap
Une formation
Sandy LUDOSKY
Une formation
Installer les librairies
npm i react-bootstrap
npm i styled-component
const Component = styled.div`
…
`
import styled from “styled-component”
const Component = styled.div`
background: #333;
color: white
`
<div className=”container”>
<Component />
</div>
const Component = styled.div`
background: #333;
color: white
`
Découvrir la syntaxe
et créer un composant de style
Une formation
Sandy LUDOSKY
import styled from “styled-component”
const StyledComponent = styled.div`
background: #333;
color: white;
border-radius : 5px;
`
import styled from “styled-component”
export default const App = () => {
return(
<div className=”container”>
<StyledComponent />
…
</div>
)
}
Personnaliser les composants
avec React et styled-component
Une formation
Sandy LUDOSKY
import styled from “styled-component”
export default const App = () => {
return(
<div className=”container”>
<StyledComponent dark/>
…
</div>
)
}
import styled from “styled-component”
const StyledComponent = styled.div`
background: ${props => props.dark ? #333 : white}
color: ${props => props.dark ? white : #333 }
border-radius : 5px;
`
Importer et personnaliser les composants
Bootstrap avec du CSS-in-JS
Une formation
Sandy LUDOSKY
import styled from “styled-component”
import Button from “react-bootstrap/Button”
const StyledButton = styled.(Button)`
border: none;
float:${props => props.right ? 'right': 'default' };
background: ${props => {
if (props.dark) { return "#34495e"}
return 'white'
}};
`
export default const App = () => {
return(
<div className=”container”>
<StyleButton dark/>
…
</div>
)
}
Personnaliser
avec styled-component
Une formation
Sandy LUDOSKY
Créer une librairie de composants
personnalisés et réutilisables
Une formation
Sandy LUDOSKY
Une formation
Introduction et objectifs
Créer un style global
createGlobalStyle()
Theming
Context API
ThemeProvider
ThemeConsumer
HOC : withTheme()
hook : useTheme()
Créer et partager un style global
avec createGlobalStyle
Une formation
Sandy LUDOSKY
Créer un style global
createGlobalStyle()
import { createGlobalStyle } from “styled-component”
const GlobalStyle = createGlobalStyle`
some CSS-in-JS
…
`
fonction pour créer et retourner un objet de styles globaux
render(
<GlobalStyle props>
<App />
</GlobalStyle>
)
import { createGlobalStyle } from “styled-component”
const GlobalStyle = createGlobalStyle`
…
`
const props = {}
Créer un style global
Theming
Utiliser ThemeProvider
et l'accessoire thème
Une formation
Sandy LUDOSKY
Une formation
Composant pour enrober l’application et
transmettre des valeurs et des règles de style
globales
Theming : ThemeProvider
import { ThemeProvider } from “styled-component”
const theme = {
bg: black,
fg: white
}
src/index.js
const theme = {...}
render(
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>
)
Theming
Utiliser ThemeConsumer
Une formation
Sandy LUDOSKY
Une formation
Partage de valeurs et de règles de style globales
entre composants
Theming : ThemeConsumer
import { ThemeConsumer } from “styled-component”
src/App.js
const App = () => {
return(
<ThemeConsumer>{theme => {
return(<div {...theme}>{ … }</div>)
}}
</ThemeConsumer>
)
}
Theming
Utiliser le HOC withTheme
Une formation
Sandy LUDOSKY
Une formation
Composant d’ordre supérieur pour partager la
logique entre composants
Theming : withTheme
import { withTheme } from “styled-component”
src/App.js
const App = ({ theme }) => {
return(...)
}
export default withTheme(App)
Theming
Utiliser le hook useTheme
Une formation
Sandy LUDOSKY
Une formation
Hook personnalisé pour partager la logique
entre composants fonctionnels
Theming : useTheme
import { useTheme } from “styled-component”
src/App.js
const App = () => {
const theme = useTheme()
return(<div {...theme}>{ … }</div>)
}
export default App
Introduction et objectifs
librairie styled-jsx
Une formation
Sandy LUDOSKY
Une formation
Framework NextJS et les solutions CSS
Projet NextJS
CSS-in-JS avec styled-jsx
Introduction et objectifs
Découvrir le framework NextJS
et les fonctionnalités CSS intégrées
Une formation
Sandy LUDOSKY
Une formation
Framework React
Server-side-rendering
CSS-in-JS avec styled-jsx
Framework NextJS
NextJS CLI
Créer un nouveau projet
et découvrir l'anatomie
Une formation
Sandy LUDOSKY
Une formation
Démarrer un nouveau projet
npm create next-app
npx create-next-app <appName>
Créer des pages et mettre en forme
les options CSS-in-JS
Une formation
Sandy LUDOSKY
Une formation
Les options CSS-in-JS
CSS
styles/globals.css
styles/[component].module.css
CSS-in-JS
styled-jsx
Utiliser la librairie styled-jsx
Une formation
Sandy LUDOSKY
Une formation
Les options CSS-in-JS
CSS
styles/globals.css
styles/[component].module.css
CSS-in-JS
styled-jsx
Changer l'apparence
des pages avec styled-jsx
Une formation
Sandy LUDOSKY
Créer un nouveau projet React
Une formation
Sandy LUDOSKY
Mettre en forme
avec styled-jsx
Une formation
Sandy LUDOSKY
Conclusion
Une formation
Sandy LUDOSKY
Une formation
Bilan
Avantages CSS-in-JS
architecture ordonnée
maintenable
scalable
Prochaine formation
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Component & Styled-jsx

Contenu connexe

PDF
Alphorm.com Formation Simplifier l’usage du CSS avec Less
PDF
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
PDF
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
PPTX
Cours CSS feuilles de style en cascade- mars 2015
PPTX
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
PDF
Formation CSS IT GUST TRAINING Explique les points necessaire a retenir dans ...
PDF
Langage CSS
PDF
Programmation_en_HTML5_avec_JavaScript_e.pdf
Alphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Cours CSS feuilles de style en cascade- mars 2015
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
Formation CSS IT GUST TRAINING Explique les points necessaire a retenir dans ...
Langage CSS
Programmation_en_HTML5_avec_JavaScript_e.pdf

Similaire à Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Component & Styled-jsx (8)

PDF
Programmation web1partie3
PDF
alphorm.com - Formation HTML5, CSS 3 et JavaScript (70-480)
PPTX
CSS
PPTX
cours dev d'applications web moderne avec ReactJS
PPTX
Initiation au css
PDF
CM_CSS.pdf c'est les fonction et les balises
PPTX
Le Langage CSS
PDF
React-cours.pdf
Programmation web1partie3
alphorm.com - Formation HTML5, CSS 3 et JavaScript (70-480)
CSS
cours dev d'applications web moderne avec ReactJS
Initiation au css
CM_CSS.pdf c'est les fonction et les balises
Le Langage CSS
React-cours.pdf
Publicité

Plus de Alphorm (20)

PDF
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
PDF
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
PDF
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
PDF
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
PDF
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
PDF
Alphorm.com Formation Sage : Gestion Commerciale
PDF
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
PDF
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
PDF
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
PDF
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
PDF
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
PDF
Alphorm.com Formation PHP 8 : Les bases de la POO
PDF
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
PDF
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
PDF
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
PDF
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
PDF
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
PDF
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
PDF
Alphorm.com Formation Power BI : Analyse et Visualisation de Données
PDF
Alphorm.com Formation CCNP ENCOR 350-401 (5/8) : Architecture
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Power BI : Analyse et Visualisation de Données
Alphorm.com Formation CCNP ENCOR 350-401 (5/8) : Architecture
Publicité

Dernier (7)

PDF
presentation_with_intro_compressee IEEE EPS France
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
FORMATION EN Programmation En Langage C.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
Modems expliqués- votre passerelle vers Internet.pdf
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
presentation_with_intro_compressee IEEE EPS France
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
FORMATION EN Programmation En Langage C.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
Modems expliqués- votre passerelle vers Internet.pdf
Presentation_Securite_Reseaux_Bac+2.pptx
Tendances tech 2025 - SFEIR & WENVISION.pdf

Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Component & Styled-jsx