Ir al contenido

Diseña el tuyo, en la barra lateral, es un lienzo para crear tú mismo un aspecto, desde un solo color hasta un diseño con muchas capas. Funciona totalmente sin conexión. Lo que diseñas se guarda en Mis aspectos como cualquier otro aspecto, y Guardar y aplicar lo pone directamente en la carpeta que elegiste.

El editor: un insecto de la biblioteca de iconos estampado en una carpeta azul, con la búsqueda de iconos al lado y Guardar y aplicar debajo

QuieresEmpieza conLuego
Una carpeta de un solo color, el que seaColor o LisoHaz clic en la carpeta y elige el color. El selector admite cualquier color, con transparencia
Una carpeta con rótulo: Recetas, Notas 2026RótuloEscribe el texto y elige fuente, grosor y color. Las palabras cortas se leen mejor a tamaños pequeños
Una carpeta que diga lo que guarda con una sola imagenEmojiHaz doble clic en el emoji para cambiarlo, o busca en el selector (con palabras en inglés: dog, plane, receipt)
Un rótulo en la propia pestañaRótulo en la pestañaEl botón Pestaña de Posición pone cualquier capa en la pestaña
Una parte trasera y una delantera de colores distintosBicolorLa división queda oculta detrás de la hoja de papel
Una carpeta transparenteCristal o Cristal tintadoBaja la opacidad del fondo, o bórralo para una carpeta transparente del todo: solo quedan el papel y los bordes
Una carpeta con un patrónRayas, Vichy, LunaresPatrón añade diez tipos, de rayas a confeti y grano de película
Una foto con leyendaFotoPrimero pide la imagen. Luego puedes soltar o pegar más
Un sticker, una insignia, cualquier cosa sin forma de carpetaStickerIcono libre convierte el diseño en el icono entero
Una unidad a tu manera: Copias en un disco externo, una foto en una memoria USBUna unidad de Empezar en una unidad, o Unidad con etiqueta, Unidad de color, Unidad con emoji o Unidad con fotoEl diseño va en la cara frontal de la unidad. El menú de debajo del lienzo lo lleva a otra unidad
Una unidad con los colores que quieras: una memoria USB roja, un disco sin etiquetaCualquier unidadHaz clic en una parte de la unidad (su carcasa, su conector, su cara frontal) y dale un color, ocúltala o quítala
Una carpeta con la pestaña de otro color, o sin hoja de papelCualquier carpetaLa pestaña, la trasera, el papel y el frente de la carpeta están en la lista de capas, debajo de las capas del propio diseño
Una carpeta o una unidad girada, movida o de otro tamañoCualquier carpeta o unidadArrástrala para moverla, una esquina para cambiar su tamaño y el control de arriba para girarla. El diseño se mueve con ella
Un aspecto que ya tienes, con tu toque personalMenú ⋯ de un aspecto → Remezclar en el editorEl aspecto se convierte en una capa de imagen sobre la que construir
Un cambio en algo que ya diseñasteSu menú ⋯ → Editar el diseñoGuardar cambios lo actualiza en su sitio. Guardar copia conserva los dos

Para empezar. La primera visita, y Nuevo, muestran los puntos de partida. Cada uno es un diseño normal: nada en él es fijo. Si eliges uno mientras tu diseño tiene cambios sin guardar, primero te pregunta. Empezar desde cero tiene las carpetas propias del Mac, de Windows y de Linux junto a los diseños vacíos, y Empezar en una unidad tiene todas las unidades que muestra cada sistema, las del Mac, las de Windows y las de Linux, cada sistema en su propia fila (DRIVES.md las enumera, en inglés). Si hay una unidad elegida en el panel de la carpeta, La unidad que elegiste va primero y muestra esa unidad con su propio nombre. Una plantilla de unidad empieza en esa unidad, o en la unidad en la que estaba el último diseño, o si no, en el disco externo propio de este sistema.

Añadir. La barra de encima de la carpeta añade Texto, un Emoji, una Forma (trece, de un rectángulo redondeado a un globo de diálogo), una Imagen (un archivo, uno de tus aspectos, o una imagen soltada o pegada sobre la carpeta), un Patrón y Color (selecciona el fondo, o añade uno).

