example solution
This commit is contained in:
parent
95d5e236b7
commit
ddcd8fa42f
@ -1,3 +1,5 @@
|
|||||||
|
####Example solution deployed to [surge](example-pixel-art.surge.sh)
|
||||||
|
|
||||||
# Pixel Art Maker
|
# Pixel Art Maker
|
||||||
|
|
||||||
In this exercise, you'll create your own pixel art maker which will allow a user to choose colors from a palette and then paint pixel art. The interface is completely up to you, but it could look something like this.
|
In this exercise, you'll create your own pixel art maker which will allow a user to choose colors from a palette and then paint pixel art. The interface is completely up to you, but it could look something like this.
|
||||||
|
92
app.js
Normal file
92
app.js
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
var brush;
|
||||||
|
|
||||||
|
var drawCanvas = function() {
|
||||||
|
var canvas = document.querySelector('#canvas');
|
||||||
|
var pixel;
|
||||||
|
|
||||||
|
for (var i = 0; i < 2013; i++) {
|
||||||
|
pixel = document.createElement('div');
|
||||||
|
pixel.className = 'pixel';
|
||||||
|
canvas.appendChild(pixel);
|
||||||
|
}
|
||||||
|
|
||||||
|
canvas.addEventListener('click', function(event) {
|
||||||
|
if (event.target.className !== 'pixel') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
event.target.style.background = brush;
|
||||||
|
event.target.style.borderColor = brush;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var drawPalette = function() {
|
||||||
|
var palette = document.querySelector('#palette');
|
||||||
|
|
||||||
|
var hexColors = [
|
||||||
|
'#b23232',
|
||||||
|
'#ff4848',
|
||||||
|
'#ff6c6c',
|
||||||
|
'#e59b40',
|
||||||
|
'#ffad48',
|
||||||
|
'#ffc57e',
|
||||||
|
'#e5de40',
|
||||||
|
'#fff748',
|
||||||
|
'#fffa91',
|
||||||
|
'#39cc4b',
|
||||||
|
'#48ff5e',
|
||||||
|
'#91ff9e',
|
||||||
|
'#3248b2',
|
||||||
|
'#4867ff',
|
||||||
|
'#91a3ff',
|
||||||
|
'#6432b2',
|
||||||
|
'#8f48ff',
|
||||||
|
'#bb91ff',
|
||||||
|
'#7c2b99',
|
||||||
|
'#cf48ff',
|
||||||
|
'#e291ff',
|
||||||
|
'#000000',
|
||||||
|
'#323232',
|
||||||
|
'#666666',
|
||||||
|
'#999999',
|
||||||
|
'#cccccc',
|
||||||
|
'#ffffff',
|
||||||
|
'#3a2119',
|
||||||
|
'#512e23',
|
||||||
|
'#754233',
|
||||||
|
'#90675b',
|
||||||
|
'#ac8d84'
|
||||||
|
];
|
||||||
|
|
||||||
|
var color;
|
||||||
|
|
||||||
|
for (var hexColor of hexColors) {
|
||||||
|
color = document.createElement('div');
|
||||||
|
color.className = 'color';
|
||||||
|
color.style.background = hexColor;
|
||||||
|
palette.appendChild(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
var heading = document.createElement('h2');
|
||||||
|
heading.textContent = 'BRUSH COLOR >';
|
||||||
|
|
||||||
|
var brushColor = document.createElement('div');
|
||||||
|
brushColor.className = 'brushColor';
|
||||||
|
|
||||||
|
palette.appendChild(heading);
|
||||||
|
palette.appendChild(brushColor);
|
||||||
|
|
||||||
|
palette.addEventListener('click', function(event) {
|
||||||
|
if (event.target.className !== 'color') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
brush = event.target.style.background;
|
||||||
|
brushColor.style.background = brush;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
drawCanvas();
|
||||||
|
drawPalette();
|
16
index.html
16
index.html
@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Pixel Art Maker</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<div id="canvas"></div>
|
||||||
|
<div id="palette"></div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<script src="app.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
58
style.css
Normal file
58
style.css
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
html {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
*, *:before, *:after {
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: #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: #e5e5e5;
|
||||||
|
border-radius: 15px;
|
||||||
|
box-shadow: 0 0 20px #999;
|
||||||
|
margin: 20px auto 0;
|
||||||
|
padding: 20px;
|
||||||
|
width: 894px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pixel {
|
||||||
|
background: white;
|
||||||
|
border: 1px solid #e5e5e5;
|
||||||
|
height: 14px;
|
||||||
|
width: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.color {
|
||||||
|
border: 1px solid #bbbbbb;
|
||||||
|
border-radius: 50%;
|
||||||
|
height: 35.5px;
|
||||||
|
margin: 5px 5px 0 0;
|
||||||
|
width: 35.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brushColor {
|
||||||
|
border: 1px solid #999999;
|
||||||
|
border-radius: 3px;
|
||||||
|
height: 35.5px;
|
||||||
|
margin: 6px 0 0 12px;
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#canvas, #palette {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user