Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d703db5bac | ||
|
e7deb660cb | ||
|
f298427ab8 | ||
|
cecb8d1f40 | ||
|
6c1a57711b | ||
|
b0da25cd29 | ||
|
bd71278bba | ||
|
f4152534a0 | ||
|
ff1a006ded | ||
|
08b5fe7384 | ||
|
0dbbca96ed | ||
|
976cd319cb | ||
|
98678f2d45 | ||
|
4534b665d6 |
219
index.css
Normal file
219
index.css
Normal file
@ -0,0 +1,219 @@
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #999;
|
||||
font-family: Gill Sans;
|
||||
font-size: 1.5rem;
|
||||
font-weight: 400;
|
||||
letter-spacing: 3px;
|
||||
line-height: 2.2rem;
|
||||
margin: 6px 0 0 20px;
|
||||
}
|
||||
|
||||
main {
|
||||
background-color: #e5e5e5;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0 0 20px #999;
|
||||
margin: 20px auto 0;
|
||||
padding: 20px;
|
||||
width: 894px;
|
||||
}
|
||||
|
||||
.pixel {
|
||||
background-color: white;
|
||||
border: 1px solid #e5e5e5;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
}
|
||||
|
||||
.brushIndicator {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 3px;
|
||||
height: 35.5px;
|
||||
margin: 6px 0 0 12px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.color {
|
||||
/* Prevent classes like 'carmine-red' from specifying the border-color */
|
||||
border: 1px solid #bbbbbb !important;
|
||||
border-radius: 50%;
|
||||
height: 35.5px;
|
||||
margin: 5px 5px 0 0;
|
||||
width: 35.5px;
|
||||
}
|
||||
|
||||
.carmine-red {
|
||||
background-color: #b23232;
|
||||
border-color: #b23232;
|
||||
}
|
||||
|
||||
.coral-red {
|
||||
background-color: #ff4848;
|
||||
border-color: #ff4848;
|
||||
}
|
||||
|
||||
.pastel-red {
|
||||
background-color: #ff6c6c;
|
||||
border-color: #ff6c6c;
|
||||
}
|
||||
|
||||
.tigers-eye-orange {
|
||||
background-color: #e59b40;
|
||||
border-color: #e59b40;
|
||||
}
|
||||
|
||||
.pastel-orange {
|
||||
background-color: #ffad48;
|
||||
border-color: #ffad48;
|
||||
}
|
||||
|
||||
.topaz-orange {
|
||||
background-color: #ffc57e;
|
||||
border-color: #ffc57e;
|
||||
}
|
||||
|
||||
.sandstorm-yellow {
|
||||
background-color: #e5de40;
|
||||
border-color: #e5de40;
|
||||
}
|
||||
|
||||
.lemon-yellow {
|
||||
background-color: #fff748;
|
||||
border-color: #fff748;
|
||||
}
|
||||
|
||||
.pastel-yellow {
|
||||
background-color: #fffa91;
|
||||
border-color: #fffa91;
|
||||
}
|
||||
|
||||
.lime-green {
|
||||
background-color: #39cc4b;
|
||||
border-color: #39cc4b;
|
||||
}
|
||||
|
||||
.ufo-green {
|
||||
background-color: #48ff5e;
|
||||
border-color: #48ff5e;
|
||||
}
|
||||
|
||||
.mint-green {
|
||||
background-color: #91ff9e;
|
||||
border-color: #91ff9e;
|
||||
}
|
||||
|
||||
.cerulean-blue {
|
||||
background-color: #3248b2;
|
||||
border-color: #3248b2;
|
||||
}
|
||||
|
||||
.ultramarine-blue {
|
||||
background-color: #4867ff;
|
||||
border-color: #4867ff;
|
||||
}
|
||||
|
||||
.carolina-blue {
|
||||
background-color: #91a3ff;
|
||||
border-color: #91a3ff;
|
||||
}
|
||||
|
||||
.purple-heart {
|
||||
background-color: #6432b2;
|
||||
border-color: #6432b2;
|
||||
}
|
||||
|
||||
.lavender-indigo {
|
||||
background-color: #8f48ff;
|
||||
border-color: #8f48ff;
|
||||
}
|
||||
|
||||
.bright-lavender {
|
||||
background-color: #bb91ff;
|
||||
border-color: #bb91ff;
|
||||
}
|
||||
|
||||
.bruise-purple {
|
||||
background-color: #7c2b99;
|
||||
border-color: #7c2b99;
|
||||
}
|
||||
|
||||
.heliotrope-purple {
|
||||
background-color: #cf48ff;
|
||||
border-color: #cf48ff;
|
||||
}
|
||||
|
||||
.lavender-magenta {
|
||||
background-color: #e291ff;
|
||||
border-color: #e291ff;
|
||||
}
|
||||
|
||||
.black-black {
|
||||
background-color: #000000;
|
||||
border-color: #000000;
|
||||
}
|
||||
|
||||
.drab-black {
|
||||
background-color: #323232;
|
||||
border-color: #323232;
|
||||
}
|
||||
|
||||
.dim-gray {
|
||||
background-color: #666666;
|
||||
border-color: #666666;
|
||||
}
|
||||
|
||||
.manatee-gray {
|
||||
background-color: #999999;
|
||||
border-color: #999999;
|
||||
}
|
||||
|
||||
.pastel-gray {
|
||||
background-color: #cccccc;
|
||||
border-color: #cccccc;
|
||||
}
|
||||
|
||||
.white-white {
|
||||
background-color: #ffffff;
|
||||
border-color: #ffffff;
|
||||
}
|
||||
|
||||
.bistre-brown {
|
||||
background-color: #3a2119;
|
||||
border-color: #3a2119;
|
||||
}
|
||||
|
||||
.noir-brown {
|
||||
background-color: #512e23;
|
||||
border-color: #512e23;
|
||||
}
|
||||
|
||||
.bole-brown {
|
||||
background-color: #754233;
|
||||
border-color: #754233;
|
||||
}
|
||||
|
||||
.chestnut-brown {
|
||||
background-color: #90675b;
|
||||
border-color: #90675b;
|
||||
}
|
||||
|
||||
.grullo-brown {
|
||||
background-color: #ac8d84;
|
||||
border-color: #ac8d84;
|
||||
}
|
||||
|
||||
#canvas, #palette {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
15
index.html
15
index.html
@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Pixel Art Maker</title>
|
||||
<script defer src="index.js"></script>
|
||||
<link rel="stylesheet" href="index.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div id="canvas"></div>
|
||||
<div id="palette"></div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
124
index.js
Normal file
124
index.js
Normal file
@ -0,0 +1,124 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
let brushClass = 'drab-black';
|
||||
|
||||
const paintPixel = function(pixel) {
|
||||
pixel.classList.remove(pixel.classList.item(1));
|
||||
pixel.classList.add(brushClass);
|
||||
}
|
||||
|
||||
const drawCanvas = function() {
|
||||
const canvas = document.querySelector('#canvas');
|
||||
|
||||
for (let i = 0; i < 2013; i++) {
|
||||
const pixel = document.createElement('div');
|
||||
pixel.classList.add('pixel');
|
||||
canvas.appendChild(pixel);
|
||||
}
|
||||
|
||||
canvas.addEventListener('click', (event) => {
|
||||
if (event.target === canvas) {
|
||||
return;
|
||||
}
|
||||
|
||||
paintPixel(event.target);
|
||||
});
|
||||
|
||||
// Bonus 1 - paintbrush
|
||||
//
|
||||
// let isPainting = false;
|
||||
//
|
||||
// canvas.addEventListener('mousedown', () => {
|
||||
// isPainting = true;
|
||||
//
|
||||
// if (event.target === canvas) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// paintPixel(event.target);
|
||||
// });
|
||||
//
|
||||
// document.addEventListener('mouseup', () => {
|
||||
// isPainting = false;
|
||||
// });
|
||||
//
|
||||
// const pixels = document.querySelectorAll('.pixel');
|
||||
//
|
||||
// for (const pixel of pixels) {
|
||||
// pixel.addEventListener('mouseenter', () => {
|
||||
// if (isPainting) {
|
||||
// paintPixel(event.target);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
const drawPalette = function() {
|
||||
const palette = document.querySelector('#palette');
|
||||
|
||||
const colorClasses = [
|
||||
'carmine-red',
|
||||
'coral-red',
|
||||
'pastel-red',
|
||||
'tigers-eye-orange',
|
||||
'pastel-orange',
|
||||
'topaz-orange',
|
||||
'sandstorm-yellow',
|
||||
'lemon-yellow',
|
||||
'pastel-yellow',
|
||||
'lime-green',
|
||||
'ufo-green',
|
||||
'mint-green',
|
||||
'cerulean-blue',
|
||||
'ultramarine-blue',
|
||||
'carolina-blue',
|
||||
'purple-heart',
|
||||
'lavender-indigo',
|
||||
'bright-lavender',
|
||||
'bruise-purple',
|
||||
'heliotrope-purple',
|
||||
'lavender-magenta',
|
||||
'black-black',
|
||||
'drab-black',
|
||||
'dim-gray',
|
||||
'manatee-gray',
|
||||
'pastel-gray',
|
||||
'white-white',
|
||||
'bistre-brown',
|
||||
'noir-brown',
|
||||
'bole-brown',
|
||||
'chestnut-brown',
|
||||
'grullo-brown'
|
||||
];
|
||||
|
||||
for (const colorClass of colorClasses) {
|
||||
const color = document.createElement('div');
|
||||
color.classList.add('color', colorClass);
|
||||
palette.appendChild(color);
|
||||
}
|
||||
|
||||
const heading = document.createElement('h2');
|
||||
heading.textContent = 'BRUSH COLOR >';
|
||||
|
||||
const brushIndicator = document.createElement('div');
|
||||
brushIndicator.classList.add('brushIndicator', brushClass);
|
||||
|
||||
palette.appendChild(heading);
|
||||
palette.appendChild(brushIndicator);
|
||||
|
||||
palette.addEventListener('click', (event) => {
|
||||
if (event.target === palette) {
|
||||
return;
|
||||
}
|
||||
|
||||
brushClass = event.target.classList.item(1);
|
||||
|
||||
brushIndicator.classList.remove(brushIndicator.classList.item(1));
|
||||
brushIndicator.classList.add(brushClass);
|
||||
});
|
||||
}
|
||||
|
||||
drawCanvas();
|
||||
drawPalette();
|
||||
})();
|
Loading…
x
Reference in New Issue
Block a user