Hello my friends, welcome back to my blog. Today in this blog post, I am going to show you, Vue 3 Animated Login & Registration Forms.
Vue 3 came and if you are new then you must check below link::
Vuejs
Friends now I proceed onwards and here is the working code snippet for Vue 3 Animated Login & Registration Forms and please use this carefully to avoid the mistakes:
1. Firstly friends we need fresh vuejs(Vue 3) setup and for that we need to run below commands into our terminal and also w should have latest node version installed on our system:
Guys you can skip this first step if you already have vuejs fresh setup:
npm install -g @vue/cli vue create vuepage cd vuepage npm install bootstrap --save npm i jquery --save npm run serve //http://localhost:8080/
2. Now friends please create new file “App.css” inside src folder and add below code inside it:
@import url('https://fonts.googleapis.com/css?family=Mukta'); body{ font-family: 'Mukta', sans-serif; height:100vh; min-height:550px; background-color: #b9fab9!important; background-repeat: no-repeat; background-size:cover; background-position:center; position:relative; overflow-y: hidden; } a{ text-decoration:none; color:#444444; } .login-reg-panel{ position: absolute; top: 50%; transform: translateY(-50%); text-align:center; width:70%; right:0;left:0; margin:auto; height:400px; background-color: rgba(236, 48, 20, 0.9); } .white-panel{ background-color: rgba(255,255, 255, 1); height:500px; position:absolute; top:-50px; width:50%; right:calc(50% - 50px); transition:.3s ease-in-out; z-index:0; box-shadow: 0 0 15px 9px #00000096; } .login-reg-panel input[type="radio"]{ position:relative; display:none; } .login-reg-panel{ color:#B8B8B8; } .login-reg-panel #label-login, .login-reg-panel #label-register{ border:1px solid #9E9E9E; padding:5px 5px; width:150px; display:block; text-align:center; border-radius:10px; cursor:pointer; font-weight: 600; font-size: 18px; } .login-info-box{ width:30%; padding:0 50px; top:20%; left:0; position:absolute; text-align:left; } .register-info-box{ width:30%; padding:0 50px; top:20%; right:0; position:absolute; text-align:left; } .right-log{right:50px !important;} .login-show, .register-show{ z-index: 1; display:none; opacity:0; transition:0.3s ease-in-out; color:#242424; text-align:left; padding:50px; } .show-log-panel{ display:block; opacity:0.9; } .login-show input[type="text"], .login-show input[type="password"]{ width: 100%; display: block; margin:20px 0; padding: 15px; border: 1px solid #b5b5b5; outline: none; } .login-show input[type="button"] { max-width: 150px; width: 100%; background: #444444; color: #f9f9f9; border: none; padding: 10px; text-transform: uppercase; border-radius: 2px; float:right; cursor:pointer; } .login-show a{ display:inline-block; padding:10px 0; } .register-show input[type="text"], .register-show input[type="password"]{ width: 100%; display: block; margin:20px 0; padding: 15px; border: 1px solid #b5b5b5; outline: none; } .register-show input[type="button"] { max-width: 150px; width: 100%; background: #444444; color: #f9f9f9; border: none; padding: 10px; text-transform: uppercase; border-radius: 2px; float:right; cursor:pointer; } .credit { position:absolute; bottom:10px; left:10px; color: #3B3B25; margin: 0; padding: 0; font-family: Arial,sans-serif; text-transform: uppercase; font-size: 12px; font-weight: bold; letter-spacing: 1px; z-index: 99; } a{ text-decoration:none; color:#2c7715; }
3. Finally friends we need to add below code into our src/App.vue file to get final output on web browser:
<template> <div class="login-reg-panel"> <div class="login-info-box"> <h2>Have an account?</h2> <p>Lorem ipsum dolor sit amet</p> <label id="label-register" for="log-reg-show">Login</label> <input type="radio" name="active-log-panel" id="log-reg-show" checked="checked"> </div> <div class="register-info-box"> <h2>Don't have an account?</h2> <p>Lorem ipsum dolor sit amet</p> <label id="label-login" for="log-login-show">Register</label> <input type="radio" name="active-log-panel" id="log-login-show"> </div> <div class="white-panel"> <div class="login-show"> <h2>LOGIN</h2> <input type="text" placeholder="Email"> <input type="password" placeholder="Password"> <input type="button" value="Login"> </div> <div class="register-show"> <h2>REGISTER</h2> <input type="text" placeholder="Email"> <input type="password" placeholder="Password"> <input type="password" placeholder="Confirm Password"> <input type="button" value="Register"> </div> </div> </div> </template> <script> //Bootstrap import './App.css'; import 'bootstrap/dist/css/bootstrap.min.css'; import 'bootstrap/dist/js/bootstrap.min.js'; import 'jquery/dist/jquery.min.js'; import $ from 'jquery'; export default { // mounted(){ //Animated Code $(document).ready(function(){ $('.login-info-box').fadeOut(); $('.login-show').addClass('show-log-panel'); }); $('.login-reg-panel input[type="radio"]').on('change', function() { if($('#log-login-show').is(':checked')) { $('.register-info-box').fadeOut(); $('.login-info-box').fadeIn(); $('.white-panel').addClass('right-log'); $('.register-show').addClass('show-log-panel'); $('.login-show').removeClass('show-log-panel'); } else if($('#log-reg-show').is(':checked')) { $('.register-info-box').fadeIn(); $('.login-info-box').fadeOut(); $('.white-panel').removeClass('right-log'); $('.login-show').addClass('show-log-panel'); $('.register-show').removeClass('show-log-panel'); } }); }, } </script>
Now we are done friends also and If you have any kind of query or suggestion or any requirement then feel free to comment below.
Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.
I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad.
Jassa
Thanks
Recent Comments