From a9d1f44df2a47742e8abbc7bd088b4def62c63ba Mon Sep 17 00:00:00 2001 From: erikgh Date: Mon, 3 Aug 2026 11:12:24 -0600 Subject: [PATCH] =?UTF-8?q?feat(recorrido):=20ParDialogo=20=E2=80=94=20la?= =?UTF-8?q?=20situaci=C3=B3n=20y=20la=20respuesta=20como=20un=20intercambi?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Las dos voces se distinguen por tres cosas a la vez —etiqueta de quien habla, columna y regla lateral—, nunca solo por color. Co-Authored-By: Claude Opus 5 --- components/primitives/ParDialogo.tsx | 52 +++++++++++++++++++ .../primitives/__tests__/ParDialogo.test.tsx | 46 ++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 components/primitives/ParDialogo.tsx create mode 100644 components/primitives/__tests__/ParDialogo.test.tsx diff --git a/components/primitives/ParDialogo.tsx b/components/primitives/ParDialogo.tsx new file mode 100644 index 0000000..a3b2d21 --- /dev/null +++ b/components/primitives/ParDialogo.tsx @@ -0,0 +1,52 @@ +'use client'; + +import { motion } from 'framer-motion'; +import { Wordmark } from '@/components/primitives/Wordmark'; +import { fadeInUp } from '@/lib/motion'; + +// One exchange of the page's conversation: the reader's situation, then what +// creeer does about it. +// +// The sides never swap from one pair to the next. Each voice keeps its own +// margin, the way a conversation reads on a page; what alternates going down is +// situación → respuesta, not left → right. Flipping sides per pair would cost +// the reader the one cue that tells them who is speaking. +// +// Three cues carry that distinction, never colour alone: the speaker label, the +// column, and the rule hanging off each block. The answer also drops half a +// step below the situation on wide screens, so the eye reads it as a reply +// rather than as a second column of the same thought. +// +// No motion.li here on purpose: Framer propagates variants through React +// context, so the two motion.div children still inherit the stagger from the +//