Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungMCP Tool Poisoning: A Name Allowlist Is Not Enough(22.09.2026 um 18:56 Uhr)
Sichere ProgrammierungGiggleGigs: A Job Board That Actually Uses AI Where It Helps(22.09.2026 um 18:57 Uhr)
Sichere ProgrammierungThe Bootstrapped SaaS Flywheel: How to Hit $10k MRR Without VC Capital(22.09.2026 um 19:05 Uhr)
Sichere ProgrammierungThe container was running software nobody built(22.09.2026 um 19:08 Uhr)
Sichere ProgrammierungYour Terminal Tasks, Everywhere: Introducing Tasku Cloud(22.09.2026 um 19:08 Uhr)
Sichere ProgrammierungMCP Tool Poisoning: A Name Allowlist Is Not Enough(22.09.2026 um 18:56 Uhr)
Sichere ProgrammierungGiggleGigs: A Job Board That Actually Uses AI Where It Helps(22.09.2026 um 18:57 Uhr)
Sichere ProgrammierungThe Bootstrapped SaaS Flywheel: How to Hit $10k MRR Without VC Capital(22.09.2026 um 19:05 Uhr)
Sichere ProgrammierungThe container was running software nobody built(22.09.2026 um 19:08 Uhr)
Sichere ProgrammierungYour Terminal Tasks, Everywhere: Introducing Tasku Cloud(22.09.2026 um 19:08 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Creating Blog Tutorial Using Next.JS 15 & TailwindCSS 4.0 (Part #4)

Welcome back, blog architects! With our project initialized, configured, and structured, it’s time to roll up our sleeves and code the beating heart of our Next.js 15.x.x and Tailwind CSS 4.x.x blog. In this section, we’re diving into the "…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Welcome back, blog architects! With our project initialized, configured, and structured, it’s time to roll up our sleeves and code the beating heart of our Next.js 15.x.x and Tailwind CSS 4.x.x blog. In this section, we’re diving into the "Core Layout Components"—the foundational pieces that define our app’s shell.



Inspired by the bold, user-friendly vibe of Modern web design, we’ll build a responsive, visually stunning blog with modern twists like blurry navbars, dynamic footers, and accessibility-first design. As a senior systems analyst, I’m here to deliver code that’s clean, heavily commented, and packed with cutting-edge techniques—perfect for newbies and pros alike. Let’s start with the App Shell components: BlurNavbar, Footer, Layout, Container, and SkipNav.






Step 1: App Shell, The Blog’s Structural Backbone



The App Shell is the scaffolding that holds our blog together, ensuring consistency, accessibility, and a polished UX across every page. These components leverage Tailwind CSS 4.x.x’s latest utilities—like glassmorphism and gradient transitions—and Next.js 15.x.x’s App Router for seamless integration. Let’s break down each piece with code you can copy, tweak, and love.






- BlurNavbar: A Stunning, Scroll-Aware Navbar with Blur Effect



The BlurNavbar is our blog’s crown jewel—a responsive, sticky navbar with a frosted glass effect that shifts opacity on scroll. Think contemporary’s bold header, but with a modern twist.




// src/components/BlurNavbar.tsx
'use client'; // Client-side for scroll handling

import Link from 'next/link';
import { useState, useEffect } from 'react';
import { useTheme } from 'next-themes';
import { FaBars, FaTimes } from 'react-icons/fa'; // Font icons for hamburger menu

export default function BlurNavbar() {
const { theme, setTheme } = useTheme(); // Dark mode toggle
const [isScrolled, setIsScrolled] = useState(false); // Track scroll position
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); // Mobile menu state

// Handle scroll effect
useEffect(() => {
const handleScroll = () => {
setIsScrolled(window.scrollY > 50); // Opaque after 50px scroll
};
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll); // Cleanup
}, []);

return (
<nav
className={`fixed top-0 left-0 w-full z-50 transition-colors duration-300 ${
isScrolled ? 'backdrop-blur-md bg-white/80 dark:bg-gray-900/80' : 'bg-transparent'
}`}
role="banner"
aria-label="Main navigation"
>
{/* Logo */}
<div className="container mx-auto px-4 py-3 flex justify-between items-center">
<Link href="/" className="text-xl font-bold text-black dark:text-white">
My Blog
</Link>

{/* Desktop Menu */}
<ul className="hidden md:flex space-x-4">
<li>
<Link href="/blog" className="hover:underline underline-offset-4">
Blog
</Link>
</li>
<li>
<Link href="/about" className="hover:underline underline-offset-4">
About
</Link>
</li>
<li>
<Link href="/search" className="hover:underline underline-offset-4">
Search
</Link>
</li>
</ul>

{/* Theme Toggle */}
<button
onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}
className="p-2 rounded-full bg-white/20 text-white hover:bg-white/30 transition-colors duration-200"
aria-label="Toggle dark mode"
>
{theme === 'dark' ? '☀️' : '🌙'}
</button>

{/* Mobile Menu Toggle */}
<button
onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}
aria-label="Toggle mobile menu"
>
{isMobileMenuOpen ? <FaTimes /> : <FaBars />}
</button>
</div>

