Herramientas de desarrolladores

La mejora Herramientas de Desarrolladores ofrece una amplia gama de opciones
de personalización del tablero mediante scripts y hojas de estilo propios. Todo lo que necesitas son buenas ideas y conocimientos básicos de Javascript y CSS.
Todas las herramientas disponibles actualmente se pueden habilitar desde Ajustos del tablero → Complementos → Herramientas de Desarrolladores.
Ten en cuenta que las Herramientas de Desarrolladores están disponibles para los usuarios con privilegios de propietario o administrador de la cuenta.

¿Cómo utilizar las Herramientas de Desarrolladores?

Con el complemento de Herramientas de Desarrolladores, puedes mejorar tu tablero con scripts y hojas de estilo personalizadas, dando vida a tus ideas con solo un poco
de JavaScript o CSS.

Explora una colección cada vez mayor de scripts gratuitos en nuestro repositorio GitHub, o crea los tuyos propios para adaptar Kanban Tool a tus necesidades. Aprovecha todo
el potencial de la personalización y haz que el flujo de trabajo sea realmente tuyo.

El complemento se puede añadir directamente desde la página Ajustes → Complementos → Herramientas de Desarrolladores de tu tablero, de una de las siguientes maneras:

  • Enlace a un script ya creado: copia un enlace del repositorio GitHub de Kanban Tool y pégalo
    en Herramientas de Desarrolladores, en “Introduce enlaces a los textos seleccionados abajo”.
  • JavaScript personalizado: pega tu propio código en “Javascript”.
  • CSS personalizado: aplica tus propios estilos en “CSS”.
Habilitar un script de Herramientas de Desarrolladores existente

Fuente grande: fuente más grande en tarjetas cerradas

¿Quieres aumentar el tamaño de los títulos de tus tarjetas?
Prueba este sencillo script para aumentar el tamaño predeterminado de la fuente
en las tareas cerradas:

  • medium-font.css aumenta ligeramente el tamaño del texto.
  • large-font.css facilita aún más la lectura de un vistazo.

¿Cómo se aplica?

Para utilizar el script Large Font (Fuente grande), ve a Ajustes → Complementos → Herramientas de Desarrolladores, pega cualquiera de los enlaces en el área Introduce enlaces a los textos seleccionados abajo y confirma haciendo clic en Guardar cambios.

/scripts/large-font/medium-font.css
/scripts/large-font/large-font.css

¿Prefieres especificar tú mismo el tamaño y el tipo de fuente?

¡Claro que sí! En lugar de utilizar la Large Font (Fuente grande), solo tienes que personalizar el siguiente CSS con la familia y el tamaño de fuente que prefieras (utiliza valores em o px), a continuación, pegarlo en la ranura CSS de las Herramientas
de Desarrolladores.

.kt-task-body {font-family:"PT Serif" !important; font-size:2em !important;}

¿Prefieres aumentar todos los elementos del tablero?

También puedes ajustar el zoom del tablero en la configuración del fondo del tablero para ampliar la vista completa del tablero. ¡No es necesario pegar enlaces de scripts ni CSS!

Inclinación de Tarjeta: aspecto de notas adhesivas reales

¿Quieres añadir un toque especial a tus tableros? El script Card Tilt (Inclinación de Tarjeta) le da a tus tarjetas un aspecto divertido, similar al de las notas adhesivas, rompiendo con la alineación rígida para crear una sensación más creativa.

¿Cómo se aplica?

Para utilizar Inclinación de Tarjeta, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/card-tilt/card-tilt.js
El script Card Tilt

¿Quieres ajustar aún más el diseño del tablero?

Prueba las siguientes funciones para que el tablero resulte más divertido y atractivo para tu equipo:

Eliminar Todo: eliminar todas las tarjetas de una columna

¿Cansado de eliminar tareas una por una? El script Delete All (Eliminar Todo) te lo pone fácil.
Añade una opción Delete all al menú contextual de tu columna; solo tienes que hacer clic con el botón derecho en un espacio vacío dentro de una columna para acceder a ella.

Eliminar todas las tareas con un script de las Herramientas de Desarrolladores

¿Cómo se aplica?

Para utilizar Eliminar Todo, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/delete-all/delete-all.js

