feat: scaffold Next.js 16 web app with Tailwind v4
Sets up apps/web with Next.js 16, React 19, Tailwind CSS v4 (postcss plugin config, @import syntax), Jest + Testing Library, App Router layout and home page. 2/2 tests passing, build verified. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
@import "tailwindcss";
|
||||
@@ -0,0 +1,15 @@
|
||||
import type { Metadata } from 'next';
|
||||
import './globals.css';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Insignia TOWER',
|
||||
description: 'Community Knowledge Infrastructure Platform',
|
||||
};
|
||||
|
||||
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className="bg-white text-gray-900 antialiased">{children}</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import Home from './page';
|
||||
|
||||
describe('Home page', () => {
|
||||
it('renders the TOWER heading', () => {
|
||||
render(<Home />);
|
||||
expect(screen.getByRole('heading', { name: /insignia tower/i })).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('renders the platform tagline', () => {
|
||||
render(<Home />);
|
||||
expect(screen.getByText(/community knowledge infrastructure/i)).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,8 @@
|
||||
export default function Home() {
|
||||
return (
|
||||
<main className="flex min-h-screen flex-col items-center justify-center gap-4">
|
||||
<h1 className="text-4xl font-bold tracking-tight">Insignia TOWER</h1>
|
||||
<p className="text-lg text-gray-500">Community Knowledge Infrastructure Platform</p>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user