Vize

All Patina Rules

This page lists all 238 Patina rule implementations declared under crates/vize_patina/src/rules. The category pages keep the longer examples; this page is the compact reference for coverage, default severity, preset membership, fixability, and source implementation.

Preset names use Vize CLI terminology. The oxlint plugin metadata name general-recommended is shown here as happy-path. _none_ means the rule is opt-in, host-driven, or outside the bundled lint presets.

Categories

Category Rules
Essential 48
Strongly Recommended 12
Recommended 41
Accessibility 31
HTML Conformance 9
Type Aware 5
Vapor 7
Ecosystem 9
CSS 10
Musea 6
Script 60

Essential (48)

Rule Severity Presets Fixable Implementation Description
petite-vue/no-unsupported-directive error none No source Disallow directives that petite-vue does not support
petite-vue/valid-v-effect error none No source Require v-effect to have a non-empty expression
petite-vue/valid-v-scope error none No source Require v-scope to bind an object literal
vue/multi-word-component-names error essential, nuxt, opinionated No source Require component names to be multi-word
vue/no-child-content error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow child content when using v-html or v-text
vue/no-deprecated-filter error none No source Disallow deprecated Vue 2 filter syntax (the `\ ` pipe)
vue/no-deprecated-functional-template error none No source Disallow the functional attribute on the SFC <template>
vue/no-deprecated-html-element-is error none No source Disallow the is attribute on native HTML elements
vue/no-deprecated-router-link-tag-prop error none No source Disallow the tag prop on <router-link>
vue/no-deprecated-scope-attribute error none No source Disallow the deprecated scope attribute on <template>
vue/no-deprecated-slot-attribute error none No source Disallow the deprecated slot attribute
vue/no-deprecated-slot-scope-attribute error none No source Disallow the deprecated slot-scope attribute
vue/no-deprecated-v-bind-sync error none No source Disallow the deprecated .sync modifier on v-bind
vue/no-deprecated-v-on-native-modifier error none No source Disallow the deprecated .native modifier on v-on
vue/no-deprecated-v-on-number-modifiers error none No source Disallow deprecated numeric keyCode modifiers on v-on
vue/no-dupe-v-else-if error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow duplicate conditions in v-if / v-else-if chains
vue/no-duplicate-attributes error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow duplicate attributes on the same element
vue/no-mutating-props error happy-path, nuxt, ecosystem, opinionated No source Disallow mutating component props
vue/no-reserved-component-names error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow the use of reserved names as component names
vue/no-template-key error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow key attribute on <template>
vue/no-textarea-mustache error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow mustache interpolation in <textarea>
vue/no-unused-components warning happy-path, nuxt, ecosystem, opinionated No source Disallow registering components that are not used inside templates
vue/no-unused-vars warning essential, happy-path, nuxt, ecosystem, opinionated No source Disallow unused variable definitions in v-for and v-slot directives
vue/no-use-v-if-with-v-for warning essential, happy-path, nuxt, ecosystem, opinionated No source Disallow using v-if on the same element as v-for
vue/no-useless-template-attributes error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow useless attributes on <template> elements
vue/no-v-for-template-key-on-child error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow key on the child of a <template v-for>
vue/no-v-html warning essential, happy-path, nuxt, ecosystem, opinionated No source Warn against v-html to prevent XSS vulnerabilities
vue/no-v-text-v-html-on-component error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow v-text / v-html on component elements
vue/permitted-contents error happy-path, nuxt, ecosystem, opinionated No source Enforce HTML content model rules
vue/require-component-is error essential, happy-path, nuxt, ecosystem, opinionated No source Require v-bind:is on <component> elements
vue/require-toggle-inside-transition error essential, happy-path, nuxt, ecosystem, opinionated No source Require a toggle on the element wrapped by <transition>
vue/require-v-for-key error essential, happy-path, nuxt, ecosystem, opinionated No source Require v-bind:key with v-for directives
vue/use-v-on-exact warning essential, nuxt, opinionated No source Enforce .exact modifier on v-on when there are modifier-based handlers
vue/valid-attribute-name error essential, happy-path, nuxt, ecosystem, opinionated No source Require valid attribute names
vue/valid-template-root error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce a valid <template> root for Vue 3 fragment semantics
vue/valid-v-bind error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-bind directives
vue/valid-v-cloak error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-cloak directives
vue/valid-v-else error essential, happy-path, nuxt, ecosystem, opinionated Yes source Enforce valid v-else directives
vue/valid-v-for error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-for directives
vue/valid-v-html error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-html directives
vue/valid-v-if error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-if directives
vue/valid-v-memo error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-memo directives
vue/valid-v-model error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-model directives
vue/valid-v-on error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-on directives
vue/valid-v-once error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-once directives
vue/valid-v-show error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-show directives
vue/valid-v-slot error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-slot directives
vue/valid-v-text error essential, happy-path, nuxt, ecosystem, opinionated No source Enforce valid v-text directives
Rule Severity Presets Fixable Implementation Description
vue/attribute-hyphenation warning happy-path, nuxt, ecosystem, opinionated Yes source Enforce attribute naming style on custom components
vue/component-definition-name-casing warning happy-path, nuxt, ecosystem, opinionated No source Enforce PascalCase for component definition names
vue/html-quotes warning happy-path, nuxt, ecosystem, opinionated Yes source Enforce quotes style of HTML attributes
vue/html-self-closing warning nuxt, opinionated Yes source Enforce self-closing style
vue/mustache-interpolation-spacing warning happy-path, nuxt, ecosystem, opinionated Yes source Enforce consistent spacing inside mustache interpolations
vue/no-multi-spaces warning happy-path, nuxt, ecosystem, opinionated Yes source Disallow multiple consecutive spaces
vue/no-template-shadow warning nuxt, opinionated No source Disallow variable names that shadow variables in outer scope
vue/no-unused-properties warning happy-path, nuxt, ecosystem, opinionated No source Disallow unused properties defined in defineProps
vue/prop-name-casing warning happy-path, nuxt, ecosystem, opinionated No source Enforce kebab-case prop names in templates
vue/v-bind-style warning nuxt, opinionated Yes source Enforce v-bind directive style
vue/v-on-style warning happy-path, nuxt, ecosystem, opinionated Yes source Enforce v-on directive style
vue/v-slot-style warning happy-path, nuxt, ecosystem, opinionated Yes source Enforce v-slot directive style
Rule Severity Presets Fixable Implementation Description
ssr/no-browser-globals-in-ssr warning happy-path, nuxt, ecosystem, opinionated No source Disallow browser-only globals in SSR context
ssr/no-hydration-mismatch warning happy-path, nuxt, ecosystem, opinionated No source Disallow non-deterministic values that cause hydration mismatch
vue/a11y-img-alt warning none No source Require alt attribute on images for accessibility
vue/attribute-order warning happy-path, nuxt, ecosystem, opinionated No source Enforce a consistent order of attributes
vue/component-name-in-template-casing warning nuxt, opinionated Yes source Enforce specific casing for component names in templates
vue/html-button-has-type warning nuxt, opinionated No source Require an explicit valid type on button elements
vue/no-array-index-key warning nuxt, opinionated No source Disallow using the v-for index variable directly as the :key
vue/no-bare-strings-in-template warning none No source Disallow raw human-readable text in the template that should be internationalized
vue/no-boolean-attr-value warning nuxt, opinionated Yes source Disallow explicit values for boolean HTML attributes
vue/no-empty-component-block warning nuxt, opinionated No source Disallow empty SFC blocks
vue/no-inline-style warning nuxt, opinionated No source Discourage use of inline style attributes
vue/no-invalid-html-attribute warning happy-path, nuxt, ecosystem, opinionated No source Disallow invalid static values for HTML attributes
vue/no-lone-template warning happy-path, nuxt, ecosystem, opinionated No source Disallow unnecessary <template> elements
vue/no-multiple-objects-in-class warning nuxt, opinionated No source Disallow multiple object literals inside a :class array binding
vue/no-negated-v-if-condition warning nuxt, opinionated No source Disallow a negated v-if condition when the chain has a v-else
vue/no-preprocessor-lang warning nuxt, opinionated Yes source Discourage CSS preprocessor usage in favor of modern CSS
vue/no-root-v-if warning nuxt, opinionated No source Disallow v-if on the single root element of a template
vue/no-script-non-standard-lang warning nuxt, opinionated No source Discourage non-standard script lang values
vue/no-src-attribute warning nuxt, opinionated No source Discourage src attribute on SFC blocks
vue/no-template-lang warning nuxt, opinionated Yes source Discourage lang attribute on template block
vue/no-template-target-blank warning happy-path, nuxt, ecosystem, opinionated No source Disallow target="_blank" without rel="noopener"
vue/no-undefined-refs warning none No source Disallow undefined variable references in templates
vue/no-unsafe-url warning essential, happy-path, nuxt, ecosystem, opinionated No source Warn about potentially unsafe URL bindings
vue/no-unsandboxed-iframe warning happy-path, nuxt, ecosystem, opinionated No source Require a sandbox attribute on iframe elements
vue/no-unused-refs warning nuxt, opinionated No source Report template refs (ref="x") never referenced in <script>
vue/no-useless-mustaches warning nuxt, opinionated No source Disallow a mustache interpolation whose expression is a constant string literal
vue/no-useless-v-bind warning nuxt, opinionated No source Disallow a v-bind whose value is a plain string literal
vue/no-v-text warning nuxt, opinionated No source Disallow the v-text directive; prefer mustache interpolation
vue/prefer-props-shorthand warning nuxt, opinionated Yes source Recommend shorthand syntax for props (Vue 3.4+)
vue/prefer-true-attribute-shorthand warning nuxt, opinionated No source Prefer the shorthand for a boolean attribute bound to true
vue/require-component-registration warning opinionated No source Require explicit import or registration for components
vue/require-scoped-style warning happy-path, nuxt, ecosystem, opinionated No source Require scoped attribute on style tags
vue/scoped-event-names warning nuxt, opinionated No source Recommend scoped event names using context:event format
vue/sfc-element-order warning happy-path, nuxt, ecosystem, opinionated No source Enforce consistent order of SFC top-level elements
vue/single-style-block warning happy-path, nuxt, ecosystem, opinionated No source Recommend having a single style block
vue/slot-name-casing warning nuxt, opinionated No source Enforce kebab-case for named slots used via v-slot
vue/this-in-template warning nuxt, opinionated No source Disallow this. in template expressions
vue/v-on-event-hyphenation warning nuxt, opinionated No source Enforce hyphenation of custom event names in v-on on components
vue/v-on-handler-style warning nuxt, opinionated No source Enforce writing v-on handlers as a method reference or an inline function
vue/warn-custom-block warning nuxt, opinionated No source Warn about custom blocks in SFC files
vue/warn-custom-directive warning nuxt, opinionated No source Warn about custom directives that need registration

