Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 183 additions & 0 deletions revati-kadam-portfolio/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -1307,4 +1307,187 @@ body.light-theme .hero-social a {
}
body.light-theme .hero-social a:hover .social-icon {
color: #ffffff;
}

/* =========================
CONTACT SECTION
========================= */

.contact-container {
max-width: 1200px;
margin: auto;
}

.contact-header {
text-align: center;
margin-bottom: 60px;
}

.section-badge {
display: inline-block;
padding: 8px 16px;
border-radius: 50px;
background: rgba(59,130,246,.15);
color: var(--primary-color,#3b82f6);
font-size: .9rem;
font-weight: 600;
margin-bottom: 12px;
}

.contact-header h2 {
font-size: 2.8rem;
margin-bottom: 15px;
}

.contact-header p {
max-width: 700px;
margin: auto;
opacity: .8;
}

.contact-grid {
display: grid;
grid-template-columns: 1fr 1.4fr;
gap: 40px;
}

.contact-info {
display: flex;
flex-direction: column;
gap: 20px;
}

.contact-card {
display: flex;
gap: 16px;
align-items: center;
padding: 20px;
border-radius: 18px;
background: rgba(255,255,255,.03);
border: 1px solid rgba(255,255,255,.08);
transition: .3s;
}

.contact-card:hover {
transform: translateY(-5px);
border-color: rgba(59,130,246,.5);
}

.contact-icon {
width: 55px;
height: 55px;
border-radius: 14px;
display: grid;
place-items: center;
font-size: 1.4rem;
background: rgba(59,130,246,.15);
}

.contact-card h4 {
margin-bottom: 4px;
}

.contact-card p {
opacity: .7;
font-size: .9rem;
}

.contact-socials {
display: flex;
flex-direction: column;
gap: 12px;
margin-top: 10px;
}

.contact-socials a {
text-decoration: none;
color: inherit;
transition: .3s;
}

.contact-socials a:hover {
color: #3b82f6;
transform: translateX(6px);
}

.contact-form {
padding: 30px;
border-radius: 24px;
background: rgba(255,255,255,.03);
border: 1px solid rgba(255,255,255,.08);
display: flex;
flex-direction: column;
gap: 20px;
}

.input-group {
display: flex;
flex-direction: column;
gap: 8px;
}

.input-group label {
font-size: .95rem;
font-weight: 500;
}

.contact-form input,
.contact-form textarea {
width: 100%;
padding: 15px 18px;
border-radius: 14px;
border: 1px solid rgba(255,255,255,.08);
background: rgba(255,255,255,.02);
color: inherit;
transition: .3s;
}

.contact-form input:focus,
.contact-form textarea:focus {
outline: none;
border-color: #3b82f6;
box-shadow: 0 0 0 4px rgba(59,130,246,.15);
}

.contact-form button {
padding: 16px;
border: none;
border-radius: 14px;
cursor: pointer;
font-size: 1rem;
font-weight: 600;
color: white;
background: linear-gradient(
135deg,
#3b82f6,
#2563eb
);
transition: .3s;
}

.contact-form button:hover {
transform: translateY(-3px);
}

.contact-form button:disabled {
opacity: .7;
cursor: not-allowed;
}

#form-status {
text-align: center;
font-size: .95rem;
margin-top: 5px;
}

/* Mobile */

@media (max-width: 900px) {
.contact-grid {
grid-template-columns: 1fr;
}

.contact-header h2 {
font-size: 2.2rem;
}
}
123 changes: 108 additions & 15 deletions revati-kadam-portfolio/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -179,28 +179,121 @@ <h2>Projects</h2>
<div id="projects-container"></div>
</section>

<section id="contact" class="section">
<h2>Contact Me</h2>
<section id="contact" class="section">
<div class="contact-container">

<div class="contact-header">
<span class="section-badge">Get In Touch</span>
<h2>Let's Work Together</h2>
<p>
Have a project idea, internship opportunity, or collaboration in mind?
I'd love to hear from you.
</p>
</div>

