Aller au contenu
en

Le châssis d'une application outil, en 8 kB

panels

panels est une bibliothèque React d'Alban Pasquelin qui fournit le châssis d'une application outil — rails d'icônes, zones redimensionnables, centre libre avec onglets déplaçables — en 8 kB compressés, sans aucune dépendance, sous licence MIT.

import { TypeScript, React, HeadlessUI } from '@/stack'
export function (layout: WorkbenchLayout): PanelTree {

Toutes les applications outil se ressemblent : des barres d'icônes sur les côtés, des panneaux que l'on redimensionne, et au centre des documents en onglets que l'on déplace. Tout le monde le réécrit, mal, à chaque projet.

<Panels rails={[leftIcons, rightIcons]} center={<Documents tabs />} />

panels fournit ce châssis une fois pour toutes. Il est sans interface imposée : la mécanique est fournie, l'apparence reste la vôtre.

const chassis = headless(Panels) /** mechanics included, appearance yours **/

8 kB compressés, zéro dépendance, MIT. Le poids est un choix de conception, pas un accident.

expect(gzipSize).toBe('8 kB'); expect(dependencies).toHaveLength(0)
return {
gzipped: '8 kB', /** compressé **/
dependencies: 0, /** dépendance **/
licence: 'MIT', /** licence **/
}
}
Le châssis se démonteLes zones d'une application outil — rails, panneaux, centre — se séparent puis se réassemblent. C'est tout ce que fait la bibliothèque, en 8 kB.

Projets