From 56fcb27fbf905610b8f69f064f6a7a48843bb0fc Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Mon, 2 Feb 2026 14:03:17 -0800 Subject: [PATCH] feat: socials --- site/index.html | 182 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) diff --git a/site/index.html b/site/index.html index 515e3d7..abd9699 100644 --- a/site/index.html +++ b/site/index.html @@ -447,6 +447,133 @@ font-style: normal; } + /* ============================================ + SOCIAL LINKS + ============================================ */ + .social-links-section { + margin: 3rem 0; + text-align: center; + } + + .social-links-container { + display: flex; + justify-content: center; + align-items: center; + gap: 2rem; + padding: 2rem 1rem; + background: linear-gradient(135deg, var(--witch-lavender) 0%, var(--witch-moon) 100%); + border-radius: 20px; + box-shadow: 0 4px 20px rgba(168, 87, 126, 0.1); + flex-wrap: wrap; + } + + .social-link { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; + padding: 1rem; + text-decoration: none; + color: var(--witch-purple); + transition: all 0.3s ease; + position: relative; + } + + .social-link i { + font-size: 2.5rem; + transition: transform 0.3s ease, color 0.3s ease; + } + + .social-name { + font-size: 0.9rem; + font-weight: 600; + opacity: 0.8; + transition: opacity 0.3s ease; + } + + .social-link::before { + content: ''; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 0; + height: 0; + background: radial-gradient(circle, var(--witch-mauve) 0%, transparent 70%); + border-radius: 50%; + opacity: 0; + transition: all 0.3s ease; + z-index: -1; + } + + .social-link:hover::before { + width: 80px; + height: 80px; + opacity: 0.2; + } + + .social-link:hover i { + transform: translateY(-5px) scale(1.1); + color: var(--witch-rose); + } + + .social-link:hover .social-name { + opacity: 1; + color: var(--witch-rose); + } + + .social-link:focus { + outline: 2px solid var(--witch-plum); + outline-offset: 4px; + border-radius: 8px; + } + + /* Screen reader only text */ + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; + } + + @media (max-width: 768px) { + .social-links-container { + gap: 1.5rem; + padding: 1.5rem 1rem; + } + + .social-link { + padding: 0.75rem; + } + + .social-link i { + font-size: 2rem; + } + + .social-name { + font-size: 0.8rem; + } + } + + @media (max-width: 480px) { + .social-links-container { + gap: 1rem; + } + + .social-link { + padding: 0.5rem; + } + + .social-link i { + font-size: 1.75rem; + } + } + /* ============================================ ANIMATIONS ============================================ */ @@ -461,10 +588,36 @@ } } + @keyframes socialBounce { + 0%, 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-10px); + } + } + .fade-in { animation: fadeIn 0.6s ease-out; } + /* Stagger animation for social links */ + .social-link { + opacity: 0; + animation: fadeIn 0.6s ease-out forwards; + } + + .social-link:nth-child(1) { animation-delay: 0.1s; } + .social-link:nth-child(2) { animation-delay: 0.2s; } + .social-link:nth-child(3) { animation-delay: 0.3s; } + .social-link:nth-child(4) { animation-delay: 0.4s; } + .social-link:nth-child(5) { animation-delay: 0.5s; } + + /* Fun bounce on hover */ + .social-link:hover i { + animation: socialBounce 0.5s ease-out; + } + /* ============================================ DARK MODE ============================================ */ @@ -720,6 +873,35 @@

+ + +

Get to Know Me