Tutorial Description :
In this Tutorial I will create a Responsive Social Media Animated Navigation Menu Bar and a Login Form using CSS only and No JavaScript.
I will use font Font Awesome for the icons and google fonts with the font style of Roboto for the main font.
For the navigation I will use display flex so CSS3 flexbox.
I will also use pseudo element and pseudo classes as hover, after, before, and active in order to hide and make content visible .

Img:
Font Awesome
Google Fonts
HTML :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
rel="stylesheet"
integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="style.css" />
<title>Social Media Nav and Form</title>
</head>
<body>
<nav class="icon_bar">
<a href="#" class="active icon">
<i class="fa fa-user"></i>
<span class="icon_text">Home</span>
</a>
<a href="#insta" class="icon instagram">
<i class="fa fa-instagram"></i>
<span class="icon_text">Instagram</span>
</a>
<a href="#face" class="icon facebook">
<i class="fa fa-facebook"></i>
<span class="icon_text">Facebook</span>
</a>
<a href="#link" class="icon linkedin">
<i class="fa fa-linkedin"></i>
<span class="icon_text">LinkedIn</span>
</a>
<a href="#twit" class="icon twitter">
<i class="fa fa-twitter"></i>
<span class="icon_text">Twitter</span>
</a>
<a href="#you" class="icon youtube">
<i class="fa fa-youtube"></i>
<span class="icon_text">YouTube</span>
</a>
</nav>
<section class="main">
<div class="form_container">
<h1>
<span id="insta"></span>
<span id="face"></span>
<span id="link"></span>
<span id="twit"></span>
<span id="you"></span>
</h1>
<h2>Social Media</h2>
<form class="social_form">
<label for="">Username</label>
<input type="text" />
<label for="">Password</label>
<input type="password" />
<input class="submit" type="submit" value="Login" />
</form>
</div>
</section>
<footer>
<p>Menyhart <span>Media</span> ©2020</p>
</footer>
</body>
</html>
CSS:
*,
::before,
::after {
margin: 0;
padding: 0;
box-sizing: border-box;
list-style: none;
text-decoration: none;
font-size: 16px;
}
:root {
--user: blue;
--insta: #ce2f82;
--face: #395599;
--link: #4064ad;
--twit: #1c9deb;
--yt: #f80000;
}
body {
font-family: "Roboto";
max-width: 768px;
margin: auto;
background-color: #fff;
}
.icon_bar {
width: 100%;
display: flex;
}
.icon_bar a {
flex-grow: 1;
text-align: center;
padding: 0.25rem 0;
color: #eee;
background-color: rgba(1, 1, 1, 0.8);
font-size: 1.5rem;
border-right: 1px solid #fff;
}
.icon_bar a:hover {
background-color: rgba(1, 1, 1, 0.8);
color: #fff;
}
.icon_bar a:hover > .fa-instagram,
.icon_bar a:hover {
color: var(--insta);
background-color: #fff;
box-shadow: inset 0 0 8px 2px #727072;
font-weight: 700;
transition: 0.5s ease-in-out;
}
.icon_bar a:active > .fa-instagram {
color: #fff;
transition: 0.2s ease;
}
.icon_bar a.instagram:active {
background-color: var(--insta);
transition: 0.2s ease;
}
.icon_bar a:hover > .fa-facebook {
color: var(--face);
}
.icon_bar a:active > .fa-facebook {
color: #fff;
transition: 0.2s ease;
}
.icon_bar a.facebook:active {
background-color: var(--face);
transition: 0.2s ease;
}
.icon_bar a:hover > .fa-linkedin {
color: var(--link);
}
.icon_bar a:active > .fa-linkedin {
color: #fff;
transition: 0.2s ease;
}
.icon_bar a.linkedin:active {
background-color: var(--link);
transition: 0.2s ease;
}
.icon_bar a:hover > .fa-twitter {
color: var(--twit);
}
.icon_bar a:active > .fa-twitter {
color: #fff;
transition: 0.2s ease;
}
.icon_bar a.twitter:active {
background-color: var(--twit);
transition: 0.2s ease;
}
.icon_bar a:hover > .fa-youtube {
color: var(--yt);
}
.icon_bar a:active > .fa-youtube {
color: #fff;
transition: 0.2s ease;
}
.icon_bar a.youtube:active {
background-color: var(--yt);
transition: 0.2s ease;
}
/* Icon Title */
.icon_bar .active {
background-color: #eee;
color: var(--user);
}
.icon_bar .active:hover {
background-color: #111;
color: #eee;
}
.icon {
position: relative;
display: inline-block;
}
.icon .icon_text {
width: 100%;
text-align: center;
padding: 0.25rem 0;
font-size: 0.05rem;
color: #333;
position: absolute;
z-index: 1;
top: 100%;
left: 0;
opacity: 0;
transition: opacity 0.3s ease;
}
.icon:hover .icon_text {
opacity: 1;
font-size: 1.5rem;
}
/* main */
.main {
background-image: url(/img/woman-wearing-white-top-852793.jpg);
height: 600px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
position: relative;
box-shadow: 0 0 10px 1px #333;
border-radius: 10px;
}
/* form */
.form_container {
position: relative;
margin: 20% auto;
height: 450px;
width: 450px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.form_container h1,
.form_container h2 {
margin-bottom: 0.5rem;
}
.form_container h1 span {
font-size: 4rem;
}
.form_container h2 {
font-size: 2rem;
}
.social_form label,
.social_form input {
display: block;
margin: 1rem;
padding: 0.2rem;
width: 300px;
}
.social_form label {
color: #111;
font-size: 1.5rem;
font-weight: bold;
}
.social_form input {
border-radius: 4px;
height: 2rem;
border: 1px solid #111;
background-color: rgba(1, 1, 1, 0.2);
}
.social_form input.submit {
height: 50px;
font-size: large;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 2px;
background-color: transparent;
cursor: pointer;
border: 1px solid #111;
box-shadow: 10px 5px #111;
margin-top: 1rem;
}
.social_form input.submit:active {
background-color: #00ff40;
box-shadow: 0 0 10px 5px #00ff40;
transition: 0.5s ease;
}
h1 span {
visibility: hidden;
font-size: 4rem;
}
h1 {
margin-bottom: 2rem;
}
@keyframes social {
0% {
opacity: 0;
}
100% {
opacity: 100%;
}
}
h1 span#insta:target::after {
content: "Instagram";
visibility: visible;
position: relative;
color: var(--insta);
animation: social 2s;
text-shadow: 1px 1px #111;
font-size: 4rem;
}
h1 span#face:target::after {
content: "Facebook";
visibility: visible;
position: relative;
color: var(--face);
animation: social 2s;
text-shadow: 1px 1px #111;
font-size: 4rem;
}
h1 span#link:target::after {
content: "LinkedIn";
visibility: visible;
position: relative;
color: var(--link);
animation: social 2s;
text-shadow: 1px 1px #111;
font-size: 4rem;
}
h1 span#twit:target::after {
content: "Twitter";
visibility: visible;
position: relative;
color: var(--twit);
animation: social 2s;
text-shadow: 1px 1px #111;
font-size: 4rem;
}
h1 span#you:target::after {
content: "YouTube";
visibility: visible;
position: relative;
color: var(--yt);
animation: social 2s;
text-shadow: 1px 1px #111;
font-size: 4rem;
}
/* Footer */
footer {
background-color: #111;
height: 50px;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
color: #eebb33;
font-size: 1.5rem;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
letter-spacing: 2px;
font-weight: 500;
text-align: center;
}
footer span {
color: #fff;
text-transform: uppercase;
font-size: 1.1rem;
}
My Course: Web Development HTML CSS & JS Beginner to Advance

