@nurl/panda-preset
Version:
Official Panda-CSS preset for the Ganglion Design System.
101 lines (71 loc) • 3.13 kB
Markdown
A preset and config for Panda-CSS projects from the Nurl Ganglion Design System.
1. Follow the instructions in the [PandaCSS Website](https://panda-css.com/docs/installation/postcss)
2. [Install the preset](
3. [Update your config](
```bash
pnpm install @nurl/panda-preset @pandacss/preset-panda
```
```typescript
import { defineConfig } from '@pandacss/dev'
import pandaPreset from '@pandacss/preset-panda'
import nurlPreset, { nurlConfig } from '@nurl/panda-preset'
export default defineConfig({
...nurlConfig,
presets: [pandaPreset, nurlPreset],
// Add your project specific config here
include: ['./src/**/*.{ts,tsx,js,jsx}'],
exclude: [],
})
```
## Usage
### Conditions
```typescript
export const conditions = {
// themes
nurlTheme: '[data-theme=nurl] &',
// modes
lightMode: '[data-color-mode=light] &, &.light, .light &',
darkMode: '[data-color-mode=dark] &, &.dark, .dark &',
// states
modalOpen: '&:is([data-modal-open=true])',
screenReaderOnly: '&:is([data-screen-reader-only=true])',
invalid: '&:is(:invalid, [data-invalid], [aria-invalid])',
userInvalid: '&:is(:user-invalid, [aria-invalid])',
groupInvalid: '.group:is([data-invalid] &, [aria-invalid]) &',
groupChecked: '.group:is([data-checked="true"] &, [aria-checked="true"]) &',
// positions
positionBottom: '&:is([data-position=bottom])',
positionTop: '&:is([data-position=top])',
positionLeft: '&:is([data-position=left])',
positionRight: '&:is([data-position=right])',
// elements
startIcon: '&:is([data-start-icon=true])',
// roles
admin: '&:is([data-role=admin])',
player: '&:is([data-role=player])',
user: '&:is([data-role=user])',
nuro: '&:is([data-role=nuro])',
}
```
We use a set of patterns to theme our components. Here are the patterns we use:
[](https://github.com/nurl-inc/dev-tools/blob/main/packages/panda-preset/src/patterns.ts)
We use a set of utilities to theme our components. Here are the utilities we use:
[](https://github.com/nurl-inc/dev-tools/blob/main/packages/panda-preset/src/utilities.ts)
We use a set of semantic tokens to theme our components. Here are the tokens we use:
[](https://github.com/nurl-inc/dev-tools/tree/main/packages/panda-preset/src/theme/semantic-tokens)
We use a set of text styles to theme our components. Here are the text styles we use:
[](https://github.com/nurl-inc/dev-tools/blob/main/packages/panda-preset/src/theme/textStyles.ts)
We use a set of fonts and z-indices to theme our components. Here are the fonts and z-indices we use:
[](https://github.com/nurl-inc/dev-tools/blob/main/packages/panda-preset/src/theme/tokens.ts)
We use a set of keyframes to animate our components. Here are the keyframes we use:
[](https://github.com/nurl-inc/dev-tools/blob/main/packages/panda-preset/src/theme/keyframes.ts)