Calculator Tools Calculator Tools
Create

Drawing App

Jan 5, 2024

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>