npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vue-gantt-absolute

v0.1.1

Published

Librería Gantt libre para Vue 3 (Composition API)

Downloads

350

Readme

vue-gantt-absolute

Librería de diagrama de Gantt libre (MIT) para Vue 3 composition API

Estado: MVP v0.2 — pensada para crecer con la comunidad.

📖 Documentación y playground: https://cristianabsoluto.com/componentes/vue-gantt-absolute

Instalación

npm install vue-gantt-absolute

Uso

<script setup lang="ts">
import { ref } from 'vue'
import { GanttChart, type GanttTask } from 'vue-gantt-absolute'
import 'vue-gantt-absolute/style.css'

const tasks = ref<GanttTask[]>([
  { id: 1, name: 'Investigación', start: '2026-07-01', end: '2026-07-04' },
  { id: 2, name: 'Diseño', start: '2026-07-03', end: '2026-07-08' }
])
</script>

<template>
  <GanttChart :tasks="tasks" @update:tasks="tasks = $event" />
</template>

Props

| Prop | Tipo | Default | Descripción | |-------------------------|-------------------------------|----------|-------------------------------------------| | tasks | GanttTask[] | — (requerido) | Lista de tareas (ver campos abajo) | | dayWidth | number | 44 | Ancho en px de cada columna de día | | rowHeight | number | 40 | Alto en px de cada fila | | leftWidth | number | 400 | Ancho inicial del panel izquierdo (redimensionable arrastrando el borde, y colapsable con el botón /) | | startDateColumnWidth | number | 110 | Ancho de la columna "Start Date" | | progressColumnWidth | number | 90 | Ancho de la columna "Progress" | | durationColumnWidth | number | 90 | Ancho de la columna "Duration" | | height | string | 'auto' | Alto total visible del componente. 'auto' ajusta al contenido; pasa un valor fijo (ej. '400px') para forzar scroll interno | | holidays | string[] | [] | Fechas (YYYY-MM-DD) a sombrear como feriado, además de sábados/domingos | | labels | GanttLabels | {} | Textos de los headers del panel izquierdo, para i18n: { taskName?, startDate?, progress?, duration? } | | showPlanned | boolean | true | Muestra/oculta la franja de baseline (plannedStart/plannedEnd) y la línea "Planned" del tooltip | | theme | 'light' \| 'dark' \| 'auto' | 'auto' | 'auto' respeta prefers-color-scheme del sistema; 'light'/'dark' fuerza el tema |

Campos de GanttTask

| Campo | Tipo | Descripción | |-----------------|--------------------------|----------------------------------------------------| | id | string \| number | Identificador único | | name | string | Nombre mostrado en el panel izquierdo y la barra | | start | string (YYYY-MM-DD) | Fecha de inicio | | end | string (YYYY-MM-DD) | Fecha de fin (igual a start para un milestone) | | dependsOn? | (string \| number)[] | Ids de tareas predecesoras (dibuja flechas) | | parentId? | string \| number | Id de la tarea padre (jerarquía colapsable) | | progress? | number (0–100) | Porcentaje de avance mostrado dentro de la barra y de la columna "Progress" | | milestone? | boolean | Si es true, se dibuja como rombo en vez de barra | | plannedStart? | string (YYYY-MM-DD) | Fecha de inicio planificada (baseline); requiere showPlanned | | plannedEnd? | string (YYYY-MM-DD) | Fecha de fin planificada (baseline); requiere showPlanned | | color? | string (CSS color) | Color de la barra/rombo de esta tarea; si se omite usa el acento por defecto (--vga-accent) |

Eventos

  • update:tasks — se emite al soltar una barra arrastrada o redimensionada, con las tareas actualizadas.
  • update:leftWidth — se emite al soltar el handle de resize del panel izquierdo, con el nuevo ancho en px (útil para v-model:left-width).

Qué incluye este MVP

  • Grilla de días calculada automáticamente según el rango de tareas, con fila de meses arriba
  • Barras posicionadas por fecha, con color personalizable por tarea (color)
  • Arrastre horizontal de barras (mover fechas) con PointerEvent + setPointerCapture
  • Redimensionar barras arrastrando el borde izquierdo o derecho (cambia start/end respetando 1 día mínimo)
  • Scroll vertical sincronizado entre lista de tareas y timeline
  • Flechas de dependencia entre tareas (dependsOn), con overlay SVG que se recalcula al arrastrar o redimensionar
  • Jerarquía padre/hijo colapsable (parentId) con indentado y toggle ▼/▶
  • Línea vertical marcando el día de hoy
  • Sombreado de fines de semana y feriados (holidays)
  • Panel izquierdo con columnas Task Name / Start Date / Progress / Duration, redimensionable (drag) y colapsable
  • Barra de progreso interna (progress), también visible como relleno en la columna "Progress"
  • Baseline: franja de "planificado vs. actual" (plannedStart/plannedEnd), togglable con showPlanned
  • Hitos/milestones (milestone: true) dibujados como rombo, arrastrables
  • Tooltip al pasar el mouse por una barra o hito, con fechas actuales y planificadas
  • Dark mode automático (prefers-color-scheme) o forzado vía prop theme
  • Labels configurables (i18n) vía prop labels

Qué falta (próximas versiones)

  • Niveles de zoom (semana/mes)
  • Edición inline del nombre de tarea
  • Auto-cálculo de fechas del padre en base a sus hijos (roll-up)

Desarrollo local

npm install
npm run dev      # levanta el playground en http://localhost:5173
npm run build    # genera dist/ como librería (ESM + UMD + tipos)

Licencia

MIT — libre para usar, modificar y distribuir. Si te resulta útil, las donaciones son bienvenidas: paypal.me/cristianabsoluto.