Skip to main content

Create a Complete HTML Video Player with CSS (Step-by-Step)

The default HTML <video> player works well, but sometimes you want a custom player with your own design. In this tutorial, we will build a modern video player using HTML, CSS, and a little JavaScript.


💡 Features of This Video Player

  • Custom Play & Pause button
  • Progress bar showing playback position
  • Time display
  • Modern clean UI
  • No external libraries

📌 Step 1: HTML Structure

First, create the HTML layout for the player.

<div class="video-container">
  <video id="video" src="video.mp4"></video>

  <div class="controls">
    <button id="playBtn">Play</button>
    <div class="progress">
      <div id="progressBar"></div>
    </div>
    <span id="time">00:00 / 00:00</span>
  </div>
</div>

🎨 Step 2: CSS Styling

Add the following CSS to style the player:

<style>
body{
  background:#f7f9ff;
  font-family:Inter, Arial;
  padding:20px;
}

.video-container{
  width:650px;
  max-width:100%;
  margin:auto;
  background:#000;
  border-radius:10px;
  overflow:hidden;
  position:relative;
}

video{
  width:100%;
  display:block;
}

.controls{
  background:#111827;
  padding:10px;
  display:flex;
  align-items:center;
  gap:10px;
}

.controls button{
  background:#16a34a;
  color:#fff;
  border:none;
  padding:6px 14px;
  border-radius:6px;
  cursor:pointer;
  font-weight:600;
}

.controls button:hover{
  background:#15803d;
}

.progress{
  flex:1;
  height:8px;
  background:#374151;
  border-radius:6px;
  position:relative;
  cursor:pointer;
}

#progressBar{
  width:0%;
  height:100%;
  background:#22d3ee;
  border-radius:6px;
}

#time{
  color:#e5e7eb;
  font-size:13px;
}
</style>

⚙ Step 3: JavaScript Functionality

Now, add the logic for play, pause, progress bar update, and duration tracking.

<script>

const video = document.getElementById("video");
const playBtn = document.getElementById("playBtn");
const progressBar = document.getElementById("progressBar");
const timeText = document.getElementById("time");
const progressContainer = document.querySelector(".progress");

// Toggle play / pause
playBtn.addEventListener("click", () => {
  if(video.paused){
    video.play();
    playBtn.textContent = "Pause";
  } else {
    video.pause();
    playBtn.textContent = "Play";
  }
});

// Update progress bar
video.addEventListener("timeupdate", () => {
  const percent = (video.currentTime / video.duration) * 100;
  progressBar.style.width = percent + "%";

  // Update time display
  timeText.textContent = 
    formatTime(video.currentTime) + " / " + 
    formatTime(video.duration);
});

// Seek by clicking on progress bar
progressContainer.addEventListener("click", (e) => {
  const rect = progressContainer.getBoundingClientRect();
  const clickX = e.clientX - rect.left;
  const width = rect.width;

  video.currentTime = (clickX / width) * video.duration;
});

// Format time
function formatTime(sec){
  if(isNaN(sec)) return "00:00";
  
  const m = Math.floor(sec / 60);
  const s = Math.floor(sec % 60);
  
  return String(m).padStart(2,"0") + ":" + String(s).padStart(2,"0");
}

</script>

📂 Folder Structure

index.html
video.mp4

📌 Result

You now have a modern video player with:

  • Custom play button
  • Interactive progress bar
  • Dynamic time display
  • Clean and professional design

🎯 Challenge

Try adding more features:

  • Volume control
  • Full-screen toggle
  • Playback speed (1x / 2x)
  • Dark & light themes

We will create these in future tutorials.

Comments

Popular posts from this blog

HTML Forms Tutorial HTML Forms Tutorial HTML Forms allow users to enter and submit data. They are used everywhere—login forms, signup forms, search boxes, feedback forms, etc. In this complete tutorial, you will learn all form elements with examples and demos. 1. What is an HTML Form? A form collects user input using different form elements like text fields, checkboxes, radio buttons, buttons, and more. <form> Form elements go here... </form> 2. Basic Form Structure <form action="#" method="post"> <input type="text" placeholder="Enter name"> <button>Submit</button> </form> Submit Attributes: action → URL where form data is sent method="POST" → Secure data sending method="GET" → Data shows in URL 3. Text Input Field <i...
📸 HTML Image Gallery Tutorial for Beginners Image galleries make your website more beautiful and professional. In this tutorial, you will learn how to create different types of image galleries using HTML and CSS. 📌 1. Simple HTML Image Gallery This is the most basic gallery layout. <div> <img src="image1.jpg" width="200"> <img src="image2.jpg" width="200"> <img src="image3.jpg" width="200"> </div> ✔ Explanation All images are inside a <div> Each image has the same width They appear in a row 📌 2. Responsive Image Gallery (CSS Grid) This gallery automatically adjusts on mobile and PC. <style> .gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; } .gallery img { width: 100%; border-radius: 10px; } </style> <div class="galle...
📝 HTML Notes App Tutorial for Beginners (Full Project) In this tutorial, you will learn how to build a fully functional Notes App using HTML, CSS, and JavaScript. This app works on all devices and saves notes even after refreshing the page! ✨ Features of This Notes App Add new notes Edit notes Delete notes Dark Mode Search notes Auto-save using LocalStorage No backend needed 📌 Step 1 — HTML Structure Copy Code Run Demo <div class="container"> <h1>Notes App</h1> <button id="toggleDark">🌙 Dark Mode</button> <input type="text" id="searchBox" placeholder="Search notes..."> <textarea id="noteInput" placeholder="Write your note here..."></textarea> <button id="addNote">Add Note</button> <div id="notesList"></div> ...
HTML Tags Tutorial – A Complete Beginner-Friendly Guide HTML tags are the basic building blocks of every webpage. Whether you want to create a simple webpage or a full website, understanding HTML tags is the first and most important step. In this post, we’ll explore what HTML tags are, how they work, why they matter, and the most commonly used tags with examples. Table of Contents What Are HTML Tags? How HTML Tags Work Types of HTML Tags Most Common HTML Tags Self-Closing Tags Nesting Tags Practical Examples Best Practices What Are HTML Tags? HTML tags are keywords enclosed in angle brackets < > that tell the browser how to display content. Tags create elements such as headings, paragraphs, images, links, lists, buttons, forms, and much more. Example of a simple tag: <p>This is a paragraph.</p> How HTML Tags Work Most HTML tags come in pairs: <opening-tag>...
HTML Images Tutorial HTML Images Tutorial The <img> tag is used to display images on a webpage. In this tutorial, you'll learn how to add images, resize them, add borders, captions, and more. 1. Basic Image Tag The simplest way to add an image is by using the src and alt attributes. <img src="image.jpg" alt="My Image"> Attributes: src → Image URL alt → Text shown if image fails to load 2. Image Size (width & height) You can resize an image using width or height . <img src="photo.jpg" width="300" height="200"> 3. Responsive Images Responsive images automatically adjust to device size. <img src="photo.jpg" style="width:100%;max-width:400px;"> 4. Add Border to Images <img src="file.jpg" style="border:3px solid #333;...