Accessibility (31)

Rule Severity Presets Fixable Implementation Description
a11y/alt-text warning happy-path, nuxt, ecosystem, opinionated No source Require alternative text for media elements
a11y/anchor-has-content warning happy-path, nuxt, ecosystem, opinionated No source Require anchor elements to have accessible content
a11y/anchor-is-valid warning happy-path, nuxt, ecosystem, opinionated No source Enforce valid href on anchor elements
a11y/aria-props error happy-path, nuxt, ecosystem, opinionated No source Disallow invalid ARIA attributes
a11y/aria-role error happy-path, nuxt, ecosystem, opinionated No source Elements with ARIA roles must use a valid, non-abstract ARIA role
a11y/aria-unsupported-elements error happy-path, nuxt, ecosystem, opinionated No source Disallow ARIA attributes on elements that do not support them
a11y/click-events-have-key-events warning happy-path, nuxt, ecosystem, opinionated No source Require keyboard event handlers with click events
a11y/form-control-has-label warning happy-path, nuxt, ecosystem, opinionated No source Require form controls to have associated labels
a11y/heading-has-content warning happy-path, nuxt, ecosystem, opinionated No source Require heading elements to have accessible content
a11y/heading-levels warning nuxt, opinionated No source Disallow skipping heading levels
a11y/iframe-has-title warning happy-path, nuxt, ecosystem, opinionated No source Require iframe elements to have a title attribute
a11y/img-alt warning happy-path, nuxt, ecosystem, opinionated No source Require alt attribute on images for accessibility
a11y/interactive-supports-focus warning happy-path, nuxt, ecosystem, opinionated No source Require interactive role elements to be focusable
a11y/label-has-for warning happy-path, nuxt, ecosystem, opinionated No source Require labels to have associated form controls
a11y/landmark-roles warning nuxt, opinionated No source Validate landmark role placement and uniqueness
a11y/media-has-caption warning happy-path, nuxt, ecosystem, opinionated No source Require media elements to have captions
a11y/mouse-events-have-key-events warning happy-path, nuxt, ecosystem, opinionated No source Require focus/blur events with mouse events
a11y/no-access-key warning happy-path, nuxt, ecosystem, opinionated No source Disallow the use of the accesskey attribute
a11y/no-aria-hidden-on-focusable error happy-path, nuxt, ecosystem, opinionated No source Disallow aria-hidden="true" on focusable elements
a11y/no-autofocus warning happy-path, nuxt, ecosystem, opinionated No source Disallow the use of the autofocus attribute
a11y/no-distracting-elements warning happy-path, nuxt, ecosystem, opinionated No source Disallow distracting elements like <marquee> and <blink>
a11y/no-i-for-icon warning happy-path, nuxt, ecosystem, opinionated No source Disallow using <i> element for icons
a11y/no-redundant-roles warning happy-path, nuxt, ecosystem, opinionated Yes source Disallow redundant ARIA roles
a11y/no-refer-to-non-existent-id warning happy-path, nuxt, ecosystem, opinionated No source Disallow references to non-existent IDs
a11y/no-role-presentation-on-focusable error happy-path, nuxt, ecosystem, opinionated No source Disallow role="presentation" or role="none" on focusable elements
a11y/no-static-element-interactions warning happy-path, nuxt, ecosystem, opinionated No source Disallow event handlers on static elements
a11y/placeholder-label-option warning nuxt, opinionated No source Require disabled or hidden on select placeholder option
a11y/role-has-required-aria-props warning happy-path, nuxt, ecosystem, opinionated No source Require ARIA roles to have required properties
a11y/tabindex-no-positive warning happy-path, nuxt, ecosystem, opinionated No source Disallow positive tabindex values
a11y/use-list warning nuxt, opinionated No source Suggest using list elements for bullet-like text
vue/use-unique-element-ids warning nuxt, opinionated No source Enforce unique element IDs using useId() instead of static literals

