feat: Complete fleet — 94 skills across 10+ domains
Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
283
skills/unocss/references/integrations-vite.md
Normal file
283
skills/unocss/references/integrations-vite.md
Normal file
@@ -0,0 +1,283 @@
|
||||
---
|
||||
name: unocss-vite-integration
|
||||
description: Setting up UnoCSS with Vite and framework-specific tips
|
||||
---
|
||||
|
||||
# UnoCSS Vite Integration
|
||||
|
||||
The Vite plugin is the most common way to use UnoCSS.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pnpm add -D unocss
|
||||
```
|
||||
|
||||
```ts
|
||||
// vite.config.ts
|
||||
import UnoCSS from 'unocss/vite'
|
||||
import { defineConfig } from 'vite'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
UnoCSS(),
|
||||
],
|
||||
})
|
||||
```
|
||||
|
||||
Create config file:
|
||||
|
||||
```ts
|
||||
// uno.config.ts
|
||||
import { defineConfig, presetWind3 } from 'unocss'
|
||||
|
||||
export default defineConfig({
|
||||
presets: [
|
||||
presetWind3(),
|
||||
],
|
||||
})
|
||||
```
|
||||
|
||||
Add to entry:
|
||||
|
||||
```ts
|
||||
// main.ts
|
||||
import 'virtual:uno.css'
|
||||
```
|
||||
|
||||
## Modes
|
||||
|
||||
### global (default)
|
||||
|
||||
Standard mode - generates global CSS injected via `uno.css` import.
|
||||
|
||||
```ts
|
||||
import 'virtual:uno.css'
|
||||
```
|
||||
|
||||
### vue-scoped
|
||||
|
||||
Injects generated CSS into Vue SFC `<style scoped>`.
|
||||
|
||||
```ts
|
||||
UnoCSS({
|
||||
mode: 'vue-scoped',
|
||||
})
|
||||
```
|
||||
|
||||
### shadow-dom
|
||||
|
||||
For Web Components using Shadow DOM:
|
||||
|
||||
```ts
|
||||
UnoCSS({
|
||||
mode: 'shadow-dom',
|
||||
})
|
||||
```
|
||||
|
||||
Add placeholder in component styles:
|
||||
|
||||
```ts
|
||||
const template = document.createElement('template')
|
||||
template.innerHTML = `
|
||||
<style>
|
||||
:host { ... }
|
||||
@unocss-placeholder
|
||||
</style>
|
||||
<div class="m-1em">...</div>
|
||||
`
|
||||
```
|
||||
|
||||
### per-module (experimental)
|
||||
|
||||
Generates CSS per module with optional scoping.
|
||||
|
||||
### dist-chunk (experimental)
|
||||
|
||||
Generates CSS per chunk on build for MPA.
|
||||
|
||||
## DevTools Support
|
||||
|
||||
Edit classes directly in browser DevTools:
|
||||
|
||||
```ts
|
||||
import 'virtual:uno.css'
|
||||
import 'virtual:unocss-devtools'
|
||||
```
|
||||
|
||||
**Warning:** Uses MutationObserver to detect changes. Dynamic classes from scripts will also be included.
|
||||
|
||||
## Framework-Specific Setup
|
||||
|
||||
### React
|
||||
|
||||
```ts
|
||||
// vite.config.ts
|
||||
import React from '@vitejs/plugin-react'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
UnoCSS(), // Must be before React when using attributify
|
||||
React(),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
**Note:** Remove `tsc` from build script if using `@unocss/preset-attributify`.
|
||||
|
||||
### Vue
|
||||
|
||||
Works out of the box with `@vitejs/plugin-vue`.
|
||||
|
||||
### Svelte
|
||||
|
||||
```ts
|
||||
import { svelte } from '@sveltejs/vite-plugin-svelte'
|
||||
import extractorSvelte from '@unocss/extractor-svelte'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
UnoCSS({
|
||||
extractors: [extractorSvelte()],
|
||||
}),
|
||||
svelte(),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
Supports `class:foo` and `class:foo={bar}` syntax.
|
||||
|
||||
### SvelteKit
|
||||
|
||||
Same as Svelte, use `sveltekit()` from `@sveltejs/kit/vite`.
|
||||
|
||||
### Solid
|
||||
|
||||
```ts
|
||||
import UnoCSS from 'unocss/vite'
|
||||
import solidPlugin from 'vite-plugin-solid'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
UnoCSS(),
|
||||
solidPlugin(),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
### Preact
|
||||
|
||||
```ts
|
||||
import Preact from '@preact/preset-vite'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
UnoCSS(),
|
||||
Preact(),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
### Elm
|
||||
|
||||
```ts
|
||||
import Elm from 'vite-plugin-elm'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
Elm(),
|
||||
UnoCSS(),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
### Web Components (Lit)
|
||||
|
||||
```ts
|
||||
UnoCSS({
|
||||
mode: 'shadow-dom',
|
||||
shortcuts: [
|
||||
{ 'cool-blue': 'bg-blue-500 text-white' },
|
||||
],
|
||||
})
|
||||
```
|
||||
|
||||
```ts
|
||||
// my-element.ts
|
||||
@customElement('my-element')
|
||||
export class MyElement extends LitElement {
|
||||
static styles = css`
|
||||
:host { ... }
|
||||
@unocss-placeholder
|
||||
`
|
||||
}
|
||||
```
|
||||
|
||||
Supports `part-[<part-name>]:<utility>` for `::part` styling.
|
||||
|
||||
## Inspector
|
||||
|
||||
Visit `http://localhost:5173/__unocss` in dev mode to:
|
||||
|
||||
- Inspect generated CSS rules
|
||||
- See applied classes per file
|
||||
- Test utilities in REPL
|
||||
|
||||
## Legacy Browser Support
|
||||
|
||||
With `@vitejs/plugin-legacy`:
|
||||
|
||||
```ts
|
||||
import legacy from '@vitejs/plugin-legacy'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
UnoCSS({
|
||||
legacy: {
|
||||
renderModernChunks: false,
|
||||
},
|
||||
}),
|
||||
legacy({
|
||||
targets: ['defaults', 'not IE 11'],
|
||||
renderModernChunks: false,
|
||||
}),
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
## VanillaJS / TypeScript
|
||||
|
||||
By default, `.js` and `.ts` files are not extracted. Configure to include:
|
||||
|
||||
```ts
|
||||
// uno.config.ts
|
||||
export default defineConfig({
|
||||
content: {
|
||||
pipeline: {
|
||||
include: [
|
||||
/\.(vue|svelte|[jt]sx|html)($|\?)/,
|
||||
'src/**/*.{js,ts}',
|
||||
],
|
||||
},
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
Or use magic comment in files:
|
||||
|
||||
```ts
|
||||
// @unocss-include
|
||||
export const classes = {
|
||||
active: 'bg-primary text-white',
|
||||
}
|
||||
```
|
||||
|
||||
<!--
|
||||
Source references:
|
||||
- https://unocss.dev/integrations/vite
|
||||
-->
|
||||
Reference in New Issue
Block a user