npm.io
1.28.3 • Published 22h ago

@regle/nuxt

Licence
MIT
Version
1.28.3
Deps
4
Size
15 kB
Vulns
0
Weekly
0
Stars
480

regle cover

npm version npm download npm download

Buy Me A Coffee

Regle

Regle \ʁɛɡl\ (French word for 'rule' ) is a headless model-based form validation library for Vue 3.

It's heavily inspired by Vuelidate and aims to replace it in modern apps.

Documentation

Documentation

Play with it

Playground Simple demo Advanced Demo
Open in StackBlitz Open in StackBlitz

AI Integration

MCP Server
fallback alt='Install MCP Server

Or add it manually to your .cursor/mcp.json or .mcp.json

{
  "mcpServers": {
    "regle": {
      "command": "npx",
      "args": ["@regle/mcp-server"]
    }
  }
}
Agent Skills

Install Agent Skills to give your AI coding agent Regle expertise:

npx skills add victorgarciaesgi/regle

Features

  • Headless: Plug any UI or markup to the validation.
  • Type safe: Full inference and autocompletion support.
  • Model based: Your validation tree structure matches the data model.
  • Devtools: Built-in Vue devtools extention for easy debugging and testing.
  • MCP Server: MCP server for easy documentation and autocomplete.
  • Agent Skills: Agent Skills for AI coding agents.
  • Style Agnostic: Works with any CSS framework or plain CSS.
  • Modular design: Expand Regle properties or default validation rules.
  • Async validation: Handle asynchronous validations and pending states with ease.
  • i18n Ready: Works with any i18n library.
  • Vuelidate like API: Regle's API mimics Vuelidate's API while improving it on a lot of areas.
  • SSR Ready: Full support for Server Side Rendering environments. nuxt
  • Alternative validation: Standard Schema spec validation support.

Devtools

Regle comes with a built-in Vue devtools extension for easy debugging and testing.

Regle Devtools Screenshot

For more details, see the Devtools documentation.

Basic example

<template>
  <input v-model="r$.$value.email" :class="{ error: r$.email.$error }" placeholder="Type your email" />

  <ul>
    <li v-for="error of r$.email.$errors" :key="error">
      {{ error }}
    </li>
  </ul>
</template>

<script setup lang="ts">
  import { useRegle } from '@regle/core';
  import { required, minLength, email } from '@regle/rules';

  const { r$ } = useRegle(
    { email: '' },
    {
      email: { required, minLength: minLength(4), email },
    }
  );
</script>

Compatibility:

  • vue Vue 3.3+
  • nuxt Nuxt 3.1+
  • pinia Pinia 2.2.5+
  • Standard Schemas
    • Zod 3.24+
    • Valibot 1.0+
    • Arktype 2.0.0+

Quick install

pnpm install @regle/core @regle/rules
# or
yarn add @regle/core @regle/rules
# or
npm install @regle/core @regle/rules

Credits

  • Johannes Lacourly for designing logo and banners
  • Martins Zeltins who helped me identify a lot of bugs, find new features and contributed to docs.
  • Vuelidate Which I loved and used for 8 years, and is my main inspiration for creating Regle

License

MIT License