Aller au contenu

Créer le vôtre, dans la barre latérale, est un espace pour fabriquer vous-même un habillage, d'une simple couleur à une composition riche en calques. Il fonctionne entièrement hors ligne. Ce que vous créez est enregistré dans Mes habillages comme n'importe quel autre habillage, et Enregistrer et appliquer le pose directement sur le dossier choisi.

L'éditeur : un insecte tiré de la bibliothèque d'icônes, incrusté dans un dossier bleu, avec la recherche d'icônes à côté et Enregistrer et appliquer en dessous

Vous voulezPartez deEnsuite
Un dossier d'une seule couleur, n'importe laquelleCouleur ou UniCliquez sur le dossier et choisissez la couleur. Le sélecteur accepte n'importe quelle couleur, avec transparence
Un dossier avec une étiquette : Recettes, Notes 2026ÉtiquetteTapez le texte, puis choisissez une police, une graisse et une couleur. Les mots courts restent lisibles aux petites tailles
Un dossier qui dit ce qu'il contient en une seule imageEmojiDouble-cliquez sur l'emoji pour le changer, ou cherchez dans le sélecteur (avec des mots anglais : dog, plane, receipt)
Une étiquette sur l'onglet lui-mêmeÉtiquette sur l'ongletLe bouton Onglet de Position place n'importe quel calque sur l'onglet
Un fond et un devant de couleurs différentesBicoloreLa séparation est cachée derrière la feuille de papier
Un dossier transparentVerre ou Verre teintéBaissez l'opacité du fond, ou supprimez-le pour un dossier incolore : seuls le papier et les bords restent
Un dossier à motifsRayures, Vichy, PoisMotif en ajoute dix sortes, des rayures aux confettis et au grain de pellicule
Une photo avec une légendePhotoL'éditeur demande d'abord l'image. Vous pourrez en déposer ou en coller d'autres ensuite
Un autocollant, un badge, tout ce qui n'a pas la forme d'un dossierAutocollantIcône libre fait de la création l'icône entière
Un disque à votre façon : Archives sur un disque externe, une photo sur une clé USBUn disque sous Partir d'un disque, ou Disque étiqueté, Disque en couleur, Disque emoji ou Disque photoLa création se pose sur la face avant du disque. Le menu sous le canevas la déplace vers un autre disque
Un disque aux couleurs de votre choix : une clé USB rouge, un disque sans étiquetteN'importe quel disqueCliquez sur une partie du disque (son boîtier, son port, sa face avant) et donnez-lui une couleur, masquez-la ou retirez-la
Un dossier avec un onglet d'une autre couleur, ou sans feuille de papierN'importe quel dossierL'onglet, l'arrière, le papier et l'avant du dossier sont dans la liste des calques, sous les calques de la création
Un dossier ou un disque pivoté, déplacé ou redimensionnéN'importe quel dossier ou disqueFaites-le glisser pour le déplacer, un coin pour le redimensionner et la poignée du dessus pour le faire pivoter. La création le suit
Un habillage existant, avec votre touche personnelleMenu ⋯ d'un habillage → Remixer dans l'éditeurL'habillage devient un calque image sur lequel construire
Une modification de ce que vous avez déjà crééSon menu ⋯ → Modifier la créationEnregistrer le met à jour sur place. Dupliquer garde les deux

Pour commencer. La première visite, et Nouveau, affichent les points de départ. Chacun est une création ordinaire : rien n'y est figé. En choisir un alors que votre création a des modifications non enregistrées demande d'abord confirmation. Partir de zéro propose, à côté des créations vides, les dossiers propres au Mac, à Windows et à Linux, et Partir d'un disque propose tous les disques qu'affiche chaque système, ceux du Mac, de Windows et de Linux sur une rangée chacun (DRIVES.md, en anglais, les liste). Quand un disque est choisi dans le panneau du dossier, Le disque que vous avez choisi arrive en tête et montre ce disque sous son propre nom. Un modèle de disque part de ce disque, ou sinon de celui de la dernière création, ou à défaut du disque externe propre à ce système.