Organizar. Haz clic en una capa para seleccionarla: se tiñe, con controles en las esquinas y los lados, y un control redondo encima para girarla.

  • Arrástrala para moverla. Se ajusta al centro de la carpeta, a la pestaña, a los bordes de la carpeta y a otras capas. Mantén presionado ⌘ (Ctrl) para colocarla libremente.
  • Arrastra una esquina o un lado para cambiar su tamaño. Las imágenes conservan sus proporciones desde una esquina y se recortan desde un lado. El texto y los emojis siempre conservan sus proporciones.
  • Mantén presionado ⇧ para girar en pasos de 15° o para conservar las proporciones de una forma. Mantén presionado ⌥ para cambiar el tamaño desde el centro.
  • Haz doble clic en un texto para editarlo, o en un emoji para cambiarlo.
  • Haz clic en la propia carpeta para seleccionar su fondo o, donde no se ve el diseño, la parte de la carpeta o de la unidad en la que hiciste clic.

Capas. La lista de arriba a la derecha muestra la pila, de arriba abajo. Arrastra una fila para cambiar su orden, haz doble clic en un nombre para renombrarlo, y usa el ojo, el candado y la papelera para ocultar una capa, fijarla en su sitio o borrarla. Borrar todo, al final del encabezado, vacía el diseño. El aviso que lo indica permite recuperarlas, igual que ⌘Z. Los botones de un encabezado, como los de una fila, aparecen al pasar el puntero por encima.

La carpeta o la unidad, parte por parte. Debajo de las capas, la lista muestra, en un grupo aparte, la carpeta o la unidad sobre la que está el diseño: el Frente, el Papel, la Trasera y la Pestaña de una carpeta del Mac (las de Windows y de Linux no tienen papel), o las partes de una unidad, como la Cara, la Carcasa, los Agujeros del conector y el Conector de una memoria USB. Elige una parte en la lista, o haz clic en ella en el lienzo, y se tiñe:

  • Color le da el color que quieras, conservando sus luces y sombras: un borde iluminado sigue siendo más claro que el resto, sea cual sea el color. Color original le devuelve el suyo. En una parte donde se ve el diseño (la pestaña, la trasera y el frente de una carpeta, la cara frontal de una unidad), el color cubre ahí los colores y patrones de fondo del diseño, y el texto, las imágenes y los iconos quedan encima.
  • Opacidad deja ver lo que hay detrás, y En el icono (el ojo de la lista) la oculta.
  • La papelera, o Suprimir, la quita del icono y de la lista. La fila del grupo recupera las partes quitadas, igual que ⌘Z.

La cara frontal de una unidad es una etiqueta en la que va impreso el diseño: si la ocultas, el diseño se queda donde estaba, sobre la carcasa de la unidad. En una carpeta, el diseño va impreso en los propios paneles: si ocultas la pestaña, la parte del diseño que estaba en ella desaparece también.

Si seleccionas la carpeta o la unidad entera, aparece un recuadro con sus propios controles: arrástrala desde cualquier punto para moverla (vuelve a encajar en su sitio de partida cuando la acercas), una esquina para cambiar su tamaño y el control de arriba para girarla (⇧ en pasos de 15°). En los ajustes, Unidad entera o Carpeta entera tiene su giro y su tamaño, Volver a su sitio y Restablecer, y las flechas la mueven. Todo lo que lleva encima se mueve con ella: las capas del diseño se colocan sobre la carpeta o la unidad, no sobre el lienzo.

Capas y Ajustes se abren y se cierran desde su encabezado, y la barra que las separa se arrastra para dar más o menos espacio a las capas (un doble clic la devuelve a su sitio, y cuando tiene el foco, las flechas la mueven). Cómo las dejaste se recuerda en este equipo.

Ajustes. Debajo de las capas está todo lo relativo a la capa seleccionada, bajo su nombre, con los botones para cambiar su orden, duplicarla y borrarla en ese encabezado:

  • Texto: fuente, grosor, alineación, cursiva, mayúsculas, tamaño, espaciado entre letras, interlineado y curva (en arco o en sonrisa).
  • Color: sólido, un degradado lineal o uno radial, hasta cuatro colores con transparencia, y degradados ya hechos.
  • Formas: redondeo de las esquinas, número de puntas o de lados, y profundidad de la estrella o agujero del anillo.
  • Imágenes: brillo, contraste, color, tono, desenfoque, blanco y negro, sepia, invertir y esquinas redondeadas.
  • Todas las capas: opacidad y uno de dieciséis modos de fusión.
  • Las capas colocadas también tienen una sombra (Convertir en resplandor para un efecto neón) y un borde de sticker, un contorno que sigue la silueta como un sticker troquelado.

Sin nada seleccionado, los ajustes eligen entre En la carpeta e Icono libre.

