mirror of
https://github.com/Paris-est-Ludique/ForceOrange.git
synced 2025-06-08 01:04:20 +02:00
🎨 Working app and shared with start of pages
This commit is contained in:
parent
f69a53fa0a
commit
c35de52aec
20
.vscode/project.code-workspace
vendored
Normal file
20
.vscode/project.code-workspace
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"name": "ROOT",
|
||||||
|
"path": "../"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "App",
|
||||||
|
"path": "../modules/app"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Supabase",
|
||||||
|
"path": "../modules/supabase"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Shared",
|
||||||
|
"path": "../modules/shared"
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -72,5 +72,5 @@
|
|||||||
"scss",
|
"scss",
|
||||||
"pcss",
|
"pcss",
|
||||||
"postcss"
|
"postcss"
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
|
7
modules/app/.env.example
Normal file
7
modules/app/.env.example
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
## Your environment variables
|
||||||
|
SUPABASE_URL=
|
||||||
|
SUPABASE_KEY=
|
||||||
|
|
||||||
|
NUXT_PUBLIC_BASE_URL=
|
||||||
|
NUXT_PUBLIC_DISCORD_GUILD_ID=
|
||||||
|
NUXT_PUBLIC_SENTRY_DSN=
|
@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<NuxtLayout>
|
||||||
<NuxtRouteAnnouncer />
|
<NuxtPage />
|
||||||
<NuxtWelcome />
|
</NuxtLayout>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
37
modules/app/error.vue
Normal file
37
modules/app/error.vue
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import type { NuxtError } from '#app'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
error: Object as () => NuxtError
|
||||||
|
})
|
||||||
|
|
||||||
|
const handleError = () => clearError({ redirect: '/' })
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<UMain>
|
||||||
|
<div v-if="error?.statusCode === 404">
|
||||||
|
<div i-mdi-robot-confused text-8xl text-white block />
|
||||||
|
<div text-white>
|
||||||
|
<h1>
|
||||||
|
404<br />
|
||||||
|
Page non trouvée
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<UButton m="3 t8" @click="handleError" bg-white font-bold>
|
||||||
|
Retourner vite sur Force Orange
|
||||||
|
</UButton>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<h1>{{ error?.statusCode }}</h1>
|
||||||
|
|
||||||
|
{{ error?.message }}
|
||||||
|
|
||||||
|
<UButton m="3 t8" @click="handleError" bg-white font-bold>
|
||||||
|
Retourner vite sur FO
|
||||||
|
</UButton>
|
||||||
|
</div>
|
||||||
|
</UMain>
|
||||||
|
</template>
|
8
modules/app/eslint.config.js
Normal file
8
modules/app/eslint.config.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import antfu from '@antfu/eslint-config'
|
||||||
|
|
||||||
|
export default antfu(
|
||||||
|
{
|
||||||
|
unocss: true,
|
||||||
|
formatters: true,
|
||||||
|
},
|
||||||
|
)
|
34
modules/app/layouts/default.vue
Normal file
34
modules/app/layouts/default.vue
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
useHead({
|
||||||
|
bodyAttrs: {
|
||||||
|
class: 'bg-[#F9DD75F2]'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const links = [{
|
||||||
|
label: 'Les actus',
|
||||||
|
to: '/'
|
||||||
|
}, {
|
||||||
|
label: 'Rejoindre FO',
|
||||||
|
to: '/join'
|
||||||
|
}]
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<UHeader :links="links" class="rounded-xl shadow-lg bg-white mx-4 mt-4">
|
||||||
|
<template #left>
|
||||||
|
<!-- <p class="font-logo text-orange-500 stroke-5 stroke-black-500 text-hlogo">Force Orange</p> -->
|
||||||
|
<NuxtImg src="/assets/img/logo-fo.svg" alt="Force Orange" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #right>
|
||||||
|
<UColorModeButton />
|
||||||
|
<UButton to="/signin" variant="soft">Se connecter</UButton>
|
||||||
|
</template>
|
||||||
|
</UHeader>
|
||||||
|
|
||||||
|
<UMain class="m-4">
|
||||||
|
<slot />
|
||||||
|
</UMain>
|
||||||
|
|
||||||
|
<UNotifications />
|
||||||
|
</template>
|
16
modules/app/netlify.toml
Normal file
16
modules/app/netlify.toml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[build.environment]
|
||||||
|
NODE_VERSION = "21"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
publish = "dist"
|
||||||
|
command = "pnpm run build"
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/*"
|
||||||
|
to = "/index.html"
|
||||||
|
status = 200
|
||||||
|
|
||||||
|
[[headers]]
|
||||||
|
for = "/*"
|
||||||
|
[headers.values]
|
||||||
|
Access-Control-Allow-Origin = "*"
|
@ -1,5 +1,53 @@
|
|||||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
compatibilityDate: '2024-04-03',
|
compatibilityDate: '2024-09-11',
|
||||||
devtools: { enabled: true }
|
devtools: { enabled: true },
|
||||||
|
|
||||||
|
runtimeConfig: {
|
||||||
|
public: {
|
||||||
|
env: '',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
router: {
|
||||||
|
options: {
|
||||||
|
scrollBehaviorType: 'smooth'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
extends: ['@pel/shared'],
|
||||||
|
|
||||||
|
modules: ['@nuxtjs/supabase', '@nuxt/content', "@nuxt/image"],
|
||||||
|
|
||||||
|
components: [
|
||||||
|
{
|
||||||
|
path: '~/components',
|
||||||
|
pathPrefix: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
supabase: {
|
||||||
|
url: process.env.SUPABASE_URL || '',
|
||||||
|
key: process.env.SUPABASE_KEY || '',
|
||||||
|
redirect: true,
|
||||||
|
redirectOptions: {
|
||||||
|
login: '/signin',
|
||||||
|
callback: '/signin/confirm',
|
||||||
|
exclude: ['/*'],
|
||||||
|
},
|
||||||
|
cookieName: 'fo-cookies',
|
||||||
|
cookieOptions: {
|
||||||
|
maxAge: 60 * 60 * 8,
|
||||||
|
sameSite: 'lax',
|
||||||
|
secure: true,
|
||||||
|
},
|
||||||
|
clientOptions: {
|
||||||
|
auth: {
|
||||||
|
flowType: 'pkce',
|
||||||
|
detectSessionInUrl: true,
|
||||||
|
persistSession: true,
|
||||||
|
autoRefreshToken: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
@ -4,13 +4,26 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "nuxt build",
|
"build": "nuxt build",
|
||||||
"dev": "nuxt dev",
|
"dev": "nuxt dev --port 3000",
|
||||||
"generate": "nuxt generate",
|
"generate": "nuxt generate",
|
||||||
"preview": "nuxt preview",
|
"preview": "nuxt preview",
|
||||||
"postinstall": "nuxt prepare"
|
"postinstall": "nuxt prepare",
|
||||||
|
"lint": "eslint .",
|
||||||
|
"up": "taze major -I"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@pel/shared": "workspace:*",
|
||||||
"nuxt": "^3.12.4",
|
"nuxt": "^3.12.4",
|
||||||
"vue": "latest"
|
"vue": "latest"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@antfu/eslint-config": "^3.0.0",
|
||||||
|
"@iconify-json/mdi": "^1.2.0",
|
||||||
|
"@nuxt/content": "^2.13.2",
|
||||||
|
"@nuxt/image": "^1.8.0",
|
||||||
|
"@nuxtjs/supabase": "^1.4.0",
|
||||||
|
"eslint": "^9.9.1",
|
||||||
|
"eslint-plugin-format": "^0.1.2",
|
||||||
|
"yup": "^1.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
11
modules/app/pages/index.vue
Normal file
11
modules/app/pages/index.vue
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
definePageMeta({
|
||||||
|
name: 'Home',
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<h1>Home</h1>
|
||||||
|
</div>
|
||||||
|
</template>
|
73
modules/app/pages/join/index.vue
Normal file
73
modules/app/pages/join/index.vue
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { object, string, boolean, type InferType } from 'yup'
|
||||||
|
import type { FormSubmitEvent } from '#ui/types'
|
||||||
|
|
||||||
|
definePageMeta({
|
||||||
|
name: 'Join',
|
||||||
|
})
|
||||||
|
|
||||||
|
const schema = object({
|
||||||
|
mail: string().email('Invalid email').required('Required'),
|
||||||
|
password: string().required('Required'),
|
||||||
|
firstname: string().required('Required'),
|
||||||
|
lastname: string().required('Required'),
|
||||||
|
isAdult: boolean().required('Required'),
|
||||||
|
})
|
||||||
|
|
||||||
|
type Schema = InferType<typeof schema>
|
||||||
|
|
||||||
|
const strenght = ref(0)
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
mail: undefined,
|
||||||
|
password: undefined,
|
||||||
|
firstname: undefined,
|
||||||
|
lastname: undefined,
|
||||||
|
isAdult: false,
|
||||||
|
})
|
||||||
|
|
||||||
|
async function onSubmit(event: FormSubmitEvent<Schema>) {
|
||||||
|
// Do something with event.data
|
||||||
|
console.log(event.data)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<UCard class="container mx-auto">
|
||||||
|
<h1 class="text-2xl uppercase">Rejoindre Paris est Ludique!</h1>
|
||||||
|
<p class="font-light">Pour rejoindre la Force orange de Paris est Ludique!, il est nécessaire de compléter le
|
||||||
|
formulaire ci-dessous:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<UForm :schema="schema" :state="state" @submit="onSubmit">
|
||||||
|
<UFormGroup label="Adresse courriel">
|
||||||
|
<UInput placeholder="Adresse courriel" name="mail" type="mail" v-model="state.mail" />
|
||||||
|
</UFormGroup>
|
||||||
|
|
||||||
|
<UFormGroup label="Password">
|
||||||
|
<UInput placeholder="Password" type="password" v-model="state.password" />
|
||||||
|
</UFormGroup>
|
||||||
|
<UMeter :value="strenght" :max="100">
|
||||||
|
<template #label="{ percent }">
|
||||||
|
<p class="text-sm font-thin">
|
||||||
|
le mot de passe est fort
|
||||||
|
</p>
|
||||||
|
</template>
|
||||||
|
</UMeter>
|
||||||
|
|
||||||
|
<div class="flex md:flex-row flex-col gap-4">
|
||||||
|
<UFormGroup label="Prénom" class="flex-1">
|
||||||
|
<UInput placeholder="Prénom" name="firstname" v-model="state.firstname" />
|
||||||
|
</UFormGroup>
|
||||||
|
|
||||||
|
<UFormGroup label="Nom de famille" class="flex-1">
|
||||||
|
<UInput placeholder="Nom de famille" name="lastname" v-model="state.lastname" />
|
||||||
|
</UFormGroup>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<UCheckbox name="isAdult" label="Je serais majeur avant la prochaine édition." v-model="state.isAdult" />
|
||||||
|
|
||||||
|
<UButton type="submit">S'inscrire</UButton>
|
||||||
|
</UForm>
|
||||||
|
</UCard>
|
||||||
|
</template>
|
39
modules/app/pages/signin/index.vue
Normal file
39
modules/app/pages/signin/index.vue
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
definePageMeta({
|
||||||
|
name: 'Signin',
|
||||||
|
})
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
mail: undefined,
|
||||||
|
password: undefined,
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<UCard>
|
||||||
|
<h1 class="text-2xl uppercase">Qui êtes-vous ?</h1>
|
||||||
|
|
||||||
|
<UForm :state="state">
|
||||||
|
<UFormGroup label="Adresse courriel">
|
||||||
|
<UInput name="mail" v-model="state.mail" />
|
||||||
|
</UFormGroup>
|
||||||
|
|
||||||
|
<UFormGroup label="Mot de passe">
|
||||||
|
<UInput type="password" name="password" v-model="state.password" />
|
||||||
|
</UFormGroup>
|
||||||
|
|
||||||
|
<UButton type="submit">Se Connecter</UButton>
|
||||||
|
<UButton to="/join">Mot de passe oublié ?</UButton>
|
||||||
|
</UForm>
|
||||||
|
|
||||||
|
<!-- <p class="text-error">Nous n’avons pas reconnu vos identifiants.</p> -->
|
||||||
|
|
||||||
|
<p>ou bien</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<UButton>Se connecter avec Google</UButton>
|
||||||
|
<UButton>Se connecter avec Discord</UButton>
|
||||||
|
</div>
|
||||||
|
</UCard>
|
||||||
|
</template>
|
1
modules/app/public/assets/img/logo-fo.svg
Normal file
1
modules/app/public/assets/img/logo-fo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 78 KiB |
BIN
modules/app/public/assets/img/logo.png
Normal file
BIN
modules/app/public/assets/img/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
1
modules/app/tailwind.config.ts
Normal file
1
modules/app/tailwind.config.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { default } from '@pel/shared/tailwind.config'
|
1
modules/shared/.env.example
Normal file
1
modules/shared/.env.example
Normal file
@ -0,0 +1 @@
|
|||||||
|
NUXT_UI_PRO_LICENSE=
|
24
modules/shared/.gitignore
vendored
Normal file
24
modules/shared/.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Nuxt dev/build outputs
|
||||||
|
.output
|
||||||
|
.data
|
||||||
|
.nuxt
|
||||||
|
.nitro
|
||||||
|
.cache
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Node dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.fleet
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Local env files
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
0
modules/shared/.gitkeep
Normal file
0
modules/shared/.gitkeep
Normal file
3
modules/shared/.npmrc
Normal file
3
modules/shared/.npmrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
shamefully-hoist=true
|
||||||
|
strict-peer-dependencies=false
|
||||||
|
shell-emulator=true
|
1
modules/shared/.nuxtrc
Normal file
1
modules/shared/.nuxtrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
typescript.includeWorkspace = true
|
36
modules/shared/app.config.ts
Normal file
36
modules/shared/app.config.ts
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
export default defineAppConfig({
|
||||||
|
ui: {
|
||||||
|
primary: 'orange',
|
||||||
|
button: {
|
||||||
|
default: {
|
||||||
|
color: 'primary',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
input: {
|
||||||
|
placeholder: 'placeholder-transparent',
|
||||||
|
default: {
|
||||||
|
size: 'md',
|
||||||
|
color: 'primary',
|
||||||
|
variant: 'none'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
formGroup: {
|
||||||
|
wrapper: 'flex flex-col md:flex-row rounded-lg py-1 px-4 border-b-2 border-orange-500',
|
||||||
|
inner: 'flex-2 content-center',
|
||||||
|
container: 'flex-1 mt-auto',
|
||||||
|
label: {
|
||||||
|
base: 'font-thin'
|
||||||
|
},
|
||||||
|
default: {
|
||||||
|
size: 'md',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
card: {
|
||||||
|
rounded: 'rounded-3xl',
|
||||||
|
shadow: 'shadow-lg',
|
||||||
|
},
|
||||||
|
header: {
|
||||||
|
rounded: 'rounded-xl',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
3
modules/shared/app.vue
Normal file
3
modules/shared/app.vue
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
Hello PEL
|
||||||
|
</template>
|
8
modules/shared/eslint.config.js
Normal file
8
modules/shared/eslint.config.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import antfu from '@antfu/eslint-config'
|
||||||
|
|
||||||
|
export default antfu(
|
||||||
|
{
|
||||||
|
// unocss: true,
|
||||||
|
formatters: true,
|
||||||
|
},
|
||||||
|
)
|
60
modules/shared/nuxt.config.ts
Normal file
60
modules/shared/nuxt.config.ts
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
import { fileURLToPath } from 'node:url'
|
||||||
|
import { dirname, join } from 'node:path'
|
||||||
|
|
||||||
|
const currentDir = dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
compatibilityDate: '2024-09-11',
|
||||||
|
|
||||||
|
devtools: { enabled: true },
|
||||||
|
|
||||||
|
extends: ['@nuxt/ui-pro'],
|
||||||
|
|
||||||
|
modules: [
|
||||||
|
'@vueuse/nuxt',
|
||||||
|
'@pinia/nuxt',
|
||||||
|
// '@nuxt/icon', // installed with nuxt-ui
|
||||||
|
'@nuxt/fonts',
|
||||||
|
'@nuxt/ui',
|
||||||
|
],
|
||||||
|
|
||||||
|
app: {
|
||||||
|
head: {
|
||||||
|
viewport: 'width=device-width,initial-scale=1',
|
||||||
|
link: [
|
||||||
|
{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },
|
||||||
|
],
|
||||||
|
meta: [
|
||||||
|
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
||||||
|
{ name: 'description', content: 'Avent 2023' },
|
||||||
|
{ name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
components: [
|
||||||
|
{
|
||||||
|
path: join(currentDir, './components'),
|
||||||
|
pathPrefix: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '~/components',
|
||||||
|
pathPrefix: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
fonts: {
|
||||||
|
families: [
|
||||||
|
{
|
||||||
|
name: 'Grobold',
|
||||||
|
src: '/fonts/GROBOLD.woff2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Londrina Solid',
|
||||||
|
provider: 'google',
|
||||||
|
weights: [200, 300, 400, 700],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
})
|
35
modules/shared/package.json
Normal file
35
modules/shared/package.json
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "@pel/shared",
|
||||||
|
"type": "module",
|
||||||
|
"private": true,
|
||||||
|
"packageManager": "pnpm@9.9.0",
|
||||||
|
"main": "./nuxt.config.ts",
|
||||||
|
"files": [
|
||||||
|
"components/",
|
||||||
|
"composales/",
|
||||||
|
"nuxt.config.ts",
|
||||||
|
"tailwind.config.ts"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"dev": "nuxt dev .playground --port 3042",
|
||||||
|
"build": "nuxt build .playground",
|
||||||
|
"generate": "nuxt generate .playground",
|
||||||
|
"preview": "nuxt preview .playground",
|
||||||
|
"postinstall": "nuxt prepare .playground",
|
||||||
|
"lint": "eslint .",
|
||||||
|
"up": "taze major -I"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@antfu/eslint-config": "^3.0.0",
|
||||||
|
"@iconify-json/mdi": "^1.2.0",
|
||||||
|
"@nuxt/devtools": "^1.4.1",
|
||||||
|
"@nuxt/fonts": "^0.7.2",
|
||||||
|
"@nuxt/ui-pro": "^1.4.2",
|
||||||
|
"@pinia/nuxt": "^0.5.4",
|
||||||
|
"@vueuse/core": "^11.0.3",
|
||||||
|
"@vueuse/nuxt": "^11.0.3",
|
||||||
|
"eslint": "^9.9.1",
|
||||||
|
"eslint-plugin-format": "^0.1.2",
|
||||||
|
"nuxt": "^3.12.4"
|
||||||
|
}
|
||||||
|
}
|
BIN
modules/shared/public/fonts/GROBOLD.ttf
Normal file
BIN
modules/shared/public/fonts/GROBOLD.ttf
Normal file
Binary file not shown.
BIN
modules/shared/public/fonts/GROBOLD.woff
Normal file
BIN
modules/shared/public/fonts/GROBOLD.woff
Normal file
Binary file not shown.
BIN
modules/shared/public/fonts/GROBOLD.woff2
Normal file
BIN
modules/shared/public/fonts/GROBOLD.woff2
Normal file
Binary file not shown.
37
modules/shared/tailwind.config.ts
Normal file
37
modules/shared/tailwind.config.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import type { Config } from 'tailwindcss'
|
||||||
|
import defaultTheme from 'tailwindcss/defaultTheme'
|
||||||
|
|
||||||
|
export default <Partial<Config>>{
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
fontFamily: {
|
||||||
|
logo: ['Grobold'],
|
||||||
|
sans: ['Londrina Solid', 'DM Sans', ...defaultTheme.fontFamily.sans]
|
||||||
|
},
|
||||||
|
colors: {
|
||||||
|
'orange': {
|
||||||
|
'50': '#fffbec',
|
||||||
|
'100': '#fff6d3',
|
||||||
|
'200': '#ffe9a5',
|
||||||
|
'300': '#ffd76d',
|
||||||
|
'400': '#ffba32',
|
||||||
|
'500': '#ffa20a',
|
||||||
|
'600': '#ff8a00',
|
||||||
|
'700': '#cc6502',
|
||||||
|
'800': '#a14e0b',
|
||||||
|
'900': '#82410c',
|
||||||
|
'950': '#461f04',
|
||||||
|
},
|
||||||
|
'black': {
|
||||||
|
'500': '#303030',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fontSize: {
|
||||||
|
'hlogo': '45px',
|
||||||
|
},
|
||||||
|
boxShadow: {
|
||||||
|
'input-orange': 'inset 0 0 0 1px #ffa20a',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
modules/shared/tsconfig.json
Normal file
3
modules/shared/tsconfig.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "./.playground/.nuxt/tsconfig.json"
|
||||||
|
}
|
0
modules/supabase/.gitkeep
Normal file
0
modules/supabase/.gitkeep
Normal file
@ -1,10 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "force-orange",
|
"name": "force-orange",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"main": "index.js",
|
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"packageManager": "pnpm@9.4.0",
|
"packageManager": "pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1",
|
||||||
"description": "Site des bénévoles de Paris Est Ludique",
|
"description": "Site des bénévoles de Paris Est Ludique",
|
||||||
"author": "ChatonDeAru <https://github.com/chatondearu>",
|
"author": "ChatonDeAru <https://github.com/chatondearu>",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
5912
pnpm-lock.yaml
generated
5912
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user