Next.js 16 + TypeScript + Tailwind v4 + Motion project showcasing interface components built on semantic design tokens: - Light/dark/system theming from one CSS variable set, with a pre-paint script so a saved theme never flashes - Button, Switch and SegmentedControl with keyboard support, ARIA semantics and spring motion that respects reduced-motion - Vitest + Testing Library tests, including a token-coverage test - /tokens page documenting colour and motion tokens Co-Authored-By: Claude Opus 5.5 <[email protected]>
45 lines
1.2 KiB
JSON
45 lines
1.2 KiB
JSON
{
|
|
"name": "typescript-project",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"check": "npm run typecheck && npm run lint && npm run format:check && npm test"
|
|
},
|
|
"dependencies": {
|
|
"clsx": "^2.1.1",
|
|
"motion": "^12.43.0",
|
|
"next": "16.4.5",
|
|
"react": "19.3.0",
|
|
"react-dom": "19.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/turbopack": "^4",
|
|
"@testing-library/dom": "^10.4.2",
|
|
"@testing-library/jest-dom": "^7.0.1",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@testing-library/user-event": "^14.6.8",
|
|
"@types/node": "^22.20.5",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@vitejs/plugin-react": "^6.2.1",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.4.5",
|
|
"jsdom": "^31.0.0",
|
|
"prettier": "^3.9.10",
|
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5",
|
|
"vite-tsconfig-paths": "^6.1.1",
|
|
"vitest": "^5.1.0"
|
|
}
|
|
}
|