Asegúrate de utilizar esta función con precaución. Aunque las tareas eliminadas se pueden recuperar durante un tiempo limitado, solo los administradores y propietarios de la cuenta tienen acceso a esta acción.
Para obtener los mejores resultados, recomendamos archivar las tareas completadas
en lugar de eliminarlas.

Guardar y Listo: envía una tarea directamente a 'Hecho'

El script Save and Done (Guardar y listo) añade una opción adicional a la vista de tareas abiertas, lo que te permite enviar una tarjeta al final del proceso con un solo clic.

Al hacer clic en el nuevo botón Move to Done (Mover a Hecho), la tarjeta se guardará
y se moverá a la última columna (la más a la derecha) de tu tablero. ¡Se acabaron los tediosos movimientos manuales de aquellas tareas que no necesitan pasar por todas las columnas del proceso del tablero!

El script Guardar y Listo

¿Cómo se aplica?

Para utilizar Guardar y Listo, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/save-done/save-done.js

Tarea Completada: mover a 'Hecho' desde el menú contextual

¿Quieres una forma más rápida de completar tareas? El script Task Done (Tarea Completada) añade una nueva opción al menú contextual de tu tarea, lo que te permite moverla instantáneamente a la última columna, sin importar dónde se encuentre
en tu tablero.

El script Tarea Completada

Perfecto para tareas que no necesitan pasar por todo el flujo de trabajo, este sencillo atajo te ayuda a mantenerte organizado y trabajar de forma más eficiente.

¿Cómo se aplica?

Para utilizar Tarea Completada, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/task-done/task-done.js

Cambiar Columna: mover tarea a cualquier etapa

¡Aumenta tu productividad al máximo habilitando una opción adicional en el menú
de tarjetas para transferir rápidamente tareas entre cualquier columna del tablero!

El script Cambiar Columna

¿Cómo se aplica?

Para utilizar Change Column (Cambiar Columna), ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces
a los scripts seleccionados
. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/change-column/change-column.js

Tiempo de Ciclo: tiempo desde creación de la tarea

¡Realiza un seguimiento de tu flujo de trabajo con facilidad! El script Cycle Time (Tiempo
de Ciclo)
añade un valor de tiempo transcurrido a cada tarjeta, mostrándote exactamente cuánto tiempo ha pasado desde que se creó.

Con esta información en tiempo real, puede evaluar rápidamente la eficiencia del proceso y mantenerse al tanto de su progreso.

El script Tiempo de Ciclo

¿Cómo se aplica?

Para utilizar Tiempo de Ciclo, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/cycle-time/cycle-time.js

Altura Fija de la Tarjeta: quitar espacios en columnas anchas

¿Quieres un tablero más limpio y organizado? El script Fixed Card Height (Altura Fija de las Tarjeta) garantiza que tus tareas se alineen perfectamente, eliminando el espacio adicional entre las tarjetas en columnas más anchas.

Elige entre cuatro alturas finales para las tarjetas (pequeña - small, mediana - medium, grande - large o extragrande - xlarge) para personalizar el aspecto de tu tablero
y mantener todo perfectamente organizado. Pruébalo y disfruta de un flujo de trabajo más ordenado.

El script Altura Fija de las Tarjeta

Nota: Este script no es compatible con algunos de los potenciadores que alteran el diseño de las tareas: Listas de Control Interactivas, Cubiertas de Tarjetas y Resumen de Tareas.

¿Cómo se aplica?

Para utilizar Altura Fija de la Tarjeta, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/fixed-cards-height/small-cards.css
/scripts/fixed-cards-height/medium-cards.css
/scripts/fixed-cards-height/large-cards.css
/scripts/fixed-cards-height/xlarge-cards.css

Ordenar por Prioridad: aplicar el pedido por prioridad

¿Quieres asegurarte de que las tareas se abordan en el orden correcto? ¡El script Order Highlight (Ordenar por Prioridad) te lo pone fácil!
El complemento resalta las columnas en rojo cada vez que las tareas no siguen el orden basado en prioridades, lo que te proporciona una clara señal visual cuando se pasan por alto las prioridades.

El script sigue esta jerarquía:

  • Alta prioridad → Prioridad normal (o sin prioridad establecida) → Baja prioridad
El script Ordenar por Prioridad

¿Cómo se aplica?

