Color Scheme Generator Tool
* {
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);
});
}