К основному содержанию
правило

web-app-optimization-cursorrules-prompt-file — правило Cursor

Набор инструкций для Cursor по разработке веб-приложений на Svelte 5 и SvelteKit с акцентом на производительность и руны.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/web-app-optimization-cursorrules-prompt-file.mdc
Открыть на GitHub

Что делает web-app-optimization-cursorrules-prompt-file

Правило настраивает генерацию кода под Svelte 5 и SvelteKit. Ассистент будет писать реактивный код через руны $state, $derived, $effect и $props, игнорируя старый синтаксис Svelte 3 и 4. Для логики компонентов и стейт-машин предписано использовать файлы .svelte.ts с классами, а компоненты называть строчными буквами через дефис.

Стек интерфейса завязан на Tailwind CSS и компоненты Shadcn из папки $lib/components/ui. Для локализации подключается Paraglide.js. В TypeScript правило форсирует строгий режим, замену enum на const-объекты и выбор интерфейсов вместо типов. Стили организованы через утилиту cn().

Инструкции рассчитаны строго на Svelte 5, поэтому на старых кодовых базах без рун агент начнёт предлагать несовместимый код.

Какие задачи решает

  • Перевести реактивную логику на руны Svelte 5
  • Настроить маршрутизацию и SSR в проекте на SvelteKit
  • Подключить компоненты Shadcn и утилиту cn() в интерфейс
  • Организовать интернационализацию приложения через Paraglide.js

Примеры запросов агенту

  • Создай стейт-машину в файле counter.svelte.ts с руной $state
  • Сделай компонент формы auth-form.svelte с валидацией через form actions в SvelteKit
  • Добавь поддержку локализации интерфейса с библиотекой Paraglide.js

Как установить web-app-optimization-cursorrules-prompt-file

Вручную: положить файлы

.cursor/rules/web-app-optimization-cursorrules-prompt-file.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о web-app-optimization-cursorrules-prompt-file

Как установить web-app-optimization-cursorrules-prompt-file в Cursor?

Сохраните содержимое правила в файл .cursor/rules/web-app-optimization-cursorrules-prompt-file.mdc в корне вашего проекта.

Зачем нужно это правило?

Оно заставляет ИИ писать код для актуальной версии Svelte 5 с рунами, следовать структуре SvelteKit и не смешивать устаревшие паттерны с новой реактивностью.

Какие библиотеки интерфейса ожидает правило?

Конфигурация рассчитана на связку Tailwind CSS и Shadcn с импортом компонентов из папки $lib/components/ui.

Исходный текст