Para utilizar Ordenar por Prioridad, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/order-highlight/order-highlight.js

Autoasignación por Carriles: asignación de tareas por carriles

Si desea que cada carril de su tablero contenga tareas para un miembro específico del equipo, puede configurarlo de manera que al mover una tarjeta a un carril determinado, esta se asigne automáticamente a la persona adecuada.

Dado que cada tarea genera una notificación por correo electrónico, nada se te pasará por alto.

¿Cómo se aplica?

  • Para utilizar Swimlane Auto-Assign (Autoasignación por Carriles), ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.
    /scripts/swimlane-auto-assign/swimlane-auto-assign.js
  • A continuación, añade el nombre de un miembro del equipo al título del carril que contendrá sus tareas
    y ya está todo listo.

El script Autoasignación por Carriles

¿Necesitas ayuda para ajustar los nombres de tus tableros y carriles? Visita esta página.

Avatares de Usuario: mostrar asignaciones con imágenes de usuario

¿Quieres una forma rápida de personalizar el tablero de tu equipo? El script User Avatars (Avatares de Usuario) añade las fotos de los miembros del equipo a la parte frontal de las tarjetas, lo que permite ver fácilmente quién está trabajando en qué de un solo vistazo.

El script Avatares de Usuario

¿Cómo se aplica?

  • Tenga en cuenta que el script requiere personalización.
  • Sube las fotos de tu equipo en línea y añade las URL de las imágenes a la plantilla de script disponible aquí. Incluye imágenes de todos los miembros del equipo que trabajan en el tablero para evitar previsualizaciones defectuosas.
  • Ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el código modificado
    en el área designada para Javascript, luego confirma haciendo clic en el botón Guardar cambios.

Mostrar Todos los Ajustes: acceso más rápido a los ajustes

Si actualizas tu tablero con frecuencia, modificando los tipos de tarjetas, la plantilla,
el fondo, el diseño del flujo de trabajo, los complementos o la automatización de procesos, hay una forma de acceder más rápidamente a las páginas de configuración específicas.

El script Show All Settings (Mostrar Todos los Ajustes) añade enlaces directos a estas opciones justo al lado del menú Herramientas, para que puedas ir directamente a lo que necesitas:

  • T - Tipos de Tarjetas
  • C - Configuración de Tarjeta
  • B - Fondo de Tablero
  • W - Editor de Tablero
  • P - Complementos
  • A - Automatización de Procesos
El script Mostrar Todos los Ajustes

¿Cómo se aplica?

Para utilizar Mostrar Todos los Ajustes, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/show-all-settings/show-all-settings.js

Tarjetas Opacas: tareas semitransparentes

¿Crees que tu tablero necesita un cambio de imagen? El script Card Opacity (Tarjetas Opacas) añade un toque elegante al hacer que las tarjetas cerradas sean semitransparentes, lo que le da a tu tablero un aspecto más ligero y moderno.

El script Tarjetas Opacas

¿Cómo se aplica?

Para utilizar Tarjetas Opacas, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/card-opacity/card-opacity.js

Para obtener el mejor efecto, combínalo con su complemento perfecto: ¡el tema Lite!

Barra de Progreso: estado de la lista

De forma predeterminada, las tarjetas de tareas muestran un progreso numérico en forma de lista de control, por ejemplo, 3/5, o un cuando todo está marcado.

Vista previa del progreso de la lista de control

El script Checklist Progress Bar (Barra de Progreso) va un paso más allá al añadir una elegante barra de progreso blanca a las tarjetas cerradas, lo que ofrece una visión instantánea de lo que has avanzado.

Barra de progreso de la lista de control visible en las tareas

La longitud de la barra se ajusta dinámicamente en función de los elementos completados de la lista de verificación, lo que facilita el seguimiento del progreso de un vistazo
y te da ese impulso extra de motivación a medida que te acercas a tus objetivos.

¿Cómo se aplica?

Para utilizar Barra de Progreso, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/checklist-progressbar/checklist-progressbar.js

Imágenes de Columnas: gráficos en los encabezados de columna

¿Te apetece hacer tu flujo de trabajo más intuitivo visualmente? Puedes añadir imágenes
a cada encabezado de columna para reconocer rápidamente las diferentes etapas.

El script Imágenes de Columnas

