Developpez.com

Le Club des Développeurs et IT Pro

Mozilla publie Brick

Une collection de Widget pour faciliter le développement d'applications Web HTML5

Le 2013-08-28 10:58:20, par Cedric Chevalier, Expert éminent sénior
HTML5 fait aujourd’hui partie des standards pour le développement d’applications mobiles multiplateformes. Cependant, il souffre d’un manque crucial de « widgets » (composants graphiques comme les boutons), pourtant des éléments nécessaires à la construction d’applications aux interfaces graphiques riches.

Pour pallier à ces manquements, Mozilla est en train de développer une collection réutilisable de widgets baptisée « Brick », destinée à être intégrée à de nombreux projets d’applications mobiles. On y retrouve des composants familiers comme des boutons à icônes, des calendriers, des « slider » et bien plus.

L’intégration aux projets des composants graphiques de Brick se ferait aisément. En effet, à la manière de balises HTML5 classiques, chaque widget disposera d’une balise appropriée facile à mémoriser. À titre d’exemple, intégrer un calendrier à l’application Web se fait via les balises <x-calendar> </x-calendar>. La page officielle du projet comporte de nombreux tutoriels d’intégration pour les widgets disponibles.

Brick est disponible en téléchargement. La collection a été préchargée avec de nombreux widgets prêts à l’emploi. Cependant, il faudra garder à l’esprit qu’il s’agit d’une version bêta. Par conséquent, elle est susceptible de contenir de nombreux bogues.

Télécharger Brick 1.0beta6

Source : Brick

Et vous ?

Êtes-vous intéressé(e) par Brick ?
  Discussion forum
