Professional Meters - MeggiTools
Run
Toggle Theme
Share Link
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Professional Meters</title> <style> body { font-family: 'Arial', sans-serif; background: #f0f2f5; display: flex; flex-direction: column; justify-content: center; align-items: center; margin: 0; } .meter-container { width: 80%; max-width: 600px; margin-bottom: 40px; padding: 20px; background: #fff; border-radius: 15px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); text-align: center; position: relative; } .meter-container h1 { margin-bottom: 20px; color: #333; } .meter { width: 100%; height: 30px; border-radius: 15px; overflow: hidden; position: relative; border: 2px solid #d1d1d1; } .meter-fill { height: 100%; width: 0; position: absolute; left: 0; top: 0; transition: width 0.4s ease-in-out; } @keyframes bounce { to { transform: translateY(-10px); } } .meter-value { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: #fff; font-weight: bold; animation: fadeIn 1s forwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .control-buttons { display: flex; justify-content: space-around; margin-top: 20px; } .control-buttons button { background: #2f80ed; color: #fff; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; transition: background 0.3s; font-size: 1rem; } .control-buttons button:hover { background: #56ccf2; } .control-buttons button:focus { outline: none; } .meter-percentage { margin-top: 10px; font-size: 1.5rem; color: #333; } /* Unique Designs */ /* Design 1: Gradient Burst Meter */ .gradient-burst .meter-fill { background: linear-gradient(90deg, #ff6a00, #ee0979); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } /* Design 2: Retro Pixel Meter */ .retro-pixel .meter-fill { background: #0f0; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } .retro-pixel .meter { border: 4px dashed #333; background: #f2f2f2; } /* Design 3: Neon Glow Meter */ .neon-glow .meter-fill { background: #39ff14; box-shadow: 0 0 10px #39ff14, 0 0 20px #39ff14, 0 0 30px #39ff14; } .neon-glow .meter { border: 2px solid #0f0; background: #222; } /* Design 4: Ocean Wave Meter */ .ocean-wave .meter-fill { background: linear-gradient(90deg, #00c6ff, #0072ff); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } /* Design 5: Metallic Shine Meter */ .metallic-shine .meter-fill { background: linear-gradient(90deg, #d7d2cc, #304352); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } .metallic-shine .meter { border: 2px solid #8a8a8a; background: #f5f5f5; } </style> </head> <body> <!-- Design 1: Gradient Burst Meter --> <div class="meter-container gradient-burst"> <h1>Gradient Burst Meter</h1> <div class="meter"> <div class="meter-fill" id="gradientBurstFill"> <div class="meter-value" id="gradientBurstValue">0%</div> </div> </div> <div class="meter-percentage" id="gradientBurstPercentage">0%</div> <div class="control-buttons"> <button onclick="changeMeter('gradientBurst', 10)">Increase</button> <button onclick="changeMeter('gradientBurst', -10)">Decrease</button> <button onclick="resetMeter('gradientBurst')">Reset</button> </div> </div> <!-- Design 2: Retro Pixel Meter --> <div class="meter-container retro-pixel"> <h1>Retro Pixel Meter</h1> <div class="meter"> <div class="meter-fill" id="retroPixelFill"> <div class="meter-value" id="retroPixelValue">0%</div> </div> </div> <div class="meter-percentage" id="retroPixelPercentage">0%</div> <div class="control-buttons"> <button onclick="changeMeter('retroPixel', 10)">Increase</button> <button onclick="changeMeter('retroPixel', -10)">Decrease</button> <button onclick="resetMeter('retroPixel')">Reset</button> </div> </div> <!-- Design 3: Neon Glow Meter --> <div class="meter-container neon-glow"> <h1>Neon Glow Meter</h1> <div class="meter"> <div class="meter-fill" id="neonGlowFill"> <div class="meter-value" id="neonGlowValue">0%</div> </div> </div> <div class="meter-percentage" id="neonGlowPercentage">0%</div> <div class="control-buttons"> <button onclick="changeMeter('neonGlow', 10)">Increase</button> <button onclick="changeMeter('neonGlow', -10)">Decrease</button> <button onclick="resetMeter('neonGlow')">Reset</button> </div> </div> <!-- Design 4: Ocean Wave Meter --> <div class="meter-container ocean-wave"> <h1>Ocean Wave Meter</h1> <div class="meter"> <div class="meter-fill" id="oceanWaveFill"> <div class="meter-value" id="oceanWaveValue">0%</div> </div> </div> <div class="meter-percentage" id="oceanWavePercentage">0%</div> <div class="control-buttons"> <button onclick="changeMeter('oceanWave', 10)">Increase</button> <button onclick="changeMeter('oceanWave', -10)">Decrease</button> <button onclick="resetMeter('oceanWave')">Reset</button> </div> </div> <!-- Design 5: Metallic Shine Meter --> <div class="meter-container metallic-shine"> <h1>Metallic Shine Meter</h1> <div class="meter"> <div class="meter-fill" id="metallicShineFill"> <div class="meter-value" id="metallicShineValue">0%</div> </div> </div> <div class="meter-percentage" id="metallicShinePercentage">0%</div> <div class="control-buttons"> <button onclick="changeMeter('metallicShine', 10)">Increase</button> <button onclick="changeMeter('metallicShine', -10)">Decrease</button> <button onclick="resetMeter('metallicShine')">Reset</button> </div> </div> <script> function changeMeter(meterId, value) { const fill = document.getElementById(`${meterId}Fill`); const meterValue = document.getElementById(`${meterId}Value`); const meterPercentage = document.getElementById(`${meterId}Percentage`); let currentValue = parseInt(meterValue.textContent); currentValue += value; if (currentValue > 100) currentValue = 100; if (currentValue < 0) currentValue = 0; fill.style.width = currentValue + '%'; meterValue.textContent = currentValue + '%'; meterPercentage.textContent = currentValue + '%'; } function resetMeter(meterId) { const fill = document.getElementById(`${meterId}Fill`); const meterValue = document.getElementById(`${meterId}Value`); const meterPercentage = document.getElementById(`${meterId}Percentage`); fill.style.width = '0%'; meterValue.textContent = '0%'; meterPercentage.textContent = '0%'; } </script> </body> </html>