Dans ce tutoriel je vous apprends à créer un Dashboard Admin tout responsive avec du HTML et CSS uniquement.
En effet vous allez découvrir dans cet article des notions solide pour créer une interface admin adaptée à votre besoin et vous allez aussi apprendre en profondeur HTML et CSS sur les animations, les grid, flex-box, comment créer un sidebar, un menu…
Dans un premier temps vous devez télécharger Fontawesome pour les icons ou bien utilisé le lien cdn cliquez ici , si vous avez de la connexion bien évidement.
Apres avoir télécharger les outils nécessaire nous allons maintenant créer notre Sidebar en premier :
Learn Programming
le code CSS de notre Sidebar:
*{
padding: 0;
margin: 0;
box-sizing: border-box;
list-style-type: none;
text-decoration: none;
font-family: 'verdana';
}
.sidebar{
width: 300px;
position: fixed;
left: 0;
top: 0;
height: 100vh;
background: #008ea1;
z-index: 100;
transition: width 300ms;
}
.sidebar-brand{
height: 90px;
padding: 1rem 0rem 1rem 2rem;
color: #fff;
}
.sidebar-brand span{
display: inline-block;
margin-right: 1rem;
}
.sidebar-menu{
margin-top: 1rem;
}
.sidebar-menu a{
padding-left: 1rem;
display: block;
color: #fff;
font-size: 1.1rem;
}
.sidebar-menu li{
width: 100%;
margin-bottom: 2rem;
padding-left: 10%;
}
.sidebar-menu a span:first-child{
padding-left: 1rem;
font-size: 1.5rem;
}
.sidebar-menu a.active{
background: #fff;
padding-top: 1rem;
padding-bottom: 1rem;
color: #008ea1;
border-radius: 30px 0px 0px 0px;
}
.content{
transition: margin-left 300ms;
margin-left: 22%;
}
NB: Apres la creation de notre sidebar, nous avons crée une div avec la classe content qui va englober notre contenu mais ce dernier est aussi accompagné d’une balise main. donc cela veut dire que tout le reste de notre code se trouve entre ces deux.
Pour plus de compréhension, vous pouvez aussi suivre la vidéo sur YouTube en cliquant ici
Creation de notre navbaar:
Accueil
Alassane
Admin
Profil
Deconnexion
Remarque: si vous constatez bien le code, j’ai crée la div mais je ne les pas fermé; c’est à la fin du code global que vous allez le fermé.
Code CSS du navbar :
header{
background-color: #fff;
display: flex;
justify-content: space-between;
padding: 1rem;
box-shadow: 2px 5px 15px 2px rgb(0 0 0 / 10%);
position: fixed;
left: 22%;
width: calc(100% - 22%);
top: 0;
z-index: 100;
transition: left 300ms;
}
.accueil{
font-size: 1.5rem;
padding-right: 1rem;
margin-left: 15px;
color: #008ea1;
}
.search-wrapp{
border: 1px solid #008ea1;
border-radius: 20px;
height: 38px;
display: flex;
align-items: center;
overflow-x: hidden;
}
.search-wrapp input{
height: 100%;
padding: .5rem;
border: none;
outline: none;
}
.search-wrapp span{
display: inline-block;
padding: 0rem 1rem;
font-size: 1.5rem;
color: #008ea1;
}
.user-wrapp{
display: flex;
align-items: center;
}
.user-wrapp img{
border-radius: 50%;
margin-right: 5rem;
}
.user-wrapp small{
color: #ccc;
display: inline-block;
}
.logo-admin{
cursor: pointer;
}
#dropdown{
position: relative;
display: inline-block;
}
.dropdown-content{
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
height: 80px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
padding: 5px;
z-index: 1;
}
#dropdown:hover .dropdown-content{
display: block;
cursor: pointer;
}
.dropdown-content p{
padding: .5rem;
}
Ainsi je vais maintenant crée la balise main qui lui aussi va se fermé à la fin du code.
2.000.000
Ventes
+30
Stock
58
Fournisseur
20k
Communauté
code CSS des cards:
main{
margin-top: 80px;
background-color: #ebf6ff;
padding: 2rem 1.5rem;
min-height: calc(100vh);
}
.cards{
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 2rem;
margin-top: 1rem;
}
.card-single{
display: flex;
background-color: #fff;
justify-content: space-between;
padding: 2rem;
border-radius: 10px;
box-shadow: 2px 5px 10px 2px rgb(0 0 0 / 10%);
}
.card-single span:first-child{
color: #f8e80c;
}
.card-single span:last-child{
font-size: 2rem;
}
.card-single small{
color: grey;
}
.card-single:hover{
background-color: #008ea1;
color: #fff;
}
Nb: vous devez aussi savoir que le code est une continuité.
Code des deux tableaux et les statistiques :
Listes produits
modou
pathe
demba
modou
dmeba
mass
modou
dmeba
mass
modou
dmeba
mass
modou
dmeba
mass
modou
dmeba
mass
Clients fideles
Omar
Embulant
Omar
Embulant
Omar
Embulant
Omar
Embulant
Omar
Embulant
Legende
Riz
Mil
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
code CSS.
.composant{
margin-top: 3.5rem;
display: grid;
grid-gap: 2rem;
grid-template-columns: 69% auto;
}
.case{
background-color: #fff;
border-radius: 10px;
}
.header-case, .body-case{
padding: .5rem
}
.header-case{
display: flex;
justify-content: space-between;
align-items: center;
}
.header-case button{
background-color: #008ea1;
border-radius: 10px;
color: #fff;
font-size: .8rem;
padding: .5rem 1rem;
border: none;
cursor: pointer;
}
.btn{
background-color: #008ea1;
border-radius: 10px;
color: #fff;
font-size: .8rem;
padding: .5rem 1rem;
border: none;
cursor: pointer;
margin-bottom: 1rem;
margin-left: 5px;
}
table{
border-collapse: collapse;
}
thead tr{
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
thead td{
font-weight: 700;
}
td{
padding: .5rem 1rem;
}
td .status-produit{
display: inline-block;
height: 15px;
width: 15px;
margin-right: 1rem;
border-radius: 50%;
}
.status-produit.color-one{
background-color: #ec1c24;
}
.status-produit.color-two{
background-color: #fff200;
}
.status-produit.color-three{
background-color: #b83dba;
}
.status-produit.color-four{
background-color: #00a8f3;
}
.status-produit.color-five{
background-color: #b83dba;
}
tr td:last-child{
display: flex;
align-items: center;
}
.tableau{
overflow-x: auto;
width: 100%;
}
.all-users{
display: flex;
justify-content: space-between;
align-items: center;
padding: .5rem .7rem;
}
.infos{
display: flex;
align-items: center;
}
.infos img{
border-radius: 50%;
margin-right: 1rem;
}
.user-contact span{
font-size: 1.2rem;
display: inline-block;
margin-left: .5rem;
}
.fa-facebook{
color: #4267B2;
cursor: pointer;
}
.fa-whatsapp{
color: #128C7E;
cursor: pointer;
}
.fa-phone{
color: #1DB954;
cursor: pointer;
}
.fa-bars{
cursor: pointer;
}
.statistiques{
background-color: #fff;
display: flex;
height: 300px;
align-items: flex-end;
}
.statistique-barre{
flex-grow: 1;
border: 1px solid #ccc;
margin: 6px;
}
.bar1{
height: 95%;
background-color: #ec1c24;
}
.bar2{
height: 55%;
background-color: #00a8f3;
}
.bar3{
height: 45%;
background-color: #ec1c24;
}
.bar4{
height: 85%;
background-color: #00a8f3;
}
.bar5{
height: 35%;
background-color: #ec1c24;
}
.bar6{
height: 95%;
background-color: #00a8f3;
}
.legende{
background-color: #fff;
border-radius: 10px;
}
.legende h4{
padding: 1rem;
}
td .evolution{
display: inline-block;
height: 15px;
width: 15px;
margin-right: 1rem;
border-radius: 50%;
}
.evolution.color-one{
background-color: #ec1c24;
}
.evolution.color-two{
background-color: #00a8f3;
}
.txt-deco{
padding: 1rem;
font-weight: 500;
color: grey;
}
Vous savez quand on vous créez votre admin vous aurez forcément besoin d’un calendrier pour pourvoir dater vos évènements et autres. ainsi nous avons à ce que vous en aurez besoin.
alors voici le code du calendrier :
- ❮
- ❯
- Mai
2021
- Mo
- Tu
- We
- Th
- Fr
- Sa
- Su
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 27
- 28
- 29
- 30
- 31
Nb: vous avez tous remarqué que c’est à la fin que j’ai fermé la balise main ainsi que la div qui contient la class content.
code CSS du calendrier :
.calendar{
padding-top: 2rem;
}
.mois-annee{
padding: 70px 25px;
width: 100%;
background-color: #008ea1;
text-align: center;
}
.mois-annee ul{
margin: 0;
padding: 0;
}
.mois-annee ul li{
color: #fff;
font-size: 20px;
text-transform: uppercase;
letter-spacing: 3px;
}
.mois-annee .prev{
float: left;
padding-top: 10px;
}
.mois-annee .next{
float: right;
padding-top: 10px;
}
.mois{
margin: 0;
padding: 10px 0;
background-color: #ddd;
}
.mois li{
display: inline-block;
width: 13%;
color: #666;
text-align: center;
}
.jours{
padding: 10px 0;
background-color: #eee;
margin: 0;
}
.jours li{
display: inline-block;
width: 13%;
text-align: center;
margin-bottom: 5px;
font-size: 12px;
color: #777;
}
.jours li .active{
padding: 5px;
background-color: #008ea1;
color: #fff !important;
}
code de notre toggle barre, c’est à dire les trois barre à coté. Nb: vous devez le mettre en haut de votre code après la balise body :
code css :
#menu:checked ~ .sidebar{
width: 60px;
}
#menu:checked ~ .sidebar .sidebar-brand, h2 span:last-child,
#menu:checked ~ .sidebar li a span:last-child{
display: none;
}
#menu:checked ~ .content{
margin-left: 60px;
}
#menu:checked ~ .content header{
width: calc(100% - 60px);
left: 60px;
}
code pour gérer la responsivité avec les média queries :
@media only screen and (max-width: 960px){
.cards{
grid-template-columns: repeat(3, 1fr);
}
.recent-grid{
grid-template-columns: 60% 40%;
}
}
@media only screen and (max-width: 768px){
.cards{
grid-template-columns: 100%;
}
.composant{
grid-template-columns: repeat(1, 1fr);
}
.search-wrapp{
display: none;
}
.sidebar{
left: -100% !important;
}
header p{
display: flex;
align-items: center;
}
header p label{
display: flex;
padding-right: 0rem;
margin-right: 1rem;
height: 40px;
width: 40px;
border-radius: 50%;
color: #fff;
align-items: center;
justify-content: center !important;
background-color: #008ea1;
}
header p span{
text-align: center;
padding-right: 0rem;
}
.content{
width: 100%;
margin-left: 0rem !important;
}
header{
width: 100% !important;
left: 0 !important;
}
#menu:checked ~ .sidebar {
left: 0 !important;
z-index: 100;
width: 45%;
}
#menu:checked ~ .sidebar li a{
padding-left: 1rem;
}
#menu:checked ~ .sidebar .sidebar-brand,
#menu:checked ~ .sidebar li{
padding-left: 2rem;
text-align: left;
}
#menu:checked ~ .sidebar .sidebar-brand, h2 span:last-child,
#menu:checked ~ .sidebar li a span:last-child{
display: inline;
}
#menu:checked ~ .content{
margin-left: 0rem !important;
}
}
@media only screen and (max-width: 560px){
.cards{
grid-template-columns: 100%;
}
}
@media only screen and (max-width: 1200px){
.sidebar{
width: 60px;
}
.sidebar .sidebar-brand, h2 span:last-child,
.sidebar li a span:last-child{
display: none;
}
.content{
margin-left: 60px;
}
.content header{
width: calc(100% - 60px);
left: 60px;
}
}