nextjs-academic-article
Create Distill.pub-inspired academic articles using Next.js 15+ App Router with proper spacing, citations, sidenotes, and elegant typography. Features reading progress, sticky TOC with active tracking, hover tooltips, numbered citations with bibliography, and publication-grade design. Use for research papers, scientific publications, and technical articles.
Next.js Academic Article (Distill-Inspired)
Create publication-quality academic articles with Distill.pub-inspired design using Next.js, React components, and modern web technologies.
When to Use This Skill
Trigger patterns:
- "Create an academic paper/article/research document"
- "I need a scientific publication with citations"
- "Make a paper with margin notes and references"
- "Build a research article like Distill.pub"
- "Create an article with proper academic formatting"
Use this skill for:
- Research papers and scientific publications
- Technical articles with citations and references
- Educational content requiring footnotes and sidenotes
- Documentation with cross-references
- Any content needing academic formatting with modern web features
Core Philosophy
Registry-First, Component-Based Design:
- Content over layout - focus on substance first
- Clean, minimal aesthetics - no unnecessary decoration
- Proper spacing - generous whitespace for breathing room
- Typography-first - readable serif body with sans-serif UI
- Responsive by default - mobile to desktop adaptation
Key Features
- Reading Progress Bar - Slim top bar tracking scroll position
- Sticky Table of Contents - Auto-highlighting active section
- Enhanced Citations - Hover previews with full bibliography
- Sidenotes/Margin Notes - Desktop float, mobile inline
- Hover Tooltips - Inline term definitions
- Numbered Figures - Card-based with fade-in animation
- Proper Spacing - Balanced layout without excessive whitespace
- Academic Typography - Georgia/serif body, Inter/sans UI
- Responsive Grid - Content + margin layout (collapses on mobile)
CRITICAL: Design System
Layout Dimensions
Spacing Rules
- Footer spacing:
mt-24 xl:mt-32(96-128px) - NOT excessive - Section spacing:
mb-16between major sections - Paragraph spacing:
my-5(1.25rem) - TOC position:
top-32 xl:top-40(128px-160px from top)
Typography Scale
Color Palette
Quick Start
1. Project Setup
If starting fresh:
2. Create Component Structure
Create these components in /components/article/:
components/article/
├── ArticleHeader.tsx # Header with title, author, abstract
├── Citation.tsx # Inline citations with hover
├── Figure.tsx # Enhanced figure with animations
├── ReadingProgress.tsx # Progress bar
├── References.tsx # Bibliography section
├── Sidenote.tsx # Margin notes
├── TableOfContents.tsx # Sticky TOC with active tracking
├── Tooltip.tsx # Inline term definitions
└── index.ts # Export all components
3. Add Global Styles
Add to app/globals.css:
4. Create Article Page Template
Component API
ArticleHeader
Design specs:
- White background (
bg-white) - NO gray background - Multi-line author format with project attribution
- Abstract has blue left border (
border-l-4 border-blue-600) - Keywords hidden by default
- Responsive typography
Citation
Features:
- Numbered format:
[1] - Hover preview with details
- Links to References section
- Blue color scheme
Figure
Design specs:
- Card-based with rounded corners (
rounded-2xl) - Subtle shadow and border
- Fade-in animation on scroll
- Optional
wideprop for larger figures - Blue accent for figure numbers
Sidenote
Types:
note- general notesdefinition- term definitionsexample- examples
Behavior:
- Desktop: floats in right margin
- Mobile: inline card
Tooltip
Features:
- Dotted underline indicator
- Hover card with definition
- 200ms delay for better UX
TableOfContents
Features:
- Sticky positioning (
top-32 xl:top-40) - Active section highlighting
- IntersectionObserver tracking
- Smooth scroll behavior
References
Features:
- Standard academic citation format
- Numbered with anchor IDs
- DOI and URL support
- Clickable links
CRITICAL PATTERNS
❌ DO NOT:
- Use
mt-40ormt-56for footer - TOO MUCH SPACE - Use gray background for header - should be white
- Use thick blue borders for appendix sections - minimal styling only
- Make TOC wider than 220px - causes excessive right spacing
- Use
bg-sky-50backgrounds excessively - looks clunky
✅ DO:
- Use
mt-24 xl:mt-32for footer spacing - Use white background for header (
bg-white) - Use minimal borders (
border-l-2 border-zinc-300) for appendix - Keep article grid under 1200px total width
- Use generous line-height (1.8) for body text
Content Structure
Data/Methods Appendix Styling
For structured data sections (like "Data Source", "Sample", etc.):
Workflow
Typical Implementation
- Create page structure with ArticleHeader, ReadingProgress, TOC
- Add article grid with main content and sidebar
- Write content using sections with proper IDs
- Add citations with Citation component and References section
- Include figures with Figure component
- Add sidenotes for supplementary information
- Add tooltips for term definitions
- Style footer with project attribution
- Test responsive behavior on mobile
Best Practices
- Always wrap related paragraph + sidenote in
<div className="relative"> - Use unique IDs for all sections (lowercase, hyphenated)
- Reference figures before they appear in text
- Keep paragraphs under 90 words
- Use serif for body, sans-serif for UI
- Test on mobile - ensure sidenotes display correctly
Troubleshooting
TOC not highlighting
Solution: Ensure sections have id attribute and scroll-mt-24 class
Sidenotes overlapping
Solution: Wrap each paragraph + sidenote in <div className="relative"> container
Excessive right-side spacing
Solution: Check article grid max-width (should be 1200px) and margin-col (should be 220px)
Footer too spaced out
Solution: Use mt-24 xl:mt-32 NOT mt-40 or higher
Version
Version: 2.0.0 Compatible With: Next.js 14+, React 18+, TypeScript 5+ Updated: October 2025