Skip to content
El estilo Built for Shopify. Listo para usar.

Shopify Polaris.
Tipado para Vue 3.

Componentes de Vue 3 tipados en torno a los web components Polaris de Shopify (s-button, s-text-field, s-modal, ...), sin un design system específico de Vue que aprender.

<STextField v-model="name" />
<SButton variant="primary">Save</SButton>

Wrappers de Vue 3 para Shopify Polaris

Todo Polaris. Nada que volver a aprender.

62

Props y events tipados

Las props y los events de cada wrapper se generan a partir del Custom Elements Manifest oficial de Shopify, así que obtienes autocompletado y comprobación de tipos que coinciden con la API real del componente.

17

v-model en 17 componentes de formulario

Campos de texto, casillas de verificación, interruptores, listas desplegables, listas de opciones, selectores de fecha y más admiten v-model de forma nativa, asociado al par prop/event subyacente correcto de cada elemento.

Degradación elegante

Las props desconocidas se transmiten tal cual mediante $attrs, y el contenido de los slots se reenvía sin cambios. Una versión desactualizada del wrapper nunca rompe el código existente: simplemente le faltan los tipos de las funciones más recientes.

Sincronizado con el manifest

Las definiciones de componentes y tipos se generan directamente a partir del Custom Elements Manifest de Shopify, lo que mantiene los wrappers alineados con el runtime de Polaris servido desde el CDN.

Los web components de Polaris, tipados para Vue ​

Los web components de Polaris de Shopify (<s-button>, <s-text-field>, <s-modal>, …) funcionan con cualquier framework, pero en un template de Vue son custom elements sin tipos: sin autocompletado, sin comprobación de props y sin v-model. polaris-vue-elements envuelve cada uno en un componente ligero de Vue 3 generado a partir del Custom Elements Manifest de Shopify, mientras el runtime de Polaris se sigue cargando desde el CDN de Shopify.

vue
<script setup lang="ts">
import { ref } from 'vue'
import { SButton, STextField } from 'polaris-vue-elements'

const name = ref('')
</script>

<template>
  <STextField v-model="name" label="Store name" />
  <SButton variant="primary">Save</SButton>
</template>

Todos los componentes ​

Publicado bajo la licencia MIT. Logo de Vue por Evan You, CC BY-NC-SA 4.0.