Pages

Tuesday, 24 December 2024

Color Scheme Generator Tool



Color Scheme Generator Tool

Color Scheme Generator

© 2024 Color Scheme Generator

* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Arial', sans-serif; background-color: #f4f4f9; display: flex; justify-content: center; align-items: center; height: 100vh; } .container { background-color: #fff; border-radius: 8px; padding: 20px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); max-width: 600px; width: 100%; text-align: center; } header h1 { font-size: 2rem; color: #333; margin-bottom: 20px; } .color-input, .scheme-options { margin: 15px 0; } label { font-weight: bold; } input[type="color"], select { padding: 5px; font-size: 1rem; width: 100%; border: 1px solid #ddd; border-radius: 5px; margin-top: 10px; } button { padding: 10px 20px; background-color: #3498db; color: #fff; border: none; border-radius: 5px; font-size: 1rem; cursor: pointer; margin-top: 15px; } button:hover { background-color: #2980b9; } .color-palette { display: flex; flex-wrap: wrap; justify-content: center; margin-top: 20px; } .color-palette .color-box { width: 80px; height: 80px; margin: 10px; border-radius: 5px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; } .color-palette .color-box:hover { transform: scale(1.1); } footer { margin-top: 20px; color: #888; font-size: 0.9rem; } @media (max-width: 600px) { .container { padding: 15px; } header h1 { font-size: 1.5rem; } button { width: 100%; } } document.getElementById('generate-btn').addEventListener('click', generateColorScheme); function generateColorScheme() { const baseColor = document.getElementById('base-color').value; const scheme = document.getElementById('scheme').value; // Use Chroma.js to generate color schemes let colors; switch(scheme) { case 'complementary': colors = chroma(baseColor).set('hsl.h', '+180').colors(5); break; case 'analogous': colors = chroma(baseColor).set('hsl.h', '+30').colors(5); break; case 'triadic': colors = chroma(baseColor).set('hsl.h', '+120').colors(3); break; case 'split-complementary': colors = chroma(baseColor).set('hsl.h', '+150').colors(5); break; default: colors = chroma(baseColor).monochrome().colors(5); break; } displayColors(colors); } function displayColors(colors) { const paletteDiv = document.querySelector('.color-palette'); paletteDiv.innerHTML = ''; colors.forEach(color => { const colorBox = document.createElement('div'); colorBox.classList.add('color-box'); colorBox.style.backgroundColor = color; paletteDiv.appendChild(colorBox); }); }