* 🚀 refactor: simplify deployment process in workflow file * 🚀 chore: add IMAGE_NAME to GITHUB_ENV for deployment workflow * ✨ chore: simplify deployment logging in workflow file * 🚀 fix: correct container name in deployment script logic * 🚀 refactor: rename job and streamline deployment steps * Update README.md * ✨ fix: prevent multiple form submissions in Contact component * ✨ feat: honeypot and timestamp checks to form submission * ✨ refactor: simplify contact form and improve UI elements * ✨ feat: add responsive masonry layout for projects display * ✨ style: Update project title size and improve layout visibility
217 lines
4.0 KiB
CSS
217 lines
4.0 KiB
CSS
/* app/globals.css */
|
|
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
position: relative;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.markdown h1 {
|
|
font-size: 2.5rem;
|
|
font-weight: bold;
|
|
margin-top: 1.5rem;
|
|
margin-bottom: 1rem;
|
|
color: #333;
|
|
}
|
|
|
|
.markdown h2 {
|
|
font-size: 2rem;
|
|
font-weight: bold;
|
|
margin-top: 1.25rem;
|
|
margin-bottom: 0.75rem;
|
|
color: #444;
|
|
}
|
|
|
|
.markdown h3 {
|
|
font-size: 1.75rem;
|
|
font-weight: bold;
|
|
margin-top: 1rem;
|
|
margin-bottom: 0.5rem;
|
|
color: #555;
|
|
}
|
|
|
|
.markdown p {
|
|
margin-top: 0.5rem;
|
|
margin-bottom: 0.5rem;
|
|
line-height: 1.6;
|
|
color: #666;
|
|
}
|
|
|
|
.markdown img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
margin-top: 1rem;
|
|
margin-bottom: 1rem;
|
|
border-radius: 8px;
|
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.markdown ul {
|
|
list-style-type: disc;
|
|
margin-left: 1.5rem;
|
|
margin-top: 0.5rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.markdown ol {
|
|
list-style-type: decimal;
|
|
margin-left: 1.5rem;
|
|
margin-top: 0.5rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.markdown blockquote {
|
|
border-left: 4px solid #ccc;
|
|
color: #777;
|
|
margin-top: 1rem;
|
|
margin-bottom: 1rem;
|
|
font-style: italic;
|
|
background-color: #f9f9f9;
|
|
padding: 1rem;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.bg-radiant-animated {
|
|
background: radial-gradient(circle at 20% 20%, #ff8185, transparent 25%),
|
|
radial-gradient(circle at 80% 80%, #ffaa91, transparent 25%),
|
|
radial-gradient(circle at 50% 50%, #fb7fd9, transparent 25%),
|
|
radial-gradient(circle at 30% 70%, #9b6fff, transparent 25%),
|
|
radial-gradient(circle at 70% 30%, #ff8edf, transparent 25%);
|
|
background-size: 200% 200%;
|
|
animation: backgroundAnimation 60s ease infinite alternate;
|
|
}
|
|
|
|
.bg-radiant {
|
|
background: radial-gradient(circle at 20% 20%, #ff8185, transparent 25%),
|
|
radial-gradient(circle at 80% 80%, #ffaa91, transparent 25%),
|
|
radial-gradient(circle at 50% 50%, #fb7fd9, transparent 25%),
|
|
radial-gradient(circle at 30% 70%, #9b6fff, transparent 25%),
|
|
radial-gradient(circle at 70% 30%, #ff8edf, transparent 25%);
|
|
background-size: cover;
|
|
}
|
|
|
|
@keyframes backgroundAnimation {
|
|
0% {
|
|
background-position: 0 0;
|
|
}
|
|
100% {
|
|
background-position: 100% 100%;
|
|
}
|
|
}
|
|
|
|
.min-h-screen {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.flex {
|
|
display: flex;
|
|
}
|
|
|
|
.flex-col {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.flex-grow {
|
|
flex-grow: 1;
|
|
}
|
|
|
|
.react-cookie-consent .content-wrapper {
|
|
flex: 1;
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.react-cookie-consent .button-wrapper {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.react-cookie-consent .button-wrapper {
|
|
flex-direction: row;
|
|
}
|
|
}
|
|
|
|
.transition-underline {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
.transition-underline::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: -2px;
|
|
width: 100%;
|
|
height: 2px;
|
|
background-color: currentColor;
|
|
opacity: 0;
|
|
transform: translateY(4px);
|
|
transition: opacity 0.3s ease, transform 0.3s ease;
|
|
}
|
|
|
|
.transition-underline:hover::after {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.fade-in {
|
|
opacity: 1 !important;
|
|
transition: opacity 0.5s ease;
|
|
}
|
|
|
|
.fade-out {
|
|
opacity: 0;
|
|
transition: opacity 0.5s ease;
|
|
}
|
|
|
|
@keyframes flyIn {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.animate-fly-in {
|
|
animation: flyIn 1s ease-in-out;
|
|
}
|
|
|
|
@keyframes fadeOut {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.animate-fade-out {
|
|
animation: fadeOut 3s forwards;
|
|
}
|
|
|
|
.project-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
background: rgba(255, 255, 255, 0.45);
|
|
border-radius: 16px;
|
|
padding: 16px;
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
transition: transform 0.3s ease;
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.project-card:hover {
|
|
transform: translateY(-5px);
|
|
}
|