Skip to content

Commit

Permalink
Merge pull request #9 from hoangsonww/main-deployment-branch
Browse files Browse the repository at this point in the history
Updated Personal Information & Even More Effects
  • Loading branch information
hoangsonww authored Oct 4, 2024
2 parents 4a73ff0 + 45f772f commit 122ff49
Show file tree
Hide file tree
Showing 7 changed files with 331 additions and 179 deletions.
74 changes: 69 additions & 5 deletions 404.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,26 @@
<title>404 Not Found - Son Nguyen Hoang</title>
<link rel="stylesheet" href="./packages/css/styles.css" />
<meta name="theme-color" content="#56c9e0" />
<meta name="description" content="Sorry, the page you're looking for doesn't exist." />
<meta name="keywords" content="404, not found, page, error" />
<meta name="author" content="Son Nguyen Hoang" />
<meta name="robots" content="noindex, nofollow" />
<link rel="icon" href="https://sonnguyenhoang.com/utils/favicon.ico" />
<link rel="apple-touch-icon" href="https://sonnguyenhoang.com/utils/favicon.ico" />
<link rel="canonical" href="https://sonnguyenhoang.com/404.html" />
<meta property="og:title" content="404 Not Found - Son Nguyen Hoang" />
<meta property="og:description" content="Sorry, the page you're looking for doesn't exist." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://sonnguyenhoang.com/404.html" />
<meta property="og:image" content="https://sonnguyenhoang.com/utils/favicon.ico" />
<meta property="og:site_name" content="Son Nguyen Hoang" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="404 Not Found - Son Nguyen Hoang" />
<meta name="twitter:description" content="Sorry, the page you're looking for doesn't exist." />
<meta name="twitter:image" content="https://sonnguyenhoang.com/utils/favicon.ico" />
<meta name="twitter:image:alt" content="Son Nguyen Hoang" />
<link rel="manifest" href="https://sonnguyenhoang.com/manifest.json" />
<style>
.not-found-container {
display: flex;
Expand All @@ -23,7 +43,7 @@

.not-found-container p {
font-size: var(--h2-font-size);
color: var(--text-color-light);
color: rgb(73, 81, 83);
margin-bottom: var(--mb-1-5);
}

Expand All @@ -40,6 +60,19 @@
.not-found-container a:hover {
background-color: var(--first-color-alt);
}

.scroll-animation {
opacity: 0;
transform: translateY(50px);
transition:
opacity 0.8s ease-out,
transform 0.8s ease-out;
}

.scroll-in-view {
opacity: 1;
transform: translateY(0);
}
</style>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-69TKSZGS7T"></script>
<script>
Expand All @@ -53,10 +86,41 @@
</script>
</head>
<body>
<div class="not-found-container">
<h1>404</h1>
<p>Sorry, the page you're looking for doesn't exist.</p>
<a href="index.html">Go back to home</a>
<div class="not-found-container scroll-animation">
<h1>404 Not Found</h1>
<p>Oops, you caught me! The page you're looking for doesn't exist.</p>
<a href="https://sonnguyenhoang.com">Back to Portfolio</a>
</div>
</body>
<script>
document.addEventListener('DOMContentLoaded', function () {
const observerOptions = {
root: null,
rootMargin: '0px',
threshold: 0.1,
};

const elementsToAnimate = document.querySelectorAll('.scroll-animation');

const observer = new IntersectionObserver(function (entries, observer) {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('scroll-in-view');
observer.unobserve(entry.target);
}
});
}, observerOptions);

elementsToAnimate.forEach(element => {
observer.observe(element);
});
});

const darkTheme = 'dark-theme';
const selectedTheme = localStorage.getItem('selected-theme');

if (selectedTheme) {
document.body.classList[selectedTheme === 'dark' ? 'add' : 'remove'](darkTheme);
}
</script>
</html>
Loading

0 comments on commit 122ff49

Please sign in to comment.