Skip to content

Progress bar - #7

Open
JuanK854 wants to merge 5 commits into
updatesfrom
progress-bar
Open

Progress bar#7
JuanK854 wants to merge 5 commits into
updatesfrom
progress-bar

Conversation

@JuanK854

Copy link
Copy Markdown
Collaborator

Qué se hizo

Cada módulo del sidebar de /docs (Introducción, Empieza aquí, Fundamentos…)
es ahora un acordeón con barra de progreso y contador 6/7, al estilo de los
módulos de un curso. Sirve para llevar el avance del proyecto semana a semana.

  • Se marca al llegar al final de la lección, no al entrar. Un centinela
    invisible al cierre del artículo lo detecta con IntersectionObserver.
  • Los puntos del sidebar marcan y desmarcan a mano, sin navegar a la lección.
  • El progreso vive en localStorage, porque las docs no tienen login.
  • Sólo el módulo que estás leyendo arranca abierto; los demás quedan plegados.

Cambios incluidos

feat(docs) · Progreso por módulo
La feature. Agrega ProgressProvider (estado compartido en localStorage) y
MarkOnScroll (el centinela), y reescribe Sidebar como acordeón con barra,
contador y checks.

Incluye dos correcciones al propio estado del progreso:

  • El provider fusiona lo guardado en vez de reemplazarlo. Los efectos de los
    hijos corren antes que los del padre, así que la lección actual se marcaba y
    el provider la borraba al cargar localStorage justo después.
  • El provider escucha el evento storage. Con dos pestañas abiertas en las
    docs, la que escribía pisaba el avance de la otra.

Y una de layout: el sidebar reserva el hueco de la barra de scroll
(scrollbar-gutter). Al expandir un módulo aparecía la barra, le quitaba ~15px
de ancho y re-acomodaba todo el texto.

fix(docs) · Tabla de contenidos vacía en Windows
getHeadings partía el MDX con split("\n"), dejando un \r al final de cada
línea en checkouts con core.autocrlf. El regex de headings no cerraba —en JS
. no matchea \r y $ sólo ancla al final del string—, devolvía [] y
TableOfContents renderizaba null. En producción (Linux, LF) nunca se notó;
sólo rompía el desarrollo en Windows.

fix(docs) · Ctrl+K fuera de Mac
El atajo ya escuchaba metaKey y ctrlKey, pero el <kbd> estaba fijo en ⌘K.
Ahora muestra la tecla según la plataforma.

fix · Link de Remotto
Apuntaba a remotto.com en vez de remotto.ai.

arampersand and others added 5 commits July 15, 2026 15:33
Cada módulo del sidebar es ahora un acordeón con barra de progreso y
contador (6/7), al estilo de los módulos de un curso.

- El progreso vive en localStorage (las docs no tienen login).
- Una lección se marca sola al llegar al final del artículo, vía
  IntersectionObserver sobre un centinela invisible.
- Los puntos del sidebar marcan y desmarcan a mano, sin navegar.
- Sólo el módulo que estás leyendo arranca abierto.

El provider fusiona lo guardado en vez de reemplazarlo: los efectos de
los hijos corren antes que los del padre, así que la lección actual
podía marcarse antes de que cargara localStorage y se perdía la marca.
También escucha el evento `storage`, porque con dos pestañas abiertas
la que escribía pisaba el avance de la otra.

El sidebar reserva el hueco de la barra de scroll (scrollbar-gutter):
al expandir un módulo aparecía la barra, le quitaba ~15px de ancho y
re-acomodaba todo el texto.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
getHeadings partía el MDX con split("\n"), dejando un \r al final de
cada línea en checkouts con core.autocrlf. El regex de headings no
cerraba, porque en JS `.` no matchea \r y `$` sólo ancla al final del
string — devolvía [] y TableOfContents renderizaba null.

En producción (Linux, LF) nunca se notó; sólo afectaba al desarrollo
en Windows. Partir con /\r?\n/ funciona con ambos finales de línea.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
El atajo ya escuchaba metaKey y ctrlKey, pero el <kbd> estaba fijo en
⌘K. Ahora detecta la plataforma y muestra la tecla que corresponde.

Arranca en Ctrl+K para que el render del servidor coincida con el
primero del cliente y no haya error de hidratación; en Mac se corrige
al montar.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vibe-fast-web Ready Ready Preview, Comment Jul 16, 2026 6:50pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants