This commit is contained in:
isUnknown 2024-12-16 15:29:54 +01:00
parent 95f690bf84
commit 8fe39c7378
11 changed files with 79 additions and 169 deletions

View file

@ -1,29 +0,0 @@
Title: Brief client
----
Stepname: clientBrief
----
Pdf:
----
Description:
Nouvelle réflexion pour le lancement d'un nouveau flacon sur le thématique suivante :
Minimalisme oriental : Nous visons la simplicité sophistiquée, s'alignant sur une esthétique minimaliste. Des artistes comme Donald Judd ou Agnès Martin, connus pour leur approche minimaliste, pourraient guider notre vision du design de l'emballage.
Nous envisageons d'animer cette ligne avec différents flankers et édition limitées.
----
Moodboard: - file://WmjnmmaT7LeUkWUA
----
Stepindex: 1
----
Uuid: TewjNkF57vAlfdGB

View file

@ -1,17 +0,0 @@
Title: Offre commerciale
----
Stepname: proposal
----
Stepindex: 2
----
Uuid: 6fd7hJ1fZz77Rfq2
----
Pdf:

View file

@ -1,25 +0,0 @@
Title: Brief enrichi
----
Stepname: extendedBrief
----
Stepindex: 3
----
Uuid: iSXLsd7fMHRahzr5
----
Pdf:
----
Description:
----
Moodboard:

View file

@ -1,21 +0,0 @@
Title: Échantillon virtuel
----
Stepname: virtualSample
----
Stepindex: 5
----
Uuid: nzvCj5IzV3ZiPoMj
----
Rawglass:
----
Finishedglass:

View file

@ -1,13 +0,0 @@
Title: Idéation industrielle
----
Stepname: industrialIdeation
----
Stepindex: 4
----
Uuid: BO77ya5AXE2phDu3

View file

@ -1,13 +0,0 @@
Title: Échantillon physique
----
Stepname: physicalSample
----
Stepindex: 6
----
Uuid: qfneb7LJcFU83BEN

View file

@ -1,13 +0,0 @@
Title: Flacon Design To Pack
----
Currentstep: clientBrief
----
Client: - page://G418qZ4ABsoWFx4i
----
Uuid: nglvDbbcfFT88yi0

View file

@ -24,48 +24,14 @@
<div class="track">
<figure>
<div @mousedown="enableDragToRotate" class="drag-zone"></div>
<img :src="currentFile.url" alt="" width="500" height="500" />
</figure>
<fieldset>
<button
class="y-up | btn btn--icon"
@click="currentY++"
:disabled="currentY === yMax"
data-icon="chevron-single-left"
title="Pivoter vers le haut"
>
<span class="sr-only">Top</span>
</button>
<button
class="x-down | btn btn--icon"
@click="rotateX('left')"
data-icon="chevron-single-left"
title="Pivoter vers la gauche"
>
<span class="sr-only">Left</span>
</button>
<button
class="x-up | btn btn--icon"
@click="rotateX('right')"
data-icon="chevron-single-left"
title="Pivoter vers la droite"
>
<span class="sr-only">Right</span>
</button>
<button
class="y-down | btn btn--icon"
@click="currentY--"
:disabled="currentY === 0"
data-icon="chevron-single-left"
title="Pivoter vers le bas"
>
<span class="sr-only">Bottom</span>
</button>
</fieldset>
</div>
</div>
</template>
<script setup>
import throttle from "lodash/throttle";
import { ref, computed, watch } from "vue";
import { storeToRefs } from "pinia";
import { usePageStore } from "../../../stores/page";
@ -113,4 +79,80 @@ function rotateX(direction) {
currentX.value = currentX.value === xMax.value ? 0 : currentX.value + 1;
}
}
const isDragToRotateEnabled = ref(false);
window.addEventListener("mouseup", disableDragToRotate);
function enableDragToRotate() {
isDragToRotateEnabled.value = true;
}
function disableDragToRotate() {
isDragToRotateEnabled.value = false;
}
let previousMouseXPos;
let previousMouseYPos;
const DRAG_STEP = 20;
function dragToRotate(event) {
handleHorizontalRotation(event);
handleVerticalRotation(event);
}
function handleHorizontalRotation(event) {
if (previousMouseXPos === undefined) {
previousMouseXPos = event.clientX;
return;
}
if (event.clientX > previousMouseXPos + DRAG_STEP) {
rotateX("left");
previousMouseXPos = event.clientX;
} else if (event.clientX < previousMouseXPos - DRAG_STEP) {
rotateX("right");
previousMouseXPos = event.clientX;
}
}
function handleVerticalRotation(event) {
if (previousMouseYPos === undefined) {
previousMouseYPos = event.clientY;
return;
}
if (event.clientY > previousMouseYPos + DRAG_STEP) {
if (currentY.value < yMax.value) {
currentY.value++;
previousMouseYPos = event.clientY;
}
} else if (event.clientY < previousMouseYPos - DRAG_STEP) {
if (currentY.value > 0) {
currentY.value--;
previousMouseYPos = event.clientY;
}
}
}
const throttledDragToRotate = throttle(dragToRotate, 50);
watch(isDragToRotateEnabled, (newValue) => {
if (newValue) {
window.addEventListener("mousemove", throttledDragToRotate);
} else {
window.removeEventListener("mousemove", throttledDragToRotate);
previousMouseXPos = undefined;
previousMouseYPos = undefined;
}
});
</script>
<style>
.track figure {
position: relative;
}
.track .drag-zone {
position: absolute;
inset: 0;
z-index: 2;
}
</style>

View file

@ -22,7 +22,7 @@
aria-controls="dynamic"
@click="activeTab = 'dynamic'"
>
<span>Vue Dynamique</span>
<span>Présentation dynamique</span>
</button>
<button
v-if="step.files.static"