{"id":43122448,"url":"https://github.com/joanroig/palette-studio","last_synced_at":"2026-01-31T20:02:36.242Z","repository":{"id":40380557,"uuid":"406457869","full_name":"joanroig/palette-studio","owner":"joanroig","description":"🖌️ Palette Studio lets you import, edit, and export color palettes across Procreate swatches, Adobe ASE, and more on web, desktop, and CLI. Previously known as \"Swatches to ASE\".","archived":false,"fork":false,"pushed_at":"2026-01-30T22:31:49.000Z","size":1182,"stargazers_count":41,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-31T11:57:11.354Z","etag":null,"topics":["adobe","affinity","affinity-designer","ase","color-palette","colors","designer","github-pages","illustrator","palette","photoshop","procreate","swatch","swatches","webapp"],"latest_commit_sha":null,"homepage":"https://joanroig.github.io/palette-studio/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joanroig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-09-14T17:13:36.000Z","updated_at":"2026-01-30T22:31:23.000Z","dependencies_parsed_at":"2024-01-17T09:35:32.510Z","dependency_job_id":"9a04c085-a7ad-42a6-9ce8-2dda544880c3","html_url":"https://github.com/joanroig/palette-studio","commit_stats":null,"previous_names":["joanroig/palette-studio"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/joanroig/palette-studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joanroig%2Fpalette-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joanroig%2Fpalette-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joanroig%2Fpalette-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joanroig%2Fpalette-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joanroig","download_url":"https://codeload.github.com/joanroig/palette-studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joanroig%2Fpalette-studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28952578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T18:30:42.805Z","status":"ssl_error","status_checked_at":"2026-01-31T18:30:19.593Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adobe","affinity","affinity-designer","ase","color-palette","colors","designer","github-pages","illustrator","palette","photoshop","procreate","swatch","swatches","webapp"],"created_at":"2026-01-31T20:02:27.835Z","updated_at":"2026-01-31T20:02:36.229Z","avatar_url":"https://github.com/joanroig.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"web/public/favicon.svg\" width=\"140px\" alt=\"Logo\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ePalette Studio\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eImport, edit, and export palettes across Procreate, Adobe, and GIMP formats.\u003c/strong\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://joanroig.github.io/palette-studio/\"\u003e\u003cstrong\u003eOpen Web App\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://github.com/joanroig/palette-studio/releases\"\u003e\u003cstrong\u003eDownload Desktop\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nodejs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Node.js-22%2B-43853d?logo=node.js\u0026logoColor=white\" alt=\"Node.js 22+\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/joanroig/palette-studio/actions/workflows/release.yml\"\u003e\u003cimg src=\"https://github.com/joanroig/palette-studio/actions/workflows/release.yml/badge.svg\" alt=\"Build and Release\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/joanroig/palette-studio/actions/workflows/tests.yml\"\u003e\u003cimg src=\"https://github.com/joanroig/palette-studio/actions/workflows/tests.yml/badge.svg\" alt=\"Tests\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/joanroig/palette-studio/actions/workflows/pages.yml\"\u003e\u003cimg src=\"https://github.com/joanroig/palette-studio/actions/workflows/pages.yml/badge.svg\" alt=\"Deploy Pages\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://joanroig.github.io/palette-studio/\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub%20Pages-live-brightgreen\" alt=\"GitHub Pages\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://joanroig.github.io/palette-studio/\"\u003e\n    \u003cimg alt=\"Showcase\" src=\"img/showcase.png\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003ci\u003eAvailable for web, Windows, macOS, and Linux\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## Highlights\n\n- Import `.swatches`, `.ase`, and `.gpl` palettes.\n- Generate palettes by style (analogous, complementary, triadic, etc.) with optional base colors.\n- Edit colors, rename, reorder by drag-and-drop, and switch between HEX/RGB/HSB/HSL/CMYK/LAB views.\n- Export single or batch palettes to ASE, Swatches, and GIMP GPL (zip downloads for multi-export).\n- Quick exports for PNG, PDF, CSS variables, Tailwind config, SVG, JSON, and embed snippets.\n- Share palettes via URL (Coolors, X, Pinterest) and import from shared links.\n- Preferences and palettes are stored locally in the browser/desktop app.\n\n## Example\n\nGo to the `examples` folder to see some converted palettes like this one:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/source.png\" alt=\"source palette\" width=\"300px\"/\u003e\n  \u003cbr\u003e\n  \u003ci\u003eSource palette\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/ps.png\" alt=\"converted palette\" width=\"300px\"/\u003e\n  \u003cbr\u003e\n  \u003ci\u003eConverted palette imported in Photoshop\u003c/i\u003e\n\u003c/p\u003e\n\n## GUI (Web + Desktop)\n\nThe project now includes a cross-platform GUI that runs in the browser (GitHub\nPages compatible) and as a desktop app for Windows, macOS, and Linux.\n\n### Web\n\n- Install dependencies with `npm install`.\n- Start the dev server with `npm run dev:web`.\n- Build a static site with `npm run build:web` (output: `dist-web`).\n- Preview the static build with `npm run preview:web`.\n- Upload `.swatches`, `.ase`, or `.gpl` palette files.\n- Generate new palettes, edit names/colors, and reorder swatches.\n- Export single palettes or batch export as ASE/Swatches/GPL.\n- Use quick exports for images, PDF, CSS, Tailwind, SVG, JSON, embed snippets, or share URLs.\n\n### Desktop\n\n- Run `npm run dev:desktop` to launch the Electron app with hot reload.\n- Build the desktop bundle with `npm run build:desktop` (outputs: `dist-electron`, `dist-web`).\n- Build installers with `npm run dist:desktop` (outputs: `release`).\n- Desktop mode uses the same drag-and-drop workflow and saves zip exports via a native dialog.\n\n## CLI\n\nBe sure to have [Node.js](https://nodejs.org/en/download/) 22+ installed, then:\n\n- [Download](https://github.com/joanroig/palette-studio/archive/refs/heads/main.zip) or clone the repo.\n- Run `npm install` in the root folder to install dependencies.\n- Add your palette files (`.swatches`, `.ase`, `.gpl`) in the `palette-in` folder.\n- Run `npm run convert` to convert the palettes into the formats you choose.\n- The converted files should be in the `palette-out` folder.\n\n## Configuration (CLI)\n\nThe input/output folders, color naming, and optional black \u0026 white colors can be changed in: [config.json](config.json)\n\n### Configuration parameters\n\n- **inFolder:** folder used to read the palette files.\n- **outFolder:** folder used to output the converted palettes.\n- **outFormats:** output formats as an array or comma-separated string. Use `ase`, `swatches`, `gpl`, or `all`. Defaults to `ase`.\n- **colorNameFormat:** sets the collection of color names to be used. Available namings are: _roygbiv, basic, html, x11, pantone, ntc_. See [color namer](https://github.com/colorjs/color-namer) for reference.\n- **addBlackWhite:** if true, two extra colors will be added:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/ps-bw.png\" alt=\"converted palette\" width=\"300px\"/\u003e\n  \u003cbr\u003e\n  \u003ci\u003eConverted palette with extra black and white colors imported in Photoshop\u003c/i\u003e\n\u003c/p\u003e\n\n## Tests\n\n- Run unit tests with `npm test`.\n- Run coverage with `npm run test:coverage`.\n- Run GUI tests with `npm run test:gui` (installs Playwright as needed).\n\n## Credits\n\nSource of the provided palettes:\n\nhttps://bardotbrush.com/procreate-color-palettes/\n\n### Libraries used\n\n- https://github.com/szydlovski/procreate-swatches\n- https://www.npmjs.com/package/color-convert\n- https://github.com/colorjs/color-namer\n- https://stuk.github.io/jszip/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoanroig%2Fpalette-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoanroig%2Fpalette-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoanroig%2Fpalette-studio/lists"}