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.ts
でdefineSarkaraConfig
を使って設定する場合、emitPackage
がtrue
になっていることに由来します。defineSarkaraConfig
を使わない場合は、emitPackage: true
、outDir: "@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
Using Panda in a Component Library
panda-css.com