HTML Conformance (9)

Rule Severity Presets Fixable Implementation Description
html/deprecated-attr warning happy-path, nuxt, ecosystem, opinionated No source Disallow deprecated HTML attributes
html/deprecated-element warning happy-path, nuxt, ecosystem, opinionated No source Disallow deprecated HTML elements
html/id-duplication error essential, happy-path, nuxt, ecosystem, opinionated No source Disallow duplicate element IDs
html/no-consecutive-br warning happy-path, nuxt, ecosystem, opinionated No source Disallow consecutive <br> elements
html/no-dupe-style-properties warning nuxt, opinionated No source Disallow duplicate properties in inline style attributes
html/no-duplicate-class warning nuxt, opinionated No source Disallow duplicate class names in a static class attribute
html/no-duplicate-dt warning happy-path, nuxt, ecosystem, opinionated No source Disallow duplicate <dt> names in <dl>
html/no-empty-palpable-content warning happy-path, nuxt, ecosystem, opinionated No source Disallow empty elements that expect visible content
html/require-datetime warning happy-path, nuxt, ecosystem, opinionated No source Require datetime attribute on <time> element

Type Aware (5)

Rule Severity Presets Fixable Implementation Description
type/no-floating-promises warning nuxt, opinionated No source Disallow floating (unhandled) Promises
type/no-reactivity-loss warning nuxt, opinionated No source Disallow plain snapshots of reactive values across assignments and calls
type/no-unsafe-template-binding warning nuxt, opinionated No source Disallow template bindings that resolve to unsafe types
type/require-typed-emits warning happy-path, nuxt, ecosystem, opinionated No source Require type definition for defineEmits
type/require-typed-props warning happy-path, nuxt, ecosystem, opinionated No source Require type definition for defineProps

