DEV Community

Cover image for Facebook Login Page UI Clone in HTML and Tailwind CSS
Rohit Yadav
Rohit Yadav

Posted on

Facebook Login Page UI Clone in HTML and Tailwind CSS

Introduction:

Certainly! Here's an updated description for your Facebook login page UI clone using HTML and Tailwind CSS:

In the realm of web development, honing your skills often involves crafting replicas of well-known websites. Among the internet giants, Facebook stands out for its ubiquity and user engagement. In this tutorial, we'll guide you through the steps of crafting a replica of the Facebook login page using HTML for the structure and Tailwind CSS for a sleek and responsive design. Uncover the intricacies of mimicking Facebook's user interface, and enhance your proficiency in web development through this hands-on project.

Prerequisites:

Before we start, make sure you have the following installed:

  1. Code editor (e.g., Visual Studio Code, Sublime Text)
  2. Browser (e.g., Chrome, Firefox)
  3. Node.js and npm (for installing Tailwind CSS)

Let's get started:

Step 1: Install Nodejs

Before we proceed with the Facebook Clone project using HTML and Tailwind CSS, let's ensure that you have Node.js installed on your system. Node.js is required for installing and managing packages, including Tailwind CSS. Follow these steps to install Node.js:

i) Download Node.js:
Visit the official Node.js website: Node.js Downloads

ii) Choose the Appropriate Version:
Select the version that corresponds to your operating system. The website usually recommends the LTS (Long Term Support) version for most users.

iii) Install Node.js:
Follow the installation instructions provided on the website for your specific operating system. The process is typically straightforward, involving accepting the license agreement and choosing the installation directory.

iv) Verify Installation:
Open a terminal or command prompt and run the following commands to verify that Node.js and npm (Node Package Manager) are installed successfully:



node -v


Enter fullscreen mode Exit fullscreen mode


npm -v


Enter fullscreen mode Exit fullscreen mode

If installed correctly, these commands should display the installed Node.js and npm versions.

Now that you have Node.js installed, you can proceed with the Facebook Clone project using HTML and Tailwind CSS as outlined in the initial steps of the blog post. If you encounter any issues during installation, refer to the official Node.js documentation or seek help from the Node.js community.

Once Node.js is installed, continue with the remaining steps in the blog post to set up the project and create the Facebook Clone.

Step 2: Set Up Your Project

To ensure a smooth setup for your project, follow these steps carefully:

i) Create Project Structure:
Open your terminal and navigate to the desired location for your project. Create a new folder for your project and open it in your code editor. Inside this project folder, create another folder named src. This is where your source code will reside.



mkdir my-facebook-clone
cd my-facebook-clone
mkdir src


Enter fullscreen mode Exit fullscreen mode

ii) Create Files:
Inside the src folder, create two files: index.html for HTML content and input.css for your Tailwind CSS input.



cd src
touch index.html input.css


Enter fullscreen mode Exit fullscreen mode

iii) Initialize npm and Install Tailwind CSS:
Back in the root folder, initialize npm and install Tailwind CSS as development dependencies.



npm init -y
npm install -D tailwindcss
npx tailwindcss init


Enter fullscreen mode Exit fullscreen mode

iv) Configure tailwind.config.js:
Open the tailwind.config.js file created in your project root and replace its content with the following:



/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/**/*.{html,js}"],
 theme: {
    extend: {},
  },
  plugins: [],
}


Enter fullscreen mode Exit fullscreen mode

v) Setup input.css in src folder:
Open the input.css file inside the src folder and paste the following content:



@tailwind base;
@tailwind components;
@tailwind utilities;


Enter fullscreen mode Exit fullscreen mode

vi) Watch for Changes:
Run the following command in your terminal to watch for changes in your CSS file and automatically generate the output:



npx tailwindcss -i ./src/input.css -o ./src/output.css --watch


Enter fullscreen mode Exit fullscreen mode

vii) Link CSS in index.html:
In your index.html file, link the generated output.css:



<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <link rel="stylesheet" href="src/output.css">
   <title>Facebook - log in or sign up</title>
</head>
<body>

   <!-- Your content goes here -->

</body>
</html>


Enter fullscreen mode Exit fullscreen mode

With these steps completed, your project is set up and ready for building the Facebook Clone using HTML and Tailwind CSS.

Step 3: Add Favicon and Title

In this step, we will incorporate the favicon and title for our web page. Specifically, we will use the Facebook favicon and set the title as "Facebook – log in or sign up"



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./output.css">
<link rel="icon" type="image/icon" href="https://www.facebook.com/favicon.ico" />
<title>Facebook - log in or sign up</title>
</head>
<body>

<span class="c">&lt;!-- Your content goes here --&gt;</span>
Enter fullscreen mode Exit fullscreen mode

</body>
</html>

Enter fullscreen mode Exit fullscreen mode




Step 4: Create the HTML Structure and Add Styling to the Container

