A modern, responsive website built with Next.js 14 and TailwindCSS for the CloverMint Nonprofit organization.
clovermint-nonprofit/
โโโ app/ # Next.js 14 app directory
โ โโโ blog/ # Blog section
โ โโโ contact/ # Contact page
โ โโโ partner/ # Partners section
โ โโโ team/ # Team section
โ โโโ globals.css # Global styles
โ โโโ layout.tsx # Root layout
โ โโโ page.tsx # Home page
โโโ components/ # Reusable components
โ โโโ Logo.client.tsx # Logo component
โ โโโ Nav.client.tsx # Navigation component
โ โโโ card.tsx # Card component
โโโ public/ # Static assets
โโโ [Configuration files] # Various config files
git clone https://github.com/CASANOVA660/technical-test-nextjs-tailwind.git
npm install
npm run dev
npm run dev
- Run development servernpm run build
- Build production versionnpm start
- Start production servernpm run lint
- Run lintingnext.config.js
- Next.js configurationtailwind.config.js
- TailwindCSS configurationpostcss.config.js
- PostCSS configurationtsconfig.json
- TypeScript configurationnext
: ^14.0.4react
: ^18.2.0react-dom
: ^18.2.0lucide-react
: ^0.473.0typescript
: ^5.3.3tailwindcss
: ^3.4.0postcss
: ^8.4.32autoprefixer
: ^10.4.16The website features a sophisticated navigation system that dynamically adapts to the page content:
const observerOptions = {
threshold: [0, 0.05],
rootMargin: '-1px 0px 0px 0px'
};
const observerCallback: IntersectionObserverCallback = (entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const color = entry.target.getAttribute('data-logo-color');
if (color) {
setLogoColor(color); // Example state setter for logo color
}
}
});
};
const observer = new IntersectionObserver(observerCallback, observerOptions);
document.querySelectorAll('.section').forEach(section => observer.observe(section));
The navigation adapts to different sections with specific color combinations:
Special color handling for specific routes:
Current Version: 0.1.0