widgets
advanced
dashboard
widgets
drag-and-drop
charts
analytics
Category · Widgets Difficulty Level · Advanced Published on · August 22, 2025

Interactive Dashboard Widgets

Modern dashboard with draggable, resizable widgets and real-time data visualization, perfect for admin panels and analytics interfaces.

#dashboard #widgets #drag-and-drop #charts #analytics

Responsive Design

Yes

Dark Mode Support

No

lines

687

Browser Compatibility

Chrome Β· Firefox Β· Safari Β· Edge

Live Preview

Interact with the component without leaving the page.

500px

Overview

Modern dashboard with draggable, resizable widgets and real-time data visualization, perfect for admin panels and analytics interfaces.

How to use

  1. Copy the HTML markup into your page.
  2. Paste the CSS into your stylesheet and ensure the selectors match your markup.
  3. Paste the JavaScript and load it after the markup.
  4. Adjust spacing, colors, and text to match your design system.

Customization tips

  • Rename class names to avoid collisions with your existing CSS.
  • Replace hard-coded colors with CSS variables for theming.
  • Verify the layout at 320px, 768px, and 1024px widths.

HTML

134

lines

CSS

301

lines

JavaScript

252

lines


                <div class="dashboard-container">
  <div class="dashboard-header">
    <h2>Analytics Dashboard</h2>
    <div class="dashboard-controls">
      <button class="control-btn" id="addWidgetBtn">Add Widget</button>
      <button class="control-btn" id="resetLayoutBtn">Reset Layout</button>
    </div>
  </div>
  
  <div class="dashboard-grid" id="dashboardGrid">
    
    <div class="widget" data-id="traffic">
      <div class="widget-header">
        <h3>Traffic Overview</h3>
        <div class="widget-controls">
          <button class="widget-btn expand-btn">↕</button>
          <button class="widget-btn close-btn">Γ—</button>
        </div>
      </div>
      <div class="widget-content">
        <div class="chart-container">
          <canvas id="trafficChart"></canvas>
        </div>
        <div class="widget-stats">
          <div class="stat-item">
            <span class="stat-value">24.8K</span>
            <span class="stat-label">Visitors</span>
          </div>
          <div class="stat-item">
            <span class="stat-value">+12.4%</span>
            <span class="stat-label">Growth</span>
          </div>
        </div>
      </div>
    </div>
    
    
    <div class="widget" data-id="revenue">
      <div class="widget-header">
        <h3>Revenue</h3>
        <div class="widget-controls">
          <button class="widget-btn expand-btn">↕</button>
          <button class="widget-btn close-btn">Γ—</button>
        </div>
      </div>
      <div class="widget-content">
        <div class="chart-container">
          <canvas id="revenueChart"></canvas>
        </div>
        <div class="widget-stats">
          <div class="stat-item">
            <span class="stat-value">\$42.6K</span>
            <span class="stat-label">Total</span>
          </div>
          <div class="stat-item">
            <span class="stat-value">+8.2%</span>
            <span class="stat-label">This Month</span>
          </div>
        </div>
      </div>
    </div>
    
    
    <div class="widget" data-id="activity">
      <div class="widget-header">
        <h3>User Activity</h3>
        <div class="widget-controls">
          <button class="widget-btn expand-btn">↕</button>
          <button class="widget-btn close-btn">Γ—</button>
        </div>
      </div>
      <div class="widget-content">
        <div class="activity-list">
          <div class="activity-item">
            <div class="activity-icon">πŸ‘€</div>
            <div class="activity-details">
              <div class="activity-title">New user registered</div>
              <div class="activity-time">2 minutes ago</div>
            </div>
          </div>
          <div class="activity-item">
            <div class="activity-icon">πŸ›’</div>
            <div class="activity-details">
              <div class="activity-title">New order received</div>
              <div class="activity-time">15 minutes ago</div>
            </div>
          </div>
          <div class="activity-item">
            <div class="activity-icon">βœ‰οΈ</div>
            <div class="activity-details">
              <div class="activity-title">New message</div>
              <div class="activity-time">1 hour ago</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    
    <div class="widget" data-id="performance">
      <div class="widget-header">
        <h3>Performance Metrics</h3>
        <div class="widget-controls">
          <button class="widget-btn expand-btn">↕</button>
          <button class="widget-btn close-btn">Γ—</button>
        </div>
      </div>
      <div class="widget-content">
        <div class="metrics-grid">
          <div class="metric-card">
            <div class="metric-title">Response Time</div>
            <div class="metric-value">124ms</div>
            <div class="metric-trend positive">↓ 12%</div>
          </div>
          <div class="metric-card">
            <div class="metric-title">Uptime</div>
            <div class="metric-value">99.9%</div>
            <div class="metric-trend positive">↑ 0.1%</div>
          </div>
          <div class="metric-card">
            <div class="metric-title">Error Rate</div>
            <div class="metric-value">0.2%</div>
            <div class="metric-trend negative">↑ 0.05%</div>
          </div>
          <div class="metric-card">
            <div class="metric-title">Throughput</div>
            <div class="metric-value">1.2K/s</div>
            <div class="metric-trend positive">↑ 8%</div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

              
134lines
4571characters
HTMLLanguage

Browser Compatibility

Chrome

>= 50

Firefox

>= 45

Safari

>= 10

Edge

>= 15

Related Code Snippets

Explore template packs

Need larger building blocks? Browse responsive landing pages and component bundles.

Open HTML Template Library ->