¿Cómo se aplica?

  • Ten en cuenta que el script requiere personalización.
  • Adjunta los archivos de imagen de las columnas a cualquier tarjeta del tablero.
  • Copia la plantilla del script desde aquí.
  • Personaliza el script para incluir:
    →Las URL de las imágenes que has subido.
    →Los nombres exactos de las columnas en las que debe aparecer cada imagen.
    →Además, si tu tablero tiene más de tres columnas, solo tienes que añadir líneas adicionales en el script para incluirlas todas.
  • Ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el código modificado
    en el área designada para Javascript, luego confirma haciendo clic en el botón Guardar cambios.

Nota: Cuando utilices imágenes también para las subcolumnas, para contraerlas correctamente, contrae primero la subcolumna y luego la columna principal.

¿Quieres imágenes también en el anverso de las tarjetas? Echa un vistazo al complemento Cubiertas de Tarjetas.

Listas Grandes: fuente más grande en listas

¿Necesitas una visión más clara de tus tareas pendientes? El script Large Interactive Checklists (Listas Grandes) aumenta el tamaño de la fuente de los elementos de la lista
de control en las tarjetas cerradas
, lo que facilita su lectura de un vistazo.

El script Listas Grandes

¿Cómo se aplica?

Para utilizar Listas Grandes, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/large-interactive-checklist/large-interactive-checklist.css

¿Cómo personalizarlo?

¿Quieres un tamaño de fuente diferente? ¡No hay problema! Accede al script en nuestro repositorio GitHub, ajusta el valor px para el tamaño de la fuente y pega las líneas actualizadas en la ranura CSS de las Herramientas de Desarrolladores de tu tablero.

¿Quieres ampliar todo lo que hay en tu tablero?

¡Prueba la función de zoom del tablero para verlo a tamaño completo!

Saturación de Tarjetas: atenuar los colores

¿Te parecen demasiado brillantes los colores estándar de las tarjetas? El script Card Saturation (Saturación de Tarjetas) te permite atenuarlos para conseguir un aspecto más suave y apagado.

El script Saturación de Tarjetas se activa y se desactiva

¿Cómo se aplica?

Para utilizar Saturación de Tarjetas, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/card-saturation/card-saturation.css

¿Cómo personalizarlo?

¿Quieres ajustar aún más el nivel de saturación? Solo tienes que acceder al script, modificar el valor de saturación 0,8 que se muestra según tus preferencias y pegar la línea actualizada en el área CSS de la ventana Herramientas de Desarrolladores de tu tablero.

¡Disfruta de un tablero más equilibrado visualmente que se adapta a tu estilo!

Sin Archivo: solo los administradores pueden archivar tareas

¿Quieres asegurarte de que solo los miembros del equipo con un alto nivel de acceso puedan decidir cuándo se archivan las tareas? El script No Archive (Sin Archivo)
te lo permite.
Elimina la opción Archivar de los menús contextuales de las tareas para todos, excepto para los administradores y propietarios de la cuenta, con el fin de garantizar que solo las personas adecuadas puedan archivar las tareas.

¿Cómo se aplica?

Para utilizar Sin Archivo, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/no-archive/no-archive.js

Carriles más Cortos: reducir la altura de los carriles

De forma predeterminada, los carriles tienen una altura mínima de tres tarjetas, lo que puede hacer que tu tablero sea bastante alto, especialmente si tienes muchos carriles. ¿Quieres una vista más compacta? Los scripts Shorter Swimlanes (Carriles más Cortos)
te permiten reducirlos de dos maneras.

¿Cómo se aplica?

  • Altura flexible de los carriles: ajusta los carriles vacíos mientras mantiene el tamaño de los demás para que se adapten a sus tarjetas.
    Para utilizarlo, ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic
    en Guardar cambios.
    /scripts/shorter-swimlanes/shorter-empty-swimlanes.css
    Altura reducida de las carriles vacías
  • Carril de natación desplazable: acorta todos los carriles de natación y los hace desplazables cuando contienen más de una tarjeta. Nota: esta variante solo es compatible con Microsoft Edge y Google Chrome.
    Para utilizarlo, ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic
    en Guardar cambios.
    /scripts/shorter-swimlanes/shorter-swimlanes.css
    Carriles de navegación más cortos y desplazables en Chrome o Edge

