0
Fork 0
mirror of https://github.com/penpot/penpot-export.git synced 2025-01-04 13:50:05 -05:00
Devtool to export the design tokens of a Penpot file to CSS, SCSS or JSON files
Find a file
2023-09-01 17:43:45 +02:00
packages docs(demo): document environment variables 2023-09-01 17:43:45 +02:00
.gitignore Initial commit 2023-08-21 08:36:47 +02:00
package.json build(workspace): fix demo npm script 2023-08-22 13:53:51 +02:00
README.md docs: update configuration example 2023-08-31 20:28:14 +02:00
yarn.lock build(cli): set up code formatter 2023-08-22 13:54:53 +02:00

penpot-css-export

Description

penpot-css-export is an npm tool designed to export your design components created in Penpot directly to CSS files. With a simple pce command, you can convert your designs into ready-to-use CSS classes.

Installation

To install penpot-css-export, simply run:

# npm
npm install penpot-css-export --save-dev

# yarn
yarn add penpot-css-export

Configuration

Before you can use penpot-css-export, you need to set up a penpot-css-export.config.js file at the root of your project. This file defines how your Penpot designs will be exported.

Configuration example:

require('dotenv').config()

/**
 * @type {import('penpot-css-export').UserConfig}
 */
const config = {
  instance: process.env.PENPOT_BASE_URL || undefined,
  accessToken: process.env.PENPOT_ACCESS_TOKEN,
  files: [
    {
      fileId: 'abea3ef6-4c19-808a-8003-01370d9cb586',
      pages: [
        {
          pageId: '71b1702b-2eb1-81d6-8002-f82a5f182088',
          output: 'src/styles/ui.css', // 👈 Path where your CSS file should be generated.
        },
      ],
    },
    {
      fileId: '4a499800-872e-80e1-8002-fc0b585dc061',
      colors: [
        {
          output: 'src/styles/colors.css', // 👈 Path where your CSS file should be generated.
        },
      ],
      typographies: [
        {
          output: 'src/styles/typographies.css', // 👈 Path where your CSS file should be generated.
        },
      ],
    },
  ],
}

module.exports = config

Usage

Once you've set up the penpot-css-export.config.js file, simply run the following command to generate your CSS files:

pce

This will read your Penpot designs and generate CSS files in the places specified in your configuration file.

Development

Using Yarn Workspaces

This project utilizes Yarn Workspaces to manage multiple packages within a single repository. This allows us to house the module's source code and a demo in separate packages, streamlining development and testing.

Why Yarn Workspaces?

Your dependencies can be linked together, which means that your workspaces can depend on one another while always using the most up-to-date code available. - Reference

Package Structure

  • packages/penpot-css-export: This package contains the CLI tool written in TypeScript. This is where the primary tool code resides.
  • packages/demo: This package serves as a demonstration environment. You can run the pce command within this package to test out implementations in development.

Local Development

For the "demo" package to utilize the local version of the pce command you're developing, it's essential first to compile the TypeScript code from the "penpot-css-export" package.

Handy Commands

To facilitate the development process, we've set up the following commands that can be run at the repository's root:

  • yarn dev: Runs the CLI tool in development mode. Ideal for making changes and seeing real-time results.
  • yarn build: Compiles the TypeScript code in production mode. Ensure you run this command before testing the tool in the "demo" package.
  • yarn demo: Runs the pce command within the "demo" package. It's handy for quickly testing implementations after making changes to the source code.

We recommend following this workflow: make changes to the code, run yarn build, and then yarn demo to test your changes.