From 87163c1035013618c8146bfbf82f8c01bc634448 Mon Sep 17 00:00:00 2001 From: Lucie Bedouret Date: Wed, 21 Dec 2022 23:11:54 +0100 Subject: [PATCH] ADD : style on all pages (except error) and assets --- assets/bin.png | Bin 0 -> 17616 bytes assets/done.png | Bin 0 -> 15714 bytes assets/{checklist.png => logo.png} | Bin assets/to-do.png | Bin 0 -> 44696 bytes config/Autoload.php | 5 +- config/config.php | 11 +- controleurs/ControleurUtilisateur.php | 40 +------ controleurs/ControleurVisiteur.php | 14 ++- controleurs/FrontControleur.php | 6 +- index.php | 20 +--- .../Modele/{ListModel.php => ListeModel.php} | 0 modeles/Métier/Liste.php | 24 +++- modeles/Métier/Tache.php | 26 ++++- modeles/Métier/Utilisateur.php | 4 +- {vues/styles => styles}/.DS_Store | Bin styles/acceuilStyles.css | 69 +++++++++++ styles/commonStyles.css | 80 +++++++++++++ styles/connectionStyles.css | 60 ++++++++++ styles/creationStyles.css | 46 ++++++++ styles/detailsListStyles.css | 61 ++++++++++ styles/privateListsStyles.css | 8 ++ vues/acceuil.php | 110 +++++++++--------- vues/connection.php | 30 ++--- vues/creationListe.php | 28 +++-- vues/creationTache.php | 23 +++- vues/infosListe.php | 79 +++++++------ vues/inscription.php | 26 +++-- vues/listesPrivees.php | 39 ++++--- vues/profile.php | 19 --- vues/styles/commonStyles.css | 26 ----- vues/styles/connectionStyle.css | 33 ------ 31 files changed, 592 insertions(+), 295 deletions(-) create mode 100644 assets/bin.png create mode 100644 assets/done.png rename assets/{checklist.png => logo.png} (100%) create mode 100644 assets/to-do.png rename modeles/Modele/{ListModel.php => ListeModel.php} (100%) rename {vues/styles => styles}/.DS_Store (100%) create mode 100644 styles/acceuilStyles.css create mode 100644 styles/commonStyles.css create mode 100644 styles/connectionStyles.css create mode 100644 styles/creationStyles.css create mode 100644 styles/detailsListStyles.css create mode 100644 styles/privateListsStyles.css delete mode 100644 vues/profile.php delete mode 100644 vues/styles/commonStyles.css delete mode 100644 vues/styles/connectionStyle.css diff --git a/assets/bin.png b/assets/bin.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4a00f846ce9b0eac75f3c526efb19678ae0b71 GIT binary patch literal 17616 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 l{(-J7UJ77GN+T}MPlF~me-s86g|4p{C((qjt~ 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 literal 0 HcmV?d00001 diff --git a/assets/done.png b/assets/done.png new file mode 100644 index 0000000000000000000000000000000000000000..0146337b81c61c58c096ae68137842810ff172e8 GIT binary patch literal 15714 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 literal 0 HcmV?d00001 diff --git a/config/Autoload.php b/config/Autoload.php index 87afab1..b1ddb59 100644 --- a/config/Autoload.php +++ b/config/Autoload.php @@ -38,10 +38,9 @@ class Autoload { global $rep; $filename = $class.'.php'; - $dir = array('./','config/','controleurs/','modeles/Gateways/','modeles/Métier/','modeles/Modele'); + $dir = array('./','config/','controleurs/','modeles/Gateways/','modeles/Métier/','modeles/Modele/'); foreach ($dir as $d){ - $file=$rep.$d.$filename; - echo $file; + $file=$rep.$d.$filename; if (file_exists($file)) { include $file; diff --git a/config/config.php b/config/config.php index 55d6596..f6edb98 100644 --- a/config/config.php +++ b/config/config.php @@ -3,7 +3,7 @@ //Prefixe $rep=__DIR__.'/../'; //BD -$bd['dsn'] = "mysql:host=localhost;port=8888;dbname=bdPhp"; +$bd['dsn'] = "mysql:host=localhost;port=8888;dbname=dbPhp"; $bd['user'] = "root"; $bd['pswd'] = "root"; //Vues @@ -16,11 +16,14 @@ $vues['listesPrivees']='vues/listesPrivees.php'; $vues['creationListe']='vues/creationListe.php'; $vues['infosListe']='vues/infosListe.php'; $vues['creationTache']='vues/creationTache.php'; + // Styles -$styles['commun']='vues/styles/commonStyles.css'; -$styles['connection']='vues/styles/connectionStyle.css'; +$styles['commun']='styles/commonStyles.css'; +$styles['acceuil']='styles/acceuilStyles.css'; +$styles['connection']='styles/connectionStyles.css'; +$styles['listesPv']="styles/privateListsStyles.css"; // Assets -$assets['logo']='assets/chekliste.png'; +$assets['logo']='assets/logo.png'; ?> \ No newline at end of file diff --git a/controleurs/ControleurUtilisateur.php b/controleurs/ControleurUtilisateur.php index fa4e665..2a7ae48 100644 --- a/controleurs/ControleurUtilisateur.php +++ b/controleurs/ControleurUtilisateur.php @@ -6,38 +6,21 @@ class ControleurUtilisateur{ global $rep,$vues, $dataView,$styles,$assets; $arrayErrorViews= array(); - $action = $_REQUEST['action']??null; + $action = $_REQUEST['action']; switch($action){ case "accessPrivateLists": $this->accessPrivateLists($arrayErrorViews); - case "accessProfilePage": - require($rep.$vues['profile']); - break; - case "deconnection": - $this->deconnection($arrayErrorViews); - break; + case "creerListePv": $this->creerListe($arrayErrorViews); break; - case "desinscription": - $this->desinctription($arrayErrorViews); - break; - case "changerInfos": - $this->changerPassword($arrayErrorViews); - break; - default : + default: $arrayErrorViews[]="Erreur innatendue !!!"; require($rep.$vues['error']); } } - function deconnection($arrayErrorViews){ - global $rep, $vues, $dataView; - $model = new UserModel(); - $retour = $model->deconnection(); - $_REQUEST['action']=null; - $control= new ControleurVisiteur(); - } + function creerListePv($arrayErrorViews){ global $rep, $vues, $dataView; @@ -67,21 +50,6 @@ class ControleurUtilisateur{ } } - function changerPassword($arrayErrorViews){ - global $rep, $vues, $dataView; - $password1=$_POST['password1']; - $passwordConfirm=$_POST['passwordConfirm']; - $newPassword=Validation::val_changer_password($password1,$passwordConfirm); - - try{ - UserModel::changerPassword($newPassword); - require($rep.$vues['profil']); - }catch(PDOException $e){ - $dataView[]="Erreur inatendue"; - require($rep.$vues['erreur']); - } - } - function accessPrivateLists($arrayErrorViews){ global $rep, $vues, $dataView; $model = new UserModel(); diff --git a/controleurs/ControleurVisiteur.php b/controleurs/ControleurVisiteur.php index cd8b231..a679155 100644 --- a/controleurs/ControleurVisiteur.php +++ b/controleurs/ControleurVisiteur.php @@ -50,6 +50,9 @@ class ControleurVisiteur { case "delListe": $this->delListe($arrayErrorViews); break; + case "deconnection": + $this->deconnection($arrayErrorViews); + break; default : $arrayErrorViews[]="Erreur innatendue !!!"; require($rep.$vues['acceuil']); @@ -61,8 +64,17 @@ class ControleurVisiteur { exit(0); } + + function deconnection($arrayErrorViews){ + global $rep, $vues, $dataView; + $model = new UserModel(); + $retour = $model->deconnection(); + $_REQUEST['action']=null; + $control= new ControleurVisiteur(); + } + public function reinit(){ - global $rep,$vues,$dataView; + global $rep,$vues,$dataView,$styles; $model = new VisiteurModel(); $dataView = $model->pullPublicLists(); require($rep.$vues['acceuil']); diff --git a/controleurs/FrontControleur.php b/controleurs/FrontControleur.php index d03e037..57facd0 100644 --- a/controleurs/FrontControleur.php +++ b/controleurs/FrontControleur.php @@ -3,13 +3,13 @@ class FrontControleur{ public function __construct(){ - $liste_actions_utilisateur = array('accessPrivateLists','accessProfilePage','deconnection','crerListePv','desinscription','changerPassword'); - $liste_actions_visiteur = array('goHome','changeCompletedTache','accessCreationTachePage','addTache','delTache','accessListInfos','accessCreationListePage','accessInscription','accessConnectionPage','creerListe','delListe','connection','inscription'); + $liste_actions_utilisateur = array('accessPrivateLists','crerListePv'); + $liste_actions_visiteur = array('goHome','changeCompletedTache','accessCreationTachePage','addTache','delTache','accessListInfos','accessCreationListePage','accessInscription','accessConnectionPage','creerListe','delListe','connection','inscription','deconnection'); global $rep,$vues,$bd,$dataView,$styles,$assets; session_start(); try{ $user=$_SESSION??null; - $action = !empty($_REQUEST['action']) ? (string)$_REQUEST['action']:null; + $action = $_REQUEST['action']; if (in_array($action,$liste_actions_utilisateur)){ if($user == null){ diff --git a/index.php b/index.php index 1acc24c..c92edb4 100644 --- a/index.php +++ b/index.php @@ -5,24 +5,8 @@ require_once(__DIR__.'/controleurs/FrontControleur.php'); require_once(__DIR__.'/config/config.php'); // Autoload des classes -//require_once(__DIR__.'/config/Autoload.php'); -//Autoload::charger(); - -require_once(__DIR__.'/config/Validation.php'); -require_once(__DIR__.'/controleurs/ControleurUtilisateur.php'); -require_once(__DIR__.'/controleurs/ControleurVisiteur.php'); -require_once(__DIR__.'/controleurs/FrontControleur.php'); -require_once(__DIR__.'/modeles/Gateways/Connection.php'); -require_once(__DIR__.'/modeles/Gateways/ListeGateway.php'); -require_once(__DIR__.'/modeles/Gateways/UserGateway.php'); -require_once(__DIR__.'/modeles/Métier/Liste.php'); -require_once(__DIR__.'/modeles/Métier/Tache.php'); -require_once(__DIR__.'/modeles/Métier/Utilisateur.php'); -require_once(__DIR__.'/modeles/Modele/UserModel.php'); -require_once(__DIR__.'/modeles/Modele/VisiteurModel.php'); -require_once(__DIR__.'/modeles/Modele/ListModel.php'); - - +require_once(__DIR__.'/config/Autoload.php'); +Autoload::charger(); // Construction du controleur //$cont=new FrontControleur(); diff --git a/modeles/Modele/ListModel.php b/modeles/Modele/ListeModel.php similarity index 100% rename from modeles/Modele/ListModel.php rename to modeles/Modele/ListeModel.php diff --git a/modeles/Métier/Liste.php b/modeles/Métier/Liste.php index f731528..9d7dd68 100644 --- a/modeles/Métier/Liste.php +++ b/modeles/Métier/Liste.php @@ -1,10 +1,10 @@ id=$i; @@ -12,6 +12,22 @@ class Liste { $this->nomCreateur=$nomCrea; $this->taches=$t; } + + public function get_id():int{ + return $this->id; + } + + public function get_nom():string{ + return $this->nom; + } + + public function get_nomCreateur():string{ + return $this->nomCreateur; + } + + public function get_taches():?array{ + return $this->taches; + } } ?> \ No newline at end of file diff --git a/modeles/Métier/Tache.php b/modeles/Métier/Tache.php index 123f746..50351f6 100644 --- a/modeles/Métier/Tache.php +++ b/modeles/Métier/Tache.php @@ -1,17 +1,33 @@ id = $i; $this->nom = $in; $this->isCompleted = $is; $this->idListe=$idListe; } + + public function get_id():int{ + return $this->id; + } + + public function get_nom():string{ + return $this->nom; + } + + public function get_isCompleted():bool{ + return $this->isCompleted; + } + + public function get_idListe():int{ + return $this->idListe; + } } ?> \ No newline at end of file diff --git a/modeles/Métier/Utilisateur.php b/modeles/Métier/Utilisateur.php index 7c3297e..8a3a471 100644 --- a/modeles/Métier/Utilisateur.php +++ b/modeles/Métier/Utilisateur.php @@ -10,9 +10,7 @@ Class Utilisateur { $this->password=$p; $this->listListe=$liste; } - function get_id(): int { - return $this->id; - } + function get_nom(): string { return $this->nom; } diff --git a/vues/styles/.DS_Store b/styles/.DS_Store similarity index 100% rename from vues/styles/.DS_Store rename to styles/.DS_Store diff --git a/styles/acceuilStyles.css b/styles/acceuilStyles.css new file mode 100644 index 0000000..4d5b306 --- /dev/null +++ b/styles/acceuilStyles.css @@ -0,0 +1,69 @@ +.head-body{ + display:flex; + flex-direction: row; + height: 100px; + margin-bottom: 50px; + place-content: end space-between; + align-items: center; +} + +.connection{ + width: 125px; + padding: 15%; + background: none; + font-family: sans-serif; + font-size: 20; + color: #212F3D; + border: solid 2px; + border-radius: 10px; + border-color: #212F3D; +} + +.deconnection{ + width: 125px; + padding: 15%; + border: none; + color:#B2BABB; + background-color: #212F3D; + font-family: sans-serif; + border-radius: 10px; +} + +#accessList{ + color: #212F3D; + background-color: #E4F8FF; + margin: 2%; + padding: 3%; + border-radius: 30px; + display: flex; + place-content: end space-between; +} + +.private-lists{ + background: none; + border:none; + color: #212F3D; + background-color: #F7F9F9; + font-family: sans-serif; + font-size: 25; + padding : 40px; + border-radius: 25px; +} + +.create-list{ + margin-top: 2%; + background: none; + border:none; + color: #212F3D; + background-color: #F7F9F9; + font-family: sans-serif; + font-size: 25; + padding : 40px; + border-radius: 50px; + margin-left: 25%; + width: 50%; +} + +.private-lists:hover{ + background-color: #E4F8FF; +} \ No newline at end of file diff --git a/styles/commonStyles.css b/styles/commonStyles.css new file mode 100644 index 0000000..681577a --- /dev/null +++ b/styles/commonStyles.css @@ -0,0 +1,80 @@ +header{ + padding-top: 2%; + padding-bottom: 2%; + height: 5%; + width: 100%; + background:none; + display: flex; + justify-content: center; + align-items: center; + vertical-align: middle; + place-content: start space-evenly; +} +body{ + display: flex; + flex-direction: column; + align-items: center; + align-content: center; +} +h1{ + font-family: sans-serif; + font-size: 30; +} +h2{ + margin-top: 35px; + font-family: sans-serif; + font-size: 25; + color: #E4F8FF; +} + +.body{ + animation: changeColor 5s infinite alternate linear; + width: 81%; + padding-left: 10%; + padding-right: 10%; + padding-bottom: 10%; + padding-top: 5%; + display: flex; + flex-direction: column; +} + +@keyframes changeColor{ + 0% { + background-color: #004D67; + } + 25% { + background: #005F80; + } + 50%{ + background: #007198; + } + 75%{ + background: #0081AD; + } + 100%{ + background: #0089B8; + } +} + + +h4{ + margin-left: 5%; + align-self: center; + font-size: 20; + font-family: sans-serif; + color: #212F3D; +} + +.button{ + border: none; + color:#B2BABB; + background-color: #212F3D; + font-family: sans-serif; + padding:30px; + border-radius: 20px; +} + +#GoHome > input[type="image"] { + height: 50px; + width: 50px; +} \ No newline at end of file diff --git a/styles/connectionStyles.css b/styles/connectionStyles.css new file mode 100644 index 0000000..130ac47 --- /dev/null +++ b/styles/connectionStyles.css @@ -0,0 +1,60 @@ +.body{ + align-items: center; +} + +header{ + place-content: start center; +} + +h1{ + margin-left: 5%; +} + +#connectionForm{ + background-color: #E4F8FF; + width: 50%; + padding: 5%; + border-radius: 50px; + place-content: start center; +} + +#connectionForm > input[type="text"]{ + width: 60%; + height: 40px; + margin-left: 20%; + border-radius: 10px; + border: 1px solid #212F3D; + margin-bottom: 3%; +} + +#connectionForm > input[type="password"]{ + width: 60%; + height: 40px; + margin-left: 20%; + border-radius: 10px; + border: 1px solid #212F3D; + margin-bottom: 3%; +} + +.button{ + border-radius: 50px; + width: 50%; + margin-left: 25%; + margin-top: 10%; +} + +.accesInscription{ + margin-top: 2%; + background: none; + border:none; + color: #212F3D; + background-color: #F7F9F9; + font-family: sans-serif; + font-size: 25; + padding-left : 100px; + padding-right : 100px; + padding-top:30px; + padding-bottom:30px; + border-radius: 50px; + width: 100%; +} diff --git a/styles/creationStyles.css b/styles/creationStyles.css new file mode 100644 index 0000000..adb8683 --- /dev/null +++ b/styles/creationStyles.css @@ -0,0 +1,46 @@ +header{ + place-content: start center; +} + +h1{ + margin-left: 5%; +} + +.body{ + align-items: center; +} + +#creationForm{ + background-color: #E4F8FF; + width: 50%; + padding: 5%; + border-radius: 50px; + place-content: start center; + } + +#creationForm > input[type="text"]{ + width: 60%; + height: 40px; + margin-left: 20%; + border-radius: 10px; + border: 1px solid #212F3D; + margin-bottom: 3%; +} + +label{ + font-family: sans-serif; + font-weight: bold; + font-size: 20; + color: #212F3D; +} + +p{ + margin-left: 5%; +} + +.button{ + border-radius: 50px; + width: 50%; + margin-left: 25%; + margin-top: 10%; +} \ No newline at end of file diff --git a/styles/detailsListStyles.css b/styles/detailsListStyles.css new file mode 100644 index 0000000..aee1788 --- /dev/null +++ b/styles/detailsListStyles.css @@ -0,0 +1,61 @@ +header{ + place-content: start center; +} + +h1{ + margin-left: 5%; +} + +#delTache > input[type='image']{ + height: 50px; + width: 50px; +} + +#check > input[type='image']{ + height: 50px; + width: 50px; +} + +#uncheck > input[type='image']{ + height: 50px; + width: 50px; +} + +.tache{ + color: #212F3D; + background-color: #E4F8FF; + margin: 2%; + padding: 3%; + border-radius: 30px; + display: flex; + place-content: end space-between; +} + +.add-task{ + margin-top: 2%; + background: none; + border:none; + color: #212F3D; + background-color: #F7F9F9; + font-family: sans-serif; + font-size: 25; + padding : 40px; + border-radius: 50px; + margin-left: 25%; + width: 50%; +} + +.del-list{ + margin-top: 2%; + background: none; + border:none; + color: #212F3D; + background-color: #F7F9F9; + font-family: sans-serif; + font-size: 25; + padding : 25px; + border-radius: 50px; + margin-left: 35%; + width: 30%; +} + diff --git a/styles/privateListsStyles.css b/styles/privateListsStyles.css new file mode 100644 index 0000000..6960bc8 --- /dev/null +++ b/styles/privateListsStyles.css @@ -0,0 +1,8 @@ +header{ + place-content: start center; +} + +h1{ + margin-left: 5%; +} + diff --git a/vues/acceuil.php b/vues/acceuil.php index bdb4909..6208762 100644 --- a/vues/acceuil.php +++ b/vues/acceuil.php @@ -3,64 +3,70 @@ Acceuil - + + + -
-

Welcome to our fantastic to do list app !

- -
- - -
- '; - } - else{ - echo' -
-
- - -
-
'; - }?> -
- +
+ + +
+

To-do

+ + + + '; + } + else{ + echo'
-
- - -
-
'; +
+ + +
+ '; }?> - -
+ +
+

Public Lists

- -
-

• '.$liste->nom.' -

- - -
-
'; - } + +
+ + +
+
'; + }?> +
+ +
+

• '.$liste->get_nom().'

+ + + +
+ '; } - ?> -
-
- - -
-
+ } + ?> + +
+
+ + +
+ \ No newline at end of file diff --git a/vues/connection.php b/vues/connection.php index cf29570..0cabb26 100644 --- a/vues/connection.php +++ b/vues/connection.php @@ -2,22 +2,23 @@ connection - + +
-

You are back ?!

-
- + +
+

You are back ?!

-
+
-

Login -

-

Password -

+

Login

+ +

Password

+

@@ -25,13 +26,12 @@


-
-
-
-

You are new here?

- +

You are new here?

+ +
- \ No newline at end of file + + diff --git a/vues/creationListe.php b/vues/creationListe.php index 2e16d0e..7b93b2c 100644 --- a/vues/creationListe.php +++ b/vues/creationListe.php @@ -1,15 +1,29 @@ + + creationListe + + + -
-

Create a new list

-
-

Name of the list -

+
+ + + + +

Create a new list

+
+
+
+

Name of the list

+ - '; + echo '

+ + +

+ '; } ?> diff --git a/vues/creationTache.php b/vues/creationTache.php index b4161e4..dfdc945 100644 --- a/vues/creationTache.php +++ b/vues/creationTache.php @@ -1,12 +1,23 @@ + + creationTache + + + -
-

Create a new list

- -

Name of the task -

- +
+ + + + +

Create a new task

+
+
+
+

Name of the task

+ +
diff --git a/vues/infosListe.php b/vues/infosListe.php index eb6c424..5cbca77 100644 --- a/vues/infosListe.php +++ b/vues/infosListe.php @@ -1,63 +1,70 @@ -
-

nom?>

-
- - -
-
+ + detailList + + + -
+
+
+ + +
+

get_nom()?>

+
+
taches != null){ - foreach($dataView->taches as $tache){ - if($tache->isCompleted == true){ + if($dataView->get_taches() != null){ + foreach($dataView->get_taches() as $tache){ + if($tache->get_isCompleted() == true){ echo ' - - -
- - - - -
+
+
+ + + + +
+

'.$tache->get_nom().'

+ '; } else{ echo ' - - -
- - - - -
+
+
+ + + + +
+

'.$tache->get_nom().'

'; } echo ' -
- + + - - -
'; + + + +
'; echo '
'; } } } ?>
-

+

- +
-

+

- +
diff --git a/vues/inscription.php b/vues/inscription.php index 865584f..e6e036b 100644 --- a/vues/inscription.php +++ b/vues/inscription.php @@ -2,22 +2,26 @@ connection - + +
+
+ + +

Join the good side of the force

-
-
-
-

Please enter all the informations :

-

Login -

-

Password -

-

Confirm Password -

+
+

Please enter all the informations :

+ +

Login

+ +

Password

+ +

Confirm Password

+
diff --git a/vues/listesPrivees.php b/vues/listesPrivees.php index aa57fb9..12cae1a 100644 --- a/vues/listesPrivees.php +++ b/vues/listesPrivees.php @@ -1,31 +1,44 @@ -
-

Private Lists

- - - - -
+ + Acceuil + + + + -
+
+
+ + +
+

Private lists

+
+
-

• '.$liste->nom.' -

+

• '.$liste->get_nom().'

+ - +
'; } } + else{ + echo ' +

You do not have any list for the moment

'; + } ?> - +
+ + +
\ No newline at end of file diff --git a/vues/profile.php b/vues/profile.php deleted file mode 100644 index 742613c..0000000 --- a/vues/profile.php +++ /dev/null @@ -1,19 +0,0 @@ - - - -
-

What you wanna do young padawan?

-
- - -
-
- -
-
- - -
-
- - \ No newline at end of file diff --git a/vues/styles/commonStyles.css b/vues/styles/commonStyles.css deleted file mode 100644 index 2a24d51..0000000 --- a/vues/styles/commonStyles.css +++ /dev/null @@ -1,26 +0,0 @@ -header{ - display: flex; - flex-direction: row; - background-color: #0971C9; -} -body{ - background-color: #0D2350; - -} -h1, h2, h3, h4, p{ - font-family: sans-serif; - font-weight: bolder; - color: #FFFEFD; -} -.button{ - width: 50%; - height: 100%; - background-color: #FFFEFD; - border-radius: 20%; - border-color: #0971C9; - color: #0D2350; - -} -.button:hover{ - background-color: grey; -} \ No newline at end of file diff --git a/vues/styles/connectionStyle.css b/vues/styles/connectionStyle.css deleted file mode 100644 index 2a3dfa0..0000000 --- a/vues/styles/connectionStyle.css +++ /dev/null @@ -1,33 +0,0 @@ -html, -body { - height: 100%; -} - -body { - display: flex; - align-items: center; - padding-top: 40px; - padding-bottom: 40px; - background-color: #f5f5f5; -} - -.form-signin { - max-width: 330px; - padding: 15px; -} - -.form-signin .form-floating:focus-within { - z-index: 2; -} - -.form-signin input[type="text"] { - margin-bottom: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.form-signin input[type="password"] { - margin-bottom: 10px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} \ No newline at end of file