chore: project configuration (Next.js, Tailwind, TypeScript)

This commit is contained in:
2026-02-22 20:00:21 +01:00
parent 4a3b69babc
commit 8f9674730d
7 changed files with 1870 additions and 0 deletions

32
.gitignore vendored Normal file
View File

@@ -0,0 +1,32 @@
# Dependencies
node_modules/
.pnp/
.pnp.js
# Next.js
.next/
out/
# Production
build/
dist/
# Misc
.DS_Store
*.pem
Thumbs.db
# Debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Local env
.env*.local
# Vercel
.vercel
# TypeScript
*.tsbuildinfo
next-env.d.ts

10
next.config.mjs Normal file
View File

@@ -0,0 +1,10 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
trailingSlash: true,
images: {
unoptimized: true,
},
};
export default nextConfig;

1715
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

32
package.json Normal file
View File

@@ -0,0 +1,32 @@
{
"name": "simo",
"version": "1.0.0",
"description": "Simulateur de prêt immobilier - Gratuit et open source",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"next": "^14.2.21",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"chart.js": "^4.4.7",
"react-chartjs-2": "^5.2.0",
"lz-string": "^1.5.0",
"chartjs-plugin-datalabels": "^2.2.0"
},
"devDependencies": {
"typescript": "^5.4.5",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@types/node": "^20.17.0",
"@types/lz-string": "^1.5.0",
"tailwindcss": "^3.4.17",
"postcss": "^8.4.49",
"autoprefixer": "^10.4.20",
"@tailwindcss/forms": "^0.5.10"
}
}

9
postcss.config.js Normal file
View File

@@ -0,0 +1,9 @@
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
module.exports = config;

49
tailwind.config.ts Normal file
View File

@@ -0,0 +1,49 @@
import type { Config } from 'tailwindcss';
const config: Config = {
darkMode: 'class',
content: [
'./src/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'system-ui', '-apple-system', 'sans-serif'],
},
colors: {
brand: {
50: '#eef5ff',
100: '#d9e8ff',
200: '#bbd5ff',
300: '#8cbbff',
400: '#5695ff',
500: '#2f6cff',
600: '#1849f5',
700: '#1038e1',
800: '#142eb6',
900: '#172c8f',
950: '#121d57',
},
},
animation: {
'fade-in': 'fadeIn 0.3s ease-out',
'slide-down': 'slideDown 0.3s ease-out',
},
keyframes: {
fadeIn: {
from: { opacity: '0' },
to: { opacity: '1' },
},
slideDown: {
from: { opacity: '0', transform: 'translateY(-8px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
},
},
},
plugins: [
require('@tailwindcss/forms'),
],
};
export default config;

23
tsconfig.json Normal file
View File

@@ -0,0 +1,23 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [{ "name": "next" }],
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}