arifa-batool's picture
End-to-end MNIST handwritten digit recognition using a CNN, with a Flask web app featuring real-time canvas-based predictions.
f7da636 verified
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: "Segoe UI", system-ui, sans-serif;
background: #0f1117;
color: #e6e6e6;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.app {
background: #161a22;
border-radius: 16px;
padding: 30px 40px;
width: 900px;
max-width: 95%;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
}
header {
text-align: center;
margin-bottom: 30px;
}
header h1 {
margin: 0;
font-size: 2.4rem;
color: #ffffff;
}
header p {
color: #9aa4b2;
margin-top: 8px;
}
main {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
}
.canvas-box {
display: flex;
flex-direction: column;
align-items: center;
}
canvas {
background: black;
border-radius: 12px;
border: 2px solid #2a2f3a;
cursor: crosshair;
}
.controls {
margin-top: 20px;
display: flex;
gap: 15px;
}
button {
background: #2563eb;
color: white;
border: none;
padding: 10px 22px;
border-radius: 10px;
font-size: 0.95rem;
cursor: pointer;
transition: background 0.2s ease;
}
button:hover {
background: #1d4ed8;
}
#clear-btn {
background: #374151;
}
#clear-btn:hover {
background: #4b5563;
}
.result-box {
background: #0f1117;
border-radius: 14px;
padding: 30px;
text-align: center;
border: 1px solid #2a2f3a;
}
.result-box h2 {
margin-top: 0;
color: #9aa4b2;
}
#predicted-digit {
font-size: 5rem;
margin-top: 20px;
color: #ffffff;
font-weight: bold;
}