Build a Tinder App Clone with HTML and CSS


By Faraz -

Learn how to create a Tinder app clone from scratch using HTML and CSS. Get the source code and build your own dating app UI.

Build a Tinder App Clone with HTML and CSS.jpg

Table of Contents

  1. Project Introduction
  2. HTML Code
  3. CSS Code
  4. Preview
  5. Conclusion

Welcome to an exciting journey into the world of web development, where you'll learn how to create a Tinder app clone using HTML and CSS. Whether you're a budding front-end developer, an aspiring app creator, or simply someone curious about the magic behind dating apps, this step-by-step tutorial is designed just for you.

In this digital age, dating apps have revolutionized how people meet and connect. Tinder, one of the pioneers in this field, introduced the concept of swiping right to like or left to pass, making it not only user-friendly but also highly addictive. By the end of this tutorial, you'll have a working clone of the Tinder app, complete with swipeable cards, user profiles, and even chat functionality!

But what makes this tutorial truly special is that it's tailor-made for beginners. You don't need an extensive coding background or prior app development experience. We'll break down each step into manageable pieces, explaining the concepts along the way. By the time you finish, you'll not only have your very own Tinder-like app but also a solid understanding of front-end web development.

Let's dive in and discover how you can transform a blank canvas into a fully functional dating app interface. Get ready to swipe right on your coding journey!

Source Code

Step 1 (HTML Code):

To get started, we will first need to create a basic HTML file. In this file, we will include the main structure for our Tinder App.

After creating the files just paste the following codes into your file. Make sure to save your HTML document with a .html extension, so that it can be properly viewed in a web browser.

Let's break down the code step by step:

1. <!DOCTYPE html>: This is the document type declaration and indicates that this document is an HTML5 document.

2. <html lang="en">: The opening <html> tag defines the beginning of an HTML document. The lang attribute specifies the language of the document, which is English in this case.

3. <head>: The <head> section contains meta-information about the document and links to external resources.

  • <meta charset="UTF-8" />: This meta tag specifies the character encoding of the document as UTF-8, which is a character encoding that supports a wide range of characters and is commonly used for web pages.
  • <meta name="viewport" content="width=device-width, initial-scale=1.0" />: This meta tag sets the viewport settings for responsive web design. It ensures that the webpage adapts to the width of the device's screen and sets the initial scale to 1.0, which means the page will be displayed at its original size.
  • <link href="" rel="stylesheet"/>: This <link> tag links to an external stylesheet from Google Fonts, specifically the Roboto font family, to be used for styling text on the page.
  • <link rel="stylesheet" href="styles.css">: This <link> tag links to an external CSS file named "styles.css," which is used for additional styling of the web page.
  • <title>Tinder App Clone</title>: The <title> tag sets the title of the web page, which is displayed in the browser's title bar or tab.

4. <body>: The <body> section contains the main content of the web page.

5. <nav class="navbar">: This <nav> tag represents a navigation bar at the top of the page. Inside it, there are three <i> elements with Font Awesome icons (fas fa-fire, fas fa-comments, and fas fa-user) that likely represent different features or sections of the app.

6. <div class="pic-and-actions">: This <div> contains the main content of the app, which likely includes user profiles and actions.

  • <div class="pic">: Inside this <div>, there is a user's profile picture and related information.
  • <div class="pic-text">: This <div> contains text related to the user's profile.
  • <div class="pic-name-and-age">: Inside this <div>, there are two <h2> (header) elements displaying the user's name ("Virat Kohli") and age ("33").
  • <div class="pic-bio">: This <div> contains a brief description of the user, likely their bio or profile summary.

7. <div class="actions">: This <div> contains actions that can be taken on the user's profile, such as liking, super liking, or dismissing.

  • Inside this <div>, there are three action elements represented by <div> with Font Awesome icons (fas fa-heart, fas fa-star, and fas fa-times), likely indicating actions like "like," "super like," and "dislike."

8. <script src="" crossorigin="anonymous"></script>: This <script> tag includes a JavaScript file from the Font Awesome Kit, allowing the use of Font Awesome icons in the HTML document.

