typescript-vite-tailwind-cursorrules-prompt-file — Cursor rule
A Cursor rule that pins down TypeScript code style for Vue projects built with Vite and styled with Tailwind. Useful when you want the agent's output to stay predictable.
.cursor/rules/typescript-vite-tailwind-cursorrules-prompt-file.mdcWhat typescript-vite-tailwind-cursorrules-prompt-file does
The file tells the agent how to write code: functional and declarative patterns instead of classes, named exports, interfaces over types, maps instead of enums. Variable names should carry auxiliary verbs like isLoading and hasError, and directories use lowercase with dashes. Pure functions go through the function keyword.
For UI it leans on DaisyUI and Tailwind and asks for a mobile-first approach. Vue components stay in Composition API with script setup. On performance: wrap async components in Suspense with a fallback, load non-critical parts dynamically, serve images as WebP with size data and lazy loading, and split the bundle during the Vite build.
A separate section covers review — check components for unnecessary re-renders and fix them with VueUse functions. The rule lives at .cursor/rules/typescript-vite-tailwind-cursorrules-prompt-file.mdc and does not apply on its own: the description sets alwaysApply: false, so you switch it on yourself. The text covers more than the filename suggests, including Vue Router, Pinia and VueUse, so it will not fit a React codebase.
What it helps with
- set one TypeScript style for the agent in a Vue project
- settle interfaces versus types without another review argument
- build mobile-first layouts with Tailwind and DaisyUI
- cut unnecessary re-renders using VueUse functions
- split the Vite bundle into smaller chunks
Example prompts for the agent
- Rewrite this component with Composition API and script setup
- Check this component for unnecessary re-renders and suggest fixes
- Set up code splitting in the Vite build for this project
How to install typescript-vite-tailwind-cursorrules-prompt-file
Manually: put the files in place
.cursor/rules/typescript-vite-tailwind-cursorrules-prompt-file.mdcFrontmatter: description, globs, alwaysApply
Manually: put the files in place
.claude/rules/typescript-vite-tailwind-cursorrules-prompt-file.mdThe paths frontmatter field limits the files: move globs from the source into paths
AGENTS.md
Codex reads AGENTS.md: paste the rule text there
Manually: put the files in place
.github/instructions/typescript-vite-tailwind-cursorrules-prompt-file.instructions.mdThe applyTo field sets which files it applies to: move globs from the source into applyTo
Manually: put the files in place
.devin/rules/typescript-vite-tailwind-cursorrules-prompt-file.mdManually: put the files in place
.clinerules/typescript-vite-tailwind-cursorrules-prompt-file.mdStep by step, with commands for each platform: Cursor rules: .mdc files, four modes and what replaced .cursorrules
Questions about typescript-vite-tailwind-cursorrules-prompt-file
How do I install typescript-vite-tailwind-cursorrules-prompt-file in Cursor?
Create .cursor/rules/typescript-vite-tailwind-cursorrules-prompt-file.mdc in your project root and paste the rule contents into it.
What does this rule do?
It gives the Cursor agent conventions for TypeScript: functional style, interfaces over types, maps instead of enums, Tailwind and DaisyUI for styling, VueUse for performance work, and bundle splitting in Vite.
Does the rule apply to every file automatically?
No. It carries alwaysApply: false, so you enable it yourself. The globs field points at **/*.
Source text
typescript-vite-tailwind-cursorrules-prompt-file.mdc · CC0-1.0
--- description: "Cursor rules for TypeScript development with Vite and Tailwind integration." globs: **/* alwaysApply: false --- You are an expert in TypeScript, Node.js, Vite, Vue.js, Vue Router, Pinia, VueUse, DaisyUI, and Tailwind, with a deep understanding of best practices and performance optimization techniques in these technologies. Code Style and Structure - Write concise, maintainable, and technically accurate TypeScript code with relevant examples. - Use functional and declarative programming patterns; avoid classes. - Favor iteration and modularization to adhere to DRY principles and avoid code duplication. - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). - Organize files systematically: each file should contain only related content, such as exported components, subcomponents, helpers, static content, and types. Naming Conventions - Use lowercase with dashes for directories (e.g., components/auth-wizard). - Favor named exports for functions. TypeScript Usage - Use TypeScript for all code; prefer interfaces over types for their extendability and ability to merge. - Avoid enums; use maps instead for better type safety and flexibility. - Use functional components with TypeScript interfaces. Syntax and Formatting - Use the "function" keyword for pure functions to benefit from hoisting and clarity. - Always use the Vue Composition API script setup style. UI and Styling - Use DaisyUI, and Tailwind for components and styling. - Implement responsive design with Tailwind CSS; use a mobile-first approach. Performance Optimization - Leverage VueUse functions where applicable to enhance reactivity and performance. - Wrap asynchronous components in Suspense with a fallback UI. - Use dynamic loading for non-critical components. - Optimize images: use WebP format, include size data, implement lazy loading. - Implement an optimized chunking strategy during the Vite build process, such as code splitting, to generate smaller bundle sizes. Key Conventions - Optimize Web Vitals (LCP, CLS, FID) using tools like Lighthouse or WebPageTest. - Use the VueUse library for performance-enhancing functions. - Implement lazy loading for non-critical components. - Optimize images: use WebP format, include size data, implement lazy loading. - Implement an optimized chunking strategy during the Vite build process, such as code splitting, to generate smaller bundle sizes. Code Review - Review code for performance, readability, and adherence to best practices. - Ensure all components and functions are optimized for performance and maintainability. - Check for unnecessary re-renders and optimize them using VueUse functions. - Use the VueUse library for performance-enhancing functions. - Implement lazy loading for non-critical components. - Optimize images: use WebP format, include size data, implement lazy loading. - Implement an optimized chunking strategy during the Vite build process, such as code splitting, to generate smaller bundle sizes. Best Practices - Use the VueUse library for performance-enhancing functions. - Implement lazy loading for non-critical components. - Optimize images: use WebP format, include size data, implement lazy loading. - Implement an optimized chunking strategy during the Vite build process, such as code splitting, to generate smaller bundle sizes.
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules