départ du tavernier
This commit is contained in:
467
package-lock.json
generated
467
package-lock.json
generated
@@ -9,7 +9,7 @@
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"astro": "^5.17.1",
|
||||
"astro": "^5.18.0",
|
||||
"rehype-external-links": "^3.0.0",
|
||||
"remark-admonitions": "^1.2.1",
|
||||
"remark-directive": "^4.0.0",
|
||||
@@ -1974,9 +1974,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/astro": {
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmjs.org/astro/-/astro-5.17.1.tgz",
|
||||
"integrity": "sha512-oD3tlxTaVWGq/Wfbqk6gxzVRz98xa/rYlpe+gU2jXJMSD01k6sEDL01ZlT8mVSYB/rMgnvIOfiQQ3BbLdN237A==",
|
||||
"version": "5.18.0",
|
||||
"resolved": "https://registry.npmjs.org/astro/-/astro-5.18.0.tgz",
|
||||
"integrity": "sha512-CHiohwJIS4L0G6/IzE1Fx3dgWqXBCXus/od0eGUfxrZJD2um2pE7ehclMmgL/fXqbU7NfE1Ze2pq34h2QaA6iQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@astrojs/compiler": "^2.13.0",
|
||||
@@ -2002,7 +2002,7 @@
|
||||
"dlv": "^1.1.3",
|
||||
"dset": "^3.1.4",
|
||||
"es-module-lexer": "^1.7.0",
|
||||
"esbuild": "^0.25.0",
|
||||
"esbuild": "^0.27.3",
|
||||
"estree-walker": "^3.0.3",
|
||||
"flattie": "^1.1.1",
|
||||
"fontace": "~0.4.0",
|
||||
@@ -2059,6 +2059,463 @@
|
||||
"sharp": "^0.34.0"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz",
|
||||
"integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"aix"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/android-arm": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz",
|
||||
"integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/android-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz",
|
||||
"integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz",
|
||||
"integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz",
|
||||
"integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz",
|
||||
"integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz",
|
||||
"integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz",
|
||||
"integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz",
|
||||
"integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/netbsd-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/openbsd-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/openharmony-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openharmony"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"sunos"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz",
|
||||
"integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz",
|
||||
"integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz",
|
||||
"integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/esbuild": {
|
||||
"version": "0.27.3",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz",
|
||||
"integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.27.3",
|
||||
"@esbuild/android-arm": "0.27.3",
|
||||
"@esbuild/android-arm64": "0.27.3",
|
||||
"@esbuild/android-x64": "0.27.3",
|
||||
"@esbuild/darwin-arm64": "0.27.3",
|
||||
"@esbuild/darwin-x64": "0.27.3",
|
||||
"@esbuild/freebsd-arm64": "0.27.3",
|
||||
"@esbuild/freebsd-x64": "0.27.3",
|
||||
"@esbuild/linux-arm": "0.27.3",
|
||||
"@esbuild/linux-arm64": "0.27.3",
|
||||
"@esbuild/linux-ia32": "0.27.3",
|
||||
"@esbuild/linux-loong64": "0.27.3",
|
||||
"@esbuild/linux-mips64el": "0.27.3",
|
||||
"@esbuild/linux-ppc64": "0.27.3",
|
||||
"@esbuild/linux-riscv64": "0.27.3",
|
||||
"@esbuild/linux-s390x": "0.27.3",
|
||||
"@esbuild/linux-x64": "0.27.3",
|
||||
"@esbuild/netbsd-arm64": "0.27.3",
|
||||
"@esbuild/netbsd-x64": "0.27.3",
|
||||
"@esbuild/openbsd-arm64": "0.27.3",
|
||||
"@esbuild/openbsd-x64": "0.27.3",
|
||||
"@esbuild/openharmony-arm64": "0.27.3",
|
||||
"@esbuild/sunos-x64": "0.27.3",
|
||||
"@esbuild/win32-arm64": "0.27.3",
|
||||
"@esbuild/win32-ia32": "0.27.3",
|
||||
"@esbuild/win32-x64": "0.27.3"
|
||||
}
|
||||
},
|
||||
"node_modules/axobject-query": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"astro": "^5.17.1",
|
||||
"astro": "^5.18.0",
|
||||
"rehype-external-links": "^3.0.0",
|
||||
"remark-admonitions": "^1.2.1",
|
||||
"remark-directive": "^4.0.0",
|
||||
|
||||
BIN
public/chatgpt/004.png
Normal file
BIN
public/chatgpt/004.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
70
src/components/Header.astro
Normal file
70
src/components/Header.astro
Normal file
@@ -0,0 +1,70 @@
|
||||
---
|
||||
// Récupération de l'URL actuelle
|
||||
const { pathname } = Astro.url;
|
||||
// On vérifie si on est sur la page création (en gérant le slash final potentiel)
|
||||
const isCreationPage = pathname.replace(/\/$/, "") === "/creation";
|
||||
|
||||
// Définition de la destination et du texte selon la page
|
||||
const buttonLink = isCreationPage ? "/" : "/creation";
|
||||
const buttonText = isCreationPage
|
||||
? "Retour à l'Accueil"
|
||||
: "Création de Personnage";
|
||||
---
|
||||
|
||||
<header class="dnd-header">
|
||||
<h1 class="dnd-title">Sweeties Journey</h1>
|
||||
<div class="dnd-bar"></div>
|
||||
<p class="dnd-intro">
|
||||
Chroniques des aventures d'une portion de nouilles de la communauté,
|
||||
idée originale de Orson Pattes Givrées
|
||||
</p>
|
||||
<div class="creation-button-container">
|
||||
<a href={buttonLink} class="creation-button">{buttonText}</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<style>
|
||||
.dnd-header {
|
||||
margin: 2rem 0;
|
||||
}
|
||||
.dnd-title {
|
||||
font-family: "Playfair Display", serif;
|
||||
font-size: 3.5rem;
|
||||
color: #c89b3c;
|
||||
margin: 0;
|
||||
}
|
||||
.dnd-bar {
|
||||
height: 4px;
|
||||
background: linear-gradient(to right, #c89b3c 0%, transparent 100%);
|
||||
margin-top: 4px;
|
||||
}
|
||||
.dnd-intro {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.9rem;
|
||||
margin-top: 1rem;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.creation-button-container {
|
||||
text-align: center;
|
||||
margin: 3rem 0;
|
||||
}
|
||||
|
||||
a .creation-button {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 1.2rem;
|
||||
background: #c89b3c;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
a .creation-button:hover {
|
||||
background: #a27c2c;
|
||||
}
|
||||
</style>
|
||||
@@ -15,7 +15,7 @@ era: "lastchope"
|
||||
|
||||
### Recap de l'épisode précédent
|
||||
|
||||
La taverne était en verve sous le son et lumière proposé par [[Gurdill]] et [[Jiin]]. [[Orson]] le tavernier ne remarquera la disparition de la tapisserie ornant la taverne que quelques jours plus tard, quand [[Chad-Jay]] repassa en proposer une nouvelle. [[G'Mas]], lui, était encore aux abonnés absents...
|
||||
*La taverne était en verve sous le son et lumière proposé par [[Gurdill]] et [[Jiin]]. [[Orson]] le tavernier ne remarquera la disparition de la tapisserie ornant la taverne que quelques jours plus tard, quand [[Chad-Jay]] repassa en proposer une nouvelle. [[G'Mas]], lui, était encore aux abonnés absents...*
|
||||
|
||||
# La rencontre avec Chad-Jay
|
||||
|
||||
|
||||
92
src/content/journal/start.md
Normal file
92
src/content/journal/start.md
Normal file
@@ -0,0 +1,92 @@
|
||||
---
|
||||
title: "003 Le départ du tavernier"
|
||||
author: "Bulle"
|
||||
publishDate: 2025-12-02
|
||||
tags: [
|
||||
"lieu:La-Taverne-de-la-Derniere-Chope",
|
||||
"aventurier:G'Mas",
|
||||
"aventurier:Bulle",
|
||||
"aventurier:Gurdill",
|
||||
"aventurier:Chad-Jay",
|
||||
"aventurier:Nyraë"
|
||||
]
|
||||
era: "lastchope"
|
||||
---
|
||||
|
||||
### Recap de l'épisode précédent
|
||||
|
||||
*La taverne était en verve, mais le calme est de courte durée. Après que [[G'Mas]] a dû endormir [[Gurdill]] pour éviter un incident diplomatique avec le mobilier, la situation prend une tournure inattendue avec le départ du maître des lieux.*
|
||||
|
||||
# Le départ du tavernier
|
||||
|
||||
[[Chad]] réveille le nain sans faire exprès, Après une minute, **le nain** se réveille la tête sur la table, la bière renversée à côté, la barbe imbibée. **Le tavernier**, dépité, est partie. Seuls les dieux savent s'il reviendra. **La fée** supplie le tavernier de revenir sans succès.
|
||||
|
||||
> [[G’mas]] : « Je veux bien t'acheter celle-là ! Tu peux nous dire ce qu'elle représente ? »
|
||||
|
||||
> [[Chad Jay]] : `Ah ça ? C'est un Nimriel.
|
||||
|
||||
<img src="/chatgpt/004.png" alt="Nimriel" width="100%" />
|
||||
|
||||
[[Bulle]] devant l'oeuvre :
|
||||
> Oh c’est chou !
|
||||
|
||||
Puis elle rappelle au nain et au batracien que s’ils souhaitent profiter le plus longtemps possible de la taverne il faut respecter les lieux et le tavernier qui pourrait devenir un allié dans leur aventure.
|
||||
|
||||
[[Chad Jay à Bulle]] :
|
||||
> `Cette créature, Dame fée, vient de votre plan d'existence. En effet, bien que totalement différente de vous, il s'agit aussi d'une créature féérique capable de réaliser certains voeux, dans la limite du possible. Il est extrêmement rare d'en croisersur notre plan. Et c'est préférable. En effet...`
|
||||
|
||||
*biiiiiip - Crrrrrr-crrrrr Donnée protégée.*
|
||||
|
||||
> `Je vous prie de bien vouloir m'excuser, chers voyageurs et clients, il semblerait que mes ressources mémorielles rencontrent quelques difficultés actuellement. Je vous propose de renouveler votre demande ultérieurement. En attendant, je peux vous expliquer quelles sont les meilleures méthodes pour survivre à un dragon noir.`
|
||||
|
||||
[[Whispering Sending Stones]] à [[Nyraë]] :
|
||||
> Vous avez [[172 éclats de conversations éthérées]] que vous pouvez consulter.
|
||||
|
||||
[[Nyraë]] se rend compte qu’il y a des pipelettes à la taverne.
|
||||
|
||||
Voici un résumé rapide de [[Bulle]] :
|
||||
> *Alors, **le tavernier** a affiché une tenture, **notre krapo** la voulais, une soirée improvisée c’est faite à la taverne avec [[Gurdill Cul Brillant]] en caleçon, **le batracien** a vécu dans la taverne pendant 1 semaine et là ils squattent. Et moi, **la fée**, fait en sorte qu’ils ne brûlent pas la taverne et qu’ils ne ternissent pas la réputation de la compagnie. Ils ont fait la rencontre de [[Chad]] l’artiste de la tenture.*
|
||||
|
||||
[[Gurdill]] reprenant ses esprits :
|
||||
> Oups ! **le tavernier** est parti.
|
||||
|
||||
**Le MJ** :
|
||||
> Ah ben le sort a été très efficace ! Il émerge quand même ! **Le nain** profite de l’absence du tavernier pour aller se servir et commence à fouiller un peu partout. **La fée** n’est pas d’accord avec ça et essaie ’assommer **le nain** ! échec cuisant.
|
||||
|
||||
**Le MJ** au **nain** :
|
||||
> Tu cherches quelque chose en particulier ?
|
||||
|
||||
[[Gurdill]] :
|
||||
> Pas du tout je fais juste le tour de la pièce pour être sûr qu’il n’y ai pas de piège…
|
||||
|
||||
**Le MJ** :
|
||||
> Aucun piège dans la pièce, juste des tables et des tabourets, un banc aussi, un bar, des chopes pas très clean, un escalier qui monte vers les chambres et une porte derrière le bar. Plus la porte d'entrée, bien entendu.
|
||||
|
||||
[[Gurdill]] :
|
||||
> …et la caisse…
|
||||
|
||||
**Le MJ** :
|
||||
> Vide.
|
||||
|
||||
**Le nain** gromelle dans sa barbe et décide de camper jusqu’au petit matin à la taverne.
|
||||
|
||||
**Le MJ** :
|
||||
> Tu fais un feu entre les tables ?
|
||||
|
||||
**Le nain** rapproche de tables, met des couvertures de son pactage dessus et s’installe dessous pour dormir.
|
||||
|
||||
**Gurdill** :
|
||||
> Non quand même pas. Il faudra que je casse le mobilier pour ça.
|
||||
|
||||
**Le nain** pense tout haut et commence à vouloir organiser des combats, [[Bulle]] lui demande de se calmer.
|
||||
|
||||
[[Nyraë]] entre dans la taverne et réagit au caleçon de [[Gurdill]] :
|
||||
> Au secours... Tellement trop étincelant...
|
||||
|
||||
**La druidesse** a passé une partie de la nuit et toute la journée à veiller sur l’une de ses sœurs, malade.
|
||||
La fatigue hante ses pas. Elle avait bien besoin d’un remède, dans la taverne du coin. Lorsqu’elle entra, elle ne comprit pas tout de suite dans quel établissement elle était entrée. La tête enfoncée dans ses épaules, elle avança jusqu’au comptoir, le plus loin possible des gens.
|
||||
|
||||
[[Nyraë]] **la druidesse** :
|
||||
> Une de vos plus fortes tisanes… et j’entends par “tisane” le breuvage tisane.
|
||||
|
||||
**Le nain** entame sa 5ème pinte accompagnée du **MJ**.
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
import { getCollection } from "astro:content";
|
||||
import GameLayout from "../layouts/GameLayout.astro";
|
||||
import Header from "../components/Header.astro"; // Import du header
|
||||
|
||||
const classes = await getCollection("classes");
|
||||
const especes = await getCollection("especes");
|
||||
@@ -73,23 +74,25 @@ const especeData = personnages.reduce((acc, p) => {
|
||||
|
||||
<GameLayout title="Création de Personnage">
|
||||
<div class="creation-container">
|
||||
<Header />
|
||||
<section class="character-select">
|
||||
<h2 class="dnd-title">Choisissez votre Classe</h2>
|
||||
<div class="dnd-bar"></div>
|
||||
<p class="dnd-intro">
|
||||
La classe définit vos compétences et votre rôle.
|
||||
</p>
|
||||
<div
|
||||
class="dnd-intro"
|
||||
style="
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
<span
|
||||
<section class="character-select">
|
||||
<h2 class="dnd-title">Choisissez votre Classe</h2>
|
||||
<div class="dnd-bar"></div>
|
||||
<p class="dnd-intro">
|
||||
La classe définit vos compétences et votre rôle.
|
||||
</p>
|
||||
<div
|
||||
class="dnd-intro"
|
||||
style="
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(147, 72, 255, 1);
|
||||
background-color: white;
|
||||
margin: 5px;
|
||||
@@ -102,10 +105,10 @@ const especeData = personnages.reduce((acc, p) => {
|
||||
color-mix(in srgb, rgba(147, 72, 255, 1), transparent 85%);
|
||||
}
|
||||
"
|
||||
>Arcane</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
>Arcane</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(230, 57, 70, 1);
|
||||
background-color: white;
|
||||
margin: 5px;
|
||||
@@ -118,10 +121,10 @@ const especeData = personnages.reduce((acc, p) => {
|
||||
color-mix(in srgb, rgba(230, 57, 70, 1), transparent 85%);
|
||||
}
|
||||
"
|
||||
>Martial</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
>Martial</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(100, 100, 100, 1);
|
||||
background-color: white;
|
||||
margin: 5px;
|
||||
@@ -134,10 +137,10 @@ const especeData = personnages.reduce((acc, p) => {
|
||||
color-mix(in srgb, rgba(100, 100, 100, 1), transparent 85%);
|
||||
}
|
||||
"
|
||||
>Neutre</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
>Neutre</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(200, 155, 60, 1);
|
||||
background-color: white;
|
||||
margin: 5px;
|
||||
@@ -150,10 +153,10 @@ const especeData = personnages.reduce((acc, p) => {
|
||||
color-mix(in srgb, rgba(200, 155, 60, 1), transparent 85%);
|
||||
}
|
||||
"
|
||||
>Sacré</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
>Sacré</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(42, 157, 143, 1);
|
||||
background-color: white;
|
||||
margin: 5px;
|
||||
@@ -166,308 +169,314 @@ const especeData = personnages.reduce((acc, p) => {
|
||||
color-mix(in srgb, rgba(42, 157, 143, 1), transparent 85%);
|
||||
}
|
||||
"
|
||||
>Primal</span
|
||||
>
|
||||
</div>
|
||||
>Primal</span
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="class-grid">
|
||||
{
|
||||
classes.map((charClass) => {
|
||||
const charactersInClass =
|
||||
classData[charClass.id.toLowerCase()] || [];
|
||||
const colorEncre =
|
||||
SPECTRUM[charClass.data.encre] || "#c89b3c";
|
||||
<div class="class-grid">
|
||||
{
|
||||
classes.map((charClass) => {
|
||||
const charactersInClass =
|
||||
classData[charClass.id.toLowerCase()] || [];
|
||||
const colorEncre =
|
||||
SPECTRUM[charClass.data.encre] || "#c89b3c";
|
||||
|
||||
return (
|
||||
<div
|
||||
class="class-card"
|
||||
style={`--accent-color: ${colorEncre}`}
|
||||
>
|
||||
<h3 class="dynamic-title">
|
||||
{charClass.data.title}
|
||||
</h3>
|
||||
<div class="bubble-container">
|
||||
{charactersInClass.map((p) => (
|
||||
<a
|
||||
href={`/personnages/${p.id}`}
|
||||
class="notification-bubble bubble-species-border"
|
||||
style={`--p-color: ${p.colorSpectre}`}
|
||||
>
|
||||
<span class="p-name">{p.nom}</span>
|
||||
<span class="p-lvl">
|
||||
Niv.{p.niveau_classe}
|
||||
</span>
|
||||
</a>
|
||||
))}
|
||||
</div>
|
||||
<p>{charClass.data.description}</p>
|
||||
<a
|
||||
href={`/classes/${charClass.id}`}
|
||||
class="select-button"
|
||||
return (
|
||||
<div
|
||||
class="class-card"
|
||||
style={`--accent-color: ${colorEncre}`}
|
||||
>
|
||||
Détails
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="character-select">
|
||||
<h2 class="dnd-title">Choisissez votre Espèce</h2>
|
||||
<div class="dnd-bar"></div>
|
||||
<p class="dnd-intro">
|
||||
L'espèce influence votre apparence et votre histoire
|
||||
</p>
|
||||
<div
|
||||
class="dnd-intro"
|
||||
style="
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(200, 155, 60, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Solaire</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(0, 171, 255, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Elementaire</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(139, 69, 19, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Terrestre</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(0, 128, 0, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Sylvestre</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(75, 0, 130, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Ombre</span
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="class-grid">
|
||||
{
|
||||
especes.map((espece) => {
|
||||
const charactersInEspece =
|
||||
especeData[espece.id.toLowerCase()] || [];
|
||||
const colorBg =
|
||||
SPECTRUM[espece.data.spectre] ||
|
||||
"rgba(255,255,255,1)";
|
||||
|
||||
return (
|
||||
<div
|
||||
class="class-card species-card"
|
||||
style={`--bg-color: ${colorBg}`}
|
||||
>
|
||||
<h3>{espece.data.title}</h3>
|
||||
<div class="bubble-container">
|
||||
{charactersInEspece.map((p) => {
|
||||
// Construction du dégradé : si une seule couleur, on la double pour le gradient
|
||||
const gradient =
|
||||
p.colors.length > 1
|
||||
? `linear-gradient(to right, ${p.colors[0]}, ${p.colors[1]})`
|
||||
: p.colors[0];
|
||||
|
||||
return (
|
||||
<h3 class="dynamic-title">
|
||||
{charClass.data.title}
|
||||
</h3>
|
||||
<div class="bubble-container">
|
||||
{charactersInClass.map((p) => (
|
||||
<a
|
||||
href={`/personnages/${p.id}`}
|
||||
class="notification-bubble bubble-class-border"
|
||||
style={`--p-gradient: ${gradient}`}
|
||||
class="notification-bubble bubble-species-border"
|
||||
style={`--p-color: ${p.colorSpectre}`}
|
||||
>
|
||||
<span class="p-name">
|
||||
{p.nom}
|
||||
</span>
|
||||
<span class="p-lvl">
|
||||
Niv.{p.niveau}
|
||||
Niv.{p.niveau_classe}
|
||||
</span>
|
||||
</a>
|
||||
);
|
||||
})}
|
||||
))}
|
||||
</div>
|
||||
<p>{charClass.data.description}</p>
|
||||
<a
|
||||
href={`/classes/${charClass.id}`}
|
||||
class="select-button"
|
||||
>
|
||||
Détails
|
||||
</a>
|
||||
</div>
|
||||
<p>{espece.data.description}</p>
|
||||
<a
|
||||
href={`/especes/${espece.id}`}
|
||||
class="select-button species-button"
|
||||
>
|
||||
Détails
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</GameLayout>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
.creation-container {
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem 1rem;
|
||||
}
|
||||
.character-select {
|
||||
margin: 4rem 0;
|
||||
}
|
||||
.dnd-title {
|
||||
font-family: "Playfair Display", serif;
|
||||
font-size: 2.5rem;
|
||||
color: #c89b3c;
|
||||
text-align: center;
|
||||
}
|
||||
.dnd-bar {
|
||||
height: 3px;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
transparent,
|
||||
#c89b3c,
|
||||
transparent
|
||||
);
|
||||
margin: 4px auto 1rem;
|
||||
width: 50%;
|
||||
}
|
||||
.dnd-intro {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
opacity: 0.8;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
.class-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 2rem;
|
||||
}
|
||||
.class-card {
|
||||
background-color: white;
|
||||
padding: 2rem 1.5rem;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow:
|
||||
0 10px 25px -5px
|
||||
color-mix(in srgb, var(--accent-color), transparent 80%),
|
||||
0 8px 10px -6px
|
||||
color-mix(in srgb, var(--accent-color), transparent 85%);
|
||||
}
|
||||
.dynamic-title {
|
||||
color: var(--accent-color) !important;
|
||||
font-family: "Playfair Display", serif;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
.species-card {
|
||||
background-color: var(--bg-color) !important;
|
||||
}
|
||||
.notification-bubble {
|
||||
background: #1a1a1a !important;
|
||||
color: white !important;
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.7rem;
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
text-decoration: none; /* Important pour les liens */
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
.notification-bubble:hover {
|
||||
transform: translateY(-2px);
|
||||
filter: brightness(1.2);
|
||||
}
|
||||
.bubble-species-border {
|
||||
background-color: var(--p-color) !important;
|
||||
border-bottom: 3px solid var(--p-color) !important;
|
||||
box-shadow: inset 0 -2px 0 0 var(--p-color);
|
||||
}
|
||||
.bubble-class-border {
|
||||
position: relative;
|
||||
border-top: none !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.bubble-class-border::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px; /* L'épaisseur de ta bordure haute */
|
||||
background: var(--p-gradient);
|
||||
}
|
||||
.p-lvl {
|
||||
font-size: 0.6rem;
|
||||
opacity: 0.7;
|
||||
padding-left: 5px;
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
.bubble-container {
|
||||
<section class="character-select">
|
||||
<h2 class="dnd-title">Choisissez votre Espèce</h2>
|
||||
<div class="dnd-bar"></div>
|
||||
<p class="dnd-intro">
|
||||
L'espèce influence votre apparence et votre histoire
|
||||
</p>
|
||||
<div
|
||||
class="dnd-intro"
|
||||
style="
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
margin-bottom: 1.5rem;
|
||||
min-height: 30px;
|
||||
}
|
||||
.select-button {
|
||||
font-family: "Cinzel", serif;
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
color: var(--accent-color);
|
||||
background: color-mix(in srgb, var(--accent-color), transparent 50%);
|
||||
transition: all 0.3s;
|
||||
}
|
||||
.select-button:hover {
|
||||
background: var(--accent-color);
|
||||
color: white;
|
||||
}
|
||||
.species-button {
|
||||
border-color: #1a1a1a;
|
||||
color: #1a1a1a;
|
||||
}
|
||||
.species-button:hover {
|
||||
background: #1a1a1a;
|
||||
color: white;
|
||||
}
|
||||
.class-card p {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.85rem;
|
||||
margin-bottom: 1.5rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
</style>
|
||||
"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(200, 155, 60, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Solaire</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(0, 171, 255, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Elementaire</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(139, 69, 19, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Terrestre</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(0, 128, 0, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Sylvestre</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
background-color: rgba(75, 0, 130, 0.4);
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 5px;
|
||||
"
|
||||
>Ombre</span
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="class-grid">
|
||||
{
|
||||
especes.map((espece) => {
|
||||
const charactersInEspece =
|
||||
especeData[espece.id.toLowerCase()] || [];
|
||||
const colorBg =
|
||||
SPECTRUM[espece.data.spectre] ||
|
||||
"rgba(255,255,255,1)";
|
||||
|
||||
return (
|
||||
<div
|
||||
class="class-card species-card"
|
||||
style={`--bg-color: ${colorBg}`}
|
||||
>
|
||||
<h3>{espece.data.title}</h3>
|
||||
<div class="bubble-container">
|
||||
{charactersInEspece.map((p) => {
|
||||
// Construction du dégradé : si une seule couleur, on la double pour le gradient
|
||||
const gradient =
|
||||
p.colors.length > 1
|
||||
? `linear-gradient(to right, ${p.colors[0]}, ${p.colors[1]})`
|
||||
: p.colors[0];
|
||||
|
||||
return (
|
||||
<a
|
||||
href={`/personnages/${p.id}`}
|
||||
class="notification-bubble bubble-class-border"
|
||||
style={`--p-gradient: ${gradient}`}
|
||||
>
|
||||
<span class="p-name">
|
||||
{p.nom}
|
||||
</span>
|
||||
<span class="p-lvl">
|
||||
Niv.{p.niveau}
|
||||
</span>
|
||||
</a>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
<p>{espece.data.description}</p>
|
||||
<a
|
||||
href={`/especes/${espece.id}`}
|
||||
class="select-button species-button"
|
||||
>
|
||||
Détails
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.creation-container {
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.character-select {
|
||||
margin: 4rem 0;
|
||||
}
|
||||
.dnd-title {
|
||||
font-family: "Playfair Display", serif;
|
||||
font-size: 2.5rem;
|
||||
color: #c89b3c;
|
||||
text-align: center;
|
||||
}
|
||||
.dnd-bar {
|
||||
height: 3px;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
transparent,
|
||||
#c89b3c,
|
||||
transparent
|
||||
);
|
||||
margin: 4px auto 1rem;
|
||||
width: 50%;
|
||||
}
|
||||
.dnd-intro {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
opacity: 0.8;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
.class-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 2rem;
|
||||
}
|
||||
.class-card {
|
||||
background-color: white;
|
||||
padding: 2rem 1.5rem;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow:
|
||||
0 10px 25px -5px
|
||||
color-mix(in srgb, var(--accent-color), transparent 80%),
|
||||
0 8px 10px -6px
|
||||
color-mix(in srgb, var(--accent-color), transparent 85%);
|
||||
}
|
||||
.dynamic-title {
|
||||
color: var(--accent-color) !important;
|
||||
font-family: "Playfair Display", serif;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
.species-card {
|
||||
background-color: var(--bg-color) !important;
|
||||
}
|
||||
.notification-bubble {
|
||||
background: #1a1a1a !important;
|
||||
color: white !important;
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.7rem;
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
text-decoration: none; /* Important pour les liens */
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
.notification-bubble:hover {
|
||||
transform: translateY(-2px);
|
||||
filter: brightness(1.2);
|
||||
}
|
||||
.bubble-species-border {
|
||||
background-color: var(--p-color) !important;
|
||||
border-bottom: 3px solid var(--p-color) !important;
|
||||
box-shadow: inset 0 -2px 0 0 var(--p-color);
|
||||
}
|
||||
.bubble-class-border {
|
||||
position: relative;
|
||||
border-top: none !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.bubble-class-border::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px; /* L'épaisseur de ta bordure haute */
|
||||
background: var(--p-gradient);
|
||||
}
|
||||
.p-lvl {
|
||||
font-size: 0.6rem;
|
||||
opacity: 0.7;
|
||||
padding-left: 5px;
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
.bubble-container {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
margin-bottom: 1.5rem;
|
||||
min-height: 30px;
|
||||
}
|
||||
.select-button {
|
||||
font-family: "Cinzel", serif;
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
color: var(--accent-color);
|
||||
background: color-mix(
|
||||
in srgb,
|
||||
var(--accent-color),
|
||||
transparent 50%
|
||||
);
|
||||
transition: all 0.3s;
|
||||
}
|
||||
.select-button:hover {
|
||||
background: var(--accent-color);
|
||||
color: white;
|
||||
}
|
||||
.species-button {
|
||||
border-color: #1a1a1a;
|
||||
color: #1a1a1a;
|
||||
}
|
||||
.species-button:hover {
|
||||
background: #1a1a1a;
|
||||
color: white;
|
||||
}
|
||||
.class-card p {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.85rem;
|
||||
margin-bottom: 1.5rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
</style>
|
||||
</GameLayout>
|
||||
|
||||
@@ -3,6 +3,7 @@ import { getCollection } from "astro:content";
|
||||
import GameLayout from "../layouts/GameLayout.astro";
|
||||
import Timeline from "../components/Timeline.astro";
|
||||
import ContentSearch from "../components/ContentSearch.astro";
|
||||
import Header from "../components/Header.astro";
|
||||
|
||||
const allPosts = await getCollection("journal");
|
||||
|
||||
@@ -23,20 +24,7 @@ const allTags = [
|
||||
|
||||
<GameLayout title="Sweeties Journey">
|
||||
<div class="index-container">
|
||||
<header class="dnd-header">
|
||||
<h1 class="dnd-title">Sweeties Journey</h1>
|
||||
<div class="dnd-bar"></div>
|
||||
<p class="dnd-intro">
|
||||
Chroniques des aventures d'une portion de nouilles de la
|
||||
communauté, idée originale de Orson Pattes Givrées
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<div class="creation-button-container">
|
||||
<a href="/creation" class="creation-button"
|
||||
>Création de Personnage</a
|
||||
>
|
||||
</div>
|
||||
<Header />
|
||||
|
||||
<Timeline eras={eras} />
|
||||
|
||||
@@ -45,58 +33,12 @@ const allTags = [
|
||||
</GameLayout>
|
||||
|
||||
<style is:global>
|
||||
.creation-button-container {
|
||||
text-align: center;
|
||||
margin: 3rem 0;
|
||||
}
|
||||
|
||||
a .creation-button {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 1.2rem;
|
||||
background: #c89b3c;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 0.75rem 2rem;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
a .creation-button:hover {
|
||||
background: #a27c2c;
|
||||
}
|
||||
|
||||
.index-container {
|
||||
max-width: 1000px;
|
||||
margin: 0 auto;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
/* Le style du titre DnD reste le même que précédemment */
|
||||
.dnd-header {
|
||||
margin: 2rem 0;
|
||||
}
|
||||
.dnd-title {
|
||||
font-family: "Playfair Display", serif;
|
||||
font-size: 3.5rem;
|
||||
color: #c89b3c;
|
||||
margin: 0;
|
||||
}
|
||||
.dnd-bar {
|
||||
height: 4px;
|
||||
background: linear-gradient(to right, #c89b3c 0%, transparent 100%);
|
||||
margin-top: 4px;
|
||||
}
|
||||
.dnd-intro {
|
||||
font-family: "Cinzel", serif;
|
||||
font-size: 0.9rem;
|
||||
margin-top: 1rem;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* Conteneur de la carte pour permettre le positionnement absolu du tag */
|
||||
.gold-button {
|
||||
position: relative;
|
||||
|
||||
Reference in New Issue
Block a user