10 commentaires
  • leomaradan
    Membre du Club
    La différence avec Bootstrap, c'est que si Bootstrap est pas chargé, le site s'affichera quand-même, à part dans de rare cas

    La, on ajoute par exemple une balise <x-calendar>. Si j'ai pas le JS et le CSS derrière, il gère comment, le navigateur ?

    En quoi l'ajout de balises propriétaire (dans le sens qui sont dépendante d'un programme) est mieux que l'ajout de préfix propriétaire css3 (type -webkit-border-radius) ou d'ActiveX ?
  • Kaamo
    Membre émérite
    Actuellement (dans les navigateurs ne gérant pas encore les Custom Elements), les balises qui n'existent pas héritent de l'interface HTMLUnknownElement. Elle n'a donc aucune propriété, méthode, et hérite de la mère : HTMLElement. (comme tous les autres éléments HTML).

    Pour les navigateurs qui gèrent les Custom Elements (aucun nativement encore si je ne m'abuse ! Chrome 31 sera un des premiers à être en accord avec la spéc.), une balise "non enregistrée" au format "Custom elements" héritera de l'interface HTMLElement directement et sera affublée d'une sorte de tag "unresolved" (accessible via le sélecteur :unresolved) (comprendre : le navigateur se dit que la balise a le potentiel d'en être une, mais qu'elle n'est pas encore implémentée).

    Les balises "customs" devront comporter un "-".
    Les "unresolved element" héritent de HTMLElement si le navigateur supporte l'API (exemple : <x-calendrier>, <mon-element>
    Les "unknown element" (non enregistrés, ne peuvent pas être des custom elements) héritent de HTMLUnknownElement (exemple : <x_calendrier>, <mon_element>

    Source

    ------

    x-tag de Mozilla (sur quoi est basé Brick) et Polymer de Google sont des polyfill qui permettent donc de supporter déjà les Web Components dans nos navigateurs. N'importe qui peut créer déjà ses propres éléments.

    Il faut voir ces éléments comme des trucs qui encapsulent tout un tas de balises, de styles, de scripts qui seront propres à la balise et n'entreront pas en conflit avec les autres styles de la page
  • Paul TOTH
    Expert éminent sénior
    voila tout ce qu'on aimerait voir intégré dans HTML6 ... avec juste 20 ans de retard sur le développement natif
  • Kaamo
    Membre émérite
    A propos de l'auteur, Leon Zhang :
    I worked at a web development internship at Mozilla in sunny Mountain View, CA, where I developed Brick
    En gros, c'est un stagiaire qui a pondu ça Chapeau, à première vue ça a l'air d'être un bon POC des, tout chaud, Composants Web.

    Source
  • alex_vino
    Membre émérite
    Ca me fait penser a BootStrap, sauf que ca a l'air plus compliqué et nécessite une nouvelle montoure d'HTML.
  • tomlev
    Rédacteur/Modérateur
    Envoyé par alex_vino
    Ca me fait penser a BootStrap, sauf que ca a l'air plus compliqué et nécessite une nouvelle montoure d'HTML.
    C'est pas une "nouvelle mouture" de HTML, puisque n'importe quel navigateur qui supporte HTML5 peut le comprendre... c'est juste des éléments "custom". Perso je vois pas trop en quoi ça pose un problème... avec bootstrap, il faut connaitre les noms des classes CSS, avec Brick il faut connaitre les noms des éléments. Finalement ça revient un peu au même...

    (corrigez moi si je dis n'importe quoi, le dev web n'est pas du tout mon domaine...)
  • tibidule
    Membre du Club
    Je pense que cela va dans le bon sens, une sorte de standardisation de composants "évolués". Comme il y en a eu pour la programmation native (Windows / Linux ou autre).

    Comme le dit Kaamo, chapeau bas au stagiaire à l'origine du projet.

    Et comme le dit Paul TOTH, une intégration au standard HTML6 serait encore mieux.
  • SylvainPV
    Rédacteur/Modérateur
    Les Custom Elements vont sans doute remplacer à l'avenir les traditionnels plug-ins UI jQuery/MooTools et autre. Le composant est isolé du reste du site, qu'il s'agisse du DOM, du style CSS ou du scope Javascript. Cela facilite l'implémentation et supprime a priori tout risque de conflit.

    Par contre si l'on externalise tous les composants UI des sites, j'espère qu'on aura trouvé d'ici là une meilleure solution pour que le client puisse les télécharger en parallèle ou pour générer des bundles comme propose Brick.

    Aussi, entre les X-tags, les Shadow-DOM et les templates/imports HTML, ça devient difficile de s'y retrouver. Espérons qu'on arrive à un peu plus d'homogénéité dans les prochaines années.
  • Kaamo
    Membre émérite
    A priori on pourra importer un composant via un HTML import (un peu comme on importe une feuille de style aujourd'hui).
    Il y aura sûrement des sortes de CDN qui délivreront les composants.

    Bref, faut attendre de voir ce que ça va donner.

    Concernant les ressources, voici ce que j'ai pour suivre ça de près :
    - y'a de bons tuto sur HTML5Rocks,
    - l'avancement dans le support (caniuse, html5please)
    - Suivre E. Bidelman (G+, Twitter) qui tient une feuille complète concernant les ressources utiles

    Des composants tout chaud, prêts à être importés et être utilisés :
    - Polymer elements
    - customelements.io
    - x-tags
  • Paul TOTH
    Expert éminent sénior
    Envoyé par leomaradan
    La différence avec Bootstrap, c'est que si Bootstrap est pas chargé, le site s'affichera quand-même, à part dans de rare cas

    La, on ajoute par exemple une balise <x-calendar>. Si j'ai pas le JS et le CSS derrière, il gère comment, le navigateur ?

    En quoi l'ajout de balises propriétaire (dans le sens qui sont dépendante d'un programme) est mieux que l'ajout de préfix propriétaire css3 (type -webkit-border-radius) ou d'ActiveX ?
    pour les styles oui, mais si en Bootstrap-like tu fais un <div style="calendar"> pour afficher une calendrier il ne fonctionne pas plus que <x-calendar>