Drawing App
About this app
A fun and interactive drawing app where you can create amazing artworks.
Drawing App Credits Created by Renovato, GalinhaMagricela, MaiconJexon, and JunyTony Editor by Renovato Close
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Drawing App</title>
<meta name="description" content="A fun and interactive drawing app where you can create amazing artworks.">
<meta name="keywords" content="drawing, art, creativity, colors, painting">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
// Variables
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const colors = document.getElementsByClassName("color");
const eraseBtn = document.getElementById("erase-btn");
const drawBtn = document.getElementById("draw-btn");
const clearBtn = document.getElementById("clear-btn");
const finishBtn = document.getElementById("finish-btn");
const creditsBtn = document.getElementById("credits-btn");
const creditsScreen = document.getElementById("credits-screen");
const closeCreditsBtn = document.getElementById("close-credits-btn");
let isDrawing = false;
let currentColor = "#000000";
let currentSize = 5;
// Event Listeners
canvas.addEventListener("mousedown", startDrawing);
canvas.addEventListener("mousemove", draw);
canvas.addEventListener("mouseup", stopDrawing);
eraseBtn.addEventListener("click", erase);
drawBtn.addEventListener("click", drawMode);
clearBtn.addEventListener("click", clearCanvas);
finishBtn.addEventListener("click", showCredits);
creditsBtn.addEventListener("click", showCredits);
closeCreditsBtn.addEventListener("click", closeCredits);
Array.from(colors).forEach(color => {
color.addEventListener("click", changeColor);
});
// Functions
function startDrawing(e) {
isDrawing = true;
draw(e);
}
function draw(e) {
if (!isDrawing) return;
ctx.beginPath();
ctx.moveTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop);
ctx.lineTo(e.clientX - canvas.offsetLeft + 1, e.clientY - canvas.offsetTop + 1);
ctx.strokeStyle = currentColor;
ctx.lineWidth = currentSize;
ctx.stroke();
}
function stopDrawing() {
isDrawing = false;
}
function erase() {
currentColor = "#ffffff";
}
function drawMode() {
currentColor = "#000000";
}
function changeColor(e) {
currentColor = e.target.getAttribute("data-color");
}
function clearCanvas() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function showCredits() {
creditsScreen.classList.add("show");
}
function closeCredits() {
creditsScreen.classList.remove("show");
}
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
/* App CSS Goes Here */
body {
font-family: 'Roboto', sans-serif;
background-color: #f5f5f5;
}
#main-container {
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
}
#canvas-container {
background-color: #ffffff;
border: 1px solid #ddd;
border-radius: 5px;
margin-bottom: 20px;
}
#canvas {
cursor: crosshair;
}
#tools-container {
display: flex;
justify-content: center;
gap: 10px;
margin-bottom: 20px;
}
.color {
width: 30px;
height: 30px;
border-radius: 50%;
cursor: pointer;
}
#erase-btn {
background-color: #ffffff;
border: 1px solid #ccc;
color: #000000;
}
#draw-btn {
background-color: #000000;
color: #ffffff;
}
#clear-btn {
background-color: #ff0000;
color: #ffffff;
}
#finish-btn {
background-color: #00ff00;
color: #ffffff;
}
#credits-screen {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
z-index: 999;
}
#credits-modal {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 300px;
height: 200px;
background-color: #ffffff;
border-radius: 5px;
padding: 20px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
#credits-modal h2 {
margin-bottom: 10px;
}
#close-credits-btn {
position: absolute;
top: 10px;
right: 10px;
color: #999999;
cursor: pointer;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<div id="canvas-container">
<canvas id="canvas" width="800" height="600"></canvas>
</div>
<div id="tools-container">
<div class="color" data-color="#ff0000"></div>
<div class="color" data-color="#00ff00"></div>
<div class="color" data-color="#0000ff"></div>
<div class="color" data-color="#ffff00"></div>
<div class="color" data-color="#ff00ff"></div>
<div class="color" data-color="#00ffff"></div>
<div id="erase-btn" class="color"><i class="fa fa-eraser"></i></div>
<div id="draw-btn" class="color"><i class="fa fa-pencil"></i></div>
<div id="clear-btn" class="color"><i class="fa fa-trash"></i></div>
<div id="finish-btn" class="color"><i class="fa fa-check"></i></div>
</div>
<div id="credits-screen">
<div id="credits-modal">
<h2>Credits</h2>
<p>Created by Renovato, GalinhaMagricela, MaiconJexon, and JunyTony</p>
<p>Editor by Renovato</p>
<button id="close-credits-btn">Close</button>
</div>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!