En una unidad. Un diseño en una unidad cubre su cara frontal: el frente de la unidad, la etiqueta de una tarjeta, o un disco óptico entre su centro y su borde. El resto de la unidad (su base, su conector, el agujero de un disco óptico) se dibuja alrededor de la cara frontal y por encima de ella, y una parte transparente del diseño deja ver la cara frontal de la propia unidad. El interruptor de debajo del lienzo pasa a llamarse Esqueleto de la unidad, y a su lado un menú con todas las unidades lleva el diseño a otra, y cada capa conserva su sitio en la cara frontal y se ajusta a ella. El texto y las formas nuevas llegan a la cara frontal en un color que se lee bien sobre ella, oscuro sobre una cara clara y blanco sobre una de color, y el texto nunca es más ancho que la cara frontal: en la etiqueta estrecha de una memoria USB, empieza pequeño. Una unidad no tiene pestaña a la que llevar una capa. Una vez guardado, un diseño en una unidad es un aspecto de unidad, que la biblioteca pone primero mientras haya una unidad elegida.

Ver el resultado. El interruptor Esqueleto de la carpeta, debajo del lienzo, muestra el diseño sobre la carpeta (pestaña, hoja de papel y bordes), o en plano con los bordes de la carpeta dibujados encima, para que veas lo que oculta la carpeta. Para un icono libre, muestra detrás una carpeta tenue, como referencia de tamaño. Los cuatro círculos de al lado ponen el diseño sobre la ventana, un escritorio claro, un escritorio oscuro o un fondo de pantalla colorido, lo que importa en todo lo que sea transparente. A la derecha, el icono en sus tamaños reales (64, 32 y 16 puntos) muestra cómo se lee en el Finder o el Explorador de archivos.

Guardar. El nombre de arriba a la derecha es el nombre del aspecto. Si lo dejas vacío, lo toma de las primeras palabras del diseño. Guardar en Mis aspectos lo guarda en la biblioteca, y Guardar y aplicar además lo pone en la carpeta elegida. Una vez guardado, sigue abierto para más cambios: Guardar cambios actualiza el mismo aspecto en su sitio, y Guardar copia añade otro. Un diseño sin guardar se conserva mientras miras otras partes de la app, y en este equipo hasta que lo guardes o lo reemplaces.

Incluir las N subcarpetas, debajo de la carpeta a la que se aplica, es el mismo interruptor que Incluir subcarpetas en el panel de la carpeta: activarlo en un lugar lo activa en los dos. Con él activado, Guardar y aplicar pone el diseño en la carpeta y en cada carpeta que contiene, y pregunta antes si son más de diez. El botón muestra cuánto lleva el proceso, con Detener al lado, y un aviso dice cómo terminó: un proceso detenido ofrece Continuar, y uno en el que no se pudieron cambiar algunas carpetas ofrece Ver cuáles, que abre el resumen del panel de la carpeta. Si sales del editor mientras tanto, el proceso sigue en segundo plano, y la parte de abajo de la barra lateral muestra cuánto lleva.

Si elegiste algunas subcarpetas con Elegir en el panel de la carpeta, solo se incluyen esas, y el interruptor lo indica: Incluir 22 de 28 subcarpetas.