<div class="contact-grid">

<!-- Contact Info -->
<div class="contact-info">
<p>Feel free to reach out — I'm always open to new opportunities and collaborations.</p>
<div class="contact-links">
<a href="https://github.com/revatikadam0607" target="_blank">GitHub ↗</a>
<a href="https://www.linkedin.com/in/revati-kadam-41818a32a" target="_blank">LinkedIn ↗</a>
<a href="https://leetcode.com/u/Revati0607/" target="_blank">LeetCode ↗</a>

<div class="contact-card">
<div class="contact-icon">📧</div>
<div>
<h4>Email</h4>
<p>Available for professional inquiries</p>
</div>
</div>

<div class="contact-card">
<div class="contact-icon">💼</div>
<div>
<h4>LinkedIn</h4>
<p>Let's connect professionally</p>
</div>
</div>

<div class="contact-card">
<div class="contact-icon">💻</div>
<div>
<h4>GitHub</h4>
<p>Explore my projects and repositories</p>
</div>
</div>

<div class="contact-socials">
<a href="https://github.com/revatikadam0607" target="_blank">
GitHub ↗
</a>

<a href="https://www.linkedin.com/in/revati-kadam-41818a32a" target="_blank">
LinkedIn ↗
</a>

<a href="https://leetcode.com/u/Revati0607/" target="_blank">
LeetCode ↗
</a>
</div>

</div>
<form id="contact-form">
<input type="text" name="name" placeholder="Full Name" required>
<input type="email" name="email" placeholder="Email" required>
<input type="text" name="subject" placeholder="Subject">
<textarea name="message" placeholder="Message" required></textarea>
<button type="submit">Send Message</button>

<!-- Form -->
<form id="contact-form" class="contact-form">

<div class="input-group">
<label for="name">Full Name</label>
<input
id="name"
type="text"
name="name"
placeholder="Enter your full name"
required
>
</div>

<div class="input-group">
<label for="email">Email Address</label>
<input
id="email"
type="email"
name="email"
placeholder="Enter your email address"
required
>
</div>

<div class="input-group">
<label for="subject">Subject</label>
<input
id="subject"
type="text"
name="subject"
placeholder="Enter subject"
>
</div>

<div class="input-group">
<label for="message">Message</label>
<textarea
id="message"
name="message"
rows="6"
placeholder="Write your message..."
required
></textarea>
</div>

<button type="submit" id="submitBtn">
<span>Send Message</span>
</button>

<div id="form-status"></div>

</form>

</div>
</section>

</div>
</div>
</section>

<div class="settings" onclick="toggleSettings()">
<span class="settings-icon">⚙️</span>
Expand Down
34 changes: 34 additions & 0 deletions revati-kadam-portfolio/js/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,12 @@ fetch("data/skills.json")
}
);

emailInput.addEventListener("input", () => {
if (!emailInput.validity.valid) {
emailError.textContent = "Enter a valid email address";
}
});

fetch("data/projects.json")
.then(res => res.json())
.then(data => {
Expand Down Expand Up @@ -255,4 +261,32 @@ document.getElementById("contact-form").addEventListener("submit", function (e)
btn.textContent = "Send Message";
btn.disabled = false;
});
});
submitBtn.innerHTML = "Sending...";
submitBtn.disabled = true;

const form = document.getElementById("contact-form");
const status = document.getElementById("form-status");
const submitBtn = document.getElementById("submitBtn");

form.addEventListener("submit", async (e) => {
e.preventDefault();

submitBtn.disabled = true;
submitBtn.innerHTML = "Sending...";

try {
// EmailJS logic here

status.textContent = "✅ Message sent successfully!";
status.style.color = "#22c55e";

form.reset();
} catch (error) {
status.textContent = "❌ Failed to send message.";
status.style.color = "#ef4444";
}

submitBtn.disabled = false;
submitBtn.innerHTML = "Send Message";
});