In this step, we'll build the foundational HTML structure to provide a framework for our design. Once the structure is in place, we'll seamlessly integrate CSS to enhance the visual appeal and achieve our desired look for the container. Follow along as we lay the groundwork for a polished and visually appealing web page.



<div class="content">
<div class="left">
<img class="w-72" src="https://static.xx.fbcdn.net/rsrc.php/y1/r/4lCu2zih0ca.svg" alt="">
<p class="desc">Facebook helps you connect and share with the people in
your life.</p>
</div>
<div class="right">
<input class="email" type="email" placeholder="Email address or phone number">
<input class="password" type="password" placeholder="Password">
<button class="btn-blue">Log
In</button>
<a href="#" class="forget">Forgotten password?</a>
<hr>
<button class="btn-green">Create
New Account</button>
<span class="desc"><span class="bold-desc">Create a Page</span> for a
celebrity, brand or business.</span>
</div>
</div>

Enter fullscreen mode Exit fullscreen mode




Step 5: Add Styling to the left container

Let's refine the styling of the left container to ensure a polished and visually appealing design in your index.html file:



<div class="left -mt-28">
<img class="w-72" src="https://static.xx.fbcdn.net/rsrc.php/y1/r/4lCu2zih0ca.svg" alt="">
<p class="w-3/5 ml-6 -mt-2 font-normal text-3xl">Facebook helps you connect and share with the people in
your life.</p>
</div>

Enter fullscreen mode Exit fullscreen mode




Step 6: Add Styling to the right container




<div class="right flex-col my-32 max-w-[26rem] bg-white p-4 -ml-64 rounded-lg shadow-[0_3px_10px_rgb(0,0,0,0.2)]">
<input class="text-lg mb-3 p-4 w-96 h-12 outline-blue-400 border-2 border-gray-200 rounded-md" type="email"
placeholder="Email address or phone number">
<input class="text-lg mb-3 p-4 w-96 h-12 outline-blue-400 border-2 border-gray-200 rounded-md"
type="password" placeholder="Password">
<button class="mb-4 w-96 bg-blue-500 hover:bg-blue-700 text-white text-xl font-bold h-12 rounded-md">Log
In</button>
<a href="#" class="mx-32 mb-4 text-sm tracking-tight text-blue-600 font-medium">Forgotten password?</a>
<hr class="my-4">
<button
class="mt-4 mx-16 w-64 tracking-tight bg-green-500 hover:bg-green-700 text-white text-xl font-bold h-12 rounded-md">Create
New Account</button>
<span class="absolute -mx-96 my-32"><span class="font-bold cursor-pointer">Create a Page</span> for a
celebrity, brand or business.</span>
</div>

Enter fullscreen mode Exit fullscreen mode




Step 7: Full HTML Code version

This includes the structure and styles for all the mentioned containers in your Facebook Clone project. Feel free to adjust or modify it based on your specific requirements.



<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="input.css">
<link rel="icon" type="image/icon" href="https://www.facebook.com/favicon.ico" />
<title>Facebook - log in or sign up</title>
</head>

<body class="bg-[#f0f2f5]">
<div class=" content flex -ml-12 justify-center items-center relative">
<div class="left -mt-28">
<img class="w-72" src="https://static.xx.fbcdn.net/rsrc.php/y1/r/4lCu2zih0ca.svg" alt="">
<p class="w-3/5 ml-6 -mt-2 font-normal text-3xl">Facebook helps you connect and share with the people in
your life.</p>
</div>
<div class="right flex-col my-32 max-w-[26rem] bg-white p-4 -ml-64 rounded-lg shadow-[0_3px_10px_rgb(0,0,0,0.2)]">
<input class="text-lg mb-3 p-4 w-96 h-12 outline-blue-400 border-2 border-gray-200 rounded-md" type="email"
placeholder="Email address or phone number">
<input class="text-lg mb-3 p-4 w-96 h-12 outline-blue-400 border-2 border-gray-200 rounded-md"
type="password" placeholder="Password">
<button class="mb-4 w-96 bg-blue-500 hover:bg-blue-700 text-white text-xl font-bold h-12 rounded-md">Log
In</button>
<a href="#" class="mx-32 mb-4 text-sm tracking-tight text-blue-600 font-medium">Forgotten password?</a>
<hr class="my-4">
<button
class="mt-4 mx-16 w-64 tracking-tight bg-green-500 hover:bg-green-700 text-white text-xl font-bold h-12 rounded-md">Create
New Account</button>
<span class="absolute -mx-96 my-32"><span class="font-bold cursor-pointer">Create a Page</span> for a
celebrity, brand or business.</span>
</div>
</div>
</body>

</html>

Enter fullscreen mode Exit fullscreen mode




Step 8: Enhance SEO with Semantic Tags (Optional)

In this step, consider boosting your website's search engine optimization by incorporating semantic tags. While optional, these tags can improve the overall visibility and accessibility of your content on search engines.



<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="input.css">
<link rel="icon" type="image/icon" href="https://www.facebook.com/favicon.ico" />
<title>Facebook - log in or sign up</title>
</head>

