Aller au contenu

Éléments (low-code)

Afficher en Markdown
import { defineVimineElements } from '@vimine/sdk/elements';
defineVimineElements({ clientId: 'vmc_…', redirectUri: 'https://www.example.org/callback' });
<vimine-sign-in scope="membership:read" return-to="/members" handle-redirect lang="en"></vimine-sign-in>
<vimine-card lang="en"></vimine-card>
<vimine-enroll slug="your-slug"></vimine-enroll>

defineVimineElements(options | client) crée (ou reprend) le client navigateur et enregistre les trois éléments ; il renvoie le client pour que le reste de la page puisse le partager.

Élément Attributs
<vimine-sign-in> scope, return-to, label, label-signed-in, everywhere, handle-redirect, lang bouton de connexion / déconnexion ; avec handle-redirect, il termine de lui-même l’échange du code sur la page de callback ; émet vimine-change { signedIn }
<vimine-card> lang la carte du membre connecté (SVG avec le QR à jour) ; se redessine quand la session change ; émet vimine-card
<vimine-enroll> slug, app-url, height, lang le formulaire d’adhésion (iframe), dans la langue de l’élément ; à une personne qui a déjà un compte Vimine, il propose Continuer sur Vimine, qui ouvre la page dans un nouvel onglet où elle adhère en une étape (pourquoi un nouvel onglet)
<vimine-events> slug, filter, limit, detail-url, app-url, lang les événements de l’association : les publics pour un visiteur, tous pour un membre connecté, avec les types d’inscription (contribution, places). Un membre connecté a un bouton S’inscrire par type. À un visiteur, il propose Adhérer à l’association et réserver, qui ouvre la page d’adhésion de Vimine avec l’événement dans un nouvel onglet (comment ça marche), et Déjà membre ? Se connecter ; là où l’association ne prend pas de demandes d’adhésion, il ne reste que Se connecter pour s’inscrire (depuis 0.3.1). detail-url avec {slug} ajoute un lien vers le détail ; déclenche vimine-registration { registration }

Shadow DOM : stylez avec --vimine-font, --vimine-color, --vimine-accent, --vimine-accent-contrast, --vimine-radius, --vimine-padding, --vimine-muted, --vimine-error, --vimine-card-width, --vimine-card-shadow. Les textes suivent la langue de l’élément ou de la page (lang, une des langues de Vimine), en italien sinon.

<vimine-enroll> porte aussi votre style dans le formulaire, qui est une page Vimine dans une iframe (depuis 0.3.2). Il lit quatre variables à sa connexion et les transmet à la page :

vimine-enroll {
--vimine-scheme: light; /* light ou dark : le thème de la page */
--vimine-accent: #1e3a5f; /* boutons, liens, champs actifs, le nom de l’association */
--vimine-background: transparent; /* le fond derrière les encadrés : une couleur, ou transparent */
--vimine-typeface: lora; /* la police de toute la page */
}

N’importe quelle couleur convient (un nom, rgb(), hsl()) : l’élément la transmet en hexadécimal. L’accent reste le vôtre là où il se lit sur les encadrés du formulaire ; sinon, la page l’éclaircit ou l’assombrit jusqu’à ce qu’il se lise. Sans les variables, le formulaire a l’apparence de Vimine. Les variables se transmettent par héritage : une seule règle sur :root sert tous les éléments.

--vimine-typeface définit la police de toute la page, champs compris, parmi celles que Vimine sert lui-même : inter, roboto, open-sans, montserrat, nunito, lora, merriweather, roboto-slab — ou system, celle de l’appareil. Une page dans une iframe ne peut pas utiliser les polices de votre site, et rien n’est téléchargé chez un tiers.