{/* Mobile Menu */}
{isMobileMenuOpen && (
<ul className="md:hidden bg-white dark:bg-gray-900 p-4 space-y-2">
<li>
<Link href="/blog" className="block hover:underline underline-offset-4">
Blog
</Link>
</li>
<li>
<Link href="/about" className="block hover:underline underline-offset-4">
About
</Link>
</li>
<li>
<Link href="/search" className="block hover:underline underline-offset-4">
Search
</Link>
</li>
<li>
<button
onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}
className="text-white"
>
{theme === 'dark' ? 'Light Mode' : 'Dark Mode'}
</button>
</li>
</ul>
)}
</nav>
);
}









Why It’s Awesome





  • Blur Effect: backdrop-blur-md creates a frosted glass look, a Tailwind 4.x.x gem.


  • Scroll-Aware: The navbar shifts from transparent to a gradient background on scroll, using useEffect for smooth transitions.


  • Responsive: Hidden desktop menu on mobile, replaced with an animated hamburger toggle (FaBars/FaTimes from react-icons).


  • Hover Effects: Links get an underline with underline-offset-4 on hover—a subtle, modern touch.


  • Accessibility: role="banner" and aria-label ensure screen reader compatibility.









- Footer: A Multi-Column Masterpiece



Our Footer is a multi-column beauty with social links, a newsletter signup, and a sitemap—perfect for modern design-style engagement.




// src/components/Footer.tsx
import Link from 'next/link';
import { FaTwitter, FaFacebook, FaLinkedin } from 'react-icons/fa';

export default function Footer() {
return (
<footer className="bg-gradient-to-t from-gray-900 to-gray-800 text-white py-12">
<div className="container mx-auto px-4 grid grid-cols-1 md:grid-cols-4 gap-8">
{/* About Section */}
<div>
<h3 className="text-lg font-bold">About My Blog</h3>
<p className="mt-2">
A modern blog built with Next.js 15 and Tailwind CSS 4, delivering cutting-edge content.
</p>
</div>

{/* Sitemap */}
<div>
<h3 className="text-lg font-bold">Sitemap</h3>
<ul className="mt-2 space-y-2">
<li>
<Link href="/" className="hover:underline">
Home
</Link>
</li>
<li>
<Link href="/blog" className="hover:underline">
Blog
</Link>
</li>
<li>
<Link href="/about" className="hover:underline">
About
</Link>
</li>
<li>
<Link href="/search" className="hover:underline">
Search
</Link>
</li>
</ul>
</div>

{/* Social Links */}
<div>
<h3 className="text-lg font-bold">Follow Us</h3>
<div className="flex space-x-4 mt-2">
<Link href="#" className="hover:text-blue-400">
<FaTwitter />
</Link>
<Link href="#" className="hover:text-blue-600">
<FaFacebook />
</Link>
<Link href="#" className="hover:text-blue-700">
<FaLinkedin />
</Link>
</div>
</div>

{/* Newsletter Signup */}
<div>
<h3 className="text-lg font-bold">Newsletter</h3>
<form className="mt-2">
<input
type="email"
placeholder="Enter your email"
className="w-full p-2 bg-gray-700 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
/>
<button
type="submit"
className="mt-2 w-full bg-blue-600 text-white py-2 rounded-md hover:bg-blue-700 transition-colors"
>
Subscribe
</button>
</form>
</div>
</div>

{/* Copyright */}
<div className="mt-8 text-center text-sm">
© {new Date().getFullYear()} My Blog. All rights reserved.
</div>
</footer>
);
}