<body class="bg-[#f0f2f5]">

<span class="nt">&lt;main&gt;</span>
    <span class="nt">&lt;section</span> <span class="na">class=</span><span class="s">"content flex -ml-12 justify-center items-center relative"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;article</span> <span class="na">class=</span><span class="s">"left -mt-28"</span><span class="nt">&gt;</span>
            <span class="nt">&lt;img</span> <span class="na">class=</span><span class="s">"w-72"</span> <span class="na">src=</span><span class="s">"https://static.xx.fbcdn.net/rsrc.php/y1/r/4lCu2zih0ca.svg"</span> <span class="na">alt=</span><span class="s">"Facebook Logo"</span><span class="nt">&gt;</span>
            <span class="nt">&lt;p</span> <span class="na">class=</span><span class="s">"w-3/5 ml-6 -mt-2 font-normal text-3xl"</span><span class="nt">&gt;</span>Facebook helps you connect and share with the people in
                your life.<span class="nt">&lt;/p&gt;</span>
        <span class="nt">&lt;/article&gt;</span>

        <span class="nt">&lt;aside</span>
            <span class="na">class=</span><span class="s">"right flex-col my-32 max-w-[26rem] bg-white p-4 -ml-64 rounded-lg shadow-[0_3px_10px_rgb(0,0,0,0.2)]"</span><span class="nt">&gt;</span>
            <span class="nt">&lt;form&gt;</span>
                <span class="nt">&lt;label</span> <span class="na">for=</span><span class="s">"email"</span> <span class="na">class=</span><span class="s">"hidden"</span><span class="nt">&gt;</span>Email address or phone number<span class="nt">&lt;/label&gt;</span>
                <span class="nt">&lt;input</span> <span class="na">id=</span><span class="s">"email"</span>
                    <span class="na">class=</span><span class="s">"text-lg mb-3 p-4 w-96 h-12 outline-blue-400 border-2 border-gray-200 rounded-md"</span>
                    <span class="na">type=</span><span class="s">"email"</span> <span class="na">placeholder=</span><span class="s">"Email address or phone number"</span><span class="nt">&gt;</span>

                <span class="nt">&lt;label</span> <span class="na">for=</span><span class="s">"password"</span> <span class="na">class=</span><span class="s">"hidden"</span><span class="nt">&gt;</span>Password<span class="nt">&lt;/label&gt;</span>
                <span class="nt">&lt;input</span> <span class="na">id=</span><span class="s">"password"</span>
                    <span class="na">class=</span><span class="s">"text-lg mb-3 p-4 w-96 h-12 outline-blue-400 border-2 border-gray-200 rounded-md"</span>
                    <span class="na">type=</span><span class="s">"password"</span> <span class="na">placeholder=</span><span class="s">"Password"</span><span class="nt">&gt;</span>

                <span class="nt">&lt;button</span> <span class="na">type=</span><span class="s">"submit"</span>
                    <span class="na">class=</span><span class="s">"mb-4 w-96 bg-blue-500 hover:bg-blue-700 text-white text-xl font-bold h-12 rounded-md"</span><span class="nt">&gt;</span>Log
                    In<span class="nt">&lt;/button&gt;</span>
            <span class="nt">&lt;/form&gt;</span>

            <span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">class=</span><span class="s">"mx-32 mb-4 text-sm tracking-tight text-blue-600 font-medium"</span><span class="nt">&gt;</span>Forgotten password?<span class="nt">&lt;/a&gt;</span>
            <span class="nt">&lt;hr</span> <span class="na">class=</span><span class="s">"my-4"</span><span class="nt">&gt;</span>

            <span class="nt">&lt;button</span> <span class="na">type=</span><span class="s">"button"</span>
                <span class="na">class=</span><span class="s">"mt-4 mx-16 w-64 tracking-tight bg-green-500 hover:bg-green-700 text-white text-xl font-bold h-12 rounded-md"</span><span class="nt">&gt;</span>Create
                New Account<span class="nt">&lt;/button&gt;</span>

            <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">"absolute -mx-96 my-32"</span><span class="nt">&gt;&lt;span</span> <span class="na">class=</span><span class="s">"font-bold cursor-pointer"</span><span class="nt">&gt;</span>Create a Page<span class="nt">&lt;/span&gt;</span> for a
                celebrity, brand or business.<span class="nt">&lt;/span&gt;</span>
        <span class="nt">&lt;/aside&gt;</span>
    <span class="nt">&lt;/section&gt;</span>
<span class="nt">&lt;/main&gt;</span>
Enter fullscreen mode Exit fullscreen mode

</body>

</html>

Enter fullscreen mode Exit fullscreen mode




Preview:

This image shows the final product we made in this blog

Preview

Conclusion:

Building a Facebook UI clone using HTML and Tailwind CSS is a great way to practice front-end development skills. This tutorial provides a basic structure, but you can expand and enhance it to make your clone more realistic. Keep experimenting, and happy coding!

Top comments (0)