Astro Sarkara

Section 3

Panda CSSを使う

Astro SarkaraプロジェクトでPanda CSSを使う場合、通常のAstro + Panda CSSプロジェクトでPanda CSSを使う場合と少し異なる方法を用います。

通常Panda CSSのコードはプロジェクトルート内のstyled-systemに生成しますが、Astro Sarkaraを使用する場合はnode_modules/@cieloazul310/sarkara-cssにコードを生成します。node_modules傘下にPanda CSSのコードを生成するため、インポートする場合は相対パスではなく他のパッケージと同様にパッケージ名(@cieloazul310/sarkara-css)を記述します。

---
import { css } from "styled-system/css";
import { flex } from "styled-system/patterns"; 
---

<p class={css({ color: "primary.600" })}>
  Primary color
</p>

インポート元が@cieloazul310/sarkara-cssに変わること以外は通常のPanda CSSの使用方法と同じです。

panda.config.ts

この動作はpanda.config.tsdefineSarkaraConfigを使って設定する場合、emitPackagetrueになっていることに由来します。defineSarkaraConfigを使わない場合は、emitPackage: trueoutDir: "@cieloazul310/sarkara-css"の指定が必須となります。

// panda.config.ts
import { defineConfig } from "@pandacss/dev";
import {
  createSarkaraPreset,
  astroComponentsPaths,
} from "@cieloazul310/astro-sarkara/preset";

export default defineConfig({
  presets: [
    "@pandacss/dev/presets",
    createSarkaraPreset({ palette: { primary: "teal", secondary: "yellow" } }),
  ],

  include: ["./src/**/*.{js,ts,astro}", ...astroComponentsPaths],

  outdir: "@cieloazul310/sarkara-css",
  emitPackage: true,  
});
Config
panda-css.com

Section 3

Panda CSSを使う

Tutorial Top Top

Astro Sarkara