In this is Video I redue the tutorial using SASS
Source Code for the SASS Tutorial:
main:
@import "config";
@import "variables";
@import "mixin";
@import "nav";
@import "form";
body {
font-family: "Roboto";
max-width: 768px;
margin: auto;
background-color: rgba($color: #d3f800, $alpha: 0.5);
background-image: url(/img/white-ceramic-teacup-on-white-ceramic-saucer-on-round-table-3626734.jpg)
;
background-position: center;
background-clip: center;
background-size: cover;
background-repeat: no-repeat;
}

_config:
*,
::before,
::after {
margin: 0;
padding: 0;
box-sizing: border-box;
list-style: none;
text-decoration: none;
font-size: 16px;
}
_variables:
// Social media colors
$prim-c: $prim-c;
$sec-c: $sec-c;
$user: blue;
$insta: #ce2f82;
$face: #395599;
$link: #4064ad;
$twit: #1c9deb;
$yt: #f80000;
_mixin:
// Form label and input base style
@mixin baseStyle_label_input {
display: block;
margin: 1rem;
padding: 0.2rem;
width: 300px;
}
@mixin social_title($color) {
visibility: visible;
position: relative;
color: $color;
animation: social 2s;
text-shadow: 1px 1px $sec-c;
font-size: 4rem;
text-shadow: 1px 1px 5px #fff;
}
@mixin transition {
transition: 0.2s ease;
}
@mixin active-icon {
@include transition;
color: $prim-c;
}
@mixin active($color) {
background-color: $color;
@include transition;
}
// Icon color Map
$icons: (
"user": $user,
"instagram": $insta,
"facebook": $face,
"linkedin": $link,
"twitter": $twit,
"youtube": $yt
);
@mixin bg-active {
@each $icon-name, $icon-color in $icons {
a.#{$icon-name}:active {
background-color: $icon-color;
@include transition;
}
}
}
_form:
/* form */
.form_container {
position: relative;
margin: 20% auto;
height: 450px;
width: 450px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
h1 {
margin-bottom: 0.5rem;
span {
font-size: 4rem;
visibility: hidden;
&#insta:target::after {
content: "Instagram";
@include social_title($insta);
}
&#face:target::after {
content: "Facebook";
@include social_title($face);
}
&#link:target::after {
content: "LinkedIn";
@include social_title($link);
}
&#twit:target::after {
content: "Twitter";
@include social_title($twit);
}
&#you:target::after {
content: "YouTube";
@include social_title($yt);
}
}
// after creating it in the bottom
}
h2 {
margin-bottom: 0.5rem;
font-size: 1rem;
color: $prim-c;
text-transform: uppercase;
letter-spacing: 3px;
}
.social_form {
label {
display: block;
margin: 1rem;
padding: 0.2rem;
width: 300px;
color: $prim-c;
font-size: 1.5rem;
font-weight: bold;
text-shadow: 1px 1px 5px #111;
}
input {
display: block;
margin: 1rem;
padding: 0.2rem;
width: 300px;
border-radius: 4px;
height: 2rem;
border: 1px solid $prim-c;
background-color: rgba(1, 1, 1, 0.2);
&.submit {
color: $prim-c;
height: 50px;
font-size: large;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 2px;
background-color: transparent;
cursor: pointer;
border: 1px solid $prim-c;
box-shadow: 10px 5px $sec-c;
margin-top: 1rem;
&:active {
background-color: $link;
box-shadow: 0 0 5px 2px #333;
transition: 0.5s ease;
}
}
}
}
}
@keyframes social {
0% {
opacity: 0;
}
100% {
opacity: 100%;
}
}
_nav:
.icon_bar {
width: 100%;
display: flex;
a {
flex-grow: 1;
text-align: center;
padding: 0.25rem 0;
color: #eee;
background-color: rgba(1, 1, 1, 0.8);
font-size: 1.5rem;
border-right: 1px solid$prim-c;
&:hover {
background-color: rgba(1, 1, 1, 0.8);
color: $prim-c;
}
}
}
.icon_bar a:hover > .fa-instagram,
.icon_bar a:hover {
color: $insta;
background-color: $prim-c;
box-shadow: inset 0 0 8px 2px #727072;
font-weight: 700;
transition: 0.5s ease-in-out;
}
.icon_bar {
.active {
background-color: $prim-c;
color: $user;
border: 2px solid $sec-c;
&:hover {
background-color: $sec-c;
color: $prim-c;
}
}
& {
@include bg-active;
}
a {
&.instagram:active {
@include active($insta);
}
&.facebook:active {
@include active($face);
}
&.linkedin:active {
@include active($link);
}
&.twitter:active {
@include active($twit);
}
&.youtube:active {
@include active($yt);
}
&:hover {
& > .fa-facebook {
color: $face;
}
& > .fa-linkedin {
color: $link;
}
& > .fa-twitter {
color: $twit;
}
& > .fa-youtube {
color: $yt;
}
}
&:active {
& > .fa-instagram {
@include active-icon;
}
& > .fa-facebook {
@include active-icon;
}
& > .fa-linkedin {
@include active-icon;
}
& > .fa-twitter {
@include active-icon;
}
& > .fa-youtube {
@include active-icon;
}
}
}
}
/* Icon Title */
.icon_bar {
.active {
background-color: #eee;
color: var(--user);
&:hover {
background-color: $sec-c;
color: #eee;
}
}
}
.icon {
position: relative;
display: inline-block;
}
.icon .icon_text {
width: 100%;
text-align: center;
padding: 0.25rem 0;
font-size: 0.05rem;
color: #333;
position: absolute;
z-index: 1;
top: 100%;
left: 0;
opacity: 0;
transition: opacity 0.3s ease;
}
.icon:hover .icon_text {
opacity: 1;
font-size: 1.5rem;
}