diff --git a/astro.config.mjs b/astro.config.mjs index 6f54cee..be66ddb 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -3,5 +3,5 @@ import { defineConfig } from 'astro/config'; // https://astro.build/config export default defineConfig({ - // Pure Astro configuration - no additional integrations needed + compressHTML: true, }); \ No newline at end of file diff --git a/src/components/App.astro b/src/components/App.astro index d2b4739..9d89ef1 100644 --- a/src/components/App.astro +++ b/src/components/App.astro @@ -6,11 +6,12 @@ import SocialShare from './SocialShare.astro'; ---
+
-

+

Make your first
- + open source contribution
in 5 minutes @@ -23,30 +24,81 @@ import SocialShare from './SocialShare.astro'; diff --git a/src/components/ProjectCard.astro b/src/components/ProjectCard.astro index b765d70..f003e80 100644 --- a/src/components/ProjectCard.astro +++ b/src/components/ProjectCard.astro @@ -23,6 +23,8 @@ const { projectLink, logoLink, name, description, tags = [], loadIssues = false onerror="this.src='/default.png'" width="60" height="60" + loading="lazy" + decoding="async" />

{name}

@@ -60,6 +62,20 @@ const { projectLink, logoLink, name, description, tags = [], loadIssues = false min-height: 200px; margin-bottom: 1.5rem; position: relative; + content-visibility: auto; + contain-intrinsic-size: 1px 200px; + animation: cardAppear 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) backwards; + } + + @keyframes cardAppear { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } } .Card-Container::before { diff --git a/src/components/ProjectList.astro b/src/components/ProjectList.astro index 8a8806b..0994abb 100644 --- a/src/components/ProjectList.astro +++ b/src/components/ProjectList.astro @@ -152,7 +152,8 @@ const allTags = [...new Set(projectList.flatMap(project => project.tags || []))] #search:focus { outline: none; border-color: #667eea; - box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.2); + box-shadow: 0 0 20px rgba(102, 126, 234, 0.4); + background: rgba(255, 255, 255, 0.15); } #tag-selector { @@ -170,7 +171,8 @@ const allTags = [...new Set(projectList.flatMap(project => project.tags || []))] #tag-selector:focus { outline: none; border-color: #667eea; - box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.2); + box-shadow: 0 0 20px rgba(102, 126, 234, 0.4); + background: rgba(255, 255, 255, 0.15); } #tag-selector option { diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index e5913ea..7eb8fa6 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -24,6 +24,10 @@ const { + + + + diff --git a/src/pages/contribute-to-opensource.astro b/src/pages/contribute-to-opensource.astro index 64d7449..1d8b78d 100644 --- a/src/pages/contribute-to-opensource.astro +++ b/src/pages/contribute-to-opensource.astro @@ -6,7 +6,10 @@ - + + + + How to Contribute to Open Source: A Complete Guide for Beginners @@ -70,8 +73,8 @@