{/* Single route for our one-page app */}
} />
);
}
export default App;
App.css ##
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap');
body {
font-family: 'Montserrat', sans-serif;
margin: 0;
padding: 0;
min-height: 100vh;
background: linear-gradient(135deg, #f8f0ff 0%, #fff0f5 100%);
}
.App {
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
padding: 20px;
}
button {
cursor: pointer;
border: none;
border-radius: 50%;
width: 80px;
height: 80px;
font-size: 1rem;
font-weight: bold;
transition: all 0.3s ease;
}
button:focus {
outline: none;
}
.recording {
animation: throb 1.5s infinite;
}
@keyframes throb {
0% { transform: scale(1); }
50% { transform: scale(1.1); }
100% { transform: scale(1); }
}
textarea {
width: 90%;
max-width: 500px;
margin: 20px 0;
padding: 15px;
border: 2px solid #e0e0e0;
border-radius: 10px;
font-family: 'Montserrat', sans-serif;
resize: vertical;
min-height: 150px;
}
/* Mobile-first design considerations */
@media (max-width: 768px) {
button {
width: 70px;
height: 70px;
}
textarea {
width: 85%;
min-height: 120px;
}
}