aico-cli 2.1.1 → 2.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli/README.md +1 -1
- package/bin/cli/cli.js +9391 -3999
- package/bin/cli/package.json +1 -1
- package/bin/cli/sdk-tools.d.ts +83 -15
- package/dist/chunks/simple-config.mjs +1 -1
- package/package.json +2 -2
- package/templates/cursor.md +72 -15
- package/templates/personality.md +37 -13
- package/templates/skills/antfu/SKILL.md +222 -0
- package/templates/skills/antfu/references/antfu-eslint-config.md +328 -0
- package/templates/skills/antfu/references/app-development.md +60 -0
- package/templates/skills/antfu/references/github-actions.md +68 -0
- package/templates/skills/antfu/references/gitignore.md +29 -0
- package/templates/skills/antfu/references/library-development.md +85 -0
- package/templates/skills/antfu/references/monorepo.md +126 -0
- package/templates/skills/antfu/references/vscode-extensions.md +34 -0
- package/templates/skills/nuxt/GENERATION.md +5 -0
- package/templates/skills/nuxt/SKILL.md +55 -0
- package/templates/skills/nuxt/references/advanced-hooks.md +289 -0
- package/templates/skills/nuxt/references/advanced-layers.md +299 -0
- package/templates/skills/nuxt/references/advanced-module-authoring.md +554 -0
- package/templates/skills/nuxt/references/best-practices-data-fetching.md +357 -0
- package/templates/skills/nuxt/references/best-practices-ssr.md +355 -0
- package/templates/skills/nuxt/references/core-cli.md +263 -0
- package/templates/skills/nuxt/references/core-config.md +162 -0
- package/templates/skills/nuxt/references/core-data-fetching.md +236 -0
- package/templates/skills/nuxt/references/core-deployment.md +224 -0
- package/templates/skills/nuxt/references/core-directory-structure.md +269 -0
- package/templates/skills/nuxt/references/core-modules.md +292 -0
- package/templates/skills/nuxt/references/core-routing.md +226 -0
- package/templates/skills/nuxt/references/features-components-autoimport.md +328 -0
- package/templates/skills/nuxt/references/features-components.md +264 -0
- package/templates/skills/nuxt/references/features-composables.md +276 -0
- package/templates/skills/nuxt/references/features-server.md +265 -0
- package/templates/skills/nuxt/references/features-state.md +194 -0
- package/templates/skills/nuxt/references/rendering-modes.md +237 -0
- package/templates/skills/pinia/GENERATION.md +5 -0
- package/templates/skills/pinia/SKILL.md +59 -0
- package/templates/skills/pinia/references/advanced-hmr.md +61 -0
- package/templates/skills/pinia/references/advanced-nuxt.md +119 -0
- package/templates/skills/pinia/references/advanced-ssr.md +121 -0
- package/templates/skills/pinia/references/best-practices-outside-component.md +115 -0
- package/templates/skills/pinia/references/best-practices-testing.md +212 -0
- package/templates/skills/pinia/references/core-stores.md +389 -0
- package/templates/skills/pinia/references/features-composables.md +114 -0
- package/templates/skills/pinia/references/features-composing-stores.md +134 -0
- package/templates/skills/pinia/references/features-plugins.md +203 -0
- package/templates/skills/pnpm/GENERATION.md +5 -0
- package/templates/skills/pnpm/SKILL.md +42 -0
- package/templates/skills/pnpm/references/best-practices-ci.md +285 -0
- package/templates/skills/pnpm/references/best-practices-migration.md +291 -0
- package/templates/skills/pnpm/references/best-practices-performance.md +284 -0
- package/templates/skills/pnpm/references/core-cli.md +229 -0
- package/templates/skills/pnpm/references/core-config.md +188 -0
- package/templates/skills/pnpm/references/core-store.md +179 -0
- package/templates/skills/pnpm/references/core-workspaces.md +205 -0
- package/templates/skills/pnpm/references/features-aliases.md +168 -0
- package/templates/skills/pnpm/references/features-catalogs.md +159 -0
- package/templates/skills/pnpm/references/features-hooks.md +233 -0
- package/templates/skills/pnpm/references/features-overrides.md +184 -0
- package/templates/skills/pnpm/references/features-patches.md +201 -0
- package/templates/skills/pnpm/references/features-peer-deps.md +250 -0
- package/templates/skills/slidev/LICENSE.md +21 -0
- package/templates/skills/slidev/README.md +61 -0
- package/templates/skills/slidev/SKILL.md +183 -0
- package/templates/skills/slidev/SYNC.md +5 -0
- package/templates/skills/slidev/references/animation-click-marker.md +37 -0
- package/templates/skills/slidev/references/animation-drawing.md +68 -0
- package/templates/skills/slidev/references/animation-rough-marker.md +53 -0
- package/templates/skills/slidev/references/api-slide-hooks.md +37 -0
- package/templates/skills/slidev/references/build-og-image.md +36 -0
- package/templates/skills/slidev/references/build-pdf.md +40 -0
- package/templates/skills/slidev/references/build-remote-assets.md +34 -0
- package/templates/skills/slidev/references/build-seo-meta.md +43 -0
- package/templates/skills/slidev/references/code-groups.md +64 -0
- package/templates/skills/slidev/references/code-import-snippet.md +55 -0
- package/templates/skills/slidev/references/code-line-highlighting.md +50 -0
- package/templates/skills/slidev/references/code-line-numbers.md +46 -0
- package/templates/skills/slidev/references/code-magic-move.md +57 -0
- package/templates/skills/slidev/references/code-max-height.md +37 -0
- package/templates/skills/slidev/references/code-twoslash.md +42 -0
- package/templates/skills/slidev/references/core-animations.md +196 -0
- package/templates/skills/slidev/references/core-cli.md +140 -0
- package/templates/skills/slidev/references/core-components.md +197 -0
- package/templates/skills/slidev/references/core-exporting.md +148 -0
- package/templates/skills/slidev/references/core-frontmatter.md +195 -0
- package/templates/skills/slidev/references/core-global-context.md +155 -0
- package/templates/skills/slidev/references/core-headmatter.md +188 -0
- package/templates/skills/slidev/references/core-hosting.md +152 -0
- package/templates/skills/slidev/references/core-layouts.md +286 -0
- package/templates/skills/slidev/references/core-syntax.md +155 -0
- package/templates/skills/slidev/references/diagram-latex.md +55 -0
- package/templates/skills/slidev/references/diagram-mermaid.md +44 -0
- package/templates/skills/slidev/references/diagram-plantuml.md +45 -0
- package/templates/skills/slidev/references/editor-monaco-run.md +44 -0
- package/templates/skills/slidev/references/editor-monaco-write.md +24 -0
- package/templates/skills/slidev/references/editor-monaco.md +50 -0
- package/templates/skills/slidev/references/editor-prettier.md +40 -0
- package/templates/skills/slidev/references/editor-side.md +23 -0
- package/templates/skills/slidev/references/editor-vscode.md +55 -0
- package/templates/skills/slidev/references/layout-canvas-size.md +25 -0
- package/templates/skills/slidev/references/layout-draggable.md +57 -0
- package/templates/skills/slidev/references/layout-global-layers.md +50 -0
- package/templates/skills/slidev/references/layout-slots.md +75 -0
- package/templates/skills/slidev/references/layout-transform.md +33 -0
- package/templates/skills/slidev/references/layout-zoom.md +39 -0
- package/templates/skills/slidev/references/presenter-notes-ruby.md +35 -0
- package/templates/skills/slidev/references/presenter-recording.md +30 -0
- package/templates/skills/slidev/references/presenter-remote.md +40 -0
- package/templates/skills/slidev/references/presenter-timer.md +34 -0
- package/templates/skills/slidev/references/style-direction.md +34 -0
- package/templates/skills/slidev/references/style-icons.md +46 -0
- package/templates/skills/slidev/references/style-scoped.md +50 -0
- package/templates/skills/slidev/references/syntax-block-frontmatter.md +39 -0
- package/templates/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
- package/templates/skills/slidev/references/syntax-importing-slides.md +60 -0
- package/templates/skills/slidev/references/syntax-mdc.md +51 -0
- package/templates/skills/slidev/references/tool-eject-theme.md +27 -0
- package/templates/skills/tech-whitepaper/SKILL.md +102 -15
- package/templates/skills/tsdown/GENERATION.md +5 -0
- package/templates/skills/tsdown/SKILL.md +59 -0
- package/templates/skills/tsdown/references/advanced-hooks.md +87 -0
- package/templates/skills/tsdown/references/advanced-plugins.md +97 -0
- package/templates/skills/tsdown/references/advanced-programmatic.md +78 -0
- package/templates/skills/tsdown/references/advanced-rolldown-options.md +114 -0
- package/templates/skills/tsdown/references/core-cli.md +116 -0
- package/templates/skills/tsdown/references/core-config.md +86 -0
- package/templates/skills/tsdown/references/core-entry.md +74 -0
- package/templates/skills/tsdown/references/features-optimization.md +83 -0
- package/templates/skills/tsdown/references/features-shims.md +92 -0
- package/templates/skills/tsdown/references/features-unbundle.md +63 -0
- package/templates/skills/tsdown/references/features-watch.md +60 -0
- package/templates/skills/tsdown/references/options-dependencies.md +88 -0
- package/templates/skills/tsdown/references/options-dts.md +104 -0
- package/templates/skills/tsdown/references/options-output.md +124 -0
- package/templates/skills/tsdown/references/options-package-exports.md +114 -0
- package/templates/skills/tsdown/references/recipes-frameworks.md +109 -0
- package/templates/skills/tsdown/references/recipes-migration.md +84 -0
- package/templates/skills/turborepo/LICENSE.md +7 -0
- package/templates/skills/turborepo/SKILL.md +914 -0
- package/templates/skills/turborepo/SYNC.md +5 -0
- package/templates/skills/turborepo/command/turborepo.md +70 -0
- package/templates/skills/turborepo/references/best-practices/README.md +241 -0
- package/templates/skills/turborepo/references/best-practices/dependencies.md +246 -0
- package/templates/skills/turborepo/references/best-practices/packages.md +335 -0
- package/templates/skills/turborepo/references/best-practices/structure.md +269 -0
- package/templates/skills/turborepo/references/boundaries/README.md +126 -0
- package/templates/skills/turborepo/references/caching/README.md +107 -0
- package/templates/skills/turborepo/references/caching/gotchas.md +169 -0
- package/templates/skills/turborepo/references/caching/remote-cache.md +127 -0
- package/templates/skills/turborepo/references/ci/README.md +79 -0
- package/templates/skills/turborepo/references/ci/github-actions.md +162 -0
- package/templates/skills/turborepo/references/ci/patterns.md +145 -0
- package/templates/skills/turborepo/references/ci/vercel.md +103 -0
- package/templates/skills/turborepo/references/cli/README.md +100 -0
- package/templates/skills/turborepo/references/cli/commands.md +297 -0
- package/templates/skills/turborepo/references/configuration/README.md +211 -0
- package/templates/skills/turborepo/references/configuration/global-options.md +195 -0
- package/templates/skills/turborepo/references/configuration/gotchas.md +348 -0
- package/templates/skills/turborepo/references/configuration/tasks.md +285 -0
- package/templates/skills/turborepo/references/environment/README.md +96 -0
- package/templates/skills/turborepo/references/environment/gotchas.md +145 -0
- package/templates/skills/turborepo/references/environment/modes.md +101 -0
- package/templates/skills/turborepo/references/filtering/README.md +148 -0
- package/templates/skills/turborepo/references/filtering/patterns.md +152 -0
- package/templates/skills/turborepo/references/watch/README.md +99 -0
- package/templates/skills/unocss/GENERATION.md +5 -0
- package/templates/skills/unocss/SKILL.md +64 -0
- package/templates/skills/unocss/references/core-config.md +187 -0
- package/templates/skills/unocss/references/core-extracting.md +137 -0
- package/templates/skills/unocss/references/core-layers.md +104 -0
- package/templates/skills/unocss/references/core-rules.md +166 -0
- package/templates/skills/unocss/references/core-safelist.md +105 -0
- package/templates/skills/unocss/references/core-shortcuts.md +89 -0
- package/templates/skills/unocss/references/core-theme.md +172 -0
- package/templates/skills/unocss/references/core-variants.md +175 -0
- package/templates/skills/unocss/references/integrations-nuxt.md +199 -0
- package/templates/skills/unocss/references/integrations-vite.md +283 -0
- package/templates/skills/unocss/references/preset-attributify.md +142 -0
- package/templates/skills/unocss/references/preset-icons.md +184 -0
- package/templates/skills/unocss/references/preset-mini.md +158 -0
- package/templates/skills/unocss/references/preset-rem-to-px.md +97 -0
- package/templates/skills/unocss/references/preset-tagify.md +134 -0
- package/templates/skills/unocss/references/preset-typography.md +95 -0
- package/templates/skills/unocss/references/preset-web-fonts.md +91 -0
- package/templates/skills/unocss/references/preset-wind3.md +194 -0
- package/templates/skills/unocss/references/preset-wind4.md +247 -0
- package/templates/skills/unocss/references/transformer-attributify-jsx.md +156 -0
- package/templates/skills/unocss/references/transformer-compile-class.md +128 -0
- package/templates/skills/unocss/references/transformer-directives.md +157 -0
- package/templates/skills/unocss/references/transformer-variant-group.md +97 -0
- package/templates/skills/vite/GENERATION.md +5 -0
- package/templates/skills/vite/SKILL.md +50 -0
- package/templates/skills/vite/references/advanced-api.md +218 -0
- package/templates/skills/vite/references/advanced-backend.md +164 -0
- package/templates/skills/vite/references/advanced-performance.md +168 -0
- package/templates/skills/vite/references/advanced-plugin-api.md +258 -0
- package/templates/skills/vite/references/build-library.md +172 -0
- package/templates/skills/vite/references/build-production.md +220 -0
- package/templates/skills/vite/references/build-ssr.md +194 -0
- package/templates/skills/vite/references/core-cli.md +137 -0
- package/templates/skills/vite/references/core-config.md +176 -0
- package/templates/skills/vite/references/core-features.md +170 -0
- package/templates/skills/vite/references/core-plugins.md +154 -0
- package/templates/skills/vite/references/features-assets.md +138 -0
- package/templates/skills/vite/references/features-css.md +215 -0
- package/templates/skills/vite/references/features-dep-bundling.md +148 -0
- package/templates/skills/vite/references/features-env.md +161 -0
- package/templates/skills/vite/references/features-glob-import.md +161 -0
- package/templates/skills/vite/references/features-hmr.md +200 -0
- package/templates/skills/vite/references/features-workers.md +115 -0
- package/templates/skills/vitepress/GENERATION.md +5 -0
- package/templates/skills/vitepress/SKILL.md +65 -0
- package/templates/skills/vitepress/references/advanced-i18n.md +299 -0
- package/templates/skills/vitepress/references/advanced-ssr.md +228 -0
- package/templates/skills/vitepress/references/core-cli.md +119 -0
- package/templates/skills/vitepress/references/core-config.md +189 -0
- package/templates/skills/vitepress/references/core-markdown.md +277 -0
- package/templates/skills/vitepress/references/core-routing.md +169 -0
- package/templates/skills/vitepress/references/features-code-blocks.md +243 -0
- package/templates/skills/vitepress/references/features-data-loading.md +220 -0
- package/templates/skills/vitepress/references/features-dynamic-routes.md +235 -0
- package/templates/skills/vitepress/references/features-vue.md +224 -0
- package/templates/skills/vitepress/references/recipes-deploy.md +240 -0
- package/templates/skills/vitepress/references/theme-config.md +315 -0
- package/templates/skills/vitepress/references/theme-custom.md +269 -0
- package/templates/skills/vitepress/references/theme-customization.md +290 -0
- package/templates/skills/vitest/GENERATION.md +5 -0
- package/templates/skills/vitest/SKILL.md +52 -0
- package/templates/skills/vitest/references/advanced-environments.md +264 -0
- package/templates/skills/vitest/references/advanced-projects.md +300 -0
- package/templates/skills/vitest/references/advanced-type-testing.md +237 -0
- package/templates/skills/vitest/references/advanced-vi.md +249 -0
- package/templates/skills/vitest/references/core-cli.md +166 -0
- package/templates/skills/vitest/references/core-config.md +174 -0
- package/templates/skills/vitest/references/core-describe.md +193 -0
- package/templates/skills/vitest/references/core-expect.md +219 -0
- package/templates/skills/vitest/references/core-hooks.md +244 -0
- package/templates/skills/vitest/references/core-test-api.md +233 -0
- package/templates/skills/vitest/references/features-concurrency.md +250 -0
- package/templates/skills/vitest/references/features-context.md +238 -0
- package/templates/skills/vitest/references/features-coverage.md +207 -0
- package/templates/skills/vitest/references/features-filtering.md +211 -0
- package/templates/skills/vitest/references/features-mocking.md +265 -0
- package/templates/skills/vitest/references/features-snapshots.md +207 -0
- package/templates/skills/vue/GENERATION.md +5 -0
- package/templates/skills/vue/SKILL.md +63 -0
- package/templates/skills/vue/references/advanced-async-suspense.md +246 -0
- package/templates/skills/vue/references/advanced-provide-inject.md +174 -0
- package/templates/skills/vue/references/components-emits.md +139 -0
- package/templates/skills/vue/references/components-lifecycle.md +192 -0
- package/templates/skills/vue/references/components-props.md +211 -0
- package/templates/skills/vue/references/components-slots.md +201 -0
- package/templates/skills/vue/references/components-v-model.md +183 -0
- package/templates/skills/vue/references/core-reactivity.md +289 -0
- package/templates/skills/vue/references/features-composables.md +262 -0
- package/templates/skills/vue/references/features-directives.md +224 -0
- package/templates/skills/vue/references/features-script-setup.md +247 -0
- package/templates/skills/vue/references/features-template-refs.md +212 -0
- package/templates/skills/vue/references/features-typescript.md +274 -0
- package/templates/skills/vue-best-practices/LICENSE.md +21 -0
- package/templates/skills/vue-best-practices/SKILL.md +38 -0
- package/templates/skills/vue-best-practices/SYNC.md +5 -0
- package/templates/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
- package/templates/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
- package/templates/skills/vue-best-practices/rules/deep-watch-numeric.md +97 -0
- package/templates/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
- package/templates/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
- package/templates/skills/vue-best-practices/rules/extract-component-props.md +57 -0
- package/templates/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
- package/templates/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
- package/templates/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
- package/templates/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
- package/templates/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
- package/templates/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
- package/templates/skills/vue-best-practices/rules/volar-3-breaking-changes.md +65 -0
- package/templates/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
- package/templates/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
- package/templates/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
- package/templates/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
- package/templates/skills/vueuse-functions/LICENSE.md +21 -0
- package/templates/skills/vueuse-functions/SKILL.md +418 -0
- package/templates/skills/vueuse-functions/SYNC.md +5 -0
- package/templates/skills/vueuse-functions/references/computedAsync.md +159 -0
- package/templates/skills/vueuse-functions/references/computedEager.md +62 -0
- package/templates/skills/vueuse-functions/references/computedInject.md +86 -0
- package/templates/skills/vueuse-functions/references/computedWithControl.md +100 -0
- package/templates/skills/vueuse-functions/references/createEventHook.md +86 -0
- package/templates/skills/vueuse-functions/references/createGenericProjection.md +25 -0
- package/templates/skills/vueuse-functions/references/createGlobalState.md +95 -0
- package/templates/skills/vueuse-functions/references/createInjectionState.md +215 -0
- package/templates/skills/vueuse-functions/references/createProjection.md +31 -0
- package/templates/skills/vueuse-functions/references/createRef.md +54 -0
- package/templates/skills/vueuse-functions/references/createReusableTemplate.md +357 -0
- package/templates/skills/vueuse-functions/references/createSharedComposable.md +42 -0
- package/templates/skills/vueuse-functions/references/createTemplatePromise.md +259 -0
- package/templates/skills/vueuse-functions/references/createUnrefFn.md +51 -0
- package/templates/skills/vueuse-functions/references/extendRef.md +76 -0
- package/templates/skills/vueuse-functions/references/from.md +48 -0
- package/templates/skills/vueuse-functions/references/get.md +30 -0
- package/templates/skills/vueuse-functions/references/injectLocal.md +35 -0
- package/templates/skills/vueuse-functions/references/isDefined.md +31 -0
- package/templates/skills/vueuse-functions/references/logicAnd.md +40 -0
- package/templates/skills/vueuse-functions/references/logicNot.md +36 -0
- package/templates/skills/vueuse-functions/references/logicOr.md +40 -0
- package/templates/skills/vueuse-functions/references/makeDestructurable.md +41 -0
- package/templates/skills/vueuse-functions/references/onClickOutside.md +187 -0
- package/templates/skills/vueuse-functions/references/onElementRemoval.md +64 -0
- package/templates/skills/vueuse-functions/references/onKeyStroke.md +176 -0
- package/templates/skills/vueuse-functions/references/onLongPress.md +170 -0
- package/templates/skills/vueuse-functions/references/onStartTyping.md +43 -0
- package/templates/skills/vueuse-functions/references/provideLocal.md +37 -0
- package/templates/skills/vueuse-functions/references/reactify.md +144 -0
- package/templates/skills/vueuse-functions/references/reactifyObject.md +61 -0
- package/templates/skills/vueuse-functions/references/reactiveComputed.md +34 -0
- package/templates/skills/vueuse-functions/references/reactiveOmit.md +86 -0
- package/templates/skills/vueuse-functions/references/reactivePick.md +106 -0
- package/templates/skills/vueuse-functions/references/refAutoReset.md +44 -0
- package/templates/skills/vueuse-functions/references/refDebounced.md +81 -0
- package/templates/skills/vueuse-functions/references/refDefault.md +36 -0
- package/templates/skills/vueuse-functions/references/refManualReset.md +44 -0
- package/templates/skills/vueuse-functions/references/refThrottled.md +99 -0
- package/templates/skills/vueuse-functions/references/refWithControl.md +146 -0
- package/templates/skills/vueuse-functions/references/set.md +30 -0
- package/templates/skills/vueuse-functions/references/syncRef.md +195 -0
- package/templates/skills/vueuse-functions/references/syncRefs.md +128 -0
- package/templates/skills/vueuse-functions/references/templateRef.md +86 -0
- package/templates/skills/vueuse-functions/references/toObserver.md +38 -0
- package/templates/skills/vueuse-functions/references/toReactive.md +41 -0
- package/templates/skills/vueuse-functions/references/toRef.md +75 -0
- package/templates/skills/vueuse-functions/references/toRefs.md +81 -0
- package/templates/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
- package/templates/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
- package/templates/skills/vueuse-functions/references/tryOnMounted.md +34 -0
- package/templates/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
- package/templates/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
- package/templates/skills/vueuse-functions/references/unrefElement.md +54 -0
- package/templates/skills/vueuse-functions/references/until.md +165 -0
- package/templates/skills/vueuse-functions/references/useAbs.md +31 -0
- package/templates/skills/vueuse-functions/references/useActiveElement.md +65 -0
- package/templates/skills/vueuse-functions/references/useAnimate.md +140 -0
- package/templates/skills/vueuse-functions/references/useArrayDifference.md +84 -0
- package/templates/skills/vueuse-functions/references/useArrayEvery.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayFilter.md +63 -0
- package/templates/skills/vueuse-functions/references/useArrayFind.md +50 -0
- package/templates/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
- package/templates/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
- package/templates/skills/vueuse-functions/references/useArrayJoin.md +74 -0
- package/templates/skills/vueuse-functions/references/useArrayMap.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayReduce.md +81 -0
- package/templates/skills/vueuse-functions/references/useArraySome.md +59 -0
- package/templates/skills/vueuse-functions/references/useArrayUnique.md +76 -0
- package/templates/skills/vueuse-functions/references/useAsyncQueue.md +87 -0
- package/templates/skills/vueuse-functions/references/useAsyncState.md +140 -0
- package/templates/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
- package/templates/skills/vueuse-functions/references/useAuth.md +114 -0
- package/templates/skills/vueuse-functions/references/useAverage.md +36 -0
- package/templates/skills/vueuse-functions/references/useAxios.md +292 -0
- package/templates/skills/vueuse-functions/references/useBase64.md +88 -0
- package/templates/skills/vueuse-functions/references/useBattery.md +67 -0
- package/templates/skills/vueuse-functions/references/useBluetooth.md +161 -0
- package/templates/skills/vueuse-functions/references/useBreakpoints.md +128 -0
- package/templates/skills/vueuse-functions/references/useBroadcastChannel.md +74 -0
- package/templates/skills/vueuse-functions/references/useBrowserLocation.md +83 -0
- package/templates/skills/vueuse-functions/references/useCached.md +53 -0
- package/templates/skills/vueuse-functions/references/useCeil.md +31 -0
- package/templates/skills/vueuse-functions/references/useChangeCase.md +79 -0
- package/templates/skills/vueuse-functions/references/useClamp.md +51 -0
- package/templates/skills/vueuse-functions/references/useClipboard.md +99 -0
- package/templates/skills/vueuse-functions/references/useClipboardItems.md +93 -0
- package/templates/skills/vueuse-functions/references/useCloned.md +91 -0
- package/templates/skills/vueuse-functions/references/useColorMode.md +171 -0
- package/templates/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
- package/templates/skills/vueuse-functions/references/useCookies.md +162 -0
- package/templates/skills/vueuse-functions/references/useCountdown.md +102 -0
- package/templates/skills/vueuse-functions/references/useCounter.md +86 -0
- package/templates/skills/vueuse-functions/references/useCssVar.md +50 -0
- package/templates/skills/vueuse-functions/references/useCurrentElement.md +61 -0
- package/templates/skills/vueuse-functions/references/useCycleList.md +75 -0
- package/templates/skills/vueuse-functions/references/useDark.md +142 -0
- package/templates/skills/vueuse-functions/references/useDateFormat.md +145 -0
- package/templates/skills/vueuse-functions/references/useDebounceFn.md +100 -0
- package/templates/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
- package/templates/skills/vueuse-functions/references/useDeviceMotion.md +87 -0
- package/templates/skills/vueuse-functions/references/useDeviceOrientation.md +62 -0
- package/templates/skills/vueuse-functions/references/useDevicePixelRatio.md +44 -0
- package/templates/skills/vueuse-functions/references/useDevicesList.md +90 -0
- package/templates/skills/vueuse-functions/references/useDisplayMedia.md +71 -0
- package/templates/skills/vueuse-functions/references/useDocumentVisibility.md +45 -0
- package/templates/skills/vueuse-functions/references/useDraggable.md +210 -0
- package/templates/skills/vueuse-functions/references/useDrauu.md +65 -0
- package/templates/skills/vueuse-functions/references/useDropZone.md +83 -0
- package/templates/skills/vueuse-functions/references/useElementBounding.md +131 -0
- package/templates/skills/vueuse-functions/references/useElementByPoint.md +45 -0
- package/templates/skills/vueuse-functions/references/useElementHover.md +79 -0
- package/templates/skills/vueuse-functions/references/useElementSize.md +78 -0
- package/templates/skills/vueuse-functions/references/useElementVisibility.md +126 -0
- package/templates/skills/vueuse-functions/references/useEventBus.md +101 -0
- package/templates/skills/vueuse-functions/references/useEventListener.md +184 -0
- package/templates/skills/vueuse-functions/references/useEventSource.md +204 -0
- package/templates/skills/vueuse-functions/references/useExtractedObservable.md +185 -0
- package/templates/skills/vueuse-functions/references/useEyeDropper.md +71 -0
- package/templates/skills/vueuse-functions/references/useFavicon.md +67 -0
- package/templates/skills/vueuse-functions/references/useFetch.md +546 -0
- package/templates/skills/vueuse-functions/references/useFileDialog.md +91 -0
- package/templates/skills/vueuse-functions/references/useFileSystemAccess.md +162 -0
- package/templates/skills/vueuse-functions/references/useFirestore.md +104 -0
- package/templates/skills/vueuse-functions/references/useFloor.md +31 -0
- package/templates/skills/vueuse-functions/references/useFocus.md +99 -0
- package/templates/skills/vueuse-functions/references/useFocusTrap.md +245 -0
- package/templates/skills/vueuse-functions/references/useFocusWithin.md +57 -0
- package/templates/skills/vueuse-functions/references/useFps.md +28 -0
- package/templates/skills/vueuse-functions/references/useFullscreen.md +75 -0
- package/templates/skills/vueuse-functions/references/useFuse.md +107 -0
- package/templates/skills/vueuse-functions/references/useGamepad.md +223 -0
- package/templates/skills/vueuse-functions/references/useGeolocation.md +86 -0
- package/templates/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
- package/templates/skills/vueuse-functions/references/useIdle.md +89 -0
- package/templates/skills/vueuse-functions/references/useImage.md +86 -0
- package/templates/skills/vueuse-functions/references/useInfiniteScroll.md +157 -0
- package/templates/skills/vueuse-functions/references/useIntersectionObserver.md +118 -0
- package/templates/skills/vueuse-functions/references/useInterval.md +69 -0
- package/templates/skills/vueuse-functions/references/useIntervalFn.md +50 -0
- package/templates/skills/vueuse-functions/references/useIpcRenderer.md +118 -0
- package/templates/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
- package/templates/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
- package/templates/skills/vueuse-functions/references/useJwt.md +57 -0
- package/templates/skills/vueuse-functions/references/useKeyModifier.md +87 -0
- package/templates/skills/vueuse-functions/references/useLastChanged.md +63 -0
- package/templates/skills/vueuse-functions/references/useLocalStorage.md +41 -0
- package/templates/skills/vueuse-functions/references/useMagicKeys.md +217 -0
- package/templates/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
- package/templates/skills/vueuse-functions/references/useMath.md +47 -0
- package/templates/skills/vueuse-functions/references/useMax.md +36 -0
- package/templates/skills/vueuse-functions/references/useMediaControls.md +571 -0
- package/templates/skills/vueuse-functions/references/useMediaQuery.md +53 -0
- package/templates/skills/vueuse-functions/references/useMemoize.md +175 -0
- package/templates/skills/vueuse-functions/references/useMemory.md +56 -0
- package/templates/skills/vueuse-functions/references/useMin.md +36 -0
- package/templates/skills/vueuse-functions/references/useMounted.md +38 -0
- package/templates/skills/vueuse-functions/references/useMouse.md +114 -0
- package/templates/skills/vueuse-functions/references/useMouseInElement.md +123 -0
- package/templates/skills/vueuse-functions/references/useMousePressed.md +112 -0
- package/templates/skills/vueuse-functions/references/useMutationObserver.md +62 -0
- package/templates/skills/vueuse-functions/references/useNProgress.md +78 -0
- package/templates/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
- package/templates/skills/vueuse-functions/references/useNetwork.md +106 -0
- package/templates/skills/vueuse-functions/references/useNow.md +75 -0
- package/templates/skills/vueuse-functions/references/useObjectUrl.md +55 -0
- package/templates/skills/vueuse-functions/references/useObservable.md +67 -0
- package/templates/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
- package/templates/skills/vueuse-functions/references/useOnline.md +41 -0
- package/templates/skills/vueuse-functions/references/usePageLeave.md +42 -0
- package/templates/skills/vueuse-functions/references/useParallax.md +58 -0
- package/templates/skills/vueuse-functions/references/useParentElement.md +54 -0
- package/templates/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
- package/templates/skills/vueuse-functions/references/usePermission.md +78 -0
- package/templates/skills/vueuse-functions/references/usePointer.md +89 -0
- package/templates/skills/vueuse-functions/references/usePointerLock.md +60 -0
- package/templates/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
- package/templates/skills/vueuse-functions/references/usePrecision.md +49 -0
- package/templates/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
- package/templates/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
- package/templates/skills/vueuse-functions/references/usePreferredDark.md +41 -0
- package/templates/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
- package/templates/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
- package/templates/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
- package/templates/skills/vueuse-functions/references/usePrevious.md +40 -0
- package/templates/skills/vueuse-functions/references/useProjection.md +38 -0
- package/templates/skills/vueuse-functions/references/useQRCode.md +53 -0
- package/templates/skills/vueuse-functions/references/useRTDB.md +70 -0
- package/templates/skills/vueuse-functions/references/useRafFn.md +68 -0
- package/templates/skills/vueuse-functions/references/useRefHistory.md +292 -0
- package/templates/skills/vueuse-functions/references/useResizeObserver.md +110 -0
- package/templates/skills/vueuse-functions/references/useRound.md +31 -0
- package/templates/skills/vueuse-functions/references/useRouteHash.md +27 -0
- package/templates/skills/vueuse-functions/references/useRouteParams.md +38 -0
- package/templates/skills/vueuse-functions/references/useRouteQuery.md +38 -0
- package/templates/skills/vueuse-functions/references/useSSRWidth.md +47 -0
- package/templates/skills/vueuse-functions/references/useScreenOrientation.md +96 -0
- package/templates/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
- package/templates/skills/vueuse-functions/references/useScriptTag.md +116 -0
- package/templates/skills/vueuse-functions/references/useScroll.md +238 -0
- package/templates/skills/vueuse-functions/references/useScrollLock.md +66 -0
- package/templates/skills/vueuse-functions/references/useSessionStorage.md +41 -0
- package/templates/skills/vueuse-functions/references/useShare.md +68 -0
- package/templates/skills/vueuse-functions/references/useSortable.md +177 -0
- package/templates/skills/vueuse-functions/references/useSorted.md +90 -0
- package/templates/skills/vueuse-functions/references/useSpeechRecognition.md +94 -0
- package/templates/skills/vueuse-functions/references/useSpeechSynthesis.md +105 -0
- package/templates/skills/vueuse-functions/references/useStepper.md +137 -0
- package/templates/skills/vueuse-functions/references/useStorage.md +219 -0
- package/templates/skills/vueuse-functions/references/useStorageAsync.md +134 -0
- package/templates/skills/vueuse-functions/references/useStyleTag.md +131 -0
- package/templates/skills/vueuse-functions/references/useSubject.md +52 -0
- package/templates/skills/vueuse-functions/references/useSubscription.md +33 -0
- package/templates/skills/vueuse-functions/references/useSum.md +36 -0
- package/templates/skills/vueuse-functions/references/useSupported.md +29 -0
- package/templates/skills/vueuse-functions/references/useSwipe.md +75 -0
- package/templates/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
- package/templates/skills/vueuse-functions/references/useTextDirection.md +75 -0
- package/templates/skills/vueuse-functions/references/useTextSelection.md +40 -0
- package/templates/skills/vueuse-functions/references/useTextareaAutosize.md +97 -0
- package/templates/skills/vueuse-functions/references/useThrottleFn.md +57 -0
- package/templates/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
- package/templates/skills/vueuse-functions/references/useTimeAgo.md +152 -0
- package/templates/skills/vueuse-functions/references/useTimeAgoIntl.md +116 -0
- package/templates/skills/vueuse-functions/references/useTimeout.md +75 -0
- package/templates/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
- package/templates/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
- package/templates/skills/vueuse-functions/references/useTimestamp.md +85 -0
- package/templates/skills/vueuse-functions/references/useTitle.md +113 -0
- package/templates/skills/vueuse-functions/references/useToNumber.md +54 -0
- package/templates/skills/vueuse-functions/references/useToString.md +34 -0
- package/templates/skills/vueuse-functions/references/useToggle.md +56 -0
- package/templates/skills/vueuse-functions/references/useTransition.md +265 -0
- package/templates/skills/vueuse-functions/references/useTrunc.md +33 -0
- package/templates/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
- package/templates/skills/vueuse-functions/references/useUserMedia.md +1138 -0
- package/templates/skills/vueuse-functions/references/useVModel.md +116 -0
- package/templates/skills/vueuse-functions/references/useVModels.md +67 -0
- package/templates/skills/vueuse-functions/references/useVibrate.md +83 -0
- package/templates/skills/vueuse-functions/references/useVirtualList.md +184 -0
- package/templates/skills/vueuse-functions/references/useWakeLock.md +50 -0
- package/templates/skills/vueuse-functions/references/useWebNotification.md +177 -0
- package/templates/skills/vueuse-functions/references/useWebSocket.md +268 -0
- package/templates/skills/vueuse-functions/references/useWebWorker.md +60 -0
- package/templates/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
- package/templates/skills/vueuse-functions/references/useWindowFocus.md +46 -0
- package/templates/skills/vueuse-functions/references/useWindowScroll.md +62 -0
- package/templates/skills/vueuse-functions/references/useWindowSize.md +76 -0
- package/templates/skills/vueuse-functions/references/useZoomFactor.md +53 -0
- package/templates/skills/vueuse-functions/references/useZoomLevel.md +53 -0
- package/templates/skills/vueuse-functions/references/watchArray.md +53 -0
- package/templates/skills/vueuse-functions/references/watchAtMost.md +54 -0
- package/templates/skills/vueuse-functions/references/watchDebounced.md +72 -0
- package/templates/skills/vueuse-functions/references/watchDeep.md +54 -0
- package/templates/skills/vueuse-functions/references/watchExtractedObservable.md +167 -0
- package/templates/skills/vueuse-functions/references/watchIgnorable.md +120 -0
- package/templates/skills/vueuse-functions/references/watchImmediate.md +44 -0
- package/templates/skills/vueuse-functions/references/watchOnce.md +41 -0
- package/templates/skills/vueuse-functions/references/watchPausable.md +86 -0
- package/templates/skills/vueuse-functions/references/watchThrottled.md +73 -0
- package/templates/skills/vueuse-functions/references/watchTriggerable.md +97 -0
- package/templates/skills/vueuse-functions/references/watchWithFilter.md +55 -0
- package/templates/skills/vueuse-functions/references/whenever.md +100 -0
- package/templates/skills/web-design-guidelines/SKILL.md +39 -0
- package/templates/skills/web-design-guidelines/SYNC.md +5 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Environment Variable Gotchas
|
|
2
|
+
|
|
3
|
+
Common mistakes and how to fix them.
|
|
4
|
+
|
|
5
|
+
## .env Files Must Be in `inputs`
|
|
6
|
+
|
|
7
|
+
Turbo does NOT read `.env` files. Your framework (Next.js, Vite, etc.) or `dotenv` loads them. But Turbo needs to know when they change.
|
|
8
|
+
|
|
9
|
+
**Wrong:**
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"tasks": {
|
|
14
|
+
"build": {
|
|
15
|
+
"env": ["DATABASE_URL"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Right:**
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"tasks": {
|
|
26
|
+
"build": {
|
|
27
|
+
"env": ["DATABASE_URL"],
|
|
28
|
+
"inputs": ["$TURBO_DEFAULT$", ".env", ".env.local", ".env.production"]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Strict Mode Filters CI Variables
|
|
35
|
+
|
|
36
|
+
In strict mode, CI provider variables (GITHUB_TOKEN, GITLAB_CI, etc.) are filtered unless explicitly listed.
|
|
37
|
+
|
|
38
|
+
**Symptom:** Task fails with "authentication required" or "permission denied" in CI.
|
|
39
|
+
|
|
40
|
+
**Solution:**
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"globalPassThroughEnv": ["GITHUB_TOKEN", "GITLAB_CI", "CI"]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## passThroughEnv Doesn't Affect Hash
|
|
49
|
+
|
|
50
|
+
Variables in `passThroughEnv` are available at runtime but changes WON'T trigger rebuilds.
|
|
51
|
+
|
|
52
|
+
**Dangerous example:**
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"tasks": {
|
|
57
|
+
"build": {
|
|
58
|
+
"passThroughEnv": ["API_URL"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If `API_URL` changes from staging to production, Turbo may serve a cached build pointing to the wrong API.
|
|
65
|
+
|
|
66
|
+
**Use passThroughEnv only for:**
|
|
67
|
+
|
|
68
|
+
- Auth tokens that don't affect output (SENTRY_AUTH_TOKEN)
|
|
69
|
+
- CI metadata (GITHUB_RUN_ID)
|
|
70
|
+
- Variables consumed after build (deploy credentials)
|
|
71
|
+
|
|
72
|
+
## Runtime-Created Variables Are Invisible
|
|
73
|
+
|
|
74
|
+
Turbo captures env vars at startup. Variables created during execution aren't seen.
|
|
75
|
+
|
|
76
|
+
**Won't work:**
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# In package.json scripts
|
|
80
|
+
"build": "export API_URL=$COMPUTED_VALUE && next build"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Solution:** Set vars before invoking turbo:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
API_URL=$COMPUTED_VALUE turbo run build
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Different .env Files for Different Environments
|
|
90
|
+
|
|
91
|
+
If you use `.env.development` and `.env.production`, both should be in inputs.
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"tasks": {
|
|
96
|
+
"build": {
|
|
97
|
+
"inputs": [
|
|
98
|
+
"$TURBO_DEFAULT$",
|
|
99
|
+
".env",
|
|
100
|
+
".env.local",
|
|
101
|
+
".env.development",
|
|
102
|
+
".env.development.local",
|
|
103
|
+
".env.production",
|
|
104
|
+
".env.production.local"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Complete Next.js Example
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"$schema": "https://turborepo.dev/schema.v2.json",
|
|
116
|
+
"globalEnv": ["CI", "NODE_ENV", "VERCEL"],
|
|
117
|
+
"globalPassThroughEnv": ["GITHUB_TOKEN", "VERCEL_URL"],
|
|
118
|
+
"tasks": {
|
|
119
|
+
"build": {
|
|
120
|
+
"dependsOn": ["^build"],
|
|
121
|
+
"env": [
|
|
122
|
+
"DATABASE_URL",
|
|
123
|
+
"NEXT_PUBLIC_*",
|
|
124
|
+
"!NEXT_PUBLIC_ANALYTICS_ID"
|
|
125
|
+
],
|
|
126
|
+
"passThroughEnv": ["SENTRY_AUTH_TOKEN"],
|
|
127
|
+
"inputs": [
|
|
128
|
+
"$TURBO_DEFAULT$",
|
|
129
|
+
".env",
|
|
130
|
+
".env.local",
|
|
131
|
+
".env.production",
|
|
132
|
+
".env.production.local"
|
|
133
|
+
],
|
|
134
|
+
"outputs": [".next/**", "!.next/cache/**"]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
This config:
|
|
141
|
+
|
|
142
|
+
- Hashes DATABASE*URL and NEXT_PUBLIC*\* vars (except analytics)
|
|
143
|
+
- Passes through SENTRY_AUTH_TOKEN without hashing
|
|
144
|
+
- Includes all .env file variants in the hash
|
|
145
|
+
- Makes CI tokens available globally
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Environment Modes
|
|
2
|
+
|
|
3
|
+
Turborepo supports different modes for handling environment variables during task execution.
|
|
4
|
+
|
|
5
|
+
## Strict Mode (Default)
|
|
6
|
+
|
|
7
|
+
Only explicitly configured variables are available to tasks.
|
|
8
|
+
|
|
9
|
+
**Behavior:**
|
|
10
|
+
|
|
11
|
+
- Tasks only see vars listed in `env`, `globalEnv`, `passThroughEnv`, or `globalPassThroughEnv`
|
|
12
|
+
- Unlisted vars are filtered out
|
|
13
|
+
- Tasks fail if they require unlisted variables
|
|
14
|
+
|
|
15
|
+
**Benefits:**
|
|
16
|
+
|
|
17
|
+
- Guarantees cache correctness
|
|
18
|
+
- Prevents accidental dependencies on system vars
|
|
19
|
+
- Reproducible builds across machines
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Explicit (though it's the default)
|
|
23
|
+
turbo run build --env-mode=strict
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Loose Mode
|
|
27
|
+
|
|
28
|
+
All system environment variables are available to tasks.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
turbo run build --env-mode=loose
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Behavior:**
|
|
35
|
+
|
|
36
|
+
- Every system env var is passed through
|
|
37
|
+
- Only vars in `env`/`globalEnv` affect the hash
|
|
38
|
+
- Other vars are available but NOT hashed
|
|
39
|
+
|
|
40
|
+
**Risks:**
|
|
41
|
+
|
|
42
|
+
- Cache may restore incorrect results if unhashed vars changed
|
|
43
|
+
- "Works on my machine" bugs
|
|
44
|
+
- CI vs local environment mismatches
|
|
45
|
+
|
|
46
|
+
**Use case:** Migrating legacy projects or debugging strict mode issues.
|
|
47
|
+
|
|
48
|
+
## Framework Inference (Automatic)
|
|
49
|
+
|
|
50
|
+
Turborepo automatically detects frameworks and includes their conventional env vars.
|
|
51
|
+
|
|
52
|
+
### Inferred Variables by Framework
|
|
53
|
+
|
|
54
|
+
| Framework | Pattern |
|
|
55
|
+
| ---------------- | ------------------- |
|
|
56
|
+
| Next.js | `NEXT_PUBLIC_*` |
|
|
57
|
+
| Vite | `VITE_*` |
|
|
58
|
+
| Create React App | `REACT_APP_*` |
|
|
59
|
+
| Gatsby | `GATSBY_*` |
|
|
60
|
+
| Nuxt | `NUXT_*`, `NITRO_*` |
|
|
61
|
+
| Expo | `EXPO_PUBLIC_*` |
|
|
62
|
+
| Astro | `PUBLIC_*` |
|
|
63
|
+
| SvelteKit | `PUBLIC_*` |
|
|
64
|
+
| Remix | `REMIX_*` |
|
|
65
|
+
| Redwood | `REDWOOD_ENV_*` |
|
|
66
|
+
| Sanity | `SANITY_STUDIO_*` |
|
|
67
|
+
| Solid | `VITE_*` |
|
|
68
|
+
|
|
69
|
+
### Disabling Framework Inference
|
|
70
|
+
|
|
71
|
+
Globally via CLI:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
turbo run build --framework-inference=false
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Or exclude specific patterns in config:
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"tasks": {
|
|
82
|
+
"build": {
|
|
83
|
+
"env": ["!NEXT_PUBLIC_*"]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Why Disable?
|
|
90
|
+
|
|
91
|
+
- You want explicit control over all env vars
|
|
92
|
+
- Framework vars shouldn't bust the cache (e.g., analytics IDs)
|
|
93
|
+
- Debugging unexpected cache misses
|
|
94
|
+
|
|
95
|
+
## Checking Environment Mode
|
|
96
|
+
|
|
97
|
+
Use `--dry` to see which vars affect each task:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
turbo run build --dry=json | jq '.tasks[].environmentVariables'
|
|
101
|
+
```
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Turborepo Filter Syntax Reference
|
|
2
|
+
|
|
3
|
+
## Running Only Changed Packages: `--affected`
|
|
4
|
+
|
|
5
|
+
**The primary way to run only changed packages is `--affected`:**
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Run build/test/lint only in changed packages and their dependents
|
|
9
|
+
turbo run build test lint --affected
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
This compares your current branch to the default branch (usually `main` or `master`) and runs tasks in:
|
|
13
|
+
|
|
14
|
+
1. Packages with file changes
|
|
15
|
+
2. Packages that depend on changed packages (dependents)
|
|
16
|
+
|
|
17
|
+
### Why Include Dependents?
|
|
18
|
+
|
|
19
|
+
If you change `@repo/ui`, packages that import `@repo/ui` (like `apps/web`) need to re-run their tasks to verify they still work with the changes.
|
|
20
|
+
|
|
21
|
+
### Customizing --affected
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Use a different base branch
|
|
25
|
+
turbo run build --affected --affected-base=origin/develop
|
|
26
|
+
|
|
27
|
+
# Use a different head (current state)
|
|
28
|
+
turbo run build --affected --affected-head=HEAD~5
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Common CI Pattern
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
# .github/workflows/ci.yml
|
|
35
|
+
- run: turbo run build test lint --affected
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This is the most efficient CI setup - only run tasks for what actually changed.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Manual Git Comparison with --filter
|
|
43
|
+
|
|
44
|
+
For more control, use `--filter` with git comparison syntax:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Changed packages + dependents (same as --affected)
|
|
48
|
+
turbo run build --filter=...[origin/main]
|
|
49
|
+
|
|
50
|
+
# Only changed packages (no dependents)
|
|
51
|
+
turbo run build --filter=[origin/main]
|
|
52
|
+
|
|
53
|
+
# Changed packages + dependencies (packages they import)
|
|
54
|
+
turbo run build --filter=[origin/main]...
|
|
55
|
+
|
|
56
|
+
# Changed since last commit
|
|
57
|
+
turbo run build --filter=...[HEAD^1]
|
|
58
|
+
|
|
59
|
+
# Changed between two commits
|
|
60
|
+
turbo run build --filter=[a1b2c3d...e4f5g6h]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Comparison Syntax
|
|
64
|
+
|
|
65
|
+
| Syntax | Meaning |
|
|
66
|
+
| ------------- | ------------------------------------- |
|
|
67
|
+
| `[ref]` | Packages changed since `ref` |
|
|
68
|
+
| `...[ref]` | Changed packages + their dependents |
|
|
69
|
+
| `[ref]...` | Changed packages + their dependencies |
|
|
70
|
+
| `...[ref]...` | Dependencies, changed, AND dependents |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Other Filter Types
|
|
75
|
+
|
|
76
|
+
Filters select which packages to include in a `turbo run` invocation.
|
|
77
|
+
|
|
78
|
+
### Basic Syntax
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
turbo run build --filter=<package-name>
|
|
82
|
+
turbo run build -F <package-name>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Multiple filters combine as a union (packages matching ANY filter run).
|
|
86
|
+
|
|
87
|
+
### By Package Name
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
--filter=web # exact match
|
|
91
|
+
--filter=@acme/* # scope glob
|
|
92
|
+
--filter=*-app # name glob
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### By Directory
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
--filter=./apps/* # all packages in apps/
|
|
99
|
+
--filter=./packages/ui # specific directory
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### By Dependencies/Dependents
|
|
103
|
+
|
|
104
|
+
| Syntax | Meaning |
|
|
105
|
+
| ----------- | -------------------------------------- |
|
|
106
|
+
| `pkg...` | Package AND all its dependencies |
|
|
107
|
+
| `...pkg` | Package AND all its dependents |
|
|
108
|
+
| `...pkg...` | Dependencies, package, AND dependents |
|
|
109
|
+
| `^pkg...` | Only dependencies (exclude pkg itself) |
|
|
110
|
+
| `...^pkg` | Only dependents (exclude pkg itself) |
|
|
111
|
+
|
|
112
|
+
### Negation
|
|
113
|
+
|
|
114
|
+
Exclude packages with `!`:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
--filter=!web # exclude web
|
|
118
|
+
--filter=./apps/* --filter=!admin # apps except admin
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Task Identifiers
|
|
122
|
+
|
|
123
|
+
Run a specific task in a specific package:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
turbo run web#build # only web's build task
|
|
127
|
+
turbo run web#build api#test # web build + api test
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Combining Filters
|
|
131
|
+
|
|
132
|
+
Multiple `--filter` flags create a union:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
turbo run build --filter=web --filter=api # runs in both
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Quick Reference: Changed Packages
|
|
141
|
+
|
|
142
|
+
| Goal | Command |
|
|
143
|
+
| ---------------------------------- | ----------------------------------------------------------- |
|
|
144
|
+
| Changed + dependents (recommended) | `turbo run build --affected` |
|
|
145
|
+
| Custom base branch | `turbo run build --affected --affected-base=origin/develop` |
|
|
146
|
+
| Only changed (no dependents) | `turbo run build --filter=[origin/main]` |
|
|
147
|
+
| Changed + dependencies | `turbo run build --filter=[origin/main]...` |
|
|
148
|
+
| Since last commit | `turbo run build --filter=...[HEAD^1]` |
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Common Filter Patterns
|
|
2
|
+
|
|
3
|
+
Practical examples for typical monorepo scenarios.
|
|
4
|
+
|
|
5
|
+
## Single Package
|
|
6
|
+
|
|
7
|
+
Run task in one package:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
turbo run build --filter=web
|
|
11
|
+
turbo run test --filter=@acme/api
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Package with Dependencies
|
|
15
|
+
|
|
16
|
+
Build a package and everything it depends on:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
turbo run build --filter=web...
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Useful for: ensuring all dependencies are built before the target.
|
|
23
|
+
|
|
24
|
+
## Package Dependents
|
|
25
|
+
|
|
26
|
+
Run in all packages that depend on a library:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
turbo run test --filter=...ui
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Useful for: testing consumers after changing a shared package.
|
|
33
|
+
|
|
34
|
+
## Dependents Only (Exclude Target)
|
|
35
|
+
|
|
36
|
+
Test packages that depend on ui, but not ui itself:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
turbo run test --filter=...^ui
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Changed Packages
|
|
43
|
+
|
|
44
|
+
Run only in packages with file changes since last commit:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
turbo run lint --filter=[HEAD^1]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Since a specific branch point:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
turbo run lint --filter=[main...HEAD]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Changed + Dependents (PR Builds)
|
|
57
|
+
|
|
58
|
+
Run in changed packages AND packages that depend on them:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
turbo run build test --filter=...[HEAD^1]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Or use the shortcut:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
turbo run build test --affected
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Directory-Based
|
|
71
|
+
|
|
72
|
+
Run in all apps:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
turbo run build --filter=./apps/*
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Run in specific directories:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
turbo run build --filter=./apps/web --filter=./apps/api
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Scope-Based
|
|
85
|
+
|
|
86
|
+
Run in all packages under a scope:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
turbo run build --filter=@acme/*
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Exclusions
|
|
93
|
+
|
|
94
|
+
Run in all apps except admin:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
turbo run build --filter=./apps/* --filter=!admin
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Run everywhere except specific packages:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
turbo run lint --filter=!legacy-app --filter=!deprecated-pkg
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Complex Combinations
|
|
107
|
+
|
|
108
|
+
Apps that changed, plus their dependents:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
turbo run build --filter=...[HEAD^1] --filter=./apps/*
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
All packages except docs, but only if changed:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
turbo run build --filter=[main...HEAD] --filter=!docs
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Debugging Filters
|
|
121
|
+
|
|
122
|
+
Use `--dry` to see what would run without executing:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
turbo run build --filter=web... --dry
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Use `--dry=json` for machine-readable output:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
turbo run build --filter=...[HEAD^1] --dry=json
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## CI/CD Patterns
|
|
135
|
+
|
|
136
|
+
PR validation (most common):
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
turbo run build test lint --affected
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Deploy only changed apps:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
turbo run deploy --filter=./apps/* --filter=[main...HEAD]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Full rebuild of specific app and deps:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
turbo run build --filter=production-app...
|
|
152
|
+
```
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# turbo watch
|
|
2
|
+
|
|
3
|
+
Full docs: https://turborepo.dev/docs/reference/watch
|
|
4
|
+
|
|
5
|
+
Re-run tasks automatically when code changes. Dependency-aware.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
turbo watch [tasks]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Basic Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Watch and re-run build task when code changes
|
|
15
|
+
turbo watch build
|
|
16
|
+
|
|
17
|
+
# Watch multiple tasks
|
|
18
|
+
turbo watch build test lint
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Tasks re-run in order configured in `turbo.json` when source files change.
|
|
22
|
+
|
|
23
|
+
## With Persistent Tasks
|
|
24
|
+
|
|
25
|
+
Persistent tasks (`"persistent": true`) won't exit, so they can't be depended on. They work the same in `turbo watch` as `turbo run`.
|
|
26
|
+
|
|
27
|
+
### Dependency-Aware Persistent Tasks
|
|
28
|
+
|
|
29
|
+
If your tool has built-in watching (like `next dev`), use its watcher:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"tasks": {
|
|
34
|
+
"dev": {
|
|
35
|
+
"persistent": true,
|
|
36
|
+
"cache": false
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Non-Dependency-Aware Tools
|
|
43
|
+
|
|
44
|
+
For tools that don't detect dependency changes, use `interruptible`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"tasks": {
|
|
49
|
+
"dev": {
|
|
50
|
+
"persistent": true,
|
|
51
|
+
"interruptible": true,
|
|
52
|
+
"cache": false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`turbo watch` will restart interruptible tasks when dependencies change.
|
|
59
|
+
|
|
60
|
+
## Limitations
|
|
61
|
+
|
|
62
|
+
### Caching
|
|
63
|
+
|
|
64
|
+
Caching is experimental with watch mode:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
turbo watch your-tasks --experimental-write-cache
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Task Outputs in Source Control
|
|
71
|
+
|
|
72
|
+
If tasks write files tracked by git, watch mode may loop infinitely. Watch mode uses file hashes to prevent this but it's not foolproof.
|
|
73
|
+
|
|
74
|
+
**Recommendation**: Remove task outputs from git.
|
|
75
|
+
|
|
76
|
+
## vs turbo run
|
|
77
|
+
|
|
78
|
+
| Feature | `turbo run` | `turbo watch` |
|
|
79
|
+
| ----------------- | ----------- | ------------- |
|
|
80
|
+
| Runs once | Yes | No |
|
|
81
|
+
| Re-runs on change | No | Yes |
|
|
82
|
+
| Caching | Full | Experimental |
|
|
83
|
+
| Use case | CI, one-off | Development |
|
|
84
|
+
|
|
85
|
+
## Common Patterns
|
|
86
|
+
|
|
87
|
+
### Development Workflow
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Run dev servers and watch for build changes
|
|
91
|
+
turbo watch dev build
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Type Checking During Development
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Watch and re-run type checks
|
|
98
|
+
turbo watch check-types
|
|
99
|
+
```
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: unocss
|
|
3
|
+
description: UnoCSS instant atomic CSS engine, superset of Tailwind CSS. Use when configuring UnoCSS, writing utility rules, shortcuts, or working with presets like Wind, Icons, Attributify.
|
|
4
|
+
metadata:
|
|
5
|
+
author: Anthony Fu
|
|
6
|
+
version: "2026.1.28"
|
|
7
|
+
source: Generated from https://github.com/unocss/unocss, scripts located at https://github.com/antfu/skills
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
UnoCSS is an instant atomic CSS engine designed to be flexible and extensible. The core is un-opinionated - all CSS utilities are provided via presets. It's a superset of Tailwind CSS, so you can reuse your Tailwind knowledge for basic syntax usage.
|
|
11
|
+
|
|
12
|
+
**Important:** Before writing UnoCSS code, agents should check for `uno.config.*` or `unocss.config.*` files in the project root to understand what presets, rules, and shortcuts are available. If the project setup is unclear, avoid using attributify mode and other advanced features - stick to basic `class` usage.
|
|
13
|
+
|
|
14
|
+
> The skill is based on UnoCSS 66.x, generated at 2026-01-28.
|
|
15
|
+
|
|
16
|
+
## Core
|
|
17
|
+
|
|
18
|
+
| Topic | Description | Reference |
|
|
19
|
+
|-------|-------------|-----------|
|
|
20
|
+
| Configuration | Config file setup and all configuration options | [core-config](references/core-config.md) |
|
|
21
|
+
| Rules | Static and dynamic rules for generating CSS utilities | [core-rules](references/core-rules.md) |
|
|
22
|
+
| Shortcuts | Combine multiple rules into single shorthands | [core-shortcuts](references/core-shortcuts.md) |
|
|
23
|
+
| Theme | Theming system for colors, breakpoints, and design tokens | [core-theme](references/core-theme.md) |
|
|
24
|
+
| Variants | Apply variations like hover:, dark:, responsive to rules | [core-variants](references/core-variants.md) |
|
|
25
|
+
| Extracting | How UnoCSS extracts utilities from source code | [core-extracting](references/core-extracting.md) |
|
|
26
|
+
| Safelist & Blocklist | Force include or exclude specific utilities | [core-safelist](references/core-safelist.md) |
|
|
27
|
+
| Layers & Preflights | CSS layer ordering and raw CSS injection | [core-layers](references/core-layers.md) |
|
|
28
|
+
|
|
29
|
+
## Presets
|
|
30
|
+
|
|
31
|
+
### Main Presets
|
|
32
|
+
|
|
33
|
+
| Topic | Description | Reference |
|
|
34
|
+
|-------|-------------|-----------|
|
|
35
|
+
| Preset Wind3 | Tailwind CSS v3 / Windi CSS compatible preset (most common) | [preset-wind3](references/preset-wind3.md) |
|
|
36
|
+
| Preset Wind4 | Tailwind CSS v4 compatible preset with modern CSS features | [preset-wind4](references/preset-wind4.md) |
|
|
37
|
+
| Preset Mini | Minimal preset with essential utilities for custom builds | [preset-mini](references/preset-mini.md) |
|
|
38
|
+
|
|
39
|
+
### Feature Presets
|
|
40
|
+
|
|
41
|
+
| Topic | Description | Reference |
|
|
42
|
+
|-------|-------------|-----------|
|
|
43
|
+
| Preset Icons | Pure CSS icons using Iconify with any icon set | [preset-icons](references/preset-icons.md) |
|
|
44
|
+
| Preset Attributify | Group utilities in HTML attributes instead of class | [preset-attributify](references/preset-attributify.md) |
|
|
45
|
+
| Preset Typography | Prose classes for typographic defaults | [preset-typography](references/preset-typography.md) |
|
|
46
|
+
| Preset Web Fonts | Easy Google Fonts and other web fonts integration | [preset-web-fonts](references/preset-web-fonts.md) |
|
|
47
|
+
| Preset Tagify | Use utilities as HTML tag names | [preset-tagify](references/preset-tagify.md) |
|
|
48
|
+
| Preset Rem to Px | Convert rem units to px for utilities | [preset-rem-to-px](references/preset-rem-to-px.md) |
|
|
49
|
+
|
|
50
|
+
## Transformers
|
|
51
|
+
|
|
52
|
+
| Topic | Description | Reference |
|
|
53
|
+
|-------|-------------|-----------|
|
|
54
|
+
| Variant Group | Shorthand for grouping utilities with common prefixes | [transformer-variant-group](references/transformer-variant-group.md) |
|
|
55
|
+
| Directives | CSS directives: @apply, @screen, theme(), icon() | [transformer-directives](references/transformer-directives.md) |
|
|
56
|
+
| Compile Class | Compile multiple classes into one hashed class | [transformer-compile-class](references/transformer-compile-class.md) |
|
|
57
|
+
| Attributify JSX | Support valueless attributify in JSX/TSX | [transformer-attributify-jsx](references/transformer-attributify-jsx.md) |
|
|
58
|
+
|
|
59
|
+
## Integrations
|
|
60
|
+
|
|
61
|
+
| Topic | Description | Reference |
|
|
62
|
+
|-------|-------------|-----------|
|
|
63
|
+
| Vite Integration | Setting up UnoCSS with Vite and framework-specific tips | [integrations-vite](references/integrations-vite.md) |
|
|
64
|
+
| Nuxt Integration | UnoCSS module for Nuxt applications | [integrations-nuxt](references/integrations-nuxt.md) |
|