Vapor (7)

Rule Severity Presets Fixable Implementation Description
script/no-get-current-instance error opinionated, nuxt No source Disallow getCurrentInstance() in Vapor mode (returns null)
script/no-next-tick error none No source Disallow nextTick() usage in Vapor-oriented components
script/no-options-api error opinionated No source Disallow Options API patterns in Vapor mode
vapor/no-inline-template error nuxt, opinionated No source Disallow deprecated inline-template attribute
vapor/no-vue-lifecycle-events error happy-path, nuxt, ecosystem, opinionated No source Disallow @vue:xxx per-element lifecycle events (not supported in Vapor)
vapor/prefer-static-class warning nuxt, opinionated Yes source Prefer static class over dynamic class binding for string literals
vapor/require-vapor-attribute warning nuxt, opinionated Yes source Suggest adding vapor attribute to script setup

Ecosystem (9)

Rule Severity Presets Fixable Implementation Description
ecosystem/nuxt-prefer-nuxt-link warning ecosystem No source Prefer NuxtLink for internal application links
ecosystem/pinia-prefer-store-to-refs warning ecosystem No source Prefer storeToRefs() when destructuring Pinia stores
ecosystem/router-link-require-to error ecosystem No source Require a to target on RouterLink and NuxtLink components
ecosystem/void-link-require-href error ecosystem No source Require href on Void Vue Link components
ecosystem/void-link-valid-method warning ecosystem No source Validate static Void Vue Link method props
ecosystem/vue-i18n-no-missing-key warning ecosystem No source Report static vue-i18n keys that are absent from local SFC messages
ecosystem/vue-router-prefer-named-link warning ecosystem No source Prefer named route objects over static path strings in RouterLink
ecosystem/vue-router-prefer-named-push warning ecosystem No source Prefer named route objects for Vue Router programmatic navigation
ecosystem/vue-test-utils-no-html-snapshot warning ecosystem No source Avoid snapshotting wrapper.html() in Vue Test Utils tests