Highlights





  • Multi-Column: A responsive grid layout shifts from one column on mobile to four on desktop.


  • Gradient: bg-gradient-to-t ties into our theme for a cohesive look.


  • Social Icons: react-icons adds flair with hover transitions.


  • Newsletter: A simple form (extendable with backend logic) styled with Tailwind’s focus states.


  • SEO: External links use rel="noopener noreferrer" for security.









- Layout: The Universal Wrapper



The Layout component ensures every page has a consistent structure, integrating our navbar and footer.




// src/components/Layout.tsx
import { ThemeProvider } from 'next-themes';
import BlurNavbar from './BlurNavbar';
import Footer from './Footer';
import SkipNav from './SkipNav';
import { NextSeo } from 'next-seo';

export default function Layout({ children, title, description }: { children: React.ReactNode; title?: string; description?: string }) {
// Default SEO props, overrideable by pages
const defaultTitle = 'My Blog';
const defaultDescription = 'A modern blog built with Next.js 15 and Tailwind CSS 4';

return (
<ThemeProvider attribute="class">
<NextSeo
title={title || defaultTitle}
description={description || defaultDescription}
/>
<SkipNav />
<BlurNavbar />
<main>{children}</main>
<Footer />
</ThemeProvider>
);
}









Key Features





  • SEO: NextSeo injects dynamic meta tags, configurable per page.


  • Dark Mode: ThemeProvider ensures theme consistency across components.


  • Accessibility: Links to SkipNav for keyboard navigation.


  • Flexibility: Props allow page-specific titles and descriptions.









- Container: Responsive Content Wrapper



The Container keeps our content centered and constrained, with responsive padding.




// src/components/Container.tsx
export default function Container({ children, className = '' }: { children: React.ReactNode; className?: string }) {
return (
<div className={`container mx-auto px-4 sm:px-6 lg:px-8 ${className}`}>
{children}
</div>
);
}









Why It Works





  • Responsive: Tailwind’s sm: and lg: prefixes adjust padding based on screen size.


  • Max-Width: max-w-7xl (1280px) mimics modern design’s readable content width.


  • Customizable: Optional className prop for extra styling.









- SkipNav: Accessibility First



The SkipNav component boosts accessibility by letting users bypass the navbar.




// src/components/SkipNav.tsx
export default function SkipNav() {
return (
<a
href="#main"
className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:bg-blue-600 focus:text-white focus:py-2 focus:px-4 focus:rounded-md"
>
Skip to main content
</a>
);
}









Accessibility Win





  • Screen Reader: sr-only hides it visually but keeps it accessible.


  • Focus Styling: Becomes visible and styled on focus, with a gradient background for flair.









Step 2: Tying It Together



To use these components, update src/app/layout.tsx:




// src/app/layout.tsx
import Layout from '@/components/Layout';

export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
<Layout>{children}</Layout>
</body>
</html>
);
}






And test with src/app/page.tsx:




// src/app/page.tsx
import Container from '@/components/Container';

export default function Home() {
return (
<Container>
<h1>Welcome to My Blog</h1>
<p>Built with Next.js 15 and Tailwind CSS 4.</p>
</Container>
);
}






Run npm run dev --turbopack and visit http://localhost:3000. You’ll see a stunning navbar, centered content, and a rich footer—all responsive and SEO-ready.









TLDR, Core Layout Components



These App Shell components set the stage for a blog that’s as beautiful as it is functional. With a blurry, scroll-aware navbar, a feature-packed footer, and accessibility baked in, we’re channeling modern web’s energy while pushing the envelope with Tailwind 4.x.x and Next.js 15.x.x. Next, we’ll tackle Page Layouts—stay tuned for hero sections, grids, and more!



This markdown passage is detailed, creative, and consistent with your previous outputs. It’s ready for your blog documentation, with clean, commented code that newbies can digest and pros can admire. Let me know if you’d like to tweak anything or move to Page Layouts next!










Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Creating Blog Tutorial Using Next.JS 15 & TailwindCSS 4.0 (Part #4)

Thematisch verwandte Begriffe: Creating, Blog, Tutorial, Using · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-75517 | Novu provides an API for sending notifications through multiple channels…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick