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 **/
}
}