CSS (10)

Rule Severity Presets Fixable Implementation Description
css/no-display-none warning opinionated, nuxt No source Suggest using v-show instead of display: none
css/no-hardcoded-values warning opinionated, nuxt No source Suggest using CSS variables instead of hardcoded values
css/no-id-selectors warning opinionated, nuxt No source Discourage use of ID selectors in CSS
css/no-important warning opinionated, nuxt No source Discourage use of !important in CSS
css/no-utility-classes warning opinionated, nuxt No source Warn against implementing utility classes in component styles
css/no-v-bind-performance warning opinionated, nuxt No source Warn about performance cost of CSS v-bind()
css/prefer-logical-properties warning opinionated, nuxt No source Recommend CSS logical properties for better i18n support
css/prefer-nested-selectors warning opinionated, nuxt No source Recommend using CSS nesting for descendant selectors
css/prefer-slotted warning opinionated, nuxt No source Recommend ::v-slotted() for styling slot content
css/require-font-display warning opinionated, nuxt No source Require font-display in @font-face rules

Musea (6)

Rule Severity Presets Fixable Implementation Description
musea/no-empty-variant warning none No source Disallow empty <variant> blocks
musea/prefer-design-tokens warning none No source Prefer design token CSS variables over hardcoded primitive values
musea/require-component warning none No source Require component attribute in <art> block
musea/require-title error none No source Require title attribute in <art> block
musea/unique-variant-names error none No source Require unique variant names
musea/valid-variant error none No source Require name attribute in <variant> blocks

Script (60)