This is the basic structure of our Tinder App using HTML, and now we can move on to styling it using CSS.

Step 2 (CSS Code):

Once the basic HTML structure of the Tinder App is in place, the next step is to add styling to the Tinder App using CSS.

Next, we will create our CSS file. In this file, we will use some basic CSS rules to style our Tinder App.

Let's break down the code section by section:

1. * Selector:

  • This selector targets all elements on the webpage.
  • box-sizing: border-box; ensures that the total width and height of an element include padding and borders.
  • margin: 0; and padding: 0; reset the margin and padding for all elements to zero, which is a common practice to ensure consistent layout across different browsers.

2. body Selector:

  • Styles for the entire page body.
  • height: 100vh; sets the height to 100% of the viewport height.
  • width: 100%; sets the width to 100% of the viewport width.
  • font-family: 'Roboto', sans-serif; specifies the font family for text.
  • background: grey; sets the background color of the body to grey.

3. .navbar Selector:

  • Styles for a navigation bar.
  • display: flex; makes the navigation bar a flex container.
  • padding: 10px 0; adds padding to the top and bottom of the navbar.
  • justify-content: space-around; evenly distributes items horizontally within the navbar.
  • width: 100%; makes the navbar span the full width of its container.
  • height: 44px; sets the height of the navbar.

4. .navbar i Selector:

  • Styles for icons within the navbar.
  • font-size: 1.5rem; sets the font size of the icons.
  • color: #dadfe6; sets the icon color.
  • :hover pseudo-class increases the font size and possibly changes the color on hover.

5. .pic-and-actions Selector:

  • Styles for a container that likely holds user profile information and action buttons.
  • height: calc(100vh - 44px); calculates the height to fill the remaining viewport height after subtracting the navbar's height.
  • display: flex; makes it a flex container.
  • flex-direction: column; stacks its children vertically.
  • align-items: center; centers its children horizontally.

6. .pic Selector:

  • Styles for a profile picture container.
  • width: 98vw; sets the width to 98% of the viewport width.
  • height: 85vh; sets the height to 85% of the viewport height.
  • background is used to set a background image, likely for the profile picture.
  • border-radius: 10px; rounds the corners of the container.
  • display: flex; makes it a flex container.
  • align-items: flex-end; aligns the content at the bottom.
  • color: #eee; sets the text color.
  • box-shadow adds a shadow to the container.

7. .pic-text Selector:

  • Styles for text content over the profile picture.
  • Defines background and border-radius to create a visually appealing text backdrop.

8. .pic-name-and-age Selector:

  • Styles for the container holding the user's name and age.
  • display: flex; makes it a flex container.
  • align-items: center; centers its children vertically.
  • margin-bottom: 6px; adds some margin at the bottom.

9. .pic-name-and-age h2 Selector:

  • Styles for the heading elements within the .pic-name-and-age container.

10. .pic-bio Selector:

  • Styles for the user's bio.

11. .actions Selector:

  • Styles for a container likely holding action buttons (e.g., like, dislike).
  • flex is set to "auto" to make this container grow as needed.
  • align-items: center; centers its children vertically.
  • margin: 1rem 0; adds margin to the top and bottom.

12. .action Selector:

  • Styles for individual action buttons.
  • Defines background, size, and shadow for the buttons.
  • Each action button has different colors and hover effects based on its position in the container.

13. Media Query (@media (min-width: 1025px)):

  • These styles apply when the viewport width is 1025 pixels or wider.
  • Adjustments are made to the profile picture size, actions container, and navbar width.

This will give our Tinder App an upgraded presentation. Create a CSS file with the name of styles.css and paste the given codes into your CSS file. Remember that you must create a file with the .css extension.

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;

