Skip to content
Le style Built for Shopify. Prêt à l'emploi.

Shopify Polaris.
Désormais typé pour Vue 3.

Des composants Vue 3 typés autour des web components Polaris de Shopify (s-button, s-text-field, s-modal, ...), sans design system spécifique à Vue à apprendre en plus.

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

Wrappers Vue 3 pour Shopify Polaris

Tout Polaris. Rien à réapprendre.

62

Props et events typés

Les props et events de chaque wrapper sont générés à partir du Custom Elements Manifest officiel de Shopify : vous bénéficiez d'une autocomplétion et d'une vérification de types conformes à l'API réelle du composant.

17

v-model sur 17 composants de formulaire

Champs de texte, cases à cocher, interrupteurs, listes déroulantes, listes de choix, sélecteurs de date et bien d'autres prennent en charge v-model nativement, associé à la bonne paire prop/event sous-jacente de chaque élément.

Dégradation en douceur

Les props inconnues sont transmises telles quelles via $attrs, et le contenu des slots est relayé à l'identique. Une version obsolète du wrapper ne casse jamais le code existant : il lui manque simplement les types des nouvelles fonctionnalités.

Synchronisé avec le manifest

Les définitions de composants et de types sont générées directement à partir du Custom Elements Manifest de Shopify, ce qui maintient les wrappers alignés sur le runtime Polaris servi par le CDN.

Les web components Polaris, typés pour Vue ​

Les web components Polaris de Shopify (<s-button>, <s-text-field>, <s-modal>, …) fonctionnent avec n'importe quel framework, mais dans un template Vue ce ne sont que des custom elements non typés : pas d'autocomplétion, pas de vérification des props et pas de v-model. polaris-vue-elements enveloppe chacun d'eux dans un composant Vue 3 léger, généré à partir du Custom Elements Manifest de Shopify, tandis que le runtime Polaris continue d'être chargé depuis le 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>

Tous les composants ​

Publié sous licence MIT. Logo Vue par Evan You, CC BY-NC-SA 4.0.