Update Project view: add brief creation first steps

This commit is contained in:
Timothée Goguely 2024-09-25 15:22:54 +02:00
parent 0331e781da
commit 338b389477

View file

@ -1,9 +1,120 @@
<template>
<main>
<main class="flex flex-col items-stretch | w-full">
<header class="flex | bg-white | rounded-2xl | p-8 mb-16">
<h1 class="font-serif | px-8">{{ page.content.title }}</h1>
<button class="btn | ml-auto">Demander un RDV</button>
</header>
<!-- 1. Créez votre premier brief de projet ! -->
<!--
<section class="h-full | grid-center">
<div class="card | items-center | text-center | w-full max-w" style="--row-gap:var(--space-32); --max-w:27.5rem">
<h2 class="font-serif text-lg">Créez votre premier brief de projet !</h2>
<p class="text-grey-700">Bienvenu à votre nouvel espace de projet. <br>Commencez par consulter les inspirations <br>et partagez vos intentions !</p>
<button class="btn | w-full">Commencer</button>
</div>
</section>
-->
<!-- 2. Créez via la plateforme / Ajouter un PDF -->
<!--
<section class="h-full | flex flex-col justify-center items-center | mx-auto | max-w" style="--max-w:42rem; --row-gap: var(--space-32)">
<div class="flex">
<div class="card card--cta | flex-1 | h-full" style="--padding:var(--space-32);--row-gap:var(--space-32)">
<svg aria-hidden="true" width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M92.8571 46.4292H64.2857C62.3133 46.4292 60.7143 48.0282 60.7143 50.0006V92.8577C60.7143 94.8302 62.3133 96.4292 64.2857 96.4292H92.8571C94.8296 96.4292 96.4286 94.8302 96.4286 92.8577V50.0006C96.4286 48.0282 94.8296 46.4292 92.8571 46.4292Z" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M92.8571 3.57202H64.2857C62.3133 3.57202 60.7143 5.171 60.7143 7.14345V21.5006C60.7143 23.473 62.3133 25.072 64.2857 25.072H92.8571C94.8296 25.072 96.4286 23.473 96.4286 21.5006V7.14345C96.4286 5.171 94.8296 3.57202 92.8571 3.57202Z" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M35.7143 3.57202H7.14284C5.17039 3.57202 3.57141 5.171 3.57141 7.14345V50.0006C3.57141 51.973 5.17039 53.572 7.14284 53.572H35.7143C37.6867 53.572 39.2857 51.973 39.2857 50.0006V7.14345C39.2857 5.171 37.6867 3.57202 35.7143 3.57202Z" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M35.7143 74.9291H7.14284C5.17039 74.9291 3.57141 76.5281 3.57141 78.5005V92.8577C3.57141 94.8301 5.17039 96.4291 7.14284 96.4291H35.7143C37.6867 96.4291 39.2857 94.8301 39.2857 92.8577V78.5005C39.2857 76.5281 37.6867 74.9291 35.7143 74.9291Z" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<h2 class="font-serif text-lg">Créer via la plateforme</h2>
<p class="text-sm text-grey-700">Ajouter différents éléments tels que des images et du texte sur la plateforme afin de créer votre brief.</p>
</div>
<div class="card card--cta | flex-1 | h-full" style="--padding:var(--space-32);--row-gap:var(--space-32)">
<svg aria-hidden="true" width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.57153 75.0001V82.143C3.57153 85.9318 5.07663 89.5654 7.75572 92.2445C10.4348 94.9236 14.0684 96.4287 17.8572 96.4287H82.143C85.9318 96.4287 89.5654 94.9236 92.2445 92.2445C94.9236 89.5654 96.4287 85.9318 96.4287 82.143V75.0001M28.5715 28.5715L50.0001 3.57153M50.0001 3.57153L71.4287 28.5715M50.0001 3.57153V67.8573" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<h2 class="font-serif text-lg">Ajouter un pdf</h2>
<p class="text-sm text-grey-700">Vous avez déjà constitué votre brief en amont et souhaitez directement limporter.</p>
</div>
</div>
<div class="card | bg-grey-200 | items-center | text-center | w-full" style="--padding:var(--space-32);--row-gap:var(--space-16)">
<h2 class="font-serif text-lg">Quest ce que le brief ?</h2>
<p class="text-sm text-grey-700">Le brief est un outil créatif qui permet de définir les perspectives esthétiques de votre projet. Il sagit dune planche dinspiration qui aide à affirmer lambiance et les influences que vous souhaitez apporter à votre projet.</p>
</div>
</section>
-->
<!-- 3. Ajouter une ou plusieurs images -->
<section class="h-full | flex flex-col" style="--row-gap: var(--space-32)">
<header class="project-details | flex items-baseline | bg-white | rounded-2xl | p-16 | w-full">
<div class="project-details__description | flex-1">
<h2 class="text-sm text-grey-700 | mb-8">Description du projet</h2>
<textarea name="description" id="description" placeholder="Ajoutez une description générale de votre projet…" rows="3" class="border border-grey-200 | rounded-xl | p-16 | w-full"></textarea>
</div>
<div class="project-details__filters | flex-1">
<h2 class="text-sm text-grey-700 | mb-8">Filtrer par tags</h2>
<div class="flex" style="gap:var(--space-8)">
<button class="btn btn--sm btn--grey" id="all">Voir tout</button>
<button class="btn btn--sm btn--primary">Bouchon</button>
<button class="btn btn--sm btn--primary">Bouton Poussoir</button>
<button class="btn btn--sm btn--primary">Coloris & Nuances</button>
<button class="btn btn--sm btn--primary">DA Globale</button>
<button class="btn btn--sm btn--primary">Forme & Design</button>
<button class="btn btn--sm btn--primary">Matériaux & Textures</button>
<button class="btn btn--sm btn--primary">Parachèvements</button>
</div>
</div>
</header>
<div class="h-full | masonry">
<button data-icon="upload" class="flex flex-col | bg-white | border border-grey-200 | text-grey-800 | font-medium | rounded-2xl">Ajouter une ou plusieurs images</button>
<figure class="image">
<span class="tag | btn btn--sm">Tag</span>
<img
src="http://localhost:8888/media/pages/inspirations/shape-of-the-nature/6ed93d6950-1725442486/d82f18573c439d6edd434ffca62471a7.png"
alt=""
/>
</figure>
<figure class="image">
<span class="tag | btn btn--sm">Tag</span>
<img
src="http://localhost:8888/media/pages/inspirations/shape-of-the-nature/7b0fcc5012-1725442486/37a038883c87973036232aa0e43f6da2.png"
alt=""
/>
</figure>
<figure class="image">
<span class="tag | btn btn--sm">Tag</span>
<img
src="http://localhost:8888/media/pages/inspirations/shape-of-the-nature/1bbe051c5a-1725442486/0c41d3266e9ce2872f30608cceb28239.png"
alt=""
/>
</figure>
<figure class="image">
<span class="tag | btn btn--sm">Tag</span>
<img
src="http://localhost:8888/media/pages/inspirations/shape-of-the-nature/6ed93d6950-1725442486/d82f18573c439d6edd434ffca62471a7.png"
alt=""
/>
</figure>
<figure class="image">
<span class="tag | btn btn--sm">Tag</span>
<img
src="http://localhost:8888/media/pages/inspirations/shape-of-the-nature/7b0fcc5012-1725442486/37a038883c87973036232aa0e43f6da2.png"
alt=""
/>
</figure>
<figure class="image">
<span class="tag | btn btn--sm">Tag</span>
<img
src="http://localhost:8888/media/pages/inspirations/shape-of-the-nature/1bbe051c5a-1725442486/0c41d3266e9ce2872f30608cceb28239.png"
alt=""
/>
</figure>
</div>
</section>
<!-- Kanban: Status Brief Enrichi -->
<!--
<div class="kanban">
<section
class="flex-1"
@ -133,6 +244,7 @@
</div>
</section>
</div>
-->
</main>
</template>
@ -147,6 +259,79 @@ const user = useUserStore().user;
</script>
<style scope>
/* Porject details */
.project-details textarea {
resize: none;
max-height: 5rem;
}
.project-details__filters button:first-of-type {
margin-right: calc(var(--space-12) + 1px);
}
.project-details__filters button:first-of-type::after {
content: '';
width: 1px;
height: 1.7rem;
background-color: var(--color-black-20);
position: absolute;
right: calc(-.75rem);
}
button[data-icon="upload"] {
padding: 6.875rem 4.875rem;
}
/* Masonry */
.masonry > * {
margin-bottom: var(--space-16);
}
.masonry > *:only-child {
column-span: all;
transform: translateY(50%);
}
@media (min-width: 40rem) {
.masonry {
column-count: 2;
}
}
@media (min-width: 65rem) {
.masonry {
column-count: 3;
}
}
@media (min-width: 90rem) {
.masonry {
column-count: 4;
}
}
/* Image */
.image {
border-radius: var(--rounded-2xl);
overflow: hidden;
position: relative;
}
.image .tag {
position: absolute;
top: var(--space-12);
left: var(--space-12);
}
.image::after {
content: '';
display: inline-block;
width: 1rem;
height: 1rem;
background: var(--icon-color, currentColor);
mask-repeat: no-repeat;
mask-position: center;
mask-size: 1rem;
mask-image: var(--icon-description);
position: absolute;
top: 1.25rem;
right: 1.25rem;
}
/* Kanban */
.kanban {
--header-height: 2.25rem; /* 36px */
--header-bg-color: var(--color-grey-200);