body {
	height: 100vh;
	width: 100%;
	font-family: 'Roboto', sans-serif;
	background: grey;

/* Navbar */
.navbar {
	display: flex;
	padding: 10px 0;
	justify-content: space-around;
	width: 100%;
	height: 44px;

.navbar i {
	font-size: 1.5rem;
	color: #dadfe6;

.navbar i:hover
font-size: 1.9rem;

.navbar i:nth-child(1) 
	color: #fe466d;

.navbar i:nth-child(1):hover
	color: red;
	font-size: 1.9rem;

.pic-and-actions {
	height: calc(100vh - 44px);
	display: flex;
	flex-direction: column;
	align-items: center;

	width: 98vw;
	height: 85vh;
	background: url('../Images/tinder_clone.jpg') center center/cover;
	border-radius: 10px;
	display: flex;
	align-items: flex-end;
	color: #eee;
	box-shadow: 0 2px 10px 0 rgba(136, 136, 136, 0.77);

.pic-text {
	padding: 15px;
	background: rgb(2, 0, 36);
	background: rgb(2, 0, 36);
	background: linear-gradient(
		rgba(2, 0, 36, 1) 0%,
		rgba(35, 34, 65, 0) 0%,
		rgba(0, 0, 0, 0.7) 52%
	border-radius: 10px;

	display: flex;
	align-items: center;
	margin-bottom: 6px;

.pic-name-and-age h2 
	font-size: 1.8rem;

.pic-name-and-age h2:nth-child(2) 
	margin-left: 10px;
	font-weight: 500;

	line-height: 1.7rem;
	font-weight: 500;
	font-size: 1.1rem;

/* Actions */
	flex: auto;
	display: flex;
	align-items: center;
	margin: 1rem 0;

	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	height: 60px;
	width: 60px;
	border-radius: 50%;
	font-size: 2rem;
	box-shadow: 0 2px 6px 0 rgba(112, 125, 134, 0.14);

.actions .action:nth-child(1) 
	color: #fd5068;

.actions .action:nth-child(1):hover
height: 58px;
width: 58px;
font-size: 2.5rem;

.actions .action:nth-child(2) {
	height: 48px;
	width: 48px;
	font-size: 1.5rem;
	margin: 0 1rem;
	color: #2db1ff;

.actions .action:nth-child(2):hover{
height: 58px;
width: 58px;
font-size: 2.5rem;

.actions .action:nth-child(3) {
	color: #1be4a1;

.actions .action:nth-child(3):hover{
height: 58px;
width: 58px;
font-size: 2.5rem;

@media (min-width: 1025px) {
	.pic {
		width: 367px;
		height: 684px;

	.actions {
		flex: initial;

	.pic-and-actions {
		justify-content: center;

	.navbar {
		width: 400px;
		margin: auto;

Final Output:

Build a Tinder App Clone with HTML and CSS.gif


Congratulations on completing this thrilling journey of creating a Tinder app clone using HTML and CSS! You've come a long way from the initial concept to having a fully functional dating app user interface at your fingertips. What you've accomplished here is no small feat, and you should be proud of your newfound web development skills.

As you reflect on your journey, remember that the skills you've acquired in this tutorial are not limited to building a Tinder clone. You now have a solid foundation in front-end web development, which opens up a world of possibilities. You can explore more complex projects, enhance your coding skills, and even dive into back-end development to create full-fledged web applications.

But don't stop here. The web development landscape constantly evolves, and there's always more to learn. Consider exploring additional resources, online courses, and coding communities to continue your growth as a developer. Share your creations, collaborate with others, and keep pushing the boundaries of what you can build.

In the end, the Tinder app clone you've created is just the beginning of your coding journey. Use it as a launching pad to embark on more exciting projects, and who knows, you might even come up with the next big app idea that changes how people connect online.

Thank you for choosing this tutorial to kickstart your web development adventure. Keep coding, keep exploring, and most importantly, have fun along the way. Happy coding!

That’s a wrap!

I hope you enjoyed this post. Now, with these examples, you can create your own amazing page.

Did you like it? Let me know in the comments below 🔥 and you can support me by buying me a coffee.

And don’t forget to sign up to our email newsletter so you can get useful content like this sent right to your inbox!

Faraz 😊

End of the article

Subscribe to my Newsletter

Get the latest posts delivered right to your inbox

Latest Post