Teclas
⌘Z / ⇧⌘ZDeshacer, rehacer
SuprimirBorrar la capa seleccionada, o quitar la parte seleccionada de la carpeta o de la unidad
⌘DDuplicarla
⌘C, luego ⌘VCopiarla y pegar una copia. ⌘V con una imagen en el portapapeles añade la imagen
Flechas, ⇧ flechasMover 1 o 10: la capa seleccionada, o la carpeta o la unidad entera cuando está seleccionada ella o una de sus partes
⌘] / ⌘[Traer adelante, enviar atrás (con ⌥: al frente, al fondo)
EscNo seleccionar nada
En la lista de capas↑ ↓ seleccionar, ⌥↑ ⌥↓ cambiar el orden, F2 renombrar

El diseño se dibuja en el espacio del icono

Sección titulada «El diseño se dibuja en el espacio del icono»

Un diseño es un lienzo cuadrado de 1024 unidades de lado: el mismo lienzo en el que se mide la plantilla de la carpeta (crates/folderskin-core/src/geometry.rs). Lo que pones en un punto queda en ese punto de la carpeta. No hay ajuste para cubrir ni recorte, a diferencia de las ilustraciones añadidas desde un archivo (SKINS.md). El documento son datos simples en src/composer/doc.ts, y cada cambio crea uno nuevo, que es lo que recorre la función de deshacer (src/composer/history.ts).

Sigue habiendo un solo camino de renderizado

Sección titulada «Sigue habiendo un solo camino de renderizado»

La webview solo dibuja el arte del propio usuario: texto, emojis, formas, imágenes y patrones (src/composer/render.ts). La carpeta que lo rodea es la de la plantilla de Rust. composer_template renderiza la plantilla una sola vez, dividida en las capas entre las que se coloca un diseño (compositor::template_layers), al tamaño maestro 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

El área de trabajo apila esas cuatro capas en cada fotograma (src/composer/composite.ts), algo lo bastante ligero para seguir un arrastre. El icono guardado sale de compositor::render_master_placed, que dibuja la misma plantilla con las mismas funciones auxiliares, con los dos paneles rellenos del diseño en su lugar. La prueba the_layers_stacked_around_a_design_are_the_saved_icon mantiene la diferencia entre los dos por debajo de 3 niveles por canal, así que el lienzo muestra el icono que se escribe. Una quinta capa, outline, son los bordes visibles de la carpeta. La vista en plano la tiñe, y nunca forma parte de un icono.

La misma plantilla se descompone en piezas, cada una con una parte en un lugar de la pila, para que el lienzo pueda cambiar una parte sin tocar el resto (src/composer/base.ts, drawBase en composite.ts). Cada pieza se recorta a la zona donde tiene píxeles y dice lo que es:

  • surface: donde se ve el diseño, en blanco, con la zona cubierta como canal alfa (la pestaña, la trasera y el frente de una carpeta, la cara frontal de una unidad).
  • paint: los colores propios de una parte, que cambian con el color que le des.
  • light: las luces y sombras sobre una parte, que conservan su color sea cual sea el de la parte.

Las piezas de una carpeta salen de compositor::template_pieces_in: la zona cubierta por el panel trasero, dividida en la pestaña y la trasera a lo largo del borde superior de su cuerpo, el medio dibujado parte por parte (draw_middle_of: las luces y sombras de la trasera, la sombra que proyecta el frente, el papel) y la zona cubierta por el frente con su luz. Una unidad indica a qué parte pertenece todo lo que dibuja (Drawing::part en drive/draw.rs), y drive::pieces dibuja cada parte por separado, debajo de la cara frontal y encima de ella. El dibujo de una parte nunca tiene el de otra en medio: every_drive_comes_apart_into_parts_that_stack_back_into_it lo comprueba en las 25 unidades, y también que las piezas apiladas alrededor de un diseño son la unidad guardada, con 3 niveles de diferencia como mucho, como hace the_pieces_stacked_around_a_design_are_the_saved_icon con las carpetas. Si no se cambia nada, el lienzo muestra el mismo icono que siempre se ha guardado.

Cuando una parte tiene un color elegido, sus colores propios se llevan a ese color píxel a píxel, y cada píxel queda tan lejos del nuevo color como lo estaba del color medio de la parte (en luminosidad), con lo que se conservan sus luces y sombras. El encuadre (frame) mueve, gira y cambia el tamaño de toda la pila alrededor del centro de la carpeta o la unidad, y el área de trabajo aplica al puntero la transformación inversa, así que las capas del diseño se quedan donde están sobre la carpeta o la unidad.

Cuando se ha cambiado algo de la carpeta o la unidad, solo el lienzo puede dibujar el icono: al guardar, se envía el icono entero a 2048 px con composed: true, y composer_save lo guarda como carpeta o unidad terminada (las vistas previas de debajo del lienzo se dibujan igual). Si no se ha cambiado nada, se guarda como antes.

Al guardar, el diseño se dibuja una vez más a 2048 px, se codifica como PNG y se envía a composer_save como bytes sin procesar tras una pequeña cabecera JSON ([u32 LE header length][header][PNG], src/composer/body.ts). En el lado de Rust, src-tauri/src/composer.rs hace el resto:

  • En la carpeta: renderiza la carpeta a partir del diseño.
  • Icono libre: toma el diseño tal cual como icono. Uno totalmente transparente se rechaza.
  • Se guarda como: una carpeta terminada (kind: "folder", source: "composer"), así que aplicarlo, las miniaturas y compartirlo funcionan igual que con cualquier carpeta terminada.
  • El documento: se guarda junto a la imagen como <stem>.design.json, y así es como Editar el diseño lo vuelve a abrir.
  • Identificador: el SHA-256 del PNG del diseño, de su documento y de su forma. El mismo diseño guardado dos veces es un solo aspecto.
  • Guardar cambios: reemplaza el aspecto anterior en una sola escritura del índice y conserva su lugar en la biblioteca. Un favorito pasa al nuevo identificador.

Una remezcla lee la imagen propia del aspecto con composer_skin_image:

  • Una ilustración se convierte en una imagen que cubre la carpeta.
  • Una carpeta terminada se convierte en un icono libre con la imagen encajada, exactamente como la aplica la app.
comandoentradasalida
composer_template–{size, back, front, middle, top, outline, parts, pieces}: las capas como URL de datos PNG, dónde están las partes de la carpeta (en unidades del lienzo), y la carpeta descompuesta en piezas, cada una como {part, role, rect, src}, con rect en píxeles de la plantilla
composer_savecuerpo sin procesar, cabecera {name, tags, shape, design, replaces, composed}{skin, replaced}: el aspecto guardado, y el identificador del diseño al que reemplazó. composed: la imagen es el icono entero, con la carpeta o la unidad incluida
composer_previewcuerpo sin procesar, cabecera {shape, sizes, composed}el icono en cada tamaño (de 16 a 512, seis como máximo), como URL de datos
composer_imagepath{url, width, height, name, alpha}: un archivo de imagen, 2048 px como máximo, en PNG si tiene transparencia y en JPEG si no
composer_skin_imageskinIdlo mismo, para la imagen propia de un aspecto guardado
composer_designskinIdel documento del diseño, o null para un aspecto que no se hizo aquí
composer_drive_templatedrivelas capas de una unidad, con la misma forma que las de la carpeta, tal como las envía composer_template: back vacía, middle la unidad sin nada, front lo que cubre su cara frontal, top lo que va encima de la cara frontal, y parts con la cara frontal como panel delantero (y, en un disco óptico, anchor, donde va una capa nueva), además de la unidad descompuesta en piezas en pieces
shapessizetodas las formas para las que se puede hacer un diseño o una imagen, más abajo
{ "version": 1, "shape": "folder", "layers": [ { "kind": "fill", "paint": { "type": "solid", "color": "#3a86ff" }, "opacity": 1, "blend": "normal", "id": "…" } ] }

Las capas se dibujan de la primera a la última:

  • Cubren todo el lienzo: fill (un color o un degradado) y pattern.
  • Colocadas: text, emoji, shape e image. Cada una tiene un centro x, y en unidades del lienzo, una rotation en grados, volteos, una shadow opcional y un edge de sticker opcional.
  • Todas las capas: opacity, blend, y opcionalmente name, hidden y locked.

Los colores son #rrggbb, o #rrggbbaa cuando son transparentes. Una imagen se guarda dentro del documento como URL de datos. Un documento leído del disco pasa primero por parseDoc:

  • Las capas desconocidas se descartan, y si hay más de 64 capas, se recortan a 64.
  • Los números se mantienen en rangos razonables y los colores se normalizan.
  • Una imagen que no sea una URL de datos PNG, JPEG, WebP o GIF se descarta.
  • Un documento de una versión más reciente se rechaza en lugar de leerse mal.

Lo que se ha cambiado de la carpeta o la unidad está en base, que se omite si no se ha cambiado nada: los cambios de cada parte, bajo su identificador, y el encuadre.

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

Una parte conserva sus cambios cuando el diseño pasa a otra carpeta u otra unidad que también la tiene (la carcasa de una unidad, la pestaña de una carpeta). Un FolderSkin de antes de las partes abre el diseño sin esos cambios.

Un diseño en una unidad indica qué unidad es, como "drive": "mac-external", y tiene "version": 2, así que un FolderSkin de antes de las unidades dice que es de una versión más reciente en lugar de abrirlo en una carpeta. Un diseño en una carpeta o un icono libre sigue siendo de la versión 1, exactamente como antes, y todos los documentos guardados antes de las unidades se abren como estaban. Un diseño para una unidad que FolderSkin no dibuja se lee como un diseño de carpeta.

shapes (src-tauri/src/bases.rs, sobre folderskin_core::base::BASES) enumera todas las formas para las que se puede hacer una imagen: las tres carpetas, todas las unidades y, al final, free, sin carpeta ni unidad. El editor empieza diseños en ellas, la vista de IA pinta sobre ellas, y una unidad elegida en el panel de la carpeta es una de ellas. Cada entrada son datos simples que no cambian de una versión a otra:

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

id es mac-folder, windows-folder o linux-folder para una carpeta, el identificador de la propia unidad (mac-external, linux-solid-state) para una unidad, o free. La ventana nombra cada una en el idioma que se muestra con common.shapes.<id>, con una línea sobre ella de common.shapeNotes.<id>, y el nombre corto de una unidad, junto a su sistema, con common.driveNames.<id>. thumbnail es la forma vacía al tamaño pedido (de 16 a 512 px, 96 si no se indica): la carpeta en su propio color y la unidad sin nada en su cara frontal, y ninguna para free. En Rust, Base::bare(size) dibuja lo mismo.

  • Los emojis vienen de la fuente de emojis del sistema. En macOS esa fuente es un mapa de bits, nítido hasta unos 160 px, así que un emoji muy grande se ve ligeramente suave en los tamaños de icono más grandes del Finder y nítido en todos los tamaños que el Finder muestra normalmente.
  • Las fuentes son estilos, cada uno una lista de fuentes que vienen con macOS, Windows o Linux, de la mejor a la peor (src/composer/fonts.ts). FolderSkin solo incluye Manrope. Otra fuente instalada acepta cualquier familia instalada por su nombre. Un diseño se guarda en píxeles, así que sus fuentes solo tienen que estar en el equipo donde se hace.
  • Los ajustes de imagen se hacen sobre los píxeles (src/composer/imagefx.ts), porque la vista web de macOS 12 no tiene filtros de canvas. El desenfoque son tres desenfoques de caja, muy parecidos a un desenfoque gaussiano.
  • Un borrador se guarda en el almacenamiento de la vista web, que un diseño con varias imágenes grandes puede llenar. Aun así, ese borrador dura hasta que se cierra la app.

pnpm dev en un navegador normal también muestra el editor. Las capas de la carpeta son los PNG de docs/images/composer/ (las de Windows en windows/, las de Linux en linux/), que escribe cargo run -p folderskin-tools -- composer-layers --out docs/images/composer. El mismo comando escribe las capas de cada unidad en drives/<id>/ a la mitad del tamaño, con dónde está la cara frontal de cada unidad en drives/parts.json, y la forma vacía de cada carpeta y cada unidad en bases/, como WebP sin pérdida. Junto a las capas de cada carpeta y de cada unidad, pieces.webp tiene sus piezas una debajo de otra y pieces.json dice de qué parte es cada una y dónde va. Una prueba de folderskin-tools comprueba que son los píxeles que dibuja el compositor, para que no se queden desactualizados, y una de las pruebas de la webview comprueba que src/composer/drives.ts coloca las cosas donde el dibujo de Rust tiene la cara frontal de cada unidad.

compositor (folderskin-core)las capas apiladas son iguales al icono guardado, un diseño cae donde se dibujó, un diseño transparente solo deja el papel y los bordes, el contorno sigue los bordes visibles. Las piezas de cada carpeta apiladas alrededor de un diseño son el icono guardado, con la pestaña entera por encima del cuerpo
unidad (folderskin-core)las partes de cada unidad se dibujan sin que el dibujo de otra parte se meta en medio, y sus piezas apiladas alrededor de un diseño son la unidad guardada
almacenamiento (src-tauri)el documento de un diseño se guarda a su lado, sobrevive a un reinicio, desaparece cuando se borra el diseño y se limpia si un fallo lo deja huérfano. Guardar encima de un diseño conserva su lugar y rechaza un aspecto que no sea un diseño
editor (src-tauri)el formato del cuerpo, las comprobaciones de imágenes, las vistas previas, el guardado, los nombres, un documento dañado, las codificaciones de imagen, y un diseño enviado como bytes sin procesar por el propio IPC de Tauri (su runtime simulado) que se previsualiza y se guarda
frontend (vitest)el documento (sus cambios y cómo se vuelve a leer, incluidos los cambios de una parte y el encuadre), deshacer, mover, cambiar el tamaño, girar y ajustar, el orden de las partes y el giro del encuadre, la composición del texto y sus curvas, las formas, los colores, los ajustes de imagen, los puntos de partida y el formato del cuerpo
e2e (e2e/parts.spec.ts)las partes de una memoria USB listadas, elegidas en el lienzo, coloreadas, ocultas, quitadas y recuperadas, y guardadas. La memoria entera girada y el giro deshecho, luego arrastrada y devuelta a su sitio. El papel de una carpeta quitado y su pestaña coloreada, y solo la pestaña