Ajouter. La barre au-dessus du dossier ajoute du Texte, un Emoji, une Forme (treize, du rectangle arrondi à la bulle de dialogue), une Image (un fichier, l'un de vos habillages, ou une image déposée ou collée sur le dossier), un Motif et une Couleur (sélectionne le fond, ou en ajoute un).

Disposer. Cliquez sur un calque pour le sélectionner : il se teinte, avec des poignées à ses coins et sur ses côtés, et une poignée ronde au-dessus pour le faire pivoter.

  • Faites-le glisser pour le déplacer. Il s'aimante au milieu du dossier, à l'onglet, aux bords du dossier et aux autres calques. Maintenez ⌘ (Ctrl) pour le placer librement.
  • Faites glisser un coin ou un côté pour le redimensionner. Les images gardent leurs proportions depuis un coin et se recadrent depuis un côté. Le texte et les emojis gardent toujours leurs proportions.
  • Maintenez ⇧ pour pivoter par pas de 15°, ou pour garder les proportions d'une forme. Maintenez ⌥ pour redimensionner depuis le centre.
  • Double-cliquez sur du texte pour le modifier, ou sur un emoji pour le changer.
  • Cliquez sur le dossier lui-même pour sélectionner son fond ou, là où la création n'apparaît pas, la partie du dossier ou du disque sur laquelle vous avez cliqué.

Calques. La liste en haut à droite montre la pile, en commençant par le haut. Faites glisser une ligne pour changer l'ordre, double-cliquez sur un nom pour le renommer, et utilisez l'œil, le cadenas et la corbeille pour masquer un calque, le verrouiller en place ou le supprimer. Tout supprimer, au bout de l'en-tête, vide la création. Le message qui l'annonce permet de tout remettre, comme ⌘Z. Les boutons d'un en-tête, comme ceux d'une ligne, apparaissent au survol.

Le dossier ou le disque, partie par partie. Sous les calques, la liste montre dans un groupe à part le dossier ou le disque sur lequel se trouve la création : l'Avant, le Papier, l'Arrière et l'Onglet d'un dossier du Mac (ceux de Windows et de Linux n'ont pas de papier), ou les parties d'un disque, comme la Face, le Boîtier, les Trous du port et le Port d'une clé USB. Choisissez une partie dans la liste, ou cliquez dessus sur le canevas, et elle se teinte :

  • Couleur lui donne la couleur de votre choix, en gardant ses lumières et ses ombres : un bord éclairé reste plus clair que le reste, quelle que soit la couleur. Couleur d'origine lui rend la sienne. Sur une partie où la création apparaît (l'onglet, l'arrière et l'avant d'un dossier, la face avant d'un disque), la couleur remplace à cet endroit les couleurs et les motifs de fond de la création, et le texte, les images et les icônes restent au-dessus.
  • Opacité laisse voir ce qu'il y a derrière, et Sur l'icône (l'œil dans la liste) la masque.
  • La corbeille, ou Suppr, la retire de l'icône et de la liste. La ligne du groupe permet de remettre les parties retirées, comme ⌘Z.

La face avant d'un disque est une étiquette sur laquelle la création est imprimée : masquez-la et la création reste où elle était, sur le boîtier du disque. Sur un dossier, la création est imprimée sur les panneaux eux-mêmes : masquez l'onglet et la partie de la création qui s'y trouvait disparaît avec lui.

Une fois sélectionné, le dossier ou le disque entier a son propre cadre de sélection, avec ses poignées : faites-le glisser depuis n'importe quel point pour le déplacer (il reprend sa place de départ quand vous l'en approchez), un coin pour le redimensionner et la poignée du dessus pour le faire pivoter (⇧ par pas de 15°). Dans les réglages, Disque entier ou Dossier entier propose sa rotation et sa taille, Remettre en place et Réinitialiser, et les flèches le décalent. Tout ce qui est dessus le suit : les calques de la création sont placés sur le dossier ou le disque, pas sur le canevas.

Calques et Réglages s'ouvrent et se ferment chacun depuis leur en-tête, et la barre qui les sépare se fait glisser pour donner plus ou moins de place aux calques (un double-clic la remet en place, et quand elle a le focus, les flèches la déplacent). Leur disposition est mémorisée sur cet ordinateur.

Réglages. Sous les calques se trouve tout ce qui concerne le calque sélectionné, sous son nom, avec dans cet en-tête les boutons pour changer son ordre, le dupliquer et le supprimer :

  • Texte : police, graisse, alignement, italique, majuscules, taille, espacement des lettres, interligne et courbure (en arche ou en sourire).
  • Couleur : unie, en dégradé linéaire ou radial, jusqu'à quatre couleurs avec transparence, et des dégradés tout prêts.
  • Formes : arrondi des coins, nombre de pointes ou de côtés, et profondeur de l'étoile ou trou de l'anneau.
  • Images : luminosité, contraste, couleur, teinte, flou, noir et blanc, sépia, inversion et coins arrondis.
  • Tous les calques : opacité et un mode de fusion parmi seize.
  • Les calques placés ont aussi une ombre (En faire une lueur pour un effet néon) et un contour d'autocollant, une bordure qui suit la silhouette comme un autocollant découpé à la forme.

Quand rien n'est sélectionné, les réglages proposent Sur le dossier ou Icône libre.

Sur un disque. Une création sur un disque en couvre la face avant : le devant du disque, l'étiquette d'une carte, ou un disque optique entre son centre et son bord. Le reste du disque (son socle, son connecteur, le trou d'un disque optique) est dessiné autour de la face avant et par-dessus, et une partie transparente de la création laisse voir la face avant du disque lui-même. L'interrupteur sous le canevas devient alors Squelette du disque, et à côté, un menu de tous les disques déplace la création vers un autre, chaque calque gardant sa place sur la face avant et s'y ajustant. Le texte et les formes que vous ajoutez arrivent sur la face avant dans une couleur qui s'y lit bien, sombre sur une face claire et blanche sur une face colorée, et le texte n'est jamais plus large que la face avant : sur l'étiquette étroite d'une clé USB, il commence petit. Il n'y a pas d'onglet sur un disque où placer un calque. Une fois enregistrée, une création sur un disque est un habillage de disque, que la bibliothèque place en premier tant qu'un disque est choisi.

Voir le résultat. L'interrupteur Squelette du dossier, sous le canevas, affiche la création sur le dossier (onglet, feuille de papier et bords), ou à plat avec les bords du dossier dessinés par-dessus, pour voir ce que le dossier cache. Pour une icône libre, il affiche un dossier estompé derrière, pour donner l'échelle. Les quatre ronds à côté placent la création sur la fenêtre, un bureau clair, un bureau sombre ou un fond d'écran coloré, ce qui compte pour tout ce qui est transparent. À droite, l'icône à ses tailles réelles (64, 32 et 16 points) montre si elle reste lisible dans le Finder ou l'Explorateur.

Enregistrer. Le nom en haut à droite est celui de l'habillage. S'il reste vide, les premiers mots de la création lui servent de nom. Enregistrer dans Mes habillages le garde dans la bibliothèque, et Enregistrer et appliquer le pose en plus sur le dossier choisi. Une fois enregistrée, la création reste ouverte pour d'autres modifications : Enregistrer met à jour le même habillage à sa place, et Dupliquer en ajoute un autre. Une création non enregistrée est conservée pendant que vous allez ailleurs dans l'app, et sur cet ordinateur jusqu'à ce qu'elle soit enregistrée ou remplacée.

Inclure les N sous-dossiers, sous le dossier concerné, est le même interrupteur que Inclure les sous-dossiers dans le panneau du dossier : l'activer à un endroit l'active aux deux. Quand il est activé, Enregistrer et appliquer pose la création sur le dossier et sur chaque dossier qu'il contient, en demandant d'abord confirmation au-delà de dix. Le bouton montre où en est l'opération, avec Arrêter à côté, et un message indique comment elle s'est terminée : une opération interrompue propose Continuer, et une opération où certains dossiers n'ont pas pu être modifiés propose Voir lesquels, qui ouvre le récapitulatif du panneau du dossier. Si vous quittez l'éditeur en cours de route, l'opération continue en arrière-plan, et le bas de la barre latérale montre où elle en est.

Si vous avez choisi certains sous-dossiers avec Choisir dans le panneau du dossier, seuls ceux-là sont concernés, et l'interrupteur l'indique : Inclure 22 sous-dossiers sur 28.

Touches
⌘Z / ⇧⌘ZAnnuler, refaire
SupprSupprimer le calque sélectionné, ou retirer la partie sélectionnée du dossier ou du disque
⌘DLe dupliquer
⌘C, puis ⌘VLe copier et en coller une copie. ⌘V avec une image dans le presse-papiers ajoute l'image
Flèches, ⇧ flèchesDécaler de 1 ou de 10 : le calque sélectionné, ou le dossier ou le disque entier quand la sélection porte sur lui ou sur l'une de ses parties
⌘] / ⌘[Avancer, reculer (avec ⌥ : au premier plan, à l'arrière-plan)
ÉchapTout désélectionner
Dans la liste des calques↑ ↓ sélectionner, ⌥↑ ⌥↓ changer l'ordre, F2 renommer

Une création est un canevas carré de 1024 unités de côté : le même canevas que celui dans lequel se mesure le gabarit du dossier (crates/folderskin-core/src/geometry.rs). Ce que vous placez à un point se retrouve à ce point sur le dossier. Il n'y a ni ajustement pour couvrir ni recadrage, contrairement aux illustrations ajoutées depuis un fichier (SKINS.md). Le document est une simple structure de données dans src/composer/doc.ts, et chaque modification en crée un nouveau : c'est ce que parcourt l'annulation (src/composer/history.ts).

La webview ne dessine que ce que crée l'utilisateur : texte, emojis, formes, images et motifs (src/composer/render.ts). Le dossier autour vient du gabarit en Rust. composer_template fait le rendu du gabarit une seule fois, découpé en calques entre lesquels s'insère la création (compositor::template_layers), à la taille de référence de 2048 px :

top the front panel's rim light and the shade along its bottom
design masked by front: the front panel's coverage
middle the back panel's rim light, the paper sheet and its highlight
design masked by back: the back panel's coverage, tab included

La zone de travail empile ces quatre calques à chaque rafraîchissement (src/composer/composite.ts), ce qui est assez léger pour suivre un glisser-déposer. L'icône enregistrée vient de compositor::render_master_placed, qui dessine le même gabarit avec les mêmes fonctions, les deux panneaux remplis par la création à sa place. Le test the_layers_stacked_around_a_design_are_the_saved_icon garantit un écart de 3 niveaux par canal au maximum entre les deux, si bien que le canevas montre l'icône qui sera écrite. Un cinquième calque, outline, correspond aux bords visibles du dossier. La vue à plat le teinte, et il ne fait jamais partie d'une icône.

Le même gabarit se décompose en morceaux, chacun correspondant à une partie à une place de la pile, pour que le canevas puisse modifier une partie sans toucher au reste (src/composer/base.ts, drawBase dans composite.ts). Chaque morceau est rogné au plus près de ses pixels et indique ce qu'il est :

  • surface : là où la création apparaît, en blanc, avec la zone couverte comme canal alpha (l'onglet, l'arrière et l'avant d'un dossier, la face avant d'un disque).
  • paint : les couleurs propres d'une partie, que modifie la couleur qu'on lui donne.
  • light : les lumières et les ombres posées sur une partie, qui gardent leur couleur quelle que soit celle de la partie.

Les morceaux d'un dossier viennent de compositor::template_pieces_in : la zone couverte par le panneau arrière, découpée en onglet et en arrière le long du bord supérieur de son corps, le milieu dessiné partie par partie (draw_middle_of : les lumières et les ombres de l'arrière, l'ombre que projette l'avant, le papier), puis la zone couverte par l'avant et sa lumière. Un disque indique à quelle partie appartient tout ce qu'il dessine (Drawing::part dans drive/draw.rs), et drive::pieces dessine chaque partie séparément, sous la face avant et par-dessus. Le dessin d'une partie n'est jamais entrecoupé par celui d'une autre : every_drive_comes_apart_into_parts_that_stack_back_into_it le vérifie pour les 25 disques, et vérifie aussi que les morceaux empilés autour d'une création redonnent le disque enregistré à 3 niveaux près, comme le fait the_pieces_stacked_around_a_design_are_the_saved_icon pour les dossiers. Quand rien n'a changé, le canevas montre l'icône qui a toujours été enregistrée.

Pour une partie dans une couleur choisie, ses couleurs propres sont amenées vers cette couleur pixel par pixel, chaque pixel restant aussi loin de la nouvelle couleur qu'il l'était de la couleur moyenne de la partie (en luminosité), ce qui préserve ses lumières et ses ombres. Le cadrage (frame) déplace, fait pivoter et redimensionne toute la pile autour du centre du dossier ou du disque, et la zone de travail applique au pointeur la transformation inverse, si bien que les calques de la création restent là où ils sont sur le dossier ou le disque.

Dès que quelque chose a changé sur le dossier ou le disque, seul le canevas peut dessiner l'icône : l'enregistrement envoie l'icône entière à 2048 px avec composed: true, et composer_save la conserve comme dossier ou disque fini (les aperçus sous le canevas sont dessinés de la même façon). Quand rien n'a changé, l'enregistrement se fait comme avant.

L'enregistrement redessine la création une dernière fois à 2048 px, l'encode en PNG et l'envoie à composer_save sous forme d'octets bruts, après un petit en-tête JSON ([u32 LE header length][header][PNG], src/composer/body.ts). Côté Rust, src-tauri/src/composer.rs fait ensuite le reste :

  • Sur le dossier : il fait le rendu du dossier à partir de la création.
  • Icône libre : il prend la création telle quelle comme icône. Une création entièrement transparente est refusée.
  • Stockage : comme un dossier fini (kind: "folder", source: "composer"), si bien que l'application sur un dossier, les vignettes et le partage fonctionnent comme pour n'importe quel dossier fini.
  • Le document : conservé à côté de l'image sous le nom <stem>.design.json, ce qui permet à Modifier la création de le rouvrir.
  • Identifiant : le SHA-256 du PNG de la création, de son document et de sa forme. La même création enregistrée deux fois ne donne qu'un seul habillage.
  • Enregistrer : remplace l'ancien habillage en une seule écriture de l'index et garde sa place dans la bibliothèque. Un favori passe au nouvel identifiant.

Un remix lit l'image propre de l'habillage avec composer_skin_image :

  • Une illustration devient une image qui couvre le dossier.
  • Un dossier fini devient une icône libre dans laquelle l'image est ajustée, exactement comme l'app l'applique.
commandeentréesortie
composer_template–{size, back, front, middle, top, outline, parts, pieces} : les calques sous forme d'URL de données PNG, l'emplacement des parties du dossier (en unités du canevas), et le dossier décomposé en morceaux, chacun sous la forme {part, role, rect, src}, avec rect en pixels du gabarit
composer_savecorps brut, en-tête {name, tags, shape, design, replaces, composed}{skin, replaced} : l'habillage enregistré, et l'identifiant de la création qu'il remplace. composed : l'image est l'icône entière, dossier ou disque compris
composer_previewcorps brut, en-tête {shape, sizes, composed}l'icône à chaque taille (de 16 à 512, six au maximum), sous forme d'URL de données
composer_imagepath{url, width, height, name, alpha} : un fichier image, 2048 px au maximum, en PNG s'il a de la transparence et en JPEG sinon
composer_skin_imageskinIdla même chose, pour l'image propre d'un habillage enregistré
composer_designskinIdle document de la création, ou null pour un habillage qui n'a pas été fait ici
composer_drive_templatedriveles calques d'un disque, sous la même forme que ceux du dossier, tels que les envoie composer_template : back vide, middle le disque nu, front la zone couverte par sa face avant, top ce qui passe par-dessus la face avant, et parts, où la face avant tient lieu de panneau avant (et, sur un disque optique, anchor, l'endroit où va un nouveau calque), ainsi que le disque décomposé en morceaux dans pieces
shapessizetoutes les formes pour lesquelles une création ou une image peut être faite, plus bas
{ "version": 1, "shape": "folder", "layers": [ { "kind": "fill", "paint": { "type": "solid", "color": "#3a86ff" }, "opacity": 1, "blend": "normal", "id": "…" } ] }

Les calques sont dessinés du premier au dernier :

  • Couvrant tout le canevas : fill (une couleur ou un dégradé) et pattern.
  • Placés : text, emoji, shape et image. Chacun a un centre x, y en unités du canevas, une rotation en degrés, des retournements, une shadow facultative et un edge d'autocollant facultatif.
  • Tous les calques : opacity, blend, et en option name, hidden et locked.

Les couleurs s'écrivent #rrggbb, ou #rrggbbaa quand elles sont transparentes. Une image est conservée dans le document sous forme d'URL de données. Un document lu depuis le disque passe d'abord par parseDoc :

  • Les calques inconnus sont écartés, et au-delà de 64 calques, la liste est ramenée à 64.
  • Les nombres sont ramenés dans des plages raisonnables et les couleurs mises sous forme canonique.
  • Une image qui n'est pas une URL de données PNG, JPEG, WebP ou GIF est écartée.
  • Un document venant d'une version plus récente est refusé plutôt que mal lu.

Ce qui a été modifié sur le dossier ou le disque se trouve dans base, omis quand rien ne l'a été : les modifications de chaque partie, rangées sous son identifiant, et le cadrage.

"base": { "parts": { "case": { "color": "#e53935" }, "face": { "hidden": true }, "paper": { "removed": true, "opacity": 0.5 } },
"frame": { "x": 0, "y": -20, "rotation": 30, "scale": 0.9 } }

Une partie garde ses modifications quand la création passe sur un autre dossier ou un autre disque qui l'a aussi (le boîtier d'un disque, l'onglet d'un dossier). Un FolderSkin d'avant les parties ouvre la création sans ces modifications.

Une création sur un disque indique de quel disque il s'agit, sous la forme "drive": "mac-external", et porte "version": 2, si bien qu'un FolderSkin d'avant les disques indique qu'elle vient d'une version plus récente au lieu de l'ouvrir sur un dossier. Une création sur un dossier ou une icône libre reste en version 1, exactement comme avant, et chaque document enregistré avant l'arrivée des disques s'ouvre tel qu'il était. Une création pour un disque que FolderSkin ne dessine pas est lue comme une création de dossier.

shapes (src-tauri/src/bases.rs, à partir de folderskin_core::base::BASES) liste toutes les formes pour lesquelles une image peut être faite : les trois dossiers, chaque disque, puis free, sans dossier ni disque. L'éditeur démarre les créations sur ces formes, la vue IA peint dessus, et un disque choisi dans le panneau du dossier est l'une d'elles. Chaque entrée est une simple donnée qui ne change pas d'une version à l'autre :

{ "id": "mac-external", "label": "Mac external drive", "system": "mac", "family": "drive",
"whole": true, "kind": "external", "thumbnail": "data:image/png;base64,…" }

id vaut mac-folder, windows-folder ou linux-folder pour un dossier, l'identifiant du disque lui-même (mac-external, linux-solid-state) pour un disque, ou free. La fenêtre nomme chacune dans la langue affichée d'après common.shapes.<id>, avec une ligne de description tirée de common.shapeNotes.<id>, et donne le nom court d'un disque, à côté de son système, d'après common.driveNames.<id>. thumbnail est la forme nue à la taille demandée (de 16 à 512 px, 96 si rien n'est précisé) : le dossier dans sa propre couleur et le disque sans rien sur sa face avant, et rien pour free. En Rust, Base::bare(size) dessine la même chose.

  • Les emojis viennent de la police d'emojis du système. Sur macOS, cette police est en bitmap, nette jusqu'à environ 160 px : un très grand emoji est donc légèrement flou aux plus grandes tailles d'icônes du Finder, et net à toutes les tailles que le Finder affiche d'habitude.
  • Les polices sont des styles, chacun étant une liste de polices fournies avec macOS, Windows ou Linux, la meilleure en premier (src/composer/fonts.ts). FolderSkin n'embarque que Manrope. Une autre police installée accepte n'importe quelle famille installée, par son nom. Une création est enregistrée en pixels : ses polices n'ont besoin d'être présentes que sur l'ordinateur où elle est créée.
  • Les retouches d'image se font sur les pixels (src/composer/imagefx.ts), car la vue web de macOS 12 n'a pas de filtres de canevas. Le flou enchaîne trois flous en boîte, ce qui donne un résultat proche d'un flou gaussien.
  • Un brouillon est conservé dans le stockage de la vue web, qu'une création avec plusieurs grandes images peut remplir. Un tel brouillon dure quand même jusqu'à la fermeture de l'app.

pnpm dev dans un simple navigateur affiche aussi l'éditeur. Les calques du dossier sont les PNG de docs/images/composer/ (ceux de Windows dans windows/, ceux de Linux dans linux/), écrits par cargo run -p folderskin-tools -- composer-layers --out docs/images/composer. La même commande écrit les calques de chaque disque dans drives/<id>/ à la moitié de la taille, avec l'emplacement de la face avant de chaque disque dans drives/parts.json, et la forme nue de chaque dossier et de chaque disque dans bases/, en WebP sans perte. À côté des calques de chaque dossier et de chaque disque, pieces.webp contient ses morceaux les uns sous les autres, et pieces.json indique à quelle partie appartient chacun et où il se place. Un test de folderskin-tools vérifie qu'ils correspondent aux pixels que dessine le compositeur, pour qu'ils ne puissent pas devenir obsolètes, et un autre, parmi ceux de la webview, vérifie que src/composer/drives.ts place les éléments là où le dessin en Rust met la face avant de chaque disque.

compositeur (folderskin-core)les calques empilés sont identiques à l'icône enregistrée, une création atterrit là où elle a été dessinée, une création transparente ne laisse que le papier et les bords, le contour suit les bords visibles. Les morceaux de chaque dossier, empilés autour d'une création, redonnent l'icône enregistrée, avec l'onglet entièrement au-dessus du corps
disque (folderskin-core)les parties de chaque disque sont dessinées sans que le dessin d'une autre partie vienne s'intercaler, et ses morceaux, empilés autour d'une création, redonnent le disque enregistré
stockage (src-tauri)le document d'une création est enregistré à côté d'elle, survit à un redémarrage, disparaît quand elle est supprimée, et est nettoyé si un plantage le laisse orphelin. Enregistrer par-dessus une création garde sa place et refuse un habillage qui n'est pas une création
éditeur (src-tauri)le format du corps, les vérifications d'image, les aperçus, l'enregistrement, le nommage, un document endommagé, les encodages d'image, et une création envoyée en octets bruts par l'IPC de Tauri lui-même (son runtime simulé) qui est prévisualisée et enregistrée
frontend (vitest)le document (ses modifications et sa relecture, dont les modifications d'une partie et le cadrage), l'annulation, le déplacement, le redimensionnement, la rotation et l'aimantation, l'ordre des parties et la rotation du cadrage, la mise en page du texte et ses courbes, les formes, les couleurs, les retouches d'image, les points de départ et le format du corps
e2e (e2e/parts.spec.ts)les parties d'une clé USB listées, choisies sur le canevas, colorées, masquées, retirées puis remises, et enregistrées. La clé entière pivotée et la rotation annulée, puis la clé déplacée et remise en place. Le papier d'un dossier retiré et son onglet coloré, et seulement l'onglet