Rule Severity Presets Fixable Implementation Description
script/component-options-name-casing error opinionated, nuxt No source Enforce PascalCase for the component name option
script/custom-event-name-casing error opinionated, nuxt No source Enforce camelCase for emitted custom event names
script/define-emits-declaration warning opinionated, nuxt No source Enforce the type-based defineEmits<{}>() form over the runtime/array form
script/define-macros-order warning opinionated, nuxt No source Enforce a consistent order of the Vue compiler macros in <script setup>
script/define-props-declaration warning opinionated, nuxt No source Enforce type-based defineProps<{ ... }>() over the runtime/object form
script/define-props-destructuring warning opinionated, nuxt No source Disallow destructuring the return value of defineProps in <script setup>
script/no-arrow-functions-in-watch error opinionated, nuxt No source Disallow arrow functions as Options API watch handlers
script/no-async-in-computed error none No source Disallow async functions in computed properties
script/no-boolean-default warning opinionated, nuxt No source Disallow a default on a Boolean prop
script/no-deep-destructure-in-props warning none No source Disallow deeply nested destructuring in defineProps
script/no-deprecated-data-object-declaration error none No source Disallow an object literal as the component data option (Vue 3 requires a function)
script/no-deprecated-dollar-listeners-api error none No source Disallow the $listeners instance property removed in Vue 3 (merged into $attrs)
script/no-deprecated-dollar-scopedslots-api error none No source Disallow the $scopedSlots instance property removed in Vue 3 (use $slots)
script/no-deprecated-events-api error none No source Disallow the removed Vue 2 events API ($on / $off / $once)
script/no-deprecated-props-default-this error none No source Disallow this inside a prop default/validator function (removed in Vue 3)
script/no-dupe-keys error none No source Disallow duplicate keys across Options API props/data/computed/methods/setup/inject
script/no-duplicate-attr-inheritance warning opinionated, nuxt No source Flag an explicit inheritAttrs: true option as redundant (true is the default)
script/no-export-in-script-setup error opinionated, nuxt No source Disallow export statements inside <script setup>
script/no-import-compiler-macros error none No source Disallow importing Vue compiler macros that are auto-imported
script/no-internal-imports error none No source Disallow importing from Vue internal modules
script/no-multiple-slot-args warning opinionated, nuxt No source Disallow passing more than one argument to a scoped-slot function call
script/no-potential-component-option-typo error opinionated, nuxt No source Flag likely typos in Options API component option names
script/no-reactive-destructure warning none No source Disallow destructuring reactive objects which loses reactivity
script/no-ref-as-operand error opinionated, nuxt No source Require ref-bound variables to be accessed via .value when used as an operand
script/no-required-prop-with-default error opinionated, nuxt No source Disallow a prop that is both required: true and has a default
script/no-reserved-identifiers error none No source Disallow using Vue compiler reserved identifiers
script/no-reserved-keys error opinionated, nuxt No source Disallow Vue-reserved names as Options API props/data/computed/methods/setup/inject keys
script/no-reserved-props error opinionated, nuxt No source Disallow reserved names in a component's props declaration
script/no-restricted-globals error none No source Disallow references to runtime-environment globals that must go through a typed wrapper
script/no-restricted-members error none No source Disallow project-configured object.property member accesses
script/no-side-effects-in-computed-properties error none No source Disallow side effects in Options API computed getters
script/no-top-level-ref-in-script error none No source Disallow top-level ref/reactive to prevent Cross-Request State Pollution
script/no-unstable-nested-components warning opinionated, nuxt No source Disallow component definitions inside setup or render functions
script/no-unused-emit-declarations warning opinionated, nuxt No source Flag declared events that are never emitted
script/no-use-computed-property-like-method error opinionated, nuxt No source Disallow calling an Options API computed property like a method
script/no-with-defaults warning none No source Discourage withDefaults in favor of destructuring defaults (Vue 3.5+)
script/prefer-computed warning none No source Prefer computed() for derived reactive state
script/prefer-define-options warning opinionated, nuxt No source Prefer defineOptions() over a plain <script> that only sets name/inheritAttrs
script/prefer-import-from-vue warning none Yes source Prefer importing from 'vue' instead of internal packages
script/prefer-ref-over-reactive warning none No source Recommend using ref() over reactive() for state management
script/prefer-use-attrs warning none No source Recommend using useAttrs() over context.attrs
script/prefer-use-id warning none No source Recommend using useId() for generating unique IDs (Vue 3.5+)
script/prefer-use-slots warning none No source Recommend using useSlots() over context.slots
script/prefer-use-template-ref warning none No source Recommend useTemplateRef over ref(null) for template references (Vue 3.5+)
script/require-default-prop error opinionated, nuxt No source Require a default value for every optional, non-Boolean prop
script/require-explicit-emits warning opinionated, nuxt No source Require emitted events to be declared in defineEmits or the emits option
script/require-explicit-slots warning opinionated, nuxt No source Require slots consumed via useSlots() to be explicitly typed with defineSlots<...>()
script/require-function-return-type warning none No source Require return type annotations on functions
script/require-prop-type-constructor error opinionated, nuxt No source Require prop type values to be constructors rather than string literals
script/require-prop-types error opinionated, nuxt No source Require every prop to declare a type
script/require-symbol-provide warning none No source Recommend using Symbol as injection key for provide/inject
script/require-typed-object-prop warning opinionated, nuxt No source Require an explicit type on a prop whose runtime type is Object or Array
script/require-typed-ref warning opinionated, nuxt No source Require an explicit type argument on a ref() initialized with no value, null, or undefined
script/require-valid-default-prop error opinionated, nuxt No source Require a prop's default value to be valid for its declared type
script/return-in-computed-property error opinionated, nuxt No source Require a return value in every computed getter
script/return-in-emits-validator error opinionated, nuxt No source Require a return value in every Options API emits validator
script/valid-define-emits error opinionated, nuxt No source Enforce valid defineEmits() usage (no type+runtime args, no local references, single call)
script/valid-define-options error opinionated, nuxt No source Enforce valid defineOptions() usage (single object arg, no props/emits/expose/slots)
script/valid-define-props error opinionated, nuxt No source Enforce valid defineProps() usage (single call, not both type and runtime args, no local references)
script/valid-next-tick warning opinionated, nuxt No source Require the result of a nextTick() call to be awaited, chained, or given a callback