Sin Cambio de Prioridad: desactivar prioridades en el menú contextual

La prioridad de tareas es una función muy popular de Kanban Tool, disponible tanto desde la vista de tarjetas abiertas como desde el menú contextual de la tarjeta. Pero si prefieres desactivar la prioridad por completo en tu tablero, aquí te explicamos cómo hacerlo:

  • Desactiva el campo de prioridad en los ajustes de la Configuración de Tarjeta.
  • Aplica el script No Change Priority (Sin Cambio de Prioridad) para eliminar la opción de prioridad del menú contextual de la tarjeta:
    ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.
    /scripts/no-change-priority/no-change-priority.js

Encabezados Grandes: aumentar los títulos de las columnas

¿Quieres que los nombres de tus columnas destaquen? El script Large Column Headers (Encabezados Grandes) aumenta el tamaño de la fuente de los nombres de las etapas
de trabajo, haciéndolos más visibles en el tablero.

Lo mejor de todo es que la fuente se escala proporcionalmente, por lo que, incluso cuando se aplica un zoom al tablero, los encabezados siguen siendo claros y tienen
un tamaño adecuado.

El script Encabezados Grandes

¿Cómo se aplica?

Para utilizar Encabezados Grandes, ve a Ajustes → Complementos → Herramientas
de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/large-board-headers/large-board-headers.css

Fondo de Columna: rellenar columnas con color

¿Te gustaría añadir un poco de color al diseño de tu tablero?
Mientras que el complemento Resaltar Columna te permite resaltar columnas específicas con un color, el script Column Background (Fondo de Columna) te permite rellenar columnas enteras, o carriles, con color, haciendo que las áreas clave destaquen a simple vista.

El script Fondo de Columna

¿Cómo se aplica?

  • Ten en cuenta que el script requiere modificaciones.
  • Copia la plantilla del script y personalízala para que coincida con los nombres únicos de las columnas
    o carriles de tu tablero.
  • Ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el código modificado
    en el área designada para Javascript, luego confirma haciendo clic en el botón Guardar cambios.

¿Quieres aplicar más cambios de diseño? Explora la configuración de Fondo del Tablero para ver los temas de color y los ajustes de zoom, los Tipos de Tarjetas para modificar
el color de las tareas, y Cubiertas de Tarjetas o Resumen de Tareas para ampliar
la visualización de las tareas cerradas con imágenes o información adicional.

Abrir/Cerrar Tarea Inicia/Detiene el Temporizador

La gestión del tiempo de Kanban Tool registra automáticamente el tiempo cuando una tarea se mueve a una columna del tipo En progreso y se detiene cuando se mueve a otra columna, para que puedas concentrarte plenamente en el trabajo y no en gestionar
el temporizador.

Sin embargo, también es posible realizar una gestión del tiempo solo mientras se tiene abierta la vista completa de la tarea.
El script Task Opening/Closing Starts/Stops the Timer (Abrir/cerrar inicia/detiene
el temporizador)
iniciará el temporizador cuando se abra una tarea y lo detendrá cuando se cierre, independientemente del tipo de columna en la que se encuentre la tarea.

Abrir-cerrar inicia-detiene el temporizador

¿Cómo se aplica?

Para utilizar Abrir/Cerrar Tarea Inicia/Detiene el Temporizador, ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic
en Guardar cambios.

/scripts/task-start-timer/task-start-timer.js

Resaltado de Dependencias: mostrar tareas dependientes

Las tareas vinculadas a través de las Dependencias de Tareas aparecen como una lista
en la vista de tareas. Sin embargo, si lo que quieres es una señal visual rápida directamente en el tablero, eso también es posible.

Con el script Task Dependencies Highlight (Resaltado de Dependencias), obtienes una vista previa de las tarjetas que dependen de una tarea principal. La tarea principal mantiene
su resaltado habitual, mientras que las tarjetas dependientes obtienen un toque de color adicional para mayor claridad.

El script Resaltado de Dependencias

¿Cómo se aplica?

Para utilizar Resaltado de Dependencias) ve a Ajustes → Complementos → Herramientas de Desarrolladores y pega el siguiente enlace en el área Introduce enlaces a los scripts seleccionados. A continuación, confirma haciendo clic en Guardar cambios.

/scripts/task-dependencies-highlight/task-dependencies-highlight.js