Skip to content
Merged
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
108 changes: 108 additions & 0 deletions 404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page Not Found | Arjun Vinod</title>
<link rel="manifest" href="/site.webmanifest">
<link rel="apple-touch-icon" sizes="180x180" href="images/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png">
<link rel="icon" href="images/favicon.ico">
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
<link rel="stylesheet" href="css/styles.css">
<style>
.error-container {
text-align: center;
padding: 4rem 2rem;
}
.error-code {
font-size: 6rem;
font-weight: 800;
color: var(--color-accent);
margin: 0;
line-height: 1;
letter-spacing: -0.04em;
}
.error-message {
font-size: 1.25rem;
color: var(--text-secondary);
margin: 1rem 0 2rem;
}
.error-link {
display: inline-block;
padding: 0.75rem 1.5rem;
background: var(--color-accent);
color: #fff;
text-decoration: none;
border-radius: 8px;
font-weight: 600;
transition: background 0.2s ease;
}
.error-link:hover {
background: var(--color-accent-hover);
}
.copyright { text-align: center; }
.footer-email { font-size: 0.9rem; }
</style>
<script src="js/theme.js" defer></script>
<script src="js/menu.js" defer></script>
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header>
<div class="header-content">
<div class="site-logo"><a href="/">Arjun Vinod</a></div>
<div class="header-right">
<div class="menu-wrapper">
<button class="menu-button" type="button" aria-label="Menu" aria-haspopup="true" aria-expanded="false" aria-controls="menu-dropdown">
<i class="fas fa-bars"></i>
</button>
<nav class="menu-dropdown" id="menu-dropdown" role="navigation" aria-label="Primary Navigation">
<a href="/">Home</a>
<a href="/books.html">Books</a>
</nav>
</div>
<div class="theme-toggle-wrapper">
<button class="theme-toggle" aria-label="Toggle theme" role="switch" aria-checked="false">
<div class="theme-toggle-slider">
<i class="fas fa-moon"></i>
</div>
</button>
</div>
</div>
</div>
</header>
<main id="main">
<div class="container error-container">
<p class="error-code">404</p>
<p class="error-message">This page doesn't exist.</p>
<a href="/" class="error-link">Go Home</a>
</div>
</main>
<footer>
<div class="footer-content">
<div class="copyright footer-copyright">
&copy; 2026 Arjun Vinod. All rights reserved.
</div>
<div class="footer-right">
<div class="footer-links">
<a href="https://twitter.com/arjun7965" target="_blank" rel="noopener noreferrer" title="X (Twitter)" aria-label="X (Twitter)">
<i class="fab fa-x-twitter"></i><span class="footer-link-label">X</span>
</a>
<a href="https://linkedin.com/in/avinod" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn">
<i class="fab fa-linkedin"></i><span class="footer-link-label">LinkedIn</span>
</a>
<a href="https://github.com/arjun7965" target="_blank" rel="noopener noreferrer" title="GitHub" aria-label="GitHub">
<i class="fab fa-github"></i><span class="footer-link-label">GitHub</span>
</a>
</div>
<div class="footer-email">
<a href="mailto:arjun@arjunvinod.com" class="footer-email-link">arjun@arjunvinod.com</a>
</div>
</div>
</div>
</footer>
</body>
</html>
8 changes: 4 additions & 4 deletions books.html
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
</button>
<nav class="menu-dropdown" id="menu-dropdown" role="navigation" aria-label="Primary Navigation">
<a href="/">Home</a>
<a href="/books.html">Books</a>
<a href="/books.html" class="active">Books</a>
</nav>
</div>
<div class="theme-toggle-wrapper">
Expand Down Expand Up @@ -228,13 +228,13 @@ <h3 class="book-title">The Deficit Myth: Modern Monetary Theory and the Birth of
<div class="footer-right">
<div class="footer-links">
<a href="https://twitter.com/arjun7965" target="_blank" rel="noopener noreferrer" title="X (Twitter)" aria-label="X (Twitter)">
<i class="fab fa-x-twitter"></i>
<i class="fab fa-x-twitter"></i><span class="footer-link-label">X</span>
</a>
<a href="https://linkedin.com/in/avinod" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn">
<i class="fab fa-linkedin"></i>
<i class="fab fa-linkedin"></i><span class="footer-link-label">LinkedIn</span>
</a>
<a href="https://github.com/arjun7965" target="_blank" rel="noopener noreferrer" title="GitHub" aria-label="GitHub">
<i class="fab fa-github"></i>
<i class="fab fa-github"></i><span class="footer-link-label">GitHub</span>
</a>
</div>
<div class="footer-email">
Expand Down
101 changes: 69 additions & 32 deletions css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -82,50 +82,78 @@ header {
border-radius: 6px;
font-size: 1rem;
transition: all 0.2s ease;
display: flex;
display: none; /* hidden on desktop */
align-items: center;
gap: 0.5rem;
touch-action: manipulation;
}
.menu-button:hover {
.menu-button:hover {
background-color: var(--border-color);
color: var(--text-primary);
border-color: var(--text-muted);
}
/* Desktop: inline nav links */
.menu-dropdown {
position: absolute;
top: calc(100% + 0.5rem);
right: 0;
background-color: var(--container-bg);
border: 1px solid var(--border-color);
border-radius: 5px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
min-width: 150px;
z-index: 2000; /* ensure dropdown is above other header elements on mobile */
/* Visibility-based toggle for iOS reliability */
opacity: 0;
visibility: hidden;
transform: translateY(-4px);
pointer-events: none;
transition: opacity .15s ease, transform .15s ease, visibility 0s .15s;
}
.menu-dropdown.show {
display: flex;
gap: 0.25rem;
position: static;
background: none;
border: none;
box-shadow: none;
min-width: auto;
opacity: 1;
visibility: visible;
transform: translateY(0);
transform: none;
pointer-events: auto;
transition: opacity .15s ease, transform .15s ease, visibility 0s;
transition: none;
}
.menu-dropdown a {
display: block;
padding: 0.75rem 1rem;
padding: 0.5rem 0.75rem;
color: var(--text-primary);
text-decoration: none;
transition: background-color 0.3s ease, color 0.3s ease;
border-radius: 6px;
font-size: 0.95rem;
transition: background-color 0.2s ease, color 0.2s ease;
}
.menu-dropdown a:hover { background-color: var(--border-color); }
.menu-dropdown a:first-child { border-radius: 5px 5px 0 0; }
.menu-dropdown a:last-child { border-radius: 0 0 5px 5px; }
/* Active page indicator */
.menu-dropdown a.active {
color: var(--color-accent);
font-weight: 600;
background-color: rgba(20, 184, 166, 0.08);
}
/* Mobile: dropdown behavior */
@media (max-width: 480px) {
.menu-button { display: flex; }
.menu-dropdown {
display: block;
position: absolute;
top: calc(100% + 0.5rem);
right: 0;
background-color: var(--container-bg);
border: 1px solid var(--border-color);
border-radius: 5px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
min-width: 150px;
z-index: 2000;
opacity: 0;
visibility: hidden;
transform: translateY(-4px);
pointer-events: none;
transition: opacity .15s ease, transform .15s ease, visibility 0s .15s;
}
.menu-dropdown.show {
opacity: 1;
visibility: visible;
transform: translateY(0);
pointer-events: auto;
transition: opacity .15s ease, transform .15s ease, visibility 0s;
}
.menu-dropdown a { padding: 0.75rem 1rem; border-radius: 0; }
.menu-dropdown a:first-child { border-radius: 5px 5px 0 0; }
.menu-dropdown a:last-child { border-radius: 0 0 5px 5px; }
}
header h1 { margin: 0; font-size: 1.2rem; font-weight: 500; }
header h1 a { position: relative; text-decoration: none; color: inherit; }
header h1 a:after { content: ''; position: absolute; width: 100%; height: 1px; bottom: -2px; left: 0; background-color: var(--link-color); transform: scaleX(0); transform-origin: bottom right; transition: transform 0.2s ease-out; }
Expand Down Expand Up @@ -195,24 +223,33 @@ footer {
gap: 1rem;
align-items: center;
}
.footer-links a {
.footer-links a {
display: flex;
align-items: center;
justify-content: center;
width: 36px;
gap: 0.4rem;
height: 36px;
color: var(--text-muted);
padding: 0 0.6rem;
color: var(--text-muted);
border: 1px solid var(--border-color);
border-radius: 6px;
text-decoration: none;
font-size: 1rem;
transition: all 0.2s ease;
text-decoration: none;
font-size: 0.95rem;
transition: all 0.2s ease;
}
.footer-links a:hover {
.footer-links a:hover {
color: var(--color-accent);
border-color: var(--color-accent);
background: rgba(20, 184, 166, 0.1);
}
.footer-link-label {
font-size: 0.8rem;
font-weight: 500;
}
@media (max-width: 480px) {
.footer-link-label { display: none; }
.footer-links a { width: 36px; padding: 0; }
}
.footer-email a:hover { text-decoration: underline; }
/* Skip Link */
.skip-link { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
Expand Down
8 changes: 4 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
<i class="fas fa-bars"></i>
</button>
<nav class="menu-dropdown" id="menu-dropdown" role="navigation" aria-label="Primary Navigation">
<a href="/">Home</a>
<a href="/" class="active">Home</a>
<a href="/books.html">Books</a>
</nav>
</div>
Expand Down Expand Up @@ -194,13 +194,13 @@ <h4 class="rm-title"><a href="https://kcgcollege.ac.in/" target="_blank" rel="no
<div class="footer-right">
<div class="footer-links">
<a href="https://twitter.com/arjun7965" target="_blank" rel="noopener noreferrer" title="X (Twitter)" aria-label="X (Twitter)">
<i class="fab fa-x-twitter"></i>
<i class="fab fa-x-twitter"></i><span class="footer-link-label">X</span>
</a>
<a href="https://linkedin.com/in/avinod" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn">
<i class="fab fa-linkedin"></i>
<i class="fab fa-linkedin"></i><span class="footer-link-label">LinkedIn</span>
</a>
<a href="https://github.com/arjun7965" target="_blank" rel="noopener noreferrer" title="GitHub" aria-label="GitHub">
<i class="fab fa-github"></i>
<i class="fab fa-github"></i><span class="footer-link-label">GitHub</span>
</a>
</div>
<div class="footer-email">
Expand Down
Loading