web-app-optimization-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "Cursor rules for web app development with optimization integration."
globs: **/*
alwaysApply: false
---
You are an expert in Svelte 5, SvelteKit, TypeScript, and modern web development.

Key Principles

- Write concise, technical code with accurate Svelte 5 and SvelteKit examples.
- Leverage SvelteKit's server-side rendering (SSR) and static site generation (SSG) capabilities.
- Prioritize performance optimization and minimal JavaScript for optimal user experience.
- Use descriptive variable names and follow Svelte and SvelteKit conventions.
- Organize files using SvelteKit's file-based routing system.

Code Style and Structure

- Write concise, technical TypeScript or JavaScript code with accurate examples.
- Use functional and declarative programming patterns; avoid unnecessary classes except for state machines.
- Prefer iteration and modularization over code duplication.
- Structure files: component logic, markup, styles, helpers, types.
- Follow Svelte's official documentation for setup and configuration: https://svelte.dev/docs

Naming Conventions

- Use lowercase with hyphens for component files (e.g., `components/auth-form.svelte`).
- Use PascalCase for component names in imports and usage.
- Use camelCase for variables, functions, and props.

TypeScript Usage

- Use TypeScript for all code; prefer interfaces over types.
- Avoid enums; use const objects instead.
- Use functional components with TypeScript interfaces for props.
- Enable strict mode in TypeScript for better type safety.

Svelte Runes

- `$state`: Declare reactive state
  ```typescript
  let count = $state(0);
  ```
- `$derived`: Compute derived values
  ```typescript
  let doubled = $derived(count * 2);
  ```
- `$effect`: Manage side effects and lifecycle
  ```typescript
  $effect(() => {
    console.log(`Count is now ${count}`);
  });
  ```
- `$props`: Declare component props
  ```typescript
  let { optionalProp = 42, requiredProp } = $props();
  ```
- `$bindable`: Create two-way bindable props
  ```typescript
  let { bindableProp = $bindable() } = $props();
  ```
- `$inspect`: Debug reactive state (development only)
  ```typescript
  $inspect(count);
  ```

UI and Styling

- Use Tailwind CSS for utility-first styling approach.
- Leverage Shadcn components for pre-built, customizable UI elements.
- Import Shadcn components from `$lib/components/ui`.
- Organize Tailwind classes using the `cn()` utility from `$lib/utils`.
- Use Svelte's built-in transition and animation features.

Shadcn Color Conventions

- Use `background` and `foreground` convention for colors.
- Define CSS variables without color space function:
  ```css
  --primary: 222.2 47.4% 11.2%;
  --primary-foreground: 210 40% 98%;
  ```
- Usage example:
  ```svelte

SvelteKit Project Structure

- Use the recommended SvelteKit project structure:
  ```
  - src/
    - lib/
    - routes/
    - app.html
    - static/
    - svelte.config.js
    - vite.config.js
  ```

Component Development

- Create .svelte files for Svelte components.
- Use .svelte.ts files for component logic and state machines.
- Implement proper component composition and reusability.
- Use Svelte's props for data passing.
- Leverage Svelte's reactive declarations for local state management.

State Management

- Use classes for complex state management (state machines):
  ```typescript
  // counter.svelte.ts
  class Counter {
    count = $state(0);
    incrementor = $state(1);
    increment() {
      this.count += this.incrementor;
    }
    resetCount() {
      this.count = 0;
    }
    resetIncrementor() {
      this.incrementor = 1;
    }
  }
  export const counter = new Counter();
  ```
- Use in components:
  ```svelte
  <br />
  import { counter } from './counter.svelte.ts';
  <br />
  <button on:click={() => counter.increment()}>
    Count: {counter.count}
  ```

Routing and Pages

- Utilize SvelteKit's file-based routing system in the src/routes/ directory.
- Implement dynamic routes using [slug] syntax.
- Use load functions for server-side data fetching and pre-rendering.
- Implement proper error handling with +error.svelte pages.

Server-Side Rendering (SSR) and Static Site Generation (SSG)

- Leverage SvelteKit's SSR capabilities for dynamic content.
- Implement SSG for static pages using prerender option.
- Use the adapter-auto for automatic deployment configuration.

Performance Optimization

- Leverage Svelte's compile-time optimizations.
- Use `{#key}` blocks to force re-rendering of components when needed.
- Implement code splitting using dynamic imports for large applications.
- Profile and monitor performance using browser developer tools.
- Use `$effect.tracking()` to optimize effect dependencies.
- Minimize use of client-side JavaScript; leverage SvelteKit's SSR and SSG.
- Implement proper lazy loading for images and other assets.

Data Fetching and API Routes

- Use load functions for server-side data fetching.
- Implement proper error handling for data fetching operations.
- Create API routes in the src/routes/api/ directory.
- Implement proper request handling and response formatting in API routes.
- Use SvelteKit's hooks for global API middleware.

SEO and Meta Tags

- Use Svelte:head component for adding meta information.
- Implement canonical URLs for proper SEO.
- Create reusable SEO components for consistent meta tag management.

Forms and Actions

- Utilize SvelteKit's form actions for server-side form handling.
- Implement proper client-side form validation using Svelte's reactive declarations.
- Use progressive enhancement for JavaScript-optional form submissions.

Internationalization (i18n) with Paraglide.js

- Use Paraglide.js for internationalization: https://inlang.com/m/gerre34r/library-inlang-paraglideJs
- Install Paraglide.js: `npm install @inlang/paraglide-js`
- Set up language files in the `languages` directory.
- Use the `t` function to translate strings:
  ```svelte
  <br />
  import { t } from '@inlang/paraglide-js';
  <br />
  - Support multiple languages and RTL layouts.
  - Ensure text scaling and font adjustments for accessibility.

Accessibility

- Ensure proper semantic HTML structure in Svelte components.
- Implement ARIA attributes where necessary.
- Ensure keyboard navigation support for interactive elements.
- Use Svelte's bind:this for managing focus programmatically.

Key Conventions

1. Embrace Svelte's simplicity and avoid over-engineering solutions.
2. Use SvelteKit for full-stack applications with SSR and API routes.
3. Prioritize Web Vitals (LCP, FID, CLS) for performance optimization.
4. Use environment variables for configuration management.
5. Follow Svelte's best practices for component composition and state management.
6. Ensure cross-browser compatibility by testing on multiple platforms.
7. Keep your Svelte and SvelteKit versions up to date.

Documentation

- Svelte 5 Runes: https://svelte-5-preview.vercel.app/docs/runes
- Svelte Documentation: https://svelte.dev/docs
- SvelteKit Documentation: https://kit.svelte.dev/docs
- Paraglide.js Documentation: https://inlang.com/m/gerre34r/library-inlang-paraglideJs/usage

Refer to Svelte, SvelteKit, and Paraglide.js documentation for detailed information on components, internationalization, and best practices.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Все правила IDE по теме «Фронтенд и UI» →
winui3 официальный github Правило задаёт рекомендации для WinUI 3 и Windows App SDK: от XAML и потоков до окон и MVVM. Пригодится, чтобы Copilot учитывал особенности настольных приложений Windows. ★ 40 451звёзд репо vue официальный github Правило задаёт Copilot стандарты Vue 3: Composition API, <script setup>, реактивность, Pinia и Vue Router. Пригодится, когда агент пишет компоненты в вашем стиле. ★ 40 451звёзд репо tanstack-start-shadcn-tailwind официальный github Правило задаёт Copilot стек TanStack Start, Shadcn/ui и Tailwind CSS и требует валидировать внешние данные через Zod. ★ 40 451звёзд репо tailwind-v4-vite официальный github Правило помогает подключить Tailwind CSS v4 к проекту на Vite через официальный плагин. Пригодится и для новой установки, и при переходе с v3. ★ 40 451звёзд репо svelte официальный github Направляет GitHub Copilot на стандарты Svelte 5 и SvelteKit 2: руны вместо старых сторов, типизация компонентов и безопасная работа с SSR. ★ 40 451звёзд репо power-bi-custom-visuals-development официальный github Правило для GitHub Copilot, которое подсказывает агенту, как писать кастомные визуалы Power BI на React, D3.js и TypeScript. ★ 40 451звёзд репо

Из того же набора234

Весь набор →
xray-test-case-cursorrules-prompt-file Правило превращает описания фич и автотесты в структурированные тест-кейсы формата Xray для Jira. Пригодится, когда QA пишет ручные сценарии вручную. ★ 41 024звёзд репо wordpress-php-guzzle-gutenberg-cursorrules-prompt- Задаёт правила разработки плагинов WordPress с клиентом Guzzle, эндпоинтами REST API и блоками Gutenberg. Помогает держать код в едином стиле. ★ 41 024звёзд репо wordpress-claude-stack Правило задаёт рекомендации для разработки тем, плагинов и блоков WordPress в Cursor. Оно пригодится, если агент пишет PHP, работает с WooCommerce или использует ACF. ★ 41 024звёзд репо webassembly-z80-cellular-automata-cursorrules-prom Правило для Cursor, которое ведёт агента при добавлении сетки регионов в симуляцию клеточных автоматов на Z80 и WebAssembly. ★ 41 024звёзд репо vue3-composition-api-cursorrules-prompt-file Правило задаёт рекомендации для разработки на Vue 3 с Composition API: от реактивного состояния до структуры проекта. Пригодится, чтобы Cursor учитывал эти практики при работе с файлами. ★ 41 024звёзд репо vue Правило для Cursor задаёт агенту стиль работы с Vue: Composition API, Pinia, типизация и маршрутизация. Пригодится, когда в проекте уже есть .vue и .ts. ★ 41 024звёзд репо vue-pinia-cursorrules-prompt-file Задаёт стандарты работы с Pinia и TypeScript во Vue 3: разделение состояния, синтаксис setup-хранилищ, типизацию, SSR и правила персистентности. ★ 41 024звёзд репо vue-claude-stack Правило задаёт стиль генерации кода для Vue 3 и Nuxt 3: Composition API, TypeScript и Pinia. Пригодится, чтобы направлять агента по единым правилам проекта. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой